[--Модуль быстрого редактирования--]
[--Версия 0.1--]
[--Copyright (c)2007--]
[--ВНИМАНИЕ! Это не руководство для начинающих юзверей! ОНО НЕ ПРОВЕРЕНО! Модифицируйте, только, если понимаете, что делаете!--]
[--Модуль использует библиотеку XAJAX--]
[--Разрабатывалось на модифицированной сборке от punbb.ru. Отсюда введение всех функций в модуль цитирования--]
[--Короче, юзеры не юзайте это Г. Дождитесь нормального руководства!;-)--]
[--quote.common.php--]
[--Добавляем в конец файла--]
$xajax->registerFunction("postEditView"); // регистрируем функцию, отвечающую за вывод поля редактирования
$xajax->registerFunction("postEditSave"); // регистрируем функцию, отвечающую за сохранение изменений
$xajax->registerFunction("postEditCancel"); // регистрируем функцию, отвечающую за возвращение поста, если изменений не сделано
[--quote.server.php--]
[--Ищем--]
$objResponse->addAssign("req_message", "style.height", "300px");
return $objResponse->getXML();
}
[--Вставляем после--]
function postEditView($pid)
{
global $db, $pun_user;
require PUN_ROOT.'lang/'.$pun_user['language'].'/topic.php';
$objResponse = new xajaxResponse();
$result = $db->query('SELECT id,message FROM '.$db->prefix.'posts WHERE id='.$pid) or error('Unable to fetch post info', __FILE__, __LINE__, $db->error());
$cur_post = $db->fetch_assoc($result);
$quotemsg = '<div class="postedt" id="postedt"><textarea rows="7" cols="75" name="ptext" id="ptext">'.$cur_post["message"].'</textarea><br><button onclick="xajax_postEditSave('.$cur_post['id'].',';
$quotemsg = $quotemsg."document.getElementById('ptext').value)\"";
$quotemsg = $quotemsg.'>'.$lang_topic['QEdit Save'].'</button>';
$quotemsg = $quotemsg.'<button onclick="xajax_postEditCancel('.$cur_post['id'].')">'.$lang_topic['QEdit Cancel'].'</button></div>';
$objResponse->addClear("p$pid","innerHTML");
$objResponse->addAppend("p$pid", "innerHTML", $quotemsg);
return $objResponse->getXML();
}
function postEditSave($pid,$ptext)
{
global $db, $pun_user;
$objResponse = new xajaxResponse();
$db->query("UPDATE posts SET message='$ptext' WHERE id='$pid'") or error('Unable update post info', __FILE__, __LINE__, $db->error());
$result = $db->query('SELECT message,hide_smilies FROM '.$db->prefix.'posts WHERE id='.$pid) or error('Unable to fetch post info', __FILE__, __LINE__, $db->error());
$cur_post = $db->fetch_assoc($result);
require PUN_ROOT.'include/parser.php';
$quotemsg = parse_message($cur_post['message'],$cur_post['hide_smilies']);
//$quotemsg = $cur_post['message'];
$objResponse->addClear("p$pid","innerHTML");
$objResponse->addAppend("p$pid", "innerHTML", $quotemsg);
return $objResponse->getXML();
}
function postEditCancel($pid)
{
global $db, $pun_user;
$objResponse = new xajaxResponse();
$result = $db->query('SELECT message,hide_smilies FROM '.$db->prefix.'posts WHERE id='.$pid) or error('Unable to fetch post info', __FILE__, __LINE__, $db->error());
$cur_post = $db->fetch_assoc($result);
require PUN_ROOT.'include/parser.php';
$quotemsg = parse_message($cur_post['message'],$cur_post['hide_smilies']);
//$quotemsg = $cur_post['message'];
$objResponse->addClear("p$pid","innerHTML");
$objResponse->addAppend("p$pid", "innerHTML", $quotemsg);
return $objResponse->getXML();
}
[--viewtopic.php--]
[--Ищем--]
$post_actions[] = '<li class="postedit"><a href="edit.php?id='.$cur_post['id'].'">'.$lang_topic['Edit'].'</a>';
[--После вставляем--]
$post_actions[] = '<li class="postedit"><a onclick="xajax_postEditView('.$cur_post['id'].')" href="#p'.$cur_post['id'].'">'.$lang_topic['QEdit'].'</a>';
[--Ищем--]
$post_actions[] = ... (просто не могу восстановить что было в оригинале)
[--Меняем на--]
$post_actions[] = '<li class="postedit"><a onclick="xajax_postEditView('.$cur_post['id'].')" href="#p'.$cur_post['id'].'">'.$lang_topic['QEdit'].'</a>';
[--Ищем--]
<h3><?php if (($post_count + $start_from) > 1) echo ' Re: '; ?><?php echo pun_htmlspecialchars($cur_topic['subject']) ?></h3>
[--Изменяем то что после с целью присвоения уникального айди--]
<div class="postmsg" id="p<?php echo $cur_post['id']; ?>" name="p<?php echo $cur_post['id']; ?>">
[--base.css--]
[--Добавляем--]
DIV.postedt {
WIDTH: 100%;
POSITION: relative;
}
DIV.postedt textarea {
border-style: solid;
border-width: 1px;
width: 100%;
}
DIV.postedt button {
border-style: solid;
border-width: 1px;
float: right;
margin-top: 4px;
margin-left: 4px;
}