d2boy

[Решено?..] Генерация ссылок для своей страницы в SeoPro

Рекомендуемые сообщения

d2boy    1

Создал контроллер custom.php и шаблон custom.tpl (пустой) для новой схемы.

 

Теперь создаю новую страницу и могу получить к ней доступ по двум ссылкам: вида

 

information/information&information_id=27

 

и 

 

information/custom&information_id=27

 

Но, если я прописываю seo keyword, то SEO PRO, естественно, перенаправляет на первую.

 

Подскажите, что можно сделать, чтобы сгенерировать ссылку на вторую.

 

Хочу сделать мини-сайты прямо в редакторе админке для удобства.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
d2boy    1

на своей схеме не используйте information_id

Спасибо за быстрый ответ!

 

А как тогда можно вывести страницу без её id?

 

Я просто склонировал контроллер information.php, выкинув из него лишние переменные.

Задумка такая для некоторых страниц поставить схему custom, чтобы они отображались на «голом» шаблоне

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
afwollis    1 101

по layout_id подставляй нужный шаблон.

тут обсуждалось для товаров: https://opencartforum.com/topic/42297-решено-создание-нового-макета/

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
d2boy    1

Создал шаблон с номером схемы и сделал вот так в information.php:

$layout_id = $this->model_catalog_information->getInformationLayoutId($information_id);
            if ($layout_id>0) {
                $tmpl = $layout_id;
            }
			
			
			if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/information/' . $tmpl . '.tpl')) {
				$this->template = $this->config->get('config_template') . '/template/information/' . $tmpl . '.tpl';
			} elseif (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/information/information.tpl')) {
				$this->template = $this->config->get('config_template') . '/template/information/information.tpl';
			} else {
				$this->template = 'default/template/information/information.tpl';
			}

Кто-нибудь знает, как вытащить имя схемы (хочу покрасивее сделать, чтобы название шаблона совпадало с названием схемы)?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
d2boy    1

А сам и отвечу себе:

Тут добавил переменную

 

$layout_id = $this->model_catalog_information->getInformationLayoutId($information_id); // вывод порядкового номера схемы
            $layout_name = $this->model_catalog_information->getInformationLayoutName($layout_id); // вывод названия схемы
            if ($layout_id>0) {
                $tmpl_name = $layout_name; // присваиваем
            }
            
            
            if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/information/' . $layout_name . '.tpl')) {
                $this->template = $this->config->get('config_template') . '/template/information/' . $layout_name . '.tpl';
            } elseif (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/information/information.tpl')) {
                $this->template = $this->config->get('config_template') . '/template/information/information.tpl';
            } else {
                $this->template = 'default/template/information/information.tpl';
            }
 

 

и в model/information.php создаём функцию
 

	public function getInformationLayoutName($layout_id) {
		$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "layout WHERE layout_id = '" . (int)$layout_id . "'");

		if ($query->num_rows) {
			return $query->row['name'];
		} else {
			return false;
		}
	}	

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Похожий контент

    • От cooler2003
      Добрый день!
      Подскажите пожалуйста, предусмотрена ли функция автоназначения seo-url в seopro без дополнительных модулей?
       ,
    • От melav
      Просьба помочь с куском кода, который надо добавить в seo_pro, чтобы в конце производителей был слеш '/'
      Seo_pro установлен и настроен, категории со слешем в конце, страницы с .html в конце
      Производители - тоже с '.html' в конце
      Но мне надо убрать .html в производителях и заменить на слеш в конце, как у категорий
       
      Вот этот кусок кода отвечает за эту хрень, но как правильно его дописать, чтобы все работало, как надо, я не знаю
       
      if (isset($postfix)) {
            $seo_url .= trim($this->config->get('config_seo_url_postfix'));
       } else {
              $seo_url .= '/';
       }
       
       
      Пробовал добавлять вот такую строку
      if ($route == 'product/manufacturer/info') {
              $seo_url .= '/';
              }
       
      Но не работает как надо, получаю url вида: site.ru/brand1.html/
      т.е слеш добавляет в конце, но html не убирает
       
      а хотелось бы так:  site.ru/brand1/
       
       
    • От bogdan281989
      Добрый вечер! Буду очень благодарен, если кто поможет решением, возможно делали раньше или есть на заметке где посмотреть.
      Суть проблемы, что перед всеми категориями нужно вывести приставку /category/ на базе SeoPro.
    • От alexchervon
      После установки seoPro, и включении его в системных настройках, любая страница сайта выдает ошибку 404 и пишет "Страница не найдена", файл перейменовал в .htaccess. 
      Вот кстати он 
      # 1.To use URL Alias you need to be running apache with mod_rewrite enabled. # 2. In your opencart directory rename htaccess.txt to .htaccess. # For any support issues please visit: http://www.opencart.com Options +SymLinksIfOwnerMatch # Prevent Directoy listing Options -Indexes # Prevent Direct Access to files <FilesMatch "(?i)((\.tpl|.twig|\.ini|\.log|(?<!robots)\.txt))"> Require all denied ## For apache 2.2 and older, replace "Require all denied" with these two lines : # Order deny,allow # Deny from all </FilesMatch> # SEO URL Settings RewriteEngine On # If your opencart installation does not run on the main web folder make sure you folder it does run in ie. / becomes /shop/ RewriteBase / rewriteCond %{REQUEST_URI} !^/katalog RewriteCond %{REQUEST_URI} !\? RewriteCond %{REQUEST_URI} !\& RewriteCond %{REQUEST_URI} !\= RewriteCond %{REQUEST_URI} !\. RewriteCond %{REQUEST_URI} !/$ RewriteRule ^(.*[^/])$ /$1/ [R=301,L] RewriteCond %{REQUEST_URI} ^/katalog/(.+)/(.+)$ [NC] RewriteRule ^(.*)(/)$ /$1 [L,R=301] rewriteCond %{REQUEST_URI} !/$ RewriteCond %{REQUEST_URI} ![/katalog/(.+)/(.+)$] RewriteCond %{REQUEST_URI} ^/katalog/(.+) [NC] RewriteRule ^(.*[^/])$ /$1/ [L,R=301] RewriteCond %{REQUEST_URI} ^/katalog$ [NC] RewriteRule ^(.*)$ /$1/ [L,R=301] RewriteRule ^sitemap.xml$ index.php?route=extension/feed/google_sitemap [L] RewriteRule ^googlebase.xml$ index.php?route=extension/feed/google_base [L] RewriteRule ^system/storage/(.*) index.php?route=error/not_found [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css) RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA] RewriteCond %{HTTP_HOST} ^www\.(.*)$ RewriteRule ^(.*)$ http://%1/$1 [L,R=301] RewriteCond %{REQUEST_URI} /index.php RewriteCond %{QUERY_STRING} ^\z RewriteRule ^(.*)$ http://podarokperm.tw1.ru/? [R=301,L] ### обязательно заменить на актуальный домен ### Additional Settings that may need to be enabled for some servers ### Uncomment the commands by removing the # sign in front of it. ### If you get an "Internal Server Error 500" after enabling any of the following settings, restore the # as this means your host doesn't allow that. # 1. If your cart only allows you to add one item at a time, it is possible register_globals is on. This may work to disable it: # php_flag register_globals off # 2. If your cart has magic quotes enabled, This may work to disable it: # php_flag magic_quotes_gpc Off # 3. Set max upload file size. Most hosts will limit this and not allow it to be overridden but you can try # php_value upload_max_filesize 999M # 4. set max post size. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields # php_value post_max_size 999M # 5. set max time script can take. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields # php_value max_execution_time 200 # 6. set max time for input to be recieved. Uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields # php_value max_input_time 200 # 7. disable open_basedir limitations # php_admin_value open_basedir none  
      Подскажите пожалуйста как исправить 
    • От maggot
      Добрый день.
      Выполнила миграцию базы с опенкарта 1.5.6.4 на окстор 2.3.0.2. Привела все таблицы вручную в соответственное состояние и все данные перенсены с заказами, поккупателями, опциями, атрибутами, опциями, товарами, категориями, url-alias и т.д.
      Все отлично, все работает, Default ЧПУ работает. Включаю СеоПро:
      Warning: fread(): Length parameter must be greater than 0 in /home/margot/two.alfa-market.com.ua/system/library/cache/file.php on line 32
       
      Хостинг ВПС. В запасе еще более 11-ти Гб.
      Содержание .htaccess
      # 1.To use URL Alias you need to be running apache with mod_rewrite enabled. # 2. In your opencart directory rename htaccess.txt to .htaccess. # For any support issues please visit: http://www.opencart.com Options +FollowSymlinks # Prevent Directoy listing Options -Indexes # Prevent Direct Access to files <FilesMatch "\.(tpl|ini|log)"> Order deny,allow Deny from all </FilesMatch> # SEO URL Settings RewriteEngine On # If your opencart installation does not run on the main web folder make sure you folder it does run in ie. / becomes /shop/ RewriteBase / RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L] RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L] RewriteRule ^download/(.*) /index.php?route=error/not_found [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css) RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA] ### Additional Settings that may need to be enabled for some servers ### Uncomment the commands by removing the # sign in front of it. ### If you get an "Internal Server Error 500" after enabling any of the following settings, restore the # as this means your host doesn't allow that. # 1. If your cart only allows you to add one item at a time, it is possible register_globals is on. This may work to disable it: # php_flag register_globals off # 2. If your cart has magic quotes enabled, This may work to disable it: # php_flag magic_quotes_gpc Off # 3. Set max upload file size. Most hosts will limit this and not allow it to be overridden but you can try # php_value upload_max_filesize 999M # 4. set max post size. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields # php_value post_max_size 999M # 5. set max time script can take. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields # php_value max_execution_time 200 # 6. set max time for input to be recieved. Uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields # php_value max_input_time 200 # 7. disable open_basedir limitations # php_admin_value open_basedir none Бьюсь уже сутки. В гугле ничего.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу