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

halfhope

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

    1 750
  • З нами

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

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

  1. Спасибо, но какие то чудеса, ничего не помогло, возможно где то права не правильно указал

     

    Я недавно писал маленький скрипт для сброса пароля на всех версиях OpenCart, но еще не выкладывал. Надеюсь, что кому-нибудь он будет полезен.

     

    pass.zip

     

    Инструкция:

    • Откройте файл pass.php в редакторе, введите в переменные желаемое имя и пароль (по умолчанию: admin:123)
    • Переместите файл pass.php в корень сайта
    • Выполните скрипт один раз, (http://адрес-сайта/pass.php)
    • По окончании будет показано сообщение об удачной смене пароля
    • Если файл pass.php сам не удалился, то УДАЛИТЕ ЕГО.
  2. Доброе утро. Может кто из разработчиков или пользователей сталкивался. При стандартном редактировании карточки  товара,  картинка выбирается файловым менеджером. Все вроде бы хорошо. Но вот стало много товаров и много картинок, картинки по папкам, папок этих немеряно. И вот заходишь в товар, чтобы фото ему добавить еще одно, и нужно искать папку с фотками конкретно этого товара. 

    Помогите пожалуйста, можно ли как то в файловый менеджер добавить адресную строку или чтобы если в товаре уже есть фото, при нажатиии "обзор", открывалась директория с этим фото, а не корневая. Стоит доработанный менеджер, он умеет запоминать последнюю директорию, но как его заставить перейти в директорию фотографии товара, не могу понять.  

     

    Неплохая идея. Скиньте, пожалуйста ссылку на доработанный менеджер.

  3. Вот и ответ: Ваша база занимает 3Mb при квоте в 4Gb. Место на диске под базы данных не занято даже и наполовину. Суммируя написанное: лучше поискать другой форум для консультаций по работе вашей CMS.

     

    Учитывая все выше сказанное могу с уверенностью сказать, что У Вас что-то с mysql сервером. OpenCart тут не причем и сам по себе таких ошибок вызывать в принципе не может. Пишите тех. поддержке или попробуйте перенести сайт на другой хостинг. Ищите ответы на вопросы и в других местах, писать было вовсе не обязательно.

  4. Приветствую.

     

    1. Вы куда OpenCart обновлять собрались? Далее идет только OpenCart 2.0 и при обновлении придется много чего переписывать. Если для хранения ссылки будете использовать неиспользуемое поле(SKU, EAN и т.д.), то на обновлении это не скажется, т.к. все изменения будут вносится в контолллер(одна строка) и в файлы шаблона, а шаблон при обновлении, если не стандартный, остается тот же.

    2. В контроллере после:

    $this->data['model'] = $product_info['model'];
    

    добавить:

    $this->data['ean'] = $product_info['ean'];
    

    Теперь его можно использовать в product.tpl:

    <?php if !empty($ean): ?>
    <input type="button" value="<?php echo $ean; ?>" id="button-cart" class="button" />
    <?php else: ?>
    <input type="button" value="<?php echo $button_cart; ?>" id="button-cart" class="button" />
    <?php endif ?>
    

    3. Да, возможно.

     

    Если все грамотно делать, то вот инструкция.

  5. В таком плане, то да, но я так понял online надо

     

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

  6. Как вы представляете соединить сервис и стандартные отзывы?!

     

    Я однажды делал для modcom.kz такого "гибрида", только там были отзывы от testfreaks. Там был очень уж удобный API. Каждую пятницу TestFreaks выгружал на свой readonly FTP сервер xls файл с рейтингом товаров в магазине я просто рейтинг обновлял и все. Здесь схема почти такая же, только API немного легче. Придется структура БД немного поменять и запросы подправить. 

  7. Посмотрите меню на сайте http://bose.halfhope.ru/, если Вы имеете ввиду именно то, то вот Вам содержимое файла header.tpl:

    <!DOCTYPE html>
    <html dir="<?php echo $direction; ?>" lang="<?php echo $lang; ?>">
    <head>
    <meta charset="UTF-8" />
    <title><?php echo $title; ?></title>
    <base href="<?php echo $base; ?>" />
    <?php if ($description) { ?>
    <meta name="description" content="<?php echo $description; ?>" />
    <?php } ?>
    <?php if ($keywords) { ?>
    <meta name="keywords" content="<?php echo $keywords; ?>" />
    <meta name="format-detection" content="telephone=no">
    <meta name="apple-mobile-web-app-capable" content="no">
    <?php } ?>
    <?php if ($icon) { ?>
    <link href="<?php echo $icon; ?>" rel="icon" />
    <?php } ?>
    <?php foreach ($links as $link) { ?>
    <link href="<?php echo $link['href']; ?>" rel="<?php echo $link['rel']; ?>" />
    <?php } ?>
    <link rel="stylesheet" type="text/css" href="catalog/view/theme/ocstore-premium/stylesheet/stylesheet.css" />
    <?php foreach ($styles as $style) { ?>
    <link rel="<?php echo $style['rel']; ?>" type="text/css" href="<?php echo $style['href']; ?>" media="<?php echo $style['media']; ?>" />
    <?php } ?>
    <script type="text/javascript" src="catalog/view/theme/ocstore-premium/javascript/jquery/jquery-1.7.1.min.js"></script>
    <script type="text/javascript" src="catalog/view/theme/ocstore-premium/javascript/jquery/ui/jquery-ui-1.8.16.custom.min.js"></script>
    <link rel="stylesheet" type="text/css" href="catalog/view/theme/ocstore-premium/javascript/jquery/ui/themes/ui-lightness/jquery-ui-1.8.16.custom.css" />
    <script type="text/javascript" src="catalog/view/javascript/jquery/ui/external/jquery.cookie.js"></script>
    <script type="text/javascript" src="catalog/view/theme/ocstore-premium/javascript/jquery/colorbox/jquery.colorbox.js"></script>
    <link rel="stylesheet" type="text/css" href="catalog/view/theme/ocstore-premium/javascript/jquery/colorbox/colorbox.css" media="screen" />
    <script type="text/javascript" src="catalog/view/theme/ocstore-premium/javascript/jquery/tabs.js"></script>
    <script type="text/javascript" src="catalog/view/theme/ocstore-premium/javascript/common.js"></script>
    <link rel="stylesheet" type="text/css" href="catalog/view/theme/ocstore-premium/stylesheet/carousel.css" media="screen" />
    <script type="text/javascript" src="catalog/view/theme/ocstore-premium/javascript/jquery/jquery.jcarousel.min.js"></script>
    <?php foreach ($scripts as $script) { ?>
    <script type="text/javascript" src="<?php echo $script; ?>"></script>
    <?php } ?>
    <!--[if IE 7]>
    <link rel="stylesheet" type="text/css" href="catalog/view/theme/ocstore-premium/stylesheet/ie7.css" />
    <![endif]-->
    <!--[if !IE]><!-->
    <script>if(/*@cc_on!@*/false){document.documentElement.className+=' ie10';}</script>
    <!--<![endif]-->
    <link rel="stylesheet" type="text/css" href="catalog/view/theme/ocstore-premium/stylesheet/ie10.css" />
    
    
    
    <!--[if lt IE 7]>
    <link rel="stylesheet" type="text/css" href="catalog/view/theme/ocstore-premium/stylesheet/ie6.css" />
    <script type="text/javascript" src="catalog/view/javascript/DD_belatedPNG_0.0.8a-min.js"></script>
    <script type="text/javascript">
    DD_belatedPNG.fix('#logo img');
    </script>
    <![endif]-->
    <?php echo $google_analytics; ?>
    <script src='catalog/view/theme/ocstore-premium/javascript/jquery/jquery.elevateZoom-2.5.5.min.js'></script>
    <!-- <link href='http://fonts.googleapis.com/css?family=Open+Sans&subset=latin,cyrillic-ext' rel='stylesheet' type='text/css'> -->
    </head>
    <body
        <?php if (!isset($this->request->get['route']) || (isset($this->request->get['route']) && $this->request->get['route'] == 'common/home')) { ?>
    id="line"
    <?php } else { ?>
    id="line-home"
    <?php } ?>
    >
    
    <div class="menu-top">
    	<div class="menu-top-content">	
    	</div>
    </div>
    <div class="menu-top2">
    	<div class="menu-top-content2">
    	<div class="social">
    	<img src="/catalog/view/theme/ocstore-premium/image/vk.png"><!-- <img src="/catalog/view/theme/ocstore-premium/image/facebook.png"><img src="/catalog/view/theme/ocstore-premium/image/twitter.png"> -->
    	</div>
    	<div class="phone">(044) 123-46-67</div>
    	</div>
    </div>
    <div class="menu-main">
    </div>
    <div class="line-main">
    
    
    
        <div class="menu-top-content3">
        <?php if ($categories) { ?>
        <div id="menu">
          <ul>
            <?php foreach ($categories as $category) { ?>
            <li><?php if ($category['active']) { ?>
        	<a href="<?php echo $category['href']; ?>" data-thumb-id="<?php echo $category['category_id'] ?>" data-thumb="<?php echo $category['thumb']; ?>" class="active"><?php echo $category['name']; ?></a>
        	<?php } else { ?>
        	<a href="<?php echo $category['href']; ?>" data-thumb-id="<?php echo $category['category_id'] ?>" data-thumb="<?php echo $category['thumb']; ?>"><?php echo $category['name']; ?></a>
        	<?php } ?>
        
              <?php if ($category['children']) { ?>
              <div>
                <?php for ($i = 0; $i < count($category['children']);) { ?>
                <div>
                  <ul>
                    <?php $j = $i + ceil(count($category['children']) / $category['column']); ?>
                    <?php for (; $i < $j; $i++) { ?>
                    <?php if (isset($category['children'][$i])) { ?>
                    <li><a href="<?php echo $category['children'][$i]['href']; ?>" data-thumb-id="<?php echo $category['category_id'] ?>" data-thumb="<?php echo $category['children'][$i]['thumb']; ?>"><?php echo $category['children'][$i]['name']; ?></a></li>
                    
                    
                    <?php } ?>
                    <?php } ?>
                     <div class="clear"></div>
                  </ul>
                </div>
                <img src="<?php echo $category['thumb']; ?>" alt="" class="thumb thumb<?php echo $category['category_id']; ?>">
                <?php } ?>
              </div>
              <?php } ?>
            </li>
            <?php } ?>
          </ul> 
        </div>
        
       
        <?php } ?>
        </div>
    
    
    
    
    </div>
    
    
    
    <div class="content-n">
        <div class="content-vn">
        
        
    
    
    
    <div id="container">
    <div id="header">
      <?php if ($logo) { ?>
      <div id="logo"><a href="<?php echo $home; ?>"><img width="236" height="89" src="<?php echo $logo; ?>" title="<?php echo $name; ?>" alt="<?php echo $name; ?>" /></a></div>
      <?php } ?>
      <?php echo $currency; ?>
      <?php echo $cart; ?>
    <?php echo $language; ?>
      <div id="search">
        <div class="button-search"></div>
        <input type="text" name="search" placeholder="<?php echo $text_search; ?>" value="<?php echo $search; ?>" />
      </div>
      <div id="welcome">
        <?php if (!$logged) { ?>
        <?php echo $text_welcome; ?>
        <?php } else { ?>
        <?php echo $text_logged; ?>
        <?php } ?>
      </div>
      <div class="links"><a href="<?php echo $home; ?>"><?php echo $text_home; ?></a><a href="<?php echo $wishlist; ?>" id="wishlist-total"><?php echo $text_wishlist; ?></a><a href="<?php echo $account; ?>"><?php echo $text_account; ?></a><a href="<?php echo $shopping_cart; ?>"><?php echo $text_shopping_cart; ?></a><a href="<?php echo $checkout; ?>"><?php echo $text_checkout; ?></a></div>
    
        <div class="clear"></div>
    </div>
    <div id="notification"></div>
    <script>
    $(document).ready(function() {
      $('#menu').on('mouseenter', 'a', function(event) {
        event.preventDefault();
        $('.thumb' + $(this).attr('data-thumb-id')).attr('src', $(this).attr('data-thumb'));
      });
    });
    </script> 

     

    UPD: Правильно будет вот так:

    <a href="<?php echo $category['href']; ?>">
      <div class="navIMG">
        <img src="img/che.png" class="n<?php echo $category['category_id']; ?>"/>
      </div>
      <div class="nameCat"><?php echo $category['name']; ?></div>
    </a>
    </li>
    
  8. Спасибо!

     

    Как посчитать правильную цену я понимаю :) вопрос в том как изменять стандартные модели и контроллеры чтобы при обновлении версий OpenCart не потребовалось все переделывать. Про vqmode  увы даже не слышал. Большое спасибо за рекомендацию. А вы ее использовали ? сильно замедляет работу системы ? 

     

    Я обычно делаю так. Делаю бекап сайта перед внесением изменений, вношу необходимые изменения в файлы. Если редактировал много файлов, то включаю BeyondCompare(пакетное сравнение содержимого файлов и каталогов) стоит $50. Вместо него можно что-нибудь другое использовать. Смотрю какие изменения в какие файлы вносил, на лету делаю vqmod файл, тестирую его на бекапе (тот что без изменений). Если работает, то удаляю сайт с изменениями. Итого: все изменения, которые я произвел есть в одном xml файле.

     

    От использования vqmod я отказался и клиентам не советую. Проще вносить изменения в код. Интернет-магазин не на один день делается, а как придет пора обновляться стоит посмотреть, - "а стоит ли вообще?!". Ведь можно новый функционал заменить модулем. Начиная с версии 2.4.1 vqmod стал быстрее а 2.5.0 вообще летает. Скачать vqmod 2.5.0 (самый свежий на данный момент) можно здесь. Документация по разработке vqmod модулей на английском языке находится здесь.

    Вот Вам пример простого vqmod файла:

    <?xml version="1.0" encoding="UTF-8"?>
    <modification>
    	<id>MCLite</id>
    	<version>1.0</version>
    	<vqmver>2.4.1</vqmver>
    	<author>Shashakhmetov Talgat [[email protected]]</author>
    	<file name="admin/controller/common/header.php">
    		<operation error="log">
    			<search position="after"><![CDATA[$this->data['text_zone'] = $this->language->get('text_zone');]]></search>
    			<add><![CDATA[$this->data['text_mclite'] = $this->language->get('text_mclite');]]></add>
    		</operation>
    		<operation error="log">
    			<search position="before"><![CDATA[$this->data['stores'] = array();]]></search>
    			<add><![CDATA[$this->data['mclite'] = $this->url->link('mclite/setting', 'token=' . $this->session->data['token'], 'SSL');]]></add>
    		</operation>
    	</file>
    	<file name="admin/language/*/common/header.php">
    		<operation error="log">
    			<search position="before"><![CDATA[?>]]></search>
    			<add><![CDATA[$_['text_mclite']		= 'Настройки MCLite';]]></add>
    		</operation>
    	</file>
    	<file name="admin/view/template/common/header.tpl">
    		<operation error="log">
    			<search position="after"><![CDATA[<li><a href="<?php echo $setting; ?>"><?php echo $text_setting; ?></a></li>]]></search>
    			<add><![CDATA[<li><a href="<?php echo $mclite; ?>"><?php echo $text_mclite; ?></a></li>]]></add>
    		</operation>
    	</file>
    </modification> 

     

    Добро пожаловать в сообщество) Крайне не рекомендую использовать чистый OpenCart используйте ocStore/BroCart/OcShop о преимуществах каждой из них можно узнать в гугле. 

     

    Статьи по теме:

    • +1 1
  9. Постараюсь ответить. Т.к. заранее опции товара неизвестны сначала нужно получить список доступных опций, затем выбрать самые первые и посчитать цену товара учитывая выбранные опции, акции, купоны и т.д. Из готовых функций более всего подходит функция ControllerCheckoutCart::add(); за основу рекомендую взять именно ее.

     

    Да, изменения будут удалены. Для того, чтобы напрямую не вносить изменения в код есть vqmod. 

  10. Да... наверное неприятно будет связать свой сайт с черным списком... )

     

    ...я бы, например, хотела (и сделаю это) опубликовать имя дизайн-студии, реквизиты владельца и менеджера, которые сливают (проверено, доказано) модули.  Т.к. действуют они как ИП, то жду не дождусь принятия некоторых законов, дабы показательно прижать хвост ушлым ребятам.

    И, самое главное, попросить прочих разработчиков не иметь с ними иных дел, кроме судебных.

     

     

    Неплательщики и мозгоеды - трепещите...) Если разработчики и веб-мастера нашего форума пойдут на вас войной, вам придется выучить PHP!!! а потом и вовсе встать по другую сторону баррикад...) 

      

     

    Если на территории РФ, то напишите в ЛС реквизиты.

  11. Ну пусть даже будет кнопка "купить" рядом с каждым товаром. Не суть. Главное, чтобы можно было указывать кол-во опций товара.

     

    Стандартно в OpenCart нужно выбрать опции, нажать купить, потом еще выбрать опции еще раз нажать, не иначе. 

  12.  

     

    Суть такова. Выбираем цвет и количество товара с данным цветом, потом еще цвет и кол-во и только после выбора всех интересующих цветов добавляем их в корзину.

     

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

  13. Всем спасибо, сделал совсем по-другому. Вытащил category id и через strpos проверял там ли оно находится ну и дальше условие.

     

    В контроллере product/product ID категории можно получить вот так:

    $category_id = explode('_', $this->request->get['path']);
    $category_id = (int)end($category_id);
    

    Либо, чтобы получить все категории, в которых находится тот или иной товар можно воспользоваться функцией:

    public function getProductCategories($product_id) {
    	$product_category_data = array();
    	
    	$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "product_to_category WHERE product_id = '" . (int)$product_id . "'");
    	
    	foreach ($query->rows as $result) {
    		$product_category_data[] = $result['category_id'];
    	}
    	return $product_category_data;
    }
    
  14. Подождите, если на главной, то там категории выводятся с помощью какого-то модуля "cathome". То, что я писал ранее можно не использовать. Если это модуль, то ищите файлы "catalog/controller/module/cathome.php" и "catalog/view/theme/название-темы/template/modile/cathome.tpl" если нет, то не знаю чем помочь, только FTP с доступом.

  15. Ок.

     

    Контроллер из файла "catalog/controller/product/category.php" запрашивает список категорий из модели "catalog/model/catalog/category.php", далее этот контроллер обрабатывает пришедшие данные их и передает в шаблон "catalog/view/theme/название-темы/template/product/category.tpl".

     

    Подробнее.

    Контроллер раздела категорий получает текущую категорию в ~ в 56 строке ($category_info), затем получает все дочерние категории в ~133 строке ($results).

     

    Можете просто var_dump-ом в контроллере проверить массив $results (~133 строка)

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

Important Information

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