Перейти к контенту

maroleg

Пользователи
  • Число публикаций

    19
  • Регистрация

  • Последнее посещение

Недавние посетители профиля

5 228 просмотров профиля

Достижения maroleg

  1. maroleg

    [2.1.x]Кто был сегодня для 2.1.х

    А чем-то более умозаключительным это подкрепить можно? Я знаю, что в моде стоит last_activity>".time()-172800 и знаю, что эти цифры означают, но эта, как вы изволили выразиться "ересь" идёт от последних цитирований кода этого мода и я просто её и скопировал. Хотя я для интереса сейчас могу у себя поставить эти цифры и проверить, даст ли это какую либо разницу в результатах. Ну да ладно. Тут просили сделать сохранение состояния показа мемберов в куках, вот это мы сейчас и сделаем ну и заодно чуть подправим интерфейс со стандартным форумным. Для начала чуть изменим CSS стилей, добавим туда ещё один класс. Это изменение необходимо проделать в каждом скине, существующем на форуме. Итак идем АДМИНЦЕНТР>ВНЕШНИЙ ВИД> менеджер стилей> каждый скин> Изменить CSS стили (Расширенный режим) > Находим там .thin{ border: 1px solid #FFF; border-left: 0; border-right: 0; line-height: 150%; margin: 2px 0 2px 0; padding: 6px 0 6px 0; } Ниже добавляем: .thins { border-bottom: 1px solid #FFF; border-left: 0; border-right: 0; margin: 2px 0 2px 0; } И нажимаем кнопку "Сохранить" И так с каждым скином. Далее меняем содержание фрагмента шаблона online_today. У кого он уже создан, то меняем, а у кого ещё не создан, то создаём уже с нужным содержанием. это изменение так же надо проводить в каждом из существующих скинов на форуме. Идём в АДМИНЦЕНТР>ВНЕШНИЙ ВИД> менеджер стилей> каждый скин> Изменить HTML фрагменты> skin_boards> Открываем шаблон online_today у кого он уже создан или добавляем новый с таким названием, у кого его нет. Входящие переменные: $data остаётся без изменений, а в содержании шаблона вместо строчек: <tr> <td class='formsubtitle' colspan='2'>{ipb.lang['ot_title']}</td> </tr> <tr> <td class='row1' width='1%'><{F_ACTIVE}></td> <td class='row2'> <span id='ot_list'>{$data['memstats']}<br />{$data['members']}<br /><br /><a href="java script:ShowHide('ot_list', 'ot_nolist');"><b>Скрыть список</b></a></span> <span id='ot_nolist' style='display: none;'>{$data['memstats']}<br /><a href="java script:ShowHide('ot_list', 'ot_nolist');"><b>Показать список</b></a></span> </td> </tr> пишем такие: <tr> <td class='formsubtitle' colspan='2'>{ipb.lang['ot_title']}</td> </tr> <tr> <td class='row1' width='1%'><{F_ACTIVE}></td> <td class='row2'> <span style="display:{$data['div_fo']}" id="fo_ot">{$data['memstats']}<div class="thin">{$data['members']}</div><a href="java script:togglecategory('ot', 1);">{ipb.lang['ot_hide']}</a></span> <span style="display:{$data['div_fc']}" id="fc_ot"><div class="thins">{$data['memstats']}</div><a href="java script:togglecategory('ot', 0);">{ipb.lang['ot_show']}</a></span> </td> </tr> И нажимаем кнопку "Сохранить шаблон". И так с каждым скином. Далее подредактируем файл cache/lang_cache/ru/lang_boards.php Тот кто уже ставил этот мод, то находит там строчки: 'ot_title' => "Список пользователей посетивших форум сегодня", 'ot_data' => "<b>%s</b> пользователей посетило форум сегодня. Дата:<b>%s</b>", и дописывает ниже такие строчки: 'ot_hide' => "<b>Скрыть список</b>", 'ot_show' => "<b>Показать список</b>", Тот кто ещё не ставил этот мод, то просто вписывает в этот файл в любое место такие строчки: 'ot_title' => "Список пользователей посетивших форум сегодня", 'ot_data' => "<b>%s</b> пользователей посетило форум сегодня. Дата:<b>%s</b>", 'ot_hide' => "<b>Скрыть список</b>", 'ot_show' => "<b>Показать список</b>", Далее правка кода мода для файла sources/lib/func_boardstats.php Находим в коде строчку: $data = array('memnum' => 0, 'members' => ''); И меняем её на такую: $data = array('memnum' => 0, 'members' => '', 'div_fo' => '', 'div_fc' => ''); Ниже дописываем: $collapsed_ids = ','.$this->ipsclass->my_getcookie('collapseprefs').','; $data['div_fo'] = 'show'; $data['div_fc'] = 'none'; if ( strstr( $collapsed_ids, ',ot,' ) ) { $data['div_fo'] = 'none'; $data['div_fc'] = 'show'; } Ну вот вообщем то и всё. Ritsuka, конструкция красивая, но как мне кажется немного тяжеловатая. У нас всё таки в основном стоят не тяжёлые коммерческие сервера и база данных не oracle, а mysql и для хорошо посещяемых форумов это может иметь значение.
  2. maroleg

    [2.1.x]Кто был сегодня для 2.1.х

    Находим строчки: $this->ipsclass->time_options['ONLINE_SHOW'] = "g:i A"; $data = array('memnum' => 0, 'members' => ''); $today = $this->ipsclass->get_time(time(), 'j-n-Y'); $this->ipsclass->DB->simple_construct(array('select' => '*', 'from' => 'members', 'where' => "id>0 AND last_activity>".time()-86399, 'order' => 'members_display_name ASC')); $this->ipsclass->DB->simple_exec(); while ($row = $this->ipsclass->DB->fetch_row()) { $time = $this->ipsclass->get_time($row['last_activity'], 'j-n-Y'); if ($time == $today) { $data['members'][$row['id']] = "<a href='{$this->ipsclass->base_url}act=Profile&MID={$row['id']}' title='".$this->ipsclass->get_date($row['last_activity'], 'ONLINE_SHOW', 1)."'>{$this->ipsclass->cache['group_cache'][$row['mgroup']]['prefix']}{$row['members_display_name']}{$this->ipsclass->cache['group_cache'][$row['mgroup']]['suffix']}</a>"; $data['memnum']++; } } if (is_array($data['members'])) { $data['members'] = implode(', ', $data['members']); } $this->ipsclass->time_options['ONLINE'] = $this->ipsclass->vars['ot_date']; $data['memstats'] = sprintf($this->ipsclass->lang['ot_data'], $data['memnum'], $this->ipsclass->get_date(time(), 'ONLINE', 1)); $online_today = $this->ipsclass->compiled_templates['skin_boards']->online_today($data); И меняем их на это: $online_today = ""; if ($this->ipsclass->member['id']) { $this->ipsclass->time_options['ONLINE_SHOW'] = "g:i A"; $data = array('memnum' => 0, 'members' => ''); $today = $this->ipsclass->get_time(time(), 'j-n-Y'); $this->ipsclass->DB->simple_construct(array('select' => '*', 'from' => 'members', 'where' => "id>0 AND last_activity>".time()-86399, 'order' => 'members_display_name ASC')); $this->ipsclass->DB->simple_exec(); while ($row = $this->ipsclass->DB->fetch_row()) { $time = $this->ipsclass->get_time($row['last_activity'], 'j-n-Y'); if ($time == $today) { $data['members'] .= "<a href='{$this->ipsclass->base_url}showuser={$row['id']}' title='".$this->ipsclass->get_date($row['last_activity'], 'ONLINE_SHOW', 1)."'>{$this->ipsclass->cache['group_cache'][$row['mgroup']]['prefix']}{$row['members_display_name']}{$this->ipsclass->cache['group_cache'][$row['mgroup']]['suffix']}</a>{$this->sep_char} \n"; $data['memnum']++; } } $data['members'] = preg_replace( "/".preg_quote($this->sep_char)."$/", "", trim( $data['members'] ) ); $this->ipsclass->time_options['ONLINE'] = $this->ipsclass->vars['ot_date']; $data['memstats'] = sprintf($this->ipsclass->lang['ot_data'], $data['memnum'], $this->ipsclass->get_date(time(), 'ONLINE', 1)); $online_today .= $this->ipsclass->compiled_templates['skin_boards']->online_today($data); } Всё.
  3. maroleg

    Полезные примочки от Song'а

    Несколько замечаний по примочкам Примочка №4 Последний mysql запрос ALTER TABLE ibf_members MODIFY id mediumint(8) UNSIGNED NOT NULL default 0 auto_increment в таком виде не выполнится. Выдаст ошибку о неверном дефолтном значении для поля id Правильно будет так: ALTER TABLE ibf_members MODIFY id mediumint(8) UNSIGNED NOT NULL auto_increment Примочка №5 Здесь небольшая ошибка Вставить перед этим: $SKIN->td_header[] = array( " " , "40%" ); $SKIN->td_header[] = array( " " , "60%" ); $ADMIN->html .= $SKIN->start_table( "Контроль подписок" ); $ADMIN->html .= $SKIN->add_td_row( array( "Удалить все подписки пользователя на темы и форумы?" , $SKIN->form_checkbox("subscribe_delete", 0) ) ); Нужно так: $ADMIN->html .= $SKIN->end_table(); $SKIN->td_header[] = array( " " , "40%" ); $SKIN->td_header[] = array( " " , "60%" ); $ADMIN->html .= $SKIN->start_table( "Контроль подписок" ); $ADMIN->html .= $SKIN->add_td_row( array( "Удалить все подписки пользователя на темы и форумы?" , $SKIN->form_checkbox("subscribe_delete", 0) ) ); Т.е. прежде чем открыть новую таблицу, нужно закрыть предыдущую.
  4. 526 скачиваний

    Мод позволяет отключать или включать страницы переадрессаций в админцентре. Мод тестировался на версии 1.3 Final, но думаю, что он так же подойдёт и для IPB версий 1.1х и 1.2.х
    Бесплатный
  5. Название: Управление страницами переадрессаций через админцентр. Добавил: maroleg Добавлен: 06 Авг 2007 Обновлен: 22 Авг 2007 Категория: IP.Board 1.x.x Мод позволяет отключать или включать страницы переадрессаций в админцентре. Мод тестировался на версии 1.3 Final, но думаю, что он так же подойдёт и для IPB версий 1.1х и 1.2.х Нажмите здесь, чтобы скачать файл
  6. Подожди, чуть позже выложу здесь вариант с управлением через админку и закроем
  7. Не собираешься, потому что не можешь. Хорошо, тогда я тебе объясню. Вариант Refresh нужен только для того случая, если сервер непосредственно от Windows, то есть NT, тогда он Location просто не поймёт, но такие случаи сейчас ну очень редки и в варианте с форумом практически не встречаются. Сейчас даже если OS Windows, то сервер стоит Apache, а он Location поймёт свободно независимо от OS. Если же выбрать вариант HTML META redirect, то тогда редирект будет проводиться через пустую html страницу, а это не даст эффекта экономии трафика, вообщем ради чего всё это и предпринимается. Нет я заметил, но если ты внимательно сам посмотришь, то увидишь, что там много лишнего, а именно // Close this DB connection $DB->close_db(); // Start GZIP compression if ($ibforums->vars['disable_gzip'] != 1) { $buffer = ob_get_contents(); ob_end_clean(); ob_start('ob_gzhandler'); print $buffer; } и echo ($htm); , что в его варианте совершено не нужно.
  8. Song А зачем искать сложности там где их нет? Ну если только для того, что бы потом их героически преодолеть Ну хорошо, в админке есть три метода переадресации HTML META redirect по сути мало чем будет отличаться от страницы переадресации Остаётся два других. Ты сможешь мне внятно объяснить чем отличаются друг от друга методы Location и Refresh? На мой взгляд мой метод и хорош своей простотой, тем, что он очень легко ставится и точно также очень легко убирается простым комментом одной строчки. И уж точно после него не будет возникать таких недоразумений типа, на IE работает, а на Opera, ой извините а на Opera я как то и не потестил. Впрочем, я ничуть не умаляю варианты выше, но на мой взгляд если их делать, то делать надо уже с сохранением первоначального варианта и с выбором их через админку. Ну а если по-простому, то тогда уже лучше мой вариант А вообще вариант, предложенный Jax будет просто идеальный, если его представить так: function redirect_screen($text="", $url="", $override=0) { global $ibforums, $std, $DB; if ($ibforums->input['debug']) { flush(); exit(); } if ( $override != 1 ) { if ( $ibforums->base_url ) { $url = $ibforums->base_url.$url; } else { $url = "{$ibforums->vars['board_url']}/index.{$ibforums->vars['php_ext']}?".$url; } } $std->boink_it($url); exit; }
  9. Можно попробовать и такой вариант: Открываем файл skin_global.php и находим там строчки: function Redirect($Text, $Url, $css) { global $ibforums; Ниже дописываем: header('location:'.$Url); Сохраняем файл и забываем про редиректы Если эту строчку загнать в переменную, то очень легко будет сделать управление редиректами через админку
  10. maroleg

    Убираем все редиректы из 1.3

    Не слишком ли много мучений Есть решение и попроще. Открываем файл skin_global.php и находим там строчки: function Redirect($Text, $Url, $css) { global $ibforums; Ниже дописываем: header('location:'.$Url); Сохраняем файл и забываем про редиректы Если эту строчку загнать в переменную, то очень легко будет сделать управление редиректами через админку
  11. Я очень извиняюсь, что поднимаю старую тему, просто буквально на днях мне самому в голову пришла очень похожая идея и вообще то я конечно по своему её реализовал. В чём минусы как мне кажется этого мода. Первое. Вообщем то тут можно было спокойно взять уже использующийся на форуме джава скрипт showhide и две функции в admin_skin.php свести в одну. Обозвать её можно как угодно, не забыть бы только обозначить это в функции build_tree() в admin_functions.php Но тут появляется и второй минус. Пропадает возможность запоминания состояния меню и соответствено возможность выбора сего в настройках админцентра. Вообщем я эти минусы исправил использовав для этого фичу второй ветки данного форума - джава скрипт сворачивания и скрытия категорий форума, естественно подключив всё это через соответствующее меню в настройках админцентра. Теперь если вы выберете в настройках админцетра сохранять, то все ваши сворачивания и свёртывания будут запоминаться после перезагрузки страницы и так далее. Если кого то это интересует, то могу выложить всё это прямо в этой теме, чего лишний огород городить.
  12. maroleg

    Ошибка mySQL

    У меня на бесплатном хостинге от Джино возникла вот такая проблемма при попытке открыть линк Администрация форума. Почему то mySQL не хочет нормально воспринимать запрос в stats.php вот такого вида: SELECT m2.id, m2.name, m2.email, m2.hide_email, m2.location, m2.aim_name, m2.icq_number, f.id as forum_id, f.read_perms, f.name as forum_name, c.state FROM ibf_moderators mod LEFT JOIN ibf_forums f ON(f.id=mod.forum_id) LEFT JOIN ibf_categories c ON(c.id=f.category AND c.state != 0) LEFT JOIN ibf_members m2 ON (mod.member_id=m2.id) " Ошибку выдаёт вот такую: mySQL query error: SELECT m2.id, m2.name, m2.email, m2.hide_email, m2.location, m2.aim_name, m2.icq_number, f.id as forum_id, f.read_perms, f.name as forum_name, c.state FROM ibf_moderators mod LEFT JOIN ibf_forums f ON(f.id=mod.forum_id) LEFT JOIN ibf_categories c ON(c.id=f.category AND c.state != 0) LEFT JOIN ibf_members m2 ON (mod.member_id=m2.id) mySQL error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mod LEFT JOIN ibf_forums f ON(f.id=mod.forum_id) ' at line 3 mySQL error code: Date: Tuesday 13th of September 2005 02:13:44 AM Подозреваю, что это траблы с пятым PHP, но что с этим делать и как его переделать в переваемый вид, честно говоря просто знаний не хватает. Буду очень благодарен за помощь. Там есть и второй практически идентичный вопрос, подозреваю, что придёться переделывать и его.
  13. Тут такой вопрос возникает, по умолчению в админке стоят такие параметры: Полнотекстовый режим и Простой вид поиска, но стоит хоть как то изменить эти параметры, а потом вернуть всё на место, как поиск меняет свой внешний вид на какой то обрезанный вариант и возвращается он в свой прежний вид только если выставить Ручной режим. Может кто то сможет мне это объяснить? Версия форума 1.3 Final
  14. Большая просьба подсказать, как SQL запросом можно сменить группу пользователя и дополнительную маску или маски доступа для него. Заранее благодарен за помощь.
  15. А не подскажете, каким SQL запросом поменять id пользователя с одного на другой? Заранее благодарен за ответ.
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.