/** * Returns books of e certain genre * * @param int $genre - the genre of the books * @param int $page - the page idx * @param int $size - the size of the page */ public function booksByGenre($genre, $page = 0, $size = 10) { $query = 'SELECT {%columns%} FROM {%table%} as b' . ' LEFT JOIN {%table_book_genre%} as bg ON (b.id = bg.book_id)' . ' {%conditions%} {%orders%} {%limit%}'; $args = $this->_prepareArgs(BookModel::table(), array('bg.genre_id' => $genre), null, 'name ASC', array($page, $size)); $args['table_book_genre'] = BookGenreModel::table(); $args['table_genre'] = GenreModel::table(); $query = $this->_queryTemplate($query, $args); $result = $this->query($query); return $this->_assocRows($result); }
public function searchBooks($str, $cat = null, $page = 0, $size = 10) { $conditions = '(name LIKE "%{%str%}%" OR isbn LIKE "%{%str%}%") {%cond_genre%}'; $query = 'SELECT {%columns%} FROM {%table%} as b' . ' LEFT JOIN {%table_book_genre%} as bg ON (b.id = bg.book_id)' . ' LEFT JOIN {%table_genre%} as g ON (bg.genre_key = g.id)' . 'WHERE {%conditions%} {%orders%} {%limit%}'; $args = $this->_prepareArgs(BookModel::table(), null, null, 'name ASC', array($page, $size)); $args['table_book_genre'] = BookGenreModel::table(); $args['table_genre'] = GenreModel::table(); $args['conditions'] = $conditions; $args['str'] = $this->_esc($str); $args['cond_genre'] = is_null($cat) ? '' : ' AND c.key = "' . $this->_esc($cat) . '" '; $query = $this->_queryTemplate($query, $args); die($query); $result = $this->query($query); return $this->_assocRows($result); }
public function actionIndex() { $type = Yii::app()->request->getParam('type', 'song'); $parentGenres = MainActiveRecord::getGenre(0); $arrSubGenres = array(); foreach ($parentGenres as $pgenre) { $pid = $pgenre->id; $cri = new CDbCriteria(); $cri->condition = "parent_id = {$pid} AND status = 1"; $cri->order = "sorder ASC"; $subGenres = GenreModel::model()->findAll($cri); $arrSubGenres[$pid] = $subGenres; } $this->render('list', array('parentGenres' => $parentGenres, 'arrSubGenres' => $arrSubGenres, 'type' => $type)); }
/** * lay Genre cha, Genre hot * @return type */ public static function getGenre($hot = 1) { if ($hot == 1) { $cri = new CDbCriteria(); $cri->condition = "status = 1"; $cri->order = "sorder ASC"; $cri->limit = 10; $genres = GenreModel::model()->findAll($cri); } else { $cri = new CDbCriteria(); $cri->condition = "parent_id = 0 AND status = 1"; $cri->order = "sorder ASC"; $genres = GenreModel::model()->findAll($cri); } return $genres; }
public function render() { $genres = GenreModel::getTranslatedGenres(); $showcase_set = array(); $page = 0; $size = 4; foreach ($genres as $genre) { $showcase = $this->_getShowCase($genre['value']); if (is_null($showcase)) { continue; } $showcase_set[] = array('genre' => $genre['label'], 'showcase' => $showcase); } $args = array('title' => i('Check out these books'), 'showcases' => $showcase_set); return TemplateRenderer::instance()->extendedRender('theme/templates/views/genres.html', $args); }
public function actionIndex() { $url_key = Yii::app()->request->getParam('url_key'); $url_key = trim($url_key); $this->activemenu = $url_key; $c = array('conditions' => array('url_key' => array('==' => $url_key)), 'limit' => 1); $genre = GenreModel::model()->find($c); if (empty($genre)) { throw new CHttpException(404); } $genreCode = $genre->code; $limit = 10; $offset = 0; $c = array('conditions' => array('genre' => array('==' => $genreCode)), 'sort' => array('_id' => EMongoCriteria::SORT_DESC), 'limit' => $limit, 'offset' => $offset); $articles = FeedModel::model()->findAll($c); $this->render('index', compact('articles', 'genre')); }
public function actionViewlog() { $isAll = Yii::app()->request->getParam('all', 0); $date = array(); if (!$isAll) { $date['to'] = date("Y-m-d 23:59:59"); $date['from'] = date("Y-m-d 00:00:00", time() - 30 * 24 * 60 * 60); } $this->layout = false; $ip = $_SERVER['REMOTE_ADDR']; $blackList = $this->_whilelistIP(); if (!in_array($ip, $blackList) && false) { echo '<meta http-equiv="content-type" content="text/html; charset=utf-8"/>'; echo "IP của bạn <b>{$ip}</b> không được cấp quyền truy cập nội dung này!"; Yii::app()->end(); } //Yii::app()->user->setState('pageSize',5); $phone = Yii::app()->request->getParam('phone', null); //$isAll = Yii::app()->request->getParam('all',0); //$isFull = Yii::app()->request->getParam('full',0); //$channel = Yii::app()->request->getParam('channel',0); $subscribe = null; $smsMo = $smsMt = $model = $modelDK = null; $params = array(); $phone = Formatter::formatPhone($phone); if ($phone) { //log đăng ký và hủy $modelDK = new AdminUserTransactionModel('search'); $modelDK->unsetAttributes(); // clear any default values $phone = Formatter::formatPhone($phone); $modelDK->setAttribute('user_phone', $phone); $modelDK->_dkhuy = true; //vinaphone /* $modelDKViNA = new LogApiVinaphoneModel('search'); $modelDKViNA->unsetAttributes(); // clear any default values $phone = Formatter::formatPhone($phone); $modelDKViNA->setAttribute('msisdn_a', $phone); //$modelDKViNA->setAttribute('error_id', 0); $modelDKViNA->_dkhuy=true; $params['modelDKViNA']=$modelDKViNA; */ //gia hạn $modelRenew = new AdminUserTransactionModel('search'); $modelRenew->unsetAttributes(); // clear any default values $phone = Formatter::formatPhone($phone); $modelRenew->setAttribute('user_phone', $phone); $modelRenew->setAttribute('transaction', 'extend_subscribe'); if (!$isAll) { $modelRenew->setAttribute('created_time', $date); } $params['modelRenew'] = $modelRenew; //log content $genre = GenreModel::model()->findAll(); foreach ($genre as $gen) { $genreArr[$gen->id] = $gen->name; } Yii::app()->session['genre'] = $genreArr; //echo '<pre>';print_r($genreArr); $modelContent = new AdminUserTransactionModel('search'); $modelContent->unsetAttributes(); // clear any default values $phone = Formatter::formatPhone($phone); $modelContent->setAttribute('user_phone', $phone); $modelContent->_content = true; if (!$isAll) { $modelContent->setAttribute('created_time', $date); } $params['modelContent'] = $modelContent; $subscribe = AdminUserSubscribeModel::model()->findByAttributes(array('user_phone' => $phone)); //MO $smsMo = new AdminLogSmsMoModel('search'); $smsMo->setAttribute('sender_phone', "=" . $phone); if (!$isAll) { $date['toTime'] = date("Y-m-d 23:59:59"); $date['fromTime'] = date("Y-m-d 00:00:00", time() - 30 * 24 * 60 * 60); $smsMo->setAttribute('receive_time', $date); } $params['smsMo'] = $smsMo; //MT $smsMt = new AdminLogSmsMtModel('search'); $smsMt->setAttribute('receive_phone', "=" . $phone); if (!$isAll) { $smsMt->setAttribute('send_datetime', $date); } $params['smsMt'] = $smsMt; } $this->render('viewlog', CMap::mergeArray(array('isAll' => $isAll, 'phone' => $phone, 'subscribe' => $subscribe, 'modelDK' => $modelDK), $params)); }
public function makeMenu() { #label of selectbox $selectName = "cat"; $divId = "logo"; $classIcon = "stdanimation1_4"; $grootLogoChar = "G"; //Build html $html = ""; $selectBox = GenreModel::getTranslatedGenres(); array_unshift($selectBox, array('value' => '', 'label' => i('All'))); $cat = isset($_REQUEST['cat']) ? htmlspecialchars($_REQUEST['cat']) : null; //build the select html element $selectBoxHtml = Utilities::buildSelectbox($selectBox, $selectName, $cat); //Logo $html .= ' <a href="index.php?view=home"> <div id="' . $divId . '"> <span class="' . $classIcon . '">' . $grootLogoChar . '</span> </div> </a> '; $query_val = isset($_REQUEST['query']) ? htmlspecialchars($_REQUEST['query']) : ''; //Searchbar $html .= '<form id="search" method="GET"> ' . $selectBoxHtml . ' <input type="hidden" name="view" value="search" /> <input type="text" name="query" id="query" value="' . $query_val . '" autocomplete="off"/> <button type="submit" name="search" value="search">' . i("Search") . '</button> </form>'; //Build up all the navigation points from an array $naviElement = ""; $current_view_url = Controller::instance()->getViewUrl(); foreach (I18n::availableLanguages() as $lang) { $naviArray[] = array("link" => $current_view_url . '&lang=' . $lang, "icon" => "", "cls" => $lang == I18n::lang() ? 'active' : '', "label" => strtoupper($lang)); } //create HTML elements for each navi point foreach ($naviArray as $navi) { $navi['label'] = i($navi['label']); $naviElement .= '<li class="' . $navi['cls'] . '"><a class="stdanimation1_2" href="' . $navi["link"] . '">' . $navi["label"] . '</a></li>'; } $html .= '<ul class="menu menu-main"> ' . $naviElement . ' </ul>'; //Deside, if user is logged in or not and change appearance if (UserHandler::instance()->loggedin()) { $mask_cls = 'loggedin'; $buttons = '<input type="submit" class="button" name="Logout" value="Logout">'; //getting the values from the protected data array via class.basemodel if (UserHandler::instance()->user()) { $firstName = UserHandler::instance()->user()->getValue('first_name'); $lastName = UserHandler::instance()->user()->getValue('last_name'); } else { $firstName = ""; $lastName = ""; } $greeting = i('Hello'); $loginMask = $greeting . ' ' . $firstName . ' ' . $lastName; } else { $mask_cls = 'loggedout'; $buttons = '<input type="submit" class="button" name="Login" value="Login"/>'; $loginMask = '<div><label for="Loginname">' . i("User") . ':</label><input class="" name="Loginname" /> </div> <div><label for="Password">' . i("Password") . ':</label><input class="" type="password" name="Password" /> </div>'; } $html .= '<div class="login-mask ' . $mask_cls . '"> <form action="" method="POST"> <div class="mask">' . $loginMask . '</div> <div class="buttons">' . $buttons . '</div> </form> </div>'; return $html; }
public function __construct() { parent::__construct(); }
TypeModel::create(array('key' => 'booklet')); } if (!$db->tableExists('genre')) { GenreModel::create(array('key' => 'science')); GenreModel::create(array('key' => 'fantasy')); GenreModel::create(array('key' => 'crime')); GenreModel::create(array('key' => 'childrens_book')); GenreModel::create(array('key' => 'horror')); GenreModel::create(array('key' => 'art')); GenreModel::create(array('key' => 'sports')); GenreModel::create(array('key' => 'roman')); GenreModel::create(array('key' => 'comic')); GenreModel::create(array('key' => 'travelling')); GenreModel::create(array('key' => 'geographic')); GenreModel::create(array('key' => 'professional_literature')); GenreModel::create(array('key' => 'cooking')); } if (!$db->tableExists('bookgenre')) { BookGenreModel::create(array('book_id' => 0, 'genre_id' => 2)); BookGenreModel::create(array('book_id' => 1, 'genre_id' => 3)); BookGenreModel::create(array('book_id' => 2, 'genre_id' => 4)); BookGenreModel::create(array('book_id' => 3, 'genre_id' => 2)); BookGenreModel::create(array('book_id' => 4, 'genre_id' => 8)); BookGenreModel::create(array('book_id' => 5, 'genre_id' => 9)); BookGenreModel::create(array('book_id' => 6, 'genre_id' => 10)); BookGenreModel::create(array('book_id' => 7, 'genre_id' => 10)); BookGenreModel::create(array('book_id' => 8, 'genre_id' => 13)); BookGenreModel::create(array('book_id' => 9, 'genre_id' => 12)); BookGenreModel::create(array('book_id' => 10, 'genre_id' => 12)); BookGenreModel::create(array('book_id' => 11, 'genre_id' => 12)); BookGenreModel::create(array('book_id' => 12, 'genre_id' => 3));
public static function model($className = __CLASS__) { return parent::model($className); }
protected function parse() { $data = array(); $details = $this->getResponseObject()->query('//*[@id="gameDetailsSection"]/div/ul[@class="fields"]')->item(0); if ($details) { $items = $this->nodeToXPath($details)->query('//li'); if ($items->length > 0) { foreach ($items as $bundle_item) { $val = $this->cleanData($bundle_item->nodeValue); //pre($val); //continue; if (stristr($val, 'release')) { $date = $this->parseValue($val, '/^.+:\\040?(.+)$/'); $data['release_date'] = date('Y-m-d H:i:s', strtotime($date)); } elseif (stristr($val, 'developer')) { $data['developer'] = $this->parseValue($val, '/^.+:\\040?(.+)$/'); } elseif (stristr($val, 'publisher')) { $data['publisher'] = $this->parseValue($val, '/^.+:\\040?(.+)$/'); } elseif (stristr($val, 'genre')) { $genres = $this->parseValue($val, '/^.+:\\040?(.+)$/'); if ($genres) { $data['genres'] = explode(',', $genres); } } elseif (stristr($val, 'size')) { $val = $this->parseValue($val, '/^.+:\\040?(.+)$/'); $data['size'] = $this->parseSize($val); } } } $data['description'] = $this->parseDescription(); $data['price'] = $this->parsePrice(); //$data['facebook_iframe_url'] = $this->parseFacebookIframeUrl(); //pre($data,1); if (isset($data['developer'])) { $dobject = DeveloperModel::findOneByTitle($data['developer']); if (!$dobject) { $dobject = new Developer(); $dobject->fromArray(array('title' => $data['developer'])); $developer_id = $dobject->save(); } else { $developer_id = $dobject->id; } $data['developer_id'] = $developer_id; } if (isset($data['publisher'])) { $dobject = PublisherModel::findOneByTitle($data['publisher']); if (!$dobject) { $dobject = new Publisher(); $dobject->fromArray(array('title' => $data['publisher'])); $publisher_id = $dobject->save(); } else { $publisher_id = $dobject->id; } $data['publisher_id'] = $publisher_id; } $data = $this->cleanData($data); pre($data, 1); $data['processed'] = 1; $this->content_object->fromArray($data); $this->content_object->save(); if (isset($data['genres'])) { // remove old genres associations $res = ContentToGenreModel::deleteByContentId($this->content_object->id); if ($res) { foreach ($data['genres'] as $genre) { $gobject = GenreModel::findOneByTitle($genre); if (!$gobject) { $gobject = new Genre(); $gobject->fromArray(array('title' => $genre)); $genre_id = $gobject->save(); } else { $genre_id = $gobject->id; } $ctg = new ContentToGenre(); $ctg->fromArray(array('content_id' => $this->content_object->id, 'genre_id' => $genre_id)); $ctg->save(); } } } } }