Cool Forum

 
 
Cool Forum » Hacks et modifications » Mods & Hacks - Contributions » [0.8.1] Dernier message par + titre
Connexions
9 connecté(s) sur le forum actuellement: 0 membre(s) | 9 invité(s)
 
 
 
<<Sujet précédent     Sujet suivant>>


 
 
Auteur Imprimer le topic Message

 
 
Hayreon

Pilier

Enregistré le 18/01/2003
Messages: 1451
Non connecté

Sujet : [0.8.1] Dernier message par + titre
Ajouté le : 27/04/2005 14:08
Message :

NOTE

Ce hack a été réaliser sur une version Cool Forum 0.8.1 non modifiée. Les numéros de lignes sont donnés à titre indicatif et ne concernent que les modifications !

NE FAITES JAMAIS DE MODIFICATIONS AVEC FRONTPAGE ET COMPAGNIE !!!

Utilisez un éditeur texte simple comme phped ou editplus


Ce hack permet d'afficher le titre du dernier topic posté ou ayant reçu une réponse, dans la colonne "dernier message" de la page d'accueil de votre forum.

Editez le fichier tpl_index.html. A la ligne 109, modifiez ce qui est en rouge :

<td width="180" class="corp" align="center" {%box[affdegrad]%} bgcolor="{%::_SKIN[bgtable3]%}" nowrap><font size={%::_SKIN[middlefont]%}>{%LNG[lastmsg]%}</font></td>


Editez le fichier lng_index.php et àjoutez la ligne suivante à la fin du fichier, avant ?>

$tpl->LNG['dans'] = 'Dans:';


Editez le fichier functions.php et descendez jusqu'à la ligne 2264 pour y trouver ce code :

global $zecook,$tpl,$Forums,$TabForum,$TabModos,$_USER,$_PERMFORUM,$_FORUMRIGHTS, $modoname;


Remplacez par :

global $zecook,$tpl,$Forums,$TabForum,$TabModos,$_USER,$_PERMFORUM,$_FORUMRIGHTS, $modoname,$sql,$_PRE;


Quelques lignes en dessous vous trouverez ces lignes de code :

if($Forums['lastdatepost']>0)
{
     $Forums['lastdatepost']=getlocaltime($Forums['lastdatepost']);
     $Forums['lastforumposter'] = getformatrecup($Forums['lastforumposter']);
    $tpl->box['infolastpost']=$tpl->gettemplate("forumlist","iflastpost");
}


Remplacez le par :

if($Forums['lastdatepost']>0)
{
	if ($Forums['lastidpost']>0)
	{
		$query = $sql->query('SELECT sujet FROM '.$_PRE.'posts WHERE idpost="'.$Forums['lastidpost'].'" ');
		$row = mysql_fetch_assoc($query);
		$temp = substr($row['sujet'],0,20);
		$temp = explode(' ',$temp);
		for ($zz=0;$zz<count($temp)-1;$zz++)
		{
			$tsujet .= $temp[$zz].' ';
		}
		$sujet = $tsujet.'...';
		$Forums['lasttopic'] = getformatmsg($sujet);
	}

	$Forums['lastdatepost'] = getlocaltime($Forums['lastdatepost']);
	$Forums['lastforumposter'] = getformatrecup($Forums['lastforumposter']);
	$tpl->box['infolastpost']=$tpl->gettemplate("forumlist","iflastpost");
}


Editez ensuite le fichier tpl_forumlist.html pour modifier la ligne 39 par :

<!--********** TPL NAME = iflastpost **********-->


<font size={%::_SKIN[smallfont]%}>
<a href="gotopost.php?id={%::Forums[lastidpost]%}"><img src="{%::_SKIN[repimg]%}/linkmsg.gif" border=0 align="absmiddle"></A> {%::Forums[lastdatepost]%}<br>{%LNG[from]%} {%::Forums[lastforumposter]%}<br>{%LNG[dans]%} {%::Forums[lasttopic]%}</font></td>


Voilà


Avant de poster : La documentation - Les FAQ
Recharger l'url avec lien direct vers ce message Imprimer le message Aller en bas de page Aller en haut de page Editez ce post (réservé aux modérateurs) Avertissez l'administrateur si le post est non conventionnel Visitez le site de Hayreon!! Envoyer un Message Privé à Hayreon Citer ce post dans votre réponse

 
 
11steph

Nouveau

Enregistré le 27/04/2005
Messages: 13
Non connecté

Ajouté le : 27/04/2005 15:14
Message :

Je viens de tester ces modifs et il y a un petit problème. Je pense avoir tout changé correctement mais il est possible que ça vienne de moi.
Le problème est le suivant :
sur certains forums, le titre du dernier topic posté n'apparait pas.
sur d'autres, certains titres sont combinés avec des titres de topic d'un forum différent
sur d'autres, ça marche

Mon forum :
http://asbram.free.fr/forum/

Recharger l'url avec lien direct vers ce message Imprimer le message Aller en bas de page Aller en haut de page Editez ce post (réservé aux modérateurs) Avertissez l'administrateur si le post est non conventionnel Envoyer un email à 11steph!!! Envoyer un Message Privé à 11steph Citer ce post dans votre réponse

 
 
Hayreon

Pilier

Enregistré le 18/01/2003
Messages: 1451
Non connecté

Ajouté le : 27/04/2005 15:17
Message :

Je vais essayer avec la base de cfskin, peut etre un probleme de variables à réinitialiser .... je te tien au courrant ;)


Avant de poster : La documentation - Les FAQ
Recharger l'url avec lien direct vers ce message Imprimer le message Aller en bas de page Aller en haut de page Editez ce post (réservé aux modérateurs) Avertissez l'administrateur si le post est non conventionnel Visitez le site de Hayreon!! Envoyer un Message Privé à Hayreon Citer ce post dans votre réponse

 
 
Hayreon

Pilier

Enregistré le 18/01/2003
Messages: 1451
Non connecté

Ajouté le : 27/04/2005 15:36
Message :

Autant pour moi, décidement en ce momment ça ne va vraiment pas

Voilà le code corrigé :

fichier function.php lignes 2288 à 2322

if($Forums['lastdatepost']>0)
{
	if ($Forums['lastidpost']>0)
	{
		$query = $sql->query('SELECT sujet,parent FROM '.$_PRE.'posts WHERE idpost="'.$Forums['lastidpost'].'" ');
		$row = mysql_fetch_assoc($query);
		$parent = intval($row['parent']);

		if(strlen($row['sujet'])>0)
		{
			$temp = substr($row['sujet'],0,20);
		}
		else
		{
			$query = $sql->query('SELECT sujet FROM '.$_PRE.'topics WHERE idtopic="'.$parent.'" ');
			$res = mysql_fetch_assoc($query);
			$temp = substr($res['sujet'],0,20);
		}					

		$temp = explode(' ',$temp);
		for ($zz=0;$zz<count($temp)-1;$zz++)
		{
			$tsujet .= $temp[$zz].' ';
		}
		$sujet = $tsujet.'...';
		unset($tsujet);
		$Forums['lasttopic'] = getformatmsg($sujet);
	}
	$Forums['lastdatepost'] = getlocaltime($Forums['lastdatepost']);
	$Forums['lastforumposter'] = getformatrecup($Forums['lastforumposter']);
	$tpl->box['infolastpost']=$tpl->gettemplate("forumlist","iflastpost");
}


J'espère que c'est la bonne cette fois grrrrrrrrrrr


Avant de poster : La documentation - Les FAQ
Recharger l'url avec lien direct vers ce message Imprimer le message Aller en bas de page Aller en haut de page Editez ce post (réservé aux modérateurs) Avertissez l'administrateur si le post est non conventionnel Visitez le site de Hayreon!! Envoyer un Message Privé à Hayreon Citer ce post dans votre réponse

 
 
11steph

Nouveau

Enregistré le 27/04/2005
Messages: 13
Non connecté

Ajouté le : 27/04/2005 15:57
Message :

C'est bon, ça marche. Merci beaucoup.

Le seul truc, c'est que dans les forums où les messages datent de plus de 5 jours, il n'y a rien marqué.
Pour test, j'ai reposté dans ce genre de forum là et l'affichage du titre du topic fonctionne. Peut-être comme tu l'as dit il y a des variables à réinitialiser.
Tout marchera bien quand les forums auront tous reçu un nouveau message.

C'est nickel. Merci.

Recharger l'url avec lien direct vers ce message Imprimer le message Aller en bas de page Aller en haut de page Editez ce post (réservé aux modérateurs) Avertissez l'administrateur si le post est non conventionnel Envoyer un email à 11steph!!! Envoyer un Message Privé à 11steph Citer ce post dans votre réponse

 
 
Hayreon

Pilier

Enregistré le 18/01/2003
Messages: 1451
Non connecté

Ajouté le : 27/04/2005 15:58
Message :

Encore un p'tit truc : si le sujet ne comporte qu'un seul mot il ne s'affiche pas. Modofit le code posté au dessus avec les parties en rouge :

$temp = explode(' ',$temp);
$nb=count($temp);
$j = $nb>3 ? -1 : 0;
for ($zz=0;$zz<count($temp)-$j;$zz++)
{
	$tsujet .= $temp[$zz].' ';
}


Tu trouvera le script complet et corrigé sur cfskin

*** Message édité par Aquilon le 27/04/2005 16:02 ***


Avant de poster : La documentation - Les FAQ
Recharger l'url avec lien direct vers ce message Imprimer le message Aller en bas de page Aller en haut de page Editez ce post (réservé aux modérateurs) Avertissez l'administrateur si le post est non conventionnel Visitez le site de Hayreon!! Envoyer un Message Privé à Hayreon Citer ce post dans votre réponse

 
 
11steph

Nouveau

Enregistré le 27/04/2005
Messages: 13
Non connecté

Ajouté le : 27/04/2005 16:04
Message :

Ca marche maintenant pour tous les forums.
Seul souci : les accents sur les e ; j'ai &eacute à la place.

Courage, tu y es presque.....

Recharger l'url avec lien direct vers ce message Imprimer le message Aller en bas de page Aller en haut de page Editez ce post (réservé aux modérateurs) Avertissez l'administrateur si le post est non conventionnel Envoyer un email à 11steph!!! Envoyer un Message Privé à 11steph Citer ce post dans votre réponse

 
 
Hayreon

Pilier

Enregistré le 18/01/2003
Messages: 1451
Non connecté

Ajouté le : 27/04/2005 16:49
Message :

Essai en remplçant :

$Forums['lasttopic'] = getformatmsg($sujet);


par

$Forums['lasttopic'] = getformatmsg($sujet,true);


Avant de poster : La documentation - Les FAQ
Recharger l'url avec lien direct vers ce message Imprimer le message Aller en bas de page Aller en haut de page Editez ce post (réservé aux modérateurs) Avertissez l'administrateur si le post est non conventionnel Visitez le site de Hayreon!! Envoyer un Message Privé à Hayreon Citer ce post dans votre réponse

 
 
11steph

Nouveau

Enregistré le 27/04/2005
Messages: 13
Non connecté

Ajouté le : 28/04/2005 07:54
Message :

Non, c'est toujours pareil :-(

Recharger l'url avec lien direct vers ce message Imprimer le message Aller en bas de page Aller en haut de page Editez ce post (réservé aux modérateurs) Avertissez l'administrateur si le post est non conventionnel Envoyer un email à 11steph!!! Envoyer un Message Privé à 11steph Citer ce post dans votre réponse

 
 
Hayreon

Pilier

Enregistré le 18/01/2003
Messages: 1451
Non connecté

Ajouté le : 28/04/2005 08:43
Message :

$Forums['lasttopic'] = getformatrecup($sujet,false);

la c'est bon


Avant de poster : La documentation - Les FAQ
Recharger l'url avec lien direct vers ce message Imprimer le message Aller en bas de page Aller en haut de page Editez ce post (réservé aux modérateurs) Avertissez l'administrateur si le post est non conventionnel Visitez le site de Hayreon!! Envoyer un Message Privé à Hayreon Citer ce post dans votre réponse

 
 
11steph

Nouveau

Enregistré le 27/04/2005
Messages: 13
Non connecté

Ajouté le : 28/04/2005 09:01
Message :

Ca marche.
Sauf pour les sujets où le code &eacute est coupé par la troncature du sujet à 20 caractères.

Exemple sur le 1ier forum:

http://asbram.free.fr/forum/

Le "traducteur" ne reconnait pas &eacu

Il faudrait peut être traduire avant de tronquer ?

Merci pour ton aide.

Recharger l'url avec lien direct vers ce message Imprimer le message Aller en bas de page Aller en haut de page Editez ce post (réservé aux modérateurs) Avertissez l'administrateur si le post est non conventionnel Envoyer un email à 11steph!!! Envoyer un Message Privé à 11steph Citer ce post dans votre réponse

 
 
Hayreon

Pilier

Enregistré le 18/01/2003
Messages: 1451
Non connecté

Ajouté le : 28/04/2005 09:12
Message :

	if ($Forums['lastidpost']>0)
	{
		$query = $sql->query('SELECT sujet,parent FROM '.$_PRE.'posts WHERE idpost="'.$Forums['lastidpost'].'" ');
		$row = mysql_fetch_assoc($query);
		$parent = intval($row['parent']);

		if(strlen($row['sujet'])>0)
		{
			$row['sujet'] = getformatrecup($row['sujet'],false);
			$temp = substr($row['sujet'],0,20);
		}
		else
		{
			$query = $sql->query('SELECT sujet FROM '.$_PRE.'topics WHERE idtopic="'.$parent.'" ');
			$res = mysql_fetch_assoc($query);
			$res['sujet'] = getformatrecup($res['sujet'],false);
			$temp = substr($res['sujet'],0,20);
		}					

		$temp = explode(' ',$temp);
		for ($zz=0;$zz<count($temp)-1;$zz++)
		{
			$tsujet .= $temp[$zz].' ';
		}
		$sujet = $tsujet.'...';
		unset($tsujet);
	}


Avant de poster : La documentation - Les FAQ
Recharger l'url avec lien direct vers ce message Imprimer le message Aller en bas de page Aller en haut de page Editez ce post (réservé aux modérateurs) Avertissez l'administrateur si le post est non conventionnel Visitez le site de Hayreon!! Envoyer un Message Privé à Hayreon Citer ce post dans votre réponse

 
 
11steph

Nouveau

Enregistré le 27/04/2005
Messages: 13
Non connecté

Ajouté le : 28/04/2005 09:29
Message :

Ca marche pas :-(

Recharger l'url avec lien direct vers ce message Imprimer le message Aller en bas de page Aller en haut de page Editez ce post (réservé aux modérateurs) Avertissez l'administrateur si le post est non conventionnel Envoyer un email à 11steph!!! Envoyer un Message Privé à 11steph Citer ce post dans votre réponse

 
 
Hayreon

Pilier

Enregistré le 18/01/2003
Messages: 1451
Non connecté

Ajouté le : 28/04/2005 09:45
Message :

Ben moi c ok.

Edite le message et retape le titre pour voir.

Sinon enleve ça:

$row['sujet'] = getformatrecup($row['sujet'],false);

et

$res['sujet'] = getformatrecup($res['sujet'],false);


Avant de poster : La documentation - Les FAQ
Recharger l'url avec lien direct vers ce message Imprimer le message Aller en bas de page Aller en haut de page Editez ce post (réservé aux modérateurs) Avertissez l'administrateur si le post est non conventionnel Visitez le site de Hayreon!! Envoyer un Message Privé à Hayreon Citer ce post dans votre réponse

 
 
11steph

Nouveau

Enregistré le 27/04/2005
Messages: 13
Non connecté

Ajouté le : 28/04/2005 10:04
Message :

Ca marche toujours pas.
J'avais modifié les longueurs de chaines de carcatères, j'avais mis 30 au lieu de 20 qui était dans ton code. En repassant à 25, ça me coupe le titre du topic juste avant &eacute et donc, là, c'est bon.
Merci.

Recharger l'url avec lien direct vers ce message Imprimer le message Aller en bas de page Aller en haut de page Editez ce post (réservé aux modérateurs) Avertissez l'administrateur si le post est non conventionnel Envoyer un email à 11steph!!! Envoyer un Message Privé à 11steph Citer ce post dans votre réponse

 
 
11steph

Nouveau

Enregistré le 27/04/2005
Messages: 13
Non connecté

Ajouté le : 29/04/2005 07:47
Message :

Ca y est tout marche.
Après être allé sur http://www.nexen.net/docs/php/annotee/function.get-html-translation-table.php

J'ai modifié functions.php comme ça :

if($Forums['lastdatepost']>0)
{

if ($Forums['lastidpost']>0)
{
$query = $sql->query('SELECT sujet,parent FROM '.$_PRE.'posts WHERE idpost="'.$Forums['lastidpost'].'" ');
$row = mysql_fetch_assoc($query);
$parent = intval($row['parent']);

if(strlen($row['sujet'])>0)
{

$trans = get_html_translation_table(HTML_ENTITIES);
$trans = array_flip($trans);

$row['sujet'] = strtr($row['sujet'], $trans);

$temp = substr($row['sujet'],0,25);
}
else
{
$query = $sql->query('SELECT sujet FROM '.$_PRE.'topics WHERE idtopic="'.$parent.'" ');
$res = mysql_fetch_assoc($query);

$trans = get_html_translation_table(HTML_ENTITIES);
$trans = array_flip($trans);



$res['sujet'] = strtr($res['sujet'], $trans);

$temp = substr($res['sujet'],0,25);
}

$temp = explode(' ',$temp);
for ($zz=0;$zz<count($temp)-$j;$zz++)
{
$tsujet .= $temp[$zz].' ';
}
$sujet = $tsujet.'...';
unset($tsujet);
$Forums['lasttopic'] = getformatrecup($sujet,false);

}


Et ca marche nickel, plus de problème d'accents mal décodés



*** Message édité par 11steph le 29/04/2005 07:48 ***




*** Message édité par 11steph le 29/04/2005 07:50 ***

Recharger l'url avec lien direct vers ce message Imprimer le message Aller en bas de page Aller en haut de page Editez ce post (réservé aux modérateurs) Avertissez l'administrateur si le post est non conventionnel Envoyer un email à 11steph!!! Envoyer un Message Privé à 11steph Citer ce post dans votre réponse

 
 


<<Sujet précédent     Sujet suivant>>

 
[Contacter l'administrateur] | [Aller sur CoolForum.net]

 
[12 requêtes] - [Page générée en 0.0707 secondes]
 

Powered by CoolForum v.0.8.5 beta
Copyright ©2001-2014 CoolForum.net