Easy-Design.Net forum




Aides sur les thèmes PHPBoost [PBTV4] Comment ajouter l'heure et la date à la shoutbox

Swan Membre non connecté

Administrateur

Rang

Avatar

Inscrit le : 01/08/2009 à 22h53

Messages: 8431

Le 23/03/2014 à 19h55

[PBTV4] Comment ajouter l'heure et la date à la shoutbox



* Ceci est pour la version PHPBoost 4.0 - Sirocco
Avant toutes modifications, faites une sauvegarde du module concerné.


Suite à une petite conversation dans la shoutbox :

Citation:
[23/03/14 à 19h42] Swan: Bon bah highfy... la prochaine fois ouvre un sujet dans le forum .. je vais le faire pour se coup ci ^^

[23/03/14 à 19h38] Swan: Bon bah je regarde dans mon tpl alors ..

[23/03/14 à 19h15] janus57: Non cela n'est pas de base dans la V4, c'est une modification, car sur mon site de test en 4.0.6 y a pas de date/heure dans la shoutbox

[23/03/14 à 19h10] highfy: Bizzard ^^

[23/03/14 à 18h57] Swan: Bonsoir, highfy d'origine cela a été intégré .. regarde sur le site démo v4 : http://phpboost-v4.easy-design.net/ ou alors, j'ai pas compris ..

[23/03/14 à 18h44] highfy: Bonjour
comment ajouté l'heur a la shootbox sous phpv4 s
vp ?


Éditez votre shoutbox-mini.tpl qui se trouve dans le dossier "/shoutbox/templates".
Effacez et copiez/collez ce code :

Code TPL :
 
 
<script type="text/javascript">
<!--
function XMLHttpRequest_shoutmsg()
{
# IF C_BBCODE_TINYMCE_MODE #
tinyMCE.triggerSave();
# ENDIF #
 
var pseudo = document.getElementById("shout_pseudo").value;
var contents = document.getElementById("shout_contents").value;
 
if( pseudo != '' && contents != '' )
{
document.getElementById('shoutimg').src = '{PATH_TO_ROOT}/templates/{THEME}/images/loading_mini.gif';
 
pseudo = escape_xmlhttprequest(pseudo);
contents = escape_xmlhttprequest(contents);
data = "pseudo=" + pseudo + "&contents=" + contents;
var xhr_object = xmlhttprequest_init('{PATH_TO_ROOT}/shoutbox/xmlhttprequest.php?add=1&display_date=1&token={TOKEN}');
xhr_object.onreadystatechange = function() 
{
if( xhr_object.readyState == 4 && xhr_object.status == 200 && xhr_object.responseText != '-1' && xhr_object.responseText != '-2' && xhr_object.responseText != '-3' && xhr_object.responseText != '-4' && xhr_object.responseText != '-5' && xhr_object.responseText != '-6' )
{
var array_shout = new Array('', '');
eval(xhr_object.responseText);
document.getElementById('shout_container').innerHTML = '<p id="shout_container_' + array_shout[2] + '">' + array_shout[0] + '<span class="text_small">: ' + array_shout[1] + '</span></p>' + document.getElementById('shout_container').innerHTML;
document.getElementById('shout_contents').value = '';
document.getElementById('shoutimg').src = '{PATH_TO_ROOT}/templates/{THEME}/images/refresh_mini.png';
}
else if( xhr_object.readyState == 4 )
{
document.getElementById('shoutimg').src = '{PATH_TO_ROOT}/templates/{THEME}/images/refresh_mini.png';
switch( xhr_object.responseText )
{
case '-1': 
alert("{L_ALERT_UNAUTH_POST}");
break;
case '-2': 
alert("{L_ALERT_FLOOD}");
break;
case '-3': 
alert("{L_ALERT_LINK_PSEUDO}");
break;
case '-4': 
alert("{L_ALERT_LINK_FLOOD}");
break;
case '-5': 
alert("{L_ALERT_INCOMPLETE}");
break;
case '-6': 
alert("{L_ALERT_READONLY}");
break;
}
}
}
xmlhttprequest_sender(xhr_object, data);
}
else
alert("{L_ALERT_INCOMPLETE}");
}
function XMLHttpRequest_shoutdelmsg(idmsg)
{
document.getElementById('shoutimg').src = '{PATH_TO_ROOT}/templates/{THEME}/images/loading_mini.gif';
data = "idmsg=" + idmsg;
var xhr_object = xmlhttprequest_init('{PATH_TO_ROOT}/shoutbox/xmlhttprequest.php?del=1&token={TOKEN}');
xhr_object.onreadystatechange = function() 
{
if( xhr_object.readyState == 4 && xhr_object.status == 200 && xhr_object.responseText == '1' )
{
document.getElementById('shoutimg').src = '{PATH_TO_ROOT}/templates/{THEME}/images/refresh_mini.png';
document.getElementById('shout_container_' + idmsg).style.display = 'none';
}
else if( xhr_object.readyState == 4 )
document.getElementById('shoutimg').src = '{PATH_TO_ROOT}/templates/{THEME}/images/refresh_mini.png';
}
xmlhttprequest_sender(xhr_object, data);
}
 
function XMLHttpRequest_shoutrefresh()
{
document.getElementById('shoutimg').src = '{PATH_TO_ROOT}/templates/{THEME}/images/loading_mini.gif';
var xhr_object = xmlhttprequest_init('{PATH_TO_ROOT}/shoutbox/xmlhttprequest.php?refresh=1&display_date=1&token={TOKEN}');
xhr_object.onreadystatechange = function() 
{
if( xhr_object.readyState == 4 && xhr_object.status == 200 && xhr_object.responseText != '' )
{
document.getElementById('shoutimg').src = '{PATH_TO_ROOT}/templates/{THEME}/images/refresh_mini.png';
document.getElementById('shout_container').innerHTML = xhr_object.responseText;
}
else if( xhr_object.readyState == 4 )
document.getElementById('shoutimg').src = '{PATH_TO_ROOT}/templates/{THEME}/images/refresh_mini.png';
}
xmlhttprequest_sender(xhr_object, null);
if( {SHOUT_REFRESH_DELAY} > 0 )
setTimeout('XMLHttpRequest_shoutrefresh()', {SHOUT_REFRESH_DELAY});
}
function check_form_shout(){
if(document.getElementById('shout_contents').value == "") {
alert("{L_ALERT_TEXT}");
return false;
}
return true;
}
function Confirm_del_shout(idmsg) {
if( confirm("{L_DELETE_MSG}") )
XMLHttpRequest_shoutdelmsg(idmsg);
}
if( {SHOUT_REFRESH_DELAY} > 0 )
setTimeout('XMLHttpRequest_shoutrefresh()', {SHOUT_REFRESH_DELAY});
-->
</script>
 
 
<form action="?token={TOKEN}" method="post" onsubmit="return check_form_shout();">
# IF C_VERTICAL #
<div class="module_mini_container">
<div class="module_mini_top">
<h5 class="sub_title">{L_SHOUTBOX}</h5>
</div>
<div class="module_mini_contents">
<div id="shout_container">
# START shout #
<p id="shout_container_{shout.IDMSG}">{shout.DEL_MSG}<span class="text_small">{shout.DATE}</span>  {shout.PSEUDO}<span class="text_small">: {shout.CONTENTS}</span></p>
# END shout #
</div>
# IF C_VISIBLE_SHOUT #
<label for="shout_pseudo"><span class="text_small">{L_PSEUDO}</span></label>
<input size="16" maxlength="25" type="text" class="text" name="shout_pseudo" id="shout_pseudo" value="{SHOUTBOX_PSEUDO}" />
# ENDIF #
# IF C_HIDDEN_SHOUT #
<input size="16" maxlength="25" type="hidden" class="text" name="shout_pseudo" id="shout_pseudo" value="{SHOUTBOX_PSEUDO}" />
# ENDIF #
<br />
<label for="shout_contents"><span class="text_small">{L_MESSAGE}</span></label>
<textarea class="post" id="shout_contents" name="shout_contents" rows="4" cols="16"></textarea>
 
<p class="shout_spacing">
<input type="submit" name="shoutbox" id="shoutbox_submit" value="{L_SUBMIT}" class="submit" />
<script type="text/javascript">
<!--
document.getElementById('shoutbox_submit').style.display = 'none';
document.write('<input value="{L_SUBMIT}" onclick="XMLHttpRequest_shoutmsg();" type="button" class="submit" />');
-->
</script>
<a href="javascript:XMLHttpRequest_shoutrefresh();" title="{L_REFRESH}"><img src="{PATH_TO_ROOT}/templates/{THEME}/images/refresh_mini.png" id="shoutimg" alt="{L_REFRESH}" class="valign_middle" /></a>
</p>
<a class="small_link" href="{PATH_TO_ROOT}/shoutbox/shoutbox.php{SID}" title="">{L_ARCHIVES}</a>
</div>
<div class="module_mini_bottom"></div>
</div>
# ELSE #
<div class="module_mini_container" style="width:auto;">
<div class="module_mini_top">
<h5 class="sub_title">{L_SHOUTBOX}</h5>
</div>
<div class="module_mini_contents" style="width:auto;">
<div class="shout_horizontal">
<div id="shout_container">
# START shout #
<p id="shout_container_{shout.IDMSG}">{shout.DEL_MSG}<span class="text_small"> {shout.DATE} : </span>{shout.PSEUDO} <span class="text_small">: {shout.CONTENTS}</span></p>
# END shout #
</div>
# IF C_VISIBLE_SHOUT #
<label for="shout_pseudo"><span class="text_small">{L_PSEUDO}</span></label>
<input size="16" maxlength="25" type="text" class="text" name="shout_pseudo" id="shout_pseudo" value="{SHOUTBOX_PSEUDO}" />
# ENDIF #
# IF C_HIDDEN_SHOUT #
<input size="16" maxlength="25" type="hidden" class="text" name="shout_pseudo" id="shout_pseudo" value="{SHOUTBOX_PSEUDO}" />
# ENDIF #
<br />
<textarea class="post" id="shout_contents" name="shout_contents" rows="2" cols="16"></textarea>
<p class="shout_spacing">
<input type="submit" name="shoutbox" id="shoutbox_submit" value="{L_SUBMIT}" class="submit" />
<script type="text/javascript">
<!--
document.getElementById('shoutbox_submit').style.display = 'none';
document.write('<input value="{L_SUBMIT}" onclick="XMLHttpRequest_shoutmsg();" type="button" class="submit" />');
-->
</script>
<a href="javascript:XMLHttpRequest_shoutrefresh();" title="{L_REFRESH}"><img src="{PATH_TO_ROOT}/templates/{THEME}/images/refresh_mini.png" id="shoutimg" alt="{L_REFRESH}" class="valign_middle" /></a>
</p>
<a class="small_link" href="{PATH_TO_ROOT}/shoutbox/shoutbox.php{SID}" title="">{L_ARCHIVES}</a>
</div>
</div>
<div class="module_mini_bottom"></div>
</div>
# ENDIF #
</form>
 

Enregistrez ..

Suite optionnelle : mise entre crochet de la date & de l'heure.



Ensuite , vu que c'est une modification que j'avais demandé sur PBT (Voici le sujet) , j'ai aussi du revoir le xmlhttprequest.php et le ShoutboxModuleMiniMenu.class.php
Pour bien avoir le bouton delete avant la date et pas avant le pseudo, ce qui me semblait plus cohérent. comme vous pouvez le voir sur le site demo v4 ..

2/ Donc pour le xmlhttprequest.php :

A la ligne 90 :

Code PHP :
$shout_pseudo = ($display_date ? '<span class="text_small">' . $date . ' : </span>' : '') . '<a href="javascript:Confirm_del_shout(' . $last_msg_id . ');" title="' . $LANG['delete'] . '"><img src="'. TPL_PATH_TO_ROOT .'/templates/' . get_utheme() . '/images/delete_mini.png" alt="" /></a> <a class="' . UserService::get_level_class($User->get_level()) . '" '.$style.' href="' . UserUrlBuilder::profile($User->get_attribute('user_id'))->absolute() . '">' . (!empty($shout_pseudo) ? TextHelper::wordwrap_html($shout_pseudo, 16) : $LANG['guest'])  . ' </a>';
 


Modifiez comme ceci :

Code PHP :
$shout_pseudo =  '<a href="javascript:Confirm_del_shout(' . $last_msg_id . ');" title="' . $LANG['delete'] . '"><img src="'. TPL_PATH_TO_ROOT .'/templates/' . get_utheme() . '/images/delete_mini.png" alt="" /></a> '.($display_date ? '<span class="text_small">' . $date . ' : </span>' : '').'<a class="' . UserService::get_level_class($User->get_level()) . '" '.$style.' href="' . UserUrlBuilder::profile($User->get_attribute('user_id'))->absolute() . '">' . (!empty($shout_pseudo) ? TextHelper::wordwrap_html($shout_pseudo, 16) : $LANG['guest'])  . ' </a>';


De la ligne 128 à 131 :

Code PHP :
$row['login'] = ($display_date ? '<span class="text_small">' . $date . ' : </span>' : '') . $del . ' <a class="' . UserService::get_level_class($row['level']) . '" '.$style.' href="'. UserUrlBuilder::profile($row['user_id'])->absolute()  . '">' . (!empty($row['login']) ? TextHelper::wordwrap_html($row['login'], 16) : $LANG['guest'])  . ' </a>';
}
else
$row['login'] = ($display_date ? '<span class="text_small">' . $date . ' : </span>' : '') . $del . ' <span class="text_small" style="font-style: italic;">' . (!empty($row['login']) ? TextHelper::wordwrap_html($row['login'], 16) : $LANG['guest']) . ' </span>';
 


Modifiez comme ceci :

Code PHP :
$row['login'] = $del .($display_date ? '<span class="text_small">[' . $date . '] </span>' : '') . ' <a class="' . UserService::get_level_class($row['level']) . '" '.$style.' href="'. UserUrlBuilder::profile($row['user_id'])->absolute()  . '">' . (!empty($row['login']) ? TextHelper::wordwrap_html($row['login'], 16) : $LANG['guest'])  . ' </a>';
}
else
$row['login'] = $del .($display_date ? '<span class="text_small">[' . $date . '] </span>' : '') . ' <span class="text_small" style="font-style: italic;">' . (!empty($row['login']) ? TextHelper::wordwrap_html($row['login'], 16) : $LANG['guest']) . ' </span>';
 



- Et pour le ShoutboxModuleMiniMenu.class.php qui se trouve dans le dossier "/shoutbox/phpboost/".

- ] A partir de la ligne 150 commentez par des double-slash comme ceci "//", les lignes 150 et 153.

b) et à la ligne 160 remplacez comme ceci :

Code PHP :
    'DATE' => $del_message . " [". $date->format(DATE_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) ."]" ,




Voilà ce que nous avaons sur le site démo V4.0.. Et n'oubliez pas de rafraichir vos caches au passage.

@imablement Swan.


swan_signature

Site web    
Freezz Membre non connecté

EDN Curieux(se)

Rang

Avatar

Inscrit le : 10/03/2014 à 15h21

Messages: 26

Le 27/03/2014 à 13h11
Merci pour ce tuto

Par contre, tu sais où on dois aller pour modifier l'ordre d'affichage des messages?
J'aimerais faire défiler les messages de bas en haut afin que les derniers messages soit en bas.

Je connais le script à faire pour cela, (soit le ORDER BY sur le script php) mais je ne sais pas où le modifier.

Merci beaucoup

Cordialement
Site web    
Swan Membre non connecté

Administrateur

Rang

Avatar

Inscrit le : 01/08/2009 à 22h53

Messages: 8431

Le 27/03/2014 à 18h22
Bonjour Freezz,

Dans le modules shoutbox, shoutbox.php. Pour le défilage des messages, normalement tu dois pouvoir le faire dans le fichier shoutbox_mini.tpl , comme pour le menu message liste pour la v4 .. Mais je suis pas sur.


Swan :study


swan_signature

Site web    
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie