public static function get_ads_by_posidiont_identify($identify, $allow_cache = true) { if (isset(Yii::app()->cache) && $allow_cache) { // $_cache_key = md5("game.ad.data.identify.{$identify}"); $_r = json_decode(Yii::app()->cache->get($_cache_key), true); if (!empty($_r) && is_array($_r)) { return $_r; } } $_sql = "SELECT ad.*, ap.ad_position_relative_type FROM {{ad_position}} ap\n\t\t\t\tINNER JOIN {{ad_data}} ad ON ad.ad_position_id=ap.ad_position_id\n\t\t\t\tWHERE ad.ad_data_status=:ad_data_status AND ap.ad_position_identify = :ad_position_identify AND ad.ad_data_is_show=:ad_data_is_show\n\t\t\t\tORDER BY ap.ad_position_rank, ad.ad_data_rank ASC"; $_cmd = Yii::app()->db->createCommand($_sql); $_cmd->bindValue(':ad_data_status', self::STAT_NORMAL, PDO::PARAM_INT); $_cmd->bindValue(':ad_position_identify', $identify, PDO::PARAM_STR); $_cmd->bindValue(':ad_data_is_show', 1, PDO::PARAM_INT); $_r = $_cmd->queryAll(); foreach ($_r as $_k => $_v) { if ($_v['ad_position_relative_type'] == 'archives') { $_r[$_k] += ContentArchives::get_archive_by_id($_v['ad_data_relative_id']); if ($_v['ad_data_subject'] == '') { $_r[$_k]['ad_data_subject'] = $_r[$_k]['content_archives_subject']; } if ($_v['ad_data_link'] == '') { $_r[$_k]['ad_data_link'] = Common::sign_archives_url($_v['ad_data_relative_id']); } } if ($_v['ad_data_image_md5'] != '') { $_r[$_k]['image'] = UploadFile::get_file_path($_v['ad_data_image_md5'], 'ad/images'); } if ($_v['ad_data_flash_md5'] != '') { $_r[$_k]['flash'] = UploadFile::get_file_path($_v['ad_data_flash_md5'], 'ad/flash'); } } if (!empty($_r) && isset(Yii::app()->cache) && $allow_cache) { // Yii::app()->cache->set($_cache_key, json_encode($_r)); } return $_r; }
public function actionUpdate($id) { $archive = ContentArchives::get_archive_by_id($id, false); //dump($archive);exit; if ($_SERVER['REQUEST_METHOD'] == 'POST') { if (!isset($_POST['Archive']) || !is_array($_POST['Archive'])) { $this->redirect[] = array('text' => '', 'href' => 'javascript:history.go(-1);'); $this->message('发布文档信息错误', self::MSG_ERROR, true); } if ($_POST['Archive']['content_archives_subject'] == '') { $this->redirect[] = array('text' => '', 'href' => 'javascript:history.go(-1);'); $this->message('文档标题不能为空', self::MSG_ERROR, true); } if (empty($_POST['Archive']['class_id']) || !is_array($_POST['Archive']['class_id'])) { $this->redirect[] = array('text' => '', 'href' => 'javascript:history.go(-1);'); $this->message('请至少选择一个文档栏目', self::MSG_ERROR, true); } else { foreach ($_POST['Archive']['class_id'] as $_k => $_v) { if (empty($_v)) { unset($_POST['Archive']['class_id'][$_k]); } } if (empty($_POST['Archive']['class_id'])) { $this->redirect[] = array('text' => '', 'href' => 'javascript:history.go(-1);'); $this->message('请至少选择一个文档栏目', self::MSG_ERROR, true); } } /*if($_POST['Archive']['content_archives_body'] =='') { $this->redirect[] = array( 'text' => '', 'href' => 'javascript:history.go(-1);', ); $this->message('文档内容不能为空', self::MSG_ERROR, true); }*/ //自定义属性 if (isset($_POST['Archive']['content_archives_flag']) && is_array($_POST['Archive']['content_archives_flag'])) { $_POST['Archive']['content_archives_flag'] = implode(',', $_POST['Archive']['content_archives_flag']); } else { $_POST['Archive']['content_archives_flag'] = ''; } //发布时间 $pubdate = $_POST['Archive']['content_archives_pubtime'] == '' ? $_SERVER['REQUEST_TIME'] : strtotime($_POST['Archive']['content_archives_pubtime']); $user = Yii::app()->user; $flag = Yii::app()->db->createCommand()->update('{{content_archives}}', array('content_archives_subject' => $_POST['Archive']['content_archives_subject'], 'content_archives_color' => $_POST['Archive']['content_archives_color'], 'content_archives_short_subject' => $_POST['Archive']['content_archives_short_subject'], 'content_archives_flag' => $_POST['Archive']['content_archives_flag'], 'content_archives_jump_url' => $_POST['Archive']['content_archives_jump_url'], 'content_archives_thumb' => $_POST['Archive']['content_archives_thumb'], 'content_archives_source' => $_POST['Archive']['content_archives_source'], 'content_archives_author' => $_POST['Archive']['content_archives_author'], 'content_archives_keywords' => $_POST['Archive']['content_archives_keywords'], 'content_archives_summary' => $_POST['Archive']['content_archives_summary'], 'content_archives_rank' => $_POST['Archive']['content_archives_rank'] ? intval($_POST['Archive']['content_archives_rank']) : 255, 'content_archives_pubtime' => $pubdate, 'content_archives_lasttime' => $_SERVER['REQUEST_TIME'], 'update_user_id' => $user->user_id), 'content_archives_id=:content_archives_id', array(':content_archives_id' => $id)); if ($flag) { $content_archives_name = $_POST['Archive']['content_archives_name']; //文档栏目 $_POST['Archive']['class_id'] = array_unique($_POST['Archive']['class_id']); $_sql_addons = ""; $_params = array(':content_archives_id' => $id); foreach ($_POST['Archive']['class_id'] as $_k => $_v) { $_sql_addons .= $_sql_addons ? " OR class_id=:class_id{$_k}" : "class_id=:class_id{$_k}"; $_params[":class_id{$_k}"] = $_v; } //删除多余栏目 $_sql = "DELETE FROM {{content_archives_classes_relating}} WHERE content_archives_id=:content_archives_id AND NOT ({$_sql_addons})"; Yii::app()->db->createCommand($_sql)->execute($_params); //取出现有栏目 $_sql = "SELECT class_id FROM {{content_archives_classes_relating}} WHERE content_archives_id=:content_archives_id AND ({$_sql_addons})"; $_classes = Yii::app()->db->createCommand($_sql)->queryColumn($_params); //去除已存在库中的栏目 $_classes = array_diff($_POST['Archive']['class_id'], $_classes); //栏目入库 foreach ($_classes as $_k => $_v) { Yii::app()->db->createCommand()->insert('{{content_archives_classes_relating}}', array('content_archives_id' => $id, 'class_id' => $_v)); } //标签处理 $_sql_addons = ""; $_params = array(':content_archives_id' => $id); $content_archives_tags = preg_split('/[,|,]/', $_POST['Archive']['content_archives_tags']); foreach ($content_archives_tags as $_k => $_v) { $_sql_addons .= $_sql_addons ? " OR tags_name=:tags_name{$_k}" : "tags_name=:tags_name{$_k}"; $_params[":tags_name{$_k}"] = $_v; } //删除多余栏目 $_sql = "DELETE FROM {{content_archives_tags}} WHERE content_archives_id=:content_archives_id AND NOT ({$_sql_addons})"; Yii::app()->db->createCommand($_sql)->execute($_params); //取出现有栏目 $_sql = "SELECT tags_name FROM {{content_archives_tags}} WHERE content_archives_id=:content_archives_id AND ({$_sql_addons})"; $_tags = Yii::app()->db->createCommand($_sql)->queryColumn($_params); //去除已存在库中的栏目 $_tags = array_diff($content_archives_tags, $_tags); //栏目入库 foreach ($_tags as $_k => $_v) { Yii::app()->db->createCommand()->insert('{{content_archives_tags}}', array('content_archives_id' => $id, 'tags_name' => $_v)); } //缩略图 //附加表信息 $_model = ContentModel::get_model_by_id($archive['content_model_id']); $_columns = ContentModel::get_model_table_by_id($_model['content_model_id']); $_table_name = "{{content_addons{$_model['content_model_identify']}}}"; $data = array(); foreach ($_columns as $_k => $_v) { if ($_v['content_model_field_type'] == ContentModelField::DATA_TYPE_CHECKBOX) { $data[$_v['content_model_field_identify']] = serialize($_POST['Archive'][$_v['content_model_field_identify']]); } else { $data[$_v['content_model_field_identify']] = $_POST['Archive'][$_v['content_model_field_identify']]; } } Yii::app()->db->createCommand()->update($_table_name, $data, 'content_archives_id=:content_archives_id', array(':content_archives_id' => $id)); //删除缓存 if (Yii::app()->cache) { Yii::app()->cache->delete("content.archive.row.{$id}"); } //记录操作日志 $message = '{user_name}修改了文档({archive_subject})信息'; $data = array('user_id' => $user->id, 'user_name' => $user->name, 'archive_subject' => $content_archives_name, 'data' => array('content_archives_id' => $id)); AdminLogs::add($user->id, 'Content/Archive', $id, 'Modify', 'success', $message, $data); if (!isset($_GET['ajax'])) { $this->redirect[] = array('text' => '', 'href' => $this->forward ? $this->forward : url($this->module->id . '/Content/Archives/Index')); $this->message('保存文档成功', self::MSG_SUCCESS, true); } } else { //记录操作日志 $user = Yii::app()->user; $message = '{user_name}修改文档({archive_subject})信息失败'; $data = array('user_id' => $user->id, 'user_name' => $user->name, 'archive_subject' => $content_archives_name, 'data' => array('server' => $_POST['Archive'])); AdminLogs::add($user->id, 'Content/Archive', $id, 'Modify', 'failure', $message, $data); $this->redirect[] = array('text' => '', 'href' => 'javascript:history.go(-1);'); $this->message('保存文档信息失败', self::MSG_ERROR, true); } } if (empty($archive)) { $this->redirect[] = array('text' => '', 'href' => $_SERVER['HTTP_REFERER']); $this->message('文档不存在或已被删除', self::MSG_ERROR, true); } $archive['content_archives_pubtime'] = date('Y-m-d H:i:00', $archive['content_archives_pubtime']); $_model = ContentModel::get_model_by_id($archive['content_model_id']); $_edit_template = $_model['content_model_edit_template'] ? $_model['content_model_edit_template'] : 'default'; $this->render("_{$_edit_template}_update", array('_edit_template' => $_edit_template, 'archive' => $archive, 'classes' => ContentArchivesClass::get_classes_by_cache())); }