Бесплатно отвечаю на вопросы по ModX Revo/Evo

jslby
На сайте с 21.03.2014
Offline
49
#11
psics:
как обрезать [+introtext+] ModX evo 1.0.12-d6. Пробовал [+introtext:word_limit=`10`+] и [+introtext:limit=`100`+] не помогло - вообще пропадает текст

Для этих целей используем сниппет truncate. Код сниппета:


<?php
$lenf = $len;

//Заменяет символы перевода строки на HTML тег
$order = array("\r\n", "\n", "\r");
$replace = '<br />';
$what = str_replace($order, $replace, $text);

if (strlen($what) > $lenf) {
$what = preg_replace('/^(.{' . $lenf . ',}? ).*$/is', '$1', $what) . '...';
}
return $what;
?>

Вызов сниппета будет таким:

[[truncate? &text=[+introtext+] &len=200]]

Сниппет обрежет текст до определенного количества символов не обрезая слова и добавит в конце три точки.

psics
На сайте с 02.04.2009
Offline
130
#12

спасибо работает. Плюс в карму)

jslby
На сайте с 21.03.2014
Offline
49
#13
psics:
спасибо работает. Плюс в карму)

Рад помочь. Обращайтесь еще:)

M5
На сайте с 12.08.2009
Offline
221
M25
#14

jslby, подскажите и мне, пожалуйста /ru/forum/874681

► Рейтинг серверов — ТОП10 ◄
Y
На сайте с 20.12.2010
Offline
32
#15

Добрый день.

Как сделать, чтобы при нажатии на ссылку документ открывался с другим шаблоном?

Ну, то есть конечная цель - чтобы уже существующие документы сайта открыть в модальном окне, но в пустом шаблоне. Ну вроде как вывод "подсказки" или "дополнительного материала".

Плодить дубли, копируя уже готовый документ в документ с пустым шаблоном - не айс.

Может есть какое-либо решение?

С открытием в модальном проблем нет - решений куча, я выбрала готовый прекрасный пакет sekfancybox

Там куча настроек, но про смену шаблона разработчик не подумал ((

jslby
На сайте с 21.03.2014
Offline
49
#16
yawell:
Добрый день.
Как сделать, чтобы при нажатии на ссылку документ открывался с другим шаблоном?

Ну, то есть конечная цель - чтобы уже существующие документы сайта открыть в модальном окне, но в пустом шаблоне. Ну вроде как вывод "подсказки" или "дополнительного материала".

Плодить дубли, копируя уже готовый документ в документ с пустым шаблоном - не айс.
Может есть какое-либо решение?

С открытием в модальном проблем нет - решений куча, я выбрала готовый прекрасный пакет sekfancybox
Там куча настроек, но про смену шаблона разработчик не подумал ((

Попробуйте воспользоваться следующим плагином:


<?php
if ($modx->event->name == 'OnWebPageInit' && isset($_GET['template'])) {
$template = (int) $_GET['template'];
// Допустимые шаблоны
if (!in_array($template, array(0,1,2))) return true;

// Получаем ресурс
if (!is_object($modx->resource)) {
$modx->resource = $modx->request->getResource($modx->resourceMethod, $modx->resourceIdentifier);
}
// Меняем шаблон у ресурса
$modx->resource->template = $template;
// Делаем ресурс не кэшируемым
$modx->resource->cacheable = false;
}

Т.е. теперь можно сменить шаблон вот так

example.com/page.html?template=1

example.com/page.html?template=2

example.com/page.html?template=3

Так же его можно использовать для отдачи ресурсов аяксом, т.е. просто ставиться шаблон 0, ну можно еще передать к примеру параметр $_GET['ajax'] = 1, и ставить шаблон 0 при таком параметре

Вообще на этом этапе можно вытворять с ресурсом что угодно, поля менять, контент, любые параметры которые есть у ресурса при определенных условиях

Y
На сайте с 20.12.2010
Offline
32
#17

Нет, не получилось ((

Я сделала плагин с вашим кодом.

Нужно ли его подвязывать к каким либо событиям? Нужно ли прописать параметры к нему?

потом в ссылке, или как я понимаю, в адресной строке тоже должно работать? дописываю к адресу ресурса ?template=5

но.. ничего не меняется ((

jslby
На сайте с 21.03.2014
Offline
49
#18
yawell:
Нет, не получилось ((
Я сделала плагин с вашим кодом.
Нужно ли его подвязывать к каким либо событиям? Нужно ли прописать параметры к нему?

потом в ссылке, или как я понимаю, в адресной строке тоже должно работать? дописываю к адресу ресурса ?template=5

но.. ничего не меняется ((

Да, нужно. К событию OnWebPageInit

Y
На сайте с 20.12.2010
Offline
32
#19

получила ошибку

Parse error: syntax error, unexpected '*', expecting ',' or ')'

Mad_Man
На сайте с 10.11.2008
Offline
162
#20
yawell:
получила ошибку

Parse error: syntax error, unexpected '*', expecting ',' or ')'

Замените "***91;" на "[" и "***93;" на "]".

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий