Ajouter des liens externes comme des pages statiques
Stéphane
Member, Former PluXml Project Manager
dans Modifications
EDIT 12/10/2010 modification rajoutée: voir code plus bas
Bonjour ami(e)s de PluXml
Suite à une discussion ici, je vous propose après quelques modifications dans votre PluXml la possibilité d'ajouter des liens externes dans la liste de vos pages statiques.
L'idée est de pouvoir saisir une adresse http:// dans la colonne url, sur la page de gestions des pages statiques
- Si vous ne saisissez rien dans le champ url lors de la création d'une nouvelle page statique, l'url sera définie automatiquement par PluXml et sera considéré comme une page statique.
- Si vous saisissez une url de type http://, PluXml considerera que ce n'est plus une page statique mais un lien externe.
De cette façon, il est désormais possible d'insérer des liens, autres que des pages statiques dans la barre des menus générée par la fonction $plxShow->staticList() (voir fichier header.php du thème par défaut)
L'autre idée par la publication du code sur le forum est d'avoir votre ressenti sur l'utilité et l'utilisation de cette fonctionnalité afin de l'ajouter en natif dans la prochaine version de PluXml.
Merci donc d'avance à ceux qui testeront et qui laisseront leur impression à la suite de ce post.
--
Voici donc les "quelques modifications".
Remplacer dans le fichier core.plx.admin.php (fonction editStatiques)
ligne 378:
ligne 390:
remplacer la ligne 394:
Remplacer dans le fichier core/lib/class.plx.show.php (fonction staticList)
ligne 973:
ligne 71:
ligne 260:
Bonjour ami(e)s de PluXml
Suite à une discussion ici, je vous propose après quelques modifications dans votre PluXml la possibilité d'ajouter des liens externes dans la liste de vos pages statiques.
L'idée est de pouvoir saisir une adresse http:// dans la colonne url, sur la page de gestions des pages statiques
- Si vous ne saisissez rien dans le champ url lors de la création d'une nouvelle page statique, l'url sera définie automatiquement par PluXml et sera considéré comme une page statique.
- Si vous saisissez une url de type http://, PluXml considerera que ce n'est plus une page statique mais un lien externe.
De cette façon, il est désormais possible d'insérer des liens, autres que des pages statiques dans la barre des menus générée par la fonction $plxShow->staticList() (voir fichier header.php du thème par défaut)
L'autre idée par la publication du code sur le forum est d'avoir votre ressenti sur l'utilité et l'utilisation de cette fonctionnalité afin de l'ajouter en natif dans la prochaine version de PluXml.
Merci donc d'avance à ceux qui testeront et qui laisseront leur impression à la suite de ce post.
--
Voici donc les "quelques modifications".
Remplacer dans le fichier core.plx.admin.php (fonction editStatiques)
ligne 378:
$stat_url = (isset($content[$static_id.'_url'])?trim($content[$static_id.'_url']):'');
$stat_url = ($stat_url!=''?plxUtils::title2url($stat_url):plxUtils::title2url($stat_name));
par$url = (isset($content[$static_id.'_url'])?trim($content[$static_id.'_url']):'');
$stat_url = ($url!=''?plxUtils::title2url($url):plxUtils::title2url($stat_name));
etligne 390:
'url' => $stat_url,
par'url' => plxUtils::checkSite($url)?$url:$stat_url,
EDIT 12/10/2010: modification rajoutéeremplacer la ligne 394:
'template' => $content[$static_id.'_template']
par'template' => (isset($content[$static_id.'_template'])?$content[$static_id.'_template']:'')
fin EDIT 12/10/2010Remplacer dans le fichier core/lib/class.plx.show.php (fonction staticList)
ligne 973:
$stat = str_replace('#static_url',$this->plxMotor->urlRewrite('?static'.intval($k).'/'.$v['url']),$stat);
parif(plxUtils::checkSite($v['url']))
$stat = str_replace('#static_url',$v['url'],$stat);
else
$stat = str_replace('#static_url',$this->plxMotor->urlRewrite('?static'.intval($k).'/'.$v['url']),$stat);
Remplacer dans le fichier core/admin/statiques.phpligne 71:
echo '</td><td class="tc6">';
echo '<a href="statique.php?p='.$k.'" title="Editer le code source de cette page">Éditer</a> - ';
echo '<a href="'.PLX_ROOT.'?static'.intval($k).'/'.$v['url'].'" title="Visualiser la page '.plxUtils::strCheck($v['name']).' sur le site">Voir</a> - ';
echo '<a id="link_'.$k.'" href="#" onclick="toggleTR(\'link_'.$k.'\', \'tr_'.$k.'\')">Options</a>';
echo '</td></tr>';
echo '<tr class="options" id="tr_'.$k.'"><td colspan="3" class="options-head">Template :</td><td colspan="6"> themes/'.$plxAdmin->aConf['style'].'/';
plxUtils::printSelect($k.'_template', $aTemplates, $v['template']);
echo '</td></tr>';
parif(!plxUtils::checkSite($v['url'])) {
echo '</td><td class="tc6">';
echo '<a href="statique.php?p='.$k.'" title="Editer le code source de cette page">Éditer</a> - ';
echo '<a href="'.PLX_ROOT.'?static'.intval($k).'/'.$v['url'].'" title="Visualiser la page '.plxUtils::strCheck($v['name']).' sur le site">Voir</a> - ';
echo '<a id="link_'.$k.'" href="#" onclick="toggleTR(\'link_'.$k.'\', \'tr_'.$k.'\')">Options</a>';
echo '</td></tr>';
echo '<tr class="options" id="tr_'.$k.'"><td colspan="3" class="options-head">Template :</td><td colspan="6"> themes/'.$plxAdmin->aConf['style'].'/';
plxUtils::printSelect($k.'_template', $aTemplates, $v['template']);
echo '</td></tr>';
}
else
echo '</td><td class="tc6"> </td></tr>';
Remplacer dans le fichier core/lib/class.plx.motor.phpligne 260:
if(!isset($this->aStats[ $this->cible ]) OR intval($this->aStats[ $this->cible ]['active']) != 1) {
parif(!isset($this->aStats[ $this->cible ]) OR plxUtils::checkSite($this->aStats[ $this->cible ]['url']) OR intval($this->aStats[ $this->cible ]['active']) != 1) {
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Cela marche du tonnerre !!
Perso, j'adhère totalement Très pratique, même si ce n'est pas pour beaucoup de liens, c'est toujours pratique.
Bravo Stéphane pour une telle réactivité !
et il faudra ajouter d'autres protocoles (comme skype://, etc...) donc faudrait retoucher la reconnaissance d'url en cherchant plutôt le schéma ":" (ben vi, mailto: par exemple) dans la regex, non?
EDIT : l'ajout d'url trop compliquée (comme ça : http://www.google.fr/search?hl=fr&source=hp&q=sr+pulz) fait que la "page-lien" n'est pas créée. De plus, le champ url est trop court en nombre de caractères.
mais bon, l'important est que ça marche !!
Encore bravo
j'ai un souci sous la page admin, je ne peux plus choisir les url des pages statiques... il me remplis toutes les url par "aide-memoire" comme le montre l'image ci-dessous.
une idée ?
bien sûr, j'ai essayé de les renommer, mais rien.
Merci.
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
ps : j'avais viré mes url externes avant mon envoi. le screenshot est après la suppression de ces url externes. depuis, j'ai le souci su-cité.
J'ai bien trouvé un bug. Je ne sais pas si ça va résoudre ton problème.
Dans le fichier core/lib/class.plx.admin.php, remplace dans la fonction editStatiques la ligne (~394)
par
La modif est à faire dans tous les cas. Je mets à jour le 1er post.
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
edit : aucune amélioration. problème toujours existant.
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
edit : envoyé
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
edit : oui, c'est bon. j'avais fait une erreur de frappe semble-t-il (je dis ça pour les autres utilisateurs ^^)
Je suis un nouveau et heureux utilisateur de PluXml. Je cherchais justement à mettre en place cette fonction sur mon site et j'ai trouvé avec bonheur ce post très récent expliquant justement la marche à suivre.
Cela marche parfaitement ! Merci beaucoup.
Néanmoins, serait possible de régler le "target" de ce lien externe afin d'obtenir l'ouverture d'une nouvelle fenêtre (target_blank il me semble) plutôt que le chargement de cette nouvelle adresse dans la même fenêtre. Cela est faisable via Jquery par exemple mais cela sera-t-il pris en compte par défaut par PluXml ?
Quoiqu'il en soit merci encore pour votre travail.
PluXml ne prendra pas en compte le target="_blank" car cela invaliderait la page niveau xhtml. Or PluXml se veut respecter les standards du web, ce qui ne sera plus le cas avec ce paramètre. A savoir que tu peux ouvrir un lien dans un nouvel onglet de ton navigateur si tu cliques sur le lien avec la roulette de la souris. Cela fonctionne avec Firefox, Chrome. IE je ne sais pas. <mode troll>IE, bouuu, pas bien, c'est mal</mode troll>
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
voir un attribut X, dans le cas d'un template codé en html5 ... (oups pas taper ! )
Cordialement,
gcyrillus , simple membre du forum et utilisateur de pluxml
Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci
un champ supplémentaire, dans les options de chaque page statique?
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Oui il me semblait bien que ce target blank n'était pas valide. J'avoue que cela continue de me tracasser car je trouve ça très pratique mais les standards sont les standards et c'est très bien comme ça. De plus, le Cmd-click marche aussi très bien pour ouvrir la page dans un nouvel onglet. Merci en tout cas de cette réponse rapide.
Voila
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
J'ai essayé de mettre en œuvre cette modification mais l'url que je rentre http://www.google.fr est transformée en http-www-google-fr !!
J'ai suivi le post en faisant des copier/coller sur les différents fichiers et en mettant en commentaires les anciennes lignes.
Je tourne en localhost.
Avez-vous une idée à me proposer ?
Merci
Vérifie les copier coller. Tu as du en oublier un.
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Je viens de refaire les copier/coller sur les 4 fichiers. Il me semble que tout est OK mais j'ai toujours mon problème :-(
Je regarde de plus près demain
Merci
A+
Si tu ne trouves pas l'origine du problème, tu peux eventuellement me mailer un zip de ton site. Je regarderais de quoi ça peut venir. C'est peut etre lié à autre chose.
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
ce n'est pas "core.plx.admin.php" mais "class.plx.admin.php"
Merci encore Stéphane.
Merci.
c'est pris en compte dans la prochaine version;
en attendant tu peux editer le fichier core/admin/statiques.php et modifier en conséquence la ligne suivante
c'est la valeur 255 qu'il faut mettre
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Merci.
je souhaiterais faire la même chose pour les catégories, c'est possible?
d'avance merci
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)