public function receive_from_template_fields($Template, $previous_values, $Factory = false, $Item = false, $clear_post = true, $strip_static = true)
 {
     $tags = $Template->find_all_tags_and_repeaters();
     if (is_object($Item)) {
         $Item->squirrel('itemID', '');
         $Item->squirrel('itemRowID', '');
     } else {
         $Item = $Factory->return_instance(array('itemID' => '', 'itemRowID' => ''));
         $Item->set_null_id();
     }
     $Item->squirrel('itemJSON', PerchUtil::json_safe_encode($previous_values));
     $subprefix = '';
     $postitems = $this->find_items('perch_');
     $form_vars = array();
     $options = array();
     $search_text = ' ';
     $API = new PerchAPI(1.0, $this->app_id);
     $Resources = $API->get('Resources');
     list($form_vars, $search_text) = PerchContent_Util::read_items_from_post($Item, $tags, $subprefix, $form_vars, $postitems, $this, $search_text, $options, $Resources, false, $Template);
     if (isset($form_vars['_blocks'])) {
         $form_vars['_blocks'] = PerchUtil::array_sort($form_vars['_blocks'], '_block_index');
     }
     $out = array();
     if ($strip_static) {
         if (PerchUtil::count($form_vars)) {
             foreach ($form_vars as $key => $val) {
                 if (!in_array($key, $Factory->static_fields)) {
                     $out[$key] = $val;
                 }
             }
         }
     } else {
         $out = $form_vars;
     }
     // Clear values from Post (for reordering of blocks etc)
     if ($clear_post) {
         $_POST = array();
     }
     return $out;
 }
示例#2
0
     $items = $Region->get_items_for_updating();
 }
 // Keep note of edited items
 $edited_items = array();
 if (is_array($tags)) {
     if (PerchUtil::count($items)) {
         foreach ($items as $Item) {
             $Item->clear_resources();
             $id = $Item->itemID();
             $form_vars = array();
             $file_paths = array();
             $search_text = ' ';
             $form_vars['_id'] = $id;
             $postitems = $Form->find_items('perch_' . $id . '_');
             $subprefix = '';
             list($form_vars, $search_text) = PerchContent_Util::read_items_from_post($Item, $tags, $subprefix, $form_vars, $postitems, $Form, $search_text, $options, $Resources, false, $Template);
             if (isset($form_vars['_blocks'])) {
                 $form_vars['_blocks'] = PerchUtil::array_sort($form_vars['_blocks'], '_block_index');
             }
             $data = array();
             $data['itemJSON'] = PerchUtil::json_safe_encode($form_vars);
             $data['itemSearch'] = $search_text;
             //PerchUtil::debug($form_vars, 'success');
             $Item->update($data);
             $edited_items[] = $id;
         }
     }
 }
 // Sort based on region options
 $Region->sort_items();
 // Publish (or not if draft)