/** * Save custom params for post * @param int $post_id */ private function saveParams($post_id) { $params = array(); $post_params = waRequest::post('params', '', waRequest::TYPE_STRING_TRIM); if ($post_params) { $post_params = explode("\n", $post_params); foreach ($post_params as $param) { $param = explode("=", trim($param), 2); if (count($param) == 2) { $params[$param[0]] = $param[1]; } } } $params_model = new blogPostParamsModel(); $old_params = !$post_id ? array() : $params_model->select('name,value')->where('post_id = i:id', array('id' => $post_id))->fetchAll('name', true); if ($params || $old_params) { $add = array(); $update = array(); foreach ($params as $param => $value) { if (isset($old_params[$param])) { if ($value != $old_params[$param]) { $update[$param] = $value; } unset($old_params[$param]); } else { $add[$param] = $value; } } $delete = $old_params; if ($delete) { $params_model->deleteByField(array('post_id' => $post_id, 'name' => array_keys($delete))); } if ($add) { foreach ($add as $name => $value) { $params_model->insert(array('post_id' => $post_id, 'name' => $name, 'value' => $value)); } } if ($update) { foreach ($update as $name => $value) { $params_model->updateByField(array('post_id' => $post_id, 'name' => $name), array('value' => $value)); } } } }
/** * Get custom params for post * @param int $post_id * @return string[string] */ private function getPostParams($post_id) { $params = array(); if ($post_id) { $params_model = new blogPostParamsModel(); $params = $params_model->select('name, value')->where('post_id = i:id', array('id' => $post_id))->fetchAll('name', true); } return $params; }