[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Добавление элемента списка через DOM
McLotos
Добрый день.
В общем продолжаю мучить свой шаблонизатор, возникла одна странность.
Есть некоторые методы, которые используются модулями cms для создания в шаблонах мест для себя любимых. Ну допустим тот же модуль Menu должен создать несколько разных меню в разных частях шаблона, для этого он должен передать в шаблонизатор информацию где и что ему нужно создать.
foreach($menus as $key=>$value)
{$$key = $value;
if(empty($$key) === FALSE)
{
foreach ($$key as $k => $v)
{$div=$GLOBALS['tpl'] -> create($key,'div', 'class="Menu", id="'.$k.'"');//сначала создаём в нужном месте шаблона div для меню <div class="Menu" id="$k">
$p=$GLOBALS['tpl'] -> createChild($div,'p');//теперь в том div который создали добавляем <p></p> для заголовка меню
$list=$GLOBALS['tpl'] -> createChild($div,'ul');//создаём список для будущих пунктов меню
$GLOBALS['tpl'] -> createChild($list,'li');//пытаемся добавить элемент в список
}
}
}

Вот там где я пытаюсь добавить элемент в список, что-то не то.
<div id="top">
<div
class="Menu" id="Base">
<p></p>
<ul><li></ul>
</div>
</div>
<div
id="left">
<div
class="Menu" id="Contacts">
<p></p>
<ul><li></ul>
</div>
<div
class="Menu" id="UserMenu">
<p></p>
<ul><li></ul>
</div>
</div>

Проблема может быть только в одном методе
public function createChild()
{$args=func_get_args();
$child=$this -> dom -> createElement($args[1]);
$result=$args[0]->appendChild($child);
return $result;
}

Странно что этот метод нормально создает p внутри div, нормально создаёт ul внутри div, но когда я пытаюсь создать li в ul что-то идёт не так.
Проблема не в уровне вложености, только что проверил. пытался создать li не в ul а в div, тоже создался только открывающий тэг

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.