19 ноября 2014, 13:29 Лучше на начальном этапе поправить пару небольших ошибок, чем потом думать, куда пол сайта пропало из-за верстки или какого нибудь тега незакрытого Новости и события / [Tickets] Сообщения 20 0
19 ноября 2014, 11:41 Не очень корректно как то: после добавления комментария ol и li оказались в одном ряду, и еще один ol вложен внутрь другого Новости и события / [Tickets] Сообщения 20 0
18 ноября 2014, 20:15 Я переходил давно. В целом — ставим тикетс, настраиваем, как нужно и смотрим различия между документами в БД. Затем приводим одно к другому. Всю работу я делал через phpmyadmin. Ну в принципе еще наверное можно написать сниппет по импорту-экспотру одного в другое. Вопросы / Как перейти с Articles на Tickets? 1 0
18 ноября 2014, 10:39 Какой тут порядок, заходите в таблицу и сбрасываете. Я не запаривался, у меня на одном из сайтов с 50000 начинаются id товара, ничего, продажи идут =) Вопросы / Сбросить нумерацию всех id в modx revo 8 +1
18 ноября 2014, 08:42 В phpmyadmin есть такие функции Вопросы / Сбросить нумерацию всех id в modx revo 8 0
17 ноября 2014, 10:17 Ну вот сейчас вы сказали: что нужны вывести «Вы экономите:..», это уже нормальный вопрос. Простой сниппет [[!youSave? &price=`[[+price]]` &old_price=`[[+old_price]]`]]: $price = empty($price) ? 0 : $price; $old_price = empty($old_price) ? 0 : $old_price; if($old_price > 0){ return 'Вы экномите: '.($old_price - $price); } return '';как то так, не проверял только) Вопросы / Разница цен (вычесть из старой новую) 21 +3 1
14 ноября 2014, 17:36 <?php if (!$modx->user->hasSessionContext('web') ) { die('Not logged!'); } $prefix = trim($modx->getOption('placeholderPrefix', $scriptProperties, 'user.')); $profile = $modx->user->getOne('Profile'); if(isset($_REQUEST['update']) && $_REQUEST['update'] == '1'){ // имя $fullname = (isset($_REQUEST['fullname']) && !empty($_REQUEST['fullname'])) ? $_REQUEST['fullname'] : $profile->get('fullname'); $fullname = trim(strip_tags($fullname)); if(empty($fullname)){ $fullname = 'Без имени'; } $profile->set('fullname', $fullname); //фото $clearphoto = (isset($_REQUEST['clearphoto']) && $_REQUEST['clearphoto'] == '1'); if($clearphoto){ $profile->set('photo', ''); }else{ $photoConfig = array('w' => 48,'h' => 48,'zc' => 1,'bg' => '#fff','f' => 'png'); // если выбран файл if(isset($_FILES['photo']) && isset($_FILES['photo']['tmp_name']) && !empty($_FILES['photo']['tmp_name'])){ $file_info = getimagesize($_FILES['photo']['tmp_name']); if(!empty($file_info)){ // пути $photoFileName = substr(uniqid(), 8).'.png'; $newPath = 'uploads/users/'.$modx->user->get('id').'/'; // проверяем каталог if(!file_exists(MODX_BASE_PATH.$newPath)){ if(!mkdir(MODX_BASE_PATH.$newPath, 0777, true)){ echo "Can`t create directory ".$newPath; } } // перемещаем файл if(move_uploaded_file($_FILES['photo']['tmp_name'], MODX_BASE_PATH.$newPath.$photoFileName)){ // подключаем phpthumb require_once MODX_CORE_PATH.'model/phpthumb/phpthumb.class.php'; // инициализируем $phpThumb = new phpThumb(); $phpThumb->setSourceFilename(MODX_BASE_PATH.$newPath.$photoFileName); foreach ($photoConfig as $k => $v) { $phpThumb->setParameter($k, $v); } // генерируем файл if ($phpThumb->GenerateThumbnail()) { if ($phpThumb->RenderToFile(MODX_BASE_PATH.$newPath.$photoFileName)) { // устанавливаем права на файл, это опционально, зависит от сервера chmod(MODX_BASE_PATH.$newPath.$photoFileName, 0666); // сохраняем изменения $profile->set('photo', $newPath.$photoFileName); } } } } } } // вызываем событие OnBeforeUserFormSave $modx->invokeEvent('OnBeforeUserFormSave',array( 'mode' => modSystemEvent::MODE_UPD ,'id' => $modx->user->get('id') ,'user' => &$modx->user ,'profile' => &$profile )); // сохраняем все изменения $profile->save(); $modx->user->save(); // вызываем событие OnBeforeUserFormSave $modx->invokeEvent('OnUserFormSave',array( 'mode' => modSystemEvent::MODE_UPD ,'id' => $modx->user->get('id') ,'user' => &$modx->user ,'profile' => &$profile )); // устанавливаем плейсхолдер, чтобы показать сообщение $modx->setPlaceholder($prefix.'success', '1'); } // устанавливаем плейсхолдеры для отображения информации $modx->setPlaceholder($prefix.'fullname', $profile->get('fullname')); $modx->setPlaceholder($prefix.'photo', $profile->get('photo')); return '';Форму надеюсь с полями сами сделаете. Поле clearphoto — это checkbox, типа «Удалить аватар». Вопросы / Загрузка аватарок 7 +1 2
14 ноября 2014, 15:59 1. Делаем скрытое поле и проверяем, что бы оно было НЕ заполнено. Скрытое не в смысле type=«hidden», а скрытое способом display:none или что нибудь подобное. Но часто это не надолго спасает. 2. Ставим не капчу, а какой нибудь ява скрипт, когда требуется сдвинуть ползунок или «накликать» в определенном порядке. я обычно 1 делаю, на 90% сайтов спасает Вопросы / Formit защита от ботов без капчи 7 0
14 ноября 2014, 09:01 Add an ORDER BY clause to the query.github.com/modxcms/revolution/blob/master/core%2Fxpdo%2Fom%2Fxpdoquery.class.php#L394 Просто вызываете 2 раза подряд. Вопросы / [ModX Revo] xPDO сортировка вывода по двум полям. Можно ли? 2 0
13 ноября 2014, 14:32 Я даже не знаю… каких нибудь пробелов или служебных символов в именах чанков нет случайно?.. как бы должно работать Вопросы / Правильное оформление условия в шаблоне 17 0
13 ноября 2014, 12:04 Ну да, getChunk конечно же… что-то должно выводится в любом случае, где то ошибка скрывается =) Отлаживайте сниппет. Вопросы / Правильное оформление условия в шаблоне 17 0
13 ноября 2014, 11:29 ... return count($ids) ? $modx->returnChunk('yesChunk') : $modx->returnChunk('noChunk');Иными словами — выносите логику в сниппет. Вопросы / Правильное оформление условия в шаблоне 17 0
12 ноября 2014, 08:57 1. В настройках miniShop2 есть соответствующая. Но позволяет указать только 1 общий шаблон для всех товаров. 2. www.jertix.org/en/blog/modx-revolution/modx-revolution-plugin-changetemplate.html вот такой плагин Вопросы / Minishop2. Шаблон товаров по умолчанию в категории 1 0
11 ноября 2014, 12:04 [[~123? &par1=`val1` &par2=`val2`]] Вопросы / Формирование URL в MODx Revo 16 0
10 ноября 2014, 15:01 Кешированный вызов сниппета с миникорзиной? Вопросы / minishop2, сбрасываются счетчики миникорзины 10 0
07 ноября 2014, 15:33 Плагин с какого то из сайтов: <?php switch ($modx->event->name) { case 'OnWebPageInit': $isMobile = false; if(isset($_SERVER["HTTP_USER_AGENT"])) { $useragent = $_SERVER['HTTP_USER_AGENT']; if(preg_match('/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i',$useragent)||preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i',substr($useragent,0,4))) { $isMobile = true; } } if ($isMobile) { //Устанавливаем ключ для кэша мобильной версии $modx->setOption('cache_resource_key', 'resource/mobile'); } //Устанавливаем настроку и плейсхолдер //к ней может обратиться при необходимости //в сниппетах через $modx->getOption('mobile') //или в чанке через [[++mobile]] $modx->setOption('mobile', $isMobile); $modx->setPlaceholder('+mobile', $isMobile); break; case 'OnLoadWebDocument': $id = $modx->resource->get('id'); $resource = $modx->getObject('modResource',$id); $template = $resource->get('template'); $tmpVar = $modx->getObject('modTemplate',$template); $prop = $tmpVar->get('properties'); $mobileTmp = $prop['mobile_tmp']['value']; if($mobileTmp){ if ($modx->getOption('mobile')) { $modx->resource->set('template', $mobileTmp); } } //} break; }Вешается на пару событий, может для вас что-то излишнее в нем, не знаю. Вопросы / Смена шаблона на лету для мобильных 11 +4 4
07 ноября 2014, 13:30 Смотря какая структура будет. У меня есть сайт в котором 35000 документов, проблем вообще никаких. Но у одного ресурса не более 100-150 дочерних. Если у вас больше — можно в сторону Collections посмотреть. Вопросы / Большое количество ресурсов 1 0
Gallery3x 3.4.0 - вставка галерей прямо из визуального редактора (CKEditor и TinyMCE RTE) Здравствуйте. Есть консольный скрипт Вот почитайте: docs.ivan345.com/books/gallery3x/page/import-ms2galleryphp
[mSync] Новая версия синхронизации с 1С Всем привет. В какой то момент начали сыпаться ошибки: Error 23000 executing statement: INSERT INTO `modx_msync_products` (`product_id`, `uuid_1c`) VALUES ...
Checkbox для модального окна Они не отключены, они платные, чтобы писали только те, кому действительно очень надо. Когда бесплатно люди начинают думать, что я им должен.
[SendIt 2.6.0] Анализ поведения пользователя для защиты от спама (невидимая капча)... Здравствуйте. Делаю личный кабинет на Sendit и со сбросом пароля возникли проблемы. Можете подсказать, в чем ошибка? Список вопросов в одноименном разделе на modx.pro пока пуст, и,...
Minishop + честный знак (продажа маркированной продукции) В нашем случае мы решили убрать всю логику по маркировке сайта.
MiniShop3 - Не выводятся товары дополнительных категорий @SYAN ваша указанная проблема исправлена еще до версии 1.2.3 @Павлик Мышкин завел: github.com/modx-pro/MiniShop3/issues/480 github.com/modx-pro/MiniShop3/issues/481Исправим в б...
MobileDetect 2.0.0-pl функция "планшеты как стандартные браузеры не работает" в 2.1.0-pl баг исправлен
после добавления комментария ol и li оказались в одном ряду, и еще один ol вложен внутрь другого
Простой сниппет [[!youSave? &price=`[[+price]]` &old_price=`[[+old_price]]`]]:
как то так, не проверял только)
Поле clearphoto — это checkbox, типа «Удалить аватар».
2. Ставим не капчу, а какой нибудь ява скрипт, когда требуется сдвинуть ползунок или «накликать» в определенном порядке.
я обычно 1 делаю, на 90% сайтов спасает
Просто вызываете 2 раза подряд.
что-то должно выводится в любом случае, где то ошибка скрывается =)
Отлаживайте сниппет.
2. www.jertix.org/en/blog/modx-revolution/modx-revolution-plugin-changetemplate.html вот такой плагин
Вешается на пару событий, может для вас что-то излишнее в нем, не знаю.
У меня есть сайт в котором 35000 документов, проблем вообще никаких. Но у одного ресурса не более 100-150 дочерних. Если у вас больше — можно в сторону Collections посмотреть.