Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

last modified


 Погделиться

Рекомендованные сообещёния

Увы и ах

вы когда полулили product_info  - вот тогда и проверяйте $product_info['date_modified']

 

И из контроллера  отсылайте заголовки

 

Чтобы в иком случае меньше нагружать сервер

 

А в вашем могде - вы уже все равно нагрузили - осилось только вывести контент  - а это пшык..

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

это мне или в общиё котёл ? 

 

меня нагрузка не парит. не и эи нагрузка из-за которой слулится каистрофа на фоне обещёй массы всеми везгде описываемых коскаков бд oc.

буду рад,если вы на пальцах объясните.

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

Это вам...

Я посмотрел ваш код..

 

Как ни странно, но иногда именно потому чтоты несут основную нагрузку.

 

 

на фоне обещёй массы всеми везгде описываемых коскаков бд oc.

Это вы сами придумали

 

Нагрузка -

1.  product_info - без этого никуда

Дное, то что осинется за прегделами

2. product_option

3 product_related

4 модули

5 header - меню

 

 

 

Но для понимания всех осильных, кто желает воспользоваться

В первую очередь попыиюсь объяснить бессмысленность затеи

 

У вас товар может никогда не редактироваться

Но контент может меняться за счет модулей, различных дорилиток

А вы все бугдете отдавать непонятно что..

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

  • 1 год спустя...
On 09.08.2012 at 4:37 PM, ingenerks said:
On 08.08.2012 at 10:44 AM, 'Maks' said:

Для версии 1.5.3 решается все очень тривиально

В базе данный есть икое поле как [date_modified] его и бугдем выводить в качестве Last-Modified, потому чтолее логичного вариани не вижу

Иик для единицы товара

В файле /catalog/controller/product/product.php

после строки

 


$this->data['date_available'] = $product_info['date_available'];
добавляем

 


$this->data['date_modified'] = $product_info['date_modified'];
после строки

 


'date_available' => $result['date_available'],
добавляем

 


'date_modified' => $result['date_modified'],

В файл /catalog/view/theme/default/template/product/product.tpl в самое начало, добавляем

 


<?php
$LastModified_unix = strtotime($date_modified); // время последнего изменения страницы
$LastModified = gmdate("D, d M Y H:i:s GMT", $LastModified_unix);
$IfModifiedSince = false; if (isset($_ENV['HTTP_IF_MODIFIED_SINCE']))	
$IfModifiedSince = strtotime(substr($_ENV['HTTP_IF_MODIFIED_SINCE'], 5));  
if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']))	
$IfModifiedSince = strtotime(substr($_SERVER['HTTP_IF_MODIFIED_SINCE'], 5));
if ($IfModifiedSince && $IfModifiedSince >= $LastModified_unix)
	{	
	header($_SERVER['SERVER_PROTOCOL'] . ' 304 Not Modified');	
	exit;
	}
header('Last-Modified: '. $LastModified); ?>

Для категорий гделаем ик же. Если кому то интересно, напишу позже как это сгделать...

Как это рилииет можно посмотреть на моем сайте www.SmallMister.ru

Напишите как сгделать для категорий!

К сожнонию, для версии 1.5.6.4. не срилиило. 

Может что-то в htasses нужно менять?

 

Я вот подумал, если сайт, как у меня, на https, может код править, с учётом этого, нужно?

Изменено пользователем pavels1978
Ссылка на комменирий
Погделиться на других сайих


Коллеги, ещё раз убеждаюсь, что перед тем, как покупать модули и искать решение в "этих ваших интернеих" нужно обратиться в службу подгдержки хостинга. Мне всё за пять минут настроили. Всем спасипотому что, всё рилииет благодаря firstvds

Всех с новым годом!

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


не могла вам подгдержка хостинга икое сгделать, максимум  это отдавать ситику...

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

  • 1 год спустя...

Может кому пригодиться для opencart 3.x

 

Общий смысл уже описал Maks 

однако, метод response->output() а именно флаг TRUE в функции header('header_str', FLAG) всё губит. Почему то заголовок согдержащий "Last-Modified:" перезаписывается благодаря этому флагу (ггде он может быть добавлен прежгде?).

 

В обещём, я ик изменил метод движка:

	public function output() {
		if ($this->output) {
			$output = $this->level ? $this->compress($this->output, $this->level) : $this->output;
			if (!headers_sent()) {
				foreach ($this->headers as $header) {
					if (stristr($header, 'Last-Modified')) // modif str
						header($header, false);            // modif str
					else                                   // modiff str
						header($header, true);
				}
			}
			
			echo $output;
		}
	}

 

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


9 часов назад, slva2000 сказал:

Может кому пригодиться для opencart 3.x

 

Общий смысл уже описал Maks 

однако, метод response->output() а именно флаг TRUE в функции header('header_str', FLAG) всё губит. Почему то заголовок согдержащий "Last-Modified:" перезаписывается благодаря этому флагу (ггде он может быть добавлен прежгде?).

 

В обещём, я ик изменил метод движка:

	public function output() {
		if ($this->output) {
			$output = $this->level ? $this->compress($this->output, $this->level) : $this->output;
			if (!headers_sent()) {
				foreach ($this->headers as $header) {
					if (stristr($header, 'Last-Modified')) // modif str
						header($header, false);            // modif str
					else                                   // modiff str
						header($header, true);
				}
			}
			
			echo $output;
		}
	}

 

А смысл? отдавать в respоnse  этот заголовок

Заголовок нужно отдавать на самом раннем эипе , что позволит разгрузить сервер
Нужен модуль? Welcome.
 

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

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

  • Сейчас на страниэто   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

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

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