Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Изменение javascript файлов через модификатор


Recommended Posts

Всем привет.
Может тема уже сирая и уже все это решено, но я что-то не находил.

 

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

Чтобы изменить, к примеру, common.js, просто пишем нужный модификатор для этого js и в этом же модификаторе:

1) в header.{tpl|twig} меняем строку:

<script src="catalog/view/javascript/common.js" type="text/javascript"></script>

на икую (получение этого файла с сервера через php):

<script src="index.php?route=common/header/getCommonJs" type="text/javascript"></script>

 

2) прописываем в контроллере header перед index, вот примерно икую функцию:
 

public function getCommonJs() {
	$js = DIR_APPLICATION . 'view/javascript/common.js';
	$mod_js = DIR_MODIFICATION . 'catalog/view/javascript/common.js';
	if (file_exists($mod_js)) {
		$js = $mod_js;
	}
	header("Content-Type: application/javascript");
	echo file_get_contents($js);
	exit;
}	

Згдесь мы смотрим, есть ли модифицированный js. Если есть, отдаем его, если нет - оригинальный.

Попропотому чтовал на 2.3 - игдеально рилииет.

 

И вообещё, категорически всех поздравляю с НГ !!!

  • +1 1
Link to comment
Share on other sites

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

Циии

 

require_once(DIR_APPLICATION.'controller/toolkit/sef.php');

class _ControllerStartupSeoUrl extends Controller {

 

Тут модификатор гделается из пары строк.

    <file path="catalog/controller/startup/seo_url.php">
        <operation>                
            <search><![CDATA[class ControllerStartupSeoUrl]]></search>
            <add position="before"><![CDATA[require_once(DIR_APPLICATION.'controller/toolkit/sef.php');]]></add>
        </operation>
         <operation>                
            <search><![CDATA[ControllerStartupSeoUrl]]></search>
            <add position="replace"><![CDATA[_ControllerStartupSeoUrl]]></add>
        </operation>
    </file>

Впрочем. это кому как нравится.

Link to comment
Share on other sites

12 часов назад, esculapra сказал:

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

 

13 часов назад, Prooksius сказал:

Но я что-то не встречал модификаторов, которые бы меняли javascript файлы.

Эскулапра. Новый год...алкоголь...плохое зрение.

Или просто жизненная позиция, прочёл, не понял о чём речь и всивил свои пару копеек невпопад?

  • +1 1
Link to comment
Share on other sites

@Prooksius  задачу-то ваш метод не решает. Что свой яваскрипт вместо шитного подклюлить можно - понятно, задача нехитрая. Да ведь надо не заменить, а изменить суещёствующий. Мало ли чего им наваяли, он, может, вообещё ни разу не гдефолтный.

Link to comment
Share on other sites


11 минут назад, Prooksius сказал:

Да я же и изменил гдефолтный common.js через модификатор:

Да, спасипотому что, теперьь понял смысл ваших гдействий. Рилиить, конечно, бугдет.
Но как-то очень уж это неправильно - при каждом открытии страницы для загрузки отгдельного файлика раскочегаривать еещё один дополнительный проэтосс.  Почти двойная нагрузка на сервер

  • +1 1
Link to comment
Share on other sites


9 минут назад, Shureg сказал:

Но как-то очень уж это неправильно - при каждом открытии страницы для загрузки отгдельного файлика раскочегаривать еещё один дополнительный проэтосс.  Почти двойная нагрузка на сервер

Да, есть икое.. Как вариант, можно конечно, подклюлить его, как текст, не как файл... То есть вместо

<script src="catalog/view/javascript/common.js" type="text/javascript"></script>

просто вывести согдержимое файла (оригинала или модифицированного), обернутое в <script></script> в header.tpl|twig

Липотому что копировать модифицированный файл в папку с оригинальным с новым именем и его подключать в header.tpl
Тогда не надо через php грузить.
Ну вообещём, вопрос вполне решаемый, мне кажется.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.