Получение URL, id страницы материала или термина
Часто нужно узнать id материала, url страницы то где сейчас находишься или что-то подобное.
Рассмотрим несколько простых примеров.
За основу возьмем две страницы с адресами node/10 и taxonomy/term/4
Итак небольшой исходник(дальше по коду будут выводиться результаты, естественно их можно убрать, я про echo):
id страниц
$q=$_GET['q']; echo 'q='.$q; /*РЕЗУЛЬТАТ*/ //для страницы node/10 q=node/10 //для страницы taxonomy/term/4 q=taxonomy/term/4
т.е. переменная $q будет равна node/10 или taxonomy/term/4 соответственно
Сам же id ноды или термина можно получить следующим образом.
$q=$_GET['q']; $q_id=str_replace('node/','',$q); echo $q_id; $term_id=str_replace('taxonomy/term/','',$q); echo $term_id; /*РЕЗУЛЬТАТ*/ //для страницы node/10 10 //для страницы taxonomy/term/4 4
Ещё один метод.
if(arg(0)) { $arg_0= arg(0); echo 'arg_0='. $arg_0.'<br/>'; if(arg(1)) { $arg_1= arg(1); echo 'arg_1='. $arg_1.'<br/>'; if(arg(2)) { $arg_2= arg(2); echo 'arg_2='. $arg_2.'<br/>'; } } } /*РЕЗУЛЬТАТ*/ //для страницы node/10 arg_0=node arg_1=10 //для страницы taxonomy/term/4 arg_0=taxonomy arg_1=term arg_2=4
Алиас страниц
Просто получить путь страницы этого мало. Если у вас стоит ЧПУ то естественно вы захотите получить удобоваримую ссылку на страницу.
$q=$_GET['q']; $alias = drupal_get_path_alias($q); echo $alias; /*РЕЗУЛЬТАТ*/ //для страницы node/10 blog/ckeditor-geshi-filtr //для страницы taxonomy/term/4 blog/tegi/ckeditor
Вот мы и получили URL для своих страниц.
Есть ещё один метод, но он подходит только для простых нод.
В папки вашей тепы в файле node.tpl.php вы всегда можете использовать переменную $node_url.
В нашем примере (для страницы node/10) она будет хранить /blog/ckeditor-geshi-filtr
Вся документация по возможным переменным в файле node.tpl.php тут