Jump to content

Recommended Posts

Увы и ах

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

 

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

 

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

 

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

Share this post


Link to post
Share on other sites

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

 

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

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

Share this post


Link to post
Share on other sites

Это вам...

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

 

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

 

 

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

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

 

Нагрузка -

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

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

2. product_option

3 product_related

4 модули

5 header - меню

 

 

 

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

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

 

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

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

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

Share this post


Link to post
Share on other sites
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, может код править, с учётом этого, нужно?

Edited by pavels1978

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Может кому пригодиться для 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;
		}
	}

 

Share this post


Link to post
Share on other sites
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.
 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   1 member

×

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.