/** * Save the settings for a node. * * @since 1.0 * @param string $node_id The node ID. * @param object $settings The settings to save. * @return void */ public static function save_settings($node_id = null, $settings = null) { $post_data = self::get_post_data(); $node_id = isset($post_data['node_id']) ? $post_data['node_id'] : $node_id; $settings = isset($post_data['settings']) ? $post_data['settings'] : $settings; $node = self::get_node($node_id); $new_settings = (object) array_merge((array) $node->settings, (array) $settings); $template_post_id = self::is_node_global($node); // Process the settings. $new_settings = self::process_node_settings($node, $new_settings); // Save the settings to the node. $data = self::get_layout_data(); $data[$node_id]->settings = $new_settings; // Update the layout data. self::update_layout_data($data); // Save settings for a global node template? if ($template_post_id && !self::is_post_node_template()) { // Get the template data. $template_data = self::get_layout_data('published', $template_post_id); // Update the template node settings. $template_data[$node->template_node_id]->settings = $new_settings; // Save the template data. self::update_layout_data($template_data, 'published', $template_post_id); self::update_layout_data($template_data, 'draft', $template_post_id); // Delete the template asset cache. self::delete_all_asset_cache($template_post_id); self::delete_node_template_asset_cache($template_post_id); } // Return the new layout. if (defined('DOING_AJAX')) { FLBuilder::render_layout(); } }
/** * Save the settings for a node. * * @since 1.0 * @param string $node_id The node ID. * @param object $settings The settings to save. * @return void */ public static function save_settings($node_id = null, $settings = null) { $post_data = self::get_post_data(); $node_id = isset($post_data['node_id']) ? $post_data['node_id'] : $node_id; $settings = isset($post_data['settings']) ? $post_data['settings'] : $settings; $node = self::get_node($node_id); $new_settings = (object) array_merge((array) $node->settings, (array) $settings); // Process the settings. $new_settings = self::process_node_settings($node, $new_settings); // Save the settings to the node. $data = self::get_layout_data(); $data[$node_id]->settings = $new_settings; // Update the layout data. self::update_layout_data($data); // Return the new layout. if (defined('DOING_AJAX')) { FLBuilder::render_css(); FLBuilder::render_js(); FLBuilder::render_layout(); } }