Ejemplo n.º 1
0
 /**
  * 初始化
  * @see CController::init()
  */
 public function init()
 {
     parent::init();
     //前端控制器在此获得分类,从顶级分类(0)开始分层往下取,得到所有层次的分类
     //        ppr(XXcache::system('_catalog')); //这里是遍历出来未按照从属排序
     //        ppr($this->_catalog); //这里重新按从属排序
     $this->_catalog = Catalog::get(0, XXcache::system('_catalog'));
     //系统配置
     $this->_conf = XXcache::system('_config');
     $this->_seoTitle = $this->_conf['seo_title'];
     $this->_seoKeywords = $this->_conf['seo_keywords'];
     $this->_seoDescription = $this->_conf['seo_description'];
     if ($this->_conf['site_status'] == 'close') {
         self::_closed();
     }
     $this->_thisUrl = higu();
     if ($this->_conf['cache_page_status'] == 'open') {
         $value = Yii::app()->cache->get($this->_thisUrl);
         if ($value === false) {
             echo 'nocache';
         } else {
             echo 'cache';
             echo $value;
         }
     }
 }
 public function getCMSFields()
 {
     $fields = parent::getCMSFields();
     $catalogDropdown = DropdownField::create('CatalogID', 'Catalog to display', Catalog::get()->map('ID', 'Title'))->setEmptyString('Select...');
     $fields->addFieldToTab('Root.Main', $catalogDropdown);
     return $fields;
 }
 public function handler()
 {
     $params = $this->getURLParams();
     $catalog = null;
     $product = null;
     // Only deal with AJAX requests
     if (!$this->request->isAjax()) {
         return $this->httpError(401, 'Bad request');
     }
     switch ($params['Action']) {
         case 'Catalog':
             $catalog = Catalog::get()->byId($params['ID']);
             break;
         case 'Product':
             $product = Product::get()->byID($params['ID']);
             break;
         default:
             return $this->httpError(401, 'Bad request');
     }
     // Make sure we have some data.
     if (!$catalog && !$product) {
         return $this->httpError(404, 'Sorry, we couldn\'t find anything.');
     }
     // If there's a catalog, fetch its JSON, otherwise fetch the product's JSON.
     $JSON = $catalog ? $catalog->getCatalogJSON() : $product->getProductJSON();
     $response = $this->getResponse()->addHeader('Content-type', 'application/json; charset=utf-8');
     $response->setBody($JSON);
     return $response;
 }
 public function onAfterWrite()
 {
     parent::onAfterWrite();
     self::updateProductCache();
     // Update the catalog cache
     if ($catalog = Catalog::get()->byID($this->CatalogID)) {
         $catalog->updateCatalogCache();
     }
 }
 public function requireDefaultRecords()
 {
     parent::requireDefaultRecords();
     if (!Catalog::get()->first()) {
         $catalog = new Catalog();
         $catalog->Title = "Product Catalog";
         $catalog->URLSegment = "catalog";
         $catalog->Sort = 4;
         $catalog->write();
         $catalog->publish('Stage', 'Live');
         $catalog->flushCache();
         DB::alteration_message('Product Catalog created', 'created');
     }
 }
Ejemplo n.º 6
0
 /**
  * 首页
  */
 public function actionIndex()
 {
     $catalog_id = trim($this->_request->getParam('catalog_id'));
     $keyword = trim($this->_request->getParam('keyword'));
     $catalog = Catalog::model()->findByPk($catalog_id);
     //调取子孙分类和当前分类
     $catalog_ids = Catalog::get($catalog ? $catalog_id : 0, $this->_catalog);
     $children_ids = Helper::array_key_values($catalog_ids, 'id');
     $catalog_id ? $all_ids = array_merge($children_ids, (array) $catalog_id) : ($all_ids = $children_ids);
     $db_in_ids = implode(',', $all_ids);
     if (!$db_in_ids || $catalog_id && $catalog->type != $this->_type_ids['video']) {
         throw new CHttpException(404, Yii::t('common', 'The requested page does not exist.'));
     }
     //SEO
     $navs = array();
     if ($catalog) {
         $this->_seoTitle = $catalog->seo_title ? $catalog->seo_title : $catalog->catalog_name . ' - ' . $this->_setting['site_name'];
         $this->_seoKeywords = $catalog->seo_keywords;
         $this->_seoDescription = $catalog->seo_description;
         $navs[] = array('url' => $this->createUrl('video/index', array('catalog_id' => $catalog->id)), 'name' => $catalog->catalog_name);
     } else {
         $this->_seoTitle = Yii::t('common', 'VideoListTitle') . ' - ' . $this->_setting['site_name'];
         $this->_seoKeywords = Yii::t('common', 'VideoListKeywords');
         $this->_seoDescription = Yii::t('common', 'VideoListDescription', array('{site_name}' => $this->_setting['site_name']));
         $navs[] = array('url' => $this->_request->getUrl(), 'name' => $this->_seoTitle);
     }
     //查询条件
     $post = new Video();
     $criteria = new CDbCriteria();
     $condition = "t.status = 'Y'";
     $keyword && ($condition .= ' AND title LIKE \'%' . $keyword . '%\'');
     $db_in_ids && ($condition .= ' AND catalog_id IN (' . $db_in_ids . ')');
     $criteria->condition = $condition;
     $criteria->order = 'video_score DESC, view_count DESC, t.id DESC';
     $criteria->with = array('catalog');
     $criteria->select = "title, id, t.cover_image, t.video_score,  t.update_time,t.introduce, t.view_count";
     //分页
     $count = $post->count($criteria);
     $pages = new CPagination($count);
     $pages->pageSize = 20;
     $criteria->limit = $pages->pageSize;
     $criteria->offset = $pages->currentPage * $pages->pageSize;
     $datalist = $post->findAll($criteria);
     //最近的视频
     $last_videos = Video::model()->findAll(array('condition' => 'catalog_id IN (' . $db_in_ids . ')', 'order' => 'id DESC', 'limit' => 10));
     //加载css,js
     Yii::app()->clientScript->registerCssFile($this->_stylePath . "/css/list.css");
     Yii::app()->clientScript->registerScriptFile($this->_static_public . "/js/jquery/jquery.js");
     $this->render('index', array('navs' => $navs, 'videos' => $datalist, 'pagebar' => $pages, 'last_videos' => $last_videos));
 }
Ejemplo n.º 7
0
 /**
  * 检测上级分类是否合法
  *
  * @param  $item
  * @param  $parentId
  */
 protected function parentTrue($item = 0, $parentId = 0)
 {
     $subCategory = Catalog::get($item, $this->_catalog);
     if (empty($subCategory)) {
         $getCategory[] = $item;
     } else {
         foreach ((array) $subCategory as $row) {
             $getCategory[] = $row['id'];
         }
         //将本身ID加入检测对象
         array_push($getCategory, $item);
     }
     if (in_array($parentId, $getCategory)) {
         XUtils::message('error', '所选择的上级分类不能是当前分类或者当前分类的下级分类');
     }
 }
Ejemplo n.º 8
0
 /**
  * 初始化
  * @see CController::init()
  */
 public function init()
 {
     parent::init();
     //检测系统是否已经安装
     if (!is_file(WWWPATH . DS . 'data' . DS . 'install.lock')) {
         $this->redirect(array('/install'));
     }
     //系统配置
     $this->_conf = XXcache::system('_config');
     $this->_catalog = Catalog::get(0, XXcache::system('_catalog'));
     $this->_seoTitle = $this->_conf['seo_title'];
     $this->_seoKeywords = $this->_conf['seo_keywords'];
     $this->_seoDescription = $this->_conf['seo_description'];
     if ($this->_conf['site_status'] == 'close') {
         self::_closed();
     }
 }
Ejemplo n.º 9
0
 public function edit()
 {
     $oCatalog = new Catalog();
     $prop = new Catalog_Property();
     if ($this->show->itemID) {
         $row = $oCatalog->getById($this->show->itemID);
         $this->show->categoryID = $row['CategoryID'];
         $this->show->propertyID = $row['PropertyID'];
     } else {
         $this->show->brandID = $this->post['BrandID'];
         $this->show->categoryID = $this->post['CategoryID'];
     }
     $this->show->propertyList = $prop->getList($this->show->categoryID);
     setcookie("brandID", $this->show->brandID, null, '/');
     $this->show->status = $oCatalog->getStatusList();
     if (!empty($this->post['Save'])) {
         if ($this->show->itemID) {
             $oCatalogID = $oCatalog->update($this->post, $this->show->itemID);
         } else {
             $oCatalogID = $oCatalog->insert($this->post);
         }
         if ($oCatalogID) {
             redirect(BASE_PATH . 'admin/catalog/');
         }
     }
     if ($this->show->itemID) {
         $this->show->item = $oCatalog->getByID($this->show->itemID);
         $this->show->breadcrumbs[] = array('url' => BASE_PATH . 'admin/catalog/' . $this->show->itemID, 'title' => $this->show->item['Title']);
     } else {
         $this->show->item = $oCatalog->get();
         $this->show->breadcrumbs[] = array('url' => BASE_PATH . 'admin/catalog/' . $this->show->itemID, 'title' => 'Создание');
         $oCategory = new Catalog_Category();
         $this->show->categoryList = $oCategory->getList($this->show->brandID);
         $oBrand = new Catalog_Brand();
         $this->show->brandList = $oBrand->getList();
     }
     if (!empty($this->post['Save'])) {
         $this->show->item->merge($this->post);
     }
 }
Ejemplo n.º 10
0
echo $form->textField($model, 'goods_name', array('size' => 60, 'maxlength' => 128, 'class' => 'validate[required]'));
?>
     
      </td>
  </tr> 
 
  <tr>
    <td class="tb_title"><?php 
echo Yii::t('admin', 'Belong Category');
?>
:</td>
  </tr>
  <tr >
    <td ><select name="Goods[catalog_id]" id="Goods_catalog_id" onchange="changeCatalog(this)">
        <?php 
foreach ((array) Catalog::get(0, $this->_catalog) as $catalog) {
    ?>
        <option value="<?php 
    echo $catalog['id'];
    ?>
" <?php 
    Helper::selected($catalog['id'], $model->catalog_id);
    ?>
><?php 
    echo $catalog['str_repeat'];
    echo $catalog['catalog_name'];
    ?>
</option>
        <?php 
}
?>
Ejemplo n.º 11
0
 /**
  * 检测上级分类是否合法
  *
  * @param  $item
  * @param  $parentId
  */
 protected function parentTrue($item = 0, $parentId = 0)
 {
     $subCategory = Catalog::get($item, $this->_catalog);
     if (empty($subCategory)) {
         $getCategory[] = $item;
     } else {
         foreach ((array) $subCategory as $row) {
             $getCategory[] = $row['id'];
         }
         //将本身ID加入检测对象
         array_push($getCategory, $item);
     }
     if (in_array($parentId, $getCategory)) {
         $this->message('error', Yii::t('admin', 'Selected Category is Current Category or Children Category'));
     }
 }