Всего 123 799 комментариев

Антон
26 мая 2023, 14:54
0
Написано, что компонент работает на php выше 5.6, но на 8 он не работает. Из-за вот этой строчки в основном классе:
$return .= $symbs{rand(0, $maxpos)};
Это 1087 строка.
Сергей Карпович
26 мая 2023, 14:52
0
Добавил
$a['resource_id'] = $tv['contentid'];
, но [[+resource_id]] не выводится
Павел Романов
26 мая 2023, 14:46
0
Добавьте на 20 строке:
<?php
//.......
foreach($tvs as $tv){
   	$a = json_decode($tv['value'], 1);
   	foreach($a as $i){
            $i['resource_id'] = $tv['contentid']; // вот это
   	    $array[] = $i;
   	}
}
//.......
В чанке используйте [[+resource_id]]
Сергей Карпович
26 мая 2023, 14:36
0
Спасибо, вроде бы то что нужно.
Подскажите, как передать в чанк ID ресурса с которого отображется фото, что бы путь корректно прописать, а то в [[+image]] приходит не полный путь а только название файла
Павел Романов
26 мая 2023, 14:19
+2
Попробуйте сделать такой сниппет:
<?php
$totalVar = $modx->getOption('totalVar', $scriptProperties, 'total');
$limit = $modx->getOption('limit', $scriptProperties, 10);
$offset = $modx->getOption('offset', $scriptProperties, 0);
$sortby = $modx->getOption('sortby', $scriptProperties, 'MIGX_id');
$sortdir = $modx->getOption('sortdir', $scriptProperties, 'DESC');
$docid = $modx->getOption('docid', $scriptProperties, $modx->resource->get('id'));
$docid = str_replace(' ', '', $docid);

$table = $modx->getOption('table_prefix').'site_tmplvar_contentvalues';
$sql = "SELECT * FROM {$table} WHERE `contentid` IN ({$docid}) AND `tmplvarid` = '{$tvId}'";
$q = $modx->prepare($sql);
$q->execute();
$tvs = $q->fetchAll(PDO::FETCH_ASSOC);

$array = array();
foreach($tvs as $tv){
   	$a = json_decode($tv['value'], 1);
   	foreach($a as $i){
   	    $array[] = $i;
   	}
}
$modx->setPlaceholder($totalVar, count($array));
function sorter($key) {
    return function ($a, $b) use ($key) {
        return strnatcmp($a[$key], $b[$key]);
    };
}
usort($array, sorter($sortby));
$sortdir == 'DESC' ? krsort($array) : ksort($array);
$array = array_slice($array, $offset, $limit);
foreach($array as $item){
    $out .= $modx->getChunk($tpl, $item);
}
return $out;

И используйте его в pdoPage:
[[!pdoPage?
    &element=`SnippetName`
    &tvId=`43` // ID TV "gallery"
    &docid=`18,38,59,46` // ID ресурсов
    &limit=`12`
    &tpl=`tpl-gallery`
]]
[[!+page.nav]]
Денис Усманов
26 мая 2023, 11:05
0
Всё равно тут поясню зачем) Затем, что бы Minishop2 воспринимал поле count как DECIMAL а не INT.
Александр
26 мая 2023, 11:02
+1
Не понял зачем плагин, я делал без него меняя класс корзины и JS. Вообще ничего вроде больше не трогал. Отлично работает. Только обычно когда реализовывается добавление дробного кол-ва товаров нужно отображать в миникорзине(если такая есть) не кол-во товаров всего, а кол-во позиций в корзине.

UPD: Понял зачем плагин. Закинул клиенту где делал такой функционал :)
Ivan
26 мая 2023, 09:40
0
В общем они исправили проблему
Александр Мельник
26 мая 2023, 07:47
0
Вы ведь сделали два разных шаблона, верно?
Один для списка новостей, второй для детальной новости?
В первом вызываете pdoresources а во втором НЕ вызываете его, а просто обращаетесь к полям ресурса через
[[*pagetitle]] [[*content]] и так далее?

а то сложилось чувство, что вы либо одинаковый шаблон назначаете как списку новостей так и отдельной новости, либо же шаблоны разные, но и в том и другом вызывается pdoresources.
Andrew
25 мая 2023, 22:37
0
Могу ошибаться, но где-то читал что так
<a href="[[+uri]]">Подробнее</a>
нужно делать в EVO, а вот так
<a href="[[~[[+id]]]]">Подробнее</a>
в REVO. Не судите строго могу ошибаться.
Andrew
25 мая 2023, 22:20
0
Может быть я что то не так делаю, т.к. с модх только начал знакомиться.
Создал чанк vnewstpl с содержимым
<section class="news">
    <div class="container">
        <div Class="News-one-post">
            <div class="news-title">
                
                    <div class="news-data"><i class="icon-calendar">[[+publishedon:date=`%d.%m.%Y`]]</i>
                    </div>
                        <div class="news-media">
                          [[+tv.videonewsTV:phpthumbof=`w=120&h=120`]]"
                            <div class="news-one-news"><a href="[[~[[+id]]]]">[[+pagetitle]]</a>
                    
                            </div>
                    
                                <p><a href="[[~[[+id]]]]">[[+introtext]]</a> </p>
                        </div>
               
                    <div class="mask-image"><a class="info" href="[[~[[+id]]]]">подробнее</a>
                    </div>
            </div>
        </div>
    </div>

</section>
Создал доп поле videonewsTV
Сделал шаблон Видео:
[[$HEAD]]
<body>

[[$HEADER]]
[[$nav_item]]
<!-- Страница новостей-->

[[pdoResources?
	&tpl=`vnewstpl`
	&parents=`3`
	&depth=`0`
	&includeTVs=` videonewsTV`
	&includeContent=`2`
]]
[[$FOOTER]]
Присвоил ресурсу Видео шаблон видео и в настройках обозначил его как контейнер.
Создал в разделе видео несколько документов. Теперь по ссылке Видео отображается лента новостей, но при переходе в подробно все равно отображается лента новостей, а не новость детально.
Andrew
25 мая 2023, 22:12
0
<section class="news">
    <div class="container">
        <div Class="News-one-post">
            <div class="news-title">
                
                    <div class="news-data"><i class="icon-calendar">[[+publishedon:date=`%d.%m.%Y`]]</i>
                    </div>
                        <div class="news-media">
                          [[+tv.newsTV:phpthumbof=`w=120&h=120`]]"
                            <div class="news-one-news"><a href="[[~[[+id]]]]">[[+pagetitle]]</a>
                    
                            </div>
                    
                                <p><a href="[[~[[+id]]]]">[[+introtext]]</a> </p>
                        </div>
               
                    <div class="mask-image"><a class="info" href="[[~[[+id]]]]">подробнее</a>
                    </div>
            </div>
        </div>
    </div>

</section>
При переходе в детальную новость меняется ссылка, но содержимое страницы тоже самое.
Страница с новостями trksever/videonews/
При переходе на детальную trksever/videonews/v2.html. Но содержимое тоже все новости лентой.
Andrew
25 мая 2023, 22:04
0
Ни так ни так не работает. Открывает страницу со всеми новостями. Причем изменяя адрес ссылки.
Павел Романов
25 мая 2023, 19:04
0
Используйте вставку кода, а то теги съедает:


Вывод ссылки в чанке должен быть таким:
<a href="[[+uri]]">Подробнее</a>
или таким:
<a href="[[~[[+id]]]]">Подробнее</a>
Dan
Dan
25 мая 2023, 14:18
0
Вывод чего? В контенте ресурса у меня просто рандомный набор слов и слова из words плагин удаляет внутри контента.
Евгений
25 мая 2023, 14:16
0
вывод через разделитель или по умолчанию?
Dan
Dan
25 мая 2023, 13:38
0
Я у себя протестил, такой код норм чистит. Вы после сохранения страницу ресурса обновите в админке и увидите, что слова удалились из контента.
<?php
switch ($modx->event->name) {
        case 'OnDocPublished':
        case 'OnBeforeDocFormSave':
        case 'OnDocFormSave':
        $res = $modx->getObject('modResource', 1);
        $words = json_decode($res->getTVValue('words'), true);
           
        $content = $resource->get('content');
        $pattern = '/(?:' . join('|', $words) . ')/i';
        $content = preg_replace($pattern, '', $content);
        
        $resource->set('content', $content);
        $resource->save();
        break;
              
}