Доступность по alias для элементов modExtra

Не в курсе, случайно, как для кастомного компонента сделать его элементы доступными через http по alias-подобному полю в БД, в таблице данного кастомного компонента?
Заранее спасибо!
Peter Zenin
30 ноября 2012, 13:27
modx.pro
890
0

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

Василий Наумкин
30 ноября 2012, 17:52
0
Плагин по событию OnPageNotFound.

Пусть разбирает ваш url, ищет совпадение в таблице компонента и выводит что надо, или отправляет на нужную страницу с параметром, который она поймет и выведет инфу.
    Peter Zenin
    30 ноября 2012, 18:53
    0
    Спасибо! Немного кривовато на первый взгляд, но это выход.
    А то уж было начал думать что зря я за отдельный компонент взялся.
    У меня там несколько тысяч вопросов ответов, не хотел в ресурсы делать, чтоб не засорять админку и для опыта, еще хотел администрировать через grid.
      Ваня
      01 декабря 2012, 05:18
      0
      Всё правильно вы делаете!
      А для примера можете посмотреть плагин от компонента Articles, там есть разбор URL и вся логика
        Peter Zenin
        01 декабря 2012, 11:04
        0
        Спасибо, посмотрю, а где там искать примерно?
      Ваня
      01 декабря 2012, 15:06
      0
      Вот я когда-то себе делал
      <?php
      if ($modx->event->name == 'OnPageNotFound') {
      
      if ($modx->getOption('friendly_urls')) {
          if (!function_exists('cleanArray')) {
              function cleanArray($array) {
                  $Result = array();
                  foreach ($array as $key => $value) {
          	        if ($value != '')
          	            $Result[] = $value;
          	    }
          	    return $Result;
          	}
          }
      	$url = cleanArray(explode('/',$_SERVER['REQUEST_URI']));
          
          if ($url[count($url)-1] == 'compare') {
          	$modx->sendForward(118);
          }
      }
      
      }
      Форвард на ресурс с ID 118

      А уже на этом ресурсе проверяется сниппетом URL и возвращается результат
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      9