perevod22.ru

Форум партнерской программы
Текущее время: 04 янв 2026, 22:21

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу Пред.  1, 2
Автор Сообщение
СообщениеДобавлено: 06 янв 2019, 17:41 
Не в сети
Администратор

Зарегистрирован: 12 дек 2008, 01:50
Сообщения: 2486
Ну, это командная строка linux. Она перебирает все файлы в каталоге /path/to/shop/products/html/ и меняет code_old на code_new

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


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 06 янв 2019, 17:50 
Не в сети

Зарегистрирован: 22 июл 2012, 13:08
Сообщения: 374
а для пользователей винды есть решение?


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 06 янв 2019, 19:45 
Не в сети
Администратор

Зарегистрирован: 12 дек 2008, 01:50
Сообщения: 2486
Ну, чего-то там гуглится - https://www.google.com/search?q=windows+replace+text+in+files

В любом случае всегда остается запасным вариантом cygwin, понимаю, что из пушки по воробьям, но как крайний и 100% работающий вариант

В любом случае это проще и быстрее, чем работа программиста


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 02 мар 2025, 17:47 
Не в сети

Зарегистрирован: 17 сен 2021, 17:23
Сообщения: 214
Здравствуйте, подскажите почему код этот работает только на главной странице, если я его вставляю в страницу товаров или в любую другую, он не работает, не отображаются товары? Что нужно дописать чтобы работал на странице товаров?


<div class="items-list">
<TMPL_IF NAME='products'>
<TMPL_LOOP NAME='products'>
<TMPL_IF NAME="bestseller">
<TMPL_INCLUDE FILE="_item.tmpl" MODE="INLINE">
</TMPL_IF>
</TMPL_LOOP>
</TMPL_IF>
</div>


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 02 мар 2025, 20:50 
Не в сети
Поддержка партнеров
Аватара пользователя

Зарегистрирован: 13 май 2024, 13:47
Сообщения: 176
Блок не работает потому что он отображает товары из массива products. PHP код главной страницы передает в шаблон этот массив, а на других страницах этот массив в шаблон не передается, просто незачем.

Для того, чтобы этот код заработал на карточках товаров необходимо в файл /custom/hooks.php добавить следующий код:
Код:
function onProductDisplay($code, $tmpl) {
  $tmpl->setLoop('products', getProductsArray());
}
Но, в данном случае это не совсем оптимальный подход. Тут получается, что выбираются вообще все товары магазина и всем скопом передаются в шаблон, и уже в самом шаблоне осуществляется фильтрация при помощи TMPL_IF в результате которой вводятся лишь товары имеющие ненулевую ноду bestseller.

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

А вот в данном случае лучше для массива products сразу отбирать товары с нодой bestseller при помощи xpath, вот так:
Код:
function onProductDisplay($code, $tmpl) {
  $tmpl->setLoop('products', getProductsArray("//product[bestseller=1]"));
}
И, тогда TMPL_IF в шаблоне становится не нужен:
Код:
<div class="items-list">
  <TMPL_IF NAME='products'>
    <TMPL_LOOP NAME='products'>
      <TMPL_INCLUDE FILE="_item.tmpl" MODE="INLINE">
    </TMPL_LOOP>
  </TMPL_IF>
</div>

P.S. Ваш вопрос очень сильно перекликается вот с этой темой. Почитайте и ее тоже. Вероятно, найдете для себя что-то полезное.


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 02 мар 2025, 23:06 
Не в сети

Зарегистрирован: 17 сен 2021, 17:23
Сообщения: 214
gadget писал(а):
Блок не работает потому что он отображает товары из массива products. PHP код главной страницы передает в шаблон этот массив, а на других страницах этот массив в шаблон не передается, просто незачем.

Для того, чтобы этот код заработал на карточках товаров необходимо в файл /custom/hooks.php добавить следующий код:
Код:
function onProductDisplay($code, $tmpl) {
  $tmpl->setLoop('products', getProductsArray());
}
Но, в данном случае это не совсем оптимальный подход. Тут получается, что выбираются вообще все товары магазина и всем скопом передаются в шаблон, и уже в самом шаблоне осуществляется фильтрация при помощи TMPL_IF в результате которой вводятся лишь товары имеющие ненулевую ноду bestseller.

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

А вот в данном случае лучше для массива products сразу отбирать товары с нодой bestseller при помощи xpath, вот так:
Код:
function onProductDisplay($code, $tmpl) {
  $tmpl->setLoop('products', getProductsArray("//product[bestseller=1]"));
}
И, тогда TMPL_IF в шаблоне становится не нужен:
Код:
<div class="items-list">
  <TMPL_IF NAME='products'>
    <TMPL_LOOP NAME='products'>
      <TMPL_INCLUDE FILE="_item.tmpl" MODE="INLINE">
    </TMPL_LOOP>
  </TMPL_IF>
</div>

P.S. Ваш вопрос очень сильно перекликается вот с этой темой. Почитайте и ее тоже. Вероятно, найдете для себя что-то полезное.


Спасибо, буду разбираться.


Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB