Dotclear

Vous n'êtes pas identifié(e).

Annonce

13 février 2024 Sortie de Dotclear 2.29

#1 2013-12-30 09:11:40

kipof
Membre
Inscription : 2006-01-17
Site Web

Bricolage de PHP dans Theme Dotclear

Bonjour,

Je cherche a afficher des informations d'un forum type FluxBB sur Dotclear mais je suis coincé :/

J'ai crée dans mon thème un fichier avec le nom _fluxbb.html avec le contenu suivant :

<?php
define('PUN_ROOT', './forum/');
require PUN_ROOT.'include/common.php';
?>
<div class="submenu">
<h2>Dernières réponses</h2>
<ul class="lasttopics">
<?php
//On définit la constante pour le lien relatif vers le profil
define('PUN_REPLIES',10);

//C'est pas mal plus simple d'aller chercher les forums inaccessibles à l'utilisateur avant de faire le reste
if($pun_user['g_id'] != PUN_ADMIN) {
    $req = $db->query('SELECT id
                    FROM '.$db->prefix.'forums
                    JOIN '.$db->prefix.'forum_perms ON forum_id=id
                    WHERE group_id='.$pun_user['g_id'].' AND read_forum=0');
    $ids = array();
    while($auth = $db->fetch_assoc($req))
    {
        $ids[] = $auth['id'];
    }
    if(count($ids) > 0) {
        $sql = 'SELECT id,subject,num_replies,last_post,last_post_id,last_poster,forum_id
            FROM '.$db->prefix.'topics
            WHERE forum_id NOT IN ('.implode(',',$ids).')
            ORDER BY last_post_id DESC LIMIT 0,'.PUN_REPLIES;
    }
    else {
        $sql = 'SELECT id,subject,num_replies,last_post,last_post_id,last_poster,forum_id
            FROM '.$db->prefix.'topics
            ORDER BY last_post_id DESC LIMIT 0,'.PUN_REPLIES;
    }
}
else {
    $sql = 'SELECT id,subject,num_replies,last_post,last_post_id,last_poster,forum_id
            FROM '.$db->prefix.'topics
            ORDER BY last_post_id DESC LIMIT 0,'.PUN_REPLIES;
}
// Récupération des sonnées des derniers sujets
$result = $db->query($sql) or error('Unable to fetch replies list', __FILE__, __LINE__, $db->error());
while ($val = $db->fetch_assoc($result))
{
    //On vérifie si la valeur de notre variable de préférence existe
    if (!empty($pun_user['disp_posts']))
    {
        //dans ce cas, on simplifie nos variables pour la suite
        $disp_posts = $pun_user['disp_posts'];
        $num_replies = $val['num_replies'];
    }
    else //la valeur est vide, donc ce sera la valeur par défaut
    {
        $num_replies = $pun_config['o_disp_posts_default'];
        $num_replies = $val['num_replies'];
    }
    //On affiche tout !
    echo '<li><a href="'.PUN_ROOT.'viewtopic.php?id'.$val['id'].'&amp;p='.ceil(($num_replies+1)/$disp_posts).'&amp;pid='.$val['last_post_id'].'#'.$val['last_post_id'].'" rel="nofollow">'. $val['subject'].'</a> &raquo; ' .date('d/m/Y - H\:i',$val['last_post']) . $lang['lastposts_by'] .' '.$val['last_poster'].'</li>';
}

?>
</ul>
</div>

et collé dans mon thème sur le fichier home.html une include pour mon fichier d'information comme ceci:

{{tpl:include src="_fluxbb.html"}}

Mais rien ne s'affiche sachant que le même code dans un fichier a la racine www/fluxbb.php fonctionne correctement :/
le php est activé via about:config pour les templates qui fonctionne déjà pour un code d'installé s'achant que dotclear est installé a la racine:

www/
et le FluxBB:
www/forum

Une petite idée ?
Car je sèche  :/


>> Discut.Biz Réseau IRC <<
Linux qui tombe en panne c’est un miracle, tout comme Windows qui tombe en marche...

Hors ligne

#2 2013-12-30 10:53:27

Gvx
Membre
Inscription : 2006-01-14
Site Web

Re : Bricolage de PHP dans Theme Dotclear

Je pense que PUN_ROOT est mal défini. Pour moi il devrait être:

define('PUN_ROOT', './../../../forum/');

si ton fichier  _fluxbb.html se trouve dans www/themes/tonTheme/tpl

De plus, je ne suis pas sur du nom que doit porter ton fichier _fluxbb.html (ou _fluxbb.php) pour que php soit interprété


A+ Gilles

Hors ligne

#3 2013-12-30 11:08:20

kipof
Membre
Inscription : 2006-01-17
Site Web

Re : Bricolage de PHP dans Theme Dotclear

Pour le chemin du forum j'ai fait de cette façon aussi mais j'ai toujours un blanc :/ après pour le nom du fichier j'ai test en php comme en html le problème reste le même.


>> Discut.Biz Réseau IRC <<
Linux qui tombe en panne c’est un miracle, tout comme Windows qui tombe en marche...

Hors ligne

#4 2013-12-30 11:47:37

Mathieu M.
Membre
Lieu : Rhône-Alpes
Inscription : 2009-09-14

Re : Bricolage de PHP dans Theme Dotclear

Pourquoi ne pas utiliser le widget de lecture de flux ? FluxBB n'intègre pas un flux sans les forums privés ?

Hors ligne

#5 2013-12-30 11:48:35

Dsls
Modérateur couteau-suisse
Inscription : 2004-11-18
Site Web

Re : Bricolage de PHP dans Theme Dotclear

Attention, les chemins à entrer sont relatifs au répertoire de cache dans lequel sera généré le template, modulo 2 répertoires.
Le fichier inclus sera positionné dans DC_TPL_CACHE/cbtpl/xx/yy, il faut donc calculer l'arborescence à partir de ce répertoire (donc remonter de 3 niveaux pour atteindre DC_TPL_CACHE, déjà), le plus simple étant de rentrer un chemin absolu.

Il faut par ailleurs autoriser le php dans les templates en positionnant la variable tpl_allow_php à oui dans about:config.


Dyslexics have more fnu!

Hors ligne

#6 2013-12-30 12:08:28

kipof
Membre
Inscription : 2006-01-17
Site Web

Re : Bricolage de PHP dans Theme Dotclear

Pour le tpl_allow.php c'est fait pour le reste hum... je suis a la ramasse :°


>> Discut.Biz Réseau IRC <<
Linux qui tombe en panne c’est un miracle, tout comme Windows qui tombe en marche...

Hors ligne

#7 2013-12-30 12:09:31

Dsls
Modérateur couteau-suisse
Inscription : 2004-11-18
Site Web

Re : Bricolage de PHP dans Theme Dotclear

Où se situe ton cache doclear ?

Tu peux faire un <?php echo __FILE__; ?> dans ton _fluxbb.html pour voir le chemin du fichier exécuté, sinon :)


Dyslexics have more fnu!

Hors ligne

#8 2013-12-30 12:18:46

kipof
Membre
Inscription : 2006-01-17
Site Web

Re : Bricolage de PHP dans Theme Dotclear

il se trouve dans www/cache/


>> Discut.Biz Réseau IRC <<
Linux qui tombe en panne c’est un miracle, tout comme Windows qui tombe en marche...

Hors ligne

#9 2013-12-30 12:21:52

Dsls
Modérateur couteau-suisse
Inscription : 2004-11-18
Site Web

Re : Bricolage de PHP dans Theme Dotclear

Il te faut donc un :

define('PUN_ROOT', '../../../../forum');

Dyslexics have more fnu!

Hors ligne

#10 2013-12-30 13:24:10

kipof
Membre
Inscription : 2006-01-17
Site Web

Re : Bricolage de PHP dans Theme Dotclear

Fonctionne toujours pas du coup je me suis penché sur l'idée de Mathieu M. pour adapter le widgets mais une question sur le widgets, il est possible de donner une limite de caractères ?

Merci

Dernière modification par kipof (2013-12-30 13:43:57)


>> Discut.Biz Réseau IRC <<
Linux qui tombe en panne c’est un miracle, tout comme Windows qui tombe en marche...

Hors ligne

#11 2013-12-30 13:54:12

Mathieu M.
Membre
Lieu : Rhône-Alpes
Inscription : 2009-09-14

Re : Bricolage de PHP dans Theme Dotclear

Si c'est une question  de "look" et design, tu peux restreindre l'affichage du titre sur une ligne via CSS :)

Hors ligne

#12 2013-12-30 14:19:12

kipof
Membre
Inscription : 2006-01-17
Site Web

Re : Bricolage de PHP dans Theme Dotclear

J'ai fait un truc mais me semble pas trop être ca :p

div#forum {
  text-align : left;
  margin-left: 0px;
  width: 320px;
  padding-top: 8px;
  height: 270px;
  overflow: hidden;
  background: #ccc;
  background: url(images/forum.png) right 0px no-repeat;
  
  }

Dans le style.css et dans le fichier .html

<div id="forum">
{{tpl:Widgets type="custom"}}
</div>

et sur le coté gauche de mon block c'est trop collé : http://imagesup.org/images12/1388413108 … 13-12-.png

Me manque un truc non ? :p

EDIT : Du coup semble être ok vue qu'il prend la class .feed ^^ ( enfaite je sais pas trop le comment du pourquoi :°

Dernière modification par kipof (2013-12-30 15:31:52)


>> Discut.Biz Réseau IRC <<
Linux qui tombe en panne c’est un miracle, tout comme Windows qui tombe en marche...

Hors ligne

#13 2013-12-30 15:43:58

Mathieu M.
Membre
Lieu : Rhône-Alpes
Inscription : 2009-09-14

Re : Bricolage de PHP dans Theme Dotclear

#forum ul {
  text-overflow: ellipsis;
  overflow: hidden;
  white-space: nowrap;
}

... devrait faire l'affaire :)

Pour les soucis de margin/padding, je te laisse te débrouiller ;)

Hors ligne

#14 2013-12-30 16:04:59

kipof
Membre
Inscription : 2006-01-17
Site Web

Re : Bricolage de PHP dans Theme Dotclear

Merci bien, juste un petit problème avec la class .feed qui me colle mon feed.png au millieu de mon bloc grrr vue que le widgets utilise la class .feed


>> Discut.Biz Réseau IRC <<
Linux qui tombe en panne c’est un miracle, tout comme Windows qui tombe en marche...

Hors ligne

Vous n'êtes pas identifié(e).

Pied de page des forums

Sites map