Jump to content

Glinda

Пользователи
  • Content Count

    103
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Glinda

  • Rank
    Продвинутый пользователь

Recent Profile Visitors

2,113 profile views
  1. День добрый. Имеется мультимагазин (опенкарт 1.5.6,, в списке категорий планирую добавить ещё одно поле (наименование магазина, ибо неудобно в одной админке держать категории для всех магазинов и при этом не иметь возможности определить какая категория к какому магазину относится.) Вывод идёт в файле admin/view/template/catalog/category_list, путём выбора переменных из массива $category[ ], который в свою очередь формируется в admin/controller/catalog/category.php $category_total = $this->model_catalog_category->getTotalCategories(); $results = $this->model_catalog_category->getCategories($data); ..... $this->data['categories'][] = array( 'category_id' => $result['category_id'], 'name' => $result['name'], 'sort_order' => $result['sort_order'], 'selected' => isset($this->request->post['selected']) && in_array($result['category_id'], $this->request->post['selected']), 'action' => $action Так как опыта работы с запросами к БД нет, подскажите плз. как можно "вытащить" наименование магазина. Информация хранится в таблице oc_category_to_store в поле store_id. Заранее спасибо. Соответственно публичная ф-я в model/catalog получающая данные из базы: public function getCategories($data) { $sql = "SELECT cp.category_id AS category_id, GROUP_CONCAT(cd1.name ORDER BY cp.level SEPARATOR ' > ') AS name, c.parent_id, c.sort_order FROM " . DB_PREFIX . "category_path cp LEFT JOIN " . DB_PREFIX . "category c ON (cp.path_id = c.category_id) LEFT JOIN " . DB_PREFIX . "category_description cd1 ON (c.category_id = cd1.category_id) LEFT JOIN " . DB_PREFIX . "category_description cd2 ON (cp.category_id = cd2.category_id) WHERE cd1.language_id = '" . (int)$this->config->get('config_language_id') . "' AND cd2.language_id = '" . (int)$this->config->get('config_language_id') . "'";
  2. Есть проект http://pdt1.seotime.su, необходимо: 1. Доработать функцию геоопределения На данный момент геоопределение происходит так, в файле banner.tpl (именно там происходит вывод баннера в зависимости от региона) прописана ф-я <? function geo_ip($ip='', $to = 'utf-8'){ $ip = ($ip) ? $ip : $_SERVER['REMOTE_ADDR'] ; $xml = simplexml_load_file('http://ipgeobase.ru:7020/geo?ip='.$ip); if($xml->ip->message){ if( $to == 'utf-8' ) {return $xml->ip->message;} else { if( function_exists( 'iconv' ) ) return iconv( "UTF-8", $to . "//IGNORE",$xml->ip->message);else return "The library iconv is not supported by your server";} } else { if( $to == 'utf-8' ) {return $xml->ip->region;} else {if( function_exists( 'iconv' ) ) return iconv( "UTF-8", $to . "//IGNORE",$xml->ip->region);else return "The library iconv is not supported by your server";}}} ?> далее идёт проверка определена ли ф-я if (function_exists('geo_ip')) { echo "Функция geo_ip определена.<br />\n";$ip=geo_ip();} else {echo "Функция geo_ip определена.<br />\n";} Определяется на ура, но проблема в том что через раз. Ошибка Fatal error: Cannot redeclare geo_ip() in /var/www/glinda/data/subdomain/pdt1/catalog/view/theme/gazal/template/module/banner.tpl on line 8. лечится очисткой кеша. 2. Боковое меню (список категорий), должно так же выводится в зависимости от региона. В Админке для каждой категории указывается регион 3. Боковое меню (список категорий) должно быть с пангинацией Нужны цены и сроки по всем пунктам.
  3. Я с json не сталкивался, то что вы написали это проверка на существование функции, насколько я понял, вот я написал реализацию на php.
  4. Т.е. ели правильно понимаю <?php if (function_exists('geo_ip')) { echo "Функция geo_ip определена.<br />\n";$ip=geo_ip();} else {echo "Функция geo_ip неопределена.<br />\n";} ?> проверяем определена ли ф-я, если да, то переменной ip присваиваем значение - результат ф-ции, если не определена, то ничего не делаем.
  5. Ан, нет, то же самое - название функции поменял и название переменной
  6. День добрый. Ест такая проблема с геолокацией. Использую ф-ю для определения <? function geoip($ip='', $to = 'utf-8'){ $ip = ($ip) ? $ip : $_SERVER['REMOTE_ADDR'] ; $xml = simplexml_load_file('http://ipgeobase.ru:7020/geo?ip='.$ip); if($xml->ip->message){ if( $to == 'utf-8' ) {return $xml->ip->message;} else { if( function_exists( 'iconv' ) ) return iconv( "UTF-8", $to . "//IGNORE",$xml->ip->message);else return "The library iconv is not supported by your server";} } else { if( $to == 'utf-8' ) {return $xml->ip->region;} else {if( function_exists( 'iconv' ) ) return iconv( "UTF-8", $to . "//IGNORE",$xml->ip->region);else return "The library iconv is not supported by your server";}}} ?> Вызываю её в /template/module/banner.tpl (именно там и планирую баннеры показывать по регионам) и вывожу на экран $var=geoip(); echo $var; Первый запуск всё хорошо, но после перезагрузки страницы пишет Fatal error: Cannot redeclare geoip() in ... Поставил условие если переменная var определена, то ф-я не вызывается. Однако это не помогает. Страница нормально грузится только после чистки кэша (и то не всегда). Почему эта ошибка возникает не могу понять, ф-я же определена (находится в том же файле откуда и вызывается)?
  7. Есть сайт, на CMS Opencart. Необходимо для категорий сделать "дополнительные изображения" по аналогии с продуктами. Интересует стоимость работы, по строкам насколько я понимаю, 2-3 часа.
  8. День добрый. Получаю значения из БД для категорий (файл catalog/controller/product/category) а именно значения $street (предварительно создав строку в таблице и загрузив значение через админку) путём $this->data['street'] = $category_info['street']; Здесь всё в порядке - работает. Но появилась задача вывести это значение в модуле special.php Я делаю следущее: • В catalog/controller/module/special.php определяю массив $category_info, путём $category_info = $this->model_catalog_category->getCategory($result['product_id']); , где $result['product_id'] - номер категории (определяется верно), но когда я смотрю переменную (вывожу через print_r) - пустой масив. Да, подключаю еще $this->load->model('catalog/category'); $this->load->model('catalog/product'); $this->data['street'] = $category_info['street']; Результат всё равно пустой массив. Что не так делаю в контроллере, подскажите?
  9. День добрый. Столкнулся с такой проблемой - необходимо вывести изображение в модуле новости на главную, по-умолчанию вывод идёт на полный текст новости. Вывод осуществляется в catalog/view/theme/default/template/information/news.tpl строками <div class="image"> <a href="<?php echo $popup; ?>" title="<?php echo $heading_title; ?>" class="colorbox" rel="colorbox"><img src="<?php echo $thumb; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" id="image" /></a> </div> Мне необходимо что бы картинка выводилась на главной, т.е. этот код вставляем в catalog/view/theme/default/template/module/news. Здесь вопросов не возникает. Далее необходимо определить переменную thumb в контроллере. В /catalog/controller/information/news определяется это строками $this->data['thumb'] = $this->model_tool_image->resize($banknews_info['image'], $this->config->get('banknews_thumb_width'), $this->config->get('banknews_thumb_height')); $this->data['popup'] = $this->model_tool_image->resize($banknews_info['image'], $this->config->get('banknews_popup_width'), $this->config->get('banknews_popup_height')); При копировании этих строк в /catalog/controller/module/news получаем ошибку о неопределённой переменной banknews_info. Подскажите как определить эту переменную? Полный код /catalog/controller/information/news ниже
  10. Решил проблему следующим способом - фильтрую по $parts $parts = explode('_', (string)$this->request->get['path'])
  11. Упс. Надо $this->request->get['path']; (вместо стрелки тире поставил). Теперь пишет неопределённая переменная. get. - Notice: Undefined property: Config::$get in /var/www/glinda/data/subdomain/legarta/catalog/controller/module/cr2htmlmodule.php on line 29Notice: Undefined property: Config::$get in /var/www/glinda/data/subdomain/legarta/catalog/controller/module/cr2htmlmodule.php on line 29
  12. Если в контроллере модуля пишу $this-request->get['path']; или один из предложенных вариантов, страница не грузится вообще. Сайт , идём в категорию допустим "белая сантехника" - белый экран. Файербаг пишет "NetworkError: 500 Internal Server Error - http://legarta.seotime.su/santehnika-creavit/belaya-santehnika" "
  13. Есть обычный модуль HTML, в его контроллере я проверяю на условие по URL и в зависимости от этого скрываю тот или иной HTML блок (в примере проверка одного условия) $URL = $_SERVER['REQUEST_URI']; if (strstr($URL, 'belaya-santehnika') != FALSE) { switch($position) { case "area1": $this->data['escape'] = "visible"; break; case "area2": $this->data['escape'] = "none"; break; case "area3": $this->data['escape'] = "none"; break; } } Теперь появилась задача проверять условия и по хлебным крошкам, т.е. типа если раздел такой-то, то выводим блок такой-то. Проблема в получении значений масива breadcrumbs в контроллере модуля. Пробовал так. $breadcrumbs = $this->document->breadcrumbs; print_r($breadcrumbs); Пишет неопределённая переменная. Хотя по идее перед исполнением модуля массив breadcrumbs должен сформироваться.
×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.