Роутер для компонента

сделать переход по ссылке

#1 2 декабря 2010 в 12:44
Добрый день!
помогите, пожалуйста, написать роутер для собственного компонента.
Есть перечень ссылок, названия которых я беру из БД, например:
Блоки, кирпичи
Окна, двери
Шифер

вот их код
  1.  
  2. while ($row=mysql_fetch_assoc($result)){
  3. $shifr=$row["shifr"]; $nam=$row["name"];
  4. $rows[] = $row;
  5. echo ' <a href=/prices/'.$shifr.'.php> &#8226; '.$nam.' </a><br>'; }
  6.  
Т.е. в браузере я получаю при клике на Блоки, кирпичи: www.stroim/prices/cms_prices_bloki_kirpich.php

Как же мне теперь написать правильно роутер, чтоб подключить другую страничку:
  1. $routes[] = array(
  2. '_uri' => '/^prices\/ .php$/i',
  3. 'do' => ' '
  4. );
  5.  
#3 2 декабря 2010 в 13:15
конечно читала, я же прошу помочь на конкретно моем примере.....
вот, допустим я сделаю так:
  1. $routes[] = array(
  2. '_uri' => '/^prices\/shifr\/(.+)$/i',
  3. 'do' => 'add'
  4. 1 => 'shifr'
  5. );
как тогда мне оформить ссылку?
  1. <a href=/prices/'.$shifr.'.html>&#8226; '.$nam.' </a><br>';
  2.  
и есть ли разница, если я назову адрес новой странички .html или .php?
#4 2 декабря 2010 в 13:40
trish, какого вида ссылка у вас будет — я пока что не очень понял — $shifr это цифра или фраза?
#5 2 декабря 2010 в 13:44
  1. function routes_prices(){
  2. // если переменная $shifr это фраза
  3. $routes[] = array(
  4. '_uri' => '/^prices\/([a-zA-z0-9\.]+).html$/i',
  5. 'do' => 'view',
  6. 1 => 'имя_переменной'
  7. );
  8. // если переменная $shifr это цифра
  9. $routes[] = array(
  10. '_uri' => '/^prices\/([0-9]+).html$/i',
  11. 'do' => 'view',
  12. 1 => 'имя_переменной'
  13. );
  14.  
  15.  
  16. return $routes;
  17.  
  18. }
#6 2 декабря 2010 в 13:46
Fuze, $shifr — это фраза, например, bloki. Т.е. я хотела бы, чтоб ссылки формировались из названий соответствующих рубрик, вот так: /prices/bloki.php
/prices/okna.php
#7 2 декабря 2010 в 13:47
Fuze, благодарю, теперь мне все понятно!!!
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.