Gestionnaire de lien avec pluxtoolbar

j'ai mis en place un gestionnaire de liens dans la partie admin afin d'avoir, facilement sous la main, l'adresse de tous les articles pour d'éventuels liens d'un article vers un autre. C'est très pratique et voila le code pour ceux que cela intéresse.

créer un fichier "liens.php" dans /core/admin/ avec le code suivant :
<?php

include('prepend.php');

header('Content-Type: text/xml; charset='.PLX_CHARSET);

# Creation de l'objet principal et lancement du traitement
$plxMotor = & new plxMotor(PLX_CONF);
$plxMotor->prechauffage();
$plxMotor->demarrage();

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Gestion des documents - Pluxml</title>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo strtolower(PLX_CHARSET); ?>" />
<link rel="stylesheet" type="text/css" href="admin.css" media="screen" />
<script type="text/javascript" src="../lib/functions.js"></script>
</head>
 
<body class="popup">

<?php
//Les catégories
    echo "\t<ul>\n";
    echo "\t<li>LES CATEGORIES</li>\n";
foreach($plxMotor->aCats as $cat_num => $cat_info) {
    echo "\t<li>".$plxMotor->aConf['']."?categorie".intval($cat_num)."/".$cat_info['url']."</li>\n";   
}
	 echo "\t</ul>\n";
	 
	 echo "\t<ul>\n";
	 echo "\t<li>LES PAGES STATIQUES</li>\n";
//Les statiques
foreach($plxMotor->aStats as $cat_num => $cat_info) {
    echo "\t<li>".$plxMotor->aConf['']."?static".intval($cat_num)."/".$cat_info['url']."</li>\n";   
}	
	echo "\t</ul>\n";
	 
	echo "\t<ul>\n";
	echo "\t<li>LES ARTICLES</li>\n";

//Les articles
$plxGlob_arts = & new plxGlob(PLX_ROOT.$plxMotor->aConf['racine_articles']);
$aFiles = $plxGlob_arts->query('/^[0-9]{4}.([0-9]{3}|home).[0-9]{12}.[a-z0-9-]+.xml$/','syndic','rsort',0,50000);
# On parse les fichiers
if(is_array($aFiles)) { # On a des fichiers
    while(list($k,$v) = each($aFiles)) { # On parcourt tous les fichiers
        $array[ $k ] = $plxMotor->parseArticle(PLX_ROOT.$plxMotor->aConf['racine_articles'].$v);
        # On stocke les enregistrements dans un objet plxRecord
        $plxRecord_arts = & new plxRecord($array);
    }
    if($plxGlob_arts->count AND $plxRecord_arts->size) { # On a des articles
        # On boucle sur nos articles
        while($plxRecord_arts->loop()) {
            $num = intval($plxRecord_arts->f('numero'));

            echo "\t<li>".$plxMotor->aConf['']."?article".$num."/".htmlspecialchars($plxRecord_arts->f('url'),ENT_QUOTES,PLX_CHARSET)."</li>\n"; 
           
        }
    }
}
echo "\t</ul>\n";

?>

</body>
</html>
ensuite dans /core/pluxtoolbar/pluxtoolbar.php

changer
<input class="document" type="button" onclick="openPopup('documents.php','Documents','740','500');return false;" title="Gestionnaire de documents" />
par
<input class="document" type="button" onclick="openPopup('documents.php','Documents','740','500');return false;" title="Gestionnaire de documents" />
<input class="document" type="button" onclick="openPopup('liens.php','Documents','450','500');return false;" title="Gestionnaire de liens" />

Réponses

  • avril 2009 modifié
    Pratique !

    Cela peut-il reprendre ceux des pages statiques aussi ?
    ... enfin celles produites par les pages statiques , si oui , quel fonction implémenter dans les scripts (des pages statiques) pour rendre ces liens gerable par ton script ?


    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

  • oui il reprend les pages statiques aussi et pour le rendre gérable dans les pages statiques, j'ai ajouté pluxtoolbar dans les pages statiques un peu à la manière des articles mais sans le chapo.
  • Très pratique, fonctionnel, et sans bug pour le moment, moi j'dis merci :).
  • Bonjour,

    Le seul soucis c'est que je ne trouve pas le dossier /pluxtoolbar
    ni le fichier: pluxtoolbar.php

    ???


    merci
  • LewoLewo Member
    avril 2010 modifié
    flaydeer > C'est normal si tu utilise un version actuel ~4.3 de Pluxml : plus de Pluxtoolbar...

    Si tu veux tu peu ajouter un lien dans l'admin qui ouvre un Pop-up avec la liste des liens internes :

    Dans core/admin
    créer un fichier : "liens.php" et y coller le code suivant :
    <?php
    include('prepend.php');
    header('Content-Type: text/xml; charset='.PLX_CHARSET);
    # Creation de l'objet principal et lancement du traitement
    $plxMotor = & new plxMotor(PLX_CONF);
    $plxMotor->prechauffage();
    $plxMotor->demarrage();
    ?>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    <title>Liste liens internes - Pluxml</title>
    <meta http-equiv="Content-Type" content="text/html; charset=<?php echo strtolower(PLX_CHARSET); ?>" />
    <link rel="stylesheet" type="text/css" href="admin.css" media="screen" />
    <script type="text/javascript" src="../lib/functions.js"></script>
    </head>
     
    <body class="popup">
    <h1>Liste des liens internes :</h1>
    <?php
    //Les catégories
        echo "\t<p><strong>Liens des catégories :</strong></p><ul>\n";
    foreach($plxMotor->aCats as $cat_num => $cat_info) {
        echo "\t<li>".$plxMotor->aConf['']."?categorie".intval($cat_num)."/".$cat_info['url']."</li>\n";   
    }
         echo "\t</ul>\n";
         echo "\t<p><strong>Liens des pages statiques :</strong></p><ul>\n";
    
    
    //Les statiques
    foreach($plxMotor->aStats as $cat_num => $cat_info) {
        echo "\t<li>".$plxMotor->aConf['']."?static".intval($cat_num)."/".$cat_info['url']."</li>\n";   
    }    
        echo "\t</ul>\n";
         echo "\t<p><strong>Liens des articles :</strong></p><ul>\n";
    
    
    //Les articles
    $plxGlob_arts = & new plxGlob(PLX_ROOT.$plxMotor->aConf['racine_articles']);
    $aFiles = $plxGlob_arts->query('/^[0-9]{4}.([0-9]{3}|home).[0-9]{12}.[a-z0-9-]+.xml$/','syndic','rsort',0,50000);
    # On parse les fichiers
    if(is_array($aFiles)) { # On a des fichiers
        while(list($k,$v) = each($aFiles)) { # On parcourt tous les fichiers
            $array[ $k ] = $plxMotor->parseArticle(PLX_ROOT.$plxMotor->aConf['racine_articles'].$v);
            # On stocke les enregistrements dans un objet plxRecord
            $plxRecord_arts = & new plxRecord($array);
        }
        if($plxGlob_arts->count AND $plxRecord_arts->size) { # On a des articles
            # On boucle sur nos articles
            while($plxRecord_arts->loop()) {
                $num = intval($plxRecord_arts->f('numero'));
    
                echo "\t<li>".$plxMotor->aConf['']."?article".$num."/".htmlspecialchars($plxRecord_arts->f('url'),ENT_QUOTES,PLX_CHARSET)."</li>\n"; 
               
            }
        }
    }
    echo "\t</ul>\n";
    
    ?>
    
    </body>
    </html>
    
    Puis, toujours dans core/admin
    ouvrir "top.php" trouver la ligne (environ ligne 48) :
    <li><a href="parametres_base.php" id="link_config" title="Configurer PluXml">Paramètres</a></li>
    
    Et y ajouter en dessous le code suivant :
    <li><a href="liens.php" id="link_liens" title="Liste des liens internes" onclick="openPopup('liens.php','Liens','700','500');return false;">Liens</a></li>
    
    Voilà qui devrais fonctionner... (tu peu définir un icone dans "admin.css" avec la class ".link_liens")
  • Merci bcp.
  • StéphaneStéphane Member, Former PluXml Project Manager
    Pour que le code soit compatible PHP5
    il vaut mieux remplacer
    $plxMotor = & new plxMotor(PLX_CONF);
    
    par
    $plxMotor = new plxMotor(PLX_CONF);
    

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • Merci ! le must, des liens cliquables pour les intégrer au billet !!
Connectez-vous ou Inscrivez-vous pour répondre.