Начало Новини Други новини Принципи на рутирането в Джумла!

Принципи на рутирането в Джумла!

Печат

Понеже се появява като много чест въпрос, реших да опиша на какъв принцип се рутират адресите в Джумла! Най-общо казано ще засегна com_content, макар логиката почти навсякъде другаде да бъде или същата или изключително сходна.

Библиотеката, която отговаря за рутирането (или приятелските адреси) в Джумла! се казва router. Логично на ниво компонент тя се управлява от файла components/com_component/router.php, ако няма такъв се ползва рутиране по подразбиране.

Ето и приоритета при зареждане и генериране на приятелските адрес (alias/slugs):

  1. Ако към дадена статия има директен линк в някое от менютата, системата винаги ще ползва (ако всички модули са кадърно написани и ползват content рутирането както е според API) alias (име в адрес) от въпросната връзка в меню. Примерен адрес: site.com/articlemenualias
  2. Ако няма такъв линк, но има линк (в меню) към категорията в която е статията, то адреса ще бъде site.com/categorymenualias/id-articlealias. Като id е уникалният номер на статията, а articlealias е името в адрес на самата статия.
  3. Ако няма линк и към категорията, но има към секцията, в която е статията, то адреса ще бъде site.com/sectionmenualias/id-categoryalias/id-articlealias. Първото id е уникалният номер на категорията, а второто уникалният номер на статията. Categoryalias и articlealias са имената в адрес съответно на категорията и статията.
  4. Ако няма линк и към секцията, Джумла! връща рутирането по подразбиране или адреса ще бъде site.com/component/content/article/id-articlealias.

Следва логичният въпрос: Как да направим адресите така както искаме, без това да оказва пряко влияние върху исканата от нас навигационна структура.

  1. Направете ново меню.
  2. Модула към него изтрийте, нека не се появява никъде.
  3. В новото меню създайте линкове по такъв начин (на база принципите по-горе), че адресите да са по начина, който искате.
Последна промяна ( Сряда, 30 Юни 2010 23:34 )  
24 гласа

6 коментара

Comments_Feed
  1. страхотно ..кратко и ясно ..обаче имам проблем ..къде да го опиша, понеже е много дълго съобщението и не се приема от системата
  2. добре, тук ще пиша ..дублирал съм си темплейта и във второто копие съм разместил малко позициите, за да ми излизат статиите на по-различно място, т.е., определени позиции да излизат след основния контент, а не - преди, както е в оригиналния шаблон
  3. ако може да се направи по друг начин - споделете, понеже така трябва да поддържам css файловете еднакви когато правя промени ..не, че не можа да се реши точно този конкретен проблем
  4. така, имам няколко къстъм модула, които съдържат бутони, отварящи цялата статия ..когато си избера линка както трябва - всичко наред, т.е. зареждат си се позициите от желания от мен темплейт (дубликата), но когато на линка към бутона задам краткия (SEF) адрес, който съм си създал в скритото меню, тогава не се улавя асоциацията с дублирания шаблон и подредбата ми излиза като с оригиналния шаблон.
    моля за решение и отново благодаря за статията
  5. реши се проблема ..с JoomFish! съм, но не съм превеждал статиите си все още. както и да е, когато в линка поставя, например "bg/statia", а нe само "statia", тогава нещата се случват така както искам. явно е от рутирането, но някой може ли да обясни защо се получава така?
  6. ..и още нещо: когато вляза в модули и филтрирам по темплейт, новия модул и скритото меню се явяват част от оригиналния темплейт. изтрих ги, смених дефаулт темплейта на този, който съм дублирал, с променените позиции, създадох отново модула с бутона и скритото меню, надявайки се да се асоциират с дубликирания темплейт и така да сработи идеята ми, но те отново са асоциирани с оригиналния темплейт ..интересува ме как може да се промени това, макар, че си реших проблема.
    благодаря предварително.

Добавете коментар


    • >:o
    • :-[
    • :'(
    • :-(
    • :-D
    • :-*
    • :-)
    • :P
    • :\
    • 8-)
    • ;-)



    Ново изображение

    От форума