Станислав
С нами с 25 марта 2017; Место в рейтинге пользователей: #260Подскановка id в поле alias.
Есть сниппет. Он создает документ.
Сейчас alias формируется из tv+рандом. Как сделать так чтобы в alias подставлялся id документа который был создан.
Код сниппета:
Сейчас alias формируется из tv+рандом. Как сделать так чтобы в alias подставлялся id документа который был создан.
Код сниппета:
<?php
$profile = $modx->user->getOne('Profile');
$userid = $profile ? $profile->get('id') : '';
// Сниппет будет получать данные из формы методом POST
$title = $_POST['title'];
$content = $_POST['message'];
$introtext = $_POST['introtext'];
$description = $_POST['description'];
$parent = $_POST['parent'];
$template = $_POST['template'];
$user_id = $_POST['user_id'];
$publishedon = date('Y-m-d H:i:s');
// Если некоторые значения не будут указаны,
// они будут установлены по умолчанию
if (!$introtext) $introtext = $title;
if (!$description) $description = $introtext;
if (!$parent) $parent = 6;
if (!$template) $template = 6;
// Создаем ресурс
$newResource = $modx->newObject('modResource');
$permitted_chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$alias = $userid.'-'.substr(str_shuffle($permitted_chars), 0, 32);
// Заполняем нужные значения
$newResource->set('pagetitle',$title);
$newResource->set('longtitle',$title);
$newResource->set('description',$description);
$newResource->set('introtext',$introtext);
$newResource->set('content',$content);
$newResource->set('alias',$alias);
$newResource->set('template',$template);
$newResource->set('published',1);
$newResource->set('parent',$parent);
$newResource->set('publishedon',$publishedon);
$id = $newResource->get('id');
// Сохраняем ресурс
if ($newResource->save()) {
// Очищаем кеш, чтобы изменения были видны сразу
$modx->cacheManager->clearCache();
}
$newResource->setTVValue('user_id', $user_id);
$newResource->setTVValue('project_status', '<span class="badge badge-primary">Відкритий</span>');
return true;
Изменение изображения при наведении на пункт меню
Здравствуйте, уважаемые колеги!
Подскажите, пожалуйста, как можно реализовать такое действие через тивишки (или, возможно, как-то по-другому)?
При наведении на пункт меню, меняется изображение.
Подскажите, пожалуйста, как можно реализовать такое действие через тивишки (или, возможно, как-то по-другому)?
При наведении на пункт меню, меняется изображение.
Canonical создаваемый msProducts. Как отключить?
Добрый день.
Есть вызов сниппета msProducts в обертке mFilter2 для отображения товаров.
В исходном коде страницы появляется canonical. Насколько я понимаю его добавляет именно msProducts
Существуют ли способы управлять этим поведением? К примеру — отключить вообще его добавление на страницу.
спасибо.
Есть вызов сниппета msProducts в обертке mFilter2 для отображения товаров.
В исходном коде страницы появляется canonical. Насколько я понимаю его добавляет именно msProducts
Существуют ли способы управлять этим поведением? К примеру — отключить вообще его добавление на страницу.
спасибо.
500 ошибка как поступить дальше?
Знаю многие встречали (так как было много вопросов ко мне) такое что когда ставишь компонент например в зависимостях есть pdoTools, но нет правильной проверки получают 500 ошибку. Или взять второй вариант разрабатываешь свой плагин допустил ошибку или случайно удалил файл в IDE c какого-то компонента и здесь перестала работать админка, так как плагин имел например событие "OnHandleRequest".
Что делать дальше?
Да всё намного проще нежели думают другие
Что делать дальше?
Да всё намного проще нежели думают другие
[FAQ] Делаем сниппет-обёртку
Данное руководство предназначено в первую очередь для разработчиков, только начинающих знакомиться с MODX. При разработке сайта они как правило используют уже готовые решения. И часто так случается, что такое решение нужно подогнать под текущую задачу. Самая первая мысль, которая приходит им в голову — изменить тот или иной сниппет. Ведь именно сниппеты отвечают за логику работы. Ну ещё плагины, но новички обычно в них не лезут.
Совсем зелёный разработчик лезет в исходный сниппет и творит там своё колдовство. И безумно довольный выкатывает своё творение заказчику, раздуваясь от своего величия.
Но более осторожный юнец сначала зайдет в сообщество, чтобы поинтересоваться, нет ли такого же решения, но с перламутровыми пуговицами. И случайным образом узнаёт, что править исходный код ни в коем случае нельзя, потому что следующее обновление затрёт все изменения, и что есть достаточно простой способ решить задачу кастомизации. Это сниппет-обёртка.
Совсем зелёный разработчик лезет в исходный сниппет и творит там своё колдовство. И безумно довольный выкатывает своё творение заказчику, раздуваясь от своего величия.
Но более осторожный юнец сначала зайдет в сообщество, чтобы поинтересоваться, нет ли такого же решения, но с перламутровыми пуговицами. И случайным образом узнаёт, что править исходный код ни в коем случае нельзя, потому что следующее обновление затрёт все изменения, и что есть достаточно простой способ решить задачу кастомизации. Это сниппет-обёртка.
Расширение файла `` не допускается
Столкнулся с такой вот проблемой Расширение файла `` не допускается:
В системных настройках upload_files конечно же был указан png
Мне конечно же не мешало, но заказчику не нравилось.
В системных настройках upload_files конечно же был указан png
txt,html,htm,xml,js,css,zip,gz,rar,z,tgz,tar,mp3,mp4,aac,wav,au,wmv,avi,mpg,mpeg,pdf,doc,docx,xls,xlsx,ppt,pptx,tiff,svg,svgz,gif,psd,ico,bmp,odt,ods,odp,odb,odg,odf,md,ttf,woff,eot,scss,less,css.map,jpg,jpeg,png,php
При этом файл успешно загружался и всё равно было такое уведомление.Мне конечно же не мешало, но заказчику не нравилось.
Стоимость доставки отдельной строкой в оформление заказа MS2
На заметку.
Делаем колбеки miniShop2 для всех
Хочу сразу отметить, что решение уже есть в просторах сообщества MS, хочется расставить акценты и более краткой форме поделиться с решением данной проблемы.
Итак, приступим.
Сначала расширим класс msOrderHandler назовем его customOrderInterface
Делаем колбеки miniShop2 для всех
Хочу сразу отметить, что решение уже есть в просторах сообщества MS, хочется расставить акценты и более краткой форме поделиться с решением данной проблемы.
Итак, приступим.
Сначала расширим класс msOrderHandler назовем его customOrderInterface
Плюс и минус в каунте корзины MS2
Досточно простой вопрос, который мучает начинающих разработчиков. Решил поделиться решением, как сделать кнопки плюс и минус в корзине MS2. Что бы все было «по-фуншую»
Начнем c разметки. Я показываю на страндартной теме MS2. Вносим правки в чанк tpl.msCart
Начнем c разметки. Я показываю на страндартной теме MS2. Вносим правки в чанк tpl.msCart
...
<td class="count">
<form method="post" class="ms2_form" role="form">
<input type="hidden" name="key" value="{$product.key}"/>
<div class="form-group">
<div class="input-group input-group-sm qty">
<span class="input-group-prepend">
<span class="input-group-text minus input_count_action">-</span>
</span>
<input type="number" name="count" value="{$product.count}" class="form-control"/>
<span class="input-group-append">
<span class="input-group-text plus input_count_action">+</span>
<span class="input-group-text">{'ms2_frontend_count_unit' | lexicon}</span>
</span>
</div>
<button class="btn btn-sm" type="submit" name="ms2_action" value="cart/change">
↻</button>
</div>
</form>
</td>
...
Как сделать редирект из плагина?
Друзья, памагитииии! Не хватает мозгов, есть плагин, который делает из URL поддомены, тут порядок. И сервер настроен, все поддомены смотрят на основной домен.
Плагин запускается на события OnHandleRequest и OnPageNotFound.
Вначале в цикле делаем список поддоменов из страниц, которые будут отображаться при переходе по ним. Все работает. Порядок. Если есть страница например site.ru/page то она откроется и ее контент по адресу page.site.ru.
Но вот засада, страница так же открывается и по старому адресу site.ru/page как теперь докрутить плагин так, что бы при переходе на страницу, был редирект на ее созданный поддомен?
Я думаю нужно получить ID и ALIAS текущей страницы, и сделать редирект на ее поддомен, но ничего не получается :(
пробовал так
Плагин запускается на события OnHandleRequest и OnPageNotFound.
Вначале в цикле делаем список поддоменов из страниц, которые будут отображаться при переходе по ним. Все работает. Порядок. Если есть страница например site.ru/page то она откроется и ее контент по адресу page.site.ru.
Но вот засада, страница так же открывается и по старому адресу site.ru/page как теперь докрутить плагин так, что бы при переходе на страницу, был редирект на ее созданный поддомен?
Я думаю нужно получить ID и ALIAS текущей страницы, и сделать редирект на ее поддомен, но ничего не получается :(
пробовал так
$url = MODX_URL_SCHEME.$doc->get('alias').'.site.ru';
$modx->sendRedirect($url);
создание migx параметров при импорте из 1c
Добрый день!
есть такой плагин
есть такой плагин
<?php
if ($modx->event->name != 'mSyncOnProductImport') return;
$analogTitle = $properties["Аналог"];
$analog = $modx->getObject('modResource', array('pagetitle' => $analogTitle));
$analogId = $analog ? $analog->id : 0;
$colors = explode('•#', $properties["Цвет маркера"]);
$colorName = $colors[0];
$color = count($colors) > 1 ? $colors[1] : "";
if (empty($color) && $analogId == 0) return;
$colorTV = '[{"MIGX_id":"1","colorname":"' . $colorName . '","direct":"' . $analogId . '","color":"' . $color . '"}]';
$resource->setTVValue('scolor', $colorTV);
создает таблицу в migx, но только одну, а как модернизировать, что бы создавались все параметры, если их больше 1