cybermad Опубликовано 1 Апреля 2009 Жалоба Поделиться Опубликовано 1 Апреля 2009 Пишу примочку к существующей системе публикации статей в MKPortal. Хочу, чтобы пользователи могли при желании одновременно с публикацией новости (статьи и т.д.) разместить ее и в нужном форуме и в дальнейшем обсуждать. Использую следующий код, загоняющий данные из новостей на форум в БД: //add by cybermad IPB if($inaforum==1) { //add by cybermad $query1 = $DB->query( "SELECT tid FROM ibf_topics ORDER BY `tid`"); while( $trow = $DB->fetch_row($query1)) { $tid = $trow['tid']; } $tid = $tid+1; $query2 = $DB->query( "SELECT pid FROM ibf_posts ORDER BY `pid`"); while( $prow = $DB->fetch_row($query2)) { $pid = $prow['pid']; } $pid = $pid+1; // $query3="INSERT INTO ibf_topics(title, state, posts, starter_id, start_date, last_poster_id, last_post, icon_id, starter_name, last_poster_name, poll_state, views, forum_id, approved, author_mode, pinned, topic_firstpost) VALUES('$titolo', 'open', '0', '$idaut', '$cdata', '$idaut', '$cdata', '0', '$autore', '$autore', '0', '0', '$fcategoria', '1', '1', '0', '$pid')"; $query4="INSERT INTO ibf_posts(author_id, author_name, use_sig, use_emo, post_date, icon_id, post, topic_id, new_topic) VALUES('$idaut', '$autore', '1', '1', '$cdata', '0', '$testo', '$tid', '1')"; $DB->query($query3); $DB->query($query4); $DB->query("UPDATE ibf_forums SET last_post = '$cdata', last_poster_id ='$idaut', last_poster_name='$autore', last_title='$titolo', last_id='$tid' , newest_title= '$titolo', newest_id = '$tid' WHERE id='$fcategoria'"); $DB->close_db(); } // Бяка в том, что данные появляются, как мне и нужно, НО! 1. на главной странице форума последний топик, таким образом созданный, не отображается.2. Если таким образом создать тему в пустом форуме, то сверху форума идет надпись, что тем не обнаружено, а ниже идет моя размещенная тема Все проблемы пропадают после выполнения синхронизации форумов. В чем загвоздка??? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 2 Апреля 2009 Жалоба Поделиться Опубликовано 2 Апреля 2009 в обновлении кеша. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
cybermad Опубликовано 2 Апреля 2009 Автор Жалоба Поделиться Опубликовано 2 Апреля 2009 Это ясно но каким образом выполнить программным способом обновление кэша, не используя средства IPB? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 2 Апреля 2009 Жалоба Поделиться Опубликовано 2 Апреля 2009 Не используя будет трудно, там создаётся дерево в кеше, определённой структуры, кода на пару экранов. Можно вашими средствами сделать выборку всех записей из ibf_forums, а потом использовать функцию создания кеша. См. class_forums.php Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 2 Апреля 2009 Жалоба Поделиться Опубликовано 2 Апреля 2009 Это ясно но каким образом выполнить программным способом обновление кэша, не используя средства IPB?чего тебе ясно?Если бы было ясно ты бы спросил как обновить кеш. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
cybermad Опубликовано 2 Апреля 2009 Автор Жалоба Поделиться Опубликовано 2 Апреля 2009 чего тебе ясно?Если бы было ясно ты бы спросил как обновить кеш. Что-то на хамство это смахивает, а не на поддержку. ТЫкайте кому-то другому. P.S. 2Sannis: благодарю Вас за Ваши ответы и направления в какую сторону копать. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 2 Апреля 2009 Жалоба Поделиться Опубликовано 2 Апреля 2009 Если вы так ответили только потому, что считаете что поддержка клиентов осуществляется на форуме, то вы ошибаетесь. поддержка, которую вы покупали вместе с лицензией у АйБиРесурс, осуществляется сотрудниками техподдержки только в клиентцентре. Так что давайте уважать тех людей, которые отвечают на уйму вопросов на этом форуме. Могли бы и помочь им. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
cybermad Опубликовано 3 Апреля 2009 Автор Жалоба Поделиться Опубликовано 3 Апреля 2009 Так что давайте уважать тех людей, которые отвечают на уйму вопросов на этом форуме. Могли бы и помочь им. Хочется, чтобы все было взаимно. Ок. Вопрос закрыт. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 3 Апреля 2009 Жалоба Поделиться Опубликовано 3 Апреля 2009 Так что давайте уважать тех людей, которые отвечают на уйму вопросов на этом форуме. Могли бы и помочь им. Хочется, чтобы все было взаимно. Ок. Вопрос закрыт.И нам хочется. Nолько статистика говорит об обратном, к сожалению. Пример создания темы/сообщения так, чтобы обновлялись все необходимые поля, есть в ./sources/api/api_topics_and_posts.php, за обновления информации в связанных таблицах отвечают tap_rebuild_forum() и tap_rebuild_stats(). Если что, $this->func_mod -- это класс func_mod из ./sources/lib/func_mod.php. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
cybermad Опубликовано 3 Апреля 2009 Автор Жалоба Поделиться Опубликовано 3 Апреля 2009 (изменено) @Sannis: благодарю@Song: извиняюсь, если ответил грубостью. У вас на форуме тоже нашел полезную инфу. Как создать топик? Создание топика в форуме; все версии IPB - в соответствии с инструкциями делаю так: require_once $_SERVER['DOCUMENT_ROOT']."/board/sources/api/api_topics_and_posts.php"; $ipb = $_SERVER['DOCUMENT_ROOT']."/board/"; // укажите здесь свой путь к форуму или оставьте этот вариант $api = new api_topics_and_posts(); $api->path_to_ipb = $ipb; $api->api_init(); // инициализация функций API $api->set_author_by_id($idaut); // id автора топика $api->set_post_content("post content goes here"); // текст 1-го поста топика $api->set_forum_id($fcategoria); // id форума $api->set_topic_title("title"); // название топика $api->set_topic_description("des"); // описание топика $api->set_topic_state('open'); // состояние топика $api->create_new_topic(); // вызов функции "Создать топик" выбивает вот что: Fatal error: Call to a member function simple_construct() on a non-object in \home\xxx.ru\www\board\sources\ipsclass.php on line 1372 по указанному адресу вижу код: $this->DB->simple_construct( array( 'select' => '*', в чем загвоздка??? Изменено 3 Апреля 2009 пользователем cybermad Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
cybermad Опубликовано 3 Апреля 2009 Автор Жалоба Поделиться Опубликовано 3 Апреля 2009 Сам спросил - сам нашел ответ Здесь сказано, что апи инициализируем так:Перед вызовами любых функций API, эту библиотеку нужно проинициализировать.Это делается следующим кодом: require_once $ipb."sources/api/api_topics_and_posts.php";$ipb = $_SERVER['DOCUMENT_ROOT']."/forum/"; // укажите здесь свой путь к форуму или оставьте этот вариант$api = new api_topics_and_posts();$api->path_to_ipb = $ipb;$api->api_init(); // инициализация функций API а самом апишнике присутствует следующая подсказка:* ПРИМЕР ИСПОЛЬЗОВАНИЯ* <code>* $api = new api_topics_and_posts();* $api->ipsclass =& $this->ipsclass;* // ДОБАВЛЕНИЕ ОТВЕТА* $api->set_author_by_name('matt'); В первой цитате отсутствует почему то код: $api->ipsclass =& $this->ipsclass; Попробовал сделать инициализацию так:require_once ROOT_PATH . "sources/api/api_topics_and_posts.php"; $ipb = $_SERVER['DOCUMENT_ROOT']."/forum/"; // укажите здесь свой путь к форуму или оставьте этот вариант $api = new api_topics_and_posts(); $api->ipsclass =& $ipsclass; $api->path_to_ipb = $ipb; $api->api_init(); // инициализация функций API и все заработало. Спасибо всем, кто помогал! Удачи! Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 3 Апреля 2009 Жалоба Поделиться Опубликовано 3 Апреля 2009 Сам спросил - сам нашел ответ+1 к статистике Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
cybermad Опубликовано 5 Апреля 2009 Автор Жалоба Поделиться Опубликовано 5 Апреля 2009 Результат работы. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 5 Апреля 2009 Жалоба Поделиться Опубликовано 5 Апреля 2009 Навязчивое подталкивание к регистрации? Ай-ай-ай. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
cybermad Опубликовано 5 Апреля 2009 Автор Жалоба Поделиться Опубликовано 5 Апреля 2009 Почему подталкивание??????? т.е если MKP работает в связке с ИПБ, то мне не стоит здесь публиковать решения для портала? Если бы я подталкивал к регистрации, то не публиковал бы 100% инструкцию для установки, а опубликовал бы, скажем, процентов 95, а остальное можно было бы скачать или дочитать у нас. Этого нет. В первую очередь хочу поделиться тем, что у меня получается с другими! Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 5 Апреля 2009 Жалоба Поделиться Опубликовано 5 Апреля 2009 Что ж вы такой нервный... Просто вы должны понимать, что при всех плюсах и полезности вашей статьи, в ней 2 ссылки на ваш ресурс, не считая подписи, причём по одной кроме сообщения о том, что доступ к скачиванию разрешён только авторизованным, ничего полезного нет. => Прийдёт кто-то добрый и пошлёт вас читать правила форума. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.