X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;ds=sidebyside;f=include%2FBarrel.php;h=2379561b86733e1dd251d7171ea7d0bc6d1a3d3c;hb=fcc3110e8eee6ce903281d41f0e4b24e45f986dd;hp=21dd5c2ac3ef726e6d33a1a152d3ba2cddf397ca;hpb=9d2cbe83a35a1a77fc765ca6424da774dbcf0fba;p=diogenes.git diff --git a/include/Barrel.php b/include/Barrel.php index 21dd5c2..2379561 100644 --- a/include/Barrel.php +++ b/include/Barrel.php @@ -273,7 +273,33 @@ class Diogenes_Barrel return $this->flags->hasFlag($flag); } - + + /** Create a page with the given path, and return its PID. + * + * @param $path + */ + function makePath($path, &$caller) + { + $pathbits = split("/", $path); + $curpath = ''; + $curpid = $this->getPID($curpath);; + foreach ($pathbits as $pathbit) + { + $newpath = ($curpath ? "$curpath/" : "") . $pathbit; + $newpid = $this->getPID($newpath); + if (!$newpid) + { + $tpage = new Diogenes_Barrel_Page($this, array('parent' => $curpid, 'location' => $pathbit)); + $tpage->toDb(0, $caller); + $newpid = $this->getPID($newpath); + } + $curpath = $newpath; + $curpid = $newpid; + } + return $curpid; + } + + /** Compile the directory tree */ function compileTree()