1

Тема: Punbb with ajax

Как вам идея чтобы перевести форум по кускам на санки ajax? В принципе можно было бы сразу весь перетащить, но наверное так будет меньше прироста в скорости и в трафике.

Вероятно придется переделать большую часть форума, то есть разбить страницы на несколько основных частей. Это в большей части для того, чтобы обеспечить работу браузеров без js...

Сайт Slavik

Поделиться

2

Re: Punbb with ajax

а конкретно в каком месте? ajax-ом перерисовывают часть страницы, когда какую-нибудь доп. инфу добывают уже после загрузки страницы. ЧТО именно собираешся добывать?

Сайт artoodetoo

Поделиться

3

Re: Punbb with ajax

Самое первое, что надо сделать - это быстрый ответ. Это именно то, что большинству не хватает.

Сайт Zevs

Поделиться

4

Re: Punbb with ajax

щас меня устраивает быстрый ответ, а есл иу меня канал маленький, сколько же я буду ждать подгрузки формы быстрого ответа?

Сайт niikto

Поделиться

5

Re: Punbb with ajax

А что не так с быстрым ответом?

Сайт hcs

Поделиться

6

Re: Punbb with ajax

Ну переделать наверное стоит профиль, форумы и темы. В профиле чтобы выбор по категориям без обновления, а а в остальным страницы, да и перехоод к следующейтеме можно было бы...

Сайт Slavik

Поделиться

7

Re: Punbb with ajax

Slavik
Я приветствую твою задумку. Профиль - хорошо. Сам я сейчас обдумываю ЛС, во-первых хочу сделать его в виде "цепочек" как гуглмайл, ну и сразу же применять аякс.
Вот и хочу узнать, как твои успехи?

Сайт hcs

Поделиться

8

Re: Punbb with ajax

Чтобы быстрые сообщения не глючили, надо чтоб вместе с твоим добавленным сообщениям учитывалось сколько сообщений ты мог "прощелкать", после того как открыл страницу и допустим минут 30 подождал прежде чем свое написать. Во многих Аякс форумах этот глюк наличествует. Ибо тут необходима сессионная система, где бы для каждой открытой страницы хранилась ее конфигурация, чтобы корректно ее модифицировать.

Поделиться

9

Re: Punbb with ajax

hcs
да как-то не особо. Мой форум загнулся, хотелось бы дождаться версии 1.3 чтобы сделав сейчас не переносить все это дело на 1.3
Dexus
честно говоря ничего не понял :-)

Сайт Slavik

Поделиться

10

Re: Punbb with ajax

Slavik
Пока ты пишешь сообщение тут, куча народу может свои уже послать. И ты их не увидишь если аякс не будет учитывать их с СЕРВЕРНОЙ стороны. А увидишь только свое. И пока не тыкнешь в F5 - не увидишь что между сообщением на которое ты ответил и твоим еще с пол-дюжины других ошиваются.

Поделиться

11

Re: Punbb with ajax

Ну можно подгружать все тело страницы, оставляя только футер и хедер

Сайт Slavik

Поделиться

12

Re: Punbb with ajax

Slavik
Тогда толку от аякса немного. Смысл-то в том, что обновляется только то, что надо. А не все сразу. Чтоб все обновить - можно F5 тыкнуть.

Поделиться

13

Re: Punbb with ajax

Ну я же говорю не все. Притом можно эту фичу обойти, передав заодно с сообщением дату последнего открытого поста

Сайт Slavik

Поделиться

14

Re: Punbb with ajax

Самое первое, что надо сделать - это быстрый ответ. Это именно то, что большинству не хватает.

А что не так с быстрым ответом?

наверно имелось ввиду "быстрое редактирование"

Сайт Юко

Поделиться

15

Re: Punbb with ajax

быстрое редактирование? как два байта переслать. уже почти доделал;-)

Поделиться

16

Re: Punbb with ajax

Ragimovich
Так выкладывай дарагой!

Сайт niikto

Поделиться

17

Re: Punbb with ajax

[--Модуль быстрого редактирования--]
[--Версия 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;
}

Поделиться

18

Re: Punbb with ajax

сделайте плз нормальное руководство)
уже третий час пытаюсь сделать, но ничего не выходит
в принципе не на вашей сборке, возможно из-за этого, а может руки кривые

Мой блог, на котором делаю форум :)

Сайт VoiD

Поделиться

19

Re: Punbb with ajax

я поставил вроде это твик, но там окно редактирования появлялось где-то ниже: не в посте.
Далее там вроде две кнопки, но они очччень маленькие и их не видно.Так и должно быть?
Делал по инструкции
Может быть вы выложите ваш вьювтопик пхп?

Поделиться

20

Re: Punbb with ajax

Так как для какой версии мод писать? Для обычной или сборки панбб.ру? Они разные, т.к. в пан.ру уже есть аякс, а в обычном нет:-( Короче, кому нужен, ищите по асе или жаббре 7931653 и boristheblade@jabber.kiev.ua(это надежнее, т.к. транспорты аси отмирают, гады). Спишемся и решим проблему, а за одно и мод нарисуем;-)

Поделиться

21

Re: Punbb with ajax

Короче, выслал измененные и вроде рабочие исходники spycam. Он обещался отписать. Ждем результатов.

Поделиться

22

Re: Punbb with ajax

ждём, интересно попробывать в деле smile

Поделиться

23

Re: Punbb with ajax

По сути дела можете глянуть исходники:
www.satspace.org/QuickEdit10Beta.rar

ЭТО ДЛЯ СБОРКИ ОТ PUNBB.RU!!!

Поделиться

24

Re: Punbb with ajax

вообщем ошибку выдает при нажатии на быстрое редактирование
::thumb11:: (это я взял из темы про цитирование - там такая же ошибка выводится, но только в ие, а тут во всех браузерах)

делал как с заменой вьювтопика из архива, так и внедрением только изменений в свой файл.

ПХП 4.4.4
База в утф, форум в вин 1251

Поделиться

25

Re: Punbb with ajax

Ничего не могу посоветовать. Я работаю только в УТФ:-( И таких ошибок ниразу не видел... Мож кто из гуру подскажет?

Поделиться