cybermad Опубликовано 5 Апреля 2009 Жалоба Поделиться Опубликовано 5 Апреля 2009 (изменено) Модификация позволяет добавить вMKPortal функцию создания тем-анонсов и тем поддержки в указанном форуме при: 1. добавлении новости (в целях безопасности только при использовании BBCode-редактора);2. добавлении нового файла в модуле "Файлы»;3. добавлении нового обзора/статьи (в целях безопасности только при использовании BBCode-редактора); Модификация работает ТОЛЬКО С ФОРУМАМИIPB ВЕРСИЙ 2.X Инструкция по установке. 1. Откройте файл mkportal/include/IPB/ipb_driverf.php 1.1. Найдите код:require_once ROOT_PATH . "conf_global.php"; 1.2. Ниже вставьте код:require_once ROOT_PATH . "sources/api/api_topics_and_posts.php"; 1.3. Найдите код: require $MK_PATH."mkportal/include/class_mkportals.php"; 1.4. Выше вставьте://add by cybermad $ipb = "$mkportals->forum_patch/"; $api = new api_topics_and_posts(); $api->ipsclass =& $ipsclass; $api->path_to_ipb = $ipb; $api->api_init(); //end add 2. Для установки модификации в модуль новостей откройте файл mkportal/modules/news/index.php 2.1 Найдите код:function submit_news() { global $mkportals, $DB, $mklib, $Skin, $editorscript; 2.2. Замените на код:function submit_news() { global $mkportals, $DB, $mklib, $Skin, $editorscript, $MK_BOARD; 2.3. В функции function submit_news() найдите код:$editorscript = 1; $textarepar = "mce_editable=\"true\""; $textarew = "100%"; $bbeditor= ""; 2.4. Ниже добавьте://add by cybermad post with IPB $fipb = ""; //end add 2.5. В функции function submit_news() найдите код:if ($mklib->mkeditor == "BBCODE") { $editorscript = ""; $textarepar = ""; $textarew = "75%"; $bbeditor= $mklib->get_bbeditor(); 2.6. Ниже добавьте://add by cybermad post with IPB if($MK_BOARD == "IPB") { $query2 = $DB->query( "SELECT id, name FROM ibf_forums WHERE status = '1' ORDER BY `id`"); while( $forum = $DB->fetch_row($query2) ) { $idforum = $forum['id']; $forum = $forum['name']; $fselect.= "<option value=\"$idforum\">$forum</option>\n"; } $fipb = " {$mklib->lang['ne_forum']} <input type=\"checkbox\" name=\"inaforum\" value=\"1\" /> {$mklib->lang['ne_idforum']} <select name=\"forum\" size=\"1\" class=\"bgselect\"> {$fselect} </select> "; } else { $fipb = ""; } //end add 2.7. В функции function submit_news() найдите код:<td class=\"tdblock\"> {$mklib->lang['ne_category']}: <select name=\"categoria\" size=\"1\" class=\"bgselect\"> {$cselect} </select> </td> </tr> 2.8. Замените на код:<td class=\"tdblock\"> {$mklib->lang['ne_category']}: <select name=\"categoria\" size=\"1\" class=\"bgselect\"> {$cselect} </select> {$fipb} </td> </tr> 2.9. В функции function reg_data() найдите код:global $mkportals, $DB, $std, $print, $mklib, $mklib_board; 2.10. Замените на код: global $mkportals, $DB, $std, $print, $mklib, $mklib_board, $MK_BOARD, $api; 2.11.В функции function reg_data() найдите код: if (!$mkportals->input['categoria']) { $message = "{$mklib->lang['ne_createcat']}"; $mklib->error_page($message); exit; } 2.12. Ниже добавьте:if (!$mkportals->input['categoria']) { $message = "{$mklib->lang['ne_createcat']}"; $mklib->error_page($message); exit; } 2.13. В функции function reg_data() найдите код:if($mkportals->member['g_access_cp']) { $validat = "1"; } 2.14. Ниже добавьте://add by cybermad for IPB posting if (($MK_BOARD == "IPB") and ($mklib->mkeditor == "BBCODE")) { $query = $DB->query( "SELECT id FROM mkp_news ORDER BY `id`"); while( $row = $DB->fetch_row($query) ) { $idn = $row['id']; $idn++; } $fcategoria= $mkportals->input['forum']; $inaforum = intval($mkportals->input['inaforum']); $message = "{$testo}<br><a href=\"$mklib->siteurl/index.php?ind=news&op=news_show_single&ide=$idn\">{$mklib->lang['ne_source']}</a><br><br>"; if($inaforum==1) { $api->set_author_by_id($idaut); $api->set_post_content($message); $api->set_forum_id($fcategoria); $api->set_topic_title($titolo); $api->set_topic_state('open'); $api->set_topic_invisible(!$validat); $api->set_topic_pinned($pinned); $api->create_new_topic(); $tfid = $api->topic['tid']; $hr = "<br><br><a href=\"$mklib->siteurl/$mkportals->forum_url/index.php?showtopic=$tfid\">{$mklib->lang['ne_fsource']}</a>"; $testo = $mklib->convert_savedb("{$testo} {$hr}"); } } //end add 2.15.Откройте файл mkportal/lang/ваш язык/lang_news.php и найдите код:?> 2.16.Выше добавьте://add by cybermad 05.04.2009 $langmk['ne_forum'] = "Добавить тему обсуждения на форум"; $langmk['ne_idforum'] = "в раздел:"; $langmk['ne_source'] = "<b>Источник</b>"; $langmk['ne_fsource'] = "<b>Тема обсуждения на форуме</b>"; $langmk['ne_ferror'] = "Внимание, при написании новости был выбран раздел на форуме для создания темы для обсуждения, но опция создания не была включена. Вернитесь назад и проверьте установленные значения. Если вы хотите продолжить публикацию новости без создания темы для обсуждения, то выберите первое значение в списке разделов на форуме."; После установки модификации в модуль новостей при включенном редакторе BBCode в форме публикации новости появится флажок, разрешающий опубликовать новость на форуме и выпадающий список с названиями форумов, где можно создать тему с анонсом. В теме на форуме присутствует обратная ссылка на источник в портале. В новости присутствует ссылка на тему обсуждения на форуме. !!!Продолжение установки в следующем сообщении!!! 3. Для установки модификации в модуль файлов откройте файл mkportal/modules/downloads/index.php 3.1 Найдите код:function submit_file() { global $mkportals, $DB, $mklib, $Skin, $mklib_board; 3.2. Замените на код:function submit_file() { global $mkportals, $DB, $mklib, $Skin, $mklib_board, $MK_BOARD; 3.3. В функции function submit_file() найдите код:$cselect = $this->row_select_event(); if ($cselect == FALSE) { $message = "{$mklib->lang['dw_nocat']}"; $mklib->error_page($message); exit; } 3.4. Ниже вставьте код://add by cybermad post with IPB if($MK_BOARD == "IPB") { $query2 = $DB->query( "SELECT id, name FROM ibf_forums WHERE status = '1' ORDER BY `id`"); while( $forum = $DB->fetch_row($query2) ) { $idforum = $forum['id']; $forum = $forum['name']; $fselect.= "$forum\n"; } $fipb = " {$mklib->lang['dw_idforum']} {$fselect} "; } else { $fipb = ""; } //end add 3.5. В функции function submit_file() найдите код: {$mklib->lang['dw_section']} {$cselect} 3.6. Ниже вставьте код: {$mklib->lang['dw_forum']} {$fipb} 3.7. Найдите код:function add_file() { global $mkportals, $DB, $std, $print, $mklib, $Skin, $mklib_board; 3.8. Замените на код:function add_file() { global $mkportals, $DB, $std, $print, $mklib, $Skin, $mklib_board, $api, $MK_BOARD;3.9. В функции function add_file() найдите код:$evento = intval($mkportals->input['evento']); $titolo = $mkportals->input['titolo']; $screen1 = $mkportals->input['screen1']; $screen2 = $mkportals->input['screen2']; $demo = $mkportals->input['demo']; $descrizione = $mkportals->input['descrizione']; 3.10. Добавьте ниже://add by cybermad for IPB posting if ($mkportals->input['inaforum']==0 && $mkportals->input['forum']>1) { $message = "{$mklib->lang['dw_ferror']}"; $mklib->error_page($message); exit; } //end add 3.11. В функции function add_file() найдите код:$validat = "1"; $approval = $mklib->config['approval_download']; if ($approval == "2" || $approval == "3") { $validat = 0; } if($mkportals->member['g_access_cp']) { $validat = "1"; } 3.12. Добавьте ниже://add by cybermad for IPB posting if (($MK_BOARD == "IPB")) { $query = $DB->query( "SELECT id FROM mkp_download ORDER BY `id`"); while( $row = $DB->fetch_row($query) ) { $idn = $row['id']; $idn++; } $fcategoria= $mkportals->input['forum']; $inaforum = intval($mkportals->input['inaforum']); $message = "{$descrizione}siteurl/index.php?ind=downloads&op=entry_view&iden=$idn\">{$mklib->lang['dw_source']}"; if($inaforum==1) { $api->set_author_by_id($mkportals->member['id']); $api->set_post_content($message); $api->set_forum_id($fcategoria); $api->set_topic_title($titolo); $api->set_topic_state('open'); $api->set_topic_invisible(!$validat); $api->create_new_topic(); $tfid = $api->topic['tid']; $hr = "siteurl/$mkportals->forum_url/index.php?showtopic=$tfid\">{$mklib->lang['dw_fsource']}"; $descrizione = $mklib->convert_savedb("{$descrizione} {$hr}"); } } //end add 3.13. Откройте файл mkportal/lang/ваш язык/ lang_download.php и найдите код:?> 3.14. Выше добавьте://add by cybermad 05.04.2009 $langmk['dw_forum'] = "Поддержка на форуме"; $langmk['dw_idforum'] = "в разделе:"; $langmk['dw_source'] = "Источник"; $langmk['dw_fsource'] = "Тема поддержки на форуме"; $langmk['dw_ferror'] = "Внимание, при добавлении файла был выбран раздел на форуме для создания темы для обсуждения и поддержки, но опция создания не была включена. Вернитесь назад и проверьте установленные значения. Если вы хотите продолжить публикацию файла без создания темы для обсуждения, то выберите первое значение в списке разделов на форуме."; После установки модификации в модуль файлов в форме публикации файла появится флажок, разрешающий создать тему поддержки на форуме и выпадающий список с названиями форумов, где можно создать тему поддержки. В теме на форуме присутствует обратная ссылка на источник в портале. В описании файла присутствует ссылка на тему поддержки на форуме. ПРОДОЛЖЕНИЕ УСТАНОВКИ В СЛЕДУЮЩЕМ СООБЩЕНИИ 4. Для установки модификации в модуль статей откройте файл mkportal/modules/reviews/index.php 4.1. Найдите код:function submit_file1() { global $mkportals, $DB, $mklib, $Skin, $mklib_board, $editorscript; 4.2. Замените на код:function submit_file1() { global $mkportals, $DB, $mklib, $Skin, $mklib_board, $editorscript, $MK_BOARD; 4.3. В функции function submit_file1() найдите код:$editorscript = 1; $textarepar = "mce_editable=\"true\""; $textarew = "100%"; $bbeditor= ""; 4.4. Ниже добавьте://add by cybermad post with IPB $fipb = ""; //end add 4.5. В функции function submit_file1() найдите код:if ($mklib->mkeditor == "BBCODE") { $editorscript = ""; $textarepar = ""; $textarew = "75%"; $bbeditor= $mklib->get_bbeditor(); 4.6. Ниже вставьте://add by cybermad post with IPB if($MK_BOARD == "IPB") { $query2 = $DB->query( "SELECT id, name FROM ibf_forums WHERE status = '1' ORDER BY `id`"); while( $forum = $DB->fetch_row($query2) ) { $idforum = $forum['id']; $forum = $forum['name']; $fselect.= "<option value=\"$idforum\">$forum</option>\n"; } $fipb = " <tr> <td width=\"5%\">{$mklib->lang['re_forum']}</td> <td width=\"95%\"> <input type=\"checkbox\" name=\"inaforum\" value=\"1\" /> {$mklib->lang['re_idforum']} <select name=\"forum\" size=\"1\" class=\"bgselect\"> {$fselect} </select> </td> </tr> "; } else { $fipb = ""; } //end add 4.7. В функции function submit_file1() найдите код:<tr> <td width=\"5%\">{$mklib->lang['re_title']}</td> <td width=\"95%\"> <input type=\"text\" name=\"titolo\" size=\"52\" class=\"bgselect\" /> </td> </tr> 4.8. Ниже вставьте:{$fipb} 4.9. Найдите код:function add_file() { global $mkportals, $DB, $_FILES, $mklib, $mklib_board; 4.10 Замените на код:function add_file() { global $mkportals, $DB, $_FILES, $mklib, $mklib_board, $MK_BOARD, $api; 4.11 В функции function add_file() найдите код:if (!$evento || !$title || !$description) { $message = "{$mklib->lang['re_reqtcd']}"; $mklib->error_page($message); exit; } 4.12 Ниже добавьте://add by cybermad for IPB posting if ($mkportals->input['inaforum']==0 && $mkportals->input['forum']>1) { $message = "{$mklib->lang['re_ferror']}"; $mklib->error_page($message); exit; } //end add 4.13 Найдите код:$query="INSERT INTO mkp_reviews(id_cat, title, description, field1, field2, field3, field4, field5, field6, field7, image, review, author, idauth, date, validate)VALUES('$evento', '$title', '$description', '$field1', '$field2', '$field3', '$field4', '$field5', '$field6', '$field7', '$image', '$review', '$author', '$idauth', '$cdata', '$validat')"; $DB->query($query); 4.14. Выше вставьте код://add by cybermad for IPB posting if (($MK_BOARD == "IPB") and ($mklib->mkeditor == "BBCODE")) { $query = $DB->query( "SELECT id FROM mkp_reviews ORDER BY `id`"); while( $row = $DB->fetch_row($query) ) { $idn = $row['id']; $idn++; } $fcategoria= $mkportals->input['forum']; $inaforum = intval($mkportals->input['inaforum']); $message = "{$review}<br><a href=\"$mklib->siteurl/index.php?ind=reviews&op=entry_view&iden=$idn\">{$mklib->lang['re_source']}</a><br><br>"; if($inaforum==1) { $api->set_author_by_id($mkportals->member['id']); $api->set_post_content($message); $api->set_forum_id($fcategoria); $api->set_topic_title($title); $api->set_topic_state('open'); $api->set_topic_invisible(!$validat); $api->create_new_topic(); $tfid = $api->topic['tid']; $hr = "<br><br><a href=\"$mklib->siteurl/$mkportals->forum_url/index.php?showtopic=$tfid\">{$mklib->lang['re_fsource']}</a>"; $review = $mklib->convert_savedb("{$review} {$hr}"); } } //end add 4.15. Откройте файл mkportal/lang/ваш язык/ lang_review.php и найдите код:?> 4.16. Выше добавьте://add by cybermad 05.04.2009 $langmk['re_forum'] = "Добавить тему обсуждения на форум"; $langmk['re_idforum'] = "в раздел:"; $langmk['re_source'] = "<b>Источник</b>"; $langmk['re_fsource'] = "<b>Тема обсуждения на форуме</b>"; $langmk['re_ferror'] = "Внимание, при написании статьи был выбран раздел на форуме для создания темы для обсуждения, но опция создания не была включена. Вернитесь назад и проверьте установленные значения. Если вы хотите продолжить статьи без создания темы для обсуждения, то выберите первое значение в списке разделов на форуме."; После установки модификации в модуль статей при включенном редакторе BBCode в форме публикации статьи появится флажок, разрешающий опубликовать статью на форуме и выпадающий список с названиями форумов, где можно создать тему с анонсом. В теме на форуме присутствует обратная ссылка на источник в портале. В статье присутствует ссылка на тему обсуждения на форуме. Удачи в сайтостроительстве!CybermadСанкт-Петербург. 05 апреля 2009г. Изменено 5 Апреля 2009 пользователем cybermad Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.