2013-02-13 2 views
0

Я установил drupal 7, и мне нужно включить блок кода PHP на странице профиля пользователя.Как просмотреть drupal 7 сеансов с внешней страницы PHP?

Я создал новый блок, и я положил в него следующий код:

"include (http://mysite/sites/all/themes/campi_aggiuntivi.php)" 

В «campi_aggiuntivi.php» Я поставил следующий код:

session_start(); 
print_r ($ _SESSION); 

Но он возвращает пустой массив.

Как мне взаимодействовать с сеансами drupal на этой внешней странице?

Большое спасибо за ваши сообщения.


Благодарим всех вас за ответы. Я пытаюсь установить модуль и вставить его в рекламный блок, как я предложил.

Я создал файл test.info

name = Test Block 
description = description Test Block 
package = package Test Block 
core = 7.x 
dependencies[] = block 

; Information added by drupal.org packaging script on 2013-02-01 
version = "7.x-1.x-dev" 
core = "7.x" 
project = "Test Block" 
datestamp = "1359680350" 

Но я не могу понять, какие функции я помещал в файле test.module, чтобы вставить экран блоков управления модулем тест

Можете ли вы помочь Я пожалуйста? Еще раз спасибо

ответ

0

Я думаю, вам нужно включить Drupal Bootstrap и несколько других необходимых процедур. Вот a link to an issue on d.o, которые могут помочь.

+0

Я добавил включения, но он возвращает эту ошибку: Предупреждение: включить (http://www.miosito.it/drupal/sites/all/themes/campi_aggiuntivi.php): не удалось открыть поток: HTTP-запрос не удался! HTTP/1.0 500 Внутренняя ошибка сервера в eval() (строка 2 из /home/.sites/28/site1/web/drupal/modules/php/php.module(80): код eval() 'd). Предупреждение: include(): Не удалось открыть «http://www.miosito.it/drupal/sites/all/themes/campi_aggiuntivi.php» для включения (include_path = '.:/Usr/share/pear:/usr/share/php ') в eval() (строка 2 из /home/.sites/28/site1/web/drupal/modules/php/php.module(80): код eval()' d). – user1999809

+0

Попробуйте открыть этот файл php самостоятельно. Похоже, что php-файл не открывается правильно. – Bryan

+0

Код моего блока -> include ('http://www.miosito.it/drupal/sites/all/themes/campi_aggiuntivi.php'); Кодее моей пользовательской страницы -> user1999809

0

первая вещь, которую я хочу предложить, не включают в себя, как это:

"include (http://mysite/sites/all/themes/campi_aggiuntivi.php)" 

Использовать локальный путь вместо: "include (sites/all/themes/campi_aggiuntivi.php)"

Но это зависит от того, откуда вы звоните, если оба эти файлы в таком же месте (вызывается в файле tpl профиля пользователя), тогда это может сработать: "include (campi_aggiuntivi.php)"

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

0

Я не тестировал ваш код, но так, как вы пытаетесь сделать, это не обычный способ расширения функциональности Drupal.

Также я надеюсь, что print_r ($ _SESSION); на самом деле print_r ($ _SESSION); в вашем коде, то есть без пробелов.

Если вы хотите добавить блок на странице профиля пользователя, я рекомендую сделать это способом drupal.

У Drupal уже есть отличный пример для создания блока программно. Here is the link.

Посмотрите на модуль block_example внутри него. Он предоставит вам соответствующие примеры кода, которые вы можете использовать для создания блока.

В примере также содержится информация о том, как сделать блок отображаемым на определенных страницах по умолчанию.

После того, как вы создадите блок, разместите их в области, которую вы хотели бы, например, на левой боковой панели, в содержании и т. Д. Соответствующей темы, которая включена на страницах профиля пользователя.

Внутри настраиваемого модуля вы получите доступ к переменной $ _SESSION.

Здесь вы можете включить код в campi_aggiuntivi.php внутри вашего модуля.

Или используйте следующий способ защиты от несанкционированного доступа для загрузки файла. Это будет работать, когда вы называете это из темы.

Допустим, вы хотите использовать custom_module_name.campi_aggiuntivi.inc, расположенный в пользовательском модуле, от темы, то вы можете использовать module_load_include

Например,

module_load_include('inc', 'custom_module_name', 'custom_module_name.campi_aggiuntivi'); 

выше вызов будет загружать custom_module_name. campi_aggiuntivi.inc от custom_module_name папка модуля. Таким образом, вам не нужно жестко кодировать путь, необходимый для доступа к файлу.

0

Основываясь на вашем обновлении .. похоже, что вы пытаетесь создать блок программно. Есть example modules, которые вы можете скачать на Drupal.org. В этой загрузке есть блок-модуль.