-
Публікації
1 750 -
З нами
-
Відвідування
Тип публікації
Профілі
Форум
Маркетплейс
Статті
FAQ
Наші новини
Магазин
Блоги
module__dplus_manager
Повідомлення, опубліковані користувачем halfhope
-
-
Попробуйте в конфигах поменять localhost на 127.0.0.1
-
В 21.02.2017 в 19:56, florapraktik сказал:
Если бы не оптимизированные изображения были самой большой экологической проблемой человечества в целом и моей Страны в частности...
я бы уже познал дзен...
мы бы все познали дзен.
Если бы у меня была возможность заменить все ТЭЦ на атомные или возобновляемые источники энергии я бы сразу решил этот вопрос, но такой возможности у меня нет. Поэтому лучше не думать о бесполезном и делать то, что можешь сам. Все начинается с малого. Не смотри на других, начни с себя.
-
В 21.02.2017 в 13:07, florapraktik сказал:
или просто забить и заняться чем-то по-настоящему полезным.
Не соглашусь, это как минимум энергоэффективно. Оптимизируя изображения и удаляя другие ненужные изгороди вы делаете мир экологичней т.к. тратится меньше энергии на передачу данных. С каждого по капле.
- 3
-
Так уж вышло, что серверные библиотеки imagick и GD, которые обрабатывают изображения, не могут сделать их такими, какие они нужны PageSpeed (оптимизированными). Для оптимизации изображений без потери качества нужен сторонний пакет, а точнее пакеты для оптимизации png и jpeg изображений. Ими могут быть:
JPEG
- jpegoptim
- JPEGmini
- Jpegtran
PNG
- optipng
- pngcrush
- pptiPng
- tinyPng
- pngout
Рекомендую ставить optipng и jpegoptim, потому что они проверены и другие я не пробовал) Для установки на сервер необходимы права на установку пакетов, которых нет на обычном shared хостинге, но обычно есть на VPS/VDS. Если у вас shared хостинг, то спросите у тех. поддержки о наличии одного из этих пакетов и возможности их установить, при их отсутствии.
Либо установите сами, через терминал:
apt-get install jpegoptim optipng
или
yum install jpegoptim optipng
Затем нужно найти все jpg и png изображения и оптимизировать их. Ищем jpg изображения и оптимизируем их (не забывайте про аналогичное расширение jpeg):
find /путь/к/сайту -name "*.jpg" -exec jpegoptim {} --strip-all \;
Будьте внимательны, при использовании --strip-all удаляются метаданные изображений, такие как название фотоаппарата, геоданные и т.д. Если это критично, то уберите --strip-all из команды.
Для PNG:
find /путь/к/сайту -name "*.png" -exec optipng {} \;
Если у вас все получилось и вы все еще читаете, значит можно добавить автоматическую обработку изображений в класс обработки изображений OpenCart, который находится по адресу system/library/image.php. Для этого необходимы права на вызов функции exec. В файл нужно добавить закомментированные строки.
public function save($file, $quality = 90) { $info = pathinfo($file); $extension = strtolower($info['extension']); if (is_resource($this->image)) { if ($extension == 'jpeg' || $extension == 'jpg') { imagejpeg($this->image, $file, $quality); // exec('jpegoptim "' . $file . '"', $output, $result); } elseif($extension == 'png') { imagepng($this->image, $file); // exec('optipng "' . $file . '"', $output, $result); } elseif($extension == 'gif') { imagegif($this->image, $file); } imagedestroy($this->image); } }
- 2
-
-
1 час назад, krluch сказал:
Да вот теперь и понял в чем конкретно проблема.
Есть какой-нибудь костыль, чтоб не разбирать модуль и заставить его не работать в нужной схеме (макете)????По-хорошему бы избавиться вообще от такого модуля. Могу только порекомендовать посмотреть файл catalog/controller/common/позиция_на_которой_выводится_модуль.php, там код, который отвечает за подгрузку модулей, там можно все решить костылем.
-
47 минут назад, krluch сказал:
Выяснил что выводит товары в категорию посторонний модуль, который вшит в шаблон Flaton 2
Может быть проблема в нем?
-
Вопрос решен. Была проблема в большом количестве запросов сторонних модулей+парочка оптимизаций по коду.
-
Загрузка и проверка происходит в контроллере common/filemanager, который находится в файле admin/controller/common/filemanager.php, а именно в функции upload. Там же можно добавить проверку или переименование файла, если такой уже существует. Для примера приведу отрезки кода из этой функции с проверкой и переименованием:
if (!$this->user->hasPermission('modify', 'common/filemanager')) { $json['error'] = $this->language->get('error_permission'); } ############## // Вариант 1. Проверка if(file_exists($directory . '/' . $filename)){ $json['error'] = $this->language->get('error_file_exists'); // не забудьте добавить error_file_exists в языковой файл common/filemanager } // Вариант 2. Переименование if(file_exists($directory . '/' . $filename)){ $counter = 1; //объявляем счетчик $info = pathinfo($filename); //разбираем название файла и расширение $new_filename = $info['filename'] . $counter . $info['extension']; //генерируем новое имя файла while(file_exists($directory . '/' . $new_filename)){ $new_filename = $info['filename'] . $counter . $info['extension']; $counter++; } $filename = $new_filename; } ############## if (!isset($json['error'])) { if (@move_uploaded_file($this->request->files['image']['tmp_name'], $directory . '/' . $filename)) { $json['success'] = $this->language->get('text_uploaded'); } else { $json['error'] = $this->language->get('error_uploaded'); } }
Код не проверял, но должен работать. И второй вариант будет работать на PHP 5.2 и старше т.к. filename pathinfo начала возвращать именно с этой версии.
- 1
-
1 час назад, Apistol87 сказал:
Journal 2.4.4
Вот главный изъян) В нем все сделано через ж*пу.
- 1
-
Нет такой схемы. Фреймворк очень простой, даже в документации нет необходимости) Какой именно момент работы механизма корзины интересует?
Вот тема, там немножко другое, но сейчас кратко опишу и все поймете.
1. При добавлении товара массив данных с ID, количеством и опциями передается контроллеру checkout/cart/add (catalog/controller/checkout/cart.php). add в данном случае название функции контроллера.
2. Далее функция add контроллера checkout/cart передает данные в класс cart (system/library/cart.php), который и является интерфейсом корзины и доступен по адресу $this->cart
$this->cart->add($this->request->post['product_id'], $quantity, $option, $profile_id);
3. В зависимости от версии, данные корзины cart сохраняются в сессию пользователя, либо в БД.
Вот статьи в помощь:
- Серия статей. OpenCart для разработчиков. Часть 1. [Описание основных классов]
- Серия статей. OpenCart для разработчиков. Часть 2. [Описание функций моделей каталога]
- 3
-
-
Для Apache, для nginx нету, только в голове сидит. Пользуйтесь поиском, в интернете очень много информации. Вы не можете управлять заголовками на внешние ресурсы ими управляет отдающий их сервер, т.е. не ваш.
- 1
-
нет, в той версии, что у меня данные корзины хранятся в БД, а не в сессии.
-
Вариант 1. Используется в OpenCart
$('#product input[type=\'text\'], #product input[type=\'hidden\'], #product input[type=\'radio\']:checked, #product input[type=\'checkbox\']:checked, #product select, #product textarea');
Так можно собрать содержимое полей всех опций. Еще в приведенном коде используется обертка в #product, чтобы выборка не пересекалась с другими полями, которые могут использоваться на странице.
Приведу полный код из дефолтного шаблона OpenCart версии 2.1.0.1, в нем quantity передается вместе с опциями:
HTML:
<button type="button" id="button-cart" class="btn btn-primary btn-lg btn-block">Купить</button>
JS:
$('#button-cart').on('click', function() { $.ajax({ url: 'index.php?route=checkout/cart/add', type: 'post', data: $('#product input[type=\'text\'], #product input[type=\'hidden\'], #product input[type=\'radio\']:checked, #product input[type=\'checkbox\']:checked, #product select, #product textarea'), dataType: 'json', beforeSend: function() { // }, complete: function() { // }, success: function(json) { // }, error: function(xhr, ajaxOptions, thrownError) { // } }); });
Вариант 2. Сериализация формы.
Вместо громоздкой конструкции по выборке всех полей формы можно выбрать все сразу:
$(this).serialize();
Порядок опций определяется их сортировкой.
-
-
Готов взяться. Но за journal2 придется доплатить. Пишите в ЛС.
UPD: Не возьмусь, если Вы будете ориентироваться на показатели PageSpeed и GTMetrix, смотрите реальную скорость загрузки страниц. Эти сервисы лишь проверяют наличие шаблонов клиентской оптимизации.
-
Вперед) https://strongpasswordgenerator.com/ (Справа зеленая кнопка Generate).
-
20 часов назад, SiteMix сказал:
halfhope занимается лечением. Попробуй ему в личку стукнуть
Спасибо!
Могу помочь, с гарантией. Пишите в ЛС. Рекомендую ничего не удалять самому, это испортит картину заражения и не получится красивый отчет.
-
// Cart Корзина $this->cart->getProducts(); //Получает все товары находящиеся в корзине учитывая опции, акции. $this->cart->add( $product_id, $qty = 1, $options = array()); // Добавление товара в корзину $this->cart->remove( $key ); // Удаление товара из корзины $this->cart->clear(); // Очистка корзины $this->cart->getWeight(); // Получение веса всей корзины $this->cart->getSubTotal(); // Получение суммы цен элементов корзины без вычета налогов $this->cart->getTotal(); // Получение суммы цен элементов корзины с вычетом налогов $this->cart->countProducts(); // Получение количества товаров в корзине $this->cart->hasProducts(); // Проверяет пуста корзина или нет $this->cart->hasStock(); // Возвращает false, если хотя бы один элемент корзины отсутствует на складе(в продаже) $this->cart->hasShipping(); // Возвращает true, если хотя бы один элемент корзины требует доставку $this->cart->hasDownload(); // Возвращает true, если хотя бы один элемент корзины связан с какой-либо загрузкой
Описание основных классов можно посмотреть тут. К сожалению, на данный момент, посмотреть сайт можно только в кэше.
- 1
-
Добрый вечер) В консоли браузера (Ctrl+Shift+i) видна ошибка, которая говорит от том, что функции colorbox не существует. Вы не подключили стили и скрипты colorbox-а в шапке сайта. Лучше делать это через контроллер, чтобы стили и скрипты colorbox загружались только тогда когда они нужны, а не подгружались на каждой странице сайта. Найдите файл catalog/controller/information/information.php и добавьте в начало функции index() строки:
$this->document->addStyle('catalog/view/javascript/jquery/colorbox/colorbox.css'); $this->document->addScript('catalog/view/javascript/jquery/colorbox/jquery.colorbox-min.js');
- 1
-
1 час назад, SiteMix сказал:
Ну тогда и это поправить неплохо бы:
Спасибо, там автоматика стоит, чтобы каждый год не обновлять, склонять слова она не умеет)
-
@markimax, спасибо, поправил.
-
10 часов назад, Russiannov сказал:
сайт на опенкарт 1.5.6.1, антивир хостинга переименовывает файлы на suspected, витрина не работает, какие-то непонятные скрипты разбросаны по сайту...... Цена вопроса(проверка/очистка)?
подробности на http://ockb.ru/. Пользователям форума скидка)
Анекдоты
в Курилка
Опубліковано:
Да