/**
  * @see \media\service\interfaces\IMediaManagerService::getItems
  */
 public function getItems($conditions, $fields, $order, $page, $pagesize, $group, $having)
 {
     $items = $this->getModelDao()->getItems($conditions, $fields, $order, $page, $pagesize, $group, $having);
     //填充用户数据和角色数据
     $roleIds = array();
     $userIds = array();
     foreach ($items as $value) {
         $userIds[] = $value['userid'];
         $roleIds[] = $value['role_id'];
     }
     $managerRoleService = Beans::get('media.managerRole.service');
     $userService = Beans::get('user.user.service');
     //获取用户和角色
     $users = array();
     $roles = array();
     if (!empty($roleIds)) {
         $roles = $managerRoleService->getItems($roleIds, 'id,name');
         $roles = ArrayUtils::changeArrayKey($roles, 'id');
     }
     if (!empty($userIds)) {
         $users = $userService->getItems($userIds, 'id,username,email');
         $users = ArrayUtils::changeArrayKey($users, 'id');
     }
     //填充数据
     foreach ($items as $key => $value) {
         $items[$key]['username'] = $users[$value['userid']]['username'];
         if ($items[$key]['email'] == '') {
             $items[$key]['email'] = $users[$value['userid']]['email'];
         }
         $items[$key]['role'] = $roles[$value['role_id']]['name'];
     }
     return $items;
 }
 /**
  * @see        ICache::get()
  */
 public function get($key, $expire = null)
 {
     if ($expire !== null) {
         $this->configs['expire'] = $expire;
     }
     $cacheFile = $this->getCacheFile($key);
     //缓存文件不存在
     if (!file_exists($cacheFile)) {
         if (APP_DEBUG) {
             Debug::appendMessage("缓存文件 {$cacheFile} 不存在.");
         }
         return false;
     }
     //缓存过期, 若$expire = 0 则表示缓存永不过期
     if ($this->configs['expire'] > 0 && time() > filemtime($cacheFile) + $this->configs['expire']) {
         if (APP_DEBUG) {
             Debug::appendMessage("缓存文件 {$cacheFile} 已经过期.");
         }
         return false;
     } else {
         $content = file_get_contents($cacheFile);
         if (ArrayUtils::isSerializedArray($content)) {
             return unserialize($content);
         } else {
             return $content;
         }
     }
 }
 /**
  * 频道列表
  * @param HttpRequest $request
  */
 public function index(HttpRequest $request)
 {
     $chanelService = Beans::get("admin.chanel.service");
     $chanels = $chanelService->getItems(null, "id,name");
     $this->assign("chanels", ArrayUtils::changeArrayKey($chanels, 'id'));
     $this->setOrder('sort_num ASC');
     parent::index($request);
     $this->setView('admin/friendlink_index');
 }
 /**
  * 频道列表
  * @param HttpRequest $request
  */
 public function index(HttpRequest $request)
 {
     $result = $this->chanelService->getItems("", "id,name,pid,sort_num,add_time", "sort_num ASC");
     //提取一级频道
     $topChanels = ArrayUtils::filterArrayByKey('pid', 0, $result);
     foreach ($topChanels as $key => $value) {
         $topChanels[$key]['sub'] = ArrayUtils::filterArrayByKey('pid', $value['id'], $result);
     }
     $this->assign("items", $topChanels);
     $this->setView('admin/chanel_index');
 }
 /**
  * 初始化方法
  */
 public function C_start()
 {
     parent::C_start();
     $this->setServiceBean('article.article.service');
     //获取所有的子频道
     $chanelService = Beans::get('admin.chanel.service');
     $subChanels = $chanelService->getItems('pid > 0', 'id,pid,name,seo_title', 'sort_num ASC');
     $chanels = $chanelService->getItems(null, 'id,pid,name,seo_title', 'sort_num ASC');
     $this->assign('subChanels', $subChanels);
     $this->assign('chanels', ArrayUtils::changeArrayKey($chanels, 'id'));
 }
 /**
  * 保留字列表
  * @param HttpRequest $request
  */
 public function index(HttpRequest $request)
 {
     $name = $request->getParameter("name");
     //标题筛选
     if ($name != '') {
         $conditions['name'] = '%' . $name . '%';
     }
     $this->setConditions($conditions);
     parent::index($request);
     $adminService = Beans::get('admin.admin.service');
     $admins = $adminService->getItems();
     $admins = ArrayUtils::changeArrayKey($admins, 'id');
     $this->assign("admins", $admins);
     $this->assign('params', $request->getParameters());
     $this->setView('system/keywords_index');
 }
 /**
  * 系统配置列表
  * @param HttpRequest $request
  */
 public function index(HttpRequest $request)
 {
     $configService = Beans::get('admin.config.service');
     $items = $configService->getItems();
     //获取app配置文档
     $wepApp = WebApplication::getInstance();
     $groups = $wepApp->getConfig('system.config.group');
     //将数据分组
     $newItems = array();
     foreach ($groups as $key => $value) {
         $newItems[$key] = ArrayUtils::filterArrayByKey('groupkey', $key, $items);
     }
     $this->assign('items', $newItems);
     $this->assign('groups', $groups);
     $this->setView('system/config_index');
 }
 /**
  * 媒体信息修改页面
  * @param HttpRequest $request
  */
 public function index(HttpRequest $request)
 {
     //获取媒体类型
     $mediaTypeService = Beans::get('media.type.service');
     $mediaTypes = $mediaTypeService->getItems(null, 'id,name');
     $this->assign('__mediaTypes', ArrayUtils::changeArrayKey($mediaTypes, 'id'));
     $this->assign("seoTitle", "媒体中心后台管理-媒体信息");
     $this->assign("seoDesc", "媒体信息");
     $this->assign("seoKwords", "媒体中心后台管理 媒体信息");
     if ($this->loginMedia['media_type'] == 1) {
         $logoWidth = 218;
     } else {
         $logoWidth = 128;
     }
     $this->assign('logoWidth', $logoWidth);
     $this->setView('media_profile');
 }
 /**
  * @see \admin\service\interfaces\IChanelService::getChanelCache
  */
 public function getChanelCache($expr = 0)
 {
     //首先获取缓存
     $CACHE = CacheFactory::create('file');
     $items = $CACHE->get(self::CHANEL_ITEMS_KEY, $expr);
     //如果命中缓存了,则直接返回缓存
     if ($items) {
         return $items;
     }
     //获取全部频道
     $chanels = $this->getItems(null, 'id,pid,name,sort_num', 'sort_num ASC');
     //获取一级频道
     $levelOne = ArrayUtils::filterArrayByKey('pid', 0, $chanels);
     foreach ($levelOne as $key => $value) {
         $levelOne[$key]['sub'] = ArrayUtils::filterArrayByKey('pid', $value['id'], $chanels);
     }
     $CACHE->set(self::CHANEL_ITEMS_KEY, $levelOne);
     return $levelOne;
 }
 /**
  * @see \admin\service\interfaces\IMenuService::updateMenuCache
  */
 public function updateMenuCache()
 {
     //获取菜单分组
     $groupService = Beans::get('admin.menuGroup.service');
     $groups = $groupService->getItems(null, 'tkey');
     //获取所有的菜单
     $menus = $this->getItems('ishow=1', 'id,groupkey,name,url,pid');
     $menuData = array();
     foreach ($groups as $values) {
         //获取当前分组的一级菜单
         $conditions = array('pid' => 0, 'groupkey' => $values['tkey'], 'ishow' => 1);
         $topMemus = $this->getItems($conditions, 'id,groupkey,name,url,pid', 'sort_num ASC');
         foreach ($topMemus as $key => $val) {
             $topMemus[$key]['sub'] = ArrayUtils::filterArrayByKey('pid', $val['id'], $menus);
         }
         $menuData[$values['tkey']] = $topMemus;
     }
     $CACHER = CacheFactory::create('file');
     return $CACHER->set(self::$CACHE_KEY, $menuData);
 }
 /**
  * 文章详情页
  * @param HttpRequest $request
  */
 public function detail(HttpRequest $request)
 {
     $id = $request->getParameter('id', 'intval');
     if ($id < 0) {
         page404();
     }
     $alikeNum = 6;
     $service = Beans::get('article.article.service');
     $condition = array('id' => $id, 'ischeck' => 1);
     $item = $service->getItem($condition, 'id,title,bcontent,add_time,media_id');
     if ($item) {
         $alikeArticle = $service->getAlikeArticles($id, $alikeNum, 'id,title,thumb,media_id');
         foreach ($alikeArticle as $key => $value) {
             $mediaIds[] = $value['media_id'];
             $alikeArticle[$key]['thumb'] = getImageThumb($value['thumb'], '90x60');
         }
         //获取来源
         $mediaService = Beans::get('media.media.service');
         $medias = $mediaService->getItems($mediaIds, 'id,name');
         $medias = ArrayUtils::changeArrayKey($medias, 'id');
         foreach ($alikeArticle as $key => $value) {
             if ($value['media_id'] != 0) {
                 $alikeArticle[$key]['media'] = $medias[$value['media_id']]['name'];
             } else {
                 $alikeArticle[$key]['media'] = '驼牛网';
             }
         }
         if ($item['media_id'] == 0) {
             $item['media'] = '驼牛网';
         } else {
             $mediainfo = $mediaService->getItem($item['media_id'], 'name');
             $item['media'] = $mediainfo['name'];
         }
         $item['time'] = date('m-d H:i', $item['add_time']);
         $this->assign('item', $item);
         $this->assign('alikeArticle', $alikeArticle);
         $this->setView('index/detail');
     } else {
         page404();
     }
 }
 /**
  * 首页方法
  * @param HttpRequest $request
  */
 public function index(HttpRequest $request)
 {
     parent::index($request);
     $items = $this->getTemplateVar('items');
     //初始化用户名
     $userIds = array();
     foreach ($items as $value) {
         $userIds[] = $value['userid'];
     }
     if (!empty($userIds)) {
         $userService = Beans::get('user.user.service');
         $users = $userService->getItems($userIds, 'id, username, nickname');
         $users = ArrayUtils::changeArrayKey($users, 'id');
     }
     foreach ($items as $key => $value) {
         $items[$key]['username'] = $users[$value['userid']]['username'];
         $items[$key]['nickname'] = $users[$value['userid']]['nickname'];
     }
     $this->assign('items', $items);
     $this->setView('article/tipoff_index');
 }
 /**
  * 获取媒体数据列表
  * @param HttpRequest $request
  * @param array $conditions 查询初始条件
  */
 private function getData($conditions, HttpRequest $request, $order = 'id DESC')
 {
     $name = $request->getParameter('name', 'urldecode|trim');
     $startTime = $request->getParameter('start_time', 'trim');
     $endTime = $request->getParameter('end_time', 'trim');
     $chanelId = $request->getParameter('media_type', 'intval');
     //标题筛选
     if ($name != '') {
         $conditions['name'] = '%' . $name . '%';
     }
     //频道筛选
     if ($chanelId > 0) {
         $conditions['media_type'] = $chanelId;
     }
     //筛选时间
     if ($startTime != '') {
         $conditions['add_time'] = '>=' . strtotime($startTime);
     }
     if ($endTime != '') {
         $conditions['add_time'] = '<=' . strtotime($endTime);
     }
     $this->setFields('id,name,userid,media_type,add_time,check_note');
     $this->setConditions($conditions);
     $this->setOrder($order);
     parent::index($request);
     //初始化媒体用户名
     $items = $this->getTemplateVar('items');
     $userIds = array();
     foreach ($items as $value) {
         $userIds[] = $value['userid'];
     }
     $userService = Beans::get('user.user.service');
     if (!empty($userIds)) {
         $users = $userService->getItems($userIds, 'id,username, nickname');
         $users = ArrayUtils::changeArrayKey($users, 'id');
         foreach ($items as $key => $value) {
             $items[$key]['username'] = $users[$value['userid']]['username'];
             $items[$key]['nickname'] = $users[$value['userid']]['nickname'];
         }
         $this->assign('items', $items);
     }
     //媒体类型
     $TypeService = Beans::get("media.type.service");
     $mediaType = $TypeService->getItems();
     $this->assign("mediaType", $mediaType);
     $this->assign("params", $request->getParameters());
 }
 /**
  * 修改文章界面
  * @param HttpRequest $request
  */
 public function edit(HttpRequest $request)
 {
     //获取媒体频道列表
     $service = Beans::get("media.chanel.service");
     $navList = $service->getItems("media_id=" . $this->loginMedia["id"], "id,name");
     $this->assign("navList", $navList);
     $articleService = Beans::get($this->getServiceBean());
     $id = $request->getParameter('id', 'intval');
     $item = $articleService->getItem($id);
     if ($item['media_id'] != $this->loginMedia['id']) {
         page404();
     }
     //初始化文章标签
     $tagsId = explode(',', $item['tags']);
     $tagService = Beans::get('article.tags.service');
     $tags = $tagService->getItems($tagsId, 'id, name');
     $tags = ArrayUtils::changeArrayKey($tags, 'id');
     $__tags = array();
     foreach ($tagsId as $value) {
         $__tags[] = $tags[$value]['name'];
     }
     $item['tags'] = implode(',', $__tags);
     $this->assign('item', $item);
     $this->assign("seoTitle", "媒体中心后台管理 - 编辑文章");
     $this->assign("seoDesc", "媒体中心后台管理 文章列表 - 编辑文章");
     $this->assign("seoKwords", "媒体中心后台管理 文章列表  编辑文章");
     $this->setView('article/article_form');
 }
 /**
  * 注册所有的管理员角色
  */
 private function assginRoles()
 {
     $service = Beans::get('admin.role.service');
     $roles = $service->getItems(null, 'id,name');
     $this->assign('roles', ArrayUtils::changeArrayKey($roles, 'id'));
 }
 /**
  * 获取文章相关信息
  * @param array $items
  * @param int $info 要获取的内容信息
  * @param array $cacheInfo 缓存信息
  * @return array|bool
  */
 protected function &loadArticleInfo($items = null, $info = ART_INFO_DEFAULT, $cacheInfo = null)
 {
     //如果有缓存信息,首先读取缓存,默认缓存5分钟
     //        if ( $cacheInfo ) {
     //            $CACHER = CacheFactory::create('file');
     //            $CACHER->baseKey($cacheInfo['baseKey'])->ftype($cacheInfo['ftype'])->factor($cacheInfo['factor']);
     //            if ( !$cacheInfo['expr'] ) {
     //                $cacheInfo['expr'] = 300;
     //            }
     //            $__items = $CACHER->get(null, $cacheInfo['expr']);
     //            if ( $__items ) {
     //                return $__items;
     //            }
     //        }
     //
     //        if ( !$items ) {
     //            return false;
     //        }
     $chanelIds = array();
     $mediaIds = array();
     foreach ($items as $value) {
         $chanelIds[] = $value['chanel_id'];
         $mediaIds[] = $value['media_id'];
     }
     //获取频道
     if ($info & ART_INFO_CHANEL) {
         $chanelService = Beans::get('admin.chanel.service');
         $chanels = $chanelService->getItems($chanelIds, 'id,name');
         $chanels = ArrayUtils::changeArrayKey($chanels, 'id');
     }
     //获取来源
     if ($info & ART_INFO_SOURCE) {
         $mediaService = Beans::get('media.media.service');
         $medias = $mediaService->getItems($mediaIds, 'id,name');
         $medias = ArrayUtils::changeArrayKey($medias, 'id');
     }
     $tagService = Beans::get('article.tags.service');
     foreach ($items as $key => $value) {
         $items[$key]['url'] = url("/article_article_detail/?id={$value['id']}");
         //初始化频道信息
         if ($info & ART_INFO_CHANEL) {
             $items[$key]['chanel_name'] = $chanels[$value['chanel_id']]['name'];
             $items[$key]['chanel_url'] = url("/article_article_index/?id={$value['chanel_id']}");
         }
         //初始化媒体信息
         if ($info & ART_INFO_SOURCE) {
             if ($value['media_id'] == 0) {
                 $items[$key]['media_name'] = '驼牛网';
                 $items[$key]['media_url'] = 'javascript:void(0);';
             } else {
                 $items[$key]['media_name'] = $medias[$value['media_id']]['name'];
                 $items[$key]['media_url'] = url('/article_media_detail/?id=' . $value['media_id']);
             }
         }
         //初始化标签信息
         if ($info & ART_INFO_TAGS) {
             if (trim($value['tags']) != '') {
                 $tags = $tagService->getItems("id in({$value['tags']})", 'id,name');
                 foreach ($tags as $k => $v) {
                     $tags[$k]['tag_url'] = url("/article_tags_detail/?id=" . $v['id']);
                 }
                 $items[$key]['__tags'] = $tags;
             }
         }
     }
     //        if ( $cacheInfo ) {
     //            $CACHER->set(null, $items);
     //        }
     return $items;
 }
 /**
  * 推荐位详情
  * @param HttpRequest $request
  */
 public function detail(HttpRequest $request)
 {
     $id = $request->getParameter('id', 'intval');
     if ($id <= 0) {
         page404();
     }
     $condi = array('position' => $id, 'media_id' => $this->loginMedia['id']);
     $service = Beans::get($this->getServiceBean());
     $item = $service->getItem($condi);
     if (!$item) {
         page404();
     }
     //获取推荐位的文章
     if ($item['aids']) {
         $articleService = Beans::get('article.article.service');
         $aids = explode(',', $item['aids']);
         $items = $articleService->getItems($aids, 'id, title, add_time');
         //重新按照推荐位ID排序
         $items = ArrayUtils::changeArrayKey($items, 'id');
         $newItems = array();
         foreach ($aids as $value) {
             $newItems[] = $items[$value];
         }
         $this->assign('items', $newItems);
     }
     $this->assign('item', $item);
     $this->setView('article/recommend_detail');
 }
 /**
  * @param HttpRequest $request
  */
 public function edit(HttpRequest $request)
 {
     parent::edit($request);
     //初始化文章推荐位置
     $this->setView('article/article_edit');
     $item = $this->getTemplateVar('item');
     //初始化文章标签
     $tagsId = explode(',', $item['tags']);
     $tagService = Beans::get('article.tags.service');
     $tags = $tagService->getItems($tagsId, 'id, name');
     $tags = ArrayUtils::changeArrayKey($tags, 'id');
     $__tags = array();
     foreach ($tagsId as $value) {
         $__tags[] = $tags[$value]['name'];
     }
     $item['tags'] = implode(',', $__tags);
     $this->assign('item', $item);
     //注册图片空间的用户id
     if ($item['userid'] > 0) {
         $this->assign('userid', $item['userid']);
         $this->assign('mediaId', $item['media_id']);
         $_SESSION['front_userid'] = $item['userid'];
         $_SESSION['front_mediaId'] = $item['media_id'];
     }
 }
Esempio n. 19
0
 public function detail(HttpRequest $request)
 {
     $id = $request->getParameter('id', 'intval');
     $service = Beans::get("article.article.service");
     $conditions = array('id' => $id);
     $item = $service->getItem($conditions, 'id,title,bcontent,add_time,media_id');
     if ($item) {
         $condi = array('media_id' => $this->mediaId);
         $alikeArticle = $service->getItems($condi, 'id,title,thumb,add_time,media_id', 'id DESC', 1, 6);
         foreach ($alikeArticle as $value) {
             $mediaIds[] = $value['media_id'];
         }
         //获取来源
         $mediaService = Beans::get('media.media.service');
         $medias = $mediaService->getItems($mediaIds, 'id,name');
         $medias = ArrayUtils::changeArrayKey($medias, 'id');
         foreach ($alikeArticle as $key => $value) {
             if ($value['media_id'] != 0) {
                 $alikeArticle[$key]['media'] = $medias[$value['media_id']]['name'];
             } else {
                 $alikeArticle[$key]['media'] = '驼牛网';
             }
             $alikeArticle[$key]['url'] = url("/mobile_site_detail/?mediaId={$this->mediaId}&id={$value['id']}");
             $alikeArticle[$key]['thumb'] = getImageThumb($value['thumb'], '90x63');
         }
         $mediainfo = $mediaService->getItem($item['media_id'], 'name');
         $item['media'] = $mediainfo['name'];
         $item['time'] = date('m-d H:i', $item['add_time']);
         $this->assign('article', $item);
         $this->assign('alikeArticle', $alikeArticle);
         $this->setView('site/detail');
     } else {
         page404();
     }
 }
 /**
  * 转移临时数据表中的文章, 这次转移不需要转移图片
  */
 private function transferTempArticle()
 {
     //获取文章
     $query = 'SELECT id,userid,chanel_id,media_id,thumb,title,kwords,bcontent,author,tags,add_time,update_time,publish_time,share_times,hits,trash,ischeck ' . 'FROM fiidee_article';
     $items = self::$_TEMP_DB->getItems($query);
     //获取文章内容
     $ids = array();
     foreach ($items as $__val) {
         $ids[] = $__val['id'];
     }
     $articleData = self::$_TEMP_DB->getItems('SELECT aid,content FROM fiidee_article_data_0 WHERE aid IN (' . implode(',', $ids) . ')');
     $articleData = ArrayUtils::changeArrayKey($articleData, 'aid');
     //转移文章
     $articleService = Beans::get('article.article.service');
     $articleTagsService = Beans::get('article.tags.service');
     foreach ($items as $value) {
         //开启事务
         $articleService->beginTransaction();
         $data = array();
         $data['userid'] = $value['userid'];
         $data['chanel_id'] = $value['chanel_id'];
         $data['media_id'] = $value['media_id'];
         $data['thumb'] = $value['thumb'];
         $data['title'] = $value['title'];
         $data['kwords'] = $value['kwords'];
         $data['bcontent'] = $value['bcontent'];
         $data['author'] = $value['author'];
         $data['add_time'] = $value['add_time'];
         $data['update_time'] = $value['update_time'];
         $data['publish_time'] = $value['publish_time'];
         $data['share_times'] = $value['share_times'];
         $data['hits'] = $value['hits'];
         $data['trash'] = $value['trash'];
         $data['ischeck'] = $value['ischeck'];
         //转移内容
         $data['content'] = $articleData[$value['id']]['content'];
         //保存标签
         $tags = explode(' ', $value['tags']);
         $tagIds = array();
         foreach ($tags as $_value) {
             $tagIds[] = $articleTagsService->add(array('name' => $_value));
         }
         //添加文章
         $data['tags'] = implode(',', $tagIds);
         $result = $articleService->add($data);
         if ($result) {
             //提交
             $articleService->commit();
             tprintOk("添加文章成功! 新ID : {$result}");
         } else {
             //回滚
             $articleService->rollback();
             $message = "添加文章失败,源ID : {$value['id']}";
             tprintError($message);
             $this->addErrorLog($message);
         }
     }
 }
Esempio n. 21
0
 /**
  * 获取顶级菜单
  */
 private function getMenuGroups()
 {
     //获取菜单分组
     $groupService = Beans::get('admin.menuGroup.service');
     $menuGroups = $groupService->getItems(null, 'id,name,tkey');
     $this->menuGroups = ArrayUtils::changeArrayKey($menuGroups, 'tkey');
     $this->assign('menuGroups', $this->menuGroups);
 }
 /**
  * @see \media\service\interfaces\IMediaService::getMediaCarousel
  */
 public function getMediaCarousel($rows, $mediaId)
 {
     $articleService = Beans::get('article.article.service');
     $articleRecService = Beans::get('media.articleRec.service');
     $baseCondi = getMediaArticleConds();
     //1. 先读取轮播图推荐位
     $rcondi = array('media_id' => $mediaId, 'position' => 1, 'status' => 1);
     $item = $articleRecService->getItem($rcondi, 'aids');
     $field = 'id, title, thumb, bcontent, hits, author';
     if ($item && $item['aids']) {
         $conditions = $baseCondi;
         $conditions['id'] = '#IN' . $item['aids'];
         $items = $articleService->getItems($conditions, $field, null, 1, $rows);
         if ($items) {
             //按照ID排序
             $ids = explode(',', $item['aids']);
             $newsItems = array();
             $items = ArrayUtils::changeArrayKey($items, 'id');
             foreach ($ids as $value) {
                 if ($items[$value]) {
                     $newsItems[] = $items[$value];
                 }
             }
         }
     }
     //2. 推荐位的文章不够,再从最热门搜索补上
     if (count($newsItems) < $rows) {
         $conditions = $baseCondi;
         $conditions['media_id'] = $mediaId;
         if ($item['aids']) {
             $conditions['id'] = '#NI' . $item['aids'];
         }
         $conditions['thumb'] = "!=''";
         $__items = $articleService->getItems($conditions, $field, "id desc", 1, $rows - count($newsItems));
     }
     $result = array();
     if ($newsItems) {
         $result = array_merge($result, $newsItems);
     }
     if ($__items) {
         $result = array_merge($result, $__items);
     }
     return $result;
 }
 /**
  * 初始化方法
  */
 public function C_start()
 {
     parent::C_start();
     $webApp = WebApplication::getInstance();
     $request = $webApp->getHttpRequest();
     //验证登录
     $adminService = Beans::get('admin.admin.service');
     $this->loginUser = $adminService->getLoginUser();
     if (!$this->loginUser) {
         $this->location(url("/admin_login_index"));
     } else {
         $this->assign('loginUser', $this->loginUser);
     }
     //获取菜单分组
     $groupService = Beans::get('admin.menuGroup.service');
     $menuService = Beans::get('admin.menu.service');
     $__menuGroups = ArrayUtils::changeArrayKey($groupService->getGroupCache(), 'id');
     //初始化左侧菜单的选中状态
     $currentOpt = '/' . $request->getModule() . '_' . $request->getAction() . '_' . $request->getMethod();
     Session::start();
     $mid = $request->getParameter('m', 'intval');
     if ($mid > 0) {
         $_SESSION['m'] = $mid;
         $menu = $menuService->getItem($mid);
         $mpid = $menu['pid'];
         $mgroup = $menu['groupkey'];
         $_SESSION['mpid'] = $mpid;
         $_SESSION['mgroup'] = $mgroup;
     } else {
         $mpid = $_SESSION['mpid'];
         $mgroup = $_SESSION['mgroup'];
         $mid = $_SESSION['m'];
     }
     //获取菜单数据
     $permissions = $adminService->getPermissions();
     $systemMenu = $menuService->getMenuByUser($this->loginUser);
     //__print($systemMenu);die();
     $this->assign('__menuGroups', $__menuGroups);
     $this->assign('systemMenu', $systemMenu);
     $this->assign('mpid', $mpid);
     $this->assign('mgroup', $mgroup);
     $this->assign('mid', $mid);
     $this->assign('currentOpt', $currentOpt);
     //权限认证
     $opt = $request->getAction() . '@' . $request->getMethod();
     if (!$adminService->hasPermission($opt, $permissions)) {
         //判断请求的类型,如果是ajax请求则使用ajax返回
         if (strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
             AjaxResult::ajaxResult('error', "您没有权限进行该操作,请联系管理员添加权限!");
         } else {
             $this->showMessage('danger', '您没有权限进行该操作,请联系管理员添加权限!');
         }
     }
     //初始化url
     $insert_url = '/' . $request->getModule() . '_' . $request->getAction() . '_' . 'insert';
     $update_url = '/' . $request->getModule() . '_' . $request->getAction() . '_' . 'update';
     $add_url = '/' . $request->getModule() . '_' . $request->getAction() . '_' . 'add';
     $index_url = '/' . $request->getModule() . '_' . $request->getAction() . '_' . 'index';
     $quicksave_url = '/' . $request->getModule() . '_' . $request->getAction() . '_' . 'quicksave';
     $this->assign('insert_url', url($insert_url));
     $this->assign('update_url', url($update_url));
     $this->assign('add_url', url($add_url));
     $this->assign('index_url', url($index_url));
     $this->assign('quicksave_url', url($quicksave_url));
     //$this->assign('permissions', $permissions);
     $this->assign('emptyRecord', 'O(∩_∩)O~ 抱歉,暂无记录!');
 }
 /**
  * 媒体列表
  * @param HttpRequest $request
  */
 public function index(HttpRequest $request)
 {
     $tkey = $request->getParameter('tkey', 'trim');
     $page = $request->getParameter('page', 'intval');
     //默认显示群媒体
     if ($tkey == '') {
         $tkey = 'qunmei';
     }
     //如果是自媒体和企业则不显示logo
     $showLogo = false;
     if ($tkey == 'qunmei' || $tkey == '') {
         $showLogo = true;
     }
     //读取媒体缓存信息,默认缓存1小时
     //        $CACHER = CacheFactory::create('file', false);
     //        $CACHER->baseKey('media')->ftype('list')->factor($tkey.'-'.$page);
     //        $__medias = $CACHER->get(null, 7200);
     $__medias = false;
     //初始化服务
     $mediaTypeService = Beans::get('media.type.service');
     $mediaService = Beans::get('media.media.service');
     $articleService = Beans::get('article.article.service');
     $userService = Beans::get('user.user.service');
     $this->setPage($page);
     //组合条件
     $condi = array('ischeck' => 1);
     //获取媒体类型ID
     if ($tkey != '') {
         $mediaType = $mediaTypeService->getItem("tkey='{$tkey}'", 'id,name,summary');
         $condi['media_type'] = $mediaType['id'];
     }
     if (!$__medias) {
         //获取推荐位
         $recommendMedias = null;
         $fields = 'id,name,logo,intro';
         switch ($tkey) {
             case 'gemei':
                 $recommendMedias = $mediaService->getRecommendMedia(4, 'gemei', $fields);
                 break;
             case 'qiye':
                 $recommendMedias = $mediaService->getRecommendMedia(4, 'qiye', $fields);
                 break;
             default:
                 $recommendMedias = $mediaService->getRecommendMedia(4, 'qunmei', $fields);
                 break;
         }
         //查找媒体信息
         $medias = $mediaService->getItems($condi, $fields, 'add_time DESC', $this->getPage(), $this->getPagesize());
         //收集媒体IDS
         $mediaIds = array();
         foreach ($medias as $value) {
             $mediaIds[] = $value['id'];
         }
         foreach ($recommendMedias as $value) {
             $mediaIds[] = $value['id'];
         }
         $mediaIds = implode(",", $mediaIds);
         if ($mediaIds) {
             //查询媒体收录数
             $sumCondi = array('ischeck' => 1, 'media_id' => '#IN' . $mediaIds);
             $sums = $articleService->getItems($sumCondi, 'count(*) as total, media_id', null, null, null, 'media_id');
             $sums = ArrayUtils::changeArrayKey($sums, 'media_id');
             //判断媒体是否被订阅
             $loginUser = $userService->getLoginUser();
             if ($loginUser) {
                 $orderCondi = array('media_id' => "#IN" . $mediaIds, 'userid' => $loginUser['id']);
                 $orderService = Beans::get('media.order.service');
                 $orders = $orderService->getItems($orderCondi, 'id,media_id');
                 $orders = ArrayUtils::changeArrayKey($orders, 'media_id');
             }
             //初始化媒体信息
             foreach ($medias as $key => $value) {
                 if (isset($orders[$value['id']])) {
                     $medias[$key]['order'] = 1;
                 } else {
                     $medias[$key]['order'] = 0;
                 }
                 if (isset($sums[$value['id']])) {
                     $medias[$key]['total'] = $sums[$value['id']]['total'];
                 } else {
                     $medias[$key]['total'] = 0;
                 }
                 $medias[$key]['url'] = url('/article_media_detail/?id=' . $value['id']);
             }
             //初始化推荐媒体信息
             foreach ($recommendMedias as $key => $value) {
                 if (isset($orders[$value['id']])) {
                     $recommendMedias[$key]['order'] = 1;
                 } else {
                     $recommendMedias[$key]['order'] = 0;
                 }
             }
         }
         $__medias['items'] = $medias;
         $__medias['recommends'] = $recommendMedias;
         //添加缓存
         //$CACHER->set(null, $__medias);
     }
     //获取分页
     $count = $mediaService->count($condi);
     $this->getPageData($count);
     $this->assign('showLogo', $showLogo);
     $this->assign('medias', $__medias);
     //注册页面seo信息
     $this->assign('seoTitle', $mediaType['name'] . '牛媒体- 驼牛网');
     $this->assign('seoKwords', $mediaType['summary'] . '驼牛网, 牛媒体');
     $this->assign('seoDesc', $mediaType['summary'] . '驼牛网牛媒体');
     $this->setView('media_index');
 }
 /**
  * 修改文章界面
  * @param HttpRequest $request
  */
 public function edit(HttpRequest $request)
 {
     if ($request->getParameter('id', 'intval')) {
         $id = $request->getParameter('id', 'intval');
         $item = $this->articleService->getItem($id);
         if ($item['userid'] != $this->loginUser['id']) {
             page404();
         }
         //初始化文章标签
         $tagsId = explode(',', $item['tags']);
         $tagService = Beans::get('article.tags.service');
         $tags = $tagService->getItems($tagsId, 'id, name');
         $tags = ArrayUtils::changeArrayKey($tags, 'id');
         $__tags = array();
         foreach ($tagsId as $value) {
             $__tags[] = $tags[$value]['name'];
         }
         $item['tags'] = implode(',', $__tags);
         $this->assign('item', $item);
         $this->setView('article/edit');
     } else {
         page404();
     }
 }
 /**
  * 获取热点文章
  * @param HttpRequest $request
  */
 private function getHotArticles(HttpRequest $request)
 {
     $mediaId = $request->getParameter('media_id', 'intval');
     $articleService = Beans::get('article.article.service');
     $articleRecService = Beans::get('media.articleRec.service');
     $baseCondi = getMediaArticleConds();
     //1. 首先获取推荐位的文章
     $rcondi = array('media_id' => $mediaId, 'position' => 2, 'status' => 1);
     $item = $articleRecService->getItem($rcondi, 'aids');
     $field = 'id, title, thumb, bcontent, hits, author';
     if ($item && $item['aids']) {
         $conditions = $baseCondi;
         $conditions['id'] = '#IN' . $item['aids'];
         $items = $articleService->getItems($conditions, $field);
         if ($items) {
             //按照ID排序
             $ids = explode(',', $item['aids']);
             $newsItems = array();
             $items = ArrayUtils::changeArrayKey($items, 'id');
             foreach ($ids as $value) {
                 if ($items[$value]) {
                     $newsItems[] = $items[$value];
                 }
             }
         }
     }
     //2. 推荐位的文章不够,再从最热门搜索补上
     if (count($newsItems) < 10) {
         $conditions = $baseCondi;
         $conditions['media_id'] = $mediaId;
         if ($item['aids']) {
             $conditions['id'] = '#NI' . $item['aids'];
         }
         $hotArticles = $articleService->getItems($conditions, $field, "hits desc", 1, 10 - count($newsItems));
     }
     $result = array();
     if ($newsItems) {
         $result = array_merge($result, $newsItems);
     }
     if ($hotArticles) {
         $result = array_merge($result, $hotArticles);
     }
     $this->assign('hotArticles', $result);
 }