Заменяем название компонента, url и т.д. на примере FAQ

+18
4.89K
Приветствую всех! Понадобилось мне изменить название компонента (полностью, в т.ч. url), сохранив при этом весь его функционал. Расскажу на примере компонента FAQ, т.к. именно он мне и был нужен.
Я, как и многие, искал наиболее простой путь, но пришел к самому длительному и кропотливому. Весь процесс сводится к переименованию файлов, поэтому настоятельно рекомендую

сделать бэкап файлов и БД!

Итак, открываем файлы, ищем и заменяем слово faq на book (к примеру), по-порядку:
admin/components/faq переименовываем папку на book
admin/components/book/backend.php
admin/applets/main.php здесь менял, чтобы в админке, в колонке "Контент сайта" появлялась инфа о новых вопросах.
admin/includes/cp.php здесь для корректного отображения компонента в админке
components/faq переименовываем папку на book
components/book/js/common.js
components/book/frontend.php здесь стоит соблюдать регистр, т.к. языковые файлы написаны в верхнем регистре, например, $_LANG['BOOK']
components/book/model.php
components/book/psearch.php тоже самое с регистрами, языковые в верхнем
components/book/router.php
languages/ru/components/faq переименовываем файл на book
languages/ru/components/book делаем замену в языковом файле, т.к. далее замена будет в шаблоне
templates/ваш шаблон/components переименовываем нужные файлы с faq на book, открывем их и делаем замену там, не забывая про языковые файлы и их верхний регистр
templates/ваш шаблон/css/styles.css также замена нужных стилей с faq на book

Также необходимо сделать замену в БД. Там я правил (переименовывал) таблицы самого компонета FAQ, вносил изменения в cms_components, cms_comments (для корректной работы комментариев) и cms_action (для отбражения событий faq).

Вроде все. В итоге получаем полностью переименованный компонент, а в адресной строке вместо mysite.ru/faq теперь mysite.ru/book. Тоже самое надо проделать с модулями.

Кстати, таким вот образом делается клон компонента с добавлением еще кое-каких манипуляций.

Не забывайте

делать бэкап файлов и БД!

и лучше всего эксперементировать на локальном хосте. Удачи

P.S. пользовался программой FrontPage от майкрософт. в ней есть функция "найти и заменить". так дело быстрее идет
+1
Darik Darik 12 лет назад #
много работы) а так нужный хак
0
PrazdNik PrazdNik 12 лет назад #
на самом деле, если внимательно делать, то работы не много. Поиск и автозамена делает свое дело быстро
0
Alexneva Alexneva 12 лет назад #
Не везде, к сожалению это срабатывает. Например, в клубах. Отваливаются фотоальбомы и блоги переименованного клуба. Стену и комментарии удалось "приживить".
+1
PrazdNik PrazdNik 12 лет назад #
если правите клубы или подобные компоненты, значит надо делать замену и в других, касающихся компонентах. Т.е. в вашем случае в фотоальбомах и блогах...надо чтобы они тоже "видели" измененные клубы. Здесь все взаимосвязано
0
WALTERZ WALTERZ 12 лет назад #
Не у всех компонентов такая структура, также может понадобится переименовывать некоторые переменные.
Используйте freecommander например, поиск по тексту в файлах Вам поможет
0
Нил™ Нил™ 11 лет назад #
Пригодилось, как раз поменять все это в faq. Большое спасибо! Буду пробовать))

Еще от автора

Слайдер новых объектов InstantMaps
Приветствую, друзья! Хочу поделиться простеньким слайдером для вывода новых объектов мапса.
Универсальный шаблон для InstantCMS v1.10 (платный)
Приветствую, друзья! Представляю вашему вниманию универсальный шаблон для InstantCMS v1.10. Подойдет для сайта почти любой тематики.
Ограничение количества символов со счетчиком при вводе текста.
Приветствую всех! Понадобилось на одном проекте ограничить количество вводимых символов в текстовом поле и вывести счетчик оставшихся букв.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.