1. Приветствую гостей и пользователей нашего форума! Первый раз вы у нас или же давно участвуете в жизни ресурса, хочу напомнить несколько моментов.

    1) Пользуемся поиском по форуму! Зачастую информация может находиться не по разделу!

    2) Раздел ИНФО-продуктов относительно новый, но имеем уже более 3000 высококлассных материалов (пользуемся сортировкой по прификсам).

    3) И самое важное, КАК КАЧАТЬ БЕЗ ОГРАНИЧЕНИЙ, вся информация находится по этой ссылке КУПИТЬ VIP

    4) Временная акция, получи +5 постов за вступление в нашу группу "Вконтакте" Более подробно ТУТ

    5) Веди активную жизнь на форуме и получай рубли на личный счёт!

    Скрыть объявление
  2. На нашем форуме Null-Prog действует серьёзное правило касательно размещения материалов!

    ДЛЯ РЕЛИЗЁРОВ: категорически запрещается выкладка материалов на файлообменники типа Deposit, letitbit и другие, требующие просмотров рекламы, обрезающие скорость и тд. Нарушителям, первые 2 раза предупреждения, далее БАН. Тему по этому поводу можно посмотреть ТУТ

    Скрыть объявление
  3. В тестовом режиме на нашем форуме открыт онлайн конструктор сайтов. Вы можете попробовать создать свой сайт у НАС, интуитивно понятный интерфейс, переведёт на 95%, быстрый экспорт проекта, от вас только перетаскивать элементы и вставить в них необходимый текст!

    Все вопросы ТУТ

    Скрыть объявление

  4. Скрыть объявление
  5. Уважаемые форумчане, открывается новый раздел форума, посвящённый ремонту и эксплуатации автомобилей. Просмотреть его можно ТУТ

    Так как раздел новый, информация будет пополнять каждый день. Если есть какие либо замечания по этому разделу, отписываемся в соответствующий раздел форума, либо в личку.

    Напоминаю, сообщения в разделе АВТО не учитываются, общение не ограничено.

    Скрыть объявление
  6. Объявляется набор Модераторов на различные раздел форума, свои заявки можно оставлять в ЭТОМ разделе, перед оставлением заявки рекомендуется ознакомиться с ПРАВИЛАМИ для модераторов.

Важно База знаний по OpenCart или FAQ пользователя

Тема в разделе "OpenCart", создана пользователем Sam Jack, 13 май 2015.

  1. Sam Jack

    Sam Jack Капитан-Узурпатор
    Команда форума Созидатель

    Регистрация:
    5 май 2015
    Сообщения:
    13.744
    Симпатии:
    4.884
    Убираем ?page=1 - дубль для первой страницы категории

    В файле system\library\pagination.php
    находим:
    Код:
    if($page >1){
    $output .=' <a href="'. str_replace('{page}',1, $this->url).'">'. $this->text_first .'</a> <a href="'. str_replace('{page}', $page -1, $this->url).'">'. $this->text_prev .'</a> ';}
    заменяем на:
    Код:
    if($page >1){
    $tmp_url = str_replace('&amp;','&', $this->url);
    $output .=' <a href="'. str_replace('&','&amp;', rtrim( str_replace('page={page}','', $tmp_url),'?&')).'">'. $this->text_first .'</a>';if($page ==2){
    $output .='<a href="'. str_replace('&','&amp;', rtrim( str_replace('page={page}','', $tmp_url),'?&')).'">'. $this->text_prev .'</a> ';}else{
    $output .='<a href="'. str_replace('{page}', $page -1, $this->url).'">'. $this->text_prev .'</a> ';}}
    находим:
    Код:
    for($i = $start; $i <= $end; $i++){if($page == $i){
    $output .=' <b>'. $i .'</b> ';}else{
    $output .=' <a href="'. str_replace('{page}', $i, $this->url).'">'. $i .'</a> ';}}
    заменяем на:
    Код:
    for($i = $start; $i <= $end; $i++){if($page == $i){
    $output .=' <b>'. $i .'</b> ';} elseif($i ==1){
    $output .=' <a href="'. str_replace('&','&amp;', rtrim( str_replace('page={page}','', $tmp_url),'?&')).'">'. $i .'</a> ';}else{
    $output .=' <a href="'. str_replace('{page}', $i, $this->url).'">'. $i .'</a> ';}}
    После проделанного нужно почистить кеш
     
  2. Sam Jack

    Sam Jack Капитан-Узурпатор
    Команда форума Созидатель

    Регистрация:
    5 май 2015
    Сообщения:
    13.744
    Симпатии:
    4.884
    В навигационной строке последний элемент (текущую страницу) делаем простым текстом

    В файле catalog/view/theme/default/template/product/product.tpl
    находим:
    Код:
    <div class="breadcrumb">
    <?php foreach ($breadcrumbs as $breadcrumb) { ?>
    <?php echo $breadcrumb['separator']; ?><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a>
    <?php } ?>
    </div>
    заменяем на:
    Код:
    <div class="breadcrumb">
    <?php foreach ($breadcrumbs as $i=> $breadcrumb) { ?>
    <?php echo $breadcrumb['separator']; ?><?php if($i+1<count($breadcrumbs)) { ?><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a> <?php } else { ?><?php echo $breadcrumb['text']; ?><?php } ?>
    <?php } ?>
    </div>
     
  3. Sam Jack

    Sam Jack Капитан-Узурпатор
    Команда форума Созидатель

    Регистрация:
    5 май 2015
    Сообщения:
    13.744
    Симпатии:
    4.884
    Стилизация символа валюты отдельно от цены
    \system\library\currency.php
    Код:
    public function format($number, $currency = '', $value = '', $format = true) {
            if ($currency && $this->has($currency)) {
                  $symbol_left  = $this->currencies[$currency]['symbol_left'];
                  $symbol_right  = $this->currencies[$currency]['symbol_right'];
                  $decimal_place = $this->currencies[$currency]['decimal_place'];
            } else {
                  $symbol_left  = $this->currencies[$this->code]['symbol_left'];
                  $symbol_right  = $this->currencies[$this->code]['symbol_right'];
                  $decimal_place = $this->currencies[$this->code]['decimal_place'];
    заменяем на:
    Код:
    public function format($number, $currency = '', $value = '', $format = true) {
            if ($currency && $this->has($currency)) {
                  $symbol_left  = $this->currencies[$currency]['symbol_left'];
                  $symbol_right  = '<span class="currency">'.$this->currencies[$currency]['symbol_right'].'</span>';
                  $decimal_place = $this->currencies[$currency]['decimal_place'];
            } else {
                  $symbol_left  = $this->currencies[$this->code]['symbol_left'];
                  $symbol_right  = '<span class="currency">'.$this->currencies[$this->code]['symbol_right'].'</span>';
                  $decimal_place = $this->currencies[$this->code]['decimal_place'];
    В результате в HTML получаем
    <p class="price">100.00<span class="currency"> руб.</span></p>

    что позволяет управлять стилями валюты.

    p.s. Рецепт справедлив для символов валют располагаемых справа от цены.
     
  4. Sam Jack

    Sam Jack Капитан-Узурпатор
    Команда форума Созидатель

    Регистрация:
    5 май 2015
    Сообщения:
    13.744
    Симпатии:
    4.884
    Пример разработки модуля для OpenCart:

     
  5. Sam Jack

    Sam Jack Капитан-Узурпатор
    Команда форума Созидатель

    Регистрация:
    5 май 2015
    Сообщения:
    13.744
    Симпатии:
    4.884
    Видеокурс по установка модального окна на CMS OpeCart
     
  6. Sam Jack

    Sam Jack Капитан-Узурпатор
    Команда форума Созидатель

    Регистрация:
    5 май 2015
    Сообщения:
    13.744
    Симпатии:
    4.884
    Классы и основные функций:
    Код:
    // Cache Кэш
    $this->cache->set($key, $value); // Внесение данных в кэш
    $this->cache->get($key); // Получение данных из кэша
    $this->cache->delete($key); // Удаление данных из кэша
    
    // 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, если хотя бы один элемент корзины связан с какой-либо загрузкой
    
    // Config Настройки
    $this->config->get($key); // Возвращает значение настройки
    $this->config->set($key, $value); // Устанавливает значение настройки (Не сохраняется в базе данных)
    
    // Currency Валюта
    $this->currency->set($currency); // Устанавливает код валюты, который будет использоваться в сессии
    $this->currency->format($number, $currency = '', $value = '', $format = TRUE); // "format" валюты
    $this->currency->convert($value, $from, $to); // Конвертирует значение одной валюты в другую
    $this->currency->getId(); // Возвращает ID текущей валюты (1, 2, 3, 4)
    $this->currency->getCode(); // Возвращает код текущей валюты (USD, EUR, GBP, AUD, etc)
    $this->currency->getValue($currency); // Возвращает текущий курс для указанной валюты
    $this->currency->has($currency) // Проверяет существует ли указанная валюта
    
    // Customer Клиент
    $this->customer->login($email, $password); //Авторизация
    $this->customer->logout(); // Выход
    $this->customer->isLogged(); // Проверяет авторизован клиент или нет
    $this->customer->getId(); // Получает ID клиента
    $this->customer->getFirstName(); // Получает первое имя клиента
    $this->customer->getLastName(); // Получает второе имя клиента
    $this->customer->getEmail(); // Получает Email ользователя
    $this->customer->getTelephone(); // Получает номер телефона клиента
    $this->customer->getFax(); // Получает факс клиента
    $this->customer->getNewsletter(); // Получает подписку клиента
    $this->customer->getCustomerGroupId(); // Получает ID группы клиента
    $this->customer->getAddressId(); // Получает ID адреса пользователя
    
    // DB База данных
    $this->db->query($sql); //Выполняет SQL запрос
    $this->db->escape($value); // Слеширует данные перед внесением в базу данных
    $this->db->countAffected($sql); // Возвращает кол-во затронутых запросом строк
    $this->db->getLastId($sql); //Возвращает значение последнего auto_increment поля
    
    // Document Документ
    $this->document->setTitle($title); // Устанавливает title страницы
    $this->document->getTitle(); // Возвращает title страницы
    $this->document->setDescription($description); // Устанавливает description
    $this->document->getDescription(); // Возвращает description
    $this->document->setKeywords(); // Устанавливает keywords
    $this->document->getKeywords(); // Возвращает keywords
    $this->document->setBase($base); // Устанавливает базовую ссылку
    $this->document->getBase(); // Возвращает базовую ссылку
    $this->document->setCharset($charset); // Устанавливает charset страницы
    $this->document->getCharset(); Возвращает charset страницы
    $this->document->setLanguage($language); // Устанавливает язык страницы
    $this->document->getLanguage(); // Возвращает язык страницы
    $this->document->setDirection($direction); // Устанавливает направление текста страницы (rtl/ltr)
    $this->document->getDirection(); // Возвращает направление текста страницы (rtl/ltr)
    $this->document->addLink( $href, $rel ); // Добавляет тег <link>
    $this->document->getLinks(); // Возвращает массив тегов <link>
    $this->document->addStyle( $href, $rel = 'stylesheet', $media = 'screen' ); // Добавляет стиль
    $this->document->getStyles(); // Возвращает массив стилей
    $this->document->addScript( $script ); // Добавляет скрипт
    $this->document->getScripts(); // Возвращает массив скриптов
    $this->document->addBreadcrumb($text, $href, $separator = ' &gt; '); // Добавляет хлебные крошки в массив
    $this->document->getBreadcrumbs(); // Возвращает хлебные крошки
    
    // Encryption Шифрование
    $this->encryption->encrypt($value); // Шифрует строку на основе ключа, установленного в административной панели.
    $this->encryption->decrypt($value); // Дешифрует строку
    
    // JSON
    $this->json->encode( $data ); // Шифрует данные в формат JSON
    $this->json->decode( $data , $assoc = FALSE); // Дешифрует данные из формата JSON
    
    // Language Язык
    $this->language->load($filename); // Загрузка языка
    $this->language->get($key); // Возвращает значение языковой переменный текущего языка
    
    // Lenght Длина
    $this->length->convert($value, $from, $to); // Конвертирует длину из одной системы в другую
    $this->length->format($value, $unit, $decimal_point = '.', $thousand_point = ','); // Форматирует вывод длины
    
    // Log Лог
    $this->log->write($message); // Записывает сообщение в лог
    
    // Request Запрос
    $this->request->clean($data); // Очищает поступившие данные для предотвращения XSS
    $this->request->get['x'] = $_GET['x']
    $this->request->post['x'] = $_POST['x']
    
    // Response Ответ
    $this->response->addHeader($header); // Добавляет header
    $this->response->redirect($url); // Перенаправляет на $url
    
    // Session Сессия
    $this->session->data['x'] = $_SESSION['x']
     
  7. letexa370

    letexa370 Новичок

    Регистрация:
    4 сен 2015
    Сообщения:
    24
    Симпатии:
    32
    Это подходит для какой версии? Интересует 2.х
     
  8. Sam Jack

    Sam Jack Капитан-Узурпатор
    Команда форума Созидатель

    Регистрация:
    5 май 2015
    Сообщения:
    13.744
    Симпатии:
    4.884
    Не могу сказать, проверялось на версии 1.6хх
     
  9. letexa370

    letexa370 Новичок

    Регистрация:
    4 сен 2015
    Сообщения:
    24
    Симпатии:
    32
    Щас буду пробовать. Проверю отпишу.
     
  10. Пират

    Пират Пользователь

    Регистрация:
    4 сен 2015
    Сообщения:
    94
    Симпатии:
    129
    Здравствуйте как вместо кнопки "купить и статуса наличия" при выборе опции менялось значение на "предзаказ и кнопка заказать". В карточке товара(админка) всегда стоит количество товара (0), в опциях идут все изменения.
    Спасибо.
     
  11. Sam Jack

    Sam Jack Капитан-Узурпатор
    Команда форума Созидатель

    Регистрация:
    5 май 2015
    Сообщения:
    13.744
    Симпатии:
    4.884
    Если я правильно понял, то вам нужно просто изменить название кнопки, то я лично это делал через файлы языка. т.е. заходите в папку русского языка, находите файл с переводами вашего раздела и там меняете значение.
     
  12. Пират

    Пират Пользователь

    Регистрация:
    4 сен 2015
    Сообщения:
    94
    Симпатии:
    129
    Нет, я уже пробовал надо что бы было так: статус "есть в наличии" кнопка "купить" и статус "предзаказ" кнопка "заказать". Товар один и тот же.
    Постоянное количество товара - ноль, в опциях 1 -опция 3 товара, 2 - опция 2 товара, 3 - опция 0 товара, так она скрывается, а нужно что бы получалась кнопка заказать.
     
    #32 Пират, 5 сен 2015
    Последнее редактирование: 13 сен 2015
  13. warc

    warc Новичок

    Регистрация:
    15 сен 2015
    Сообщения:
    23
    Симпатии:
    1
    Однако много полезного на этом форуме, поставлю в избранное
     
  14. daemonspeeding

    daemonspeeding Новичок

    Регистрация:
    24 сен 2015
    Сообщения:
    45
    Симпатии:
    12
    Sam Jack не плохо было бы еще добавить сюда помощь о том как разместить на главной странице изображение в любую область страницы, а так же добавление кнопок на страницу с эффектом нажатия скажем. Очень клевые фишки я во многих шаблонах их видел.
     
  15. Sam Jack

    Sam Jack Капитан-Узурпатор
    Команда форума Созидатель

    Регистрация:
    5 май 2015
    Сообщения:
    13.744
    Симпатии:
    4.884
    Ну если сть инфа такая выкладывай=) Я лично выкладываю по мере нахождения того или иного контента)
     
  16. daemonspeeding

    daemonspeeding Новичок

    Регистрация:
    24 сен 2015
    Сообщения:
    45
    Симпатии:
    12
    Слушай такой вопрос. Дубли я убрал. Вот только если набирать свой сайт формата site.ru - работает и запускается. А если впереди добавить www.site.ru - не запускается. Пишет не возможно найти страницу. Это роде тоже не хорошо ибо в основном большинство сайтов работают и с www и без. Что делать?
     
  17. Sam Jack

    Sam Jack Капитан-Узурпатор
    Команда форума Созидатель

    Регистрация:
    5 май 2015
    Сообщения:
    13.744
    Симпатии:
    4.884
    Ну это тебе нужно в настройках домена смотреть, если не ошибаюсь, там как бы указать сайт и так и так...
     
  18. daemonspeeding

    daemonspeeding Новичок

    Регистрация:
    24 сен 2015
    Сообщения:
    45
    Симпатии:
    12
    Стоп-стоп (разобрался), все работает на ура. Незабываем только чистить папку System/Cache. Сенкс
     
  19. geroge

    geroge Новичок

    Регистрация:
    25 сен 2015
    Сообщения:
    19
    Симпатии:
    7
    Как убрать страну и регион в оформлении заказа
     
  20. Sam Jack

    Sam Jack Капитан-Узурпатор
    Команда форума Созидатель

    Регистрация:
    5 май 2015
    Сообщения:
    13.744
    Симпатии:
    4.884
    Что бы не насиловать мозг, обычно используют модуль Simple, на форуме он есть, там настраиваются все параметры оформления заказов и тд....
     

Поделиться этой страницей

iHax Community
Рейтинг@Mail.ru Яндекс.Метрика мониторинг сайтов
Форум программного обеспечения/
Загрузка...