Traiter le texte de présentation d'une catégorie.
Dans category.php :
$vtp->addSession( $handle, 'comment' ); $page['comment'] = fonction_de_traitement($page['comment']); <==== Ligne à insérer $vtp->setVar( $handle, 'comment.cat_comment', $page['comment'] );
La fonction de traitement est une fonction de votre choix qui peut par exemple de traiter les BBcodes ou l'affichage de smileys.
La fonction elle-même est à insérer dans cetgory.php, functions.php ou, de préférence, dans un fichier include de fonctions spécifique que vous aurez pris soin de mettre en require en début de code.
Exemple de fonction :
function bbcode($text) { $text = preg_replace("#\[img\]((ht|f)tp://)([^\r\n\t<\"]*?)\[/img\]#sie", "'<img src=\\1' . str_replace(' ', '%20', '\\3') . '>'", $text); $text = preg_replace("#\[url\]((ht|f)tp://)([^\r\n\t<\"]*?)\[/url\]#sie", "'<a href=\"visit.?page=\\1' . str_replace(' ', '%20', '\\3') . '\" target=blank>\\1\\3</a>'", $text); $text = preg_replace("/\[url=(.+?)\](.+?)\[\/url\]/", "<a href=$1>$2</a>", $text); $text = preg_replace("/\[b\](.+?)\[\/b\]/", "<b>$1</b>", $text); $text = preg_replace("/\[i\](.+?)\[\/i\]/", "<i>$1</i>", $text); $text = preg_replace("/\[u\](.+?)\[\/u\]/", "<u>$1</u>", $text); $text = preg_replace("/\[code\](.+?)\[\/code\]/", "<table width=100%><tr><th align=left>Code :</th></tr><tr><td align=left><code>$1</code></td></tr></table>", $text); $text = preg_replace("/\[quote\](.+?)\[\/quote\]/", "<table width=100%><tr><th align=left>citation :</th></tr><tr><td align=left>$1</td></tr></table>", $text); $text = preg_replace("/\[quote=(.+?)\](.+?)\[\/quote\]/", "<table width=100%><tr><th align=left>$1 :</th></tr><tr><td align=left>$2</td></tr></table>", $text); $text = preg_replace("/\[color=(.+?)\](.+?)\[\/color\]/", "<font color=$1>$2</font>", $text); return $text; }
Dernière modification par Webabar (2004-04-30 11:37:26)
Hors ligne
Pour ne pas afficher les noms de fichiers sous les vignettes mais seulement les titres des photos.
Dans category.php,
Remplacer :
// name of the picture if ( isset( $row['name'] ) and $row['name'] != '' ) $name = $row['name']; else $name = str_replace( '_', ' ', $file );
par
// name of the picture if ( isset( $row['name'] ) and $row['name'] != '' ) $name = $row['name']; else $name = ""; // else $name = str_replace( '_', ' ', $file );
Ca empeche le remplacement du titre de la photo par le nom du fichier.
Dernière modification par Webabar (2004-05-04 11:03:38)
Hors ligne
Pour supprimer tous les points rouges et verts de l'affichage de photos récentes :
Note de z0rglub : vous pouvez utiliser la technique d'Adrien, mais pour faire plus simple il suffit de modifier la fonction get_icon... dans htmlfunctions.inc.php, dans la fonction get_icon, remplacer
return $output;
par
return '';
Méthode d'Adrien (un peu plus longue)
Dans category.vtp, trouver :
{#recent_image} {#short_period} {#days} {#icon_short}<br /> {#recent_image} {#long_period} {#days} {#icon_long}<br />
et remplacer par :
<!--{#recent_image} {#short_period} {#days} {#icon_short}<br /> {#recent_image} {#long_period} {#days} {#icon_long}<br />-->
Toujours dans le meme fichier, trouver :
<img src="{#src}" alt="{#alt}" title="{#title}" class="imgLink"/></a> <br />
et mettre le <br/> en commentaire comme ceci : (pr supprimer l'espace entre la miniature et l'affichage du nombre de commentaire)
<img src="{#src}" alt="{#alt}" title="{#title}" class="imgLink"/></a> <!--<br />-->
Dans category.php, trouver :
$vtp->setGlobalVar( $handle, 'icon_short', get_icon( time() ) ); $icon_long = get_icon( time() - ( $user['short_period'] * 24 * 60 * 60 + 1 ) ); $vtp->setGlobalVar( $handle, 'icon_long', $icon_long );
et remplacer par :
/*$vtp->setGlobalVar( $handle, 'icon_short', get_icon( time() ) ); $icon_long = get_icon( time() - ( $user['short_period'] * 24 * 60 * 60 + 1 ) ); $vtp->setGlobalVar( $handle, 'icon_long', $icon_long );*/
Dans le meme fichier, trouver :
$vtp->setVar( $handle, 'thumbnail.icon', get_icon( $date ) );
et remplacer par :
//$vtp->setVar( $handle, 'thumbnail.icon', get_icon( $date ) );
Toujours dans le meme fichier, trouver (c'est la meme ligne, mais plus loin dans le fichier :
$vtp->setVar( $handle, 'thumbnail.icon', get_icon( $date ) );
et remplacer par :
//$vtp->setVar( $handle, 'thumbnail.icon', get_icon( $date ) );
Dans htmlfunctions.inc.php, trouver :
function get_icon( $date_comparaison ) { global $user, $conf; if ( !is_numeric( $date_comparaison ) ) { return ''; } $difference = time() - $date_comparaison; $jours = 24*60*60; $output = ''; if ( $difference < $user['long_period'] * $jours ) { $icon_url = './template/'.$user['template'].'/theme/'; if ( $difference < $user['short_period'] * $jours ) { $icon_url.= 'new_short.gif'; } else { $icon_url.= 'new_long.gif'; } $size = getimagesize( $icon_url ); $output = '<img src="'.$icon_url.'" style="border:0;'; $output.= 'height:'.$size[1].'px;width:'.$size[0].'px" alt="" />'; } return $output; }
et remplacer par :
/* function get_icon( $date_comparaison ) { global $user, $conf; if ( !is_numeric( $date_comparaison ) ) { return ''; } $difference = time() - $date_comparaison; $jours = 24*60*60; $output = ''; if ( $difference < $user['long_period'] * $jours ) { $icon_url = './template/'.$user['template'].'/theme/'; if ( $difference < $user['short_period'] * $jours ) { $icon_url.= 'new_short.gif'; } else { $icon_url.= 'new_long.gif'; } $size = getimagesize( $icon_url ); $output = '<img src="'.$icon_url.'" style="border:0;'; $output.= 'height:'.$size[1].'px;width:'.$size[0].'px" alt="" />'; } return $output;*/ }
Et enfin, toujours dans ce meme fichier, trouver :
if ( isset( $category['date_last'] ) ) { $vtp->setVar($handle,'category.cat_icon',get_icon($category['date_last'])); }
et remplacer par :
/*if ( isset( $category['date_last'] ) ) { $vtp->setVar($handle,'category.cat_icon',get_icon($category['date_last'])); }*/
Voilà, ca fonctionne comme cela mais je ne suis pas sûr que toutes les lignes soient nécessaires ou quoi...
Have fun ;-)
Petit errata :
Dans htmlfunctions.inc.php, pour la premiere modification, mettre le " */ " apres la dernière accolade " } " ...
PAR DEFAUT, la taille du cadre qui entoure l'image s'adapte au format de celle ci.
SI vous désirez imposer la taille du cadre à 500px, suivez le conseil suivant:
dans template/default/picture.vtp (release 1.3.2), remplaces
Code:
35 {#frame_start}1%{#frame_begin}
36 <a href="{#picture_link}">
par
Code:
35 {#frame_start}500px{#frame_begin}
36 <a href="{#picture_link}">
Cela fonctionne très bien avec la version 1.3.1
(merci zorglub pour l'astuce)
Dernière modification par Rickways (2004-05-21 13:01:39)
Hors ligne
pour la solution de l'astuce n°28 qui ne fonctionnait pas sous la version 1.3.2 fonctionne avec se code de remplacement :
/// upload a picture in the category
// links for registered users
//
if ( !$user['is_the_guest'] )
{
if ( $page['cat_site_id'] == 1
and $conf['upload_available']
and $page['cat_uploadable'] )
{
$vtp->addSession( $handle, 'upload' );
$url = './upload.php?cat='.$page['cat'].'&expand='.$page['expand'];
$vtp->setVar( $handle, 'upload.url', add_session_id( $url ) );
$vtp->closeSession( $handle, 'upload' );
}
}
else
{
$vtp->setVar( $handle, 'cat_infos.cat_name', $page['title'] );
}
$vtp->closeSession( $handle, 'cat_infos' );
}
else
{
}
}
Hors ligne
Afficher le nombre de visiteurs par IP depuis que le site est en ligne:
Dans le category.php:
Après:
//--------------------------------------------------------------------- summary
Insérer:
/*nb_visiteurstotal*/ $query = 'SELECT COUNT(DISTINCT(IP)) AS nb_visiteurstotal'; $query.= ' FROM '.PREFIX_TABLE.'history'; $query.=';'; $row = mysql_fetch_array( mysql_query( $query ) ); $row['nb_visiteurstotal']=$row['nb_visiteurstotal']; $vtp->setGlobalVar( $handle, 'nb_visiteurstotal', $row['nb_visiteurstotal'] );
A insérer dans le template/default/category.vtp:
(A l'endroit où l'on veut voir apparaître le nombre de visiteur en ligne)
<div class="totalImages">[ {#nb_visiteurstotal} visiteurs depuis le 11/02/2004]</div>
Afficher le nombre de visiteurs en ligne sur une période donnée (5 minutes ici...):
Dans le category.php
Après:
//--------------------------------------------------------------------- summary
Insérer
/*nb_visiteursonline*/ $query = 'SELECT COUNT(DISTINCT(IP)) AS nb_visiteursonline'; $query.= ' FROM '.PREFIX_TABLE.'history'; $query.= ' WHERE UNIX_TIMESTAMP(now()) - date < 300 '; $query.=';'; $row = mysql_fetch_array( mysql_query( $query ) ); $row['nb_visiteursonline']=$row['nb_visiteursonline']; $vtp->setGlobalVar( $handle, 'nb_visiteursonline', $row['nb_visiteursonline'] );
A insérer dans le template/default/category.vtp:
(A l'endroit où l'on veut voir apparaître le nombre de visiteur en ligne)
<div class="totalImages">[ {#nb_visiteursonline} visiteur(s) en ligne ]</div>
Dernière modification par Victor (2004-06-13 14:54:47)
Hors ligne
Victor a écrit:
Afficher le nombre de visiteurs par IP depuis que le site est en ligne
vu comment tu as préparé, je te conseille d'écrire un MOD, ce sera plus propre.
Hors ligne
salut j'aimerais bie que l'on me dise une bonne fois pour toute comment on fait pour mettre un fond sur toute le site PWB, car j'ai essayé plein de truk mais rien ne veu marcher, ou alors sa fai buggué le site :! !!!
ben tu le mets dans le fichier default.css... et sois un peu plus poli si tu veux qu'on t'aide ça coute rien
Hors ligne
Gweltas a écrit:
A partir de la 1.3.1
L'astuce 29 est inutile car intégrée au code.
L'astuce 21 est obsolète car les styles se basent désormais sur des fichiers css.
Pour la 21, j'ai essayé avant de te lire, et sans succès.
Quelqu'un peut-il m'indiquer la manip ? (utiliser un GIF comme fond (background).
Merci
Tout d'abord je tien a m'escuser de n'etre pas paru poli, se n'était pas dans mes intention. ensuite cela ne marche pas de mettre le gif dans le fichier css !!! je ne sais pas pourquoi, sa devrairt marché .. mais non, lol
enfin bon, dc si quelqu'un pourair m'aider ...
La soluce, trouvé dans un post de Franck (ça marche chez moi) :
-----------------------------------------------
'je me repond a moi meme
ok pour le fond ecran ....... merci a GILLAOU ( un de c post )
soluce:
dans le default.css
body {
background-image: url('background.gif');
}
et copier le background.gif dans le meme repertoire que default.css
je cherche pour le reste
a+