Сниппет цифры вместо текста в ссылке

Здравствуйте!
Есть ли сниппет, который бы создавал в новости ссылку не текст, а цифры?
Например: site.ru/novosti/025456/
На сайте много новостей и хотелось бы, что бы новости автоматом создавались именно цифрами. (Только раздел новости, а остальные как положено транслитом).
Aleksanders
11 февраля 2021, 20:46
modx.pro
1
514
0

Комментарии: 8

Андрей
11 февраля 2021, 21:34
+1
Есть ли сниппет, который бы создавал в новости ссылку не текст, а цифры?
Нужен не сниппет, а плагин на событие OnDocFormSave, в котором проверять родителя(новости) или нужный шаблон, и генерировать свой alias для документа.
    Aleksanders
    11 февраля 2021, 21:36
    0
    есть ли готовый плагин? Сам написать такой не смогу:(
      Андрей
      11 февраля 2021, 23:14
      +1
      Можно так:
      <?php
      switch ($modx->event->name) {
          case 'OnDocFormSave':
          	if($resource->template == 2) {
          		$title = $resource->id . '-' . date("m-d-y");
          		$alias = $resource->cleanAlias($title);
      	        $resource->set('alias', $alias);
      		$aliasPath = $resource->getAliasPath();
          	}
          	$resource->save();
              break;
      }
      Создаст для ресурсов с шаблоном id = 2 alias вида: idдокумента-текущая дата. Условия менять по желанию.
    Евгений Webinmd
    11 февраля 2021, 23:10
    +1
    Раз

    Два:
    <?php
    if ($modx->event->name == 'OnDocFormSave') {
      $alias = $resource->get('alias');
      $template = $resource->get('template');
      if ($template == 8) { // обрабатываем только для документов с нужным нам шаблоном, можете поставить здесь другое условие
        $resource->set('alias', $id);
        $resource->save();
      }
    }

    И таких примеров полно готовых
      Aleksanders
      12 февраля 2021, 09:06
      0
      Ни тот, ни тот не работают. Возможно что-то не так делаю.
      Создал плагин, назвал его links.
      Закинул туда
      <?php
      switch ($modx->event->name) {
          case 'OnDocFormSave':
          	if($resource->template == 3) {
          		$title = $resource->id . '-' . date("m-d-y");
          		$alias = $resource->cleanAlias($title);
      	        $resource->set('alias', $alias);
      		$aliasPath = $resource->getAliasPath();
          	}
          	$resource->save();
              break;
      }
      ID шаблона указал 3.
      При создании ресурса, всё равно псевдоним, который в заголовке.
      Translit не может ему мешать?
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    8