один компонент по двум адресам!

#1 9 ноября 2012 в 13:19
Допустим есть один компонент, назовем его "component1", находится в папке /components/component1/

Насколько знаю, доступен он будет по адресу site.ru/component1/

А можно ли сделать так, чтобы он был доступен еще по нескольким адресам, например: site.ru/component2/ и site.ru/component473/

Не делая его копий в другие папки) Думаю понятно отписал) если что — спрашивайте, напишу подробнее :)
#2 9 ноября 2012 в 13:37
FreeLancer, Если не сикрет а зачем вам это? Все борятся с дублями а вам наоборот не хватает дублей smile
#3 9 ноября 2012 в 13:54


FreeLancer, Если не сикрет а зачем вам это? Все борятся с дублями а вам наоборот не хватает дублей smile

xeqtr

нет, вы немного не поняли, просто нужно чтобы в компонент передавался параметр, в зависимости от адреса, что-то типа:
  1.  
  2. $routes[] = array(
  3. '_uri' => '/^component1$/i',
  4. 'do' => 'razdel-1'
  5. );
  6.  
  7. $routes[] = array(
  8. '_uri' => '/^component2$/i',
  9. 'do' => 'razdel-2'
  10. );
  11.  
т.е. — если идет по одному URL, в компонент передается один параметр $do, если другой URL, то соответственно другой параметр..

Можно конечно наделать под все разделы копий этого компонента, но их очень много, поэтому хотелось бы сделать одним компонентом… Просто в плане ядра, там возможна такая реализация? Это вопрос скорее к разработчикам системы, Fuze и R2
#4 9 ноября 2012 в 14:24
Не совсем понял, вернее совсем не понял))
но, можно заюзать .htaccess
и перенаправлять все адреса
/components/component(*)/
на
/components/component/?do=(*)

Хотя можно и сразу использовать передачу переменных в адресе)

зы, Но скажу точно — даже не понятно что советовать, ведь непонятно что нужно!)
#5 9 ноября 2012 в 15:12


Не совсем понял, вернее совсем не понял))
но, можно заюзать .htaccess
и перенаправлять все адреса
/components/component(*)/
на
/components/component/?do=(*)

Хотя можно и сразу использовать передачу переменных в адресе)

зы, Но скажу точно — даже не понятно что советовать, ведь непонятно что нужно!)

pivua)

да что непонятного то, нужно чтобы компонент расположенный в папке /components/component1, был доступен по URL адресу site.ru/component2

Вписать это в router.php — не помогает, как еще это можно прописать? Может как-то через url_rewrite.php?

Но редирект тут не поможет, мне нужны именно разные адреса для 1 компонента

site.ru/razdel-1
site.ru/razdel-2
site.ru/razdel-3
#6 9 ноября 2012 в 15:57

нужно чтобы компонент расположенный в папке /components/component1, был доступен по URL адресу site.ru/component2

FreeLancer
Для ясности вопроса, Вам надо, по примеру как это реализовано на WordPress, размещение одной публикации с отображением в разных категориях или компонентах?
#7 9 ноября 2012 в 16:42

Для ясности вопроса, Вам надо, по примеру как это реализовано на WordPress, размещение одной публикации с отображением в разных категориях или компонентах?

wask
Есть компонент, который выводит определенный контент из базы данных.

Допустим для вывода первого раздела открываю site.ru/razdel-1

Для вывода второго раздела открываю site.ru/razdel-2

Публикации что в инстанте — т.е. компонент "content" мне не нужен, под это пишется отдельный компонент, который и будет выводить инфу.

Что не ясно то я пишу? ) скажите, сформулирую еще по-другому )
#8 9 ноября 2012 в 16:48
Допустим вот router.php для компонента "profile" (/components/profile/router.php):
  1.  
  2. $routes[] = array(
  3. '_uri' => '/^profile$/i',
  4. 'do' => 'profile'
  5. );
  6.  
  7. $routes[] = array(
  8. '_uri' => '/^clan$/i',
  9. 'do' => 'clan'
  10. );
  11.  
  12. return $routes;
  13. }
  14.  

Компонент доступен по адресу site.ru/profile, но недоступен по адресу site.ru/clan

как сделать его доступным по двум адресам?

crazy
#9 9 ноября 2012 в 17:20
FreeLancer, чето замутил интересное v
#10 9 ноября 2012 в 20:46
Если сервер свой… мож линкануть папки?
#11 10 ноября 2012 в 08:33

Если сервер свой… мож линкануть папки?

Скорпион
не получится, там же имя контроллера и модели будет другое, соответственно и компонент будет недоступен по адресу папки, которая линкуется на компонент
#12 10 ноября 2012 в 11:43
  1.  
  2. $routes[] = array(
  3. '_uri' => '/^profile$/i',
  4. 'do' => 'profile'
  5. );
  6.  
  7. $routes[] = array(
  8. '_uri' => '/^clan$/i',
  9. 'do' => 'profile'
  10. );
  11.  
  12. return $routes;
  13. }
  14.  
  15.  
#13 10 ноября 2012 в 12:51


  1.  
  2. $routes[] = array(
  3. '_uri' => '/^profile$/i',
  4. 'do' => 'profile'
  5. );
  6.  
  7. $routes[] = array(
  8. '_uri' => '/^clan$/i',
  9. 'do' => 'profile'
  10. );
  11.  
  12. return $routes;
  13. }
  14.  
  15.  

picaboo

это что?
#14 10 ноября 2012 в 21:45
никто не знает?
#15 11 ноября 2012 в 00:16
Так как вы пишите необходимо скорее всего дублировать компоненты, попробуйте так

  1.  
  2. $routes[] = array(
  3. '_uri' => '/^primer/profile$/i',
  4. 'do' => 'profile'
  5. );
  6.  
  7. $routes[] = array(
  8. '_uri' => '/^primer/clan$/i',
  9. 'do' => 'clan'
  10. );
  11.  
и пропишите в файлах frontend.php и model.php для компонента primer
вывод функций profile и clan.

Надеюсь мысль понятна.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.