webleads-tracker

Comment avoir 1 type de page spécifique actif sur plusieurs niveaux ?

Zéphyr Seb
Avatar
Bonjour,

j'ai créé un type de page spécifique appliqué à une rubrique http://monsite.com/test/ qui ne contient aucune sous rubrique.
Et je souhaite que ce type de page soit pris en compte pour n'importe quelle sous rubrique virtuelle, par exemple http://monsite.com/test/toto/ ou http://monsite.com/test/medialibs/.

Actuellement http://monsite.com/test/medialibs/ renvoie sur l'accueil, normal car elle n'existe pas. Est-ce qu'il y a un moyen d'agir sur la réécriture d'url ?

Merci
Sébastien - Zéphyr

Thomas [LE KLUB]
Avatar
UP !!

J'aimerais aussi avoir ce genre d'info, ce serait un vrai plus pour développer une véritable nouvelle méthode de publication :)

William - Medialibs
Avatar
Bonjour à vous deux,

Si vous le souhaitez nous pouvons mettre en place cette fonctionnalité via une configuration additionnelle.
Je vous invite à en faire la demande au support, via un ticket, pour qu'il intervienne dans ce sens.

À votre service ;)
Community Manager - Medialibs

Thomas [LE KLUB]
Avatar
Salut seb,

Après une petite réflexion et après test concluant tu peux bricoler un truc qui marche. C'est pas forcément ce qu'il y a de plus propre, mais c'est fonctionnel.

Après avoir créé ta méthode spécifique et une rubrique pour la publier tu peux utiliser le hook hook_PublicSite::onInit()

global $specifParsedUri;
if(strpos($_SERVER['REQUEST_URI'], '/ma-rubrique/') === 0) {
    $specifParsedUri = explode('/', $_SERVER['REQUEST_URI']);
    array_shift($specifParsedUri);
    $_SERVER['REQUEST_URI'] = '/ma-rubrique/';
}


Ensuite dans ta méthode de publication coté publique tu peux récupérer les niveaux d'arborescence en te fiant au contenu du tableau $specifParsedUri. Je me suis pas encore penché sur comment automatisé la redirection, donc il faut déclarer à la mano chaque rubrique utilisant cette astuce. Si un jour j'ai le temps (ou une nuit d'ailleurs) j'essayerais de faire une interface qui va bien pour gérer tout ça.

En espérant avoir été utile,
Thomas

Lionel
Bonjour,

Avez-vous pu trouver une solution à votre problématique, je cherche à faire le même fonctionnement mais pour le moment cela n'a rien donné de concluant ...

J'ai suis parvenu depuis le hook_PublicSite::onInit() à faire appel à une fonction de mon type de page, mais l'exécution du template associé ne fonctionne pas.

Voici le code que j'ai mis dans le Hook :
require_once em_misc::getSpecifPath().'Montypedepage/methodPublicMontypedepage.class.php';
$var = new methodPublicMontypedepage;

if (strpos(em_misc::ru(), 'id') !== false) {
   $res = str_replace('id', '', basename(em_misc::ru()));
   $query = "SELECT aeap.id_annonce FROM `ads_entry_additionnal_properties` as aeap WHERE aeap.id_annonce = '".$res."'";
   $id_res = em_db::one($query);
   return $var->getDetailAnnonce(intval($id_res));
}
 

Dans ma fonction de mon type de page lorsque je fais des var_dump($id_res), j'ai bien le résultat de ma requête qui s'affiche, mais c'est au moment de faire le traitement dans la fonction et la correspondance avec les balises MX, que ça coince et me renvoie une page 404 :(.

Merci d'avance, pour les futurs retours.

Bonne fin de journée à vous.

Lionel