コード例 #1
0
 /**
  * This is the default 'index' action that is invoked
  * when an action is not explicitly requested by users.
  */
 public function actionIndexing()
 {
     ini_set('max_execution_time', 0);
     ob_start();
     $index = new Zend_Search_Lucene(Yii::getPathOfAlias($this->_indexFilesPath), true);
     $plugin = OmmuPlugins::model()->findAll(array('select' => 'folder, model', 'condition' => 'actived= :actived AND search= :search', 'params' => array(':actived' => 1, ':search' => 1)));
     if ($plugin != null) {
         $model = $data = '';
         foreach ($plugin as $key => $val) {
             $model = $val->model;
             Yii::import('application.modules.' . $val->folder . '.models.*');
             $data = new $model();
             $data->searchIndexing($index);
         }
     }
     echo 'Lucene index created';
     $index->commit();
     $this->redirect(Yii::app()->createUrl('site/index'));
     ob_end_flush();
 }
コード例 #2
0
 /**
  * Set default columns to display
  */
 protected function afterConstruct()
 {
     if (count($this->defaultColumns) == 0) {
         $this->defaultColumns[] = array('header' => 'ID', 'name' => 'phrase_id', 'value' => '$data->phrase_id', 'htmlOptions' => array('class' => 'center'));
         $this->defaultColumns[] = array('name' => 'plugin_id', 'value' => '$data->plugin->name', 'htmlOptions' => array('class' => 'center'), 'filter' => OmmuPlugins::getPlugin(0, 'id'), 'type' => 'raw');
         $this->defaultColumns[] = 'en_us';
         $this->defaultColumns[] = 'id';
         $this->defaultColumns[] = 'location';
     }
     parent::afterConstruct();
 }
コード例 #3
0
 /**
  * Set default columns to display
  */
 protected function afterConstruct()
 {
     if (count($this->defaultColumns) == 0) {
         $this->defaultColumns[] = array('header' => 'No', 'value' => '$this->grid->dataProvider->pagination->currentPage*$this->grid->dataProvider->pagination->pageSize + $row+1');
         $this->defaultColumns[] = array('name' => 'plugin_id', 'value' => '$data->plugin->name', 'htmlOptions' => array('class' => 'center'), 'filter' => OmmuPlugins::getPlugin(0, 'id'), 'type' => 'raw');
         $this->defaultColumns[] = array('name' => 'template_key', 'value' => '$data->template_key');
         //$this->defaultColumns[] = 'template';
         $this->defaultColumns[] = 'variable';
         $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));
     }
     parent::afterConstruct();
 }
コード例 #4
0
 /**
  * Initialize
  *
  * load some custom components here, for example
  * theme, url manager, or config from database Alhamdulillah :)
  */
 public function init()
 {
     /**
      * set default themes
      */
     $theme = $this->getDefaultTheme();
     if (isset($_GET['theme'])) {
         $theme = trim($_GET['theme']);
     }
     Yii::app()->theme = $theme;
     /**
      * controllerMap
      */
     $themePath = Yii::getPathOfAlias('webroot.themes.' . $theme) . DS . $theme . '.yaml';
     $arrayThemeSpyc = Spyc::YAMLLoad($themePath);
     $controllerSpyc = $arrayThemeSpyc['controller'];
     if (!empty($controllerSpyc)) {
         foreach ($controllerSpyc as $key => $val) {
             $controllerMap[$key] = 'webroot.themes.' . $theme . '.controllers.' . $val;
         }
         Yii::app()->controllerMap = $controllerMap;
     }
     /**
      * set url manager
      */
     $rules = array('' => 'site/index', '<action:(login|logout)>' => 'site/<action>', '<id:\\d+>-<t:[\\w\\-]+>-<a:[\\w\\-]+>' => 'page/view', '<id:\\d+>-<t:[\\w\\-]+>' => 'page/view', '<module:\\w+>/<controller:\\w+>/<t:[\\w\\-]+>-<id:\\d+>-<category:\\d+>' => '<module>/<controller>/index', '<module:\\w+>/<controller:\\w+>/<t:[\\w\\-]+>-<category:\\d+>' => '<module>/<controller>/index', '<module:\\w+>/<controller:\\w+>/<t:[\\w\\-]+>-<id:\\d+>' => '<module>/<controller>/index', '<module:\\w+>/<controller:\\w+>/<id:\\d+>' => '<module>/<controller>/index', '<module:\\w+>/<controller:\\w+>' => '<module>/<controller>/index', '<module:\\w+>/<controller:\\w+>/view/<t:[\\w\\-]+>-<id:\\d+>-<photo:\\d+>' => '<module>/<controller>/view', '<module:\\w+>/<controller:\\w+>/view/<t:[\\w\\-]+>-<id:\\d+>' => '<module>/<controller>/view', '<module:\\w+>/<controller:\\w+>/<action:\\w+>/<t:[\\w\\-]+>-<id:\\d+>' => '<module>/<controller>/<action>', '<module:\\w+>/<controller:\\w+>/<action:\\w+>/<id:\\d+>' => '<module>/<controller>/<action>', '<module:\\w+>/<controller:\\w+>/<action:\\w+>' => '<module>/<controller>/<action>', '<module:\\w+>/<controller:\\w+>' => '<module>/<controller>', '<controller:\\w+>/<t:[\\w\\-]+>-<id:\\d+>-<category:\\d+>' => '<controller>/index', '<controller:\\w+>/<t:[\\w\\-]+>-<category:\\d+>' => '<controller>/index', '<controller:\\w+>/<t:[\\w\\-]+>-<id:\\d+>' => '<controller>/index', '<controller:\\w+>/<id:\\d+>' => '<controller>/index', '<controller:\\w+>' => '<controller>/index', '<controller:\\w+>/view/<t:[\\w\\-]+>-<id:\\d+>-<photo:\\d+>' => '<controller>/view', '<controller:\\w+>/view/<t:[\\w\\-]+>-<id:\\d+>' => '<controller>/view', '<controller:\\w+>/<action:\\w+>/<t:[\\w\\-]+>-<id:\\d+>' => '<controller>/<action>', '<controller:\\w+>/<action:\\w+>/<id:\\d+>' => '<controller>/<action>', '<controller:\\w+>/<action:\\w+>' => '<controller>/<action>', '<controller:\\w+>' => '<controller>');
     /**
      * Set default controller for homepage, it can be controller, action or module
      * example:
      * controller: 'site'
      * controller from module: 'pose/site/index'.
      */
     $default = OmmuPlugins::model()->findByAttributes(array('defaults' => 1), array('select' => 'folder'));
     if ($default == null || $default->folder == '-' || $default->actived == '2') {
         $rules[''] = 'site/index';
     } else {
         $url = $default->folder != '-' ? $default->folder : 'site/index';
         Yii::app()->defaultController = trim($url);
         $rules[''] = trim($url);
     }
     /**
      * Split rules into 2 part and then insert url from tabel between them.
      * and then merge all array back to $rules.
      */
     $module = OmmuPlugins::model()->findAll(array('select' => 'folder', 'condition' => 'actived != 0'));
     $moduleRules = array();
     $sliceRules = $this->getRulePos($rules);
     if ($module !== null) {
         foreach ($module as $key => $val) {
             $moduleRules[$val->folder] = $val->folder;
         }
     }
     $rules = array_merge($sliceRules['before'], $moduleRules, $sliceRules['after']);
     Yii::app()->setComponents(array('urlManager' => array('urlFormat' => 'path', 'showScriptName' => false, 'rules' => $rules)));
     Yii::setPathOfAlias('modules', Yii::app()->basePath . DIRECTORY_SEPARATOR . 'modules');
     /**
      * Registers meta tags declared
      * google discoverability
      * google plus
      * facebook opengraph
      * twitter
      */
     $meta = OmmuMeta::model()->findByPk(1);
     $images = $meta->meta_image != '' ? $meta->meta_image : 'meta_default.png';
     $metaImages = Utility::getProtocol() . '://' . Yii::app()->request->serverName . Yii::app()->request->baseUrl . '/public/' . $images;
     // Google Discoverability mata tags
     $point = explode(',', $meta->office_location);
     // Facebook mata tags
     $arrayFacebookGlobal = array('og:type' => $meta->facebook_type == 1 ? 'profile' : 'website', 'og:title' => 'MY_WEBSITE_NAME', 'og:description' => 'MY_WEBSITE_DESCRIPTION', 'og:image' => $metaImages);
     if ($meta->facebook_sitename != '') {
         $arrayFacebookGlobal['og:site_name'] = $meta->facebook_sitename;
     }
     if ($meta->facebook_see_also != '') {
         $arrayFacebookGlobal['og:see_also'] = $meta->facebook_see_also;
     }
     if ($meta->facebook_admins != '') {
         $arrayFacebookGlobal['fb:admins'] = $meta->facebook_admins;
     }
     if ($meta->facebook_type == 1) {
         $arrayFacebook = array('profile:first_name' => $meta->facebook_profile_firstname, 'profile:last_name' => $meta->facebook_profile_lastname, 'profile:username' => $meta->facebook_profile_username);
     } else {
         $arrayFacebook = array();
     }
     // Twitter mata tags
     if ($meta->twitter_card == 1) {
         $cardType = 'summary';
         $arrayTwitter = array();
     } else {
         if ($meta->twitter_card == 2) {
             $cardType = 'summary_large_image';
             $arrayTwitter = array();
         } else {
             if ($meta->twitter_card == 3) {
                 $cardType = 'photo';
                 $arrayTwitter = array('twitter:image:width' => $meta->twitter_photo_width, 'twitter:image:height' => $meta->twitter_photo_height);
             } else {
                 $cardType = 'app';
                 if ($meta->twitter_country != '') {
                     $arrayTwitter['twitter:app:country'] = $meta->twitter_country;
                 }
                 if ($meta->twitter_iphone_name != '') {
                     $arrayTwitter['twitter:app:name:iphone'] = $meta->twitter_iphone_name;
                 }
                 if ($meta->twitter_iphone_id != '') {
                     $arrayTwitter['twitter:app:id:iphone'] = $meta->twitter_iphone_id;
                 }
                 if ($meta->twitter_iphone_url != '') {
                     $arrayTwitter['twitter:app:url:iphone'] = $meta->twitter_iphone_url;
                 }
                 if ($meta->twitter_ipad_name != '') {
                     $arrayTwitter['twitter:app:name:ipad'] = $meta->twitter_ipad_name;
                 }
                 if ($meta->twitter_ipad_id != '') {
                     $arrayTwitter['twitter:app:id:ipad'] = $meta->twitter_ipad_id;
                 }
                 if ($meta->twitter_ipad_url != '') {
                     $arrayTwitter['twitter:app:url:ipad'] = $meta->twitter_ipad_url;
                 }
                 if ($meta->twitter_googleplay_name != '') {
                     $arrayTwitter['twitter:app:name:googleplay'] = $meta->twitter_googleplay_name;
                 }
                 if ($meta->twitter_googleplay_id != '') {
                     $arrayTwitter['twitter:app:id:googleplay'] = $meta->twitter_googleplay_id;
                 }
                 if ($meta->twitter_googleplay_url != '') {
                     $arrayTwitter['twitter:app:url:googleplay'] = $meta->twitter_googleplay_url;
                 }
                 if (empty($arrayTwitter)) {
                     $arrayTwitter = array();
                 }
             }
         }
     }
     $arrayTwitterGlobal = array('twitter:card' => $cardType, 'twitter:site' => $meta->twitter_site, 'twitter:title' => 'MY_WEBSITE_NAME', 'twitter:description' => 'MY_WEBSITE_DESCRIPTION', 'twitter:image' => $metaImages);
     if (in_array($meta->twitter_card, array(2))) {
         $arrayTwitterGlobal['twitter:creator'] = $meta->twitter_creator;
     }
     if ($meta->meta_image_alt != '' && in_array($meta->meta_image_alt, array(1, 2))) {
         $arrayTwitterGlobal['twitter:image:alt'] = $meta->meta_image_alt;
     }
     /**
      * Registe Meta Tags
      */
     Yii::app()->setComponents(array('meta' => array('class' => 'application.components.plugin.MetaTags', 'googleOwnerTags' => array('place:location:latitude' => $point[0], 'place:location:longitude' => $point[1], 'business:contact_data:street_address' => $meta->office_place . ', ' . $meta->office_village . ', ' . $meta->office_district, 'business:contact_data:country_name' => $meta->view_meta->country, 'business:contact_data:locality' => $meta->view_meta->city, 'business:contact_data:region' => $meta->office_district, 'business:contact_data:postal_code' => $meta->office_zipcode, 'business:contact_data:email' => $meta->office_email, 'business:contact_data:phone_number' => $meta->office_phone, 'business:contact_data:fax_number' => $meta->office_fax, 'business:contact_data:website' => $meta->office_website), 'googlePlusTags' => array('name' => 'MY_WEBSITE_NAME', 'description' => 'MY_WEBSITE_DESCRIPTION', 'image' => $metaImages), 'facebookTags' => CMap::mergeArray($arrayFacebookGlobal, $arrayFacebook), 'twitterTags' => CMap::mergeArray($arrayTwitterGlobal, $arrayTwitter))));
 }
コード例 #5
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 = OmmuPlugins::model()->findByPk($id);
     if ($model === null) {
         throw new CHttpException(404, Yii::t('phrase', 'The requested page does not exist.'));
     }
     return $model;
 }
コード例 #6
0
 /**
  * Create additional table inside module(if any)
  *
  * @param string $moduleName
  * @return void.
  */
 public function installModule($id, $moduleName)
 {
     $module = OmmuPlugins::model()->findByPk($id);
     $config = $this->getModuleConfig($moduleName);
     if ($config != null) {
         $module->code = trim($config['code']);
         $module->model = trim($config['global_model']);
         $module->name = trim($config['name']);
         $module->desc = trim($config['description']);
         $module->version = trim($config['version']);
         $module->created_date = date('Y-m-d H:i:s');
         if ($module->save()) {
             $tableName = $config['db_table_name'];
             $fileName = trim($config['db_sql_filename']);
             if ($tableName != null && $fileName != '') {
                 $sqlPath = Yii::getPathOfAlias('application.modules.' . $moduleName) . DS . 'assets' . DS . $fileName;
                 $tables = Yii::app()->db->createCommand('SHOW FULL TABLES WHERE table_type = "BASE TABLE"')->queryColumn();
                 if (!in_array($tableName, $tables)) {
                     $sql = file_get_contents($sqlPath);
                     Yii::app()->db->createCommand($sql)->execute();
                 }
             }
         }
     }
 }
コード例 #7
0
				<?php 
echo $form->textField($model, 'template_key', array('size' => 32, 'maxlength' => 32));
?>
				<?php 
echo $form->error($model, 'template_key');
?>
			</div>
		</div>

		<div class="clearfix">
			<?php 
echo $form->labelEx($model, 'plugin_id');
?>
			<div class="desc">
				<?php 
echo $form->dropDownList($model, 'plugin_id', OmmuPlugins::getPlugin(null, 'id'));
?>
				<?php 
echo $form->error($model, 'plugin_id');
?>
			</div>
		</div>

		<div class="clearfix">
			<?php 
echo $form->labelEx($model, 'template');
?>
			<div class="desc">
				<?php 
echo $form->textArea($model, 'template', array('rows' => 6, 'cols' => 50));
?>