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

halfhope

Користувачі
  
  • Публікації

    1 750
  • З нами

  • Відвідування

Повідомлення, опубліковані користувачем halfhope

  1. 29 августа 2014 вышел релиз vqmod 2.5.0. Так же проект vqmod переехал на GitHub https://github.com/vqmod/vqmod/releases.

     

    Что нового:

    • Добавлено кэширование проверяемых файлов для увеличения производительности
    • Добавлены детали ошибки при ошибке в xml файле
    • Добавлена поддержка отрицательного значения offset для REPLACE 
    • Добавлена проверка наличия <search> и <add> у каждого <operation>
    • В функцию modCheck добавлен второй параметр для возможности добавлять другой исходный файл (не уверен в переводе)
    • В классе vqmod переименована переменная $_replaces на $replaces 
    • Теперь используется функция file() для увеличения производительности
    • Изменены регулярные выражения для увеличения производительности
    • Изменены некоторые участки кода для увеличения производительности
    • В функцию file_put_contents добавлена блокировка файла при записи (баг фикс для https://code.google.com/p/vqmod/issues/detail?id=167 )
    • Изменен .htaccess в надежде исправить ошибку 500 ISE на серверах с Options -Indexes
    • Отформатирован код в vqmod.php
    • Изменен файл readme.txt

    Специфичные для OpenCart изменения:

    • Добавлен фикс бага при установке ( https://code.google.com/p/vqmod/issues/detail?id=145 )
    • Файлы admin/controller/extension/*.php добавлены в ядро vqmod (vqmod_opencart.xml)
    • Изменен файл vqmod_opencart.xml для поддержки OpenCart 2.0

    EN

    v2.5.0 - 2014-AUG-29 - [email protected]

    • Added caching of checked files to increase performance
    • Added error details of invalid XML files
    • Added negative offset for REPLACE position to remove lines before matched line instead of only after
    • Added and check to ensure present in each
    • Added second parameter to modCheck to allow specifying the Operations file path for a different source file
    • Changed $_replaces to $replaces in VQMod object to adhere to naming convention for public property
    • Change to file() method to increase performance
    • Changed regex path matching to increase performance
    • Changed minor pieces of code to increase performance
    • Changed file_put_contents to lock files while saving ( bug fix for https://code.google.com/p/vqmod/issues/detail?id=167 )
    • Changed .htaccess security method to hopefully fix some servers having 500 ISE messages from Options -Indexes
    • Changed vqmod.php (Formatting cleanup)
    • Changed readme.txt files

    2.5.0 OpenCart specific changes

    https://code.google.com/p/vqmod/wiki/Changelog

     

     

    • +1 2
  2. Приведу пример самой простой защиты фотографий от копирования без динамической отдачи файлов, флеш контейнеров и всего прочего. 

     

    1. Ставим запрет нажатия правой кнопки мыши по фотографиям
    2. Ставим заглушку для тех случаев, если нашу фотографию пытаются вставить прямой ссылкой на какой-нибудь ресурс (Хотлинк).
    3. Ставим водяные знаки.

     

    Все сделано на примере магазина http://hairshining.ru/. Конечно, для опытных пользователей достать фотографию не составит труда.

     

    1. Запрет нажатия правой кнопки мыши.

     

    В файл "catalog/view/theme/default/template/common/header.tpl после загрузки JQuery вставляем код:

    <script>
    	$(document).ready(function(){
    		var images = $('img');
    		$(images).each(function(index, elem){
    			elem.oncontextmenu=function(){return false}
    		});
    	});
    </script>
    
    

    После вставки этого кода при нажатии правой кнопки мыши на фотографии ничего не произойдет.

     

    2. Заглушка.

     

    Заглушка ставится на уровне сервера, с помощью настройки файла .htaccess или nginx.conf. Код, который необходимо вставить в .htaccess:

    RewriteCond %{HTTP_REFERER} !^$
    RewriteCond %{HTTP_REFERER} !^http://(.+\.)?server\.ru/ [NC]
    RewriteCond %{REQUEST_URI} !null\.gif$ [NC]
    RewriteRule \.(jpg|jpeg|gif|bmp|png)$ http://i.imgur.com/qX4w7.gif [L]

    То же самое для nginx.conf:

    location ~* ^.+\.(jpg|jpeg|gif|png)$ {
         root /path/to/root;
         valid_referers none blocked server_names ~\.server1\. ~\.server2\.;
         if ($invalid_referer) {
           rewrite ^ http://i.imgur.com/qX4w7.gif last;
         }
       }
    
    

    Теперь при каждом обращении к файлу изображения сервер будет проверять с какого сайта пытаются загрузить изображение. Если не с Вашего, то подставляет изображение http://i.imgur.com/qX4w7.gif. Пример работы посмотреть можно здесь. Примечание: я понятия не имею как это будет работать с поисковыми системами. Если кто-нибудь объяснит, буду рад и добавлю сюда.

     

    3. Водяные знаки. 

     

    3.1 Варианты с модулями для OpenCart.

     

    За то время пока работал с OpenCart встречал два типа модулей для нанесения водяных знаков. Одни ставят водяной знак на оригинал изображения при его загрузке на сервер через админку. Но не будут обработаны изображения, которые были загружены через FTP. Вторые добавляют водяной знак только при обработке изображения контроллером tool/image.

     

    Мой выбор пал на второй тип модулей, т.к. он не изменяет оригиналы изображений и будут обработаны все изображения, даже которые были загружены через FTP. Из минусов стоит отметить, что без водяных знаков остаются оригиналы. Если добавить немного конкретики, то мне очень понравился модуль is.Watermark, в нем множество настроек, с помощью которых можно настроить водяные знаки под каждый проект. 

     

    3.2 Варианты без модулей

     

    Здесь будут предложены варианты защиты фото еще до загрузки на сервер или еще до того, как фотографии были сделаны.

     

    Водяные знаки на фото можно добавить с помощью десктопных программ FastStone Photo Resizer (Freeware) и Adobe Photoshop.

     

    Если Вы сами делайте фотографии товаров для интернет-магазина, то можно положить карточку с названием магазина и фотографировать вместе с ней. Пример можно посмотреть на сайте http://vapemarket.ru/. Либо придумать что-нибудь более оригинальное.

  3. Всем доброго времени суток. 

     

    Столкнулся с проблемой - не знаю что еще можно добавить в модуль. Из того, что уже в списке добавления:

    • Добавить защиту от нажатия правой кнопки мыши (опционально)
    • Добавить шаблон для вывода списка галерей с описанием (слева обложка, справа описание)
    • Добавить возможность добавлять расширенное описание к каждой фотографии (только выбранные) + шаблон для вывода фотографий с расширенным описанием
    • Добавить возможность разработчикам просто и быстро добавлять свои шаблоны.
    • Исправить LazyLoad (отсутствует изображение loading.gif)
  4. Доброго времени суток. Подскажите как реализовать и в каком направлении копать сл фичу - по дефолту в опенкарте можно использовать бонусные баллы, которые начисленны пользователю. Суть в том что бонусные балы срабатывают при оформлении заказа только для тех товаров, на которые есть бонусные баллы. Мне же необходимо реализовать сл вещ : учитывать бонусные балы пользователя на весь заказа - не имеет значение сколько товаров и есть ли на них баллы.

     

    Проще будет использовать накопительные скидки. 

  5. Там конструкция If{код}else{код}, убирайте код в двух местах (в javascript), и  в самом шаблоне. Т.е. если Вы убираете/изменяете какой либо элемент списка/сетки, то его необходимо изменять в двух местах.

  6. Переменная path, которая передается в $_GET содержит ID всех категорий(все родительские+текущая) относительно текущей категории. Получить переменную и узнать уровень можно вот так:

    //Получаем массив всех категорий (все родительские+текущая)
    $path = explode('_', $this->request->get['path']);
    //Узнаем уровень вложенности
    $level = count ($path);
    
  7. Все заключено в файле "catalog/controller/product/product.php", в этих строчках:

    $product_info = $this->model_catalog_product->getProduct($product_id);
    

    ...

    # устанавливаем большое главное изображение товара 
    if ($product_info['image']) {
    	$this->data['popup'] = $this->model_tool_image->resize($product_info['image'], $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height'));
    } else {
    	$this->data['popup'] = '';
    }
    # устанавливаем превью главного изображения товара 
    if ($product_info['image']) {
    	$this->data['thumb'] = $this->model_tool_image->resize($product_info['image'], $this->config->get('config_image_thumb_width'), $this->config->get('config_image_thumb_height'));
    } else {
    	$this->data['thumb'] = '';
    }
    #Устанавливаем дополнительные изображения товара
    $this->data['images'] = array();
    
    $results = $this->model_catalog_product->getProductImages($this->request->get['product_id']);
    
    foreach ($results as $result) {
    	$this->data['images'][] = array(
    		'popup' => $this->model_tool_image->resize($result['image'], $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height')),
    		'thumb' => $this->model_tool_image->resize($result['image'], $this->config->get('config_image_additional_width'), $this->config->get('config_image_additional_height'))
    	);
    }	
    

    А Вам нужно наоборот:

    • Сначала получить дополнительные изображения товара
    • Из массива дополнительных изображений вырезать первое
    • Поставить его в качестве основного
    • К дополнительным изображениям товара добавить основное изображение (старое основное, а не то, что мы выдернули из массива)
    • Все.
  8. Добрый день

    как проще дополнительные свойства категорий (необходима доп. картинка и два поля - ее размеры)

     

    День добрый.

    • Добавьте новый столбец(ы) в БД.
    • Отредактируйте запросы на получение данных из БД в модели.
    • Обработайте данные в контроллере и пользуйтесь ими в шаблоне. 

    По аналогии с дополнительными полями в карточке товара.

  9. 1. Чтобы увеличить шрифт попробуйте добавить !important 

    .box-gallery .gallery_cover span{
        text-align: center;
        font-size:26pt !important;
        padding-top:6px;
    }
    

    И очистите кэш браузера. Если не сработает, пришлите в ЛС данные для FTP доступа, я все сам сделаю.

     

    2. Чтобы переместить название галереи наверх замените файл "catalog/view/theme/default/template/gallery/gallery.tpl" на тот, что я прикрепил к этому сообщению. 

    gallery.zip

  10. Здравствуйте.

     

    Спасибо за Ваш модуль, все отлично работает!

    Скажите, пожалуйста, как внести изменения на странице "Список галерей"? Нужно:

    1. Убрать обозначение количества фото в галерее (пишется в скобках рядом с названием фотогалереи)

    2. Увеличить шрифт названия фотогалереи

    3. Увеличить превью каждой из галерей

    4. Изменить Url на более "читабельный": http://.../index.php?route=gallery/gallery

    Заранее спасибо за помощь.

     

    Доброе утро. 

    1. Настройки для страницы "Список галерей" находятся в разделе настроек модуля (иконка настроек в модуле)

    2. Размер названия галереи можно поменять в css файле "catalog/view/theme/default/stylesheet/photo_gallery.manager.css" для этого, в любом месте между 31 и 33 строкой файла добавьте:

    font-size:16pt;
    

    Размер шрифта названия фотографии меняется так же, только между 38 и 39 строкой.

    3. Смотрите пункт 1.

    4. Смотрите пункт 1.

  11. Что-то я не совсем понял, Вам нужен заказ в один клик или просто чтобы страница заказов была проще?

    Вот то, что могу посоветовать:

  12. Здравствуйте!

    Обнаружился такой баг: прописываю  описание в поле HTML TITLE и этоже описание вылезает в хлебных крошках...

    Можно это починить? 

    Oc1.5.4.1

     

    Добрый вечер. Исправление этого бага выйдет только в версии 1.3. Для исправления этого бага сейчас:

    • Замените файл "catalog/controller/gallery/photos.php" на тот, что прикреплен к этому сообщению,
    • Зайдите в любой альбом и нажмите "Сохранить" (это очистит кэш альбомов)

    photos.zip

  13. В файл "catalog/controller/common/content_top.php" перед кодом:

    if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/common/content_top.tpl')) {
    $this->template = $this->config->get('config_template') . '/template/common/content_top.tpl';
    } else {
    $this->template = 'default/template/common/content_top.tpl';
    }
    

     

    Добавьте :

    // Search		
    $this->language->load('common/header');
    $this->data['text_search'] = $this->language->get('text_search');
    if (isset($this->request->get['search'])) {
    	$this->data['search'] = $this->request->get['search'];
    } else {
    	$this->data['search'] = '';
    }
    

    Должно заработать.

  14. halfhope, огромное спасибо за понятное и подробное описание!

    Думаю, теперь все получится внедрить :)

     

     

    Насчет кол-ва товаров. Неправильно Вам указал. Вот так правильно:

    $count_data = $data;
    $count_data['limit'] = 0;
    $this->data['cout_of_results'] = $this->model_catalog_product->getTotalProducts($count_data);
    

    В том же месте.

  15. Начни с восстановления сайта из бекапов, потом просмотрите логи и попытайтесь понять через какую уязвимость они туда попали. Насколько я знаю Pak Cyber Crews более-менее гуманные. Поэтому чаще всего файлы движка оставляют целыми, делают из сайта веб-ботнет.

     

    Короче, восстановите сайт из бекапов, если их нет, я посмотрю чем смогу помочь. Пишите в ЛС.

  16. Файлы в студию:

    • catalog/controller/product/product.php
    • catalog/view/theme/rgen-opencart/template/product/product.tpl
    • catalog/model/tool/image.php

    Если стоит vqmod, то еще файлы (если есть):

    • vqmod/vqcache/vq2-catalog_controller_product_product.php
    • vqmod/vqcache/vq2-catalog_view_theme_rgen-opencart_template_product_product.tpl
    • vqmod/vqcache/vq2-catalog_model_tool_image.php
  17. Здравствуйте, уважаемые форумчаны! подскажите пожалуйста где изменить шаблон писем e-mail которые приходят человеку при регистрации? Версия 1.5.5.2.1

     

    В файле catalog/language/russian/account/success.php и в других файлах в этой же папке.

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

Important Information

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