Вопросы
Вывод различных визуальных редакторов для разных групп пользователей
Как можно настроить применение разных визуальных редакторов в административной панели для разных групп пользователей?
Вот к примеру для группы пользователей Admin нужен редактор Ace, а для пользователей группы Content Editor нужен редактор TinyMCE. Возможно ли как-то это реализовать?
Вот к примеру для группы пользователей Admin нужен редактор Ace, а для пользователей группы Content Editor нужен редактор TinyMCE. Возможно ли как-то это реализовать?
Не работает пагинация PdoTools на главной
Доброго всем времени! Не получается реализовать пагинацию на главной странице. В разделе новости всё работает, но на главной странице отказывается работать.
Делаю так:
[[!pdoPage?
&parents=`4`
&includeTVs=`MFO.Name, MFO.URL, MFO.URL.Referral, MFO.Logo, MFO_PaymentSystems, MFO.Percent, MFO.Sum.Max, MFO.Period.Max, MFO.Period.Min, MFO.ReactionTime, MFO.Advantages`
&tpl=`Item.MFO`
&where=`[[+where]]`
&showLog=`0`
&limit=`10`
&pageLinkScheme=`[[+pageVarKey]]-[[+page]]`
]]
[[!+page.nav]]
404 ошибка страницы 2 и остальных.
Плагин для их обработки
<?php
// Реагируем только на событие OnPageNotFound
if ($modx->event->name == 'OnPageNotFound') {
// Определяем ключ запроса из настроек
$req = $modx->getOption('request_param_alias');
// Ловим нужный ключ страницы
$pageVarKey = 'page';
// Если в запросе повторяется наш шаблон «pageVarKey-page», то работаем дальше
if (preg_match("#.*?({$pageVarKey}-(\d+))#", $_REQUEST[$req], $matches)) {
// Отрезаем ЧПУ строку и получаем точный адрес текущей страницы
$uri = str_replace($matches[1], '', $matches[0]);
// Ищем страницу по этому адресу
$id = 0;
// Сначала как есть, со слешем на конце
if (!$id = $modx->findResource($uri)) {
// Если не находим — то пробуем отрезать слэш и ищем повторно
$id = $modx->findResource(rtrim($uri, '/'));
}
// Если ресурс найден
if ($id) {
// Добавляем номер страницы в глобальные массивы, чтобы pdoPage их там увидел
$_GET[$pageVarKey] = $_REQUEST[$pageVarKey] = $matches[2];
// И загружаем эту страницу
$modx->sendForward($id);
}
// Если ресурс не был найден — ничего не делаем, возможно запрос поймает другой плагин
}
}
Помогите решить проблему пожалуйста.
Делаю так:
[[!pdoPage?
&parents=`4`
&includeTVs=`MFO.Name, MFO.URL, MFO.URL.Referral, MFO.Logo, MFO_PaymentSystems, MFO.Percent, MFO.Sum.Max, MFO.Period.Max, MFO.Period.Min, MFO.ReactionTime, MFO.Advantages`
&tpl=`Item.MFO`
&where=`[[+where]]`
&showLog=`0`
&limit=`10`
&pageLinkScheme=`[[+pageVarKey]]-[[+page]]`
]]
[[!+page.nav]]
404 ошибка страницы 2 и остальных.
Плагин для их обработки
<?php
// Реагируем только на событие OnPageNotFound
if ($modx->event->name == 'OnPageNotFound') {
// Определяем ключ запроса из настроек
$req = $modx->getOption('request_param_alias');
// Ловим нужный ключ страницы
$pageVarKey = 'page';
// Если в запросе повторяется наш шаблон «pageVarKey-page», то работаем дальше
if (preg_match("#.*?({$pageVarKey}-(\d+))#", $_REQUEST[$req], $matches)) {
// Отрезаем ЧПУ строку и получаем точный адрес текущей страницы
$uri = str_replace($matches[1], '', $matches[0]);
// Ищем страницу по этому адресу
$id = 0;
// Сначала как есть, со слешем на конце
if (!$id = $modx->findResource($uri)) {
// Если не находим — то пробуем отрезать слэш и ищем повторно
$id = $modx->findResource(rtrim($uri, '/'));
}
// Если ресурс найден
if ($id) {
// Добавляем номер страницы в глобальные массивы, чтобы pdoPage их там увидел
$_GET[$pageVarKey] = $_REQUEST[$pageVarKey] = $matches[2];
// И загружаем эту страницу
$modx->sendForward($id);
}
// Если ресурс не был найден — ничего не делаем, возможно запрос поймает другой плагин
}
}
Помогите решить проблему пожалуйста.
Подписка при регистрации
Здравствуйте! Подскажите, как можно подписывать пользователя на «уведомление о новых записях» сразу в две ветки (секции) tickets плагином после регистрации? Единственное решение, которое здесь нашлось
$subscribers[] = $user->get('id');
$properties = $resource->get('properties');
$properties['subscribers'] = $subscribers;
$resource->set('properties',$properties);
$resource->save();
$resource — секция тикетовно оно не работает. Спасибо. Tickets: свои поля
Здравствуйте!
Кто-нибудь знает есть ли возможность у «TicketComments» создавать свои поля и как их помещать в шаблон комментария чтобы они отображались на странице? Просто изначально форма создания комментария содержит следующие поля: имя, email, текст комментария и капча. А что если нужно добавить например поле с темой сообщения или местоположением автора?
Я именю ввиду не путем правки исходных файлов, поскольку таким способом можно конечно сделать все что угодно но мне интересно наличие более простого варианта.
Всем заранее спасибо!
Кто-нибудь знает есть ли возможность у «TicketComments» создавать свои поля и как их помещать в шаблон комментария чтобы они отображались на странице? Просто изначально форма создания комментария содержит следующие поля: имя, email, текст комментария и капча. А что если нужно добавить например поле с темой сообщения или местоположением автора?
Я именю ввиду не путем правки исходных файлов, поскольку таким способом можно конечно сделать все что угодно но мне интересно наличие более простого варианта.
Всем заранее спасибо!
Отключить парсинг чанка
Добрый день, подскажите, можно ли для определенного чанка отключить парсинг modx?
Чтобы не распарсивались конструкции вида [[.
Попробовал через сниппет вставлять в виде обычного текста — modx все равно парсит такие конструкции.
Чтобы не распарсивались конструкции вида [[.
Попробовал через сниппет вставлять в виде обычного текста — modx все равно парсит такие конструкции.
Не отображаются категории на сайте
Здравствуйте! После переноса на новый хост перестали работать категории на сайте. Выдает 500 ошибку
`` is not a valid integer and may not be passed to
помогите разобраться с ошибками, просто при обновлении страницы на сайте в журнале появляются 2 сообщения об ошибках:
[2017-11-02 02:03:04] (ERROR @ /home/evgek987/public_html/core/model/modx/modx.class.php : 991) `` is not a valid integer and may not be passed to makeUrl()
[2017-11-02 02:03:04] (ERROR @ /home/evgek987/public_html/core/model/modx/modresponse.class.php : 208) Attempted to redirect to an empty URL.в чем может быть проблема? На сайте не работают комментарии, и дополнение для подсчета рейтинга статьи (думаю, что ошибки укажут и на источник проблемы с работой етих модулей) Как сделать сортировку товаров по цене, названию?
Здравствуйте!
Использую minishop2 и столкнулся с тем, что не знаю, как вывести на странице категории товаров сортировку по цене, названию, количеству выводимых товаров? Подскажите, пожалуйста, кто знает.
Заранее спасибо!
Использую minishop2 и столкнулся с тем, что не знаю, как вывести на странице категории товаров сортировку по цене, названию, количеству выводимых товаров? Подскажите, пожалуйста, кто знает.
Заранее спасибо!
Один каталог товаров для разных контекстов
Добрый день.
Подмогните плз если кто-то сталкивался с подобной задачей.
Есть сайт с множеством городов, реализованных на субдоменах(обычная реализация с документации).
Задача: не делать копии одних и тех же документов в контекстах и обращаться только к одному каталогу который в контексте «web».
Примерно вот такая структура документов:
Основной контекст(Москва):
— текстовая страница
— текстовая страница
— Каталог товаров
— — Товар 1
Дополнительный контекст(Санкт-Петербург):
— текстовая страница
— текстовая страница
Должно быть вот так:
site.ru/catalog/product-1.html
spb.site.ru/catalog/product-1.html
Т.е. один каталог, но разные поддомены.
Получается, что мы ссылаемся не несуществующий документ. Как можно вот эту проблему с URL подфиксить?
Давно откладывал этот вопрос… но вот сейчас пришлось это сделать, так как очень много этих товаров и дублировать их очень геморно и не нужно если можно обойти это каким-то образом.
ps: если где-то обсуждалось ткните носом.
Заранее спс!
Подмогните плз если кто-то сталкивался с подобной задачей.
Есть сайт с множеством городов, реализованных на субдоменах(обычная реализация с документации).
Задача: не делать копии одних и тех же документов в контекстах и обращаться только к одному каталогу который в контексте «web».
Примерно вот такая структура документов:
Основной контекст(Москва):
— текстовая страница
— текстовая страница
— Каталог товаров
— — Товар 1
Дополнительный контекст(Санкт-Петербург):
— текстовая страница
— текстовая страница
Должно быть вот так:
site.ru/catalog/product-1.html
spb.site.ru/catalog/product-1.html
Т.е. один каталог, но разные поддомены.
Получается, что мы ссылаемся не несуществующий документ. Как можно вот эту проблему с URL подфиксить?
Давно откладывал этот вопрос… но вот сейчас пришлось это сделать, так как очень много этих товаров и дублировать их очень геморно и не нужно если можно обойти это каким-то образом.
ps: если где-то обсуждалось ткните носом.
Заранее спс!
Ошибка в плагине минишоп
подскажите где ошибся
написал плагин, если впервые добавляем в корзину, то он не присваивает в зависимости от условия новую цену, а если там товар этот уже был и мы еще добавили, то пересчитывает
написал плагин, если впервые добавляем в корзину, то он не присваивает в зависимости от условия новую цену, а если там товар этот уже был и мы еще добавили, то пересчитывает
<?php
switch ($modx->event->name) {
case 'msOnBeforeAddToCart': case 'msOnAddToCart': case 'msOnChangeInCart': // Обрабатывать только события добавления в корзину и изменения количества
$cartArray = $cart->get(); // Массив корзины
$cartStatus = $cart->status(); // Состояние корзины
foreach ($cartArray as &$cartProduct) { // Обрабатываем все товары корзины
if ($product = $modx->getObject('msProduct', $cartProduct['id'])) { // Получаем объект товара по его ID в корзине
$count = 10;
if ($count >=1 && $count<=4){
$tvr = $modx->getObject('modTemplateVarResource', array(
'tmplvarid' => 14, //тут ID TV "p1"
'contentid' => $product->get('id')
));
$tv = $tvr->get('value');
$pr = $tv;
}if ($count>=5 && $count<=20){
$tvr = $modx->getObject('modTemplateVarResource', array(
'tmplvarid' => 15, //тут ID TV "p2"
'contentid' => $product->get('id')
));
$tv = $tvr->get('value');
$pr = $tv;
}if ($count>=21 && $count<=50){
$tvr = $modx->getObject('modTemplateVarResource', array(
'tmplvarid' => 16, //тут ID TV "p2"
'contentid' => $product->get('id')
));
$tv = $tvr->get('value');
$pr = $tv;
}if ($count>=51 && $count<=100){
$tvr = $modx->getObject('modTemplateVarResource', array(
'tmplvarid' => 17, //тут ID TV "p3"
'contentid' => $product->get('id')
));
$tv = $tvr->get('value');
$pr = $tv;
}if ($count>=101 && $count<=300){
$tvr = $modx->getObject('modTemplateVarResource', array(
'tmplvarid' => 18, //тут ID TV "p4"
'contentid' => $product->get('id')
));
$tv = $tvr->get('value');
$pr = $tv;
}if ($count>=301 && $count<=500){
$tvr = $modx->getObject('modTemplateVarResource', array(
'tmplvarid' => 19, //тут ID TV "p5"
'contentid' => $product->get('id')
));
$tv = $tvr->get('value');
$pr = $tv;
}if ($count>500){
$tvr = $modx->getObject('modTemplateVarResource', array(
'tmplvarid' => 20, //тут ID TV "p7"
'contentid' => $product->get('id')
));
$tv = $tvr->get('value');
$pr = $tv;
}
$cartProduct['price'] = $pr; // Изменение цены
$cart->set($cartArray); // Запись нового состояния корзины
}
else{
if ($count >=1 && $count<=4){
$tvr = $modx->getObject('modTemplateVarResource', array(
'tmplvarid' => 14, //тут ID TV "p1"
'contentid' => $product->get('id')
));
$tv = $tvr->get('value');
$pr = $tv;
}if ($count>=5 && $count<=20){
$tvr = $modx->getObject('modTemplateVarResource', array(
'tmplvarid' => 15, //тут ID TV "p2"
'contentid' => $product->get('id')
));
$tv = $tvr->get('value');
$pr = $tv;
}if ($count>=21 && $count<=50){
$tvr = $modx->getObject('modTemplateVarResource', array(
'tmplvarid' => 16, //тут ID TV "p2"
'contentid' => $product->get('id')
));
$tv = $tvr->get('value');
$pr = $tv;
}if ($count>=51 && $count<=100){
$tvr = $modx->getObject('modTemplateVarResource', array(
'tmplvarid' => 17, //тут ID TV "p3"
'contentid' => $product->get('id')
));
$tv = $tvr->get('value');
$pr = $tv;
}if ($count>=101 && $count<=300){
$tvr = $modx->getObject('modTemplateVarResource', array(
'tmplvarid' => 18, //тут ID TV "p4"
'contentid' => $product->get('id')
));
$tv = $tvr->get('value');
$pr = $tv;
}if ($count>=301 && $count<=500){
$tvr = $modx->getObject('modTemplateVarResource', array(
'tmplvarid' => 19, //тут ID TV "p5"
'contentid' => $product->get('id')
));
$tv = $tvr->get('value');
$pr = $tv;
}if ($count>500){
$tvr = $modx->getObject('modTemplateVarResource', array(
'tmplvarid' => 20, //тут ID TV "p7"
'contentid' => $product->get('id')
));
$tv = $tvr->get('value');
$pr = $tv;
}
$product->set('price', $pr);
}
}
break;
}