joomla framework - Fonctions - utilisateur autorisé à lire l'article / ...

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • joomla framework - Fonctions - utilisateur autorisé à lire l'article / ...

    Bonjour,

    J'ai cherché, même dans le framework mais à chaque fois une autre question s'impose à moi.
    J'ai fait un plugin qui donne une indication dans le menu (un chiffre à coté du titre) sur le nombre d'articles qu'un utilisateur n'a pas lu. Et ça marche..enfin presque, j'explique:

    Je ne teste pas si l'utilisateur a le droit de lire tous les articles du menu, et puisque je fais une requete comme ça :

    Code PHP:
    $query "SELECT id FROM #__content    WHERE catid = ".$item->query['id'];
    $db->setQuery($query);
    $list $db->loadObjectList();
    foreach (
    $list as $it) {
        if (!
    plgContentRead::_hasUserReadArcticle($user->id$it->id)) $i++;

    et donc j'aimerai savoir s'il y a un moyen simple de tester si l'utilisateur a le droit de lire un article ?
    et par la meme occasion s'il y a une fonction qui teste si la date du jour est (ou n'est pas) entre le dates de publications ?
    une function qui liste les item d'un menu (proprement) je suis preneur

    Merci pour une aide, une piste, un petit quelque chose
    Roumano

  • #2
    Re : joomla framework - Fonctions - utilisateur autorisé à lire l'article / ...

    Bonjour,
    c'est exactement ce que fait le com_content et plus encore les notions de publication... décortique notamment le _buildContentWhere de :
    components/com_content/models/category.php
    Schtroumpfe toi le Schtroumpf t'aidera.
    Je ne schtroumpfe pas aux demandes de schtroumpf par MP.

    Commentaire


    • #3
      Re : joomla framework - Fonctions - utilisateur autorisé à lire l'article / ...

      J'ai décortiqué un paquet de fichiers, je regarde celui ci
      Merci pour la piste

      Commentaire


      • #4
        Re : joomla framework - Fonctions - utilisateur autorisé à lire l'article / ...

        _buildContentOrderBy plutot, j'imagine...

        Commentaire


        • #5
          Re : joomla framework - Fonctions - utilisateur autorisé à lire l'article / ...

          Re,
          non c'est bien la fonction _buildContentWhere qui empile toutes les conditions.
          Schtroumpfe toi le Schtroumpf t'aidera.
          Je ne schtroumpfe pas aux demandes de schtroumpf par MP.

          Commentaire


          • #6
            Re : joomla framework - Fonctions - utilisateur autorisé à lire l'article / ...

            heu, j'ai quand même fait une recherche de _buildContentWhere dans tous les dossiers de mon répertoire Joomla! et il n'a pas trouver cette fonction... mais je suis sous Joomla 1.6 ça change peut etre quelque chose ?
            D'un autre coté, j'avoue que ça me rassure parce que c'était pas vraiment ce que je recherchais

            Commentaire


            • #7
              Re : joomla framework - Fonctions - utilisateur autorisé à lire l'article / ...

              Re
              oups, j'ai zappé le coté 1.6 de la chose...

              D'un autre coté, j'avoue que ça me rassure parce que c'était pas vraiment ce que je recherchais
              C'est pourtant ce dont tu as besoin... en 1.6 encore plus qu'en 1.5 pour répondre à la question "quels sont les articles auquel l'utilisateur a accès ?" il est plus économique de faire directement la bonne requète que de faire une requète plus large, puis d'espérer ensuite pouvoir facilement faire le tri.
              S'il existait une fonction current_user_can_read( $contentid) elle devrait faire un accès base pour lire l'article et 2 ou 3 bricoles pour répondre à la question. On se retrouverait donc avec un nombre d'accès base insupportable.
              En passant ton plugin ContentRead a toutes les chances de faire la même chose, alors que selon toute vraisemblance il exploite une table qui pourrait simplement être jointe à la table article.

              Par contre, à la fois la gestion des droits et l'écriture du model sont plus tordus dans la 1.6 que dans la 1.5. Peut-être le plus simple serait d'activer le mode debug sur une page de type blog de catégorie et de récupérer la requète principale pour s'en inspirer.
              Schtroumpfe toi le Schtroumpf t'aidera.
              Je ne schtroumpfe pas aux demandes de schtroumpf par MP.

              Commentaire


              • #8
                Re : joomla framework - Fonctions - utilisateur autorisé à lire l'article / ...

                Peut-être le plus simple serait d'activer le mode debug sur une page de type blog de catégorie et de récupérer la requète principale pour s'en inspirer.
                Alors j'avais pas vu ce mode débug, en effet les requêtes sont là... Très jolies au passage!!

                En passant ton plugin ContentRead a toutes les chances de faire la même chose, alors que selon toute vraisemblance il exploite une table qui pourrait simplement être jointe à la table article.
                Si je peux me permettre: t'es pas un Grand Schtroumpf pour rien, bien vu, c'est exactement ce que je faisais, je simplifie.

                Le sujet étant ouvert, je me demande toujours s'il faut pas privilégier des fonctions faisant des micros requêtes utilisables partout ou une grosse requête avec toutes les infos une fois pour toutes (moins souple quand même)

                En tout cas merci tu m'as bien dépatouiller le brinbrin

                (Tu penses que je devrais mettre la requete?)

                Commentaire


                • #9
                  Re : joomla framework - Fonctions - utilisateur autorisé à lire l'article / ...

                  Re,
                  Le sujet étant ouvert, je me demande toujours s'il faut pas privilégier des fonctions faisant des micros requêtes utilisables partout ou une grosse requête avec toutes les infos une fois pour toutes (moins souple quand même)
                  Sauf cas extrèmes, il faut privilégier la requète unique.

                  Tu penses que je devrais mettre la requete ?
                  Pas compris, dsl...
                  Schtroumpfe toi le Schtroumpf t'aidera.
                  Je ne schtroumpfe pas aux demandes de schtroumpf par MP.

                  Commentaire


                  • #10
                    Re : joomla framework - Fonctions - utilisateur autorisé à lire l'article / ...

                    Tu penses que je devrais mettre la requete ?
                    A savoir celle que j'utilise avec tes éclaircissements, au cas où quelqu'un chercherai à faire la même chose que moi... c'est pas bien compliqué à trouver de toute façon

                    Commentaire


                    • #11
                      Re : joomla framework - Fonctions - utilisateur autorisé à lire l'article / ...

                      Re,
                      ah, OK, ça peut toujours faire gagner du temps...
                      Schtroumpfe toi le Schtroumpf t'aidera.
                      Je ne schtroumpfe pas aux demandes de schtroumpf par MP.

                      Commentaire


                      • #12
                        Re : joomla framework - Fonctions - utilisateur autorisé à lire l'article / ...

                        Code PHP:
                        $query "SELECT a.*,";
                        $query.=" LENGTH(a.fulltext) AS readmore ,CASE WHEN badcats.id is not null THEN 0 ELSE a.state END AS state,c.title AS category_title, c.path AS category_route, c.access AS category_access, c.alias AS category_alias,CASE WHEN a.created_by_alias > ' ' THEN a.created_by_alias ELSE ua.name END AS author,ua.email AS author_email,contact.id as contactid,parent.title as parent_title, parent.id as parent_id, parent.path as parent_route, parent.alias as parent_alias,ROUND( v.rating_sum / v.rating_count ) AS rating, v.rating_count as rating_count,c.published, CASE WHEN badcats.id is null THEN c.published ELSE 0 END AS parents_published
                        FROM brigade_jos_content AS a
                        LEFT JOIN brigade_jos_content_frontpage AS fp
                        ON fp.content_id = a.id
                        LEFT JOIN brigade_jos_categories AS c
                        ON c.id = a.catid
                        LEFT JOIN brigade_jos_users AS ua
                         ON ua.id = a.created_by
                         LEFT JOIN brigade_jos_users AS uam
                        ON uam.id = a.modified_by
                         LEFT JOIN brigade_jos_contact_details AS contact
                         on contact.user_id = a.created_by
                        LEFT JOIN brigade_jos_categories as parent
                        ON parent.id = c.parent_id
                        LEFT JOIN brigade_jos_content_rating AS v
                        ON a.id = v.content_id"
                        ;
                        $query.="
                        LEFT OUTER JOIN (SELECT cat.id as id
                         FROM brigade_jos_categories AS cat JOIN brigade_jos_categories AS parent
                         ON cat.lft BETWEEN parent.lft
                         AND parent.rgt
                         WHERE parent.extension = 'com_content'
                         AND parent.published != 1
                        GROUP BY cat.id ) AS badcats
                         ON badcats.id = c.id
                         WHERE a.access IN (1,1,2)
                        AND CASE WHEN badcats.id is null THEN a.state ELSE 0 END = 1
                         AND a.catid = "
                        .$item->query['id']."
                         AND (a.publish_up = '0000-00-00 00:00:00' OR a.publish_up <= 'NOW()')
                         AND (a.publish_down = '0000-00-00 00:00:00' OR a.publish_down >= 'NOW()')
                         ORDER BY c.lft, CASE WHEN a.publish_up = 0 THEN a.created ELSE a.publish_up END DESC , a.created
                         LIMIT 0, 10"

                        Voila voila...

                        Commentaire

                        Annonce

                        Réduire
                        Aucune annonce pour le moment.

                        Partenaire de l'association

                        Réduire

                        Hébergeur Web PlanetHoster
                        Travaille ...
                        X