Всего 125 671 комментарий

Артур Шевченко
07 апреля 2021, 22:05
0
Попробуй прописать параметры напрямую без переменных
Артур Шевченко
07 апреля 2021, 21:48
0
Вот пример сниппета для приема ajax
<?php
// Откликаться будет ТОЛЬКО на ajax запросы методом POST
if($_SERVER['REQUEST_METHOD'] != 'POST' ) {return;}

// Сниппет будет обрабатывать не один вид запросов, поэтому работать будем по запрашиваемому действию
// Если в массиве POST нет действия - выход
if (empty($_POST['action'])) {return;}

// А если есть - работаем
$res = '';
$action = $_POST['action'];
switch ($action) {
    case 'search':
	    $res = $modx->runSnippet('searchResources');
    break;
	
	// А вот сюда потом добавлять новые методы prodFastView
}

// Если у нас есть, что отдать на запрос - отдаем и прерываем работу парсера MODX
if (!empty($res)) {
	die($res);
}
Вызывать некешированным в самом верху страницы
Руслан
07 апреля 2021, 21:48
0
а файл делать в Filesystem? и без аякса никак не обойтись?
Артур Шевченко
07 апреля 2021, 21:44
0
В MODX сниппеты, которые в левом меню на вкладке Элементы, хранятся в БД. Чтобы всё заработало, как я и говорил, нужен файл который будет принимать ajax ( это более правильный вариант) или сниппет, который будет ловить все ajax'ы
Miša Bulic
07 апреля 2021, 21:42
0
{include 'file:chunks/blocks/pdo_project.tpl' $resources='250,251'}
{set $params = [
'depth' => '0',
'resources' => $resources,
'element' => 'msProducts',
'tpl' => '@FILE chunks/cards/card-project.tpl',
'includeThumbs' => 'medium',
'limit' => 80,
'includeTVs' => 'size,pro,price1,area,projectname',
'tvPrefix' => '',
'parents' =>  0 ,
]}
<div class="rows row row-cols-1 row-cols-sm-2 row-cols-md-3 catalog mt-2">
    {'!pdoPage' | snippet : $params}
</div>
Вот такой работает, я и хотел узнать как сделать чтобы можно было не айдишник искать, а по названию выводить
Артур Шевченко
07 апреля 2021, 21:39
0
А ты уверен что там есть $articles, я не встречал такого способа передачи параметров как у тебя?
Руслан
07 апреля 2021, 21:37
0
в сниппетах
Артур Шевченко
07 апреля 2021, 21:36
0
Это код расположен внутри чанка?
Miša Bulic
07 апреля 2021, 21:33
0
{set $params = [
'ajaxMode' => 'default',
'depth' => '0',
'element' => 'msProducts',
'tpl' => '@FILE chunks/cards/card.tpl',
'includeThumbs' => 'square',
'limit' => 6,
'includeTVs' => 'size,pro,price1,area',
'where' => ['article:IN' => $articles]
'tvPrefix' => '',
'parents' => 0,
'showLog' => 1,
]}
<div class="rows row row-cols-1 row-cols-sm-2 row-cols-md-3 catalog mt-2">
    {'!pdoPage' | snippet : $params}
</div>
Артур Шевченко
07 апреля 2021, 21:32
0
я правильно понимаю вызов внутри pdo_project.tpl?
Miša Bulic
07 апреля 2021, 21:30
0
0.0002980: pdoTools loaded
0.0000529: Created inline "modChunk" with name "f7da63f2d337d08ca9dcacc531069c1e"
0.0020502: Loaded "modSnippet" with name "msProducts"
0.0079439: Created inline "modChunk" with name "e6747421ac951eec87076a3f44c6a184"
0.0103621: Total time
4 194 304: Memory usage
Артур Шевченко
07 апреля 2021, 21:28
0
А сниппет у тебя где лежит?
Руслан
07 апреля 2021, 21:05
0
клик происходит в хтмл файле, где в action указан сниппет "[[~post]]". так не будет в modx работать?
Miša Bulic
07 апреля 2021, 20:50
0
{include 'file:chunks/blocks/pdo_project.tpl' $articles=['Сириус','Удача']}
Падает ошибка
[pdoTools] Error 42S22: Unknown column 'msProduct.article' in 'where clause'
Артур Шевченко
07 апреля 2021, 20:48
0
Вот так выглядит массив ['Сириус','Удача']
Miša Bulic
07 апреля 2021, 20:43
0
{include 'file:chunks/blocks/pdo_project.tpl' $articles='Сириус,Удача'}
Ошибка
[pdoTools] Error 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''[Сириус,Удача]' AND `msProduct`.`published` = 1 AND `msProduct`.`del' at line 1