Использование переменной для пути в drupal_get_normal_path

0

Я новичок в кодировании drupal и до сих пор довольно новичок в PHP. Я добрался до определенного момента, и теперь я застрял! Документация помогла мне многое до этого момента, но я нахожусь изо всех сил, чтобы преодолеть это препятствие.

Мой код:

<?php

//Pulls the refering page url
$prev_page = $_SERVER['HTTP_REFERER'];

//breaks the referer into an associated array
$delimit = '/';
$splode = explode($delimit,$prev_page);

$chunked = array_slice($splode, 3, NULL);


//iterates through the array to output the address as a string
foreach($chunked as $k=>$v){
$path .=  $v."/";
}

//find the node id from the alias
$node = drupal_get_normal_path($path);
echo $node;

?>

Таким образом, я получил адрес страницы ссылки как расширение (т.е. About-us/tim, а не http://www.google.com/about-us/tim), чтобы перейти в drupal_get_normal_path.

Я поместил фактический uri в drupal_get_normal_path и получил информацию о узле, которую я ожидал получить, но когда я использую переменную, как показано в вышеприведенном кодовом блоке, она возвращает текст, который хранится в переменной, а не поиск источника узла,

Любая помощь, которую я могу дать, очень ценится!

Теги:
drupal

1 ответ

2
Лучший ответ

Думаю, что это довольно похоже на этот вопрос здесь.

То, что вы делаете неправильно, предполагает, что эта функция возвращает узел - это не так, просто возвращает внутренний путь к этому узлу. Таким образом, вы все равно должны получить объект (узел), на который ссылается этот URL-адрес, и тогда у вас действительно есть идентификатор узла.

В принципе, вы можете добиться этого, используя (этот код немного эффективнее и компактнее, чем у вас, плюс он работает!):

$url = $_SERVER['HTTP_REFERER'];
$path = preg_replace('/\//','',parse_url($url,PHP_URL_PATH),1);
$org_path = drupal_lookup_path("source", $path);
$node = menu_get_object("node", 1, $org_path);
$nid=$node->nid;
print $nid;

Если вы действительно хотите загрузить узел, вы просто выполните node_load ($ nid) после всего этого.

Надеюсь это поможет!

  • 0
    Благодарю вас! Это очень помогло!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню