Быстрый лёгкий надёжный форумный движок
Вы не вошли.
Как вам идея чтобы перевести форум по кускам на санки ajax? В принципе можно было бы сразу весь перетащить, но наверное так будет меньше прироста в скорости и в трафике.
Вероятно придется переделать большую часть форума, то есть разбить страницы на несколько основных частей. Это в большей части для того, чтобы обеспечить работу браузеров без js...
а конкретно в каком месте? ajax-ом перерисовывают часть страницы, когда какую-нибудь доп. инфу добывают уже после загрузки страницы. ЧТО именно собираешся добывать?
Самое первое, что надо сделать - это быстрый ответ. Это именно то, что большинству не хватает.
щас меня устраивает быстрый ответ, а есл иу меня канал маленький, сколько же я буду ждать подгрузки формы быстрого ответа?
А что не так с быстрым ответом?
Ну переделать наверное стоит профиль, форумы и темы. В профиле чтобы выбор по категориям без обновления, а а в остальным страницы, да и перехоод к следующейтеме можно было бы...
Slavik
Я приветствую твою задумку. Профиль - хорошо. Сам я сейчас обдумываю ЛС, во-первых хочу сделать его в виде "цепочек" как гуглмайл, ну и сразу же применять аякс.
Вот и хочу узнать, как твои успехи?
Чтобы быстрые сообщения не глючили, надо чтоб вместе с твоим добавленным сообщениям учитывалось сколько сообщений ты мог "прощелкать", после того как открыл страницу и допустим минут 30 подождал прежде чем свое написать. Во многих Аякс форумах этот глюк наличествует. Ибо тут необходима сессионная система, где бы для каждой открытой страницы хранилась ее конфигурация, чтобы корректно ее модифицировать.
hcs
да как-то не особо. Мой форум загнулся, хотелось бы дождаться версии 1.3 чтобы сделав сейчас не переносить все это дело на 1.3
Dexus
честно говоря ничего не понял :-)
Slavik
Пока ты пишешь сообщение тут, куча народу может свои уже послать. И ты их не увидишь если аякс не будет учитывать их с СЕРВЕРНОЙ стороны. А увидишь только свое. И пока не тыкнешь в F5 - не увидишь что между сообщением на которое ты ответил и твоим еще с пол-дюжины других ошиваются.
Ну можно подгружать все тело страницы, оставляя только футер и хедер
Slavik
Тогда толку от аякса немного. Смысл-то в том, что обновляется только то, что надо. А не все сразу. Чтоб все обновить - можно F5 тыкнуть.
Ну я же говорю не все. Притом можно эту фичу обойти, передав заодно с сообщением дату последнего открытого поста
Самое первое, что надо сделать - это быстрый ответ. Это именно то, что большинству не хватает.
А что не так с быстрым ответом?
наверно имелось ввиду "быстрое редактирование"
быстрое редактирование? как два байта переслать. уже почти доделал;-)
Ragimovich
Так выкладывай дарагой!
[--Модуль быстрого редактирования--]
[--Версия 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;
}
сделайте плз нормальное руководство)
уже третий час пытаюсь сделать, но ничего не выходит
в принципе не на вашей сборке, возможно из-за этого, а может руки кривые
я поставил вроде это твик, но там окно редактирования появлялось где-то ниже: не в посте.
Далее там вроде две кнопки, но они очччень маленькие и их не видно.Так и должно быть?
Делал по инструкции
Может быть вы выложите ваш вьювтопик пхп?
Так как для какой версии мод писать? Для обычной или сборки панбб.ру? Они разные, т.к. в пан.ру уже есть аякс, а в обычном нет:-( Короче, кому нужен, ищите по асе или жаббре 7931653 и [email protected](это надежнее, т.к. транспорты аси отмирают, гады). Спишемся и решим проблему, а за одно и мод нарисуем;-)
Короче, выслал измененные и вроде рабочие исходники spycam. Он обещался отписать. Ждем результатов.
ждём, интересно попробывать в деле
По сути дела можете глянуть исходники:
http://www.satspace.org/QuickEdit10Beta.rar
ЭТО ДЛЯ СБОРКИ ОТ PUNBB.RU!!!
вообщем ошибку выдает при нажатии на быстрое редактирование
::thumb11:: (это я взял из темы про цитирование - там такая же ошибка выводится, но только в ие, а тут во всех браузерах)
делал как с заменой вьювтопика из архива, так и внедрением только изменений в свой файл.
ПХП 4.4.4
База в утф, форум в вин 1251
Ничего не могу посоветовать. Я работаю только в УТФ:-( И таких ошибок ниразу не видел... Мож кто из гуру подскажет?