Владимир

Владимир

Был в сети 30 апреля 2025, 08:19
Заказы не принимаю
Максим Кузнецов
Максим Кузнецов
Можно решить стандартным jevix'ом примерно так:

<?php
	if ($modx->event->name == 'OnDocFormSave') {
		$template = $resource->get('template');
		
		if ($template != 0) {
			$id = $resource->get('id');

			//В наборе параметров отключены неугодные теги аля script, iframe и прочие
			$jevixParams = $modx->getObject('modPropertySet',array('name'=>'Ticket'));
			$jevixOptions = $jevixParams->getProperties();

			//content
			if (strlen($content = $resource->getContent()) > 0) {
				$jevixOptions['input'] = $content;
				$content = $modx->runSnippet('jevix', $jevixOptions);
				$resource->setContent($content);
				
			}
			
			switch ($template) {
				//Шаблон с доп. тв, которое нужно обработать
				case 7:
					if (strlen($custom_tv = $resource->getTVValue('custom_tv')) > 0) {
						$jevixOptions['input'] = $custom_tv;
						$custom_tv = $modx->runSnippet('jevix', $jevixOptions);
						
						$resource->setTVValue('custom_tv', $custom_tv);
					}
					
				break;
				
			}
		}
	
		
		$resource->save();
	}
October
October
Я сделяль :D
&leftJoin=`{
"NameTag": {
"class": "TaggerTag",
"on": "TaggerTagResource.tag = NameTag.id"
},
"Posts": {
"class": "modResource",
"on": "TaggerTagResource.resource = Posts.id"
},
"Tv": {
"class": "modTemplateVarResource",
"on": "TaggerTagResource.resource = Tv.contentid AND Tv.tmplvarid = 28"
}
}`
&select=`{
"TaggerTagResource": "*",
"NameTag": "NameTag.tag, NameTag.alias",
"Posts": "Posts.id, Posts.pagetitle, Posts.description, Posts.introtext",
"Tv": "Tv.value as img_min_post"
}`
Ошибок негде нету, картинка выводится :) Правильная ли конструкция с точки зрения рациональности?
Володя
Володя
Отправил Василию PR — github.com/bezumkin/pdoTools/pull/203
добавляет PCRE модификаторы, можно будет делать следующее
{'$40 за g3/400' | preg_quote}

{if 'email@mail.ru'|preg_match : '/^.+@.+\.\w+$/' }
    email
{/if}

{$_modx->resource.content|preg_get : '!http://.+\.(?:jpe?g|png|gif)!Ui'}

{["26-04-1974", "Сергей", "27-11-1977", "Юля"] | preg_grep : "/(\d{2})-(\d{2})-(\d{4})/" | print_r : true}

Website: {'http://site.name'|preg_replace : '~^https?://~'}

{'I love MODX' | preg_split : '/ /' | print_r : true}
ваша задача тогда может быть решена просто как
выбираем первое изображение из поля <b>content</b>
{set $image = $_modx->resource.content|preg_get : '!http://.+\.(?:jpe?g|png|gif)!Ui}