Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
avgaz

ЧПУ для компонента

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

Собственно хочу приобрести компонент Classifieds но мне необходимо что бы урлы на него были такими test.ru/Classifieds а форум у меня установлен в test.ru/forum и соответственно компонент открывается по адресу test.ru/forum/Classifieds

Можно сделать так что бы компонент открывался по адресу test.ru/Classifieds ??

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


Ссылка на сообщение
Обратите внимание

По указанному вами в профиле "Board url" находится не IP.Board, либо модифицированный пиратский скрипт с удаленными копирайтами. Если вы указали неверный URL, пожауйста, поправьте его, потому что он скорее всего потребуется при диагностике вашей проблемы. Нелицензионные скрипты не приветствуются, т.к. зачастую именно некорректное "нуление" и является причиной проблем в них.

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


Ссылка на сообщение

По идее mod_rewrite должен помочь ну и если потребуется то надо будет модифицировать сам компонент.

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


Ссылка на сообщение

Можно попробовать в htaccess из корня сайта добавить (после RewriteEngine On)

 

RewriteRule ^classifieds/(.*) forum/classifieds/$1 [L]

в initdata.php

 

if( strpos($_SERVER['REQUEST_URI'], '/classfields/') == 0 )
{
$_SERVER['REQUEST_URI'] = '/forum' . $_SERVER['REQUEST_URI'];
}

 

ПС

А вообще адреса генерируются абсолютными с board_url, так что все линки на страницы classfields будут с /forum/.

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


Ссылка на сообщение
04/30/13 09:20 (изменено)

Можно попробовать в htaccess из корня сайта добавить (после RewriteEngine On)

 

RewriteRule ^classifieds/(.*) forum/classifieds/$1 [L]

в initdata.php

 

if( strpos($_SERVER['REQUEST_URI'], '/classfields/') == 0 )
{
$_SERVER['REQUEST_URI'] = '/forum' . $_SERVER['REQUEST_URI'];
}

 

ПС

А вообще адреса генерируются абсолютными с board_url, так что все линки на страницы classfields будут с /forum/.

 

В этом случае да компонент открывается по нужному адресу, но все ссылки в компоненте идут через forum/ это можно как исправить?

Изменено пользователем avgaz

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


Ссылка на сообщение

Без правки модуля - нет.

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


Ссылка на сообщение

А в каком хоть файле править пути?

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


Ссылка на сообщение

Там может быть не один файл, и кроме файлов есть еще шаблоны, где прописана основная часть ссылок.

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


Ссылка на сообщение

Уже обыскался не как не найду где править, нашёл такой файл furlTemplates.php

Вроде там идет преобразование урлов но как там поправить?

вот его код

<?php

/**
*
* Classifieds 1.2.1
*
* @author		$Author: Andrew Millne $
* @copyright   2011 Andrew Millne. All Rights Reserved.
* @license		http://dev.millne.com/license.html
* @package		Classifieds
* @link		http://dev.millne.com
*
*/

if ( ! defined( 'IN_IPB' ) ) {
   print "<h1>Incorrect access</h1>You cannot access this file directly. If you have recently upgraded, make sure you upgraded all the relevant files.";
   exit();
}

$_SEOTEMPLATES = array(
       'app=classifieds'		=> array(
               'app'			=> 'classifieds',
               'allowRedirect' => 1,
               'out'			=> array( '#app=classifieds$#i', 'classifieds/' ),
               'in'			=> array(
                       'regex'		=> "#/classifieds/?$#i",
                       'matches'	=> array( array( 'app', 'classifieds' ) )
               )
       ),

       'view_category' => array(
               'app'			=> 'classifieds',
               'allowRedirect' => 1,
               'out'			=> array( '/app=classifieds(?:(?:&|&))module=core(?:(?:&|&))do=view_category(?:(?:&|&))category_id=(.+?)(&|$)/i', 'classifieds/category/$1-#{__title__}/$2' ),
               'in'			=> array(
                       'regex'		=> "#/classifieds/category/(\d+?)-#i",
                       'matches'	=> array(
                               array( 'app'		, 'classifieds' ),
                               array( 'module'		, 'core' ),
                               array( 'do'	, 'view_category' ),
                               array( 'category_id'		, '$1' )
                       )
               )
       ),
       'view_item' => array(
               'app'			=> 'classifieds',
               'allowRedirect' => 1,
               'out'			=> array( '/app=classifieds(?:(?:&|&))module=core(?:(?:&|&))do=view_item(?:(?:&|&))item_id=(.+?)(&|$)/i', 'classifieds/item/$1-#{__title__}/$2' ),
               'in'			=> array(
                       'regex'		=> "#/classifieds/item/(\d+?)-#i",
                       'matches'	=> array(
                               array( 'app'		, 'classifieds' ),
                               array( 'module'		, 'core' ),
                               array( 'do'	, 'view_item' ),
                               array( 'item_id'		, '$1' )
                       )
               )
       ),
);

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


Ссылка на сообщение

шаблоны, где прописана основная часть ссылок.

Темплейт задает только формат чпу, а ссылки в основном компилируются в шаблонах.

А вообще лучше всего оставить как есть, ничего страшного если в адресе будет папка форума.

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


Ссылка на сообщение

В шаблона ссылки вот такого вида

<a href="{parse url="module=core&do=view_category&category_id={$sibling['category_id']}&sort_key={$sort['key']}&sort_order={$sort['order']}&filter={$filter}" template="view_category" seotitle="{$sibling['seo_title']}" base="publicWithApp"}" data-tooltip="{$sibling['name']}">{IPSText::truncate($sibling['name'], 20)}</a>

В фалах вот такого

$this->registry->output->addNavigation( $row['name'], 'app=classifieds&module=core&do=view_category&category_id=' . $row['category_id'], $row['seo_title'], "view_category"  );

Проблема в том что не как не найти где ссылке присваивается адрес форума уж все облазил

 

Оставлять в таком виде как сейчас уж очень не хочется.

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


Ссылка на сообщение

Проблема в том что не как не найти где ссылке присваивается адрес форума уж все облазил

Формируется он в специальной функции - buildUrl (admin\sources\classes\output\publicOutput.php)

 

Как вариант, перед $this->setCachedFurl($_md5, $base.$url); добавить

 

	if( strpos($url, 'app=classfields') !== FALSE )
	{
		$base = str_replace( '/forum/', '/', $base );
	}

  • Upvote 1

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


Ссылка на сообщение

Спасибо, все отлично.

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


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...