2014-07-26 5 views
0

J'ai un site joomla 3.3.1 et ai attaché différents articles sur la page d'accueil comme article vedette. Maintenant, en cliquant sur le lien de l'article (image, texte d'en-tête), vous redirigez le lien suivant sous (\components\com_content\views\featured\tmpl\default_item.php) ligne no. 28:Joomla itemid redirection url

<a href="<?php echo JRoute::_(ContentHelperRoute::getArticleRoute($this->item->slug, $this->item->catid)); ?>">

Et si vous ouvrez ce lien de frontend, il affichera comme ceci dépend de l'identifiant de l'article:

index.php?option=com_content&view=article&id=22:small-minds&catid=10&Itemid=101 

Maintenant, je veux rediriger cette Itemid de Itemid=101 à un autre endroit comme (Itemid=134 ou Itemid=164). Donc, pour ce que le code que je dois mettre dans ce code default_item.php afin qu'il puisse rediriger mon désiré Itemid que je définis à partir de là.

J'ai essayé d'écrire le code suivant:

<a href="<?php echo JRoute::_(ContentHelperRoute::getArticleRoute($this->item->slug, $this->item->catid). $menuItemId=44); ?>">

Et si j'ouvre le lien sur le frontend, son montrant quelque chose comme ça:

index.php?option=com_content&view=article&id=22:small-minds&catid=10&Itemid=10144 

et je le veux être montrer quelque chose comme ceci:

index.php?option=com_content&view=article&id=22:small-minds&catid=10&Itemid=44 

Comme vous pouvez le voir t Les deux Item ID montrent à la place de celui que j'ai donné (44) plus tard. Donc besoin de votre aide à ce sujet.

+0

1. ne piratez pas les fichiers core. 2. Pourquoi ne pas utiliser le mécanisme de redirection intégré de Joomla? – Craig

+0

@cppl J'ai besoin de changer les paramètres de base. Je ne peux pas utiliser la redirection sur ceci.J'ai modifié mon code. Peux-tu m'aider? – indy

+0

Vous devez les remplacer ne pas les modifier. Ne pas éditer les fichiers de base utilisent le MVC pour faire ce que vous voulez. – Elin

Répondre

0

Une chose que vous devez prendre en compte est pourquoi vous voulez changer le Itemid. La valeur actuelle provient de l'élément de menu en vedette. Cela vous donne beaucoup d'options pour l'exploration des éléments. Qu'est-ce que vous accomplissez en changeant le Itemid? Essayez-vous de contrôler le modèle, les modules, les URL ou autre chose? Le Itemid est un concept extrêmement important dans Joomla car il régit le template, les modules, les urls et bien d'autres choses selon les options choisies. Le plug-in SEF recherche également des objets-objets correspondants à l'aide de règles hiérarchiques complexes.

Voici le problème. Vous ne voulez pas avoir des itemsids différents pour le même contenu. Si la page est très différente, c'est bien, mais sinon, vous devez être très prudent à propos de tout, une fois que vous commencez à jouer avec le système par défaut.

Si vous connaissez absolument en permanence la valeur de l'Itemid et savez ce que vous faites et que c'est le même itemId pour tous les articles, alors vous pouvez faire un override de disposition pour l'affichage vedette qui remplace le dynamiquement généré readmore avec un codage dur. Changez également les liens de titre si vous avez des titres liés. Si vous faites cela, vous devrez peut-être également remplacer les dispositions pour les articles et les blogs pour ces articles en fonction de vos opinions sur le contenu en double. Si le problème est que vous faites quelque chose de spécial sur la page sélectionnée et que vous ne voulez pas que sur les pages intérieures, vous fassiez mieux de faire de la vue des fonctions celle à laquelle vous faites des ajustements (par exemple, faites la modèle normal le défaut et le spécial pour vedette seulement utilisé avec ce lien de menu). En outre, si le problème concerne les modules, il peut être préférable de choisir différents modules en masquant/affichant certains modules, selon que vous êtes dans la vue des fonctionnalités.

+0

Merci pour votre aide. Mais ce n'est pas m'aider à résoudre mon problème. Je suis bien au courant de la fonctionnalité Itemid et j'ai clairement indiqué que je n'allais pas utiliser la page principale de l'article vedette (default_item.php) n'importe où sur le site. Je ne vais jamais utiliser cette page. Donc je veux le code PHP où en cliquant h2 url il me redirigera un certain Itemid (pas le par défaut itemid il génère) où j'ai placé quelques fonctionnalités. Mon itemid est 101 en ce moment. Et après avoir modifié le code de son redirection 10144 mais je veux seulement 44. Alors pouvez-vous aider à ce sujet en écrivant un code PHP? – indy

+0

Je vous ai expliqué ce que vous deviez faire, vous devrez faire un override et ne pas utiliser jroute. Vous devrez également vous assurer que dans l'arborescence du menu, il n'y a aucun lien de catégorie parent vers les articles, car ceux-ci tiendront d'autres identifiants d'éléments. Vous avez un ensemble fini d'options et vous n'avez même pas expliqué d'où vient cet identifiant d'objet ou ce que vous essayez d'atteindre en l'utilisant. Joomla va essayer de vous empêcher de générer du contenu en double et donc vous allez devoir le forcer. – Elin