Bloquer le choix de catégories pour certains articles.

Isma399Isma399 Member
Bonjour,

tout d'abord bravo pour ce CMS que je découvre, c'est un ami qui vient de m'en parler.

J'aimerais l'utiliser pour faire une mise à jour de ce site : http://www.simontanguy.com/
C'est le site d'un danseur et pour l'instant toutes ses dates sont rentrées "à la main" dans le code du site.

Je me suis dis qu'en copiant le fonctionnement de core/admin/article.php, je pourrais créer un event.php qui lui permettrait d'entrer facilement ses futurs évènements.

J'ai donc insérer dans core/admin/top.php cette ligne qui me permet d'avoir un lien pour entrer un nouveau spectacle :
$menus[] = plxUtils::formatMenu(L_MENU_NEW_EVENT_TITLE, 'event.php', L_MENU_NEW_EVENT);

Puis j'ai copié le fichier article.php en event.php
J'ai réussi à modifier le formulaire à peu près comme je le désirais.
Là je bloque car j'aimerais que les évènements soient toujours associés à la même catégorie ( "Agenda") sans que l'utilisateur ait le choix.
J'ai essayé en mettant $_POST = '003' mais je dois me trompé d'endroit où le placer.

Je vous serais bien reconnaissant de m'aider.

Réponses

  • Tu devrais plutôt t'orienter vers l'écriture d'un plugin afin de ne pas toucher aux fichiers du core. En effet, lors de la prochaine mise à jour de pluxml, toutes tes modifications risquent sauter.
    Pour répondre à ta question, il y a plusieurs endroits où les variables sont instanciées. Il n'y a pas que la variable $_POST. Regarde mieux le code.

    Ligne 118, remplace
    $catId = isset($_POST['catId'])?$_POST['catId']:array();
    
    par
    $catId = array(0=>'003');
    
    Ligne 150, remplace
    $catId = explode(',', $result['categorie']);
    
    par
    $catId = array(0=>'003');
    
    Après la ligne 207, ajoute
    $aCats = array('003'=>$plxAdmin->aCats['003']);
    
    Ligne 252, remplace
    foreach($plxAdmin->aCats as $cat_id => $cat_name) {
    
    par
    foreach($aCats as $cat_id => $cat_name) {
    
    Et supprime le bloc
    <?php if($_SESSION['profil'] < PROFIL_WRITER) : ?>
    				<p><label for="id_new_catname"><?php echo L_NEW_CATEGORY ?>&nbsp;:</label></p>
    				<?php plxUtils::printInput('new_catname','','text','17-50')	?>
    				<input class="button new" type="submit" name="new_category" value="<?php echo L_CATEGORY_ADD_BUTTON ?>" />
    				<?php endif; ?>
    
    ligne 262

    C'est un peu la méthode bourrin. Je pense que ça devrait fonctionner mais je te le répète, je te conseille plutôt d'écrire un plugin pour ça. Utilise les hooks disponibles et lis la documentation.
  • Isma399Isma399 Member
    Merci beaucoup!

    J'ai pensé au plug-in mais ça me fait un peur pour l'instant, je suis plutôt débutant en php.

    Je note tous les ajouts et changements que je fais. Et quand ça marchera, j'essaierais de mettre ça en plug-in.

    Pour l'instant, un évènement est défini d'après sa date, son lieu et le spectacle joué.
    La date est mise en titre, le lieu en chapo et le spectacle en contenu. ça évite de créer une catégorie spéciale.
    Ainsi, les évènements pourront être triés ou déplacés dans "Past Agenda" grâce à leur titre.

    Penses-tu que c'est une bonne méthode?
  • Isma399Isma399 Member
    Il faut aussi changer la ligne 175 pour avoir la case déjà cochée :
    [== PHP ==]
    $catId = array(0=>'003');	
    
Connectez-vous ou Inscrivez-vous pour répondre.