Комментарии

Синтаксический анализ URL
( 0 Голосов )

Процесс построения URL был начат с идентификатора категории веб-ссылок и доведен до представления текущей категории. Но, помимо этого, требуется организовать процесс и в обратном направлении, т.е. взять удобный для поиска URL, построенный с помощью метода build (), и получить из него запрос, который приведет к нужному представлению.

Этот процесс аналогичен описанной ранее методике построения URL. Начинается он с вызова функции $app->route () из файла index.php на верхнем уровне структуры файлов данного компонента. В итоге получается объект типа JRouterSite и выполняется его метод parse (). Как и в предыдущем примере, в этом методе вызывается другой метод parse () из его родительского класса, который, в свою очередь, вызывает метод JRouterSite_parseSef Route (). В этом методе обнаруживается та часть удобного для поиска URL, в которой указывается пункт меню (например, components/weblinks-component/single-weblink-category), и на ее основании задается конкретный пункт меню. Затем часть URL, указывающая на пункт меню, отбрасывается и оставляется только путь к категории, который преобразуется в массив элементов, разделяемых знаками косой черты (/), причем каждая его часть указывается в следующем формате: <идентификатор> + <псевдоним>.

Далее вызывается метод parse () из компонента — в данном случае это метод WeblinksParseRoute (), которому в качестве аргумента передается сформированный ранее массив значений пути к категории. В этом методе получаются категории, подчиненные категории данного пункта меню. Поле заготовки каждой подчиненной категории, указываемое в том же формате, что и отдельные части пути к данной категории, сравнивается с категориями из переданного массива. Как только будет найдено соответствие, создается ассоциативный массив с идентификатором категории и представлением категории. Этот массив возвращается вызывающему методу, а его элементы вводятся в запрос из URL. В данном примере удобный для поиска URL преобразуется в следующий массив:

Itemid => 274, option => com_weblinks, d => 33, view => category

Именно эта информация и требуется в Joomla для правильной загрузки компонента и его представления.


Понравился материал? Пригодилась информация? Плюсани в социалки!


 
Похожие новости
Добавить комментарий


Защитный код