コード例 #1
0
ファイル: LayoutProcess.php プロジェクト: g2design/g2-modules
 function replace_content($beans, $content)
 {
     //Load content into DOM
     $c = HtmlPageCrawler::create($content);
     foreach ($beans as $area) {
         $cp = new Theme_Area_Processor($area);
         $content = $cp->render();
         //Find the nodes matching this areas ids
         $node = $c->filter('[mvcl-edit="' . $area->area_name . '"]');
         if ($cp->replace_content()) {
             $node->replaceWith($content);
         } else {
             $node->setInnerHtml($content);
         }
         if ($this->logged_in) {
             $node->setAttribute('data-contenteditable', 'true');
             $node->setAttribute('data-area', $area->getID());
             $node->setAttribute('data-type', $area->type);
         } else {
             $node->removeAttribute('mvcl-type');
         }
     }
     $this->module_process($c);
     return $c->saveHTML();
 }
コード例 #2
0
ファイル: page_model.php プロジェクト: g2design/g2-modules
 function form(RedBeanPHP\OODBBean $page)
 {
     //Check if object is loaded
     //Load areas connected to this page
     $areas = $page->ownArea;
     //Load form html
     $view = new G2_TwigView('forms/page/page');
     //Create processors
     $areasP = [];
     $data = [];
     foreach ($areas as $area) {
         $areaP = new Theme_Area_Processor($area);
         $areasP[$area->id] = $areaP;
         $data[$area->id] = $areaP->render();
     }
     $view->areas = $areasP;
     $view->page = $page;
     $form = new G2_FormMagic($view->get_render());
     if (!$form->is_posted()) {
         $form->set_data($data);
     }
     if ($form->is_posted()) {
         //Field Validate the content
         $data = $form->data();
         foreach ($data as $area_id => $value) {
             $areasP[$area_id]->set_value($value);
             $message = $areasP[$area_id]->validate();
             if ($message !== true) {
                 $form->invalidate($area_id, $message);
             }
         }
         foreach ($form->get_uploaded_files() as $key => $file) {
             $areasP[$key]->set_value($file);
             $message = $areasP[$key]->validate();
             if ($message !== true) {
                 $form->invalidate($area_id, $message);
             }
         }
     }
     if ($form->is_posted() && $form->validate()) {
         $data = $form->data();
         foreach ($data as $area_id => $value) {
             $areasP[$area_id]->set_value($value);
             $areasP[$area_id]->save();
         }
         foreach ($form->get_uploaded_files() as $key => $file) {
             $areasP[$key]->set_value($file);
             $areasP[$key]->save();
         }
         return true;
     }
     echo $form->parse();
 }