Где и как найти и отредактировать нужный элемент на UserCMS





Шаг 1: определить тему сайта



Для этого в админке смотрим страницу настройки



Шаг 2: определить компонент текущей страницы

Если это админка(бэкенд)

то все проще, смотрим урл и в нем есть название компонента, если главная то компонент Pages.

К примеру: если урл такой /admin/pages/add, то компонент "pages" и экшн add. Понятное дело начало "admin" - мы отбрасываем, это и означает что мы в админке.

К примеру: если урл такой /admin/menus_manager, то компонент menus_manager и экшн index.



Если мы во фронтенде

, то все несколько иначе, поскольку в админке урл точно соответствует компоненту, то во фронтенде - компонент gallery может быть активирован на урл: /photos

Поэтому мы тоже сначала смотрим урл и находим соответствующий урл на главной в админке в списке активированных компонентов, если такого урла там нет, значит компонент PAGES, в том числе и для главной страницы.

К примеру: если урл такой

/download

, то компонент pages, поскольку ни один компонент на такой урл не активирован, но зато есть обычная страница на таком урле.



Для понимания рассмотрим скриншот:





Фактически по данному скриншоту ясно, что если страница не начинается на forum, map, novosti, theme, galereya то значит сейчас запущен компонент Pages.

К примеру для страниц которые начинаются на novosti или novosti/2017 то вызывается компонент news



Теперь важно понять

где лежит файл компонента

(хотя возможно его мы и трогать не будем, но знать нужно).

Как мы определили название компонента, значит мы можем найти и его контроллер, то есть где есть основной код и логика модуля.

Файл находится по адресу:

/modules/components/front_end/имя_компонента/controller_component_имя_компонента.php

то есть если компонент news, то его контроллер

/modules/components/front_end/news/controller_component_news.php



Как вариант если этот файл пустой, то значит он в ядре находится, поэтому просто спереди добавляем user_cms

/user_cms/modules/components/front_end/news/controller_component_news.php







Шаг 3: определяем файл темы



По умолчанию файл темы: index.tpl, так и будет в 99% случаев.

То есть файл темы



/themes/имя_темы/index.tpl



а если тема из ядра (их всего две: default или default_admin), файл темы тут (как обычно приставка user_cms):



/user_cms/themes/имя_темы/index.tpl


Но файл темы можно изменить

, чаще всего это делается если компонент Pages

, для этого нужно на странице редактирования страницы открыть вкладку вид и посмотреть поле: файл темы, периодически бывает для главной создают другой файл темы

, например main.tpl
соответственно он находится по адресу:



/themes/имя_темы/main.tpl



Шаг 4: открываем файл темы



Определили файл темы, открываем его.

И ищем нужный нам элемент, который мы хотим отредактировать.

К примеру нам нужно поменять телефон в шапке, чаще всего он в файле темы, поэтому мы его с легкостью и меняем в самой теме, также периодически меню сайта (боковое или вернее) тоже может быть в теме, их мы тоже меняем прям тут, или даже с помощью компонента: Менеджер тем, откройте его и поймете что к чему.





Шаг 5: Редактирование компонента





что если наш код очутился вдруг не в теме, а по логике вещей генерируется вместо такого кода (который мы увидели в теме) : [ component ]

Вот тут то нам и понадобится знать расположение компонента (см. Шаг 2), также где расположен контроллер компонента есть папка views, там html код, обычно он и нужен.

если править надо PHP код, то открывайте контроллер и ищите нужный экшен.









Шаг 6: Редактирование блока





что если наш код очутился вдруг не в теме, а по логике вещей генерируется вместо такого кода (который мы увидели в теме) : [ position=left_side ]

Вот тут то нам и понадобится знать расположение блока (см. Шаг 2), аналогичная логика как с компонентами, только в папке blocks

Только нужно узнать какой блок активирован в данной позиции, для этого открываем страницу Модули (в админке) и смотрим блоки, которые активированы в данной позиции (из примера выше, позиция у нас left_side).

Если в данной позиции активировано несколько блоков, то их можно поменять местами (используя стрелочки в столбце Порядок загрузки) и таким образом понять в каком блоке наш элемент.

Название блока узнаем при наведении на текст block в столбце тип, в нашем случае вывелось слово "menu", то есть у нас блок menu, соответственно он (по аналогии с компонентами) находится тут:



/modules/blocks/

menu

/controller_block_

menu

.php

или в ядре

/user_cms/modules/blocks/

menu

/controller_block_

menu

.php



Шаг 6: Редактирование плагина





что если наш код очутился вдруг не в теме, а по логике вещей генерируется вместо такого кода (который мы увидели в теме) : { plugin:feedback=43 }

Вот тут то нам и понадобится знать расположение плагина (см. Шаг 2 или шаг 6), аналогичная логика как с блоками, только в папке plugins

Понять какой это плагин легко, его имя (папка) между двоеточием и знаком равно, то есть в нашем случае плагин feedback.



Соответственно он (по аналогии с блоками) находится тут:



/modules/plugins/

feedback

/controller_plugin_

feedback

.php

или в ядре

/user_cms/modules/plugins/

feedback

/controller_plugin_

feedback

.php





Шаг 7: Редактирование аддонов или хелперов



Аддоны и хелперы редко приходится редактировать (изменять), аддоны находятся в папке addons (кэп!!), понять какие в данный момент аддоны запущены можно открыв страницу Модули.

Хелперы всегда вызываются из контроллеров, находятся они в папке /user_cms/helpers/, пользовательские хелперы тут: /modules/helpers/



Шаг 7: Редактирование ядра


Бывает нужно и ядро отредактировать.

В юзерцмс есть три файла которые друг друга наследуют:

1. пользовательский (самый последний) - /modules/core.php, он наследуюется с ядра сборки

2. ядро сборки (например версия usercms для работы с MySQL), находится тут: /user_cms/user_cms_core_edition.php, оно наследуется с главного ядра

3. главное ядро /user_cms/user_cms_core.php, в нем весь смак!





Конечно когда вы понимаете

схему работы ядра и порядок запуска модулей

.









Видеоурок по теме смотреть на Ютуб -

как найти и отредактировать любой элемент на сайте Usercms