Добрый день. Возможно, заголовок звучит странно, но он отражает всю суть) Возникла странная ситуация. После того, как я установил пару расширений (модификаторы/modifications) контроллер хедера (catalog/controller/common/header.php) стал зависеть от них таким образом: если этот контроллер изменить, то его изменения (хоть die() в самом начале) никак не отражаются, пока модификаторы не обновить (страница в админке route=extension/modification). после этого кэш где-то очищается. и так, я заметил, только с header.php. например с footer.php (или home.php) такого нет. и такого не было раньше - до того, как установил модификаторы. Какая между ними связь? p.s. заметил. кэшируется вот сюда www\system\storage\modification\catalog\controller\common\header.php и он заменяется оттуда сюда, когда Refresh в модификаторах но зачем?
Модификатор служит для изменений функционала файлов движка. Новая копия измененных файлов лежит в папке system\storage\modification. Модификатор нужен для того чтоб внесенные изменения не потерялись при последующих обновлениях версий движка. Движок сначала загружает именно эти копии и потом остальные файлы из своих папок если они отсутствуют в папке модификейшен. Так что если вы хоть удалите родной файл из своей папки, но его копия будет существовать в модификейшен, то будет работать последний. При обновлении Кеша модификаторов срабатывают модификаторы и создаются копии родных файлов на которые они влияют. Как то сумбурно объяснил, но надеюсь суть станет ясна... В интернете и на этом форуме есть инструкции по типу: открыть файл такой-то, найти такую-то строку, и добавить после или до или изменить такой-то код. Так вот хороший разработчик делает модификатор с этими инструкциями и не вносит изменения напрямую. Многие до сих пор сидят на старых версиях именно по этой причине так как лень в свое время было сделать файл модификатора. И теперь они заложники этих изменений, которые не были в свое время правильно оформлены.
Спасибо. Я в целом понял. Но я не понял, как мне работать с ними самому. Ведь при обновлении (Refresh) в админке на странице модификаторов - файлы обновляются - переносятся допустим из catalog\controller\common\header.php в www\system\storage\modification\catalog\controller\common\header.php Как же я смогу сделать изменения таким образом, чтобы они не потерялись и при обновлении движка и при этом не терялись, когда делается refresh в админке на странице модификаторов?
Если бы вы поняли что такое модификатор и как он работает, не задавали бы этот вопрос. Прямой ответ: сделать изменения через модификатор
Начинаю понимать)) Еще уточнение: у меня изменения во многих контроллерах (по самым разным причинам). Мне все изменения всех контроллеров можно объединить в один модификатор?
еще уточняющие вопросы) - туда нужно добавлять изменения контроллеров, модели и файлов system (если такие есть)? - обязательно ли использовать xml для замены отдельных строк. можно ли просто помещать целиком измененные файлы туда?