Sujet fermé
Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

Search + detail CGblog (ou News) = Erreur 404
#1

Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: 1.12.x
#~ Url du site :
#~ Hébergeur / Soft :
#~ Informations Système :
#~ Cms Version: 1.12.1
#~ Installed Modules:
#~ CGBlog: 1.13.3
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~

Salut tout le monde,
J'avais fait appelle à votre aide il y a quelque temps à propos un bug sur des résultats de recherche avec les modules CGblog ou News : [Clos] Search + detail CGblog (ou News) = Erreur 404.
J'avais à l'époque contourné le problème (avec une grosse bouse infâme de bricolage de mes deux), mais je n'étais pas franchement satisfais.
J'ai finalement trouvé d'où venait le bug :
la recherche avec les module News ou CGblog, renvoie tout les articles correspondant à la recherche demandée, même ceux qui ne sont pas en statut "published". Or quand vous appelez News ou CGblog avec un id d'article qui est en statut autre que "published", ces modules vous génèrent une belle 404 ...
C'est surement un "AND status='published'" qui a été oublié dans le requête (j'avoue je n'ai pas creusé plus loin que ça)
Bref, encore des modules codé avec les pieds ... mais bon on commence à avoir l'habitude ...

Je vous propose non pas un patch, qui serra écrasé à chaque mise a jour, mais un bon vieux contournement du bug avec un test de statut.

J'ai crée un UDT : blog_getstatus

Code :
$smarty = cmsms()->GetSmarty();
$db = cmsms()->GetDb();
$articleid = isset($params['articleid']) ? $params['articleid'] : '';
if (!$articleid) return;
$query = "SELECT status FROM ".cms_db_prefix()."module_cgblog WHERE cgblog_id = ? LIMIT 1";
$result = &$db->GetRow($query,array($articleid));

if($result['status']) {
    $smarty->assign('blog_status', $result['status']);
}


il faut aussi modifier votre gabarit de résultat de recherche, pour ajouter le test :
Code :
{if $entry->module == 'CGBlog'}
    {blog_getstatus articleid=$entry->modulerecord}
    {if $blog_status == 'published'}    
        {CGBlog action='detail' articleid=$entry->modulerecord detailtemplate='monsupertemplate'}
    {/if}
{/if}

Ça marche avec CGblog, mais c'est bien sur modifiable pour que ça marche sur News.

Bredt Cool

P.S.: Je regarde d'où vient le bug exactement et je vous dis ça ASAP.
Sujet fermé


Messages dans ce sujet

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)