DB_NestedSet::moveTree

DB_NestedSet::moveTree() – ノードの移動やコピーのラッパー

Synopsis

require_once 'DB/NestedSet.php';

int DB_NestedSet::moveTree ( int $id , $targetid , constant $pos , bool $copy = = false , int $target )

Description

This package is not documented yet.

Parameter

integer $id

移動元の ID。

$targetid

移動先の ID。

constant $pos

位置 (定数 NESE_MOVE_* を使用します)。

boolean $copy

コピーを作成するかどうか。

integer $target

ターゲット ID。

Return value

移動したノードの ID、あるいはエラー時に false を返します。

See

_moveInsideLevel

_moveRoot2Root

および _moveAcross も参照ください。

Throws

例外はスローされません。

Note

This function can not be called statically.

Example

サブブランチの取得

<?php
require_once('DB/NestedSet.php');
    
$nestedSet =& DB_NestedSet::factory('DB'$dsn$params);
    
$parent $nestedSet->createRootNode(array('name' => 'root-node'), falsetrue);
    
$parent2 $nestedSet->createSubNode($parent, array('name' => 'sub-node));
    $parent3 = $nestedSet->createSubNode($parent2, array('
name' => 'sub-node));
    
$nestedSet->createSubNode($parent3, array('name' => 'sub1'));
    
$node $nestedSet->createSubNode($parent3, array('name' => 'sub2'));
    
$nestedSet->moveTree($node$parentNESE_MOVE_AFTER);
?>
指定したノードが他のノードの親かどうかを調べる (Previous) 指定した ID のノードのデータを取得する (Next)
Last updated: Wed, 23 Apr 2014 — Download Documentation
Do you think that something on this page is wrong? Please file a bug report or add a note.
View this page in:

User Notes:

Note by: ben@level8ds.com
Trees that are moved must be positioned "next to" (and not "beneath") existing nodes. As such, it is not possible to nest the source tree beneath a target node that has no existing children.

To clarify, valid targets for a move operation include leaves only; a branch (node with at least one child) is not a valid target.

One workaround is to create a new, temporary sub-node beneath the target, move the tree (using the temporary node as the target), and delete the temporary node once the move succeeds.