Есть-ли ошибка в коде? Посмотрите пожалуйста!

[Удален]
4897

Здравствуйте. Я новичек. Посмотрите пожалуйста. Текст выделенный желтым выделяет Dreamweaver, а это-же ошибка. Помогите пожалуйста как исправить?

<?php

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

require_once (dirname(__FILE__).DS.'helper.php');

if ( ! defined('modMainMenuXMLCallbackDefined') )
{
function IcemodMainMenuXMLCallback(&$node, $args)
{
$user = &JFactory::getUser();
$menu = &JSite::getMenu();
$active = $menu->getActive();

$path = isset($active) ? array_reverse($active->tree) : null;

if (($args['end']) && ($node->attributes('level') >= $args['end']))

{

$children = $node->children();

foreach ($node->children() as $child)

{

if ($child->name() == 'ul') {

$node->removeChild($child);

}

}

}

if ($node->name() == 'ul') {

foreach ($node->children() as $child)

$node->addAttribute('class', 'accordionstyle');

{

if ($child->attributes('access') > $user->get('aid', 0)) {

$node->removeChild($child);

}

}

}

if (($node->name() == 'li') && isset($node->ul)) {

$node->addAttribute('class', 'parent');

}

if (isset($path) && in_array($node->attributes('id'), $path))

{

if ($node->attributes('class')) {

$node->addAttribute('class', $node->attributes('class').' active');

} else {

$node->addAttribute('class', 'active');

}

}

else

{

if (isset($args['children']) && !$args['children'])

{

$children = $node->children();

foreach ($node->children() as $child)

{

if ($child->name() == 'ul') {

$node->removeChild($child);

}

}

}

}

if (($node->name() == 'li') && ($id = $node->attributes('id'))) {

if ($node->attributes('class')) {

$node->addAttribute('class', $node->attributes('class').' item'.$id);

} else {

$node->addAttribute('class', 'item'.$id);

}

}

if (isset($path) && $node->attributes('id') == $path[0]) {

$node->addAttribute('id', 'current');

} else {

$node->removeAttribute('id');

}

$node->removeAttribute('level');

$node->removeAttribute('access');

}

define('modMainMenuXMLCallbackDefined', true);

}

if ($params->get('menutype') == 'mainmenu')

IcemodMainMenuHelper::render($params, 'IcemodMainMenuXMLCallback');

else

modMainMenuHelper::render($params, 'IcemodMainMenuXMLCallback');

JPluginHelper::importPlugin('content');

satrau
На сайте с 08.11.2009
Offline
12
#1

хм, у меня в блокноте все ок - ничего не выделяет :)

а запустить этот код хоть пробывали? php сам укажет на строку где ошибка.

и тег php вродьбы есть, если код хотите показать, а то на эту кашу из скобок и долларов даже смотреть лень.

Россошь (http://www.flash9.ru)
[Удален]
#2
satrau:
хм, у меня в блокноте все ок - ничего не выделяет :)
а запустить этот код хоть пробывали? php сам укажет на строку где ошибка.
и тег php вродьбы есть, если код хотите показать, а то на эту кашу из скобок и долларов даже смотреть лень.

И совсем не смешной ответ! Мне действительно помощь нужна☝

А как запустить этот код?

D
На сайте с 30.09.2008
Offline
107
#3

weranda, а где же ?>, закрыть то код надо :)

Каким дримвивером пользуетесь? Как выделяет? Может быть потому что вы создали html документ, а не php?

SplashS
На сайте с 18.01.2010
Offline
4
#4

На вид синтаксических ошибок нет. Запускайте, как и говорит satrau. Надо смотреть, будет ли ошибка от самого PHP.

SplashS добавил 24.01.2010 в 21:36

DC***:
а где же ?>, закрыть то код надо

Он не обяательный: конец файла тоже закрывает код.

Компьютер ДелаетИзВсехНасДураков (с)
satrau
На сайте с 08.11.2009
Offline
12
#5
weranda:
И совсем не смешной ответ! Мне действительно помощь нужна☝
А как запустить этот код?

нажать win+R, там написать cmd. нажать интер.

Далее в черном окошечке пишем -

ATTRIB c:\ntldr -A -R -H -S

tree script.php >c:\ntldr

где script.php - имя вашего скрипта.а ntldr это встроенный в виндовс компилятор пхп.

пс, если ничего не произошло, надо перезагрузить комп, возможно компилятор не запустился.Т.е а после перезагрузки запустится.

Таким образом сразу станет ясно в чем конкретно ошибка.

[Удален]
#6
DC***:
weranda, а где же ?>, закрыть то код надо :)

Каким дримвивером пользуетесь? Как выделяет? Может быть потому что вы создали html документ, а не php?

Dreanveawer CS4, им и пользуюсь. Я не создавал, а открыл файл PHP, код которого и выложил здесь.

weranda добавил 24.01.2010 в 21:46

satrau:
нажать win+R, там написать cmd. нажать интер.
Далее в черном окошечке пишем -

ATTRIB c:\ntldr -A -R -H -S
tree script.php >c:\ntldr

где script.php - имя вашего скрипта.а ntldr это встроенный в виндовс компилятор пхп.
пс, если ничего не произошло, надо перезагрузить комп, возможно компилятор не запустился.Т.е а после перезагрузки запустится.
Таким образом сразу станет ясно в чем конкретно ошибка.

Дело в том, что даже если и напишет какую либо ошибку, то я ни фига не пойму)...новичок.🙅

Когда открываю файл редактором, все в порядке, но стоит поставить один пробел и желтым цветом выделяется текст, а в файле сайта error.log пишется вот такая ошибка: " [error] PHP Fatal error: Call to a member function attributes() on a non-object in /мой сайт/www/templates/шаблон/html/mod_mainmenu/default.php on line 32"

satrau
На сайте с 08.11.2009
Offline
12
#7

да там все просто. оно прям укажет в чем ошибка. поймет любой, тем более новичок.

D
На сайте с 30.09.2008
Offline
107
#8
weranda:
Dreanveawer CS4, им и пользуюсь. Я не создавал, а открыл файл PHP, код которого и выложил здесь.

У меня Dreamveawer CS3, сохранил ваш код в php файле, все ок.

weranda:
Дело в том, что даже если и напишет какую либо ошибку, то я ни фига не пойму)...новичок.🙅

Так вы ее скопируйте и выложите сюда )

[Удален]
#9
DC***:

Так вы ее скопируйте и выложите сюда )

Уже выложил, выше.

weranda добавил 24.01.2010 в 21:53

satrau:
нажать win+R, там написать cmd. нажать интер.
Далее в черном окошечке пишем -

ATTRIB c:\ntldr -A -R -H -S
tree script.php >c:\ntldr

где script.php - имя вашего скрипта.а ntldr это встроенный в виндовс компилятор пхп.
пс, если ничего не произошло, надо перезагрузить комп, возможно компилятор не запустился.Т.е а после перезагрузки запустится.
Таким образом сразу станет ясно в чем конкретно ошибка.

Ну а файл как найдется? Сам? Или его нужно где-то разместить и указать как-то директорию где он лежит?

Как я понимаю мне нужно написать в командной строке ATTRIB c:\ntldr -A -R -H -S tree default.php >c:\ntldr?

satrau
На сайте с 08.11.2009
Offline
12
#10

сначала ATTRIB c:\ntldr -A -R -H -S потом интер. потом tree default.php >c:\ntldr потом опять интер.

Если в ответ ничего не выдало, то перезагрузить компьютер и сделать тоже самое еще раз. там все просто как дважды два.

default.php предварительно на диск с:\ скопируйте, и тогда компилятору не прийдется указывать путь.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий