RainLab\Pages\Classes\PageList::appendPage PHP Méthode

appendPage() public méthode

The page can be added to the end of the hierarchy or as a subpage to any existing page.
public appendPage ( $page )
    public function appendPage($page)
    {
        $parent = $page->parentFileName;
        $originalData = $this->getPagesConfig();
        $structure = $originalData['static-pages'];
        if (!strlen($parent)) {
            $structure[$page->getBaseFileName()] = [];
        } else {
            $iterator = function (&$configPages) use(&$iterator, $parent, $page) {
                foreach ($configPages as $fileName => &$subpages) {
                    if ($fileName == $parent) {
                        $subpages[$page->getBaseFileName()] = [];
                        return true;
                    }
                    if ($iterator($subpages) == true) {
                        return true;
                    }
                }
            };
            $iterator($structure);
        }
        $this->updateStructure($structure);
    }

Usage Example

Exemple #1
0
 /**
  * Saves the object to the disk.
  */
 public function save()
 {
     $isNewFile = !strlen($this->fileName);
     /*
      * Generate a file name basing on the URL
      */
     if ($isNewFile) {
         $dir = rtrim(static::getFilePath($this->theme, ''), '/');
         $fileName = trim(str_replace('/', '-', $this->getViewBag()->property('url')), '-');
         if (strlen($fileName) > 200) {
             $fileName = substr($fileName, 0, 200);
         }
         if (!strlen($fileName)) {
             $fileName = 'index';
         }
         $curName = trim($fileName) . '.htm';
         $counter = 2;
         while (File::exists($dir . '/' . $curName)) {
             $curName = $fileName . '-' . $counter . '.htm';
             $counter++;
         }
         $this->fileName = $curName;
     }
     parent::save();
     if ($isNewFile) {
         $pageList = new PageList($this->theme);
         $pageList->appendPage($this);
     }
 }
All Usage Examples Of RainLab\Pages\Classes\PageList::appendPage