PDA

View Full Version : проблемма с предпросмотром новостей


inteligent
15.04.2007, 22:10
У меня проблемма с предпросмотром новостей.

Вставляю картинку
<IMG src="http://mysite/picture.jpg">
Жму"Просмотр"
Код поменялся на
<IMG src=\"http://mysite/picture.jpg\">
Если добавляю картинку без предпросмотра, то все нормально, картинка показывается.
Если же нажимаю Просмотр еще раз, то добавляются еще слеши
<IMG src=\\\"http://mysite/picture.jpg\\\">
На сколько я понял проблемма с кавычками, до и после адреса на картинку.
ОК
Убираю кавычки
<IMG src=http://mysite/picture.jpg>
Жму"Просмотр"
Все показывается нормально если только visual editor выключен...
Если включен, то
<img src="../%22http://mysite/picture.jpg/%22" border="0" />

ПОМОГИТЕ !!! :(

Nuke-Shkurki_2

Alexander-V-Sh
16.04.2007, 00:41
ошибка в использовании фильтра.
При записи в БД, ставится слеш \, при выводе наоборот, убирается.
А тут значит ставится при предпросмотре.

Найди в функции препросмотра

$text = filter($text, "", 1);
и замени на
$text = filter($text, "");

Т.е везде нужно убрать единички.

inteligent
16.04.2007, 12:25
Помогите разобраться...
Вот функция предпросмотра.


function PreviewStory($name, $address, $subject, $story, $storyext, $topic, $alanguage) {

global $user, $cookie, $bgcolor1, $bgcolor2, $anonymous, $prefix, $multilingual, $AllowableHTML, $db, $module_name, $nuke_editor;

include ('header.php');

$f_story = filter($story);

$f_storyext = filter($storyext);

$subject = filter($subject, nohtml, 0, preview);

$story2 = "$f_story<br><br>$f_storyext";

OpenTable();

echo "<center><font class=\"title\"><b>"._NEWSUBPREVIEW."</b></font>";

CloseTable();

echo "<br>";

OpenTable();

echo "<center><i>"._STORYLOOK."</i></center><br><br>";

echo "<table width=\"70%\" bgcolor=\"$bgcolor2\" cellpadding=\"0\" cellspacing=\"1\" border=\"0\"align=\"center\"><tr><td>"

."<table width=\"100%\" bgcolor=\"$bgcolor1\" cellpadding=\"8\" cellspacing=\"1\" border=\"0\"><tr><td>";

if ($topic=="") {

$topicimage="AllTopics.gif";

$warning = "<center><blink><b>"._SELECTTOPIC."</b></blink></center>";

} else {

$warning = "";

$row = $db->sql_fetchrow($db->sql_query("SELECT topictext, topicimage FROM ".$prefix."_topics WHERE topicid='$topic'"));

$topicimage = filter($row['topicimage'], nohtml);

}

echo "<img src=\"images/topics/$topicimage\" border=\"0\" align=\"right\" alt=\"$row[topictext]\" title=\"$row[topictext]\">";

themepreview($subject, $story2);

echo "$warning"

."</td></tr></table></td></tr></table>"

."<br><br><center><font class=\"tiny\">"._CHECKSTORY."</font></center>";

CloseTable();

echo "<br>";

OpenTable();

echo "<p><form action=\"modules.php?name=$module_name\" method=\"post\">"

."<b>"._YOURNAME.":</b> ";

if (is_user($user)) {

cookiedecode($user);

echo "<a href=\"modules.php?name=Your_Account\">$cookie[1]</a> <font class=\"content\">[ <a href=\"modules.php?name=Your_Account&amp;op=logout\">"._LOGOUT."</a> ]</font>";

} else {

echo "$anonymous";

}

echo "<br><br><b>"._SUBTITLE.":</b><br>"

."<input type=\"text\" name=\"subject\" size=\"50\" maxlength=\"80\" value=\"$subject\">"

."<br><br><b>"._TOPIC.": </b><select name=\"topic\">";

$result2 = $db->sql_query("SELECT topicid, topictext FROM ".$prefix."_topics ORDER BY topictext");

echo "<OPTION VALUE=\"\">"._SELECTTOPIC."</option>\n";

while ($row2 = $db->sql_fetchrow($result2)) {

$topicid = intval($row2['topicid']);

$topics = filter($row2['topictext'], nohtml);

if ($topicid == $topic) {

$sel = "selected ";

}

echo "<option $sel value=\"$topicid\">$topics</option>\n";

$sel = "";

}

echo "</select>";

if ($multilingual == 1) {

echo "<br><br><b>"._LANGUAGE.": </b>"

."<select name=\"alanguage\">";

$handle=opendir('language');

while ($file = readdir($handle)) {

if (preg_match("/^lang\-(.+)\.php/", $file, $matches)) {

$langFound = $matches[1];

$languageslist .= "$langFound ";

}

}

closedir($handle);

$languageslist = explode(" ", $languageslist);

sort($languageslist);

for ($i=0; $i < sizeof($languageslist); $i++) {

if($languageslist[$i]!="") {

echo "<option value=\"$languageslist[$i]\" ";

if($languageslist[$i]==$alanguage) echo "selected";

echo ">".ucfirst($languageslist[$i])."</option>\n";

}

}

echo "</select>";

}

echo "<br><br><b>"._STORYTEXT.":</b><br>"

."<textarea cols=\"70\" rows=\"15\" name=\"story\">$f_story</textarea><br>"

."<br><b>"._EXTENDEDTEXT.":</b><br>"

."<textarea cols=\"70\" rows=\"15\" name=\"storyext\">$f_storyext</textarea><br>"

."<font class=\"content\">("._AREYOUSURE.")</font><br><br>";

if ($nuke_editor == 0) {

echo "<font class=\"content\">"._ALLOWEDHTML."<br>";

while (list($key,) = each($AllowableHTML)) echo " &lt;".$key."&gt;";

echo "</font><br><br>";

} else {

echo ""._HTMLNOTALLOWED."</font><br><br>";

}

echo "<input type=\"submit\" name=\"op\" value=\""._PREVIEW."\">&nbsp;&nbsp;"

."<input type=\"submit\" name=\"op\" value=\""._OK."\"></form>";

CloseTable();

include ('footer.php');

}



???

ошибка в использовании фильтра.
При записи в БД, ставится слеш \, при выводе наоборот, убирается.
А тут значит ставится при предпросмотре.

Найди в функции препросмотра

$text = filter($text, "", 1);
и замени на
$text = filter($text, "");

Т.е везде нужно убрать единички.


Похожие строчки нашел в функции submitStory

$subject = filter($subject, "nohtml", 1);

$story = filter($story, "", 1);

$storyext = filter($storyext, "", 1);

Alexander-V-Sh
16.04.2007, 14:20
Версия какая у нюки?
У меня на 8 нормально предосмотр работает. И судя по вашему коду тоже должен.

Другие предосмотры еще посмотрите. previewAdminStory например.

inteligent
16.04.2007, 14:23
Версия 7.9 Skurki_2

isic
16.04.2007, 15:25
вы оптимизацию ядра делали?

inteligent
16.04.2007, 15:27
нет...