Вопросы

Анонимам отдает ошибка 500 на странице авторизации (ofiice)

Когда авторизован под администратором, то нормально заходит. Следовательно, что-то сломал у анонимов

(ERROR @ Unknown0) PHP warning: Unknown: Cannot call session save handler in a recursive manner

Вот настройки анонимов:
joxi.ru/DmBM61LswRPXlr
joxi.ru/823R0nxTJPKEWm
Сергей Лим
05 марта 2019, 10:09
modx.pro
1 553
0

pdoMenu скрывать пункты меню если в них нет товаров

Помогите пожалуйста,
недавно работаю с modx revo и столкнулся с проблемой скрывать из меню пустые пункты
использую pdoMenu
и понимаю что скорей всего нужно использовать &where

но в голову не приходит как именно проверить каждый элемент
Денис
04 марта 2019, 19:36
modx.pro
1 265
0

YandexMaps – динамический вывод координат

Добрый день!
Ранее в YandexMaps, при перемещении «балуна», автоматически корректировались координаты. Таким образом можно было вручную задать точку. Сейчас же это доступно только через поиск карт.
Подскажите, где можно поправить сей недуг?

На гиф. снизу, видно что координаты не обновляются.
SonG
04 марта 2019, 17:20
modx.pro
1
1 453
0

Изображение товара в корзине minishop2

Добрый день!
Подскажите пожалуйста как в корзине вывести свой размер картинок товаров.
Чанк tpl.msCart
{$product.thumb}

В источнике файлов так «110x110_zc»:{«w»:110,«h»:110,«q»:90,«zc»:«0»,«bg»:«ffffff»,«f»:«jpg»},
на страницах магазина везде все работает и выводиться кроме корзины
В каталоге вывожу через msGallery {$file['110x1130_zc']}

По аналогии пробовал так-же {$file['110x110_zc']} и пробовал так {$product['110x110_zc']} Фактически картинка есть, но не в какую не выводиться(
Сергей
04 марта 2019, 13:29
modx.pro
1 498
0

Получить и посчитать все заполненные поля из MIGX

Прошу помощи в решении задачи: есть готовый сниппет, который считает заполненные TV-поля и затем выводит их в указанное кол-во столбцов. Необходимо переделать его под работу с MIGX.

<?php
//передаваемые в сниппет параметры
//id - id ресурса с которого берем нужные поля
//tvInput - id полей для проверки, через запятую
//cols_count - количество выводимых колонок
//tpl - шаблон вывода
$id = $id;
$tvInput = explode(',',$tvs);
$cols_count = $cols;
$tpl = $tpl;

if (!isset($tvInput)) { return false; } // Если не указаны TV, прекращаем выполнение кода
if (!isset($id)) { $id = $modx->resource->get('id'); } // По-умолчанию текущий ресурс
if (!isset($cols_count)) { $cols_count = 2; } // Количество колонок по-умолчанию
if (!isset($tpl)) { $tpl = 'object_params'; } // Шаблон по-умолчанию

$criteria = $modx->newQuery('modTemplateVarResource', [
              'contentid' => $id,
              'tmplvarid:IN' => $tvInput,
              'value:!=' => ''
            ]);
$docs = $modx->getCollection('modTemplateVarResource', $criteria);

//выводим по колонкам
//default_elems_at_col - количество элементов в колонке
$output = '';
$count = count($docs);
$default_elems_at_col = floor($count / $cols_count);
$continue_default = false;

/* 
  как работает:
  например: 52 элемента на 5 колонок
  $default_elems_at_col - количество элементов в колонке по умолчанию floor(52 / 5) = 10
  остается 2 элемента (52 - 50), которые необходимо распределить по колонкам, т.е.
  $real_default_elems_at_col = 11 (для первых двух колонок)
  $continue_default - переменная, чтобы прекратить лишние вычисления на итерациях, когда лишних элементов не осталось
*/
$output .= '<div class="params params_cols-' . $cols_count . '">';
for ($i = 0; $i < $cols_count; $i++) {
  if (!$continue_default) {
    $real_default_elems_at_col = $default_elems_at_col + 1;
    if ( ($real_default_elems_at_col * ($i + 1) + ($cols_count - $i - 1) * $default_elems_at_col) > $count ) {
      $real_default_elems_at_col = $default_elems_at_col;
      $continue_default = true;
    }
  } 

  $output .= '<div class="params__column">';
  for ($j = 0; $j < $real_default_elems_at_col; $j++) {
    $current_doc = current($docs)->toArray();
    $tvId = $current_doc["tmplvarid"];
    $value = $current_doc["value"];
    
    $output .= $modx->getChunk($tpl, [
                'tvId' => $tvId,
                'value' => $value
               ]);

    //если следующего элемента нет - выходим из цикла
    if (!next($docs)) {
      break;
    }
  }
  $output .= '</div>';
}
$output .= '</div>';
return $output;
Т.е. вместо

$criteria = $modx->newQuery('modTemplateVarResource', [
              'contentid' => $id,
              'tmplvarid:IN' => $tvInput,
              'value:!=' => ''
            ]);
$docs = $modx->getCollection('modTemplateVarResource', $criteria);
нужно получить и посчитать непустые поля MIGX, думаю в этом направлении:
$criteria = $modx->runSnippet('getImageList',array(
'tvname'=> $tvInput, 
'tpl'=>'@CODE: [[+name]]==[[+value]]',
'outputSeparator'=>'||',
'docid' => $id
));
а вместо
$tvId = $current_doc["tmplvarid"];
$value = $current_doc["value"];

$output .= $modx->getChunk($tpl, [
            'tvId' => $tvId,
            'value' => $value
           ]);


должно быть что-то вроде
$tvName = $current_doc["name"];
$value = $current_doc["value"];

$output .= $modx->getChunk($tpl, [
            'tvName' => $tvName,
            'value' => $value
           ]);
Спасибо.
Евгений
04 марта 2019, 13:09
modx.pro
1 550
0

Дополнительные поля + mfilter2

Приветствую,
столкнулся с такой проблемой, не выводятся доп. поля через mFilter2.

[[!mFilter2?
&element=`msProducts`
&class=`msProduct`
&tplOuter=`mFilter2.outer.custom`
&tpls=`doElement`
&includeContent=`1`
&includeTVs=`do-phone,do-mail`
&filters=`resource|parent:categories`
&tplFilter.outer.resource|parent=`tpl.mFilter2.filter.select`
&tplFilter.row.resource|parent=`tpl.mFilter2.filter.option`
]]
в doElement.tpl

....
<div class="col-md-12 do-btn">
Телефон: [[+tv.do-phone]]
E-mail:  [[+tv.do-mail]]
<a class="price-buy-now5"><span class="uencin_ponug">[[msProductOptions?product=`[[+id]]`&onlyOptions=`do-phone`]] [[msProductOptions?product=`[[+id]]`&onlyOptions=`do-mail`]]</span><span class="nolva_kepin" style="cursor:pointer;">Показать контакты</span></a>
</div>
...
Поля эти нужны только для отображения, не для фильтрации, но отображаться они не хотят (((

И еще 1 момент, решил поменять заглушки стандартные минишоповские MS2 которые для картинок, просто залил в папку со стандартными, свои картинки, после чего заглушки вообще не отображаются. Пути не менял, кеш чистил, отображаться так же ни в какую не хочет
Александр
03 марта 2019, 23:40
modx.pro
1 451
0

Вызов pdoPage, лимит показа айтемов

Есть сайт www.pivden.media/
При нажатии кнопки «Больше новостей» выплывают еще айтемы новостей, но остается белое пространство, а если увеличивать отображение айтемов, то и на главной странице они увеличиваются (без нажатии кнопки) и так же остается белое пространство. Как сделать так чтобы отображение айтемов на главной странице было одно количество, а при нажатии кнопки другое?

&parents=`15`
&ajaxMode=`button`
&limit=`10`
&tpl=`postsTpl`
&ajaxTplMore=`pagination`
&sortdir=`DESC`
&processTVs=`1`
&includeTVs=`PostImage, HitsPage`
&includeTVList=`PostImage, HitsPage`
]]

Вот вызов кнопки. Изначально лимит 10. То есть отображается 10 новостей и при нажатии кнопки всплывает еще 10 новостей. Нужно увеличить количество только при нажатии кнопки, как это сделать? Буду благодарна за помощь!

Ольга
03 марта 2019, 21:32
modx.pro
1 178
0

Условие вызова pdoMenu

Добрый день
Подскажите а как правильно создать условие?
{'!pdoMenu' | snippet : [
    {if 'limit' > 5 && 'hereClass'}
        'parents' => '7',
        'level' => '1',
        'offset' => '1',
        'limit' => '5',
        'hereClass' => 'active',
        'tplOuter' => '@INLINE <ul class="topMenu_items_prod">{$wrapper}</ul>',
        'tpl' => '@INLINE <li><a {$classes} href="{$link}">{$menutitle}</a></li>'
    {else}
        'parents' => '7',
        'level' => '1',
        'limit' => '5',
        'hereClass' => 'active',
        'tplOuter' => '@INLINE <ul class="topMenu_items_prod">{$wrapper}</ul>',
        'tpl' => '@INLINE <li><a {$classes} href="{$link}">{$menutitle}</a></li>'
    {/if}
]}
Сергей
02 марта 2019, 22:11
modx.pro
1 860
0

Нужно, чтобы зарегистрированный пользователь мог менять свой статус

Вот вроде простая идея, но не могу понять, с какой стороны подступиться.
Нужно, чтобы у зарегистрированного пользователя была возможность менять свой статус: «Занят» или «Свободен».
Ну и чтобы можно было выводить на сайте статус пользователей.
Сложно ли такое сделать на Modx? Дайте, пожалуйста, направление, куда копать.
kadykoff
02 марта 2019, 20:16
modx.pro
762
0

Сортировка товаров в категории minishop в бекенде

Хочу переопределить поле и порядок сортировки для товаров в категории minishop, подскажите пожалуйста, как это сделать?
Через кастомный класс? Плагин? Куда хоть копать… ничего не нагугливается (все больше про фронтенд), документация молчит. Спасибо.
Антон Тарасов
02 марта 2019, 12:22
modx.pro
1 392
0