Владимир

Владимир

С нами с 28 декабря 2012; Место в рейтинге пользователей: #83
Максим Кузнецов
21 мая 2016, 00:14
3
+4
Можно решить стандартным 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
22 апреля 2016, 06:59
1
+1
Я сделяль :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"
}`
Ошибок негде нету, картинка выводится :) Правильная ли конструкция с точки зрения рациональности?
Abu
Abu
20 апреля 2016, 23:50
1
0
Вроде как TicketLatest [[+views]] вообще не обрабатывает. Но можно вызывать его так
[[TicketLatest?
        &tpl=`tpl.Tickets.comment.latest.Inf.Q`
    	&action=`comments`
    	&limit=`3`
    	&parents=`0`
    	&leftJoin=`{
            "View":{
                "class":"TicketView",
                "on":"View.parent = Ticket.id"
            }
        }`
        &select=`{
            "View": "COUNT(View.parent) as views"
        }`
     ]]
Илья Уткин
14 апреля 2016, 12:25
1
+1
&where=`{"tags:LIKE":"%[[*tags]]%"}`
Володя
14 апреля 2016, 11:27
2
+1
Отправил Василию 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}
Petro
12 апреля 2016, 22:24
1
+2
Нужно использовать делегирование событий для динамически добавленных элементов http://api.jquery.com/on/
Petro
09 апреля 2016, 20:41
1
+2
Разобрался. Добавил в нужный контроллер функцию:

public function checkPermissions() {
   return $this->modx->hasPermission('view_my_component');
}