Семён Кудрявцев

Семён Кудрявцев

С нами с 21 августа 2015; Место в рейтинге пользователей: #31

Авторизация в новом контексте

Всем привет, возник вопрос:
Когда пользователь авторизован в админке, то это без проблем можно проверить в контексте web
{if $_modx->hasSessionContext('mgr')}OK{/if}
Но возникает проблема в новом созданном контексте, там этот метод не работает.
Нашёл в сообществе пост, где Василий поделился плагином, который может авторизовать в любом контексте
<?php
if ($modx->event->name == 'OnWebPageInit') {
   if ($modx->user->hasSessionContext('mgr') && !$modx->user->hasSessionContext($modx->context->key)) {
	$modx->user->addSessionContext($modx->context->key);
   }
}

Но проблема в том, что первая часть условия не срабатывает в новом контексте и авторизация не происходит.
Подскажите как можно из любого контекста проверить авторизован ли пользователь в админке?
31 октября 2017, 07:38
modx.pro
3 033
0

callback на добавление в корзину (id товара)

Всем привет, возникла задача поставить цель на добавление в корзину определённого товара.
В miniShop2 есть система коллбеков, однако как добавить в ответ сервера поле с id товара не разобрался.
Я использую такой код:
miniShop2.Callbacks.add('Cart.add.response.success', 'add_ok', function(response) {
    console.log(response.data)
  });
//и в response.data получаю следующие поля
//key:"33e75ff09dd601bbe69f351039152189"
//total_cost:7500
//total_count:1
//total_weight:0
Как сделать, чтобы в ответ прилетало также поле id товара?
24 октября 2017, 07:01
modx.pro
1
4 184
0

Как реализовать белый список get параметров?

Всем привет! Сегодня возникла довольно параноидальная SEO задача — создать на сайте белый список допустимых гет-параметров, которые будут обрабатываться системой, а всё остальное должно редиректить на канонический url страницы, всё это с целью избежать возможный дублей.

Допустим белый список содержит следующее — utm_,yclid,query
Адрес сайта — site.ru/some-page/?utm_yandex=11 — должна обрабатываться и отдавать минимум код 200 или другая логика, например если это параметр для поиска по сайту.

А такой адрес — site.ru/some-page/?bad_param=1 — должен отредиректить с кодом 301 на канонический url — site.ru/some-page/

Как лучше реализовать такую задачу, есть идеи?
Мне приходят в голову такие варианты, либо всё через htaccess писать, либо создавать плагин, который каждый запрос будет мониторить, но вот с плагинами я не очень силён, поэтому может, кто подскажет пример такого решения?
23 октября 2017, 11:28
modx.pro
1 018
0

Как в запросе к базе данных получить id записи

Всем привет! Возник вопрос как получить id записи в базу данных, после выполнения запроса INSERT
Допустим я записываю в базу каждое посещение страницы с некоторыми полями, id генерируется автоматом с автоинкрементом.
Как получить в переменную id записи которая только что записалась в базу?
В старых версиях PHP была такая функция: mysql_insert_id(), которая возвращала такой id
Но как получить его через PDO в MODX не могу понять?
Знатоки помогите, пожалуйста.
18 октября 2017, 07:10
modx.pro
1 184
0

атрибуты ссылки - поле ещё функциональное или нет?

Всем привет, сегодня один клиент спросил про поле в админке — атрибуты ссылки и я чё-то залип с ответом, помню ещё года 2 назад по-моему это поле использовалось при генерации ссылок на ресурс, для установки дополнительных атрибутов или для генерации меню сайта, но сегодня попробовал туда позаписывать всяких атрибутов и ни один компонент ни один MODX тег так или иначе связанный с генерацией ссылок не стал использовать это поле.
Вопрос — сегодня это поле имеет хоть какое-то значение в работе системы? Или его можно юзать для своих целей, не переживая, что значения этого поля вдруг попадут куда не надо?
15 октября 2017, 18:06
modx.pro
4 361
0

Циклы в Fenom - таблица по 4 в ряд

Всем привет, изучая Fenom пытаюсь решать частые задачи на сайтах и сегодня возникла следующая:
Нужно вывести таблицу названий стран, всего их 88 по 4 названия в одной строке, то есть должно получится 22 ряда по 4 столбика со значениями.
Пробовал использовать для определения текущей итерации параметр index, но он всегда начинается с ноля, дополнительный свой счётчик создать не получилось, так же встала проблема, что конструкция {continue} не работает, сразу ломается весь цикл и ничего не выводится.
Вот пример как я пытаюсь это сделать:
//Пример массива со странами
{var $countryArray = [
"ag"=>"Антигуа и Барбуда",
"al"=>"Албания",
"am"=>"Армения",
"at"=>"Австрия"
]
<table>
    <tbody>
    {foreach $countryArray as $key => $value index=$index first=$first}
        <tr>
              <td class="country_{$key}">{$value}</td>
        </tr>
    {/foreach}
    </tbody>
</table>
В этом коде каждая страна выводится в своей строке таблицы.
Подскажите как можно вывести все страны по 4 в ряд на Fenom?
10 октября 2017, 08:17
modx.pro
1
3 198
0

Все url сайта через / в окончании

Привет, дорогое сообщество!
Вот уж не думал, что мне попадётся капризный сайт для которого принципиально важно сделать все url
с окончанием /
В сообществе уже не раз обсуждалась данная проблема, но, честно говоря универсального решения, по-моему так и не было найдено. Собственно, поэтому и пишу ещё раз вопрос на эту тему, может что нибудь придумается в этот раз.
И так проблема:
1)В MODX по-умолчанию все контейнеры имеют слеш на конце, простые ресурсы нет, но зато они имеют окончание .html
06 октября 2017, 12:37
modx.pro
2 086
0

Fenom циклы

Всем привет!
Сегодня столкнулся с необходимостью просто в цикле вывести числа от 1 до 45 и решил для этого использовать Fenom.
В качестве цикла взял самый обычный for, в документации нет ни одного примера использования.
В итоге у меня получилось вот такая фигня:
{for $counter=0 to=45 index=$index}
                    {if $index == 0}
                        {continue}
                    {/if}
                    <option>{$index}</option>
{/for}
Кто нибудь может продемонстрировать нормальный пример поизящнее этого, так как у меня любые манипуляции с параметрами цикла сразу приводят к 500 ошибке.
Нужно просто вывести числа от 1 до 45 включительно.
04 октября 2017, 07:35
modx.pro
2
8 365
0

Как парсить страницы своего же сайта?

Всем привет!
Возник вопрос как в сниппете имея id ресурса, послать запрос на эту страницу, распарсить и получить самое первое изображение в контенте и вернуть адрес на него?
03 октября 2017, 09:56
modx.pro
2
1 589
0

Необычная сортировка pdoResources

Приветствую, дорогое сообщество!
Возникла сегодня задача отсортировать документы, полученные через pdoResoruces по одному из полей тв-шки сделанной при помощи MIGX таблички.
Структура migx-tv:
1)name
2)order
В документации pdoTools, сказано, что в качестве поля для сортировки можно указывать tv-поля, но как указать tv-поле, которое входить в состав migx-tv, а именно нужно поле — order?

Я подумал, что можно решить задачу передав в pdoResources в параметр resources нужную мне последовательность id ресурсов и он выведет их, но это не сработало, скорее всего потому, что существует параметр сортировки sortby со значением по-умолчанию, и ему нельзя указать, что, типа, смотри в последовательность, указанную в параметре resources, что было бы очень полезным, так как часто эти id получаются каким либо другим сниппетом и, собственно тогда моя задача была бы решена.
29 сентября 2017, 14:33
modx.pro
2 160
0