apparition des commentaire sur le fil d'actualité.

Bonjour,

J'ai un souci avec l'apparition des commentaires, a chaque fois que je mis un commentaire sur un enthité d'elgg, il ajoute un commentaire en dessous de l'enthité et un autre sur le fil avec uniquement le commentaire fait. Je demande s'il est possible de supprimer ce dernier commentaire?

Merci d'avance pour vos conseils.

  • Bonjour,

    J'ai le même problème que toi et j'ai fouillé un peu de partout dans la base de données, essayé différent thèmes mais je trouve pas. Si quelqu'un à la solution ça serais vraiment sympa ;) J'utilise le thème Ultima cool theme de Stan que je modifie (je proposerais les modif à Stan quand je l'aurais fini).

  • Salut,

    En effet il y a un problème de duplication des commentaires dans le river...J'avais trouvé la solution mais j'ai changé d'installation donc impossible de retrouver le code

    Je me souviens qu'il faut chercher dans views/default/river/elements/body.php

  • Salut,

    Ta réponse me permet d'avancer donc c'est dans le array $var['item'] il faut élimiter ceux qui n'ont pas de subtype et dont action_type est égale à comment. L'idéal serait de le faire au moment de la requête à la base histoire de pas ramener des reg qui servent à rien... Je continue ma fouille.

    Je dirais que c'est dans le fichier dashboard.php que ça se passe mais la requête

    $activity = elgg_list_river(array(
        'joins' => array("JOIN {$db_prefix}entities object ON object.guid = rv.object_guid"),
        'wheres' => array("
            rv.subject_guid = $user->guid
            OR rv.subject_guid IN (SELECT guid_two FROM {$db_prefix}entity_relationships WHERE guid_one=$user->guid AND relationship='follower')
            OR rv.subject_guid IN (SELECT guid_one FROM {$db_prefix}entity_relationships WHERE guid_two=$user->guid AND relationship='friend')
        "),
    ));

    Reste très obscurs pour moi, j'ai bien essayé de la transformer en

    $activity = elgg_list_river(array(
        'joins' => array("JOIN {$db_prefix}entities object ON object.guid = rv.object_guid"),
        'wheres' => array("
            rv.subject_guid = $user->guid
            OR rv.subject_guid IN (SELECT guid_two FROM {$db_prefix}entity_relationships WHERE guid_one=$user->guid AND relationship='follower')
            OR rv.subject_guid IN (SELECT guid_one FROM {$db_prefix}entity_relationships WHERE guid_two=$user->guid AND relationship='friend')
            AND rv.subtype <> ''
            AND rv.action_type <> 'comment'
        "),
    ));

    Mais ça change rien au résultat.

  • Je crois qu'il faut bricoler le $message dans body.php et filtrer les subtype à cet endroit là, j'essaye ce soir et je publie le résultat ici si j'y arrive

  • J'ai trouvé une solution, dans le fichier views/default/page/components/list.php j'ai modifier la partie (ligne 51)

    if (is_array($items) && count($items) > 0) {
        $html .= "<ul class=\"$list_class\">";
        foreach ($items as $item) {
            if (elgg_instanceof($item)) {
                $id = "elgg-{$item->getType()}-{$item->getGUID()}";
            } else {
                $id = "item-{$item->getType()}-{$item->id}";
            }
            $html .= "<li id=\"$id\" class=\"$item_class\">";
            $html .= elgg_view_list_item($item, $vars);
            $html .= '</li>';
        }
        $html .= '</ul>';
    }

    En

    if (is_array($items) && count($items) > 0) {
        $html .= "<ul class=\"$list_class\">";
        foreach ($items as $item) {
            if($item->action_type != 'comment') {
                if (elgg_instanceof($item)) {
                    $id = "elgg-{$item->getType()}-{$item->getGUID()}";
                } else {
                    $id = "item-{$item->getType()}-{$item->id}";
                }
                $html .= "<li id=\"$id\" class=\"$item_class\">";
                $html .= elgg_view_list_item($item, $vars);
                $html .= '</li>';
            }
        }
        $html .= '</ul>';
    }

    Ensuite dans le fichier views/default/river/elements/body.php ligne 19 j'ai ajouté

    if($item->action_type != 'comment') {

    ...

    Et ligne 68

    }
  • Bien joué! ;-)

    Pourras-tu me faire part des modifications que tu as effectué sur le thème?

  • J'ai pas encore fini, j'ai encore deux trois trucs à tester mais en vrac :

    - affichage de toutes les activités dans le river (de tout les membres)

    - ajout d'un lien j'aime sur les entrées du river;

    - le champs commentaire masqué par défaut sur le river

    - ajout d'un lien commenter sur les entrées du river qui affiche le formulaire

    - masquage des doubles commentaires sur le river (le sujet de ce post)

    - agrandissement de l'interlignage pour le texte

    - suppression du lien Accueil dans la topbar

    Il y en a surement d'autres mais je ne les ai pas en tête. Ensuite il y a ce qu'il me reste à faire :

    - transformer "J'aime" en "Je n'aime plus" lorsque déjà marqué comme j'aime

    Pour le moment c'est ce qu'il me reste à faire mais je vais probablement en trouver encore pendant mes tests.

  • Je te conseille de travailler avec la dernière version du plugin que je viens de publier (la 2.1)

    J'ai pas mal amélioré le plugin et résolut ton problème des "like"

    Suis mon github pour avoir le dernier code http://github.com/WISB/cool_theme :-)

    J'ai ajouté pas mal de specs dans le plugin tu verras