Николай · 29 августа 2015, 16:54 Делал очень давно, сейчас бы сделал по другому, но что есть, то есть ) Сниппет adsense <?php //спустя сколько символов искать перенос строки и вставлять рекламу? $nu = 3800; //Код рекламы $adsense = <<<HTML <div class="sense"> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:inline-block;width:728px;height:90px" data-ad-client="ca-pub-1233335915169539" data-ad-slot="2233378009"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script></div> HTML; $a = preg_replace('@([^^]{'.$nu.'}.*?)(\r?\n\r?\n|</p>)@', "\\1$adsense\\2", trim($content), 1); return $a;Вызов (в шаблоне вместо [[*content]])[[adsense? &content=`[[*content]]`]] Вопросы / Вставка рекламы после n-го абзаца 20 +1 5
Илья Уткин · 25 августа 2015, 13:52 Нашел я, в чем проблемка. На Shared-хостингах распространена практика использования связки NGINX и Apache. В этом случае вся статика (картинки и текстовые файлы) обрабатывается NGINX'ом, а php-файлы обрабатывает Apache. Таким образом, файл /core/docs/changelog.txt будет доступен независимо от того, что указано в .htaccess, а MODX проверяет доступность именно этого файла. Выход один. Сначала проверить, что у вас не открывается в браузере файл /core/cache/logs/error.log, а потом просто удалить файл changelog.txt Тогда ошибка исчезнет. Новости и события / Версии MODX 2.4.0-pl и 2.3.6-pl 128 +1 3
Василий Наумкин · 07 августа 2015, 05:24 В pdoResources задача решается несколько иначе: [[!pdoResources? &includeTVs=`manuf,diag,color` &where=`{ "manuf":"Sony", "diag:IN":[65,85], "color:IN":["black","gray"] }` ]]В принципе, там есть и &tvFilters, но только как временная замена при миграции c getResources. Пользоваться этим параметром я никому не советую — &where гораздо гибче, лучше и удобнее. Вот здесь кратко написано, а вот здесь значительно подробнее. Пошаговые инструкции / Сложная выборка по TV параметрам в getResources 13 +3 4
Сергей · 30 июля 2015, 02:58 В общем заработало у меня вот как: <script> $(function() { var availableTags = [ [[pdoResources? &tpl=`tplTags` &limit=`0` &depth=`0` &parents=`1` &includeTVs=`tag`]] ]; $( "#tags" ).autocomplete({ source: availableTags, minLength: 2, select:function(e,ui) { location.href = ui.item.the_link; } }); }); </script>Чанк tplTags содержит: {label:"[[+tv.tag]]", the_link:"/[[~[[+id]]]]"}, И все бы хорошо, но теперь встали следующие два вопроса: 1. Как вынести этот скрипт в файл .js? (pdoResources из файла .js не запускается) 2. Если пользователь вбивает значение, отсутствующее в tv.tag, как вывести сообщение аля: «По Вашему запросу ничего не найдено»? Спасибо! Вопросы / Как сделать поиск с подсказками? 18 0 1
Илья · 17 июля 2015, 21:40 Чуть подредактировал, код остался кривым. Сейчас корректно проверяется на fullname и username. Убирает введенные пробелы в начале и конце имени. <?php switch ($modx->event->name) { case 'OnBeforeCommentSave': $name = filter_input(INPUT_POST, 'name' ); $count = $modx->getCount('modUser', array('username' => trim($name))); if ($id != 0) return ""; if ($count > 0) { $modx->event->output('<b>Нельзя комментировать под чужим именем.</b>'); } $count = $modx->getCount('modUserProfile', array('fullname' => trim($name))); if ($id != 0) return ""; if ($count > 0) { $modx->event->output('<b>Нельзя комментировать под чужим именем.</b>'); } break; } Вопросы / Гость комментирует от имени пользователя 17 0 1
MatrixID · 27 июня 2015, 06:26 проблема решена, всем спасибо — рабочий вариант: [[!#GET.page:lt=`2`:then=`[[!$INTRO]]`]] Вопросы / Вывод материала только на первой странице пагинаци 7 0 1
Fi1osof · 18 июня 2015, 10:13 &where=`{"parent:not in":[41,35,47............]}` Вопросы / WHERE json != 6 +1 2
Виктор · 09 апреля 2015, 23:05 Хотел писать js галерею, но что-то вдохновения нет;( Так что держите немного моего гавнокода(т.к. я не искушен PHP), вдруг пригодится: <?php /* N - Порядковый номер дня недели в соответствии со стандартом ISO-8601 (добавлен в версии PHP 5.1.0) от 1 (понедельник) до 7 (воскресенье) *** G - Часы в 24-часовом формате от 0 до 23 */ $weekDay = date("N"); /* Текущий день недели на сервере */ $day = date("j"); /* Текущий день на сервере */ $hour = date("G"); /* Текущий час на сервере */ if (in_array($hour, explode(",", $ghours)) || !isset($ghours) ){ /* Проверка на соответсвие часа*/ switch($gtype) { case "evenDays": // Четные дни if( $day%2 == 0 ) { return $info; } break; case "oddDays": // Нечетные дни if( $day%2 > 0 ) { return $info; } break; case "onDays": // Рабочие дни if( $weekDay != 7 || $weekDay != 6 ) { return $info; } break; case "offDays": // Выходные дни if( $weekDay == 7 || $weekDay == 6 ) { return $info; } break; case "weekDays": // Дни недели if (in_array($weekDay, explode(",", $gweekDays))){ /* Проверка на соответсвие дня */ return $info; } break; case "always": // Выходные дни return $info; break; default: if (in_array($day, explode(",", $gdays))){ /* Проверка на соответсвие дня */ return $info; } break; } }Вызовы: [[!OutputTime? &gdays=`1,2,3,4,5` &ghours=`8,9,10,11,12,14,15,16` &info=`выводим в указанные дни` ]] [[!OutputTime? >ype=`weekDays` &gweekDays=`1,2,3,4,5` &info=`выводим в указанные дни недели (пн-пт)` ]] [[!OutputTime? >ype=`weekDays` &gweekDays=`1,2,3,4,5` &ghours=`8,9,10,11,12,14,15,16` &info=`выводим в указанные дни недели (пн-пт) с 8 до 16` ]] [[!OutputTime? >ype=`always` &info=`выводим каждый день` ]] [[!OutputTime? >ype=`always` &ghours=`8,9,10,11,12,14,15,16` &info=`выводим каждый день в указанное время` ]] [[!OutputTime? >ype=`evenDays` &info=`выводим по четным дням` ]] [[!OutputTime? >ype=`evenDays` &ghours=`8,9,10,11,12,14,15,16` &info=`выводим по четным дням в указанное время` ]] [[!OutputTime? >ype=`oddDays` &info=`выводим по нечетным дням` ]] [[!OutputTime? >ype=`oddDays` &ghours=`8,9,10,11,12,14,15,16` &info=`выводим по нечетным дням в указанное время` ]] [[!OutputTime? >ype=`onDays` &info=`выводим в рабочие дни` ]] [[!OutputTime? >ype=`onDays` &ghours=`8,9,10,11,12,14,15,16` &info=`выводим в рабочие дни в указанное время` ]] [[!OutputTime? >ype=`offDays` &info=`выводим в выходные` ]] [[!OutputTime? >ype=`offDays` &ghours=`8,9,10,11,12,14,15,16` &info=`выводим в выходные в указанное время` ]]Вроде бы все потестил, но возможны ошибки) Готовые решения / Выводим текст или чанк на сайте, по графику. 9 +2 3
Alexander V · 01 апреля 2015, 03:06 Уже есть 2 группы. Соответственно надо отдавать результат через условие. Примерно так [[!+modx.user.id:memberof=`Administrator`]]docs.modx.pro/system/the-basics/filters-input-and-output Вопросы / Два личных кабинета для разных групп пользователей 8 0 1
Василий Наумкин · 29 января 2015, 17:14 Оказывается, нужно сравнивать с 1: [[!+modx.user.id:isloggedin:is=`1`:then=`Yes`:else=`No`]] [[!+modx.user.id:isnotloggedin:is=`1`:then=`No`:else=`Yes`]] Вопросы / Как сделать только для авторизованных? 13 +1 2
[videoGallery] Видео галерея YouTube, Vimeo Невозможно установить пакет с подписью: videogallery-1.4.0-beta Ошибка установки Error в /core/packages/videogallery-1.4.0-beta/modCategory/7fc931a7772edc9752c16e9c41eb5e52.reso...
mxBoard: канбан-доска для команд, людей и ИИ-агентов в MODX 3 Привет, добавил пользователя в группу mxBoard(4), создал токен. Добавляю все в postman пишет: rest: { «success»: false, «message»: «Недействительный токен.», «data...
Релиз miniShop2 ver. 4.4.1 & 4.4.2 Подскажите пожалуйста, может я что-то не знаю или упустил. Но есть ли решение по глюку с radio? Указываешь свое radio c одинаковым name и в результате при переключении получаешь вс...
Плагин EnvBadge: визуальный индикатор окружения в админке MODX3 Расскажите пожалуйста как вы настраиваете сайт на MODX 3 чтобы был dev, prod, stage. Можете описать workflow? Допустим у меня 80% — это магазины, там клиенты, продажи, все онлай...
MaxNotify Обновление компонента 1.3.0-pl (22.07.2026) — добавлено автоматическое получение полей через msOrder->toArray(); — массивы и объекты безопасно пропускаются; — стандартные...
MyFavorites MyFavorites — 3.0.0-beta Первая версия для MODX Revolution 3.x — компонент полностью переписан с нуля (PHP >= 8.4, namespaced-ядро MODX 3, PSR-4, сервис-ориентированная архит...
Сниппет adsense
Вызов (в шаблоне вместо [[*content]])
Таким образом, файл /core/docs/changelog.txt будет доступен независимо от того, что указано в .htaccess, а MODX проверяет доступность именно этого файла.
Выход один. Сначала проверить, что у вас не открывается в браузере файл /core/cache/logs/error.log, а потом просто удалить файл changelog.txt
Тогда ошибка исчезнет.
В принципе, там есть и &tvFilters, но только как временная замена при миграции c getResources. Пользоваться этим параметром я никому не советую — &where гораздо гибче, лучше и удобнее.
Вот здесь кратко написано, а вот здесь значительно подробнее.
Чанк tplTags содержит:
И все бы хорошо, но теперь встали следующие два вопроса:
1. Как вынести этот скрипт в файл .js? (pdoResources из файла .js не запускается)
2. Если пользователь вбивает значение, отсутствующее в tv.tag, как вывести сообщение аля: «По Вашему запросу ничего не найдено»?
Спасибо!
Сейчас корректно проверяется на fullname и username. Убирает введенные пробелы в начале и конце имени.
Fi1osof·Так что держите немного моего гавнокода(т.к. я не искушен PHP), вдруг пригодится:
Вызовы:
Вроде бы все потестил, но возможны ошибки)
Примерно так docs.modx.pro/system/the-basics/filters-input-and-output