Перейти к содержанию

Рекомендуемые сообщения

Доброго дня.

 

Я пытаюсь написать, модификатор (расширение) - дабы не менять файлы темы и админ части.

Вроде получается. но есть пара вопросов

Если искомый текст с пробелами, то он не ищется. Я так понял можно использовать trim - но он ни в true ни в false ни вобще без него все равно не находит нужный кусок кода.

 

Пример

<operation>
        <search><![CDATA[<?php foreach ($categories['manufacturer'] as $manufacturer) {   ?>
			<div class="col-xs-6 col-sm-6 text-center">
				<a href="<?php echo $manufacturer['href']; ?>">
					<img src="/image/<?= $manufacturer['image']; ?>" alt="<?= $manufacturer['name']; ?>" title="<?= $manufacturer['image']; ?>">
				</a>
			</div>
			<?php } ?>]]></search>
        <add position="replace"><![CDATA[<?php foreach ($categories['manufacturer'] as $manufacturer) {   ?>
			<div class="col-xs-6 col-sm-6 text-center">
				<a href="<?php echo $manufacturer['href']; ?>">
					<img src="/image/<?= $manufacturer['image']; ?>" alt="<?= $manufacturer['name']; ?>" title="<?= $manufacturer['image']; ?>"><br/><span><?= $manufacturer['name']; ?></span>
				</a>
			</div>
			<?php } ?>]]></add>
      </operation>

 

Изменено пользователем maxos

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не ищет ocmod сразу несколько строк.

<operation>
        <search><![CDATA[<?php foreach ($categories['manufacturer'] as $manufacturer) {   ?>]]></search>
        <add position="replace" offset="6"><![CDATA[<?php foreach ($categories['manufacturer'] as $manufacturer) {   ?>
			<div class="col-xs-6 col-sm-6 text-center">
				<a href="<?php echo $manufacturer['href']; ?>">
					<img src="/image/<?= $manufacturer['image']; ?>" alt="<?= $manufacturer['name']; ?>" title="<?= $manufacturer['image']; ?>"><br/><span><?= $manufacturer['name']; ?></span>
				</a>
			</div>
			<?php } ?>]]></add>
      </operation>

 

  • +1 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо, я так и сделал, ток before и offset-1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вот только offset сильно ненадежная и сильно чувствительная функция.

Другий модификатор чуть изменит, количество строк изменится и сайт жестко упадет в error 500

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А можно еще вопрос. Я так понял js и css этим не поправить.

 

То есть я так понимаю надо подключить в head свой файл

типа

<operation>
        <search><![CDATA[</head>]]></search>
        <add position="before"><![CDATA[<link свой css>]]></add>
</operation>

Но не совсем понял, как сделать чтобы этот самый CSS заливался.

Я навeрно путаюсь в VMOD и OCMOD

 

Я так понимаю в архиве "myextenstion.ocmod.zip" нужно сделать папку upload и туда вложить файл стилей. Но наверно как то надо путь прописать (как то upload/mymodule/style.css) там куда его заливать. Куда вообще положено заливать файлы стилей модулей (расширений)?

 

вроде сюда
catalog/view/theme/default/stylesheet/mystyle.css

а если тема поменяется. Или дефолтная всегда есть. И путь задать без {THEME} 

Изменено пользователем maxos

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

да пиши в дефолтную. все так делают. 

 

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подключайте в контроллере.Для наглядности посмотрите как в карточку товара добавляются скрипты и стили magnific-popup.

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
53 минуты назад, maxos сказал:

а если тема поменяется. Или дефолтная всегда есть

 

содержимое папки upload (в составе архива ocmod.zip) будет скопировано на сервер

т.е. какие пути/структуру файлам и папкам там пропишите - так и зальет

 

смотрите здесь и далее по ссылкам

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

<img src="/image/<?= $manufacturer['image']; ?>" alt="<?= $manufacturer['name']; ?>" title="<?= $manufacturer['image']; ?>">
<br/>
<span><?= $manufacturer['name']; ?></span>

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

всем спасибо, теперь намного понятнее.

 

Tom - Это просто пример был, там в другом месте проблема была.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Маленькая, проблема, расширение не устанавливается

"Каталог, содержащий файлы для загрузки не может быть найден!"

 

Изменено пользователем maxos

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Архив в архиве?

В вашем случае внутри mxax.ocmod.zip должна быть папка upload и файл install.xml ( а не ocmod который ставится как самостоятельная единица).

 

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ааа, ток заметил что я папку пакую а не файлы. Спасибо еще раз

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Теперь вот

если нажать ок, то зависает на "Применении модификатора"

 

 

Снимок.JPG

Изменено пользователем maxos

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

переименовал install.xml в index.xml и установилось

и поломало сайт

в общем  еще не получается

Изменено пользователем maxos

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Даже не знаю ,что добавить.Одно скажу точно не стоит выдумывать.Ошибка из за отсутствия настроек фтп в админке.

https://github.com/opencart/opencart/wiki/Modification-System

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ftp настроено, другие модули ставятся

Блииин, закрывающий </file> пропустил

все, заработало 

Изменено пользователем maxos

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.