public function indexRecursive(Kwf_Component_Data $page)
    {
        if ($page->isPage) {
            $r = $this->getRow($page->componentId);
            if (!$r) {
                $r = $this->createRow();
                $r->changed_date = date('Y-m-d H:i:s');
            }
            $r->updateFromPage($page);
            $r->save();
        }

        $childPages = $page->getChildPseudoPages(
            array('pageGenerator' => false),
            array('pseudoPage'=>false, 'unique'=>false) //don't recurse into unique boxes, causes endless recursion if box creates page
        );
        $childPages = array_merge($childPages, $page->getChildPseudoPages(
            array('pageGenerator' => true),
            array('pseudoPage'=>false)
        ));
        $ret = array();
        foreach ($childPages as $p) {
            $this->indexRecursive($p);
        }
    }