Вопросы по работе форума
#701
Отправлено 10 November 2010 - 11:09
#702
Отправлено 10 November 2010 - 22:01
Сообщение изменено: crow66 (10 November 2010 - 22:02)
#703
Отправлено 10 November 2010 - 22:08
Читай мой пост выше. Старый сайт я снял, он сохранен только в виде сейва. Убедился я, что там явно была мина замедленного действия заложена. А накручено так было, что я нифига не понимал. Потому и снял его, и поставил МКпортал, гораздо более понятный. И сейчас вожусь с его настройкой.я наверное что-то пропустил ,а что у нас с главной ? никаких обсуждений не нашел ,вот и спрашиваю)
#704
Отправлено 11 November 2010 - 05:37
#705
Отправлено 11 November 2010 - 09:28
Главная сложность - завязать его с IPB 3. С кодировками вопрос решил - все отображает корректно. Но вот блоки вывода последних тем (что с аяксом что без) как-то криво коннектятся.Наконец-то МКпортал!
#706
Отправлено 11 November 2010 - 10:41
#707
Отправлено 11 November 2010 - 11:14
Само собой.надо будет еще галерею перенести и статьи.
Нет, MKP полностью интегрируется с базой форума.Там же по моему права раздельные от форума
Доступ дам, тем более сейв у тебя есть.если дадите доступ - могу заняться.
#708
Отправлено 11 November 2010 - 12:09
#709
Отправлено 11 November 2010 - 13:40
Сообщение изменено: RapteR (11 November 2010 - 13:42)
#710
Отправлено 11 November 2010 - 15:02
На портале висят 2 варианта "Последних постов".
Я их уже в UTF-8 конвертнул, и явные баги убрал. (Правда аяксовый я пока напоследок оставил - если все получится, он от первого только выводом отличается) Но не пойму, по какому принципу ОНО распределяет темы... Но явно не по последним темам.
Вот полностью блок.
Я так понимаю, нас интересует вот этот кусок
$DB->query("SELECT id, password, permission_array FROM ".$prefix."forums"); while( $f = $DB->fetch_row() ) { $perms = unserialize(stripslashes($f['permission_array'])); if ($mklib_board->check_permissions($perms['read_perms']) != TRUE or ($f['password'] != "" ) ) { $bad[] = $f['id']; } else { $good[] = $f['id']; } } if ( count($bad) > 0 ) { $qe = " AND forum_id NOT IN(".implode(',', $bad ).") "; } $DB->query("SELECT t.last_post, t.tid, t.title, t.views, t.posts, t.start_date, t.starter_name, t.last_poster_name, t.last_poster_id, t.forum_id FROM ".$prefix."topics t LEFT JOIN ".$prefix."forums f ON (t.forum_id = f.id) WHERE state!='closed' AND approved=1 AND (moved_to IS NULL or moved_to='') $qe GROUP BY t.title ORDER BY t.last_post DESC LIMIT 0,$limit"); while ( $post = $DB->fetch_row() ) { $post['title'] = strip_tags($post['title']); $post['title'] = str_replace( "!" , "!" , $post['title'] ); $post['title'] = str_replace( """, "\"", $post['title'] ); if (strlen($post['title']) > $cutoff) { $post['title'] = substr( $post['title'],0,($cutoff - 3) ) . "..."; $post['title'] = preg_replace( '/&(#(\d+;?)?)?(\.\.\.)?$/', '...',$post['title'] ); } $title = $post['title']; $tid = $post['tid']; $views = $post['views']; $posts = $post['posts']; $starter = $post['starter_name']; $lastname = $post['last_poster_name']; $lastid = $post['last_poster_id']; $forum_id = $post['forum_id']; $startdate = $this->create_date($post['start_date'], $startformat); $lastdate = $this->create_date($post['last_post'], $lastformat); $content .= "Вот чтот тут может быть не так????
#711
Отправлено 11 November 2010 - 16:54
$qe = " AND forum_id NOT IN(".implode(',', $bad ).") ";...$DB->query("SELECT t.last_post, t.tid, t.title, t.views, t.posts, t.start_date, t.starter_name, t.last_poster_name, t.last_poster_id, t.forum_id FROM ".$prefix."topics t LEFT JOIN ".$prefix."forums f ON (t.forum_id = f.id) WHERE state!='closed' AND approved=1 AND (moved_to IS NULL or moved_to='') $qe GROUP BY t.title ORDER BY t.last_post DESC LIMIT 0,$limit");ВЫБРАТЬ последний_пост(дата?), тид(хз), титл(заголовок), вьювс(просмотров) ... ля-ля-ля .. ИЗ "префикс"топикс ПРИКЛЕИТЬ СЛЕВА "префикс"форумы ГДЕ статус НЕ РАВНО "закрыт" И одобрение = 1 И (перемещен_в РАВЕН НУЛЮ ИЛИ ПУСТОМУ МЕСТУ) И форум_ид НЕ В (тут список ид форумов, которые скрыты для данного пользователя) ГРУППИРОВАТЬ ПО заголовку СОРТИРОВАТЬ ПО последнему посту ПО УБЫВАНИЮ ОТКУСИТЬ РЕЗУЛЬТАТ с 0 по 10 строку. В общем все должно работать. Я бы где
while ( $post = $DB->fetch_row() ) {дописал дебажный вывод вроде
while ( $post = $DB->fetch_row() ) {print_r($post);И он раскатает по факту все 10 строк, которые он утянул из базы. потом собственно выяснять: хреново ли он берет из базы (не верный запрос или инфа в базе) или же это ошибки последующей обработки.
#712
Отправлено 11 November 2010 - 16:59
#713
Отправлено 11 November 2010 - 20:02
$DB->query("SELECT t.last_post, t.tid, t.title, t.views, t.posts, t.start_date, t.starter_name, t.last_poster_name, t.last_poster_id, t.forum_idЗаменить на
$DB->query("SELECT t.last_post, t.tid, t.title, SUBSTR(t.title, 1, ".$cutoff.") AS cut_title, t.views, t.posts, t.start_date, t.starter_name, t.last_poster_name, t.last_poster_id, t.forum_idдалее
if (strlen($post['title']) > $cutoff) { $post['title'] = substr( $post['title'],0,($cutoff - 3) ) . "...";превращаем в
if (strlen($post['title']) > $cutoff*2) { $post['title'] = $post['cut_title'] . "...";дальше косяки
$query3 = $DB->query("SELECT member_id, name, joined, posts FROM IPBforummembers ORDER BY posts DESC LIMIT 5");меняем на
$query3 = $DB->query("SELECT member_id, name, SUBSTR(name, 1, ".$cutoff.") AS cut_name, joined, posts FROM ".$prefix."members ORDER BY posts DESC LIMIT 5");и
if (strlen($post['name']) > $cutoff) { $post['name'] = substr( $post['name'],0,($cutoff - 3) ) . "...";на
if (strlen($post['name']) > $cutoff*2) { $post['name'] = $post['сге_name'] . "...";Теперь cutoff у нас действительно должен обрабатываться длину символов, а не байт. Чисто теоретически теперь все должно откусываться как надо и без артефактов.
#714
Отправлено 11 November 2010 - 20:37
Отлично работает.
Попробую аналогично аяксовый вариант скорректировать
Работает. Теперь сам аякс буду пытаться добить.Попробую аналогично аяксовый вариант скорректировать
#715
Отправлено 11 November 2010 - 21:22
#716
Отправлено 12 November 2010 - 04:32
<\/a> <\/a> <\/a>Включил банеры - там тоже эти артефакты вылезли. Да и вообще, там внизу синяя полоска есть, как я понимаю банеры должны жить НА ней, а не НАД ней...
#717
Отправлено 12 November 2010 - 10:09
Знаю. Я пока там не ковырял - просто счетчики поставил, чтобы крутились. Разберусь потихонькуУ меня в фури-фоксе адблок стоит - банеры выносит, а вот внизу странички портала на месте этих самых счетчиков показывается <\/a> <\/a> <\/a>
#718
Отправлено 12 November 2010 - 10:48
та же шляпа, только это во всех браузерахУ меня в фури-фоксе адблок стоит - банеры выносит, а вот внизу странички портала на месте этих самых счетчиков показывается
<\/a> <\/a> <\/a>Включил банеры - там тоже эти артефакты вылезли. Да и вообще, там внизу синяя полоска есть, как я понимаю банеры должны жить НА ней, а не НАД ней...
#719
Отправлено 12 November 2010 - 11:14
Я еще не делал. Сделаю - увидите. Просто я на работе, а тут еще, нажаль, еще и работать приходитсята же шляпа, только это во всех браузерах
#720
Отправлено 12 November 2010 - 11:50
#721
Отправлено 12 November 2010 - 12:52
#722
Отправлено 12 November 2010 - 13:03
После поражения Динамо (Киев) от Аякса - мы тоже против негоМне кажется понты Аякса не нужны
#723
Отправлено 12 November 2010 - 18:33
#724
Отправлено 13 November 2010 - 05:21
<% MAINLINK %>В остальных скинах на сколько я помню я его не нашел.
#725
Отправлено 13 November 2010 - 15:19
Совсем забыл про это.... Выкосилеще было бы классно из темплета IP.Board выкосить <% MAINLINK %>
1 посетителей читают эту тему
0 пользователей, 1 гостей, 0 скрытых