Exemple #1
0
 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;
 }
Exemple #2
0
 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()));
 }