Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

aakazakow

Newbie
  
  • Posts

    45
  • Joined

  • Last visited

1 Follower

Information

  • Gender
    Мужчина

Recent Profile Visitors

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

aakazakow's Achievements

Explorer

Explorer (4/14)

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

Recent Badges

1

Reputation

  1. Подскажите как в Блоге убрать точное время (часы, минуты) оставив при этом дату ?
  2. после всех переделок, получается максимум такой вид 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)))); } } ?>
  3. Подскажите, пожалуйста как устранить баг с модулем FAQ (модуль часто задаваемых вопросов). Вопросы выглядят так http://сайт.ru/faq.html?topic=6 , сделать по аналогии с модулем новостей не получилось.
  4. Спасибо, antracit. Заменил файл сео про. Хотел сделать по аналогии Faq (модуль часто задавемых вопросов) Но получается не очень :) сайт.ру/faq/faq.html?topic=13
  5. Установил на сайт, всё работает. Спасибо большое, за проделанную Вами работу. Очень полезное дополнение ! Но только есть проблема с правильным отображением "Новостей" И QiWi стал ошибку выдавать 2013-03-19 23:08:29 - qiwi error hash Подскажите пожалуйста как решить ?
  6. Микроданные Schema.org для страниц категорий https://opencartforum.com/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/
  7. Доброго времени суток. Мой сайт http://QtiQ.ru Приобрел два модуля для категории и для продукта. Модуль супер, но возникли некоторые проблемы, а именно: 1) Модуль к продуктам- У меня на товаре стоит "наличие- на складе" ( в админке кол-во товара указано 0 шт. при отсутствии товара: на складе.) Но гугл считывает товар как "нет в наличии" - как поменять значение на "на складе" ? 2)Модуль к категориям- У меня установлено дополнение для постепенной загрузки изображений и код выглядит так <a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>" width="<?php echo $product['thumb_w']; ?>" height="<?php echo $product['thumb_h']; ?>" title="<?php echo $product['name']; ?>" alt="<?php echo $product['name']; ?>" /></a></div> Если добавляю itemprop="image" , постепенная загрузка перестает работать
  8. Спасибо за помощь, разобрался ... Забыл что для стикеров CSS файл редактировал.
  9. на картинках стоит padding: 5px; если его отключить, то все встает на место , но я бы хотел оставить paging. Поэтому хочу отредактировать сам стикер, но не могу найти место где его редактировать
  10. Спасибо, наконец в админке отображается то что действительно вписал, а не 30 и 100... Подскажите как поместить стикер немного левее и выше в категориях ( немножко не в том месте расположен) Пример категория- коктейльные платья
  11. у хостинга стояли ограничения...хостинг уменьшил ограничения и чат заработал
  12. Установил LiveZilla,клиентская часть работает исправно (вижу кто заходит на сайт), но после открытия чата пишет ошибку и не коннектится до конца. постоянно пишет "загрузка" Кто знает с чем это связано ? (грешу на хостинг, но они говорят, что все исправно) http://qtiq.ru/chat/chat.php см. скрин
  13. Каким образом это сделать расскажите пожалуйста? Не могу разобраться... поддомен создал. хостинг -Hostland
×
×
  • 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.