Глобальная замена слов

 
Посетитель
no avatar
Медаль
Сообщений: 286
Добрый день!
Подскажите, пожалуйста, в каком файле лучше править, чтобы произвести глобальную замену слова? И еще лучше, чтобы при обновлениях системы максимально обезопасить себя от того, что все поломается.
Строю сайты
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 2958
vladimird:

Добрый день!
Подскажите, пожалуйста, в каком файле лучше править, чтобы произвести глобальную замену слова? И еще лучше, чтобы при обновлениях системы максимально обезопасить себя от того, что все поломается.

смотря какого слова
Реклама
cms
Посетитель
no avatar
Медаль
Сообщений: 286
а в чем разница?
Допустим слово будет такое : GOROD_IMENITELNYY_PADEZH
Допустим я его вставил в описание категории, в СЕО и т.д.
Теперь хочу его везде заменить на нужно мне слово: Москва
Строю сайты
Посетитель
small user social cms
Медаль
Сообщений: 353
Если, конечно, я вас правильно понял, то есть такой метод.
Вы можете создать свой языковой файл и подключать его где угодно, используя данный метод.
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 3060
на сайте
vladimird:
а в чем разница?
А разница в том, где это слово хранится. В файлах или в базе данных.
Посетитель
no avatar
Медаль
Сообщений: 286
Ris:

vladimird:
а в чем разница?
А разница в том, где это слово хранится. В файлах или в базе данных.

Теперь понял о чем вы. Видимо побольшей части данные то в базе, но могут, бать наверное и шаблоне, то есть в файлах. Но я не хочу это разово менять. Я хочу заменять слово каждый раз при формировании какой-либо страницы. Перед тем как показать страницу конечному пользователю в браузер хочется заменить нужное слово, например реплэйсом. Сейчас я для корреткировки некоторых данных, например, на странице вывода записи делаю замену некторых данных с помощью соответствующего хука. Так же и на странице категорий, например СЕО на лету меняю. Но я не нашел пока общей точки входа, где можно было бы абсолютно весь контент перед выводом в браузер проверить и сделать замены соответствующие.

Можете подсказать такую "общую точку входа/выхода" перед отображением страницы в браузер?
Редактировалось: 1 раз (Последний: 23 января 2020 в 14:30)
Строю сайты
Посетитель
no avatar
Медаль
Сообщений: 286
@IamB:

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

Благадорю, с этим точно покопаюсь, будет полезным. Частично может спасти.
Строю сайты
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 3060
на сайте
vladimird,
Вы просите помочь, но не сообщаете практически никаких данных.
Помочь вам с таким подходом будет очень трудно.
Найдите таблицу с категориями вашего типа контента. Допустим, это статьи.
Тогда ищем, в каком столбце таблицы cms_articles_cats находятся ваши волшебные слова GOROD_IMENITELNYY_PADEZH.
Допустим, что в столбце seo_desc.
Тогда поменять массово на "Москва" можно таким sql запросом в базу:
Код PHP:
  1. UPDATE cms_articles_cats SET seo_desc = REPLACE(seo_desc, 'GOROD_IMENITELNYY_PADEZH', 'Москва');
Посетитель
no avatar
Медаль
Сообщений: 286
Ris:

vladimird,
Вы просите помочь, но не сообщаете практически никаких данных.
Помочь вам с таким подходом будет очень трудно.
Найдите таблицу с категориями вашего типа контента. Допустим, это статьи.
Тогда ищем, в каком столбце таблицы cms_articles_cats находятся ваши волшебные слова GOROD_IMENITELNYY_PADEZH.
Допустим, что в столбце seo_desc.
Тогда поменять массово на "Москва" можно таким sql запросом в базу:
Код PHP:
  1. UPDATE cms_articles_cats SET seo_desc = REPLACE(seo_desc, 'GOROD_IMENITELNYY_PADEZH', 'Москва');

Мне нужно в целом по сайту. Я не знаю как правильно выразить свою мысли. Апдейты я умею делать. Это не проблема для меня. Но мне не нужно разово. Мне как раз таки нужно на постоянной основе динамически.
выше написал : "Я хочу заменять слово каждый раз при формировании какой-либо страницы. Перед тем как показать страницу конечному пользователю в браузер хочется заменить нужное слово, например реплэйсом.".
то есть реплейсом в php. не в базе данных.
Строю сайты
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 3060
на сайте
Поищите в паке /system/languages/ может там есть ваше слово.
Посетитель
small user social cms
Медаль
Сообщений: 353
Ris, если движок использует для вывода страницы буферизацию вывода, то простейшая схема работы может выглядеть так
Код PHP:
  1.  
  2. <?php
  3. // работа движка
  4.  
  5.  
  6. // происходит вывод шаблона
  7. // когда все выводы из шаблона завершены в буфере содержится готовая
  8. // к отправке в браузер страница
  9.  
  10. $out = ob_get_contents();
  11. $out = str_replace("GOROD_IMENITELNYY_PADEZH", "Москва", $out);
  12.  
  13. // передача заголовков
  14. echo $out;
  15.  
Но не могу найти место в движке, где готовая страница отдаётся браузеру.
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 3060
на сайте
@IamB:
Но не могу найти место в движке, где готовая страница отдаётся браузеру.
Каждый из файлов шаблона отдает в браузер свой кусок html.
А располагает их по блокам на странице главный файл шаблона \templates\default\main.tpl.php
Посетитель
small user social cms
Медаль
Сообщений: 353
vladimird, попробуйте изменить файл \templates\default\main.tpl.php так:
Код PHP:
  1.  
  2. <?php ob_start(); ?>
  3. // Тут содержимое исходного файла \templates\default\main.tpl.php
  4. <?php
  5. $out = ob_get_contents();
  6. $out = str_replace(["Новости", "выставочный"], ["News", "никакой"], $out);
  7. echo $out;
  8. ?>
  9.  
Посетитель
no avatar
Медаль
Сообщений: 286
@IamB:

... попробуйте изменить файл \templates\default\main.tpl.php так:
...

Знаете кто вы? Вы гений! Это работает. Ура!!!
Строю сайты
Посетитель
small user social cms
Медаль
Сообщений: 353
vladimird, ну это навряд ли. Где бы мы были, если бы Ris нам не помог?
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.