Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Как правильно вставить код в header


Recommended Posts

Нужно сделать так чтоб css стили загружались только на 1-2 стр

пробовал разместить вот такой код

 

Цитата

<script>
if (window.location.pathname == '/ru/keytering'){ document.write('<style> тут стили  </style> ')};
</script>

но он не работает 

 

в качестве теста пробовал разместить

Цитата

</script>
<script>document.write("test")
</script>
 

но на стр тоже не выводиться test

 

подскажите как правильно разместить код

Спасибо

Надіслати
Поділитися на інших сайтах


17.07.2022 в 08:12, bzserg сказал:

подскажите как правильно разместить код

 

Нанимаете специалиста и он вам правильно размещает.

Надіслати
Поділитися на інших сайтах

из контроллера, в зависимости от страницы, кидаете флаг в шаблон

в шаблоне, в зависимости от флага, выводите или нет нужное

Надіслати
Поділитися на інших сайтах

Вот есть у меня функция, о которой даже не все профи знают

document.addEventListener('DOMContentLoaded', function(){
$title = $('title').context;
$('#target').val($title.title);
$('#url').val($title.URL);
});

Ее можно втавить даже в тело, это аналогично document.write.

Ну а дальше подкорректируешь выполнение своего кода. У меня идет присвоение вывода, но ты можешь присвоить в переменную, которую потом обыграть в соем коде.

Шо не ясно?

  • +1 1
Надіслати
Поділитися на інших сайтах

17.07.2022 в 10:30, fanatic сказал:

из контроллера, в зависимости от страницы, кидаете флаг в шаблон

Я предложил свой вариант ниже. Ну если человек не силен, то лазить в контроллере не суждено. На уровне скрипта, та хоть в футере, эта задача решается легко.

Надіслати
Поділитися на інших сайтах

17.07.2022 в 11:15, esculapra сказал:

Вот есть у меня функция, о которой даже не все профи знают

document.addEventListener('DOMContentLoaded', function(){
$title = $('title').context;
$('#target').val($title.title);
$('#url').val($title.URL);
});

Ее можно втавить даже в тело, это аналогично document.write.

Ну а дальше подкорректируешь выполнение своего кода. У меня идет присвоение вывода, но ты можешь присвоить в переменную, которую потом обыграть в соем коде.

Шо не ясно?

Гугл ругается на document.write

https://web.dev/no-document-write/

 

Но все правильно пишут, это делается в контроллере

Если product_id или category_id или information_id такой то, то this->document->addCss или как там называется или сами напишите методу и добавляете css файл

 

P.S. Я кстати такую приблуду юзаю уже несколько лет для всплывающей рекламы на одном большом сайте

 

<script>
document.addEventListener("DOMContentLoaded", function(event){
  var advoverlaybox = document.getElementById('adv-overlay-box');
    window.parent.document.body.appendChild(advoverlaybox);    
		document.body.removeChild(advoverlaybox);
  });
</script>
<div id="adv-overlay-box" style="background:rgba(0,0,0,0.65);position:fixed;z-index:5000!important;top:0;left:0;right:0;bottom:0;display:flex;justify-content: center;align-items: center;">
  <div id="adv-overlay-container" style="max-width:95%;display:block;text-decoration:none;position:relative;">
//placement for third-party tag
    
//end placement
<button style="position:absolute;top:10px;right:25px;z-index:100;border:none;background:black;color:white;font-size:20px;margin:0;padding:0 0 3px 0;border-radius:50%;width:25px;height:25px;cursor:pointer" onclick="event.preventDefault();document.getElementById('adv-overlay-box').remove();">x</button>
<img src="%%VIEW_URL_UNESC%%" alt="" width="1" height="1"/>
  </div>
</div>

 

Змінено користувачем niger
Надіслати
Поділитися на інших сайтах


17.07.2022 в 11:19, esculapra сказал:

Я предложил свой вариант ниже. Ну если человек не силен, то лазить в контроллере не суждено. На уровне скрипта, та хоть в футере, эта задача решается легко.

Если человек не силен добавить, лучше не добавлять. Так как даже ваш простой вариант может вставить не туда, так как человек не силен в том, как добавить. 

  • +1 1
Надіслати
Поділитися на інших сайтах


Сделал так

 

if (window.location.pathname == '/ru/keytering'){ document.write('<link href="catalog/view/theme/unishop2/stylesheet/catering.css" rel="stylesheet" media="screen" />)};

стилей много о они используются только на информационных страницах в статьях.

если гугл ругаеться на document.write как можно сделать по другому.

Этот код добавил в настройки темы, так как напрямую в файл если добавлять не работает

Надіслати
Поділитися на інших сайтах


17.07.2022 в 15:10, bzserg сказал:

они используются только на информационных страницах в статьях.

в контроллере header.php

if (isset($this->request->get['information_id'])) {
     $this->document->addStyle('view/stylesheet/main.css');
}

 

  • +1 1
Надіслати
Поділитися на інших сайтах

17.07.2022 в 15:50, fanatic сказал:
if (isset($this->request->get['information_id'])) {
     $this->document->addStyle('view/stylesheet/main.css');
}

добавил в \www\catalog\controller\common\header.php

и получил вот такую ошибку 

 


storage/modification/catalog/controller/common/header.php on line 233

 

image.thumb.png.6cd5ea6c4982e2e553589eed45458aa0.png

Надіслати
Поділитися на інших сайтах


17.07.2022 в 16:12, fanatic сказал:

перенесите под

public function index() {

 

Добавил ошибки нет но и стили не загружаться на страницу

 

добавил  в конце функции

сразу после 

return $this->load->view('common/header', $data);

 

Надіслати
Поділитися на інших сайтах


вот так 

class ControllerCommonHeader extends Controller {

    public function index() {
        if (isset($this->request->get['information_id'])) {
            $this->document->addStyle('view/stylesheet/main.css');
        }
        // Analytics
        $this->load->model('setting/extension');

        $data['analytics'] = array();

        $analytics = $this->model_setting_extension->getExtensions('analytics');

 

Надіслати
Поділитися на інших сайтах

17.07.2022 в 16:20, bzserg сказал:

добавил  в конце функции

сразу после 

return $this->load->view('common/header', $data);

вы читаете что пишут?

17.07.2022 в 16:12, fanatic сказал:

перенесите под

public function index() {

 

Надіслати
Поділитися на інших сайтах

class ControllerCommonHeader extends Controller {
	public function index() {
		
	if (isset($this->request->get['information_id'])) {
     $this->document->addStyle('view/theme/unishop2/stylesheet/catering.css');
}	
		// Analytics
		$this->load->model('setting/extension');

Прописал но всё равно не работает ((

Надіслати
Поділитися на інших сайтах


обновить модификаторы, почистить кеш

Надіслати
Поділитися на інших сайтах

17.07.2022 в 15:50, fanatic сказал:

в контроллере header.php

Друже Рос-корабель пішов.... Не я спілкуюся з адекватими росіянами - в них теж сердце болить, але ж вони не ввзмозі вирішить без допомоги.

Надіслати
Поділитися на інших сайтах

17.07.2022 в 15:50, fanatic сказал:
if (isset($this->request->get['information_id'])) {
     $this->document->addStyle('view/stylesheet/main.css');
}

Спасибо, работает. Не знаю почему раньше не работало, чистил кеш как в браузере так и в админке и обновлял модификатор.

 

Надіслати
Поділитися на інших сайтах


 

 

17.07.2022 в 23:04, esculapra сказал:

Доброго вечора - ми з України!

Доброго вечора

 

17.07.2022 в 22:40, esculapra сказал:

В допис добавить

не добавить а додати

 

всїм дякую за допомогу.

 

 

Надіслати
Поділитися на інших сайтах


18.07.2022 в 00:01, bzserg сказал:

не добавить а додати

вибачюсь. наразі нема спілкування. Я и литовишка супранте - я там служил

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.