Ответить Новая тема Новый опрос 
Всего: 9 « < 3 4 5 6 7 8 9 >
 Оптимизация кэширования
artembs
Новичок
Сообщений: 13
Регистрация: 29-11-2010


29-11-2010 08:53
Я только зарегестрировался. Извините за может глупый вопрос. Первый пост:
Цитата:
Добавляем в модуль blockmanufacturer кэширование:
Код:
function hookLeftColumn($params)
    {
        global $smarty, $link;
//Включаем кэширование
    $smarty->caching = true;
//Проверяем кэширован ли уже блок
    if (!$smarty->is_cached(dirname(__FILE__).'/'.'blockmanufacturer.tpl')) {
//Если нет - получаем данные
            $smarty->assign(array(
                'manufacturers' => Manufacturer::getManufacturers(),
                'link' => $link,
            ));
    }
//Обрабатываем шаблон
        $page= $this->display(__FILE__, 'blockmanufacturer.tpl');
//Выключаем кэширование
        $smarty->caching = false;
//Возвращаем результат
        return $page;
    }



У меня blockmanufacturer.php:
Цитата:
<?php

class BlockManufacturer extends Module
{
    function __construct()
    {
        $this->name = 'blockmanufacturer';
        $this->tab = 'Blocks';
        $this->version = 1.0;

        parent::__construct();

  $this->displayName = $this->l('Manufacturers block');
        $this->description = $this->l('Displays a block of manufacturers/brands');
    }

    function install()
    {
        parent::install();
        $this->registerHook('leftColumn');
  Configuration::updateValue('MANUFACTURER_DISPLAY_TEXT', true);
  Configuration::updateValue('MANUFACTURER_DISPLAY_TEXT_NB', 5);
  Configuration::updateValue('MANUFACTURER_DISPLAY_FORM', true);
    }
   
    function hookLeftColumn($params)
    {
  global $smarty, $link;
 
  $smarty->assign(array(
  'manufacturers' => Manufacturer::getManufacturers(),
  'link' => $link,
  'text_list' => Configuration::get('MANUFACTURER_DISPLAY_TEXT'),
  'text_list_nb' => Configuration::get('MANUFACTURER_DISPLAY_TEXT_NB'),
  'form_list' => Configuration::get('MANUFACTURER_DISPLAY_FORM'),
  ));
  return $this->display(__FILE__, 'blockmanufacturer.tpl');
}
 
function hookRightColumn($params)
{
  return $this->hookLeftColumn($params);
}
 
function getContent()
{
  $output = '<h2>'.$this->displayName.'</h2>';
  if (Tools::isSubmit('submitBlockManufacturers'))
  {
  $text_list = intval(Tools::getValue('text_list'));
  $text_nb = intval(Tools::getValue('text_nb'));
  $form_list = intval(Tools::getValue('form_list'));
  if ($text_list AND !Validate::isUnsignedInt($text_nb))
    $errors[] = $this->l('Invalid number of elements');
  elseif (!$text_list AND !$form_list)
    $errors[] = $this->l('Please activate at least one system list');
  else
  {
    Configuration::updateValue('MANUFACTURER_DISPLAY_TEXT', $text_list);
    Configuration::updateValue('MANUFACTURER_DISPLAY_TEXT_NB', $text_nb);
    Configuration::updateValue('MANUFACTURER_DISPLAY_FORM', $form_list);
  }
  if (isset($errors) AND sizeof($errors))
    $output .= $this->displayError(implode('<br />', $errors));
  else
    $output .= $this->displayConfirmation($this->l('Settings updated'));
  }
  return $output.$this->displayForm();
}
 
public function displayForm()
{
  $output = '
  <form action="'.$_SERVER['REQUEST_URI'].'" method="post">
  <fieldset><legend><img src="'.$this->_path.'logo.gif" alt="" title="" />'.$this->l('Settings').'</legend>
    <label>'.$this->l('Use a plain-text list').'</label>
    <div class="margin-form">
    <input type="radio" name="text_list" id="text_list_on" value="1" '.(Tools::getValue('text_list', Configuration::get('MANUFACTURER_DISPLAY_TEXT')) ? 'checked="checked" ' : '').'/>
    <label class="t" for="text_list_on"> <img src="../img/admin/enabled.gif" alt="'.$this->l('Enabled').'" title="'.$this->l('Enabled').'" /></label>
    <input type="radio" name="text_list" id="text_list_off" value="0" '.(!Tools::getValue('text_list', Configuration::get('MANUFACTURER_DISPLAY_TEXT')) ? 'checked="checked" ' : '').'/>
    <label class="t" for="text_list_off"> <img src="../img/admin/disabled.gif" alt="'.$this->l('Disabled').'" title="'.$this->l('Disabled').'" /></label>
    &nbsp;&nbsp;&nbsp;'.$this->l('Display').' <input type="text" size="2" name="text_nb" value="'.intval(Tools::getValue('text_nb', Configuration::get('MANUFACTURER_DISPLAY_TEXT_NB'))).'" /> '.$this->l('elements').'
    <p class="clear">'.$this->l('To display manufacturers in a plain-text list').'</p>
    </div>
    <label>'.$this->l('Use a drop-down list').'</label>
    <div class="margin-form">
    <input type="radio" name="form_list" id="form_list_on" value="1" '.(Tools::getValue('form_list', Configuration::get('MANUFACTURER_DISPLAY_FORM')) ? 'checked="checked" ' : '').'/>
    <label class="t" for="form_list_on"> <img src="../img/admin/enabled.gif" alt="'.$this->l('Enabled').'" title="'.$this->l('Enabled').'" /></label>
    <input type="radio" name="form_list" id="form_list_off" value="0" '.(!Tools::getValue('form_list', Configuration::get('MANUFACTURER_DISPLAY_FORM')) ? 'checked="checked" ' : '').'/>
    <label class="t" for="form_list_off"> <img src="../img/admin/disabled.gif" alt="'.$this->l('Disabled').'" title="'.$this->l('Disabled').'" /></label>
    <p class="clear">'.$this->l('To display manufacturers in a drop-down list').'</p>
    </div>
    <center><input type="submit" name="submitBlockManufacturers" value="'.$this->l('Save').'" class="button" /></center>
  </fieldset>
  </form>';
  return $output;
}
}

?>


Может у вас версия другая. Куда вставлять и за место чего?
 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
artembs
Новичок
Сообщений: 13
Регистрация: 29-11-2010


02-12-2010 06:18
разборался. на многих модулях поставил кэширование
 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
sem4444
Cпециалист
Сообщений: 295
Регистрация: 26-03-2010


18-01-2011 22:35
Обьясните мне что с этим кодом делать :) Просто добавить blockmanufacturer.php ? А для другого блока что нужно менять ??? может выложите пример другого блока , хоть посмотреть что меняется. Спасибо ors за тему, реально ускоряет сайт.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Fant63
Профессионал
Сообщений: 543
Откуда: Тольятти
Регистрация: 23-02-2010


18-01-2011 23:07
Скоро выйдет преста 1,4 там кэширование реализовано на базе ядра


Сообщение отредактировано Fant63 18-01-2011 19:07 ...
 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
ors
Профессионал
Сообщений: 1885
Регистрация: 09-11-2009


19-01-2011 13:36
Но править модули для использования кэширования придется самостоятельно.
Сейчас оно влючено только в блоке категорий и чтобы оно ускоряло, а не тормозило магазин глубину кэша придется делать равной: количество групп*количество языков*количество продуктов*количество категорий.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
ors
Профессионал
Сообщений: 1885
Регистрация: 09-11-2009


10-02-2011 22:13
Еще один способ ускорения работы магазина Статическое сжатие стилей и скриптов

Запостил на официальном форуме в разделе разработки. Может добавять это в финальной версии.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
ors
Профессионал
Сообщений: 1885
Регистрация: 09-11-2009


24-02-2011 19:45
Минификация кода страницы с минимальной нагрузкой на сервер.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
sem4444
Cпециалист
Сообщений: 295
Регистрация: 26-03-2010


25-02-2011 03:48
Действительно из 600 строк стало 63 правда сточки длиннее. А на много ускоряет ? а то на глаз не пойму


Сообщение отредактировано sem4444 25-02-2011 04:49 ...
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
ors
Профессионал
Сообщений: 1885
Регистрация: 09-11-2009


25-02-2011 11:51
Пропорционально уменьшению размера страницы
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
saerty


Cпециалист
Сообщений: 105
Регистрация: 05-02-2011


27-03-2011 02:55
Немного жирно попрошу.
Какие самые эффективные из перечисленных методов оптимизации можно назвать?
Пробовал gzip сжатие не получилось.
сжимал global.css
по методу ors
делал так сначала скачивал с сервера паковал в gzip переименовывал из global.gzip.css
в global.css
создавал еще один файл global.nogzip.css
добавлял настройки в .htacsess
Заливал на сервер в конечном счете стили не грузятся
Расскажите как правильно уже второй день не сплю(
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Ответить Новая тема Новый опрос 
Всего: 9 « < 3 4 5 6 7 8 9 >