A. Pavluchenko Опубликовано 11 Марта 2006 Жалоба Поделиться Опубликовано 11 Марта 2006 У меня IPB 1.2 final и iBF Portal v4.0 by bammerboy - http://student.vetdoctor.ruЗадача - сделать так, чтобы можно было указывать, из каких форумов не надо выводить топики на главную страницу в блоке Latest Threads Since Last Visit (BIG version). В этом блоке выводятся посты со времени последнего визита пользователя на сайт. Плачу 20$ через WebMoney, Яндекс.Деньги или при личной встрече в Москве. Естественно, после демонстрации корректной работы модификации. icq 133 569 163 Спасибо. Код этого блока такой://*********************************************/ // Latest Threads Since Last Visit (BIG version) //*********************************************/ function do_new_posts_big() { global $DB, $ibforums, $std; if ($ibforums->vars['portal_newposts'] && $ibforums->member['id']) { if ($ibforums->vars['portal_num_newposts']) $number_of_posts = $ibforums->vars['portal_num_newposts']; else $number_of_posts = 5; // Get User Data if ( ($ibforums->vars['show_user_posted'] == 1) and ($ibforums->member['id']) ) { $query = $DB->query("SELECT DISTINCT ibf_posts.author_id, ibf_topics.*, ibf_forums.name, ibf_forums.read_perms FROM ibf_topics, ibf_forums LEFT JOIN ibf_posts ON (ibf_topics.tid = ibf_posts.topic_id AND ibf_posts.author_id = '".$ibforums->member['id']."') WHERE ibf_topics.forum_id = ibf_forums.id AND ibf_topics.last_post > ".$ibforums->input['last_visit']." AND (ibf_forums.read_perms = '*' OR ibf_forums.read_perms LIKE '".$ibforums->member['mgroup']."' OR ibf_forums.read_perms LIKE '%,".$ibforums->member['mgroup']."' OR ibf_forums.read_perms LIKE '".$ibforums->member['mgroup'].",%' OR ibf_forums.read_perms LIKE '%,".$ibforums->member['mgroup'].",%') ORDER BY last_post DESC" ); } else { $query = $DB->query( "SELECT ibf_topic.*, f.name FROM ibf_topics RIGHT JOIN ibf_forums ON i.forum_id = ibf_forums.id WHERE ibf_topics.forum_id = ibf_forums.id AND ibf_topics.last_post > ".$ibforums->input['last_visit']." AND (ibf_forums.read_perms = '*' OR ibf_forums.read_perms LIKE '".$ibforums->member['mgroup']."' OR ibf_forums.read_perms LIKE '%,".$ibforums->member['mgroup']."' OR ibf_forums.read_perms LIKE '".$ibforums->member['mgroup'].",%' OR ibf_forums.read_perms LIKE '%,".$ibforums->member['mgroup'].",%') ORDER BY last_post DESC" ); } while( $row = $DB->fetch_row($query) ) { if ( $forum = $std->my_getcookie('fread_'.$row['forum_id']) ) { $ibforums->input['last_visit'] = $forum > $ibforums->input['last_visit'] ? $forum : $ibforums->input['last_visit']; } $data.= $this->render_entry($row); } return $this->html->new_posts_big($data); } else { return ''; } } Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
A. Pavluchenko Опубликовано 11 Марта 2006 Автор Жалоба Поделиться Опубликовано 11 Марта 2006 Спасибо, разработчик нашелся. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Destruction Опубликовано 13 Марта 2006 Жалоба Поделиться Опубликовано 13 Марта 2006 Работу выполнил, оплатой доволен, заказчик вроде тоже доволен. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
A. Pavluchenko Опубликовано 13 Марта 2006 Автор Жалоба Поделиться Опубликовано 13 Марта 2006 Да, работа была выполнена в короткий срок и качественно. Поскольку склонен к альтруизму, выкладываю тут код этой модификации. /sources/Admin/ad_settings.php Найти: case 'doportal': $this->save_config( array( Добавить после: 'forums_for_noimport', Найти: $this->common_header('doportal', 'Portal', 'Please enter all fields correctly'); Добавить ниже: $ADMIN->html .= $SKIN->add_td_row( array ("<b>Не экспортируемые форумы</b><br>Укажите здесь через запятую номера форумов, из которых не следует импортировать информацию на главную страницу портала.", $SKIN->form_input( "forums_for_noimport", $INFO["forums_for_noimport"] ) ) ); /sources/Portal.php Найти: function do_latest_posts_big() { global $DB, $ibforums, $std; Заменить на: function do_latest_posts_big() { global $DB, $ibforums, $std, $INFO; $_nif = explode(",",$INFO['forums_for_noimport']); for($i=0;$i<count($_nif);$i++){ $nif .= ", ".(string)intval($_nif[$i]); } $nif = substr($nif, 2); if(empty($nif)){ $nif = intval($INFO['forums_for_noimport']); if(empty($nif)){ $nif = "0"; } } Найти далее: WHERE ibf_topics.forum_id = ibf_forums.id AND Добавить после: ibf_forums.id NOT IN ($nif) AND Найти: function do_new_posts_big() { global $DB, $ibforums, $std; Заменить на: function do_new_posts_big() { global $DB, $ibforums, $std, $INFO; $_nif = explode(",",$INFO['forums_for_noimport']); for($i=0;$i<count($_nif);$i++){ $nif .= ", ".(string)intval($_nif[$i]); } $nif = substr($nif, 2); if(empty($nif)){ $nif = intval($INFO['forums_for_noimport']); if(empty($nif)){ $nif = "0"; } } Найти далее: WHERE ibf_topics.forum_id = ibf_forums.id AND Добавить после: ibf_forums.id NOT IN ($nif) AND Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Destruction Опубликовано 14 Марта 2006 Жалоба Поделиться Опубликовано 14 Марта 2006 Пока не закритиковали - исправляюсь. /sources/Admin/ad_settings.php Найти: case 'doportal': $this->save_config( array( Добавить после: 'forums_for_noimport', Найти: $this->common_header('doportal', 'Portal', 'Please enter all fields correctly'); Добавить ниже: $ADMIN->html .= $SKIN->add_td_row( array ("<b>Не экспортируемые форумы</b><br>Укажите здесь через запятую номера форумов, из которых не следует импортировать информацию на главную страницу портала.", $SKIN->form_input( "forums_for_noimport", $INFO["forums_for_noimport"] ) ) ); /sources/Portal.php Найти: function do_latest_posts_big() { global $DB, $ibforums, $std; Заменить на: function do_latest_posts_big() { global $DB, $ibforums, $std, $INFO; $_nif = explode(",",$INFO['forums_for_noimport']); for($i=0;$i<count($_nif);$i++){ $nif .= ", ".(string)intval($_nif[$i]); } $nif = substr($nif, 2); if(empty($nif)){ $nif = intval($INFO['forums_for_noimport']); } Найти далее: WHERE ibf_topics.forum_id = ibf_forums.id AND Добавить после: ibf_forums.id NOT IN ($nif) AND Найти: function do_new_posts_big() { global $DB, $ibforums, $std; Заменить на: function do_new_posts_big() { global $DB, $ibforums, $std, $INFO; $_nif = explode(",",$INFO['forums_for_noimport']); for($i=0;$i<count($_nif);$i++){ $nif .= ", ".(string)intval($_nif[$i]); } $nif = substr($nif, 2); if(empty($nif)){ $nif = intval($INFO['forums_for_noimport']); } Найти далее: WHERE ibf_topics.forum_id = ibf_forums.id AND Добавить после: ibf_forums.id NOT IN ($nif) ANDintval() всегда, вернёт число. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.