Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

aakazakow

Новичок
  
  • Posts

    45
  • Joined

  • Last visited

1 Follower

Информация

  • Пол
    Мужлина

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

aakazakow's Achievements

Apprentice

Apprentice (3/14)

  • First Post
  • Collaborator
  • Conversation Starter
  • Week One Done
  • One Month Later

Recent Badges

1

Reputation

  1. Помогите пожалуйси интегрировать модуль с версией движка 1.5.1.3 (т.к. не рилииет) в версии 1.5.1.3 1.) в этом файле <file name="admin/controller/sale/order.php"> нет этот строки $this->load->model('sale/fraud'); 2.) в этом файле <file name="admin/view/template/sale/order_info.tpl"> отсутствует эи кнопка <a id="button-history" class="button"> На что заменить первый пункт ? В версии 1.5.1.3 нет икого, пропотому чтовал по разному вписывать другие варианты, но четно Помогите разобраться, модуль очень нужен
  2. Спасипотому что, полезный модуль! Для менее продвинутых пользователей рекомендовал бы сгделать одну папку "upload" т.к. могут быть вопросы куда положить папку "view". Запустился без проблем. (версия движка 1.5.1.3)
  3. Подскажите как в Блоге убрать точное время (часы, минуты) осивив при этом дату ?
  4. после всех перегделок, получается максимум икой вид http://сайт.ru/faq/?topic=8 ,а хотелось бы чтобы отображалось http://сайт.ru/faq/kak-zakazat/html <?php class ControllerCommonSeoPro extends Controller { private $cache_data = null; public function __construct($registry) { parent::__construct($registry); $this->cache_data = $this->cache->get('seo_pro'); if (!$this->cache_data) { $query = $this->db->query("SELECT LOWER(`keyword`) as 'keyword', `query` FROM " . DB_PREFIX . "url_alias"); $this->cache_data = array(); foreach ($query->rows as $row) { $this->cache_data['keywords'][$row['keyword']] = $row['query']; $this->cache_data['queries'][$row['query']] = $row['keyword']; } $this->cache->set('seo_pro', $this->cache_data); } } public function index() { // Add rewrite to url class if ($this->config->get('config_seo_url')) { $this->url->addRewrite($this); } else { return; } // Decode URL if (!isset($this->request->get['_route_'])) { $this->validate(); } else { $route = $this->request->get['_route_']; unset($this->request->get['_route_']); $parts = explode('/', trim(utf8_strtolower($route), '/')); /* BEGIN Actions */ if (preg_match('#^(actions/)(.*)#', $route, $matches)) { $parts = explode('/', trim(utf8_strtolower($matches[2]), '/')); if($parts[0] == '' AND count($parts) == 1) { $parts = explode('/', trim(utf8_strtolower($route), '/')); } } /* END Actions */ /* BEGIN News & Reviews */ if (preg_match('#^(news/)(.*)#', $route, $matches)) { $parts = explode('/', trim(utf8_strtolower($matches[2]), '/')); if($parts[0] == '' AND count($parts) == 1) { $parts = explode('/', trim(utf8_strtolower($route), '/')); } } /* END News & Reviews */ list($last_part) = explode('.', array_pop($parts)); array_push($parts, $last_part); $rows = array(); foreach ($parts as $keyword) { if (isset($this->cache_data['keywords'][$keyword])) { $rows[] = array('keyword' => $keyword, 'query' => $this->cache_data['keywords'][$keyword]); } } if (count($rows) == sizeof($parts)) { $queries = array(); foreach ($rows as $row) { $queries[utf8_strtolower($row['keyword'])] = $row['query']; } reset($parts); foreach ($parts as $part) { $url = explode('=', $queries[$part], 2); if ($url[0] == 'category_id') { if (!isset($this->request->get['path'])) { $this->request->get['path'] = $url[1]; } else { $this->request->get['path'] .= '_' . $url[1]; } } elseif (count($url) > 1) { $this->request->get[$url[0]] = $url[1]; } } /* BEGIN Actions */ } elseif ( (isset($keyword_in[0]) AND $keyword_in[0] == 'actions') OR (isset($parts[0]) AND $parts[0] == 'actions') ) { $this->request->get['route'] = 'information/actions'; /* END Actions */ /* BEGIN News & Reviews */ } elseif ( (isset($keyword_in[0]) AND $keyword_in[0] == 'news') OR (isset($parts[0]) AND $parts[0] == 'news') ) { $this->request->get['route'] = 'information/news'; /* END News & Reviews */ } else { $this->request->get['route'] = 'error/not_found'; } if (isset($this->request->get['product_id'])) { $this->request->get['route'] = 'product/product'; if (!isset($this->request->get['path'])) { $path = $this->getPathByProduct($this->request->get['product_id']); if ($path) $this->request->get['path'] = $path; } } elseif (isset($this->request->get['path'])) { $this->request->get['route'] = 'product/category'; } elseif (isset($this->request->get['manufacturer_id'])) { $this->request->get['route'] = 'product/manufacturer/product'; } elseif (isset($this->request->get['information_id'])) { $this->request->get['route'] = 'information/information'; /* BEGIN Actions */ } elseif (isset($this->request->get['actions_id'])) { $this->request->get['route'] = 'information/actions'; /* END Actions */ /* BEGIN News & Reviews */ } elseif (isset($this->request->get['news_id'])) { $this->request->get['route'] = 'information/news'; /* END News & Reviews */ } else { if (isset($queries[$parts[0]])) { $this->request->get['route'] = $queries[$parts[0]]; } } $this->validate(); if (isset($this->request->get['route'])) { return $this->forward($this->request->get['route']); } } } public function rewrite($link) { if (!$this->config->get('config_seo_url')) return $link; $seo_url = ''; $component = parse_url(str_replace('&', '&', $link)); $data = array(); parse_str($component['query'], $data); $route = $data['route']; unset($data['route']); switch ($route) { /* BEGIN Actions*/ case 'information/actions': if (!isset($data['actions_id'])) { $seo_url .= '/actions'; } break; /*END Actions*/ /* BEGIN News & Reviews */ case 'information/news': if (!isset($data['news_id'])) { $seo_url .= '/news'; } break; /* END News & Reviews */ case 'product/product': if (isset($data['product_id'])) { $tmp = $data; $data = array(); if ($this->config->get('config_seo_url_include_path')) { $data['path'] = $this->getPathByProduct($tmp['product_id']); if (!$data['path']) return $link; } $data['product_id'] = $tmp['product_id']; if (isset($tmp['tracking'])) { $data['tracking'] = $tmp['tracking']; } } break; case 'product/category': if (isset($data['path'])) { $category = explode('_', $data['path']); $category = end($category); $data['path'] = $this->getPathByCategory($category); if (!$data['path']) return $link; } break; case 'product/product/review': case 'information/information/info': return $link; break; default: break; } if ($component['scheme'] == 'https') { $link = $this->config->get('config_ssl'); } else { $link = $this->config->get('config_url'); } $link .= 'index.php?route=' . $route; if (count($data)) { $link .= '&' . urldecode(http_build_query($data, '', '&')); } $queries = array(); foreach ($data as $key => $value) { switch ($key) { /* BEGIN Actions */ case 'actions_id': $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE `query` = '" . $this->db->escape($key . '=' . (int)$value) . "'"); if ($query->num_rows) { $seo_url .= '/actions/' . rawurlencode($query->row['keyword']); unset($data[$key]); $postfix = 1; } break; /* END Actions */ /* BEGIN News & Reviews */ case 'news_id': $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE `query` = '" . $this->db->escape($key . '=' . (int)$value) . "'"); if ($query->num_rows) { $seo_url .= '/news/' . rawurlencode($query->row['keyword']); unset($data[$key]); $postfix = 1; } break; /* END News & Reviews */ case 'product_id': case 'manufacturer_id': case 'category_id': case 'information_id': $queries[] = $key . '=' . $value; unset($data[$key]); $postfix = 1; break; case 'path': $categories = explode('_', $value); foreach ($categories as $category) { $queries[] = 'category_id=' . $category; } unset($data[$key]); break; default: break; } } if(empty($queries)) { $queries[] = $route; } $rows = array(); foreach($queries as $query) { if(isset($this->cache_data['queries'][$query])) { $rows[] = array('query' => $query, 'keyword' => $this->cache_data['queries'][$query]); } } if(count($rows) == count($queries)) { $aliases = array(); foreach($rows as $row) { $aliases[$row['query']] = $row['keyword']; } foreach($queries as $query) { $seo_url .= '/' . rawurlencode($aliases[$query]); } } if ($seo_url == '') return $link; $seo_url = trim($seo_url, '/'); if ($component['scheme'] == 'https') { $seo_url = $this->config->get('config_ssl') . $seo_url; } else { $seo_url = $this->config->get('config_url') . $seo_url; } if (isset($postfix)) { $seo_url .= trim($this->config->get('config_seo_url_postfix')); } else { $seo_url .= '/'; } if(substr($seo_url, -2) == '//') { $seo_url = substr($seo_url, 0, -1); } if (count($data)) { $seo_url .= '?' . urldecode(http_build_query($data, '', '&')); } return $seo_url; } private function getPathByProduct($product_id) { $product_id = (int)$product_id; if ($product_id < 1) return false; static $path = null; if (!is_array($path)) { $path = $this->cache->get('product.seopath'); if (!is_array($path)) $path = array(); } if (!isset($path[$product_id])) { $query = $this->db->query("SELECT category_id FROM " . DB_PREFIX . "product_to_category WHERE product_id = '" . $product_id . "' ORDER BY main_category DESC LIMIT 1"); $path[$product_id] = $this->getPathByCategory($query->num_rows ? (int)$query->row['category_id'] : 0); $this->cache->set('product.seopath', $path); } return $path[$product_id]; } private function getPathByCategory($category_id) { $category_id = (int)$category_id; if ($category_id < 1) return false; static $path = null; if (!is_array($path)) { $path = $this->cache->get('category.seopath'); if (!is_array($path)) $path = array(); } if (!isset($path[$category_id])) { $max_level = 10; $sql = "SELECT CONCAT_WS('_'"; for ($i = $max_level-1; $i >= 0; --$i) { $sql .= ",t$i.category_id"; } $sql .= ") AS path FROM " . DB_PREFIX . "category t0"; for ($i = 1; $i < $max_level; ++$i) { $sql .= " LEFT JOIN " . DB_PREFIX . "category t$i ON (t$i.category_id = t" . ($i-1) . ".parent_id)"; } $sql .= " WHERE t0.category_id = '" . $category_id . "'"; $query = $this->db->query($sql); $path[$category_id] = $query->num_rows ? $query->row['path'] : false; $this->cache->set('category.seopath', $path); } return $path[$category_id]; } private function validate() { if (empty($this->request->get['route']) || $this->request->get['route'] == 'error/not_found') { return; } if (isset($this->request->server['HTTP_X_REQUESTED_WITH']) && strtolower($this->request->server['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') { return; } if (isset($this->request->server['HTTPS']) && (($this->request->server['HTTPS'] == 'on') || ($this->request->server['HTTPS'] == '1'))) { $url = str_replace('&', '&', $this->config->get('config_ssl') . ltrim($this->request->server['REQUEST_URI'], '/')); $seo = str_replace('&', '&', $this->url->link($this->request->get['route'], $this->getQueryString(array('route')), 'SSL')); } else { $url = str_replace('&', '&', $this->config->get('config_url') . ltrim($this->request->server['REQUEST_URI'], '/')); $seo = str_replace('&', '&', $this->url->link($this->request->get['route'], $this->getQueryString(array('route')), 'NONSSL')); } if (rawurldecode($url) != rawurldecode($seo)) { header($this->request->server['SERVER_PROTOCOL'] . ' 301 Moved Permanently'); $this->response->redirect($seo); } } private function getQueryString($exclude = array()) { if (!is_array($exclude)) { $exclude = array(); } return urldecode(http_build_query(array_diff_key($this->request->get, array_flip($exclude)))); } } ?>
  5. Подскажите, пожалуйси как устранить баг с модулем FAQ (модуль часто задаваемых вопросов). Вопросы выглядят ик http://сайт.ru/faq.html?topic=6 , сгделать по аналогии с модулем новостей не полулилось.
  6. Спасипотому что, antracit. Заменил файл сео про. Хотел сгделать по аналогии Faq (модуль часто задавемых вопросов) Но получается не очень :) сайт.ру/faq/faq.html?topic=13
  7. Усиновил на сайт, всё рилииет. Спасипотому что потому чтольшое, за прогделанную Вами рилиту. Очень полезное дополнение ! Но только есть проблема с правильным отображением "Новостей" И QiWi сил ошибку выдавать 2013-03-19 23:08:29 - qiwi error hash Подскажите пожалуйси как решить ?
  8. Микроданные Schema.org для страниц категорий https://opencart-forum.ru/files/file/539-%D0%BC%D0%B8%D0%BA%D1%80%D0%BE%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5-schemaorg-%D0%B4%D0%BB%D1%8F-%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86-%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D0%B9/
×
×
  • Create New...

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.