Μια μικρή βοήθεια (αν κάποιος ξέρει!)
Μόλις εγκατέστησα το SMF Shoutbox «έκανα όλες τις απαραίτητες αλλαγές» αλλά μου παρουσιάζετε ένα πρόβλημα σχετικά με τα smiles του Shoutbox . αν έχω καταλάβει καλά η «αντιστοιχία» βρίσκετε στο αρχείο sboxDB.php
Στο συγκεκριμένο αρχείο «πρέπει» να βρω το:
// handle spacial characters $content=addslashes($content);
Και να το αντικαταστήσω με αυτό:
// handle special characters $content=addslashes($content); // enquote html and script code to avoid html/javascript injection $content = htmlentities($content, ENT_QUOTES);
Όμως στο αρχείο sboxDB.php δεν υπάρχει πουθενά το // handle spacial characters
Μήπως κάποιος από εσάς μπορεί να βρει τι ακριβώς πρέπει να είναι «γραμμένο» στο sboxDB.php
Ευχαριστώ
diavlos
Κοίτα τη γραμμή 180 του αρχείου.
Αν στην αναζήτηση βάζεις spacial και όχι special είναι επόμενο να μη το βρίσκει. :)
Παρεμπιπτόντως και εγώ θέλω να κάνω αλλαγές στο κατά τα άλλα καταπληκτικό αυτό σουτμποξ.
Μήπως ξέρεις πως να το βάλω σε block και όχι στη κεντρική; Θα με γλύτωνες από το ψάξιμο. :)
Quote from: Nefeli on July 27, 2007, 11:51:24 AM
Μήπως ξέρεις πως να το βάλω σε block και όχι στη κεντρική; Θα με γλύτωνες από το ψάξιμο. :)
Το πέτυχα και δεν χρειάστηκε να ψάξω και πολύ! :)
πρόσθεσα το κώδικα
// display shoutbox
if (function_exists('sbox')) sbox();
σε ένα php block ....
Μένει μόνο να ρυθμίσω το πλάτος :)
<?
require("../SSI.php");
if (!defined('SMF'))
die('Hacking attempt...');
// global variables
global $db_connection, $context, $settings, $txt, $user_info, $modSettings, $db_prefix;
// used in test scenario
//@mysql_select_db($db_name, $db_connection);
//display html header
echo '<html xmlns="http://www.w3.org/1999/xhtml"', $context['right_to_left'] ? ' dir="rtl"' : '', '>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=', $context['character_set'], '" />
<meta name="description" content="Shoutbox" />
<meta name="keywords" content="Shoutbox" />
<title>Shoutbox</title>
<meta http-equiv="refresh" content="'.$modSettings['sbox_RefreshTime'].';URL=sboxDB.php">
<link rel="stylesheet" type="text/css" href="', $settings['theme_url'], '/style.css?rc2" />
<script language="JavaScript" type="text/javascript"><!-- // --><![CDATA[
function killYesNo()
{
return confirm("'.$txt['sbox_KillShout'].'");
}
// ]]></script>
<style type="text/css"><!-- // --><![CDATA[
<!--
.Kill
{
color: #ff0000;
}
.OddLine
{
font-family: '.$modSettings['sbox_FontFamily1'].';
font-style: normal;
font-size: '.$modSettings['sbox_TextSize1'].';
font-weight: normal;
color: '.$modSettings['sbox_TextColor1'].';
}
.EvenLine
{
font-family: '.$modSettings['sbox_FontFamily2'].';
font-style: normal;
font-size: '.$modSettings['sbox_TextSize2'].';
font-weight: normal;
color: '.$modSettings['sbox_TextColor2'].';
}
body
{
padding: 0px 0px 0px 0px;
background-color: '.$modSettings['sbox_BackgroundColor'].';
}
a:link
{
color: #ff0000;
text-decoration: none;
}
//-->
// ]]></style>';
switch ($_REQUEST['action'])
{
case "write":
if ((!$context['user']['is_guest']) || ($modSettings['sbox_GuestAllowed'] == "1"))
{
// empty messages are not allowed
$content=$_REQUEST['sboxText'];
if(chop($content."") != "")
{
// get actual weekday
$days = array($txt['sbox_Sunday'],$txt['sbox_Monday'],$txt['sbox_Tuesday'],$txt['sbox_Wednesday'],$txt['sbox_Thurday'],$txt['sbox_Friday'],$txt['sbox_Saturday']);
$day=$days[date("w")]; // weekday
$date=$day." | ". date("G:i"); // time
// insert shout message into database
$sql = "insert into ".$db_prefix."sbox_content (name,content,time) values ('".$user_info['username']."','".$content."','$date')";
db_query($sql,__FILE__,__LINE__);
// delete old shout messages (get id of last shouting and delete all shoutings as defined in settings
$result = db_query("select id from ".$db_prefix."sbox_content where name='".$user_info['username']."' and content='".$content."' and time='$date'",__FILE__,__LINE__);
$rows = mysql_fetch_assoc($result) ;
$sql = "delete from ".$db_prefix."sbox_content where id < '".($rows["id"]-$modSettings['sbox_MaxLines'])."'";
db_query($sql,__FILE__,__LINE__);
}
}
break;
case "kill":
if ($context['user']['is_admin'])
{
$id = "".$_REQUEST['kill'];
if ($id != "")
{
$sql = "delete from ".$db_prefix."sbox_content where id=".$id."";
db_query($sql,__FILE__,__LINE__);
}
}
break;
}
// close header and open body
echo '
</head>
<body>';
// get smilie path
$themedir = $settings['default_theme_url']; // smf theme path
$imgdir = $themedir."/images/"; // smilie path
// get shout messages out of database
$result = db_query("select * from ".$db_prefix."sbox_content order by id desc, time asc limit ".$modSettings['sbox_MaxLines'],__FILE__,__LINE__);
if(mysql_num_rows($result))
{
$count=0; // counter to distinguish font color
while($row = mysql_fetch_assoc($result))
{
$count = $count + 1; // increase counter
$name = $row["name"]; // user name
$date = $row["time"]; // shouting date and time
$content = stripslashes($row['content']); // shouting content
// replace smilie code with path to smilie image
$content = str_replace ($txt['sbox_smilie01_code'], '<img src="'.$imgdir.$txt['sbox_smilie01_file'].'" alt="'.$txt['sbox_smilie01_text'].'" title="'.$txt['sbox_smilie01_text'].'" border="0" />', $content);
$content = str_replace ($txt['sbox_smilie02_code'], '<img src="'.$imgdir.$txt['sbox_smilie02_file'].'" alt="'.$txt['sbox_smilie02_text'].'" title="'.$txt['sbox_smilie02_text'].'" border="0" />', $content);
$content = str_replace ($txt['sbox_smilie03_code'], '<img src="'.$imgdir.$txt['sbox_smilie03_file'].'" alt="'.$txt['sbox_smilie03_text'].'" title="'.$txt['sbox_smilie03_text'].'" border="0" />', $content);
$content = str_replace ($txt['sbox_smilie04_code'], '<img src="'.$imgdir.$txt['sbox_smilie04_file'].'" alt="'.$txt['sbox_smilie04_text'].'" title="'.$txt['sbox_smilie04_text'].'" border="0" />', $content);
$content = str_replace ($txt['sbox_smilie05_code'], '<img src="'.$imgdir.$txt['sbox_smilie05_file'].'" alt="'.$txt['sbox_smilie05_text'].'" title="'.$txt['sbox_smilie05_text'].'" border="0" />', $content);
$content = str_replace ($txt['sbox_smilie06_code'], '<img src="'.$imgdir.$txt['sbox_smilie06_file'].'" alt="'.$txt['sbox_smilie06_text'].'" title="'.$txt['sbox_smilie06_text'].'" border="0" />', $content);
$content = str_replace ($txt['sbox_smilie07_code'], '<img src="'.$imgdir.$txt['sbox_smilie07_file'].'" alt="'.$txt['sbox_smilie07_text'].'" title="'.$txt['sbox_smilie07_text'].'" border="0" />', $content);
$content = str_replace ($txt['sbox_smilie08_code'], '<img src="'.$imgdir.$txt['sbox_smilie08_file'].'" alt="'.$txt['sbox_smilie08_text'].'" title="'.$txt['sbox_smilie08_text'].'" border="0" />', $content);
$content = str_replace ($txt['sbox_smilie09_code'], '<img src="'.$imgdir.$txt['sbox_smilie09_file'].'" alt="'.$txt['sbox_smilie09_text'].'" title="'.$txt['sbox_smilie09_text'].'" border="0" />', $content);
$content = str_replace ($txt['sbox_smilie10_code'], '<img src="'.$imgdir.$txt['sbox_smilie10_file'].'" alt="'.$txt['sbox_smilie10_text'].'" title="'.$txt['sbox_smilie10_text'].'" border="0" />', $content);
$content = str_replace ($txt['sbox_smilie11_code'], '<img src="'.$imgdir.$txt['sbox_smilie11_file'].'" alt="'.$txt['sbox_smilie11_text'].'" title="'.$txt['sbox_smilie11_text'].'" border="0" />', $content);
$content = str_replace ($txt['sbox_smilie12_code'], '<img src="'.$imgdir.$txt['sbox_smilie12_file'].'" alt="'.$txt['sbox_smilie12_text'].'" title="'.$txt['sbox_smilie12_text'].'" border="0" />', $content);
$content = str_replace ($txt['sbox_smilie13_code'], '<img src="'.$imgdir.$txt['sbox_smilie13_file'].'" alt="'.$txt['sbox_smilie13_text'].'" title="'.$txt['sbox_smilie13_text'].'" border="0" />', $content);
$content = str_replace ($txt['sbox_smilie14_code'], '<img src="'.$imgdir.$txt['sbox_smilie14_file'].'" alt="'.$txt['sbox_smilie14_text'].'" title="'.$txt['sbox_smilie14_text'].'" border="0" />', $content);
$content = str_replace ($txt['sbox_smilie15_code'], '<img src="'.$imgdir.$txt['sbox_smilie15_file'].'" alt="'.$txt['sbox_smilie15_text'].'" title="'.$txt['sbox_smilie15_text'].'" border="0" />', $content);
// display shouting message and use a different color each second row
if ($count % 2)
echo '
<div class="OddLine">';
else
echo '
<div class="EvenLine">';
if ($context['user']['is_admin'])
echo '<a title="'.$txt['sbox_KillShout'].'" class="Kill" onclick="return killYesNo();" href="sboxDB.php?action=kill&kill='.$row['id'].'">[X]</a>';
echo '[ '.$date.' ] <b><'.$name.'></b> '.$content.'</div>';
}
echo '
</body>
</html>';
}
?>
Αυτός είναι ο κώδικας στο sboxDB.php
Έψαξα αλλά δεν βρήκα πουθενά το
// handle spacial characters $content=addslashes($content);
Έτσι ώστε να το αντικαταστήσω
Κάποιο λάθος κάνεις.
Το αρχείο sboxDB.php είναι το παρακάτω
<?php
header('Pragma: no-cache');
header('Expires: 0');
header('Cache-control: none');
require("../SSI.php");
if (!defined('SMF'))
die('Hacking attempt...');
loadLanguage('sbox');
/***[ BEGIN CONFIGURATION ]***************************************************/
$sbox_HistoryFile = $boarddir . '/sbox.history.html';
$sbox_NickPrefix = '<'; // this won't be linked to the profile page
$sbox_NickInnerPrefix = '<b>'; // this will be linked to the profile page, use formatting tags (<B>) here
$sbox_NickInnerSuffix = '</b>'; // so that they are applied inside the <A>, otherwise they won't work
$sbox_NickSuffix = '>';
$sbox_DatePrefix = '[';
$sbox_DateSeparator = ' '; // separates weekday from time
$sbox_DateSuffix = ']';
/***[ END CONFIGURATION ]*****************************************************/
// BEGIN: BORROWED FROM http://de2.php.net/manual/en/function.flock.php
/*
* I hope this is usefull.
* If mkdir() is atomic,
* then we do not need to worry about race conditions while trying to make the lockDir,
* unless of course we're writing to NFS, for which this function will be useless.
* so thats why i pulled out the usleep(rand()) piece from the last version
*
* Again, its important to tailor some of the parameters to ones indivdual usage
* I set the default $timeLimit to 3/10th's of a second (maximum time allowed to achieve a lock),
* but if you're writing some extrememly large files, and/or your server is very slow, you may need to increase it.
* Obviously, the $staleAge of the lock directory will be important to consider as well if the writing operations might take a while.
* My defaults are extrememly general and you're encouraged to set your own
*
* $timeLimit is in microseconds
* $staleAge is in seconds
*/
function microtime_float() {
list($usec, $sec) = explode(' ', microtime());
return ((float)$usec + (float)$sec);
}
function locked_filewrite($filename, $data, $timeLimit = 300000, $staleAge = 5) {
ignore_user_abort(1);
$lockDir = $filename . '.lock';
if (is_dir($lockDir)) {
if ((time() - filemtime($lockDir)) > $staleAge) {
rmdir($lockDir);
}
}
$locked = @mkdir($lockDir);
if ($locked === false) {
$timeStart = microtime_float();
do {
if ((microtime_float() - $timeStart) > $timeLimit) break;
$locked = @mkdir($lockDir);
} while ($locked === false);
}
$success = false;
if ($locked === true) {
$fp = @fopen($filename, 'at');
if (@fwrite($fp, $data)) $success = true;
@fclose($fp);
rmdir($lockDir);
}
ignore_user_abort(0);
return $success;
}
// END: BORROWED FROM http://de2.php.net/manual/en/function.flock.php
function missinghtmlentities($text) {
global $context;
// entitify missing characters, ignore entities already there (Unicode / UTF8) (hopefully in &#123;-notation)
$split = preg_split('/(&#[\d]+;)/', $text, -1, PREG_SPLIT_DELIM_CAPTURE);
$result = '';
foreach ($split as $s) {
if (substr($s, 0, 2) != '&#' || substr($s, -1, 1) != ';') {
// filter out "ANSI_X3.4-1968" charset, which just means plain old ASCII ... replace by UTF-8
if (strpos($context['character_set'], 'ANSI_') !== false) $charset = 'UTF-8'; else $charset = $context['character_set'];
$result .= @htmlentities($s, ENT_NOQUOTES, $charset);
} else {
$result .= $s;
}
}
return $result;
}
//display html header
echo '<html xmlns="http://www.w3.org/1999/xhtml"' . ($context['right_to_left']?' dir="rtl"':'') . '>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=', $context['character_set'], '" />';
$result = db_query("SELECT time FROM {$db_prefix}sbox_content ORDER BY time DESC LIMIT 1", __FILE__, __LINE__);
$row = mysql_fetch_assoc($result);
$refreshBlocked = false;
$delta = time() - $row['time'];
if ((!empty($_REQUEST['action'])) && ($_REQUEST['action'] == 'write')) $dontblock = true; else $dontblock = false;
if (($delta > $modSettings['lastActive']*60) && ($modSettings['sbox_BlockRefresh'] == '1') && (!$dontblock)) {
$refreshBlocked = true;
} elseif (empty($_REQUEST['action']) || ($_REQUEST['action'] != 'stoprefresh')) {
echo '
<meta http-equiv="refresh" content="' . $modSettings['sbox_RefreshTime'] . ';URL=sboxDB.php?ts=' . time() . '">';
}
$sbox_CurTheme = strtolower(substr($settings['theme_url'], strrpos($settings['theme_url'], '/')+1));
$sbox_DarkThemes = explode('|', strtolower($modSettings['sbox_DarkThemes']));
if (in_array($sbox_CurTheme, $sbox_DarkThemes)) {
$sbox_TextColor2 = $modSettings['sbox_TextColor2'];
} else {
$sbox_TextColor2 = $modSettings['sbox_TextColor1'];
}
echo '
<link rel="stylesheet" type="text/css" href="' . $settings['theme_url'] . '/style.css?rc2" />
<script language="JavaScript" type="text/javascript"><!-- // --><![CDATA[
function kill() { return confirm("' . $txt['sbox_KillShout'] . '"); }
function clearHist() { return confirm("' . $txt['quickmod_confirm'] . '"); }
// get SMF-time including time zone corrections (system+user)
if (parent && parent.document.sbox.ts) {
parent.document.sbox.ts.value = ' . forum_time(true) . ';
}
// ]]></script>
<style type="text/css">
.windowbg2 {
font-family: ' . $modSettings['sbox_FontFamily'] . ';
font-style: normal;
font-size: ' . $modSettings['sbox_TextSize'] . ';
font-weight: normal;
text-decoration: none;
}
.Even {
color: ' . $sbox_TextColor2 . ';
font-weight: normal;
text-decoration: none;
}
body {
width: 100%;
padding: 0;
margin: 0;
border: 0;
}
.Kill, A.Kill {
color: #ff0000;
}
</style>';
if (!empty($_REQUEST['action'])) switch ($_REQUEST['action']) {
case 'write':
if (((!$context['user']['is_guest']) || ($modSettings['sbox_GuestAllowed'] == '1')) && !empty($_REQUEST['sboxText'])) {
is_not_banned(true); // die with message, if user is banned, let him read everything though
$content = $_REQUEST['sboxText'];
// get current timestamp
$date = time();
$posterip = $user_info['ip'];
$pip = explode('.', $posterip);
$piph = sprintf("%02s%02s%02s%02s", dechex($pip[0]), dechex($pip[1]), dechex($pip[2]), dechex($pip[3]));
// handle special characters
$content = addslashes($piph . $content);
// insert shout message into database
$sql = "INSERT INTO " . $db_prefix . "sbox_content (ID_MEMBER, content, time) VALUES ('" . $context['user']['id'] . "', '" . $content . "', '$date')";
db_query($sql, __FILE__, __LINE__);
// delete old shout messages (get id of last shouting and delete all shoutings as defined in settings
$result = db_query("SELECT id FROM " . $db_prefix . "sbox_content WHERE ID_MEMBER='" . $context['user']['id'] . "' AND content='" . $content . "' AND time='$date'", __FILE__, __LINE__);
$rows = mysql_fetch_assoc($result);
$sql = 'DELETE FROM ' . $db_prefix . "sbox_content WHERE id < '" . ($rows["id"]-$modSettings['sbox_MaxLines']) . "'";
db_query($sql, __FILE__, __LINE__);
// write into history if needed
if ($modSettings['sbox_DoHistory'] == '1') {
$ds = $sbox_DatePrefix . date('Y-m-d', $date) . $sbox_DateSeparator . date('H:i.s', $date) . $sbox_DateSuffix;
$content = stripslashes($content); // shouting content
$content = substr($content, 8);
$content = missinghtmlentities($content);
if ($modSettings['sbox_AllowBBC'] == '1' && ($context['user']['id'] > 0 || $modSettings['sbox_GuestBBC'] == '1')) {
$content = parse_bbc($content);
}
$output = $ds . ' ' . $sbox_NickPrefix;
if ($context['user']['id'] > 0) {
$output .= '<a href="' . $scripturl . '?action=profile;u=' . $context['user']['id'] . '" target="_blank" class="' . $divclass . '">';
$output .= $sbox_NickInnerPrefix . ((!empty($context['user']['name']))?$context['user']['name']:$context['user']['username']) . $sbox_NickInnerSuffix;
$output .= '</a>';
} else {
$output .= $sbox_NickInnerPrefix . 'Guest-' . base_convert($piph, 16, 36) . $sbox_NickInnerSuffix;
}
$output .= $sbox_NickSuffix . ' ' . $content . '</div><br />' . "\n";
if (!file_exists($sbox_HistoryFile)) {
// TODO: Prepare file ... HTML-header, stylesheet, etc.
}
locked_filewrite($sbox_HistoryFile, $output);
}
}
break;
case 'clearhist':
if ($context['user']['is_admin']) {
if (file_exists($sbox_HistoryFile)) {
$lockDir = $sbox_HistoryFile . '.lock';
$start = time();
while ((is_dir($lockDir)) && ((time() - $start) < 5)) {
usleep(100000); // sleep 1/10th of a second (for a PC these are ages!)
}
if (!is_dir($lockDir)) @unlink($sbox_HistoryFile);
}
}
break;
case 'kill':
if (!empty($_REQUEST['kill']) && ($context['user']['is_admin'] || ($modSettings['sbox_ModsRule'] && count(boardsAllowedTo('moderate_board'))>0))) {
$sql = 'DELETE FROM ' . $db_prefix . 'sbox_content WHERE id=' . intval($_REQUEST['kill']);
db_query($sql, __FILE__, __LINE__);
}
break;
}
// close header and open body
echo '
</head>
<body class="windowbg2"><div class="windowbg2">';
echo "\n" . '<b>' . $sbox_DatePrefix . strftime($user_info['time_format'], forum_time(true)) . $sbox_DateSuffix;
if ($refreshBlocked) {
echo ' ' . $txt['sbox_RefreshBlocked'];
}
echo '</b><br />';
if ($context['user']['is_admin']) {
if ($modSettings['sbox_DoHistory'] == '1') {
echo "\n";
if (file_exists($sbox_HistoryFile)) {
echo '[<a href="' . str_replace($boarddir, $boardurl, $sbox_HistoryFile) . '" target="_blank">' . $txt['sbox_History'] . '</a>]';
echo ' [<a href="' . $_SERVER['PHP_SELF'] . '?action=clearhist" class="Kill" onClick="return clearHist();">' . $txt['sbox_HistoryClear'] . '</a>]';
} else {
echo '[' . $txt['sbox_HistoryNotFound'] . ']';
}
echo '';
}
}
if (!$refreshBlocked) {
if (!empty($_REQUEST['action']) && ($_REQUEST['action'] == 'stoprefresh')) {
echo ' [<a href="' . $_SERVER['PHP_SELF'] . '">' . $txt['sbox_RefreshEnable'] . '</a>]';
} else {
echo ' [<a href="' . $_SERVER['PHP_SELF'] . '?action=stoprefresh">' . $txt['sbox_RefreshDisable'] . '</a>]';
}
}
/*
if (!empty($settings['display_who_viewing'])) {
echo '<small>';
if ($settings['display_who_viewing'] == 1)
echo count($context['view_members']), ' ', count($context['view_members']) == 1 ? $txt['who_member'] : $txt[19];
else
echo empty($context['view_members_list']) ? '0 ' . $txt[19] : implode(', ', $context['view_members_list']) . ((empty($context['view_num_hidden']) or $context['can_moderate_forum']) ? '' : ' (+ ' . $context['view_num_hidden'] . ' ' . $txt['hidden'] . ')');
echo $txt['who_and'], $context['view_num_guests'], ' ', $context['view_num_guests'] == 1 ? $txt['guest'] : $txt['guests'], $txt['who_viewing_board'], '</small>';
}
*/
// get shout messages out of database
$result = db_query("
SELECT *
FROM {$db_prefix}sbox_content AS sb
LEFT JOIN {$db_prefix}members AS mem ON (mem.ID_MEMBER = sb.ID_MEMBER)
ORDER BY id DESC, time ASC LIMIT " . $modSettings['sbox_MaxLines'], __FILE__, __LINE__);
if(mysql_num_rows($result)) {
$lname = '';
$count = 0;
$div = false;
$alert = false;
while($row = mysql_fetch_assoc($result)) {
$name = $row['ID_MEMBER']; // user name
$date = forum_time(true, $row['time']); // shouting date and time
$content = stripslashes($row['content']); // shouting content
$piph = substr($content, 0, 8);
$content = substr($content, 8);
censorText($content);
$content = missinghtmlentities($content);
if ($modSettings['sbox_AllowBBC'] == '1' && ($name > 0 || $modSettings['sbox_GuestBBC'] == '1')) {
$content = preg_replace('/(\[img)(.*?)(\[\/img\])/i', '', $content); // filter out [img]-BBC
$content = parse_bbc($content);
}
if (!empty($_REQUEST['ts']) && !$div && $date<$_REQUEST['ts']) {
if ($count > 0 && $modSettings['sbox_NewShoutsBar'] == '1') {
echo '<hr>' . "\n";
}
$div = true;
}
if ($name != $lname) {
$count++; // increase counter
}
$lname = $name;
// display shouting message and use a different color each second row
if ($count % 2 == 0) {
$divclass = 'windowbg2';
} else {
$divclass = 'Even';
}
/* $r = $g = $b = 0;
for ($i=0;$i<strlen($name);$i++) {
$x = ord(substr($name, $i, 1));
switch ($i % 3) {
case 0: $r += $x; break;
case 1: $g += $x; break;
case 2: $b += $x; break;
}
}
$r = dechex($r % 192);
$g = dechex($g % 192);
$b = dechex($b % 192);
if (strlen($r)<2) $r = '0' . $r;
if (strlen($g)<2) $g = '0' . $g;
if (strlen($b)<2) $b = '0' . $b;
$colh = $r . $g . $b;
echo "\n" . '<div class="' . $divclass . '" style="color: #' . $colh . '">'; */
echo "\n" . '<div class="' . $divclass . '">';
if ($context['user']['is_admin'] || ($modSettings['sbox_ModsRule'] && count(boardsAllowedTo('moderate_board'))>0)) {
echo '[<a title="' . $txt['sbox_KillShout'] . '" class="Kill" onClick="return kill();" href="' . $_SERVER['PHP_SELF'] . '?action=kill&kill=' . $row['id'] . '">X</a>]';
}
$wd = $txt['days_short'][date('w', $date)];
$ts = date('H:i', $date);
$ds = $sbox_DatePrefix . $wd . $sbox_DateSeparator . $ts . $sbox_DateSuffix;
// highlight username, realname and make sound
if (!empty($context['user']['name']) && strpos($content, $context['user']['name']) !== false) {
if ($div === false) $alert = true;
$content = str_replace($context['user']['name'], '<b><u>' . $context['user']['name'] . '</u></b>', $content);
}
if (!empty($user_info['username']) && $user_info['username'] != $context['user']['name'] && strpos($content, $user_info['username']) !== false) {
if ($div === false) $alert = true;
$content = str_replace($user_info['username'], '<b><u>' . $user_info['username'] . '</u></b>', $content);
}
echo $ds . ' ' . $sbox_NickPrefix;
if ($name > 0) {
if ($modSettings['sbox_UserLinksVisible'] == '1') echo '<a href="' . $scripturl . '?action=profile;u=' . $name . '" target="_top" style="text-decoration: none;"><span class="' . $divclass . '">';
echo $sbox_NickInnerPrefix . ((!empty($row['realName']))?$row['realName']:$row['memberName']) . $sbox_NickInnerSuffix;
if ($modSettings['sbox_UserLinksVisible'] == '1') echo '</span></a>';
} else {
echo $sbox_NickInnerPrefix . $txt['sbox_Guest'] . '-' . base_convert($piph, 16, 36) . $sbox_NickInnerSuffix;
}
echo $sbox_NickSuffix . ' ' . $content . '</div>';
}
if (($modSettings['sbox_EnableSounds']) && ($alert === true) && ($div === true)) {
echo '<embed src="' . $boardurl . '/chat-inbound_GSM.wav" hidden="true" autostart="true" loop="false"></embed>' . "\n";
}
}
?>
</div>
</body>
</html>
στη γραμμή 180 θα βρεις το // handle special characters .......... το spacial Δεν υπάρχει πουθενά γιατί είναι ορθρογραφικό λάθος!
Nefeli
Σε ευχαριστώ που απάντησες όσο όμως και να έψαξα και όσες αλλαγές και να έκανα τα smiles εξακολουθούν να μη εμφανίζονται
Εγώ δοκίμασα να προσαρμόσω για μέρες το SMF Shoutbox του mbirth sbox_v1.16 . Απέτυχα παταγωδώς στα Ελληνικά αλλά τελικά έχει διάφορα προβλήματα όπως παράδειγμα πως δεν απεγκαθίσταται αυτόματα. Με αυτό έβλεπα όμως κανονικότατα τα smileys που τα εμφανίζει στη μπάρα πάνω και όχι δεξιά του κουτιού εισαγωγής.
Μήπως μιλάμε για διαφορετικό shoutbox? Μήπως δηλαδή μιλάς για το SMF Shoutbox του Deep sbox που αν έχω καταλάβει καλά, είναι η βάση στην οποία έχει στηριχθεί ο mbirth.
Μήπως γι αυτό έβλεπες διαφορετικό περιεχόμενο στο αρχείο sboxDB.php?
Στην εκδοχή του mbirth πάντως τα smileys είναι αυτά που χρησιμοποιεί και το smf, τα ρυθμισμένα να φαίνονται και στα θέματα μέσα στο φόρουμ. Αν μιλάμε λοιπόν για το ίδιο shoutbox, ψάξε να δεις αν φαίνονται τα smileys μέσα στο φόρουμ σου. Έλεγξε και τη διαδρομή .../smileys/default/ αν έχουν ανέβει όλα σωστά.
Δεν μπορώ να φανταστώ τίποτα άλλο.
Γεγονός είναι πως τελικά είναι προβληματικό παρά τον αρχικό μου ενθουσιασμό.
Καλημέρα!
Τελικά το βρήκα!!!!!!
Πρόσθεσα το :
//SMF Shoutbox
$txt['sbox_ModTitle'] = 'SMF Shoutbox';
$txt['sbox_Visible'] = 'Shoutbox is visible';
$txt['sbox_GuestAllowed'] = 'Guests are allowed to shout';
$txt['sbox_MaxLines'] = 'Maximum number of displayed lines';
$txt['sbox_Height'] = 'Shoutbox height';
$txt['sbox_SmiliesVisible'] = 'Smilie window is visible';
$txt['sbox_smilie01_text'] = 'blblbl!';
$txt['sbox_smilie02_text'] = 'grinning';
$txt['sbox_smilie03_text'] = 'laughing';
$txt['sbox_smilie04_text'] = 'kissing';
$txt['sbox_smilie05_text'] = 'smiling';
$txt['sbox_smilie06_text'] = 'that´s okay!';
$txt['sbox_smilie07_text'] = 'smoking';
$txt['sbox_smilie08_text'] = 'greeting';
$txt['sbox_smilie09_text'] = 'cheerio!';
$txt['sbox_smilie10_text'] = 'oops';
$txt['sbox_smilie11_text'] = 'praying';
$txt['sbox_smilie12_text'] = 'crying';
$txt['sbox_smilie13_text'] = 'angry';
$txt['sbox_smilie14_text'] = 'baaaaaad';
$txt['sbox_smilie15_text'] = 'headbanging';
$txt['sbox_smilie01_code'] = ':frech:';
$txt['sbox_smilie02_code'] = ';-)';
$txt['sbox_smilie03_code'] = ':-]';
$txt['sbox_smilie04_code'] = ':-s';
$txt['sbox_smilie05_code'] = ':-)';
$txt['sbox_smilie06_code'] = ':-!';
$txt['sbox_smilie07_code'] = ':smoking:';
$txt['sbox_smilie08_code'] = ':greeting:';
$txt['sbox_smilie09_code'] = ':cheerio:';
$txt['sbox_smilie10_code'] = ':-O';
$txt['sbox_smilie11_code'] = ':praying:';
$txt['sbox_smilie12_code'] = ':crying:';
$txt['sbox_smilie13_code'] = ':-(';
$txt['sbox_smilie14_code'] = ':bad:';
$txt['sbox_smilie15_code'] = ':bang:';
$txt['sbox_smilie01_file'] = 'sbox_funny.gif';
$txt['sbox_smilie02_file'] = 'sbox_grin.gif';
$txt['sbox_smilie03_file'] = 'sbox_laugh.gif';
$txt['sbox_smilie04_file'] = 'sbox_kiss.gif';
$txt['sbox_smilie05_file'] = 'sbox_smile.gif';
$txt['sbox_smilie06_file'] = 'sbox_yeah.gif';
$txt['sbox_smilie07_file'] = 'sbox_smoke.gif';
$txt['sbox_smilie08_file'] = 'sbox_hand.gif';
$txt['sbox_smilie09_file'] = 'sbox_cheerio.gif';
$txt['sbox_smilie10_file'] = 'sbox_oops.gif';
$txt['sbox_smilie11_file'] = 'sbox_church.gif';
$txt['sbox_smilie12_file'] = 'sbox_cry.gif';
$txt['sbox_smilie13_file'] = 'sbox_angry.gif';
$txt['sbox_smilie14_file'] = 'sbox_bad.gif';
$txt['sbox_smilie15_file'] = 'sbox_bang.gif';
$txt['sbox_Monday'] = 'Monday';
$txt['sbox_Tuesday'] = 'Tuesday';
$txt['sbox_Wednesday'] = 'Wednesday';
$txt['sbox_Thurday'] = 'Thurday';
$txt['sbox_Friday'] = 'Friday';
$txt['sbox_Saturday'] = 'Saturday';
$txt['sbox_Sunday'] = 'Sunday';
$txt['sbox_KillShout'] = 'Dou you want to kill this shout?';
$txt['sbox_TextSize1'] = '1. Font size';
$txt['sbox_TextColor1'] = '1. Font color';
$txt['sbox_TextSize2'] = '2. Font size';
$txt['sbox_TextColor2'] = '2. Font color';
$txt['sbox_RefreshTime'] = 'Refresh time';
$txt['sbox_BackgroundColor'] = 'Background color';
$txt['sbox_FontFamily1'] = '1. Font family';
$txt['sbox_FontFamily2'] = '2. Font family';
Στο Modifications.greek-utf8.php
Και όλα «δουλεύουν» κανονικά το μόνο πρόβλημα που παρουσιάζετε είναι με τα pm, δεν μου εμφανίζει το «παράθυρο» ότι έχω pm το ψάχνω αλλά δεν έχω βρει πως μπορώ να το διορθώσω χωρίς να «βγάλω» την αυτόματη ανανέωση από το shoutbox. (Ξέρει κάποιος?!?!?!??!)
Nefeli
ναι η έκδοση που εγκατέστησα είναι του Deep προσπάθησα να εγκαταστήσω την έκδοση του mbirth αλλά μου δημιουργούσε σφάλματα στη βάση και κάποια άτομα δεν μπορούσαν να κάνουν login.