Bienvenue dans mon antre




Affichage facilité des adresses e-mail du système de commentaire PluXml

Rédigé par Petit Pouyo le [02 novembre 2020] Aucun commentaire

J'ai chercher une solution pour rendre obligatoire la case "Votre adresse e-mail" du système de commentaire pour pouvoir laisser un mot doux mais aussi un moyen d'afficher directement les mails dans la page des commentaires dans le back-office afin de faciliter se faciliter la vie.

Après quelques bidouillages de la page commentaires.php directement depuis le back office, dans la gestion des thèmes, il m'a fallu rajouter et remplacer quelques lignes de code dans le formulaire de commentaire.

Comme d'habitude avant de dire n'importe quoi, je bidouille, je fais des erreurs, je trouve des trucs qui marche (manière système D) mais avant de balancer n'importe quoi je demande l'avis de la communauté PluXml qui m'aiguille en améliorant mes trouvailles.

Vous pouvez donc utiliser les codes qui suivront cet article sans problèmes ;-)

<p>

<label for="id_mail"><?php $plxShow->lang('EMAIL') ?> :</label> <input id="id_mail" name="mail" type="text" size="20" value="<?php $plxShow->comGet('mail',''); ?>" required />

</p>

Maintenant qu'on oblige les visiteurs à enregistrer leur adresse e-mail pour pouvoir laisser un commentaire il faut trouver un moyen pour les consulter depuis le back office sans difficulté. Éditez le fichier comments.php qui se trouve dans le répertoire:

racine/core/admin/comments.php

Maintenant il faut remplacer le code <div> à </div> se situant de la ligne 151 à 235 par le code suivant:

<div class="scrollable-table">
        <table id="comments-table" class="full-width">
            <thead>
                <tr>
                    <th class="checkbox"><input type="checkbox" onclick="checkAll(this.form, 'idCom[]')" /></th>
                    <th class="datetime"><?= L_COMMENTS_LIST_DATE ?></th>
<?php
            $all = ($_SESSION['selCom'] == 'all');
            if($all) {
?>
                    <th class="status"><?= L_COMMENT_STATUS_FIELD ?></th>
<?php
            }
?>
                    <th class="message"><?= L_COMMENTS_LIST_MESSAGE ?></th>
                    <th class="author"><?= L_COMMENTS_LIST_AUTHOR ?> <?= L_COMMENT_EMAIL_FIELD ?></th>
                    <th class="site"><?= L_COMMENT_SITE_FIELD ?></th>
                    <th class="action"><?= L_COMMENTS_LIST_ACTION ?></th>
                </tr>
            </thead>
            <tbody>

<?php
            # On va récupérer les commentaires
            $plxAdmin->getPage();
            $start = $plxAdmin->aConf['bypage_admin_coms']*($plxAdmin->page-1);
            $coms = $plxAdmin->getCommentaires($comSelMotif,'rsort',$start,$plxAdmin->aConf['bypage_admin_coms'],'all');
            if($coms) {
                while($plxAdmin->plxRecord_coms->loop()) { # On boucle
                    $artId = $plxAdmin->plxRecord_coms->f('article');
                    $status = $plxAdmin->plxRecord_coms->f('status');
                    $id = $status.$artId.'.'.$plxAdmin->plxRecord_coms->f('numero');
                    $query = 'c=' . $id;
                    if(isset($_GET['a'])) {
                        $query .= '&a=' . $_GET['a'];
                    }
                    # On génère notre ligne
?>
                <tr class="top type-<?= $plxAdmin->plxRecord_coms->f('type') ?>">
                    <td><input type="checkbox" name="idCom[]" value="<?= $id ?>" /></td>
                    <td class="datetime"><?= plxDate::formatDate($plxAdmin->plxRecord_coms->f('date')) ?></td>
<?php
                if($all) {
?>
                    <td class="status"><?= empty($status) ? L_COMMENT_ONLINE : L_COMMENT_OFFLINE ?></td>
<?php
                }
?>
                    <td class="wrap"><?= nl2br($plxAdmin->plxRecord_coms->f('content')) ?></td>
                    <td class="author"><?php
                    $author = $plxAdmin->plxRecord_coms->f('author');
                    $mail = $plxAdmin->plxRecord_coms->f('mail');
                    if(!empty($mail)) {
?><a href="mailto:<?= $mail ?>"><?= $author ?></a><?php
                    } else {
                        echo $author;
                    }
?></td>
                    <td class="site"><?php
                    $site = $plxAdmin->plxRecord_coms->f('site');
                    if(!empty($site)) {
?><a href="https://www.petitpouyo.fr/<?= $site ?>" target="_blank"><?= $site ?></a><?php
                    } else {
                        echo '&nbsp;';
                    }
?></td>
                    <td class="action">
                        <a href="https://www.petitpouyo.fr/comment_new.php?<?= $query ?>" title="<?= L_COMMENT_ANSWER ?>"><?= L_COMMENT_ANSWER ?></a>
                        <a href="https://www.petitpouyo.fr/comment.php?<?= $query ?>" title="<?= L_COMMENT_EDIT_TITLE ?>"><?= L_COMMENT_EDIT ?></a>
                        <a href="https://www.petitpouyo.fr/article.php?a=<?= $artId ?>" title="<?= L_COMMENT_ARTICLE_LINKED_TITLE ?>"><?= L_COMMENT_ARTICLE_LINKED ?></a>
                    </td>
                </tr>
<?php
                }
            } else { # Pas de commentaires
?>
                <tr>
                    <td colspan="5" class="center"><?= L_NO_COMMENT ?></td>
                </tr>
<?php
            }
            ?>
            </tbody>
        </table>
    </div>

Avec ce petit bout de code gentillement partagé par Bazooka07 sur le forum de PluXml vous avez maintenant tout d'afficher directement sur la catégorie "Commentaires" du back-office, en passant la souris sur le pseudo bleuté du visiteur vous aurez son adresse e-mail qui s'affichera directement dans l'angle inférieur gauche de votre navigateur (enfin sur Brave c'est le cas).


Cliquez sur l'image pour l'agrandir

 

 

 

Classé dans : PluXml

commentaire pluxml modification commentaire pluxml amélioration commentaire pluxml récupération mail commentaire

Information sur Petit Pouyo, auteur de l'article:

Bidouilleur professionnel, geek à mes heures perdues, je suis un touche à tout adepte du libre et de l'open-source.

Écrire un commentaire