![]() |
![]() |
ВходЗдравствуйте, Гость ( Вход | Регистрация )
|
![]() |
![]()
Сообщение
#1
|
|
Я уже люблю АС ![]() Группа: Пользователи Сообщений: 158 Регистрация: 31.1.2008 Из: Харьков Пользователь №: 2,165 Спасибо сказали: 91 Вставить ник ![]() |
В связи с большим количеством созданных тем по клонированию модулей, решил написать небольшой мануальчик с примерами. Я не поэт, поэтому расписывать красиво не умею. Что будет не понятно, спрашивайте, чем смогу, помогу. Пример буду показывать на клоне модуля Media AntiSlaed_4.2_Mod_by_Sergey_Next.
Ну что же... начнем. 1) Берем модуль media, копируем себе на комп, переименовываем его. Я для примера переименую наш модуль в films. 2) Начинаем редактировать файлы нашего нового модуля. Начнем мы с index.php модуля. Открываем его любым блокнотом, ищем все попадающиеся слова media и заменяем на films. Только не спешим заменять все сразу, чтобы не наизменять лишнего. Все языковые _MEDIA, меняем на _FILMS. Не забудте добавить в lang-russian.php КОД define("_FILMS","Фильмы"); По аналогии правим и index.php админки. Далее открываем links.php админки нашего модуля и заменяем КОД adminmenu($admin_file.".php?op=media", _MEDIA, "media.png"); на КОД adminmenu($admin_file.".php?op=films", _FILMS, "media.png"); 3) Теперь заходим в phpmyadmin, делаем экспорт таблицы ".prefix."_media, меняем название нашей таблицы на ".prefix."_films и добавляем новую таблицу в нашу базу данных. Но для полноценной работы модуля, этого мало. Теперь идем дальше... Чтобы работали комментарии в модуле, нам необходимо открыть admin\modules\comments.php. Находим КОД } elseif ($modul == "media") { $db->sql_query("UPDATE ".$prefix."_media SET totalcom=totalcom-1 WHERE id='$cid'"); и заменяем на КОД } elseif ($modul == "films") { $db->sql_query("UPDATE ".$prefix."_films SET totalcom=totalcom-1 WHERE id='$cid'"); Как видно, изменилось только слово media на films. В разных версиях, запись может отличаться от приведенной мной. Поэтому рекомендую искать не всю запись целиком, а просто по названию модуля media. 4) Далее чтобы работал и в админке была возможность настроить рейтинг нового модуля, нам необходимо отредактировать файл admin\modules\ratings.php Опять же открываем и ещем по названию модуля media. Первое что я нашел КОД $mods = array("account", "faq", "files", "jokes", "links", "media", "news", "pages", "shop"); $lang = array(_ACCOUNT, _FAQ, _FILES, _JOKES, _LINKS, _MEDIA, _NEWS, _PAGES, _SHOP); после того как я добавил сюда и новый модуль, получилось КОД $mods = array("account", "faq", "files", "jokes", "links", "media", "films", "news", "pages", "shop"); $lang = array(_ACCOUNT, _FAQ, _FILES, _JOKES, _LINKS, _MEDIA, _FILMS, _NEWS, _PAGES, _SHOP); Также в этом файле media есть в функции function ratings_save_conf() КОД $mods = array("account", "faq", "files", "jokes", "links", "media", "news", "pages", "shop"); после того как я добавил модуль новый, получилось: КОД $mods = array("account", "faq", "files", "jokes", "links", "media", "films", "news", "pages", "shop"); 5) Чтобы в модуле можно было загружать изображения, открываем файл admin\modules\uploads.php и делаем все по аналогии как в предыдущем шаге. 6) Если в админке необходимо сделать возможность видеть Новые фильмы, недоступные фильмы.. То открываем файл function/admin.php, находим по слову media, копируем функцию... (хз как написать (IMG:http://antislaed.net/style_emoticons/default/smile.gif) ) КОД if (is_active("media") && is_admin_modul("media")) { $num = $db->sql_numrows($db->sql_query("SELECT id FROM ".$prefix."_media WHERE status='0'")); $w_content .= "<tr><td><a href=\"".$admin_file.".php?op=media&status=1\">"._NEWMEDIA."</a>:</td><td>$num</td></tr>"; $num = $db->sql_numrows($db->sql_query("SELECT id FROM ".$prefix."_media WHERE status='2'")); $w_content .= "<tr><td><a href=\"".$admin_file.".php?op=media&status=2\">"._BROCFILES."</a>:</td><td>$num</td></tr>"; } После того как заменили в скопированной функции media на films, получилось КОД if (is_active("films") && is_admin_modul("films")) { $num = $db->sql_numrows($db->sql_query("SELECT id FROM ".$prefix."_films WHERE status='0'")); $w_content .= "<tr><td><a href=\"".$admin_file.".php?op=films&status=1\">"._NEWFILMS."</a>:</td><td>$num</td></tr>"; $num = $db->sql_numrows($db->sql_query("SELECT id FROM ".$prefix."_films WHERE status='2'")); $w_content .= "<tr><td><a href=\"".$admin_file.".php?op=films&status=2\">"._BROCFILES."</a>:</td><td>$num</td></tr>"; } Я думаю смысл действий понятен? дальше по аналогии проделываем тоже самое function/function.php, function/user.php и в папке uploads не забудте создать папку с названием модуля. Ну вот вродебы и все. [hr] Немного освободился, решил дополнить небольшой мануальчик. Теперь сделаем поиск для нашего клонированного модуля. Для этого открываем файл admin\modules\settings.php. Почти всамом низу файла settings.php ищем строку КОД ."\$conf['search'] = \"auto_links,faq,files,jokes,links,media,news,pages,shop\";\n" После добавления сюда названия нашего модуля, получаем КОД ."\$conf['search'] = \"auto_links,faq,files,jokes,links,media,news,pages,shop,films\";\n" Рекомендую добавлять в самый конец, иначе прийдется делать больше телодвижений чтобы заработал поиск в нашем модуле. Сохраняем файл. Далее открываем modules\search\index.php. Находим: КОД $lang = array(_A_LINKS, _FAQ, _FILES, _JOKES, _LINKS, _MEDIA, _NEWS, _PAGES, _SHOP); После добавления названия модуля (добавляем то название, которое указывали в language\lang-russian.php) получаем КОД $lang = array(_A_LINKS, _FAQ, _FILES, _JOKES, _LINKS, _MEDIA, _NEWS, _PAGES, _SHOP, _FILMS); Рекомендую также добавлять в самый конец Теперь в этом же файле, в это же функции чуть ниже ищем модуль media. КОД } elseif ($val == "media") { include("config/config_media.php"); $result = $db->sql_query("SELECT m.id, m.name, m.title, m.subtitle, m.description, m.date, c.id, c.title, u.user_name FROM ".$prefix."_media AS m LEFT JOIN ".$prefix."_categories AS c ON (m.cid=c.id) LEFT JOIN ".$prefix."_users AS u ON (m.uid=u.user_id) WHERE date <= now() AND status!='0' AND (m.title LIKE '%".$word."%' OR m.subtitle LIKE '%".$word."%' OR m.description LIKE '%".$word."%') ORDER BY date DESC"); while (list($id, $uname, $title, $subtitle, $description, $date, $cid, $ctitle, $user_name) = $db->sql_fetchrow($result)) { $defis_dec = urldecode($confm['defis']); $title = ($subtitle) ? $title." $defis_dec ".$subtitle : $title; $atitle = "<a href=\"index.php?name=$val&op=view&id=$id&word=".urlencode($word)."\" title=\"$title\">".search_color($title, $word)."</a>"; $aimg = "<span id=\"cont\"><img src=\"".img_find("all/plus")."\" border=\"0\" align=\"middle\" alt=\""._READMORE."\" title=\""._READMORE."\" id=\"menu".$a."\" onclick=\"SwitchMenu('sub".$a."')\" style=\"cursor:pointer;\"/></span>"; $ahref = "<a href=\"index.php?name=$val&op=view&id=$id&word=".urlencode($word)."\" target=\"_blank\" title=\""._WINDOWNEW."\"><img src=\"".img_find("all/content")."\" border=\"0\" align=\"middle\" alt=\""._WINDOWNEW."\"/></a>"; $text = "<div id=\"sub".$a."\" $display>".search_color(bb_decode($description, $val), $word)."</div>"; $tdate = _DATE.": ".format_time($date); $tmodul = _MODUL.": <a href=\"index.php?name=$val\" title=\"".$lang[5]."\">".$lang[5]."</a>"; $ctitle = (!$ctitle) ? _CATEGORY.": "._NO : _CATEGORY.": <a href=\"index.php?name=$val&cat=$cid\" title=\"".$ctitle."\">".cutstr($ctitle, 15)."</a>"; $author = ($user_name) ? _POSTEDBY.": ".user_info($user_name, 1) : (($uname) ? _POSTEDBY.": ".$uname : _POSTEDBY.": ".$confu['anonym']); $edit = (is_moder($val)) ? ad_edit($admin_file.".php?op=media_add&id=".$id) : ""; $conts[] = array($id, $atitle, $aimg, $ahref, $edit, $text, $tdate, $tmodul, $ctitle, $author, ""); $a++; } Копируем этот код и вставляем после самого последнего модуля (не забываем переименовать media на films), у меня самым последним модулем идет shop. В результате получем: КОД } elseif ($val == "shop") { $result = $db->sql_query("SELECT p.product_id, p.product_time, p.product_title, p.product_text, p.product_desc, c.id, c.title FROM ".$prefix."_products AS p LEFT JOIN ".$prefix."_categories AS c ON (p.product_cid=c.id) WHERE product_time <= now() AND product_active='1' AND (p.product_title LIKE '%".$word."%' OR p.product_text LIKE '%".$word."%' OR p.product_desc LIKE '%".$word."%') ORDER BY product_time DESC"); while (list($id, $date, $title, $hometext, $bodytext, $cid, $ctitle) = $db->sql_fetchrow($result)) { $atitle = "<a href=\"index.php?name=$val&op=view&id=$id&word=".urlencode($word)."\" title=\"$title\">".search_color($title, $word)."</a>"; $description = ($bodytext) ? $hometext."<br/><br/>".$bodytext : $hometext; $aimg = "<span id=\"cont\"><img src=\"".img_find("all/plus")."\" border=\"0\" align=\"middle\" alt=\""._READMORE."\" title=\""._READMORE."\" id=\"menu".$a."\" onclick=\"SwitchMenu('sub".$a."')\" style=\"cursor:pointer;\"/></span>"; $ahref = "<a href=\"index.php?name=$val&op=view&id=$id&word=".urlencode($word)."\" target=\"_blank\" title=\""._WINDOWNEW."\"><img src=\"".img_find("all/content")."\" border=\"0\" align=\"middle\" alt=\""._WINDOWNEW."\"/></a>"; $text = "<div id=\"sub".$a."\" $display>".search_color(bb_decode($description, $val), $word)."</div>"; $tdate = _DATE.": ".format_time($date); $tmodul = _MODUL.": <a href=\"index.php?name=$val\" title=\"".$lang[8]."\">".$lang[8]."</a>"; $ctitle = (!$ctitle) ? _CATEGORY.": "._NO : _CATEGORY.": <a href=\"index.php?name=$val&cat=$cid\" title=\"".$ctitle."\">".cutstr($ctitle, 15)."</a>"; $edit = (is_moder($val)) ? ad_edit($admin_file.".php?op=shop_add_products&id=".$id) : ""; $conts[] = array($id, $atitle, $aimg, $ahref, $edit, $text, $tdate, $tmodul, $ctitle, "", ""); $a++; } } elseif ($val == "films") { include("config/config_films.php"); $result = $db->sql_query("SELECT m.id, m.name, m.title, m.subtitle, m.description, m.date, c.id, c.title, u.user_name FROM ".$prefix."_films AS m LEFT JOIN ".$prefix."_categories AS c ON (m.cid=c.id) LEFT JOIN ".$prefix."_users AS u ON (m.uid=u.user_id) WHERE date <= now() AND status!='0' AND (m.title LIKE '%".$word."%' OR m.subtitle LIKE '%".$word."%' OR m.description LIKE '%".$word."%') ORDER BY date DESC"); while (list($id, $uname, $title, $subtitle, $description, $date, $cid, $ctitle, $user_name) = $db->sql_fetchrow($result)) { $defis_dec = urldecode($confm['defis']); $title = ($subtitle) ? $title." $defis_dec ".$subtitle : $title; $atitle = "<a href=\"index.php?name=$val&op=view&id=$id&word=".urlencode($word)."\" title=\"$title\">".search_color($title, $word)."</a>"; $aimg = "<span id=\"cont\"><img src=\"".img_find("all/plus")."\" border=\"0\" align=\"middle\" alt=\""._READMORE."\" title=\""._READMORE."\" id=\"menu".$a."\" onclick=\"SwitchMenu('sub".$a."')\" style=\"cursor:pointer;\"/></span>"; $ahref = "<a href=\"index.php?name=$val&op=view&id=$id&word=".urlencode($word)."\" target=\"_blank\" title=\""._WINDOWNEW."\"><img src=\"".img_find("all/content")."\" border=\"0\" align=\"middle\" alt=\""._WINDOWNEW."\"/></a>"; $text = "<div id=\"sub".$a."\" $display>".search_color(bb_decode($description, $val), $word)."</div>"; $tdate = _DATE.": ".format_time($date); [b]$tmodul = _MODUL.": <a href=\"index.php?name=$val\" title=\"".$lang[9]."\">".$lang[9]."</a>";[/b] $ctitle = (!$ctitle) ? _CATEGORY.": "._NO : _CATEGORY.": <a href=\"index.php?name=$val&cat=$cid\" title=\"".$ctitle."\">".cutstr($ctitle, 15)."</a>"; $author = ($user_name) ? _POSTEDBY.": ".user_info($user_name, 1) : (($uname) ? _POSTEDBY.": ".$uname : _POSTEDBY.": ".$confu['anonym']); $edit = (is_moder($val)) ? ad_edit($admin_file.".php?op=media_add&id=".$id) : ""; $conts[] = array($id, $atitle, $aimg, $ahref, $edit, $text, $tdate, $tmodul, $ctitle, $author, ""); $a++; } } } } $offset = ($num - 1) * $conf['searchnum']; Я для большей наглядности привел больший участок кода. Также обратите внимание на строку выделенную жирным. $lang[9] вам необходимо указать в зависимости от того каким по счету идет клонированный модуль. Счет начинается с $lang[0]. Под таким числом у вас должно везде быть вставлено название модуля (с места где я начал описывать как сделать поиск для клонированного модуля.) И поэтому я писал что рекомендую ставить название модуля в конец. Если же Вы решите убратькакие-то модули (мало ли просто мешать будут, то вам нужно будет убрать их названия везде, и изменить у всех модулей $lang[какое-то число]). Теперь сохраняем файл. Вот и все, ничего сложного нету. ПЕРЕД ИЗМЕНЕНИЕМ ФАЙЛОВ, СДЕЛАЙТЕ РЕЗЕРВНУЮ КОПИЮ! ЧТОБЫ ПОТОМ НЕ ПИСАЛИ ХЕЛП СРОЧНО САЙТ НЕ РАБОТАЕТ PS. Админы и модераторы, если посчитаете нужным, сделайте тему важной, чтобы проще было найти ответ пользователям. Если где-то сделал грубые ошибки, уж извеняйте, устал сильно, голова не соображает (IMG:http://antislaed.net/style_emoticons/default/smile.gif) Сообщение отредактировал MrSmit: Jan 9 2009, 22:07 |
|
|
![]() |
![]()
Сообщение
#2
|
|
Приблуда ![]() Группа: Пользователи Сообщений: 20 Регистрация: 4.5.2008 Пользователь №: 3,598 Спасибо сказали: 0 Вставить ник ![]() |
Не работает поиск в версии 4.1 все сделал, так как написано, но в поиске не отображается модуль (IMG:http://antislaed.net/style_emoticons/default/sad.gif)
|
|
|
![]() ![]()
Сообщение
#3
|
|
Приблуда ![]() Группа: Пользователи Сообщений: 29 Регистрация: 23.6.2007 Из: Russia, Tula, Chulkovo Пользователь №: 219 Спасибо сказали: 9 Вставить ник ![]() |
Не работает поиск в версии 4.1 все сделал, так как написано, но в поиске не отображается модуль (IMG:http://antislaed.net/style_emoticons/default/sad.gif) "...как написано,..." где написано??? В самом начале поста написано, как добавлять в ПОИСК... Вы это делали? ================================================= Повторяю на своём примере: открываем файл admin\modules\settings.php КОД # После слова 'shop' добавляем названия клонированных модулей: ."\$conf['search'] = \"auto_links,faq,files,jokes,links,media,news,pages,shop,biografia,detskie,ero tic,films,games,estrada,national,raznoe,shanson,softaudio,softgrafic,softinterne t ,softmobile,softsatellite,softsystem,softutility,softvideo,softwebdesign,voennye , clubmusic\";\n" Теперь открываем modules\search\index.php КОД # После ' _SHOP' вставляем наши названия клонированных модулей: $lang = array(_A_LINKS, _FAQ, _FILES, _JOKES, _LINKS, _MEDIA, _NEWS, _PAGES, _SHOP, _BIOGRAFIA, _DETSKIE, _EROTIC, _FILMS, _GAMES, _ESTRADA, _NATIONAL, _RAZNOE, _SHANSON, _SOFTAUDIO, _SOFTGRAFIC, _SOFTINTERNET, _SOFTMOBILE, _SOFTSATELLITE, _SOFTSYSTEM, _SOFTUTILITY, _SOFTVIDEO, _SOFTWEBDESIGN, _VOENNYE, _CLUBMUSIC); Ниже находим блок, нащинающийся с } elseif ($val == "shop") { и после него вставляем наши клонированные КОД # Далее вставляем наши названия модулей и продлеваем нумерацию ".$lang[8]." на ".$lang[9]." и так далее... } elseif ($val == "biografia") { $result = $db->sql_query("SELECT p.pid, p.name, p.title, p.time, p.hometext, p.bodytext, c.id, c.title, u.user_name FROM ".$prefix."_biografia AS p LEFT JOIN ".$prefix."_categories AS c ON (p.catid=c.id) LEFT JOIN ".$prefix."_users AS u ON (p.uid=u.user_id) WHERE time <= now() AND status!='0' AND (p.title LIKE '%".$word."%' OR p.hometext LIKE '%".$word."%' OR p.bodytext LIKE '%".$word."%') ORDER BY time DESC"); while (list($id, $uname, $title, $date, $hometext, $bodytext, $cid, $ctitle, $user_name) = $db->sql_fetchrow($result)) { $atitle = "<a href=\"index.php?name=$val&op=view&id=$id&word=".urlencode($word)."\" title=\"$title\">".search_color($title, $word)."</a>"; $description = ($bodytext) ? "".$hometext."<br /><br />".$bodytext."" : $hometext; $aimg = "<span id=\"cont\"><img src=\"".img_find("all/plus")."\" border=\"0\" align=\"center\" alt=\""._READMORE."\" title=\""._READMORE."\" id=\"menu".$a."\" OnClick=\"SwitchMenu('sub".$a."')\" style=\"cursor:pointer;\"></span>"; $ahref = "<a href=\"index.php?name=$val&op=view&id=$id&word=".urlencode($word)."\" target=\"_blank\" title=\""._WINDOWNEW."\"><img src=\"".img_find("all/content")."\" border=\"0\" align=\"center\" alt=\""._WINDOWNEW."\"></a>"; $text = "<div id=\"sub".$a."\" $display>".search_color(bb_decode($description, $val), $word)."</div>"; $tdate = ""._DATE.": ".format_time($date).""; $tmodul = ""._MODUL.": <a href=\"index.php?name=$val\" title=\"".$lang[9]."\">".$lang[9]."</a>"; $ctitle = (!$ctitle) ? ""._CATEGORY.": "._NO."" : ""._CATEGORY.": <a href=\"index.php?name=$val&cat=$cid\" title=\"".$ctitle."\">".cutstr($ctitle, 15)."</a>"; $author = ($user_name) ? ""._POSTEDBY.": ".user_info($user_name, 1)."" : (($uname) ? ""._POSTEDBY.": ".$uname."" : ""._POSTEDBY.": ".$confu['anonym'].""); $edit = (is_moder($val)) ? "".ad_edit("".$admin_file.".php?op=biografia_add&id=".$id."")."" : ""; $conts[] = array($id, $atitle, $aimg, $ahref, $edit, $text, $tdate, $tmodul, $ctitle, $author, ""); $a++; } Наверное мне проще будет все выложить у себя на Форуме в течение этой недели. (смотри подпись) ============================================================================= petrnet64 Cпасибо огромное! Работает все отлично, но одно но, когда пытаюсь добавить, допустим, какую-нибудь статью - не добовляется. В чем может быть проблема? Статья не добавляется откуда - через админку или с общего сайта? Дайте в личку адрес сайта... Сообщение отредактировал petrnet64: Jul 30 2009, 07:30 |
|
|
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 12 May 2025 - 07:11 |