Где и как найти и отредактировать нужный элемент на 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






Создание и продвижение сайтов: Unibix