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

romasimeiz

Новачок
  
  • Публікації

    6
  • З нами

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

romasimeiz's Achievements

Rookie

Rookie (2/14)

  • First Post
  • Conversation Starter
  • Week One Done
  • One Month Later
  • One Year In

Recent Badges

0

Репутація

  1. Добрый день! Столкнулся с проблемой. На сайте работают ЧПУ ссылки при помощи SEO Pro. Мне нужно туда было внести изменения. Чтобы я не вносил не работает. - Удалил файл seo_pro.php совсем. Ссылки стали уже НЕ ЧПУ. Т.е. опенкарт использует именно этот файл. - Потом удалил всё содержимое этого файла. Сохранил. Работает без изменений. Т.е. как будто с файлом всё в порядке и ссылки ЧПУ работают, ошибок нигде нету. Чистил кэш, тоже не помогло. Абсолютно. Что делать ? Подскажите пожалуйста. Может было у кого-то. Или я неправильно что то делаю. Спасибо! )
  2. Добрый день! Помогите пожалуйста. На opencart магазине, стоит vqmod и pavblog. Мне нужно сделать ЧПУ ссылки для таких страниц как contact-us, sitemap и т.д. нашёл простенькое решение которое заработало на чистом opencart. на реальном магазине стоит vqmod и pavblog, не работает. Сделал вот что : подключил родной котроллер common/seo_url вместо pavblog/seo в index.php подключил к seo_url код, чтобы он мог работать и для pavblog и для родных opencart ссылок. <?php сlass ControllerCommonSeoUrl extends Controller { public function index() { // Add rewrite to url class if ($this->config->get('config_seo_url')) { $this->url->addRewrite($this); } // Decode URL if (isset($this->request->get['_route_'])) { $parts = explode('/', $this->request->get['_route_']); /** BEGIN PROCESSING TO DECORD REQUET SEO URL FOR PAVO BLOG MODULE **/ $blogConfig = $this->config->get('pavblog'); $seo = isset($blogConfig['keyword_listing_blogs_page'])?trim($blogConfig['keyword_listing_blogs_page']):"blogs"; if( $this->request->get['_route_'] == $seo ){ $this->request->get['route'] = 'pavblog/blogs'; return $this->forward($this->request->get['route']); } /** END OF PROCESSING TO DECORD REQUET SEO URL FOR PAVO BLOG MODULE **/ foreach ($parts as $part) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE keyword = '" . $this->db->escape($part) . "'"); if ($query->num_rows) { $url = explode('=', $query->row['query']); if ($url[0] == 'product_id') { $this->request->get['product_id'] = $url[1]; } if ($url[0] == 'category_id') { if (!isset($this->request->get['path'])) { $this->request->get['path'] = $url[1]; } else { $this->request->get['path'] .= '_' . $url[1]; } } if ($url[0] == 'manufacturer_id') { $this->request->get['manufacturer_id'] = $url[1]; } if ($url[0] == 'information_id') { $this->request->get['information_id'] = $url[1]; } /** BEGIN PROCESSING TO DECORD REQUET SEO URL FOR PAVO BLOG MODULE **/ if( count($url) == 2 && ( preg_match( "#pavblog#", $url[0] )) ){ $this->request->get['route'] = $url[0]; $this->request->get['id'] = $url[1]; } /** END OF PROCESSING TO DECORD REQUET SEO URL FOR PAVO BLOG MODULE **/ } else { $this->request->get['route'] = 'error/not_found'; } } if (isset($this->request->get['product_id'])) { $this->request->get['route'] = 'product/product'; } 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/info'; } elseif (isset($this->request->get['information_id'])) { $this->request->get['route'] = 'information/information'; } else { echo "pered query"; $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE keyword = '" . $this->db->escape($this->request->get['_route_']) . "'"); echo "posle query"; if ($query->num_rows) { $this->request->get['route'] = $query->row['query']; } } if (isset($this->request->get['route'])) { return $this->forward($this->request->get['route']); } } } public function rewrite($link) { $url_info = parse_url(str_replace('&', '&', $link)); $url = ''; $data = array(); parse_str($url_info['query'], $data); foreach ($data as $key => $value) { if (isset($data['route'])) { if (($data['route'] == 'product/product' && $key == 'product_id') || (($data['route'] == 'product/manufacturer/info' || $data['route'] == 'product/product') && $key == 'manufacturer_id') || ($data['route'] == 'information/information' && $key == 'information_id')) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE `query` = '" . $this->db->escape($key . '=' . (int)$value) . "'"); if ($query->num_rows) { $url .= '/' . $query->row['keyword']; unset($data[$key]); } } elseif ($key == 'path') { $categories = explode('_', $value); foreach ($categories as $category) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE `query` = 'category_id=" . (int)$category . "'"); if ($query->num_rows) { $url .= '/' . $query->row['keyword']; } } unset($data[$key]); } elseif ($key == 'route') { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE `query` = '" . $this->db->escape($data['route']) . "'"); if ($query->num_rows) { $url .= '/' . $query->row['keyword']; unset($data[$key]); echo "this is root: $url <br>"; } } } } /** BEGIN PROCESSING TO REWRITE SEO URL FOR PAVO BLOG MODULE **/ if ( ( preg_match( "#pavblog#", $data['route'] )) && isset($data['id']) ) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE `query` = '" . $this->db->escape( $data['route'] . '=' .$data['id']) . "'"); if ($query->num_rows) { $url .= '/' . $query->row['keyword']; unset($data[$key]); unset($data['id']); } } else if( $data['route'] == 'pavblog/blogs' ){ $blogConfig = $this->config->get('pavblog'); $seo = isset($blogConfig['keyword_listing_blogs_page'])?trim($blogConfig['keyword_listing_blogs_page']):"blogs"; $url .= '/'.$seo; } /** END OF PROCESSING SEO URL FOR PAVO BLOG MODULE **/ if ($url) { unset($data['route']); $query = ''; if ($data) { foreach ($data as $key => $value) { $query .= '&' . $key . '=' . $value; } if ($query) { $query = '?' . trim($query, '&'); } } return $url_info['scheme'] . '://' . $url_info['host'] . (isset($url_info['port']) ? ':' . $url_info['port'] : '') . str_replace('/index.php', '', $url_info['path']) . $url . $query; } else { return $link; } } }?> Всё работает и ЧПУ pavblog и ЧПУ opencart. Но почему то не меняются ссылки у Contact Us, Sitemap, короче у всего футера, кроме тех ссылок что в колонке Information. Сделал var_dump того, что должно прийти в качестве замены из url_alias - вроде приходит то что надо. Но в строке адреса ничего не меняется. ( Не знаю что искать, где копать ? Помогите
  3. Добрый день! Прошу Вашей помощи. Я учусь писать модули для OpenCart, Я написал простой модуль(controller и view), который выводит текущее время. По ссылке "localhost/opencart/index.php?route=currenttime/currenttime" у меня выводиться текущее время. всё нормально. Но если делаю в любом месте <?php include='index.php?route=currenttime/currenttime'; ?> Выводит ошибку: Warning: include(index.php?route=currenttime/currenttime): failed to open stream: Arg list too long in D:\Server\WWW\opencart\catalog\view\theme\zBaby\template\common\content_top.tpl on line 2Warning: include(): Failed opening 'index.php?route=currenttime/currenttime' for inclusion (include_path='.;C:\php\pear') in D:\Server\WWW\opencart\catalog\view\theme\zBaby\template\common\content_top.tpl on line 2 Потом я просто нашёл уже стандартный модуль который отображает контент content_top в его контроллере вызвал свой : $data['currentTime'] = $this->load->controller('currenttime/currenttime'); И в его tpl файле просто сделал <?php echo $currentTime; ?> Но тогда получается, что мой currenttime.tpl не нужен. А я хотел бы научиться выводить именно его. Помогите пожалуйста разобраться! Спасибо! :)
×
×
  • Створити...

Important Information

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