コード例 #1
0
 /**
  * Lists all models.
  */
 public function actionIndex()
 {
     $model = $this->loadModel(1);
     $category = new ArticleCategory('search');
     $category->unsetAttributes();
     // clear any default values
     if (isset($_GET['ArticleCategory'])) {
         $category->attributes = $_GET['ArticleCategory'];
     }
     $columnTemp = array();
     if (isset($_GET['GridColumn'])) {
         foreach ($_GET['GridColumn'] as $key => $val) {
             if ($_GET['GridColumn'][$key] == 1) {
                 $columnTemp[] = $key;
             }
         }
     }
     $columns = $category->getGridColumn($columnTemp);
     // Uncomment the following line if AJAX validation is needed
     $this->performAjaxValidation($model);
     if (isset($_POST['ArticleSetting'])) {
         $model->attributes = $_POST['ArticleSetting'];
         $jsonError = CActiveForm::validate($model);
         if (strlen($jsonError) > 2) {
             $errors = $model->getErrors();
             $summary['msg'] = "<div class='errorSummary'><strong>" . Yii::t('phrase', 'Please fix the following input errors:') . "</strong>";
             $summary['msg'] .= "<ul>";
             foreach ($errors as $key => $value) {
                 $summary['msg'] .= "<li>{$value[0]}</li>";
             }
             $summary['msg'] .= "</ul></div>";
             $message = json_decode($jsonError, true);
             $merge = array_merge_recursive($summary, $message);
             $encode = json_encode($merge);
             echo $encode;
         } else {
             if (isset($_GET['enablesave']) && $_GET['enablesave'] == 1) {
                 if ($model->update()) {
                     echo CJSON::encode(array('type' => 0, 'msg' => '<div class="errorSummary success"><strong>' . Phrase::trans(26013, 1) . '</strong></div>'));
                 } else {
                     print_r($model->getErrors());
                 }
             }
         }
         Yii::app()->end();
     }
     $this->pageTitle = Phrase::trans(26001, 1);
     $this->pageDescription = Phrase::trans(26002, 1);
     $this->pageMeta = '';
     $this->render('admin_index', array('model' => $model, 'category' => $category, 'columns' => $columns));
 }
コード例 #2
0
 public function category(SS_HTTPRequest $r)
 {
     $category = ArticleCategory::get()->byID($r->param('ID'));
     if (!$category) {
         return $this->httpError(404, 'That category was not found');
     }
     $this->articleList = $this->articleList->filter(array('Categories.ID' => $category->ID));
     return array('SelectedCategory' => $category);
 }
コード例 #3
0
ファイル: Approval.php プロジェクト: AxelPanda/ibos
 public function deleteApproval($id)
 {
     if (empty($id)) {
         return false;
     }
     $ret = $this->deleteByPk($id);
     if ($ret) {
         ArticleCategory::model()->updateAll(array("aid" => 0), "aid={$id}");
         OfficialdocCategory::model()->updateAll(array("aid" => 0), "aid={$id}");
     }
     return $ret;
 }
コード例 #4
0
 protected function renderContent()
 {
     //import model
     Yii::import('application.modules.article.models.ArticleCategory');
     $criteria = new CDbCriteria();
     if ($this->publish != null) {
         $criteria->condition = 'publish = :publish';
         $criteria->params = array(':publish' => $this->publish);
     }
     $model = ArticleCategory::model()->findAll($criteria);
     $this->render('front_article_category', array('model' => $model));
 }
コード例 #5
0
 public function handleArticleCategory($event)
 {
     $categorys = array();
     Yii::import("application.modules.article.model.ArticleCategory", true);
     $records = ArticleCategory::model()->findAll(array("order" => "sort ASC"));
     if (!empty($records)) {
         foreach ($records as $record) {
             $cat = $record->attributes;
             $categorys[$cat["catid"]] = $cat;
         }
     }
     Syscache::model()->modify("articlecategory", $categorys);
 }
コード例 #6
0
 /**
  * Lists all models.
  */
 public function actionIndex()
 {
     $setting = ArticleSetting::model()->findByPk(1, array('select' => 'meta_description, meta_keyword'));
     if (isset($_GET['category']) && $_GET['category'] != '') {
         $title = ArticleCategory::model()->findByPk($_GET['category']);
     }
     $criteria = new CDbCriteria();
     $criteria->condition = 'publish = :publish AND published_date <= curdate()';
     $criteria->params = array(':publish' => 1);
     $criteria->order = 'published_date DESC';
     if (isset($_GET['category']) && $_GET['category'] != '') {
         $criteria->compare('cat_id', $_GET['category']);
     }
     $dataProvider = new CActiveDataProvider('Articles', array('criteria' => $criteria, 'pagination' => array('pageSize' => 10)));
     $this->pageTitle = 'Articles';
     $this->pageDescription = isset($_GET['category']) && $_GET['category'] != '' ? Phrase::trans($title->name, 2) : $setting->meta_description;
     $this->pageMeta = isset($_GET['category']) && $_GET['category'] != '' ? Phrase::trans($title->desc, 2) : $setting->meta_keyword;
     $this->render('front_index', array('dataProvider' => $dataProvider));
 }
コード例 #7
0
ファイル: ICArticle.php プロジェクト: AxelPanda/ibos
 public static function handleApproval($datas)
 {
     $allApprovals = Approval::model()->fetchAllSortByPk("id");
     $allCategorys = ArticleCategory::model()->fetchAllSortByPk("catid");
     $artApprovals = ArticleApproval::model()->fetchAllGroupByArtId();
     $backArtIds = ArticleBack::model()->fetchAllBackArtId();
     foreach ($datas as &$art) {
         $art["back"] = in_array($art["articleid"], $backArtIds) ? 1 : 0;
         $art["approval"] = $art["approvalStep"] = array();
         $catid = $art["catid"];
         if (!empty($allCategorys[$catid]["aid"])) {
             $aid = $allCategorys[$catid]["aid"];
             if (!empty($allApprovals[$aid])) {
                 $art["approval"] = $allApprovals[$aid];
             }
         }
         if (!empty($art["approval"])) {
             $art["approvalName"] = !empty($art["approval"]) ? $art["approval"]["name"] : "";
             $art["artApproval"] = isset($artApprovals[$art["articleid"]]) ? $artApprovals[$art["articleid"]] : array();
             $art["stepNum"] = count($art["artApproval"]);
             $step = array();
             foreach ($art["artApproval"] as $artApproval) {
                 $step[$artApproval["step"]] = User::model()->fetchRealnameByUid($artApproval["uid"]);
             }
             for ($i = 1; $i <= $art["approval"]["level"]; $i++) {
                 if ($i <= $art["stepNum"]) {
                     $art["approval"][$i]["approvaler"] = isset($step[$i]) ? $step[$i] : "未知";
                 } else {
                     $levelName = Approval::model()->getLevelNameByStep($i);
                     $approvalUids = $art["approval"][$levelName];
                     $art["approval"][$i]["approvaler"] = User::model()->fetchRealnamesByUids($approvalUids, "、");
                 }
             }
         }
     }
     return $datas;
 }
コード例 #8
0
ファイル: MICArticle.php プロジェクト: AxelPanda/ibos
 public function getList($type = 1, $catid = 0, $search = "")
 {
     $gUid = Ibos::app()->user->uid;
     $childCatIds = "";
     if (!empty($catid)) {
         $this->catid = $catid;
         $childCatIds = ArticleCategory::model()->fetchCatidByPid($this->catid, true);
     }
     if (!empty($search)) {
         $this->condition = "subject like '%{$search}%'";
     }
     $articleidArr = ArticleReader::model()->fetchArticleidsByUid(Ibos::app()->user->uid);
     $this->condition = ArticleUtil::joinListCondition($type, $articleidArr, $childCatIds, $this->condition);
     $datas = Article::model()->fetchAllAndPage($this->condition);
     $listData = $datas["datas"];
     foreach ($listData as $key => $value) {
         $value["content"] = StringUtil::cutStr(strip_tags($value["content"]), 30);
         $listData[$key] = array_filter($value);
         $listData[$key]["readstatus"] = ArticleReader::model()->checkIsRead($value["articleid"], $gUid);
     }
     $return["datas"] = $listData;
     $return["pages"] = array("pageCount" => $datas["pages"]->getPageCount(), "page" => $datas["pages"]->getCurrentPage(), "pageSize" => $datas["pages"]->getPageSize());
     return $return;
 }
コード例 #9
0
ファイル: Article0.php プロジェクト: Aplay/myhistorypark_site
 /**
  * Set organization categories 
  * @param array $categories ids.
  */
 public function setCategories(array $categories, $add = false)
 {
     $dontDelete = array();
     if (!empty($categories)) {
         foreach ($categories as $c) {
             if (empty($c)) {
                 continue;
             }
             $found = ArticleCategory::model()->findByAttributes(array('category' => $c, 'article' => $this->id));
             // если не было категории - делаем
             if (!$found) {
                 $record = new ArticleCategory();
                 $record->category = (int) $c;
                 $record->article = $this->id;
                 $record->save(false);
             }
             $dontDelete[] = $c;
         }
     }
     if ($add === false) {
         // Удаляем все категории, которых не было в массиве
         if (sizeof($dontDelete) > 0) {
             $cr = new CDbCriteria();
             $cr->addNotInCondition('category', $dontDelete);
             ArticleCategory::model()->deleteAllByAttributes(array('article' => $this->id), $cr);
         } else {
             // удаляем все категории, т.к. пустой массив
             // Delete all relations
             ArticleCategory::model()->deleteAllByAttributes(array('article' => $this->id));
         }
     }
 }
コード例 #10
0
 /**
  * Manages all models.
  */
 public function actionManage()
 {
     $model = new Articles('search');
     $model->unsetAttributes();
     // clear any default values
     if (isset($_GET['Articles'])) {
         $model->attributes = $_GET['Articles'];
     }
     $columnTemp = array();
     if (isset($_GET['GridColumn'])) {
         foreach ($_GET['GridColumn'] as $key => $val) {
             if ($_GET['GridColumn'][$key] == 1) {
                 $columnTemp[] = $key;
             }
         }
     }
     $columns = $model->getGridColumn($columnTemp);
     if (isset($_GET['category'])) {
         $category = ArticleCategory::model()->findByPk($_GET['category']);
         $title = ': ' . Phrase::trans($category->name, 2);
     } else {
         $title = '';
     }
     $this->pageTitle = Yii::t('phrase', 'View Articles') . $title;
     $this->pageDescription = Yii::t('phrase', 'Use this page to search for and manage article entries. To Approve or Feature an article, just click on the icon, it will automate turn on and off per that setting. To edit, delete, or manage an article, please login as that user, and perform your actions.');
     $this->pageMeta = '';
     $this->render('admin_manage', array('model' => $model, 'columns' => $columns));
 }
コード例 #11
0
}
?>
						<?php 
echo $form->error($model, 'article_type');
?>
					</div>
				</div>

				<div class="clearfix">
					<?php 
echo $form->labelEx($model, 'cat_id');
?>
					<div class="desc">
						<?php 
$parent = null;
$category = ArticleCategory::getCategory(null, $parent);
if ($category != null) {
    echo $form->dropDownList($model, 'cat_id', $category);
} else {
    echo $form->dropDownList($model, 'cat_id', array('prompt' => Yii::t('phrase', 'No Parent')));
}
?>
						<?php 
echo $form->error($model, 'cat_id');
?>
					</div>
				</div>
	
				<div id="title" class="clearfix <?php 
echo $model->article_type == 4 ? 'hide' : '';
?>
コード例 #12
0
 public function actionDelete($id)
 {
     $model = $this->loadModel($id);
     $error = '';
     $desc = $model->descendants()->findAll(array('order' => 'title'));
     if (!$desc) {
     } else {
         $error .= "Тег имеет вложенные теги:\n ";
         foreach ($desc as $rub) {
             $error .= $rub->title . "\n";
         }
         $error .= 'Сначала перенесите или удалите вложенные теги.';
     }
     $count = ArticleCategory::model()->countByAttributes(array('category' => $model->id));
     if ($count > 0) {
         $error .= 'Имеются ' . $count . ' привязки. Перенесите сначала привязанные в другой тег.';
     }
     if (!empty($error)) {
         echo CJSON::encode(array('success' => false, 'message' => $error));
         Yii::app()->end();
     }
     //Delete if not root node
     $model->tree->delete();
     echo CJSON::encode(array('success' => true));
     Yii::app()->end();
 }
コード例 #13
0
 /**
  * Set default columns to display
  */
 protected function afterConstruct()
 {
     $controller = strtolower(Yii::app()->controller->id);
     if (count($this->defaultColumns) == 0) {
         /*
         $this->defaultColumns[] = array(
         	'class' => 'CCheckBoxColumn',
         	'name' => 'id',
         	'selectableRows' => 2,
         	'checkBoxHtmlOptions' => array('name' => 'trash_id[]')
         );
         */
         $this->defaultColumns[] = array('header' => 'No', 'value' => '$this->grid->dataProvider->pagination->currentPage*$this->grid->dataProvider->pagination->pageSize + $row+1');
         $this->defaultColumns[] = array('name' => 'title', 'value' => '$data->title."<br/><span>".Utility::shortText(Utility::hardDecode($data->body),200)."</span>"', 'htmlOptions' => array('class' => 'bold'), 'type' => 'raw');
         $category = ArticleCategory::model()->findByPk($_GET['category']);
         if (!isset($_GET['category']) || isset($_GET['category']) && $category->dependency == 0) {
             if ($category->dependency == 0) {
                 $parent = $_GET['category'];
             } else {
                 $parent = null;
             }
             $this->defaultColumns[] = array('name' => 'cat_id', 'value' => 'Phrase::trans($data->cat->name, 2)', 'filter' => ArticleCategory::getCategory(null, $parent), 'type' => 'raw');
         }
         $this->defaultColumns[] = array('name' => 'creation_search', 'value' => '$data->creation_relation->displayname');
         $this->defaultColumns[] = array('name' => 'creation_date', 'value' => 'Utility::dateFormat($data->creation_date)', 'htmlOptions' => array('class' => 'center'), 'filter' => Yii::app()->controller->widget('zii.widgets.jui.CJuiDatePicker', array('model' => $this, 'attribute' => 'creation_date', 'language' => 'ja', 'i18nScriptFile' => 'jquery.ui.datepicker-en.js', 'htmlOptions' => array('id' => 'creation_date_filter'), 'options' => array('showOn' => 'focus', 'dateFormat' => 'dd-mm-yy', 'showOtherMonths' => true, 'selectOtherMonths' => true, 'changeMonth' => true, 'changeYear' => true, 'showButtonPanel' => true)), true));
         if (in_array($controller, array('o/admin'))) {
             $this->defaultColumns[] = array('name' => 'published_date', 'value' => 'Utility::dateFormat($data->published_date)', 'htmlOptions' => array('class' => 'center'), 'filter' => Yii::app()->controller->widget('zii.widgets.jui.CJuiDatePicker', array('model' => $this, 'attribute' => 'published_date', 'language' => 'ja', 'i18nScriptFile' => 'jquery.ui.datepicker-en.js', 'htmlOptions' => array('id' => 'published_date_filter'), 'options' => array('showOn' => 'focus', 'dateFormat' => 'dd-mm-yy', 'showOtherMonths' => true, 'selectOtherMonths' => true, 'changeMonth' => true, 'changeYear' => true, 'showButtonPanel' => true)), true));
         }
         if (!isset($_GET['type'])) {
             if (OmmuSettings::getInfo('site_headline') == 1) {
                 $this->defaultColumns[] = array('name' => 'headline', 'value' => '$data->headline == 1 ? Chtml::image(Yii::app()->theme->baseUrl.\'/images/icons/publish.png\') : Utility::getPublish(Yii::app()->controller->createUrl("headline",array("id"=>$data->article_id)), $data->headline, 9)', 'htmlOptions' => array('class' => 'center'), 'filter' => array(1 => Yii::t('phrase', 'Yes'), 0 => Yii::t('phrase', 'No')), 'type' => 'raw');
             }
             $this->defaultColumns[] = array('name' => 'publish', 'value' => 'Utility::getPublish(Yii::app()->controller->createUrl("publish",array("id"=>$data->article_id)), $data->publish, 1)', 'htmlOptions' => array('class' => 'center'), 'filter' => array(1 => Yii::t('phrase', 'Yes'), 0 => Yii::t('phrase', 'No')), 'type' => 'raw');
         }
     }
     parent::afterConstruct();
 }
コード例 #14
0
ファイル: ICArticleCategory.php プロジェクト: AxelPanda/ibos
 public function getData($condition = "")
 {
     $categoryData = ArticleCategory::model()->fetchAll($condition);
     return $categoryData;
 }
コード例 #15
0
			<?php 
echo $form->errorSummary($model);
?>
		</div>
		<?php 
//begin.Messages
?>
		
		<div class="clearfix">
			<?php 
echo $form->labelEx($model, 'dependency');
?>
			<div class="desc">
				<?php 
if (ArticleCategory::getCategory() != null) {
    echo $form->dropDownList($model, 'dependency', ArticleCategory::getCategory(), array('prompt' => Phrase::trans(26019, 1)));
} else {
    echo $form->dropDownList($model, 'dependency', array(0 => Phrase::trans(26019, 1)));
}
?>
				<?php 
echo $form->error($model, 'dependency');
?>
			</div>
		</div>

		<div class="clearfix">
			<?php 
echo $form->labelEx($model, 'title');
?>
			<div class="desc">
コード例 #16
0
ファイル: DefaultController.php プロジェクト: AxelPanda/ibos
 private function back()
 {
     $uid = Ibos::app()->user->uid;
     $artIds = trim(EnvUtil::getRequest("articleids"), ",");
     $reason = StringUtil::filterCleanHtml(EnvUtil::getRequest("reason"));
     $ids = explode(",", $artIds);
     if (empty($ids)) {
         $this->ajaxReturn(array("isSuccess" => false, "msg" => Ibos::lang("Parameters error", "error")));
     }
     $sender = User::model()->fetchRealnameByUid($uid);
     foreach ($ids as $artId) {
         $art = Article::model()->fetchByPk($artId);
         $categoryName = ArticleCategory::model()->fetchCateNameByCatid($art["catid"]);
         if (!$this->checkIsApprovaler($art, $uid)) {
             $this->ajaxReturn(array("isSuccess" => false, "msg" => Ibos::lang("You do not have permission to verify the article")));
         }
         $config = array("{sender}" => $sender, "{subject}" => $art["subject"], "{category}" => $categoryName, "{content}" => $reason, "{url}" => Ibos::app()->urlManager->createUrl("article/default/index", array("type" => "notallow")));
         Notify::model()->sendNotify($art["author"], "article_back_message", $config, $uid);
         ArticleBack::model()->addBack($artId, $uid, $reason, TIMESTAMP);
     }
     $this->ajaxReturn(array("isSuccess" => true, "msg" => Ibos::lang("Operation succeed", "message")));
 }
コード例 #17
0
 /**
  * Returns the data model based on the primary key given in the GET variable.
  * If the data model is not found, an HTTP exception will be raised.
  * @param integer the ID of the model to be loaded
  */
 public function loadModel($id)
 {
     $model = ArticleCategory::model()->findByPk($id);
     if ($model === null) {
         throw new CHttpException(404, Yii::t('phrase', 'The requested page does not exist.'));
     }
     return $model;
 }
コード例 #18
0
    public function actionDelete($id) {
        $model = $this->loadModel($id);

        $desc = $model->descendants()->findAll(array('order'=>'title'));
        if(!$desc){
                
        } else {
            $error = "Рубрика имеет подрубрики:\n ";
            foreach ($desc as $rub) {
                $error .= $rub->title."\n";
            }
            $error .= 'Сначала перенесите или удалите подрубрики.';
            echo CJSON::encode(array('success'=>false, 'message'=>$error, 'errortype'=>1));
            Yii::app()->end();
        }
        $count = ArticleCategory::model()->countByAttributes(array('category'=>$model->id));
        if($count > 0){
            $error = 'В рубрике имеются '.$count.' статей. Перенесите сначала статьи в другую рубрику.';
            echo CJSON::encode(array('success'=>false, 'message'=>$error, 'errortype'=>2));
            Yii::app()->end();
        }


        //Delete if not root node
        $model->tree->delete();
        echo CJSON::encode(array('success'=>true));

        Yii::app()->end();

    } 
コード例 #19
0
ファイル: CategoryController.php プロジェクト: AxelPanda/ibos
 protected function getCurApproval()
 {
     $catid = EnvUtil::getRequest("catid");
     $category = ArticleCategory::model()->fetchByPk($catid);
     $approval = Approval::model()->fetchByPk($category["aid"]);
     $this->ajaxReturn(array("approval" => $approval));
 }
コード例 #20
0
ファイル: Article.php プロジェクト: AxelPanda/ibos
 public function fetchUnApprovalArtIds($catid, $uid)
 {
     $backArtIds = ArticleBack::model()->fetchAllBackArtId();
     $backArtIdStr = implode(",", $backArtIds);
     $backCondition = empty($backArtIdStr) ? "" : "AND `articleid` NOT IN({$backArtIdStr})";
     if (empty($catid)) {
         $catids = ArticleCategory::model()->fetchAllApprovalCatidByUid($uid);
         $catidStr = implode(",", $catids);
         $condition = "((FIND_IN_SET( `catid`, '{$catidStr}') {$backCondition} ) OR `author` = {$uid})";
     } else {
         $isApproval = ArticleCategory::model()->checkIsApproval($catid, $uid);
         $condition = $isApproval ? "(`catid` = {$catid} {$backCondition} )" : " (`catid` = {$catid} AND `author` = {$uid})";
     }
     $record = $this->fetchAll(array("select" => array("articleid"), "condition" => "`status` = 2 AND " . $condition));
     $artIds = ConvertUtil::getSubByKey($record, "articleid");
     return $artIds;
 }