Станислав

Станислав

С нами с 25 марта 2017; Место в рейтинге пользователей: #258

Подскановка id в поле alias.

Есть сниппет. Он создает документ.
Сейчас 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;
Сергій
10 марта 2020, 06:38
modx.pro
2
392
0

Изменение изображения при наведении на пункт меню

Здравствуйте, уважаемые колеги!
Подскажите, пожалуйста, как можно реализовать такое действие через тивишки (или, возможно, как-то по-другому)?
При наведении на пункт меню, меняется изображение.
Сергей
23 февраля 2020, 17:13
modx.pro
1
648
0

Canonical создаваемый msProducts. Как отключить?

Добрый день.
Есть вызов сниппета msProducts в обертке mFilter2 для отображения товаров.
В исходном коде страницы появляется canonical. Насколько я понимаю его добавляет именно msProducts

Существуют ли способы управлять этим поведением? К примеру — отключить вообще его добавление на страницу.

спасибо.
Александр Мельник
21 февраля 2020, 11:50
modx.pro
1
688
0

500 ошибка как поступить дальше?

Знаю многие встречали (так как было много вопросов ко мне) такое что когда ставишь компонент например в зависимостях есть pdoTools, но нет правильной проверки получают 500 ошибку. Или взять второй вариант разрабатываешь свой плагин допустил ошибку или случайно удалил файл в IDE c какого-то компонента и здесь перестала работать админка, так как плагин имел например событие "OnHandleRequest".

Что делать дальше?
Да всё намного проще нежели думают другие
Yurij Finiv
16 февраля 2020, 14:23
modx.pro
2
1 906
+11

[FAQ] Делаем сниппет-обёртку

Данное руководство предназначено в первую очередь для разработчиков, только начинающих знакомиться с MODX. При разработке сайта они как правило используют уже готовые решения. И часто так случается, что такое решение нужно подогнать под текущую задачу. Самая первая мысль, которая приходит им в голову — изменить тот или иной сниппет. Ведь именно сниппеты отвечают за логику работы. Ну ещё плагины, но новички обычно в них не лезут.
Совсем зелёный разработчик лезет в исходный сниппет и творит там своё колдовство. И безумно довольный выкатывает своё творение заказчику, раздуваясь от своего величия.

Но более осторожный юнец сначала зайдет в сообщество, чтобы поинтересоваться, нет ли такого же решения, но с перламутровыми пуговицами. И случайным образом узнаёт, что править исходный код ни в коем случае нельзя, потому что следующее обновление затрёт все изменения, и что есть достаточно простой способ решить задачу кастомизации. Это сниппет-обёртка.
Сергей Шлоков
12 февраля 2020, 14:55
modx.pro
15
2 100
+23

Расширение файла `` не допускается

Столкнулся с такой вот проблемой Расширение файла `` не допускается:


В системных настройках 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
При этом файл успешно загружался и всё равно было такое уведомление.
Мне конечно же не мешало, но заказчику не нравилось.

Кирилл
27 декабря 2019, 12:03
modx.pro
8
2 638
+8

Стоимость доставки отдельной строкой в оформление заказа MS2

На заметку.

Делаем колбеки miniShop2 для всех

Хочу сразу отметить, что решение уже есть в просторах сообщества MS, хочется расставить акценты и более краткой форме поделиться с решением данной проблемы.

Итак, приступим.

Сначала расширим класс msOrderHandler назовем его customOrderInterface

Олег Щавелев
02 декабря 2019, 03:01
modx.pro
14
2 867
+16

Плюс и минус в каунте корзины MS2

Досточно простой вопрос, который мучает начинающих разработчиков. Решил поделиться решением, как сделать кнопки плюс и минус в корзине MS2. Что бы все было «по-фуншую»

Начнем 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>
...
Олег Щавелев
02 декабря 2019, 02:08
modx.pro
14
2 816
+8

Как сделать редирект из плагина?

Друзья, памагитииии! Не хватает мозгов, есть плагин, который делает из URL поддомены, тут порядок. И сервер настроен, все поддомены смотрят на основной домен.
Плагин запускается на события 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);
Роман
26 ноября 2019, 17:08
modx.pro
1
652
0

создание 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
Станислав
09 сентября 2019, 13:46
modx.pro
1
652
0