/**
  * 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);
 }
Example #6
0
 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;
 }
Example #9
0
 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));
Example #11
0
 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();
                 }
             }
         }
     }
 }