2009-09-24 8 views
1

j'ai un problème avec joomla 1.5 URL convivial (qui pas si amical en fait) Je n'utilise pas SEF au moment (dois-je?)comment générer des URLs conviviales dans Joomla?

est Heres mon problème

J'ai quelques catégories et sections . Chacun a un alias.

donc je peux vérifier toutes les catégories de nouvelles par exemple en visitant www.myxyz.com/news/

pour vérifier un article l'URL qui a généré deviendrait: www.myxyz.com/news/10-local -news-title-alias

Je ne sais pas comment joomla génère cette URL. Dans mes modèles, j'ai besoin de générer des liens vers des articles spécifiques.

donc je créer une aide dans le modèle:


// helper to get alias in mainMenu ... alias must be unique 
function getMainMenu($menuAlias){ 
    $items = &JSite::getMenu(); 
    // Get Menu Items 
    $rows = $items->getItems('alias', $menuAlias); 
    if($rows){ 
     //$result = JRoute::_(JURI::base().$rows[0]->link); 
     $result= JURI::base().substr(JRoute::_($rows[0]->link), strlen(JURI::base(true)) + 1); 
     return $result; 
    }else{ 
     return JURI::base() ;// aka not found 
    } 
} 

mais quand je rentre dans la page comme www.myabc.com/news/7-local-news-alias l'url deviendrais foiré et a changé à la mauvaise URL.

devrais-je utiliser SEF pour joomla url friendly?

+0

BTW, vous avez un « o » trop dans votre « joomla'-tag – NDM

Répondre

2

Vous devriez simplement travailler avec des URL normales dans votre code. quand vous allumez SEF joomla! convertira automatiquement tous les liens que vous créez en URL SEF et, lorsqu'une requête entrera, les renverra aux URLs normales pour vous ...

2

C'est un peu compliqué, mais la bonne façon de lier les URLs SEF est d'utiliser le lien original, non-SEF. Vous aurez besoin:

  • L'ID de l'article
  • Le Itemid de l'élément de menu pour votre section (par exemple, l'élément de menu reliant à l'article Blog mise en page, etc.)

Ensuite, vous lien juste à:

index.php?option=com_content&view=article&id=42&Itemid=3 

Où est l'article 42 et ID 3 est le menu lien ID.Your ensuite ressembler à quelque chose comme:

/section-alias/42-the-article-alias 

Si vous manquez hors Itemid votre lien ressemblera à ceci (je pense):

/components/content/42-the-article-alias