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

halfhope

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

    1 750
  • З нами

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

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

  1. Доброго времени суток. 

    Кто-нибудь встречался с проблемой поиска текста для замены(search) в vqmod переменной длинны кол-ва строк. Т.е. В данном случае offset не поможет т.к. кол-во строк может быть разным. 

    Объясню для тех кто не понял:

    В файле catalog/controller/product/category.php после кода:

    	$this->data['products'][] = array(
    		'product_id'  => $result['product_id'],
    		'thumb'       => $image,
    		'name'        => $result['name'],
    		'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..',
    		'price'       => $price,
    		'special'     => $special,
    		'tax'         => $tax,
    		'rating'      => $result['rating'],
    		'reviews'     => sprintf($this->language->get('text_reviews'), (int)$result['reviews']),
    		'href'        => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'])
    	);
    } 

    Необходимо добавить текст, но этот код может быть таким:

    	$this->data['products'][] = array(
    		'product_id'  => $result['product_id'],
    		'thumb'       => $image,
    		'name'        => $result['name'],
    		'mimage'=> $this->model_tool_image->resize($result['mimage'], $this->config->get('config_category_manufacturer_image_width'), $this->config->get('config_category_manufacturer_image_height')),
    		'manufacturer'=> $result['manufacturer'],
    		'manufacturer_link' => $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $result['manufacturer_id']),			
    		'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..',
    		'price'       => $price,
    		'special'     => $special,
    		'tax'         => $tax,
    		'rating'      => $result['rating'],
    		'reviews'     => sprintf($this->language->get('text_reviews'), (int)$result['reviews']),
    		'href'        => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'])
    	);
    }
    

    Т.е. offset тут не поможет. Вот такая регулярка сможет выделить именно тот код, который мне необходим, но vqmod обрабатывает данные построчно и preg_match тоже применяются только к строке, а не ко всему документу.

  2. $result[0] это и есть первая end($result) или $result[count($result)-1]- последняя.

     

    Извиняюсь. В этом контроллере ничего трогать не нужно. Проблема где-то в модуле галереи (в JS или HTML).

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

    $results = $this->model_catalog_product->getProductImages($this->request->get['product_id']);
    
    unset($results[0]); // Добавьте
    
    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'))
    	);
    }	
    
    
  4. по поиску ничего не нашел...

    Вопрос такой: как то можно обезопасить вход в админскую зону? от перебора паролей например поставить кол-во неверных введеных попыток (3,5,7,и тд)с блокировкой на час допустим,или поставить форму для введения случайных букв,цифр(щас забыл как называется..) или накрайняк, как хотя бы поменять строку ://ваш сайт/admin на что нить другое...???

     

    Поставьте двойную авторизацию(не в том смысле), чтобы пользователю нужно было два раза подряд ввести правильный пароль. 

  5. И так один конфиг goldgrass.ru / public_html/ конфиг.пхп - корневой конфиг

    Второй goldgrass.ru / public_html / admin конфиг.пхп - если я верно понял то меняю этот конфиг???

     

    Да, настройки БД только не забудьте из первого во второй перенести.

    • +1 1
  6. Поздравляю, у Вас взломали сайт. Файл config.php должен выглядеть вот так:

    <?php
    // HTTP
    define('HTTP_SERVER', 'http://1564.opencart.im/admin/');
    define('HTTP_CATALOG', 'http://1564.opencart.im/');
    
    // HTTPS
    define('HTTPS_SERVER', 'http://1564.opencart.im/admin/');
    define('HTTPS_CATALOG', 'http://1564.opencart.im/');
    
    // DIR
    define('DIR_APPLICATION', 'Z:\home\opencart.im\1564/admin/');
    define('DIR_SYSTEM', 'Z:\home\opencart.im\1564/system/');
    define('DIR_DATABASE', 'Z:\home\opencart.im\1564/system/database/');
    define('DIR_LANGUAGE', 'Z:\home\opencart.im\1564/admin/language/');
    define('DIR_TEMPLATE', 'Z:\home\opencart.im\1564/admin/view/template/');
    define('DIR_CONFIG', 'Z:\home\opencart.im\1564/system/config/');
    define('DIR_IMAGE', 'Z:\home\opencart.im\1564/image/');
    define('DIR_CACHE', 'Z:\home\opencart.im\1564/system/cache/');
    define('DIR_DOWNLOAD', 'Z:\home\opencart.im\1564/download/');
    define('DIR_LOGS', 'Z:\home\opencart.im\1564/system/logs/');
    define('DIR_CATALOG', 'Z:\home\opencart.im\1564/catalog/');
    
    // DB
    define('DB_DRIVER', 'mysqli');
    define('DB_HOSTNAME', 'localhost');
    define('DB_USERNAME', 'root');
    define('DB_PASSWORD', '');
    define('DB_DATABASE', '1564');
    define('DB_PREFIX', 'oc_');
    ?>
    

     

    Рекомендую Вам:

    • Удалить файл admin/config.php и поставить вместо него "универсальный config.php"
    • Использовать скрипт ai-bolit или PHP-Shell-Detector для поиска других шеллов.
    • Если у Вас старая версия OpenCart, обновитесь, либо устраните уязвимости, которые есть в старых версиях.
    • Если на аккаунте есть другие сайты, то их тоже нужно проверить.
    • Если Вы скачивали дополнения с варезов, то сами виноваты. 

     

    аааа в корневом конфиге есть define('DIR_APPLICATION', '/home/g/goldgrass/goldgrass.ru/public_html/catalog/');

     

    Там два конфига должно быть, один для каталога(витрины магазина), другой для админки. Оба разные(одинаковые только настройки БД).

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

     

    Есть предложение в Index.php для каждой сборки добавлять:

    define('generator', 'ocstore');
    define('generator', 'brocart');
    define('generator', 'ocshopcms');
    

    Дабы как-то отличать сборки в модулях. Т.к. при разработке трудно поддерживать модуль для разных сборок. Одна строка может много решать.

    • +1 1
  8. Как я понял, модуль при посещении определенной категории отображает все дочерние категории. Если родительская категория есть в хлебных крошках, то ее можно получить из GET переменной path.

    $path = explode('_', $this->request->get['path']);
    //ID текущей категории
    $category_id = (int)end($path);
    //ID родительской категории
    $parent_category_id = (int)prev($path);
    //Ссылка
    $parent_link = $this->url->link('product/category', '&path='.$parent_category_id);
    

    Типа того, основной алгоритм, надеюсь, поняли. Там еще проверки нужно добавить и при генерации ссылки вместо $parent_category_id нужно прописать ID всех категорий, начиная от главной, разделенных "_" землей. 

    • +1 1
  9. Ваша реализация мне понравился, я просто подметил, что при таком решении в представлении могут быть не используемые переменные.

     

    На производительность это никак не повлияет.

  10. У меня клиент был, который был настолько пугливый что даже мой ип на хостинг на входе подтверждал, в итоге я захожу в панель, а потом 4 часа жду пока он соизволит разрешить вход. Я его в итоге послал. Вас наверно также пошлют, никому не надо тратить время чтобы клиенту объяснить для чего галочку в правах поставить

     

    Я бы точно послал, либо брал оплату в 3 раза больше, за потраченное время. Либо вообще не тратил время на таких клиентов. Это геморрой, которого у разработчика быть не должно. Топикстартеру рекомендую все-таки дать пароли, т.к. без паролей он ничего сделать не сможет.

     

     

     И в конце концов как от этого обезопаситься??

     

    Только своевременными бекапами или найдите хорошего разработчика.

  11. Ребят а вот тут при установке есть два варианта выбора http://joxi.ru/jUA6VP3JTJB8BW_qaKE раньше было mysql и mysqli

    кто-нибудь может объяснить или скинуть ссылку где можно почитать про mPDO (знаю что PDO это объектное ориентированное программирование и все...) В яндексе пробовал вбивать, но там совсем не по теме выскакивают запросы.

     

    Используйте Google) 

     

    Вот тут нашел перевод ссылка

    Вроде все норм, но ты свой сделай у тебя хорошие получаются. Может что и пофиксишь оттуда :wink:

     

    Спасибо, но я перевожу с нуля. Скоро будут доступны для загрузки русифицированный OpenCart 2.0, а так же standalone пакет для локализации уже установленного OpenCart 2.0.

  12. if (count($results) == 1) {
      $product = end($results);
      $href = $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $product['product_id'] . $url);
      $this->redirect($href);
    }
    
    

    Не знаю будет работать или нет.

  13. Нашел этот код в контроллере товара OpenCart 1.5.6.4:

    $this->load->model('catalog/manufacturer');
    
    if (isset($this->request->get['manufacturer_id'])) {
    	$this->data['breadcrumbs'][] = array(
    		'text'      => $this->language->get('text_brand'),
    		'href'      => $this->url->link('product/manufacturer'),
    		'separator' => $this->language->get('text_separator')
    	);
    
    	$url = '';
    
    	if (isset($this->request->get['sort'])) {
    		$url .= '&sort=' . $this->request->get['sort'];
    	}
    
    	if (isset($this->request->get['order'])) {
    		$url .= '&order=' . $this->request->get['order'];
    	}
    
    	if (isset($this->request->get['page'])) {
    		$url .= '&page=' . $this->request->get['page'];
    	}
    
    	if (isset($this->request->get['limit'])) {
    		$url .= '&limit=' . $this->request->get['limit'];
    	}
    
    	$manufacturer_info = $this->model_catalog_manufacturer->getManufacturer($this->request->get['manufacturer_id']);
    
    	if ($manufacturer_info) {
    		$this->data['breadcrumbs'][] = array(
    			'text'	    => $manufacturer_info['name'],
    			'href'	    => $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . $url),
    			'separator' => $this->language->get('text_separator')
    		);
    	}
    } 

    Он добавляет производителя в хлебные крошки если есть manufacturer_id. Измените его, чтобы вместо $this->request->get['manufacturer_id'] он использовал manufacturer_id текущего товара.

  14. В контроллере категорий, после строки:

    $results = $this->model_catalog_product->getProducts($data);
    

    добавить:

    if (count($results) == 1) {
      $href = $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $results[0]['product_id'] . $url);
      $this->redirect($href);
    }
    
×
×
  • Створити...

Important Information

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