неофициальный форум фкн

yii nestedsetbehavior - получение всех элементов (узлов) всех деревьев

получить массив всех узлов (окажется в $nodes) можно выполнив такой запрос:

$criteria=new CDbCriteria;
$criteria->order = 't.root, t.lft' ; // or 't.root, t.lft' for multiple trees (для многих деревьев)
$nodes = ForumCategory::model()->findAll($criteria);

после чего обойдя массив иерархию можно отобразить используя свойство level очередного элемента -
дочерние элементы - всегда следуют за родительским и их значение level всегда больше родительского

yii nestedsetbehavior - добавляем потомка к некоторому элементу

добавляем потомка к некоторому элементу - приведу фрагмент кода контроллера:

yii nestedsetbehavior - вывод всех "корней" - корневых узлов

это делается так:

$roots = ForumCategory::model()->roots()->findAll();

yii nestedsetbehavior удалить узел и всех потомков

пример таков:

$model  = ForumCategory::model()->findByPk($id); // пытаемся найти в базе сущ. модель
		// если не нашли по id
		if (!$model)
			throw new Exception('Bad id.');
		$model->deleteNode(); // удаляем узел, и всех его "потомков"

получить доступ к компонентам модуля = yii access module components

бросаем компонент в папку /components внутри папки модуля, никакого пространства имён для него можно не определять (как видите сам мой модуль как раз в пространстве имён) и просто определяем метод init() в осоновном скрипте модуля, который вернёт параметры конфигурации (мой модуль лежит в папке forum)

пример SQL для таблицы "категория форума" (nested sets) - для использвония нескольких деревьев

Forums:

CREATE TABLE `forumcategory` (
	`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
    `name` VARCHAR(255) DEFAULT NULL,
	`root` INT(10) UNSIGNED DEFAULT NULL,
  `lft` INT(10) UNSIGNED NOT NULL,
  `rgt` INT(10) UNSIGNED NOT NULL,
  `level` SMALLINT(5) UNSIGNED NOT NULL,
  PRIMARY KEY (`id`),
  KEY `root` (`root`),
  KEY `lft` (`lft`),
  KEY `rgt` (`rgt`),
  KEY `level` (`level`)
);

подобная структура может обрабатываться с помощью следующего расширения

Снупи & Chanel

Pages

Subscribe to RSS - неофициальный форум фкн