Re: Navigation に Tree を使う際の参考に

27 views
Skip to first unread message

custar

unread,
Nov 23, 2009, 2:38:47 AM11/23/09
to CakePHP-ja
# - Navigation に Tree を使う際の参考に
# http://groups.google.com/group/cakephp-ja/browse_thread/thread/18aaeb6d1426416a#
#
# 上記への Reply が期限切れで無効になっていたので、改めて。


- 6.4.3 Advanced Usage
http://book.cakephp.org/view/229/Advanced-Usage

ここで提示されている moveDown/Up の第2引数は、delta は

delta = newPos - oldPos

の事なので、mouse drag の開始時に oldPos を取得しておくとよい。
drag 終了時に newPos を取得し、delta を算出する。

前 POST の (2) では Ext を使っていたが、jquery 版の tree でも動作を確認した。


- Tree Helper 1
http://bakery.cakephp.org/articles/view/tree-helper-1

を使う場合、上記 position に当たる order をもたせたかったので、以下のように変更した。

class TreeHelper extends AppHelper
{
...
function generate ($data, $settings = array ()) {
$this->__settings = array_merge(array(
...
'depth' => 0,
'order' => 0, ........................................ (1)
...

$elementData = array(
'data' => $result,
'depth' => $depth?$depth:count($stack),
'order' => $order++, .............................. (2)
...

/* Suffix */
$__addType = false;

if ($hasVisibleChildren) {
if ($numberOfDirectChildren) { ..................... (3)
$settings['depth'] = $depth + 1;
$settings['order'] = 0; ........................ (4)


入れ子部分 (3) では order を初期化したかったので、(4) を追加した。
(3) を有効にするため、find('threaded') を使った。
Reply all
Reply to author
Forward
0 new messages