Вопросы
Почему может не работать постраничная навигация pdoPage при использовании боковых табов в MODX
Сайт
sudexperts.ru/about/questions
слева 3 вкладка — 3 из них «Общие вопросы» там постраничная навигация (она была и на первых двух — там просто мало статей). И она упорно не работает — когда нажимаешь на 2 страницу — открывает вторую вкладку и левое меню зависает и навигация(pagination) тоже зависает и больше не работает.
Шаблон страницы выглядит так
Причём есть другие страницы с пагинацией но без такого левого меню в виде табов — там всё ок.
sudexperts.ru/about/questions
слева 3 вкладка — 3 из них «Общие вопросы» там постраничная навигация (она была и на первых двух — там просто мало статей). И она упорно не работает — когда нажимаешь на 2 страницу — открывает вторую вкладку и левое меню зависает и навигация(pagination) тоже зависает и больше не работает.
Шаблон страницы выглядит так
<div class="quest-body" id="pdopage">
<div class="question-title">
<h1>[[*pagetitle]]</h1>
<a href="#question-popup" class="nopreload popup-btn question-btn">Отправить запрос</a>
</div>
<div class="question-content">
[[!$questionMenu]]
<div class="rows question-rows" id="catalog-question">
[[!questMenu]]
</div>
</div>
</div>а сниппет questMenu где вызывается постраничная навигация<?php
$out = '';
$query = $modx->newQuery('modResource', array('parent'=>64));
$query->sortby('pagetitle','ASC');
$resources = $modx->getCollection('modResource', $query);
foreach($resources as $resource) {
if ($resource->published == true && $resource->deleted != true && $resource->hidemenu != true) {
$outputs = '<div class="catalog category-'.$resource->id.'">';
$outputs .= $modx->runSnippet('pdoPage', array(
'parents' => $resource->id,
'tpl' => 'QuestItem',
'depth'=> '1',
'limit'=> '10',
'includeContent' => '1',
'ajaxMode'=>'default',
'tplPageWrapper' => '@INLINE <div class="pagination"><ul>[[+first]][[+prev]][[+pages]][[+next]][[+last]]</ul></div>',
'tplPageFirst' => '@INLINE <li class="control prev first"><a class="nopreload" href="[[+href]]">Первая</a></li>',
'tplPageLast' => '@INLINE <li class="control next last"><a class="nopreload" href="[[+href]]">Последняя</a></li>',
'tplPage' => '@INLINE <li><a class="nopreload" href="[[+href]]">[[+pageNo]]</a></li>',
'tplPageActive' => '@INLINE <li class="active"><a class="nopreload" href="[[+href]]">{{+pageNo]]</a></li>',
'tplPagePrev' =>'@INLINE <li class="control prev"><a class="nopreload" href="[[+href]]">[[IncSvg? &svg=`arrow.svg`]]</a></li>',
'tplPageNext' => '@INLINE <li class="control next"><a class="nopreload" href="[[+href]]">[[IncSvg? &svg=`arrow.svg`]]</a></li>',
'tplPageNextEmpty' => '@INLINE <li class="control disable next"></li>',
'tplPagePrevEmpty' => '@INLINE <li class="control disable prev"></li>',
'tplPageFirstEmpty' => '@INLINE <li class="first disabled"></li>',
//'showLog' => 1,
));
$outputs .= $modx->getPlaceholder('page.nav');
$outputs .= '</div>';
echo $outputs;
// echo $resource->id .'
';
}
}Помогите пожалуйста если кто знает — я уже всю голову сломал.Причём есть другие страницы с пагинацией но без такого левого меню в виде табов — там всё ок.
Как отсортировать опцию и взять только 1 значение из нее?
Всем привет. Вроде бы не сложное задание, но решить не получается, может кто направит?
Есть опция Упаковка. Значения в этой опции могут быть разными ( 3 кг, 0,5 кг, 1,8 кг)
Нужно вывести только максимальную опцию (3 кг)
Как это преобразовать я не совсем понимаю, т.к. опции не отсортируются стандартными sortby и sortdir.
UPD: либо как второй вариант использую
Есть опция Упаковка. Значения в этой опции могут быть разными ( 3 кг, 0,5 кг, 1,8 кг)
Нужно вывести только максимальную опцию (3 кг)
Как это преобразовать я не совсем понимаю, т.к. опции не отсортируются стандартными sortby и sortdir.
UPD: либо как второй вариант использую
[[msOptionsPrice.modification?
&limit=`1`
&product=`[[+id]]`
&tpl=`tpl.msOptionsPrice.modification_YML`
&sortby=`{"CAST(`msopModification`.`price` AS DECIMAL(10,2))": "DESC"}`
]]Но тут проблема что выводятся все опции модификаций. Как отобрать нужную мне — не понятно Опросник со множеством вопросов и подсчетом голосов
Здравствуйте! пожалуйста, подскажите, как реализовать на сайте систему опросов с несколькими вопросами, и страницей результатов, и заполнением из админки? ни один из компонентов не подходит (Polls, xPoller, xPoller2, voteForms), все они реализуют вывод только 1 вопроса. что делать если не хватает знаний чтобы самостоятельно реализовать создание динамических форм из админки, с сохранением и подсчетом количества голосов, и возможностью голосовать без регистрации, но 1 раз для каждого ip?
может у кого-то есть опыт реализации такой задачи через migx? прошу подсказки. версия MODX самая последняя.
может у кого-то есть опыт реализации такой задачи через migx? прошу подсказки. версия MODX самая последняя.
stop words и socialtools
всем привет
буду рад если поможете с данной реализацией
есть пример
Select Data With PDO (+ Prepared Statements)
Example (PDO)
в socialtools есть таблицы modx_soc_dialogReceive и modx_soc_dialogSend
допустим в большом интернет магазине с нормальным количеством посетителей зарегистрированных в личном кабинете
и используеться socialtools с групповыми покупками или возможностью просто между собой общаться
в modx_soc_dialogReceive и modx_soc_dialogSend
есть table fields
Name
subject
message
sender
приведите пожалуйста простой пример с поиском по subject и message например в stop words «у нас можно купить сайт такойто link»
чтобы при запуске ресурса например resource stopwords искал по словам и если количество определённых слов больше 5 (или заданного количества определённого) «у нас» «сайт» и тд
осуществлялся временный blocked user данного пользователя и создавался report user в каком нибудь parent user reports
например parent 72
reported spam users
создаёться ресурс с pagetitile данного юзера перед его temporary blocked на уровне modx revo user (ну тоесть как сам в manager panel выбрал Blocked user) только както программно
я думаю всем интересна будет такая реализация в различных вариация
с помощью pdotools или каким либо другим образом
ну да и пока незабыл
был бы рад за совет как вывести определённый field из родных полей user или добавленных и уже как родных ))))
в Users во frontend (тоесть где сразу all users отображаються а потом уже detailed смотриться в manager)
всем спасибо за внимание
буду рад если поможете с данной реализацией
есть пример
Select Data With PDO (+ Prepared Statements)
Example (PDO)
<?php
echo "<table style='border: solid 1px black;'>";
echo "<tr><th>Id</th><th>Firstname</th><th>Lastname</th></tr>";
class TableRows extends RecursiveIteratorIterator {
function __construct($it) {
parent::__construct($it, self::LEAVES_ONLY);
}
function current() {
return "<td style='width:150px;border:1px solid black;'>" . parent::current(). "</td>";
}
function beginChildren() {
echo "<tr>";
}
function endChildren() {
echo "</tr>" . "\n";
}
}
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare("SELECT id, firstname, lastname FROM MyGuests");
$stmt->execute();
// set the resulting array to associative
$result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) {
echo $v;
}
}
catch(PDOException $e) {
echo "Error: " . $e->getMessage();
}
$conn = null;
echo "</table>";
?>в socialtools есть таблицы modx_soc_dialogReceive и modx_soc_dialogSend
допустим в большом интернет магазине с нормальным количеством посетителей зарегистрированных в личном кабинете
и используеться socialtools с групповыми покупками или возможностью просто между собой общаться
в modx_soc_dialogReceive и modx_soc_dialogSend
есть table fields
Name
subject
message
sender
приведите пожалуйста простой пример с поиском по subject и message например в stop words «у нас можно купить сайт такойто link»
чтобы при запуске ресурса например resource stopwords искал по словам и если количество определённых слов больше 5 (или заданного количества определённого) «у нас» «сайт» и тд
осуществлялся временный blocked user данного пользователя и создавался report user в каком нибудь parent user reports
например parent 72
reported spam users
создаёться ресурс с pagetitile данного юзера перед его temporary blocked на уровне modx revo user (ну тоесть как сам в manager panel выбрал Blocked user) только както программно
я думаю всем интересна будет такая реализация в различных вариация
с помощью pdotools или каким либо другим образом
ну да и пока незабыл
был бы рад за совет как вывести определённый field из родных полей user или добавленных и уже как родных ))))
в Users во frontend (тоесть где сразу all users отображаються а потом уже detailed смотриться в manager)
всем спасибо за внимание
Сортировка по цене, 0 в конце
Возможно ли как-то задать сортировку в msProducts так, чтобы товары с 0 были в конце списка?
modx revo mSearch2 синтаксис условий where
[[!pdoPage?
&element=`mSearch2`
&parents = `14`
&templates = `4`
&minQuery = `1`
&where = `[[!additionalParammSearch]]`
&includeTVs = `image,price,old_price,new_good,sku,model,brand,quantity`
&tpl = `SimpleSearchResult`
&tplWrapper = `@INLINE <div class="sisea-results-list box inline">
[[+output]]
</div>`
&limit = `[[!#GET.count-search:default=`12`]]`
]]Подскажите как правильно составить условия фильтрации?<?php
$items_for_json= [];
if( isset($_GET['ff_price']) && is_array($_GET['ff_price']) ){
$items_for_json[] = '"price:":'.(int)$_GET['ff_price']['min'];
}
$ret_param = "{" . implode(',', $items_for_json) . "}";
return $ret_param;при таком запросе фильтрует по цене, а как добавить несколько параметров? больше или равно? так `{«price:>=»:1,«price:<=»:100}` не работает Как правильно в феноме пройтись по циклу for?
Для foreach понятно:
Смотрел по этому примеру, но не понял как правильно все же должен виглядеть конечний вариант.
Подскажите может ктото уже сталкивался и есть готовый пример.
{foreach $list as $key => $value}
{$key}: {$value}
{/foreach}Даже нашел от такой вариант:{foreach 1..31 as $value}
{$value}
{/foreach}Но мне надо шаг поставить свой.Смотрел по этому примеру, но не понял как правильно все же должен виглядеть конечний вариант.
Подскажите может ктото уже сталкивался и есть готовый пример.
Как привязать к форме Tickets редактор CKEditor?
Всем привет. Кто-нибудь привязывал к форме Tickets данный редактор ckeditor.com/docs/ckeditor5/latest/builds/guides/overview.html#balloon-block-editor? У меня возникли сложности с Bootstrap. Что-то перекрывает стили и с левой стороны не появляется кнопка с выбором кнопок редактиррвания, а вторая проблема заключается в том, что этот тип редактора не поддерживает Textarea только конструкцию:
<div id="editor"></div>Следовательно textarea нужно скрыть стилем:display: noneИ каким-то образом весь введенный код сохранять в textarea. проверка нескольких tv
Добрый день!
Есть такой простой вывод переменной.
Есть такой простой вывод переменной.
[[+tv1:is!=``:then=`[[+tv1]]`:else=`[[+tv2]]`]]Как добавить туда еще одно условие — если tv1 и tv2 пустые, то вывести какую-либо фразу? ExtJS Пустое значение поля datefield
Есть поле с типом datefield:
Но есть одна проблема
Не получается сохранить пустое значение.
Т.е. если убрать (стереть, очистить) значение из поля, то оно (значение) не сохраняется, а остается прежним.
Как сохранять пустые значения?
П.С. мне нужно только выбор даты, без времени
— Решено
Все оказалось гораздо проще. ExtJS отдает пустую строку, а не null
Соответственно нужно просто в процессоре написать:
{
xtype : 'datefield'
,name : 'date'
,fieldLabel : 'Date'
,anchor : '100%'
,format : MODx.config.manager_date_format
,allowBlank : true
,emptyText : null
}БД:,'date' => array(
'dbtype' => 'date'
,'phptype' => 'date'
,'null' => true
,'default' => null
)Оно работает, т.е. сохраняет всё корректно.Но есть одна проблема
Не получается сохранить пустое значение.
Т.е. если убрать (стереть, очистить) значение из поля, то оно (значение) не сохраняется, а остается прежним.
Как сохранять пустые значения?
П.С. мне нужно только выбор даты, без времени
— Решено
Все оказалось гораздо проще. ExtJS отдает пустую строку, а не null
Соответственно нужно просто в процессоре написать:
public function beforeSet() {
if(empty($this->getProperty('date'))){
$this->setProperty('date', null);
}
}