kuk Опубликовано 6 Июня 2007 Жалоба Поделиться Опубликовано 6 Июня 2007 ВОТ самый мод. Кстати, мод рабочий - юзай народ.Выводит внизу темы колонку с перечнем пяти похожих тем. Собственно просьба к профессионалам доработать мод на предмет скрытия вывода тем из указанных разделов. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 6 Июня 2007 Жалоба Поделиться Опубликовано 6 Июня 2007 # Get forums we're allowed to read foreach ($this->ipsclass->forums->forum_by_id as $k => $v) { if (! $v['password'] || $this->ipsclass->check_perms($v['read_perms']) == TRUE) { $forumids[] = $v['id']; } }здесьif (! $v['password'] || $this->ipsclass->check_perms($v['read_perms']) == TRUE)заменить наif ((! $v['password'] || $this->ipsclass->check_perms($v['read_perms']) == TRUE)and ! in_array($v['id'], explode(',',$this->ipsclass->vars['similar_hidden_forums']) ))добавить в админке настройку с ключом similar_hidden_forumsввод текста одна строка, здесь через запятую номера скрытых разделов Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
kuk Опубликовано 6 Июня 2007 Автор Жалоба Поделиться Опубликовано 6 Июня 2007 Огромное спасибо! Всё прекрасно работает. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
badion Опубликовано 25 Июня 2007 Жалоба Поделиться Опубликовано 25 Июня 2007 Чёто у меня он не работает xml импортирую а новых настроек не вижу.как они называются то?но он писал что добавлено Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
VictorKiev Опубликовано 23 Апреля 2008 Жалоба Поделиться Опубликовано 23 Апреля 2008 (изменено) мод установился, но не пашет - пишет вот что Detecting error(s) Fatal error: Call to undefined method topics::similar_topics() in /home/adrenaline/domains/*****.ua/public_html/sources/action_public/topics.php on line 677 Изменено 9 Июня 2008 пользователем VictorKiev Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 24 Апреля 2008 Жалоба Поделиться Опубликовано 24 Апреля 2008 Гыг Автор мода - извращенец. Он предлагает поставить поиск по БД прямо в отображение топика! Учитывая, что при поиске по LIKE индексы не используются, форум загнётся очень быстро.Советую использовать данный мод только с полнотекстовым индексом, да и то я бы сказал, что это нагрузно для форума, потому что операция просмотра топика - частая операция. Я себе подобную вещь сделал, но у меня работает перловый индексатор, который создаёт и обновляет индекс похожих тем сам в фоновом режиме, вне зависимости от просмотра какого-либо топика. А при отображении топика только запрашиваются готовые tidы из таблицы индексатора. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
VictorKiev Опубликовано 30 Января 2009 Жалоба Поделиться Опубликовано 30 Января 2009 (изменено) можете взять этот ,он рабочий, у меня на 2.3.3 пашет отлично _CC23__Similar_Topics_v1.0.1.zip Изменено 30 Января 2009 пользователем VictorKiev Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Harton Опубликовано 30 Января 2009 Жалоба Поделиться Опубликовано 30 Января 2009 А есть такой мод,что бы запрещал создавать одинаковые темы на одном форуме.А то уже надоело по 5 тем в разных разделах просматривать. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 30 Января 2009 Жалоба Поделиться Опубликовано 30 Января 2009 А есть такой мод,что бы запрещал создавать одинаковые темы на одном форуме.А то уже надоело по 5 тем в разных разделах просматривать.Вот-вот, что-то мне надоело чатать этот вопрос по десятому разу, может закрыть тему и выдать каждому по предуперждению? Есть мод антидублирования сообщений от Архара, смотрите в архиве. Правда его основное предназначение -- защита от спама, но можно и на неточное совпадение настройить. главное чтобы вы потом не получили плохой отзыв от пользователей, которые темы создавать не смогут. Есть более гуманные методы защиты. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
dartes Опубликовано 9 Февраля 2009 Жалоба Поделиться Опубликовано 9 Февраля 2009 А можно этот мод, поставить на версию форума 2.3.6 ? Такой вот вопрос возник, потому что не нашёл мод в архиве. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 9 Февраля 2009 Жалоба Поделиться Опубликовано 9 Февраля 2009 Любой мод для 2.1/2.3, не затрагивающий вывод сообщений, можно поставить на 2.3. Иначе нужно поменять пару строк, не более. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
genresu4 Опубликовано 3 Августа 2009 Жалоба Поделиться Опубликовано 3 Августа 2009 если кому то нужномод похожих тем на странице просмотра темыпо вопросам к автору (т.е. мне) открываем /sources/action_public/topics.phpищем:// Render the moderator linksДобавляем ВЫШЕ: /*-------------------------------------------------------------------------*/ // Similar Topics (by Leonardo) /*-------------------------------------------------------------------------*/ function similar_topics(){ $title = $this->ipsclass->stringToLower($this->topic['title']); $words = split(' ',$this->topic['title']); $word = ""; for($ii=0;$ii<count($words);$ii++){ for($i=1;$i<(count($words)-$ii);$i++){ if(strlen(html_entity_decode($words[$i]))>2) $word .= '%'.$words[$i]; } $word.='%" OR t.title LIKE "'; } $query = '(t.title LIKE "%'.$words[0].$word.'") AND NOT(t.topicprefix=0) AND NOT(t.title="'.$this->topic['title'].'")'; $query = str_replace('OR t.title LIKE ""','',$query); $query = str_replace('OR t.title LIKE "%"','',$query); $this->ipsclass->DB->simple_construct( array( 'select' => 't.*, f.id as fid, f.name as fname, m.id as mid, m.name as mname', 'from' => 'topics t LEFT JOIN '.SQL_PREFIX.'forums f ON (t.forum_id=f.id) LEFT JOIN '.SQL_PREFIX.'members m ON (t.starter_id=m.id)', 'where' => $query, 'order' => 't.pinned DESC', 'limit' => '5' ) ); $this->ipsclass->DB->simple_exec(); $i=0; while ( $t = $this->ipsclass->DB->fetch_row() ) { $i++; $data['TOPIC'.$i]['tid'] = $t['tid']; $data['TOPIC'.$i]['title'] = $t['title']; $data['TOPIC'.$i]['fid'] = $t['fid']; $data['TOPIC'.$i]['forum'] = $t['fname']; $data['TOPIC'.$i]['mid'] = $t['mid']; $data['TOPIC'.$i]['author'] = $t['mname']; } $html = $this->ipsclass->compiled_templates['skin_topic']->similar_topics($data); return $html; }ищем:$this->output = str_replace( "<!--IBF.MULTIMOD-->", $this->multi_moderation(), $this->output );Добавляем НИЖЕ или ВЫШЕ:$this->output = str_replace( "<!--IBF.SIMILAR_TOPICS-->", $this->similar_topics(), $this->output );сохраняем, закрываем. Идём в АдминЦентр -> Внешний вид -> /стиль/ -> HTML шаблоны -> skin_topicсоздаём новый шаблон similar_topics, входящие переменные $dataвписываем содержимое шаблона:<if="$data['TOPIC1']['tid']"><br/> <div class="borderwrap" style='padding-bottom:1px;'> <div class="formsubtitle" style="padding: 4px;">Похожие темы</div> <table width='100%'> <tr><td class="row1" style="padding: 4px;"> <a href='index.php?showtopic={$data['TOPIC1']['tid']}'>{$data['TOPIC1']['title']}</a> <td class="row1" style="padding: 4px;"><a href='index.php?showforum={$data['TOPIC1']['fid']}'>{$data['TOPIC1']['forum']}</a> <td class="row1" style="padding: 4px;"><a href='index.php?showuser={$data['TOPIC1']['mid']}'>{$data['TOPIC1']['author']}</a> <if="$data['TOPIC2']['tid']"> <tr><td class="row2" style="padding: 4px;"> <a href='index.php?showtopic={$data['TOPIC2']['tid']}'>{$data['TOPIC2']['title']}</a> <td class="row2" style="padding: 4px;"><a href='index.php?showforum={$data['TOPIC2']['fid']}'>{$data['TOPIC2']['forum']}</a> <td class="row2" style="padding: 4px;"><a href='index.php?showuser={$data['TOPIC2']['mid']}'>{$data['TOPIC2']['author']}</a> </if><if="$data['TOPIC3']['tid']"> <tr><td class="row1" style="padding: 4px;"> <a href='index.php?showtopic={$data['TOPIC3']['tid']}'>{$data['TOPIC3']['title']}</a> <td class="row1" style="padding: 4px;"><a href='index.php?showforum={$data['TOPIC3']['fid']}'>{$data['TOPIC3']['forum']}</a> <td class="row1" style="padding: 4px;"><a href='index.php?showuser={$data['TOPIC3']['mid']}'>{$data['TOPIC3']['author']}</a> </if><if="$data['TOPIC4']['tid']"> <tr><td class="row2" style="padding: 4px;"> <a href='index.php?showtopic={$data['TOPIC4']['tid']}'>{$data['TOPIC4']['title']}</a> <td class="row2" style="padding: 4px;"><a href='index.php?showforum={$data['TOPIC4']['fid']}'>{$data['TOPIC4']['forum']}</a> <td class="row2" style="padding: 4px;"><a href='index.php?showuser={$data['TOPIC4']['mid']}'>{$data['TOPIC4']['author']}</a> </if><if="$data['TOPIC5']['tid']"> <tr><td class="row1" style="padding: 4px;"> <a href='index.php?showtopic={$data['TOPIC5']['tid']}'>{$data['TOPIC5']['title']}</a> <td class="row1" style="padding: 4px;"><a href='index.php?showforum={$data['TOPIC5']['fid']}'>{$data['TOPIC5']['forum']}</a> <td class="row1" style="padding: 4px;"><a href='index.php?showuser={$data['TOPIC5']['mid']}'>{$data['TOPIC5']['author']}</a> </if> </table> </div></if>разве что неуверен работает ли различие между "Таким Названием" и "тАКИМ нАЗВАНИЕМ" Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Ritsuka Опубликовано 3 Августа 2009 Жалоба Поделиться Опубликовано 3 Августа 2009 <if="$data['TOPIC1']['tid']"><br/> <div class="borderwrap" style='padding-bottom:1px;'> <div class="formsubtitle" style="padding: 4px;">Похожие темы</div> <table width='100%'> <tr><td class="row1" style="padding: 4px;"> <a href='index.php?showtopic={$data['TOPIC1']['tid']}'>{$data['TOPIC1']['title']}</a> <td class="row1" style="padding: 4px;"><a href='index.php?showforum={$data['TOPIC1']['fid']}'>{$data['TOPIC1']['forum']}</a> <td class="row1" style="padding: 4px;"><a href='index.php?showuser={$data['TOPIC1']['mid']}'>{$data['TOPIC1']['author']}</a> .... <tr><td class="row1" style="padding: 4px;"> <a href='index.php?showtopic={$data['TOPIC5']['tid']}'>{$data['TOPIC5']['title']}</a> <td class="row1" style="padding: 4px;"><a href='index.php?showforum={$data['TOPIC5']['fid']}'>{$data['TOPIC5']['forum']}</a> <td class="row1" style="padding: 4px;"><a href='index.php?showuser={$data['TOPIC5']['mid']}'>{$data['TOPIC5']['author']}</a> </if> </table> </div></if>Гыгыгыгы!!! Свежий код из индии))) Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
genresu4 Опубликовано 4 Августа 2009 Жалоба Поделиться Опубликовано 4 Августа 2009 ну извините я не знаю как делать циклы используя api шаблонов Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Ritsuka Опубликовано 4 Августа 2009 Жалоба Поделиться Опубликовано 4 Августа 2009 (изменено) А почему циклы-то? Что за идиотская конструкция с именами в массиве типа "topic1"..."topic5"? В чем смысл? $data = array(); // не мешало бы объявить переменную while ( $t = $this->ipsclass->DB->fetch_row() ) $data[] = array( 'tid' => $t['tid'], 'title' => $t['title'], 'fid' => $t['fid'], 'forum' => $t['fname'], 'mid' => $t['mid'], 'author' => $t['mname']); $html = $this->ipsclass->compiled_templates['skin_topic']->similar_topics($data); <div class="borderwrap" style='padding-bottom:1px;'> <div class="formsubtitle" style="padding: 4px;">Похожие темы</div> <table width='100%'> <foreach="$data as $topic"> <tr> <td class="row1" style="padding: 4px;"><a href='index.php?showtopic={$topic['tid']}'>{$topic['title']}</a> <td class="row1" style="padding: 4px;"><a href='index.php?showforum={$topic['fid']}'>{$topic['forum']}</a> <td class="row1" style="padding: 4px;"><a href='index.php?showuser={$topic['mid']}'>{$topic['author']}</a> </tr> </foreach> </table> </div> </div> А вот этот ужас: $title = $this->ipsclass->stringToLower($this->topic['title']); $words = split(' ',$this->topic['title']); $word = ""; for($ii=0;$ii<count($words);$ii++){ for($i=1;$i<(count($words)-$ii);$i++){ if(strlen($words[$i])>3) $word .= '%'.$words[$i]; } $word.='%" OR t.title LIKE "'; } $query = '(t.title LIKE "%'.$words[0].$word.'") AND NOT(t.topicprefix=0) AND NOT(t.title="'.$this->topic['title'].'")'; $query = str_replace('OR t.title LIKE ""','',$query); $query = str_replace('OR t.title LIKE "%"','',$query); похоже призван выполнять вот это: $title = $this->ipsclass->stringToLower($this->topic['title']); $words = explode(" ", $title); $sub_q = " t.title LIKE "; while (list($key, $val) = each($words)) if(strlen($val) < 3) unset($words[$key]); else $words[$key] = "'%".$val."%'"; //кстати, тут бы не мешало проверочу на LIKE-символы вроде % в составе слов if(sizeof($words) > 0) $query = " ( ".$sub_q.implode(" OR ".$sub_q, $words)." ) AND NOT(t.topicprefix=0) AND NOT(t.title="'.$this->topic['title'].'")'; // кстати, проверка именно по title - тупо, быстрее по id else $query = "t.title = ''"; Изменено 4 Августа 2009 пользователем Ritsuka Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
genresu4 Опубликовано 6 Августа 2009 Жалоба Поделиться Опубликовано 6 Августа 2009 я таки забыл исключить из кода topicprefix...и я сделал так как мне понятно и так как у меня работает) Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Ritsuka Опубликовано 6 Августа 2009 Жалоба Поделиться Опубликовано 6 Августа 2009 Да никто и не возражает равно как и я не претендую на идеальность моего кода Единственно что скажу - вы совершенно напрасно игнорируете специфичные операторы PHP - писать на примитивах типа FOR не только неудобно, но и непонятно читающему потом код Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
paulg Опубликовано 8 Августа 2009 Жалоба Поделиться Опубликовано 8 Августа 2009 можете взять этот ,он рабочий, у меня на 2.3.3 пашет отлично _CC23__Similar_Topics_v1.0.1.zip я поставил..он работает только для новых тем..как сделать чтобы и для старых? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
genresu4 Опубликовано 9 Августа 2009 Жалоба Поделиться Опубликовано 9 Августа 2009 Ritsuka: я не пользуюсь тем в чём не уверен paulg: вероятно там нужно изменить метод сортировки в sql запросе Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
vov41k Опубликовано 12 Июля 2010 Жалоба Поделиться Опубликовано 12 Июля 2010 Для 2.1.7 есть такой мод? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.