Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] cms Joomla, подключение файла в модуль, область видимости переменных

Ответить
Настройки темы
[решено] cms Joomla, подключение файла в модуль, область видимости переменных

Пользователь


Сообщения: 124
Благодарности: 2

Профиль | Отправить PM | Цитировать


Здравствуйте!
У меня Joomla 1.5.15

Создала модуль www/modules/mod_test1/mod_test1.php и там подключаю файл:
require_once("../www/function/cnst.php");

cnst.php:

PHP код: Выделить весь код

<?php

$name1
=500;
?>

Переменная $name1, в файле mod_test1.php, не определена.
Пол года назад также подключала модули всё работает до сих пор. а во вновь созданных никак. Почему так?!

Отправлено: 07:25, 18-02-2011

 

Deadooshka


Сообщения: 2482
Благодарности: 671

Профиль | Отправить PM | Цитировать


Попробуйте через $GLOBALS['name1'] (фактически может определяться внутри функции/метода - можно об этом не знать, если не видеть скрипт и всю связку инклудов).

Отправлено: 20:24, 18-02-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 124
Благодарности: 2

Профиль | Отправить PM | Цитировать


Sham, показываю код файлов полностью.

www\modules\mod_test1 содержит два файла:
1)mod_test1.php
2)mod_test1.xml

www/function содержит файл:
cnst.php

Скрипты:
www/function/cnst.php
PHP код: Выделить весь код

<?php
//текущий год
DEFINE('YEAR',date('Y'));

$name1=500;
?>

www\modules\mod_test1\mod_test1.php
PHP код: Выделить весь код

<?php

// no direct access
defined'_JEXEC' ) or die( 'Go Away' );

require_once(
"../www/function/cnst.php");

print 
$name1;//почему не определена?

?>


www\modules\mod_test1\mod_test1.xml
HTML код: Выделить весь код
<?xml version="1.0" encoding="utf-8"?> <install type="module" version="1.5" client="site"> <name>тестовый модуль</name> <author>Toma</author> <creationDate>январь 2011</creationDate> <copyright>компания</copyright> <license>http://www.gnu.org/copyleft/gpl.html GNU/GPL</license> <authorEmail>zt@mail.ru</authorEmail> <authorUrl>http://www.zt.ru/</authorUrl> <version>1.5</version> <description>Этот модуль показывает текст.</description> <files> <filename module="mod_test1">mod_test1.php</filename> </files> <params> <param name="moduleclass_test1" type="text" default="" label="Суффикс класса модуля" description="Суффикс, который будет применен к CSS классу модуля (table.moduletable), это позволяет отдельное моделирование модуля." /> <param name="@spacer" type="spacer" default="" label="" description="" /> </params> </install>


Отправлено: 07:10, 21-02-2011 | #3


Deadooshka


Сообщения: 2482
Благодарности: 671

Профиль | Отправить PM | Цитировать


Текст ошибки какой? Стоп может быть на любой строке, включая defined и неправильный путь к cnst.php (лучше сделать абсолютным).

Отправлено: 22:23, 21-02-2011 | #4


Пользователь


Сообщения: 124
Благодарности: 2

Профиль | Отправить PM | Цитировать


ошибка:
Цитата:
Notice: Undefined variable: name1 in C:\www\modules\mod_test1\mod_test1.php on line 7


Работает, если объявляю переменные как глобальные. Но почему тогда в других модулях этой же cms!!, те же самые переменные работают, даже если их не объявлять глобальными? ничего не понимаю.

Скрипты:
www/function/cnst.php
PHP код: Выделить весь код

<?php
//текущий год
DEFINE('YEAR',date('Y'));

global 
$name1
$name1=500;
?>

www\modules\mod_test1\mod_test1.php
PHP код: Выделить весь код

<?php

// no direct access
defined'_JEXEC' ) or die( 'Go Away' );

require_once(
"../www/function/cnst.php");

global 
$name1;
print 
$name1;//в этом случае выдает : 500

?>


Отправлено: 07:25, 22-02-2011 | #5


Deadooshka


Сообщения: 2482
Благодарности: 671

Профиль | Отправить PM | Цитировать


rtm

Отправлено: 07:48, 22-02-2011 | #6


Пользователь


Сообщения: 124
Благодарности: 2

Профиль | Отправить PM | Цитировать


да. я знаю что внутри функций идет локальная область видимости.
Но у меня же нет функций. просто подключив файл - переменная должна определяться без global, почему тогда у меня без global перестало работать (раньше работало!!!)
кажется всё очевидно - но не работает. я не вижу ошибки...

Отправлено: 09:37, 22-02-2011 | #7


Deadooshka


Сообщения: 2482
Благодарности: 671

Профиль | Отправить PM | Цитировать


Можно предположить, что "require_once("../www/function/cnst.php");" уже стоит где-то раньше, и повторно не вызывается (_once только однажды работает). Попробуйте обычный include (без once). Ну и
Цитата Sham:
Попробуйте через $GLOBALS['name1'] »
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:34, 23-02-2011 | #8


Пользователь


Сообщения: 124
Благодарности: 2

Профиль | Отправить PM | Цитировать


Sham, Вы правы:
Цитата Sham:
"require_once("../www/function/cnst.php");" уже стоит где-то раньше, и повторно не вызывается »
Оказалось, что на одну страницу я подключила два модуля.
И в обоих делала подключение файла:
"require_once("../www/function/cnst.php");"
Получается, что файл подключился один раз, а область видимости для каждого модуля своя, поэтому переменная была не определена.


ЗЫ Sham, огромное Вам спасибо! Всегда меня выручаете!!!
Разрешите поздравить Вас с Праздником! Нам просто необходимы такие защитники как Вы!
Здоровья, Счастья, Любви и много много радости Вам и вашим близким!

Последний раз редактировалось zvezda_t, 24-02-2011 в 10:53.


Отправлено: 10:46, 24-02-2011 | #9


Deadooshka


Сообщения: 2482
Благодарности: 671

Профиль | Отправить PM | Цитировать


zvezda_t, Вас также с праздником (слово "защитник" не имеет гендерной окраски)

Отправлено: 11:09, 24-02-2011 | #10



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] cms Joomla, подключение файла в модуль, область видимости переменных

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Подключение к ftp из bat-файла Николя Скриптовые языки администрирования Windows 27 03-04-2017 06:07
.NET - Перекрытие области видимости в цикле foreach Delirium Программирование и базы данных 2 18-09-2010 02:06
Какой CMS после Joomla? Bagle Вебмастеру 0 29-10-2009 16:41
Как прикрепить файл для отправки по электронной почте в CMS Joomla? SashaKl Вебмастеру 1 12-06-2009 15:44
Разное - wi-fi и 3 метра вне прямой видимости Bright Прочее железо 1 11-05-2009 14:22




 
Переход