Форум → Программирование → Пыхнуть хотите? → Battles → TreeStructure
TreeStructure
-
15 апреля 2010 г. 11:04, спустя 3 минуты 55 секунд
нахуй? :)
Предлагаю батл.
Класс для работы с деревьями со множествами драйверов: AL, MP, NS, RAL (как MP, только отдельная таблица)Сапожник без сапог -
15 апреля 2010 г. 11:11, спустя 6 минут 44 секунды
актуальная тема. Мне б в BL такой класс захуярить.
Я не могу придумать удобного доступа к нему, написать-то можно.$options = array(/* таблица, с которой работаем, названия полей, отвечающих за хранение структуры, тип модели*/);
$leaf = new TreeStructure_Node();
$tree = new TreeStructure($options);
$tree->appendNode($node, 4); // присоединяем новый элементик к id=4
$tree->getAllParents(6);
$tree->changeParent(new TreeStructure_Node(10), new TreeStructure_Node(4));
$tree->hasChilds(43);
$tree->removeRecursive(1); -
15 апреля 2010 г. 11:22, спустя 11 минут
хочу заметить, что remove - всегда рекурсиве))
$tree->removeRecursive(1);
по крайней мере в деревеСапожник без сапог -
15 апреля 2010 г. 11:25, спустя 3 минуты
да, проебалСпустя 32 сек.а еще конвертеры структур можно сделать) -
15 апреля 2010 г. 11:33, спустя 8 минут 44 секунды
а еще можно делом заняться
да, проебалСпустя 32 сек.а еще конвертеры структур можно сделать)Сапожник без сапог -
15 апреля 2010 г. 12:19, спустя 45 минут 14 секунд
class BL_TreeStructure_Driver_RedundantAdjacencyList extends BL_TreeStructure_DriverAbstract implements BL_TreeStructure_DriverInterface
Спустя 35 сек.900!!! -
15 апреля 2010 г. 14:02, спустя 1 час 43 минуты 40 секунд
Если е делать нечего, реализуй фиббаначеву кучу на пхп =)Work, buy, consume, die -
15 апреля 2010 г. 14:18, спустя 15 минут 37 секунд
чего вы чуть что сразу "делать нечего"? У меня древовидная структура в контенте и в разделах новостей -
15 апреля 2010 г. 19:08, спустя 4 часа 49 минут 57 секунд
на интерес можно. сколько денег поставишь?ιιlllιlllι унц-унц -
16 апреля 2010 г. 0:39, спустя 5 часов 31 минуту 36 секунд
о, я не в курсе, что на батлах можно платить и получать деньги. Ну тыщенки 2 ЯД.
Я, кстати пишу уже, если че. Заказчик не ждет -
16 апреля 2010 г. 1:34, спустя 54 минуты 11 секунд
а кто нам запретит? )))
срок?
я так понял, что аббревиатура RAL не особо распостранена, так что я ее точно не буду делать :) мало ли кто чего придумалιιlllιlllι унц-унц -
16 апреля 2010 г. 14:15, спустя 12 часов 40 минут 55 секунд
я как раз RAL делаю. На нем наверно и остановлюсь, на остальные нет времени, хотя задумка хорошая.
Задачка очень специфическая, во-первых мне необходимо поле sorder, что бы можно было поднимать и опускать ветки в пределах одного родителя.
Во-вторых при выборке нужно задавать уровень поиска вниз и вверх.
В-третьих, самое сложное (в плане интерфейса) нужно джоинить пару-тройку таблиц при выборке.public function remove($nodeId)
{
$nodes = $this->db->getColumn("
SELECT DISTINCT id
FROM :$this->structure
WHERE parent_id=?i", $nodeId);
$nodes[] = $nodeId;
$idsStr = implode(',', $nodes);
$this->db->query("DELETE FROM :$this->table WHERE id IN (" . $idsStr . ")");
$this->db->query("DELETE FROM :$this->structure WHERE id IN (" . $idsStr . ")");
return $nodes;
}
норм? тормозить не будет? -
Пожалуйста, авторизуйтесь, чтобы написать комментарий!