![]() |
![]() |
ВходЗдравствуйте, Гость ( Вход | Регистрация )
|
![]() |
![]()
Сообщение
#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 |
|
|
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 25 April 2025 - 19:46 |