public function actionIndex() { $solr = new Solr('deal-category'); $solr->getService()->deleteByQuery('*:*'); $cats = KeywordCategory::model()->findAll(); $allkeywords = ''; foreach ($cats as $c) { $sql = "select term from Keyword where category = {$c->id}"; $command = Yii::app()->db->createCommand($sql); $rows = $command->queryColumn(); $doc = $solr->getDoc(); $doc->id = trim($c->name); $doc->keywords = implode(" ", $rows); $allkeywords .= $doc->keywords . ' '; d($doc); $solr->getService()->addDocument($doc); } $doc = $solr->getDoc(); $doc->id = "Services & Others"; $doc->keywords = $allkeywords; $solr->getService()->addDocument($doc); $solr->getService()->commit(); $solr->getService()->optimize(); $this->render('index'); }
public function actionCategory($category_id) { $category_name = strtoupper(KeywordCategory::model()->findByPk($category_id)->name); $content = "<h1>{$category_name}</h1>"; $content .= $this->renderPartial('create_subcategory', array('category_id' => $category_id), TRUE); $subcategories = $this->getSubcategories($category_id); foreach ($subcategories as $s) { $criteria = new CDbCriteria(); $criteria->condition = 'subcategory=:subcategory'; $criteria->params = array(':subcategory' => $s->id); $criteria->order = "term"; //dd($criteria); $terms = Keyword::model()->findAll($criteria); $terms_list = ''; foreach ($terms as $term) { $terms_list .= $this->renderPartial('term', array('term' => $term, 'subcategories' => $this->simplifySubcategories($subcategories), 'subcategory' => $s, 'category_id' => $category_id), TRUE); } $content .= $this->renderPartial('subcategory_block', array("termList" => $terms_list, "category_id" => $category_id, "subcategory" => $s), TRUE); } $this->renderText($content); }
<?php $this->breadcrumbs = array('Keywords'); ?> <h1><?php echo $this->id . '/' . $this->action->id; ?> </h1> <?php $categories = KeywordCategory::model()->findAll(); foreach ($categories as $c) { echo "<div>"; echo CHtml::link($c->name, array('keywords/category', 'category_id' => $c->id)); echo "</div>"; }