+ Répondre à la discussion
Page 1 sur 7 1 2 3 ... DernièreDernière
Affichage des résultats 1 à 10 sur 65

Discussion: H1 sans hack sur un joomla 1.5.xx

  1. #1
    Jeune membre
    Date d'inscription
    janvier 2010
    Messages
    1
    Remerciements
    0
    Remercié 0 fois dans 0 messages

    Par défaut H1 sans hack sur un joomla 1.5.xx

    Bonjour à tous
    Depuis quelques jours j'essaye de trouver un moyen de changer le titre de contenu généré par joomla via bots, j'en ai essayé pas mal étiquetés "1.5" , proposant de changer les titres en leur ajoutant un H1, seulement aucun n'y arrive. J'ai testé par moi même différentes solutions pour contourner le fait que les caractères spéciaux sont convertis en &xxxxx; ce qui empeche l'ajout de balises dans les titres même en utilisant un trigger post génération du header.

    En somme, au lieu de :
    <td class="contentheading" width="100%">
    Title of my content
    </td>

    Je dois obtenir :

    <td class="contentheading" width="100%">
    <h1>Title of my content</h1>
    </td>

    Mais le meilleur que j'ai pu obtenir était un &lt;H1&gt; au lieu de <h1> :s

    Si quelqun présent une méthode qui n'est pas un hack, mais quelque chose pouvant être intégré comme un plugin/bot je suis preneur!!!
    Même si ce n'est qu'une piste a suivre c'est toujours bon a prendre

    A+ et bonne année a tous
    Dernière modification par StillHere ; 05/01/2010 à 11h16.

  2. #2
    Membre régulier Avatar de fly06
    Date d'inscription
    juillet 2005
    Localisation
    Lotharingie
    Messages
    2 660
    Remerciements
    1
    Remercié 37 fois dans 35 messages

    Par défaut

    Je ne crois pas qu'un tel plugin existe mais bon commence par faire une recherche sur http://extensions.joomla.org/ on ne sait jamais, des extensions sont publiées tout les jours.

    Sinon, le plugin en question est très simple à réaliser puisqu'il suffit de récupérer la partie 'component' du buffer, de faire la recherche et le changement en utilisant les fonctionalités regex de php puis de sauvegarder la partie 'component' modifiée dans le buffer avant que Joomla ne créé la page html à partir du template (rendering).

    Le plugin suivant peut d'ailleurs te servir de base pour démarrer :
    http://forum.joomla.fr/showpost.php?...0&postcount=12



    -Fly06

  3. #3
    Membre régulier Avatar de Ccrosaz
    Date d'inscription
    décembre 2006
    Localisation
    Paris
    Messages
    1 043
    Remerciements
    0
    Remercié 0 fois dans 0 messages

    Par défaut

    Hello fly,

    Je ne pense pas non plus qu'il existe un tel plugin, sachant surtout qu'il est facile d'ajouter quelques lignes de JS au début du template pour le faire. Mais l'idée n'est pas mauvaise, surtout que tu pourrais te permettre de mettre à jour d'autres éléments au besoin.

    Si tu veux une piste, j'ai trouvé un site qui explique comment faire cela à partir du composant sh404SF
    Christophe
    Joomla newb but Joomla fan

  4. #4
    Modérateur
    Avatar de Grand Schtroumpf
    Date d'inscription
    mars 2008
    Localisation
    Cailloux-sur-Fontaines
    Messages
    11 123
    Remerciements
    11
    Remercié 818 fois dans 801 messages

    Par défaut

    Bonjour
    [Hors sujet]Tiens, un revenant ! Salut CC [/Hors sujet]
    Schtroumpfe toi le Schtroumpf t'aidera.
    Je ne schtroumpfe pas aux demandes de schtroumpf par MP.

  5. #5
    Membre régulier Avatar de fly06
    Date d'inscription
    juillet 2005
    Localisation
    Lotharingie
    Messages
    2 660
    Remerciements
    1
    Remercié 37 fois dans 35 messages

    Par défaut

    Salut Christophe,

    Citation Envoyé par Ccrosaz Voir le message
    Je ne pense pas non plus qu'il existe un tel plugin, sachant surtout qu'il est facile d'ajouter quelques lignes de JS au début du template pour le faire. Mais l'idée n'est pas mauvaise, surtout que tu pourrais te permettre de mettre à jour d'autres éléments au besoin.
    Facile oui mais efficace c'est moins sur.
    D'une part, cette solution est sous-optimale par nature puisqu'elle consiste à appliquer la modif sur le poste client. Au lieu de faire transiter sur le réseau, le code html à corriger et son correctif javascript, il est bien plus simple et plus efficace de traiter le problème en amont (sur le serveur)...
    D'autre part, il me semble (à vérifier) que le googlebot n'exécute pas le javascript de sorte qu'en plus d'être sous-optimale, cette soluce serait juste inefficace...

    Citation Envoyé par Ccrosaz Voir le message
    Si tu veux une piste, j'ai trouvé un site qui explique comment faire cela à partir du composant sh404SF
    Oui, cette solution serveur est bien meilleure.
    A deux bémols près :
    - sh404SEF est devenu payant
    - Acheter un gros compo pour accéder à une fonctionnalité d'un des modules de ce compo (sh404SEFCustomtags si ma mémoire est bonne), comment dire... LoL

    Sinon, content de te revoir aussi

    -Fly06

  6. #6
    Membre régulier Avatar de Ccrosaz
    Date d'inscription
    décembre 2006
    Localisation
    Paris
    Messages
    1 043
    Remerciements
    0
    Remercié 0 fois dans 0 messages

    Par défaut

    Hello tous les deux, espère que vous aller bien

    Bon effectivement je n'y avais pas pensé tout de suite, mais si le code est exécuté côté client il n'y a aucune chance pour que ça aide au niveau du référencement.

    Par contre, peut-être est-il possible de faire un plugin système qui récupère le document en préparation par joomla avant affichage et qui y modifie à la volée les éléments souhaités. Après je m'avance peut-être un peu car je ne sais pas si on peu récupérer l'objet dom juste avant affichage
    En tout cas si c'est possible, les expressions régulières risques d'être un peu coton à coder

    Pour la piste sh404SEF, c'était plus à prendre comme inspiration, mais s'il est devenu payant il y a de forte chance que son code ne soit plus libre...

    Pour répondre à ce besoin, j'avoue que je me donne beaucoup plus de travail en forçant la réécriture des sorties de tous les composants non optimum en utilisant le support natif Joomla (les histoire de view dans le dossier du template). Mais du coup, il faut bien tout prévoir et en temps de travail ce n'est génial. Surtout que tout ajout ou mise à jour redemande souvent du travail
    Dernière modification par Ccrosaz ; 09/01/2010 à 11h48.
    Christophe
    Joomla newb but Joomla fan

  7. #7
    Membre régulier Avatar de fly06
    Date d'inscription
    juillet 2005
    Localisation
    Lotharingie
    Messages
    2 660
    Remerciements
    1
    Remercié 37 fois dans 35 messages

    Par défaut

    Citation Envoyé par Ccrosaz Voir le message
    Bon effectivement je n'y avais pas pensé tout de suite, mais si le code est exécuté côté client il n'y a aucune chance pour que ça aide au niveau du référencement.
    Je confirme, le code js est bien éxecuté côte client

    Citation Envoyé par Ccrosaz Voir le message
    Par contre, peut-être est-il possible de faire un plugin système qui récupère le document en préparation par joomla avant affichage et qui y modifie à la volée les éléments souhaités. Après je m'avance peut-être un peu car je ne sais pas si on peu récupérer l'objet dom juste avant affichage
    En tout cas si c'est possible, les expressions régulières risques d'être un peu coton à coder
    Oui, c'est précisément la soluce que je propose dans mon premier post (le dom c'est côté client, l'"équivalent" côté serveur sou J1.5 c'est le buffer). Regarde le lien et le plugin en pj...

    Citation Envoyé par Ccrosaz Voir le message
    Pour répondre à ce besoin, j'avoue que je me donne beaucoup plus de travail en forçant la réécriture des sorties de tous les composants non optimum en utilisant le support natif Joomla (les histoire de view dans le dossier du template). Mais du coup, il faut bien tout prévoir et en temps de travail ce n'est génial. Surtout que tout ajout ou mise à jour redemande souvent du travail
    Glop ! Ca a l'air très intéressant, tu pourrais préciser ?

    -Fly06

  8. #8
    Membre régulier Avatar de Ccrosaz
    Date d'inscription
    décembre 2006
    Localisation
    Paris
    Messages
    1 043
    Remerciements
    0
    Remercié 0 fois dans 0 messages

    Par défaut

    Avec plaisir,

    Le système de réécriture Joomla permet de forcer l'Override des sorties standard des composant développées en modèle MVC.

    L'idée est relativement simple, mais il faut bien voir que cela ne fonctionne qu'avec les composant utilisant vraiment le framework en MVC (je le sais car j'en bave pour certains qui sont trop vieux comme CB...).

    Normalement pour un composant en front tu as une arborescence du type :
    /components
    /components/com_compo/
    /components/com_compo/views
    /components/com_compo/views/articles
    /components/com_compo/views/articles/tmpl/default.php
    /components/com_compo/views/articles/tmpl/... (d'autre templates de sortie si besoin)
    /components/com_compo/views/articles/view.html.php (préparation de la vue HTML)
    /components/com_compo/views/articles/view.pdf.php (préparation de la vue PDF)
    /components/com_compo/views/category
    ...

    Si tout va bien, comme par exemple sur le composant com_content, avec cette arbo tu as un template (default.php) pour chaque type d'item ou de liste de ton composant.
    Le framework Joomla nativement permet de modifier la sortie de ce(s) template(s) sans avoir à hacker le composant.
    Pour ce faire c'est super simple, tu crée à la racine de ton template un dossier html dans lequel tu vas répété une partie de cette arborescence :
    /templates
    /templates/lemien/
    /templates/lemien/html
    /templates/lemien/html/com_compo
    /templates/lemien/html/com_compo/articles
    /templates/lemien/html/com_compo/articles/default.php (override de la sortie standard du compo).
    ...

    le fichier default.php est une copie de celui d'origine, modifiée pour te permettre de remettre en forme les balise (voir parfois le code pour moi )
    Il faut juste penser à mettre un fichier vide index.html pour éviter le parcours de dossier, et le tour est jouer

    Tu trouveras la doc officielle ici, et quelques exemple directement sur l'un des templates d'origines (je ne sais plus lequel )

    Le seul défaut que je trouve à cette solution, c'est que parfois du code HTML a malencontreusement été inséré par le créateur dans les fichiers view.XXX.php (ceux là même appelé par le type de vue dans l'url), et ils ne sont malheureusement pas overridable (ou là le barbarisme)...
    Dernière modification par Ccrosaz ; 09/01/2010 à 12h42.
    Christophe
    Joomla newb but Joomla fan

  9. #9
    Membre régulier Avatar de fly06
    Date d'inscription
    juillet 2005
    Localisation
    Lotharingie
    Messages
    2 660
    Remerciements
    1
    Remercié 37 fois dans 35 messages

    Par défaut

    Merci, c'est plus clair

    Oui l'override est une solution possible.

    Celà consiste finalement à faire à la mano et une fois pour toute ce que le plugin ferait automatiquement à chaque requête http.

    Mais ça reste possible que sur les composants standard MVC (comme tu le dis) et ça devient vite pénible sur un gros site utilisant beaucoup de compos de ce taper les overrides de toutes les view pour ajouter un simple balisage <h1>...

    D'où le plugin... que je vais finir par écrire tellement ça me parait simple.

    -Fly06

  10. #10
    Membre régulier Avatar de Ccrosaz
    Date d'inscription
    décembre 2006
    Localisation
    Paris
    Messages
    1 043
    Remerciements
    0
    Remercié 0 fois dans 0 messages

    Par défaut

    Un truc dans le genre :

    Code PHP:
    /**
     * Execution après que le rendu du composant soit passé dans la réponse
     */
    function onAfterRender()
    {
        
    // Récupère le contenu du body (string)
        
    $dochtml    JResponse::getBody(false); 
        
        
    /**
         * Traitement des balises et autre éléments
         * C'est là ou perso je verrai l'utilisation
         * d'expression régulières... Complexe je pense
         */
        
        //Remplacement du body 
        
    JResponse::setBody($dochtml); 

    Après arriver à insérer, seulement quand c'est nécessaire, des balises de titre en lieu et place des classes natives Joomla risque d'être plus complexe a faire qu'a énoncer
    Je pense en plus que pour être optimum, le plugin devrait être capable de remplacer aussi les autres titres par des H2/3/..., et si possible quelque soit le conteneur de la classe d'origine (a part si c'est déjà un H).
    Mais là, suis pas assez lancé pour te trouver les expressions à appliquer... J'avoue en plus que ce n'est pas le domaine ou je m'en sort le mieux
    Dernière modification par Ccrosaz ; 09/01/2010 à 16h22.
    Christophe
    Joomla newb but Joomla fan

+ Répondre à la discussion
Page 1 sur 7 1 2 3 ... DernièreDernière

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/01/2010, 14h15
  2. reécrire une url sans le WWW
    Par affairemax dans le forum SEF / URL Rewriting
    Réponses: 10
    Dernier message: 16/09/2009, 12h31
  3. Mon Site s'affiche sans Template (que du texte)
    Par amino8322 dans le forum Gestion des templates, design et CSS
    Réponses: 6
    Dernier message: 16/10/2008, 21h57
  4. Acces au shop pour tous sans register
    Par nicosuperbike dans le forum E-commerce
    Réponses: 6
    Dernier message: 01/09/2008, 09h20

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages