Beispiel #1
5
 public function run()
 {
     $voting = null;
     if (is_numeric(HU::post('id_voting'))) {
         $voting = Voting::model()->onlyActive()->with('answer')->findByPk(HU::post('id_voting'));
     }
     if ($voting == null) {
         //echo CHtml::encode($this->controller->widget('vote.widgets.VoteWidget', null, true));
         return;
     }
     if (Yii::app()->vote->check($voting->id_voting)) {
         $answers = $_POST['VotingAnswer']['name'];
         $cr = new CDbCriteria();
         $cr->addColumnCondition(array('id_voting' => $voting->id_voting));
         if (is_array($answers)) {
             $cr->addInCondition('id_voting_answer', $answers);
         } else {
             if (is_numeric($answers)) {
                 $cr->addColumnCondition(array('id_voting_answer' => $answers));
             }
         }
         VotingAnswer::model()->updateCounters(array('count' => 1), $cr);
         VisitSite::saveCurrentVisit(Voting::ID_OBJECT, $voting->id_voting);
         Yii::app()->user->setState('vote_' . $voting->id_voting, time());
         // перегружаем голосовалку, чтоб обновились показатели счетчиков
         $voting = Voting::model()->onlyActive()->with('answer')->findByPk($voting->id_voting);
     }
     $voteCount = $voting->getSumVote();
     echo CHtml::encode($this->controller->renderPartial("vote.widgets.views.statistic", array('voting' => $voting, 'voteCount' => $voteCount)), null, true);
 }
Beispiel #2
1
 /**
  * 会员登录
  */
 public function actionLogin()
 {
     $model = new Admin('login');
     if (XUtils::method() == 'POST') {
         $model->attributes = $_POST['Admin'];
         if ($model->validate()) {
             $data = $model->find('username=:username', array('username' => $model->username));
             if ($data === null) {
                 $model->addError('username', '用户不存在');
                 AdminLogger::_create(array('catalog' => 'login', 'intro' => '登录失败,用户不存在:' . CHtml::encode($model->username), 'user_id' => 0));
             } elseif (!$model->validatePassword($data->password)) {
                 $model->addError('password', '密码不正确');
                 AdminLogger::_create(array('catalog' => 'login', 'intro' => '登录失败,密码不正确:' . CHtml::encode($model->username) . ',使用密码:' . CHtml::encode($model->password), 'user_id' => 0));
             } elseif ($data->group_id == 2) {
                 $model->addError('username', '用户被锁定,请联系网站管理');
             } else {
                 parent::_stateWrite(array('userId' => $data->id, 'userName' => $data->username, 'groupId' => $data->group_id, 'super' => $data->group_id == 1 ? 1 : 0), array('prefix' => '_admini'));
                 $data->last_login_ip = XUtils::getClientIP();
                 $data->last_login_time = time();
                 $data->login_count = $data->login_count + 1;
                 $data->save();
                 AdminLogger::_create(array('catalog' => 'login', 'intro' => '用户登录成功:' . CHtml::encode($model->username)));
                 $this->redirect(array('default/index'));
             }
         }
     }
     $this->render('login', array('model' => $model));
 }
 /**
  * Renders the content of the widget.
  * @throws CException
  */
 public function run()
 {
     // Hide empty breadcrumbs.
     if (empty($this->links)) {
         return;
     }
     $links = array();
     if (!isset($this->homeLink)) {
         $content = CHtml::link(Yii::t('zii', 'Inicio'), Yii::app()->homeUrl);
         $links[] = $this->renderItem($content);
     } else {
         if ($this->homeLink !== false) {
             $links[] = $this->renderItem($this->homeLink);
         }
     }
     foreach ($this->links as $label => $url) {
         if (is_string($label) || is_array($url)) {
             $content = CHtml::link($this->encodeLabel ? CHtml::encode($label) : $label, $url);
             $links[] = $this->renderItem($content);
         } else {
             $links[] = $this->renderItem($this->encodeLabel ? CHtml::encode($url) : $url, true);
         }
     }
     echo CHtml::tag('ul', $this->htmlOptions, implode('', $links));
 }
Beispiel #4
0
 public function actionAjaxAdd()
 {
     if (Yii::app()->request->isAjaxRequest && Yii::app()->user->checkAccess('blockip_admin')) {
         $postValue = CHtml::encode(strip_tags(Yii::app()->request->getParam('value')));
         $pk = CHtml::encode(strip_tags(Yii::app()->request->getParam('pk')));
         if ($postValue) {
             $blockIpModel = BlockIp::model()->find('ip = :ip', array(':ip' => $postValue));
             if ($blockIpModel) {
                 # IP уже есть
                 $msg = 'already_exists';
             } else {
                 $blockIpModel = new BlockIp();
                 $blockIpModel->ip = $postValue;
                 $blockIpModel->ip_long = ip2long($postValue);
                 $blockIpModel->date_created = new CDbExpression('NOW()');
                 if ($blockIpModel->save()) {
                     $msg = 'ok';
                 } else {
                     $msg = 'save_error';
                 }
             }
         } else {
             $msg = 'no_value';
         }
         echo CJSON::encode(array('msg' => $msg, 'value' => $postValue, 'pk' => $pk));
         Yii::app()->end();
     }
 }
Beispiel #5
0
 public function run()
 {
     if (empty($this->links)) {
         return;
     }
     if (isset($this->htmlOptions['class'])) {
         $this->htmlOptions['class'] .= ' breadcrumb';
     } else {
         $this->htmlOptions['class'] = 'breadcrumb';
     }
     echo CHtml::openTag($this->tagName, $this->htmlOptions) . "\n";
     $links = array();
     if ($this->homeLink === null) {
         $links[] = CHtml::link(Yii::t('zii', 'Home'), Yii::app()->homeUrl);
     } else {
         if ($this->homeLink !== false) {
             $links[] = $this->homeLink;
         }
     }
     foreach ($this->links as $label => $url) {
         if (is_string($label) || is_array($url)) {
             $links[] = CHtml::link($this->encodeLabel ? CHtml::encode($label) : $label, $url);
         } else {
             $links[] = '<span>' . ($this->encodeLabel ? CHtml::encode($url) : $url) . '</span>';
         }
     }
     $separator = CHtml::tag('span', array('class' => 'divider'), $this->separator) . CHtml::closeTag('li') . ' ' . CHtml::openTag('li');
     echo CHtml::openTag('li') . implode($separator, $links) . CHtml::closeTag('li');
     echo CHtml::closeTag($this->tagName);
 }
 protected function renderContent()
 {
     if (isset($this->block) && $this->block != null) {
         //Set Params from Block Params
         $params = unserialize($this->block->params);
         $this->setParams($params);
         $post_id = (int) $_GET['id'];
         if ($post_id) {
             $post = Object::model()->findByPk($post_id);
             if ($post) {
                 Yii::app()->controller->pageTitle = CHtml::encode($post->object_name);
                 Yii::app()->controller->description = CHtml::encode($post->object_description);
                 Yii::app()->controller->keywords = CHtml::encode($post->object_keywords);
                 Yii::app()->controller->change_title = true;
                 $this->render(BlockRenderWidget::setRenderOutput($this), array('post' => $post));
             } else {
                 throw new CHttpException('404', t('Page not found'));
             }
         } else {
             throw new CHttpException('404', t('Page not found'));
         }
     } else {
         echo '';
     }
 }
 public static function onNewComment(CommentEvent $event)
 {
     $comment = $event->getComment();
     $module = $event->getModule();
     $parent = $comment->getParent();
     //ответ на комментарий
     if ($comment->hasParent()) {
         if (null !== $parent && $parent->user_id) {
             $notify = NotifySettings::model()->getForUser($parent->user_id);
             if (null !== $notify && $notify->isNeedSendForCommentAnswer()) {
                 Yii::app()->mail->send($module->email, $parent->email, Yii::t('NotifyModule.notify', 'Reply to your comment on the website "{app}"!', ['{app}' => CHtml::encode(Yii::app()->name)]), Yii::app()->getController()->renderPartial('comment-reply-notify-email', ['model' => $comment], true));
             }
         }
     }
     //нотификация автору поста
     if ('Post' === $comment->model) {
         $post = Post::model()->cache(Yii::app()->getModule('yupe')->coreCacheTime)->with(['createUser'])->get((int) $comment->model_id);
         if (null !== $post) {
             //пропускаем автора поста + если отвечают на комментарий автора поста - он уже получил уведомление выше
             if ($comment->user_id != $post->create_user_id) {
                 $notify = NotifySettings::model()->getForUser($post->create_user_id);
                 if (null != $notify && $notify->isNeedSendForNewPostComment()) {
                     Yii::app()->mail->send($module->email, $post->createUser->email, Yii::t('NotifyModule.notify', 'New comment to your post on website "{app}"!', ['{app}' => CHtml::encode(Yii::app()->name)]), Yii::app()->getController()->renderPartial('comment-new-notify-email', ['model' => $comment], true));
                 }
             }
         }
     }
 }
Beispiel #8
0
 public function actionAdd($isFancy = 0)
 {
     $model = new Reviews();
     if (isset($_POST[$this->modelName])) {
         $model->attributes = $_POST[$this->modelName];
         if ($model->validate()) {
             if ($model->save(false)) {
                 $model->name = CHtml::encode($model->name);
                 $model->body = CHtml::encode($model->body);
                 $notifier = new Notifier();
                 $notifier->raiseEvent('onNewReview', $model);
                 if (Yii::app()->user->getState('isAdmin')) {
                     Yii::app()->user->setFlash('success', tt('success_send_not_moderation'));
                 } else {
                     Yii::app()->user->setFlash('success', tt('success_send'));
                 }
                 $this->redirect(array('index'));
             }
             $model->unsetAttributes(array('name', 'body', 'verifyCode'));
         } else {
             Yii::app()->user->setFlash('error', tt('failed_send'));
         }
         $model->unsetAttributes(array('verifyCode'));
     }
     if ($isFancy) {
         $this->excludeJs();
         $this->renderPartial('add', array('model' => $model), false, true);
     } else {
         $this->render('add', array('model' => $model));
     }
 }
 /**
  * @return html nombre de partida compuesto con el nombre
  */
 public function etiquetaExtranjero()
 {
     //echo count($this->id);
     //die;
     $extranjero = ProveedoresExtranjeros::model()->findByAttributes(array('proveedor_id' => $this->id));
     return CHtml::encode($this->rif . ' - ' . $this->razon_social . ' - ' . $extranjero->num_identificacion . ' - ' . $extranjero->pais->nombre);
 }
Beispiel #10
0
 public function run()
 {
     if (empty($this->links)) {
         return;
     }
     $this->activeLinkTemplate = '<a href="{url}" title="{title}" rel="v:url" property="v:title">{label}</a>';
     echo CHtml::openTag($this->tagName, $this->htmlOptions) . "\n";
     $links = array();
     if ($this->homeLink === null) {
         $links[] = CHtml::link(Yii::t('zii', 'Home'), Yii::app()->homeUrl);
     } elseif ($this->homeLink !== false) {
         $links[] = $this->homeLink;
     }
     foreach ($this->links as $label => $url) {
         if (is_string($label) || is_array($url)) {
             $links[] = strtr($this->activeLinkTemplate, array('{url}' => CHtml::normalizeUrl($url), '{label}' => $this->encodeLabel ? CHtml::encode($label) : $label, '{title}' => $this->encodeLabel ? CHtml::encode($label) : $label));
         } else {
             $links[] = str_replace('{label}', $this->encodeLabel ? CHtml::encode($url) : $url, $this->inactiveLinkTemplate);
         }
     }
     echo "<div xmlns:v='http://rdf.data-vocabulary.org/#'>";
     $i = 0;
     foreach ($links as $link) {
         if ($i > 0) {
             echo '&nbsp;&nbsp;<i class="icon icon_mt"></i>&nbsp;&nbsp;';
         }
         echo '<span typeof="v:Breadcrumb">' . $link . '</span>';
         $i++;
     }
     echo "</div>";
     //echo implode($this->separator,$links);
     echo CHtml::closeTag($this->tagName);
 }
Beispiel #11
0
 public function actionAdd($isFancy = 0)
 {
     $model = new Vacancy();
     if (isset($_POST[$this->modelName]) && BlockIp::checkAllowIp(Yii::app()->controller->currentUserIpLong)) {
         $model->attributes = $_POST[$this->modelName];
         if ($model->validate()) {
             $model->user_ip = Yii::app()->controller->currentUserIp;
             $model->user_ip_ip2_long = Yii::app()->controller->currentUserIpLong;
             if ($model->save(false)) {
                 $model->name = CHtml::encode($model->name);
                 $model->body = CHtml::encode($model->body);
                 $notifier = new Notifier();
                 $notifier->raiseEvent('onNewReview', $model);
                 if (Yii::app()->user->checkAccess('vacancy_admin')) {
                     Yii::app()->user->setFlash('success', tt('success_send_not_moderation'));
                 } else {
                     Yii::app()->user->setFlash('success', tt('success_send'));
                 }
                 $this->redirect(array('index'));
             }
             $model->unsetAttributes(array('name', 'body', 'verifyCode'));
         } else {
             Yii::app()->user->setFlash('error', tt('failed_send'));
         }
         $model->unsetAttributes(array('verifyCode'));
     }
     if ($isFancy) {
         $this->excludeJs();
         $this->renderPartial('add', array('model' => $model), false, true);
     } else {
         $this->render('add', array('model' => $model));
     }
 }
 /**
  * Renders the header cell.
  */
 public function renderHeaderCell()
 {
     if ($this->grid->json) {
         $header = array('id' => $this->id);
         $content = array();
         if ($this->grid->enableSorting && $this->sortable && $this->name !== null) {
             $sort = $this->grid->dataProvider->getSort();
             $label = isset($this->header) ? $this->header : $sort->resolveLabel($this->name);
             if ($sort->resolveAttribute($this->name) !== false) {
                 $label .= '<span class="caret"></span>';
             }
             $content['content'] = $sort->link($this->name, $label, array('class' => 'sort-link'));
         } else {
             if ($this->name !== null && $this->header === null) {
                 if ($this->grid->dataProvider instanceof CActiveDataProvider) {
                     $content['content'] = CHtml::encode($this->grid->dataProvider->model->getAttributeLabel($this->name));
                 } else {
                     $content['content'] = CHtml::encode($this->name);
                 }
             } else {
                 $content['content'] = trim($this->header) !== '' ? $this->header : $this->grid->blankDisplay;
             }
         }
         return CMap::mergeArray($header, $content);
     }
     parent::renderHeaderCell();
 }
Beispiel #13
0
 /**
  * JSON Search for Users
  *
  * Returns an array of users with fields:
  *  - guid
  *  - displayName
  *  - image
  *  - profile link
  */
 public function actionJson()
 {
     $maxResults = 10;
     $results = array();
     $keyword = Yii::app()->request->getParam('keyword');
     $keyword = Yii::app()->input->stripClean($keyword);
     // Build Search Condition
     $criteria = new CDbCriteria();
     $criteria->limit = $maxResults;
     $criteria->condition = 1;
     $criteria->params = array();
     $i = 0;
     foreach (explode(" ", $keyword) as $part) {
         $i++;
         $criteria->condition .= " AND (t.email LIKE :match{$i} OR " . "t.username LIKE :match{$i} OR " . "userProfile.firstname LIKE :match{$i} OR " . "userProfile.lastname LIKE :match{$i} OR " . "userProfile.title LIKE :match{$i})";
         $criteria->params[':match' . $i] = "%" . $part . "%";
     }
     $users = User::model()->with('userProfile')->findAll($criteria);
     foreach ($users as $user) {
         if ($user != null) {
             $userInfo = array();
             $userInfo['guid'] = $user->guid;
             $userInfo['displayName'] = CHtml::encode($user->displayName);
             $userInfo['image'] = $user->getProfileImage()->getUrl();
             $userInfo['link'] = $user->getUrl();
             $results[] = $userInfo;
         }
     }
     print CJSON::encode($results);
     Yii::app()->end();
 }
Beispiel #14
0
 public function actionView()
 {
     $topic = $this->getTopic();
     $file = Yii::getPathOfAlias('application.data.guide') . DIRECTORY_SEPARATOR . $this->getVersion() . DIRECTORY_SEPARATOR . $this->getLanguage() . DIRECTORY_SEPARATOR . $topic . '.txt';
     if (!is_file($file)) {
         $file = Yii::getPathOfAlias('application.data.guide') . DIRECTORY_SEPARATOR . $this->getVersion() . DIRECTORY_SEPARATOR . $topic . '.txt';
     }
     if (!strcasecmp($topic, 'toc') || !is_file($file)) {
         throw new CHttpException(404, 'The requested page does not exist.');
     }
     $content = file_get_contents($file);
     $markdown = new MarkdownParser();
     $markdown->purifierOptions['Attr.EnableID'] = true;
     $content = $markdown->safeTransform($content);
     $highlightCss = Yii::app()->assetManager->publish($markdown->getDefaultCssFile());
     Yii::app()->clientScript->registerCssFile($highlightCss);
     $imageUrl = Yii::app()->baseUrl . '/images/guide';
     $content = preg_replace('/<p>\\s*<img(.*?)src="(.*?)"\\s+alt="(.*?)"\\s*\\/>\\s*<\\/p>/', '<div class="image"><p>\\3</p><img\\1src="' . $imageUrl . '/\\2" alt="\\3" /></div>', $content);
     $content = preg_replace_callback('/href="\\/guide\\/(.*?)\\/?"/', array($this, 'replaceGuideLink'), $content);
     $content = preg_replace('/href="(\\/api\\/.*?)"/', 'href="http://sourcebans.net$1"', $content);
     $content = preg_replace_callback('/<h2([^>]*)>(.*?)<\\/h2>/', array($this, 'replaceSection'), $content);
     $content = preg_replace_callback('/<h1([^>]*)>(.*?)<\\/h1>/', array($this, 'replaceTitle'), $content, 1);
     $this->pageTitle = 'User Guide « SourceBans';
     if ($topic !== 'index' && preg_match('/<h1[^>]*>(.*?)</', $content, $matches)) {
         $this->pageTitle = CHtml::encode($matches[1]) . ' « ' . $this->pageTitle;
     }
     $this->render('view', array('content' => $content));
 }
 public function actionAvatar($user, $hash)
 {
     $cache_id = "Product:[avatarForUser] " . CHtml::encode($user);
     $cache_duration = 3600;
     $avatarBinary = Yii::app()->cache->get($cache_id);
     if (!$avatarBinary) {
         $result = Yii::app()->curl->post("https://kle-en-main.com/CloudServices/index.php/BoukemAPI/product/avatar", array('user_id' => $user, 'hash' => $hash, 'store_id' => Yii::app()->params['outbound_api_user'], 'store_key' => Yii::app()->params['outbound_api_secret']));
         $json_dict = json_decode($result);
         if (!$json_dict) {
             throw new CHttpException(404, Yii::t('app', 'La page demandée n\'existe pas.'));
         }
         $avatarBinary = $json_dict->avatar_medium;
         Yii::app()->cache->set($cache_id, $avatarBinary, $cache_duration);
     }
     $raw_data = base64_decode($avatarBinary);
     header('Content-Type: image/jpeg');
     echo $raw_data;
     foreach (Yii::app()->log->routes as $route) {
         if ($route instanceof CWebLogRoute) {
             $route->enabled = false;
             // disable any weblogroutes
         }
     }
     Yii::app()->end();
 }
 /**
  * 第二个下拉菜单options动态输出
  * @author gentle
  */
 public function actionAdditionType($fieldType, $additionType = -1, $databaseId = -1, $datasetId = -1)
 {
     switch ($fieldType) {
         //独立字段
         case 'normal':
             $data = array('text' => '文本', 'multitext' => '多行文本', 'number' => '数值', 'select' => '单选', 'multiselect' => '多选', 'image' => '图片');
             break;
             //调用元素集字段
         //调用元素集字段
         case 'reference':
             $dsModel = $this->loadModel($databaseId, 'ds', 'database_id', true);
             $data = array();
             foreach ($dsModel as $key => $value) {
                 $data[$value->en_name] = $value->name;
             }
             break;
     }
     $dropDown = "<option value=''>选择附属类型</option>";
     foreach ($data as $value => $name) {
         if ($additionType >= 0 && $value == $additionType) {
             $dropDown .= CHtml::tag('option', array('value' => $value, 'selected' => 'selected'), CHtml::encode($name), true);
         } else {
             $dropDown .= CHtml::tag('option', array('value' => $value), CHtml::encode($name), true);
         }
     }
     echo CJSON::encode(array('dropDown' => $dropDown));
 }
Beispiel #17
0
 public function actionLogin()
 {
     $model = new Admin('login');
     if (XUtils::method() == 'POST') {
         $model->attributes = $_POST['Admin'];
         if ($model->validate()) {
             $data = $model->find('username=:username', array('username' => $model->username));
             if ($data === null) {
                 $model->addError('username', '用户不存在');
                 parent::_backendLogger(array('catalog' => 'login', 'intro' => '登录失败,用户不存在:' . CHtml::encode($model->username), 'user_id' => 0));
             } elseif (!$model->validatePassword($data->password)) {
                 $model->addError('password', '密码不正确');
                 parent::_backendLogger(array('catalog' => 'login', 'intro' => '登录失败,密码不正确:' . CHtml::encode($model->username) . ',使用密码:' . CHtml::encode($model->password), 'user_id' => 0));
             } elseif ($data->group_id == 2) {
                 $model->addError('username', '用户已经锁定,请联系管理');
             } else {
                 $this->_sessionSet('_backendGroupId', $data->group_id);
                 if (isset($data->group_id) && $data->group_id == 1) {
                     $this->_sessionSet('_backendPermission', 'backendstrator');
                 }
                 $data->last_login_ip = XUtils::getClientIP();
                 $data->last_login_time = time();
                 $data->login_count = $data->login_count + 1;
                 $data->save();
                 parent::_sessionSet('uid', $data->id);
                 parent::_sessionSet('uname', $data->username);
                 parent::_backendLogger(array('catalog' => 'login', 'intro' => '用户登录成功:' . $data->username));
                 $this->redirect(array('default/index'));
                 XUtils::message('success', '登录成功', $this->createUrl('default/index'), 2);
             }
         }
     }
     $this->render('login', array('model' => $model));
 }
Beispiel #18
0
 /**
  *### .renderHeaderCellContent()
  *
  * Renders the header cell content.
  * This method will render a link that can trigger the sorting if the column is sortable.
  */
 protected function renderHeaderCellContent()
 {
     if ($this->grid->enableSorting && $this->sortable && $this->name !== null) {
         $sort = $this->grid->dataProvider->getSort();
         $label = isset($this->header) ? $this->header : $sort->resolveLabel($this->name);
         if ($sort->resolveAttribute($this->name) !== false) {
             if ($sort->getDirection($this->name) === CSort::SORT_ASC) {
                 $label .= ' <span class="icon-sort-down"></span>';
             } elseif ($sort->getDirection($this->name) === CSort::SORT_DESC) {
                 $label .= ' <span class="icon-sort-up"></span>';
             } else {
                 $label .= ' ';
             }
         }
         echo $sort->link($this->name, $label, array('class' => 'sort-link'));
     } else {
         if ($this->name !== null && $this->header === null) {
             if ($this->grid->dataProvider instanceof CActiveDataProvider) {
                 echo CHtml::encode($this->grid->dataProvider->model->getAttributeLabel($this->name));
             } else {
                 echo CHtml::encode($this->name);
             }
         } else {
             parent::renderHeaderCellContent();
         }
     }
 }
 /**
  * Displays the login page
  */
 public function actionLogin()
 {
     $this->layout = '//layouts/login';
     if (@Yii::app()->user->id) {
         $this->redirect(Yii::app()->homeUrl);
     }
     $model = new LoginFormAdmin();
     // if it is ajax validation request
     if (isset($_POST['ajax']) && $_POST['ajax'] === 'login-form') {
         echo CActiveForm::validate($model);
         Yii::app()->end();
     }
     // collect user input data
     if (isset($_POST['LoginFormAdmin'])) {
         $model->attributes = $_POST['LoginFormAdmin'];
         // validate user input and redirect to the previous page if valid
         if ($model->validate() && $model->login()) {
             $audit = new AuditTrail();
             $audit->user_id = Yii::app()->user->id;
             $audit->login_time = new CDbExpression('NOW()');
             $audit->user_type = 1;
             $audit->save();
             Yii::app()->user->setFlash('success', 'Welcome in the <strong>' . CHtml::encode(Yii::app()->name) . ' Admin Panel</strong>. Don\'t forget to <strong>Logout</strong> when finish!');
             $this->redirect(Yii::app()->user->returnUrl);
         }
     }
     // display the login form
     $this->render('login', array('model' => $model));
 }
Beispiel #20
0
 /**
  * Initializes menu items
  */
 public function initItems()
 {
     if (!empty($this->items)) {
         $links = array();
         if ($this->homeLabel !== false) {
             $label = $this->homeLabel !== null ? $this->homeLabel : Icon::icon(Enum::ICON_HOME);
             $links[$label] = array('href' => $this->homeUrl !== null ? $this->homeUrl : \Yii::app()->homeUrl);
         }
         foreach ($this->items as $label => $options) {
             if (is_string($label)) {
                 if ($this->encodeLabel) {
                     $label = \CHtml::encode($label);
                 }
                 if (is_string($options)) {
                     $links[$label] = array('href' => \CHtml::normalizeUrl($options));
                 } else {
                     $url = ArrayHelper::removeValue($options, 'url', '');
                     $options['href'] = \CHtml::normalizeUrl($url);
                     $links[$label] = $options;
                 }
             } else {
                 $links[$options] = array('href' => '#');
             }
         }
         $this->items = $links;
     }
 }
 public function run()
 {
     $cacheName = "ContentBlock{$this->code}" . Yii::app()->language;
     $output = Yii::app()->cache->get($cacheName);
     if ($output === false) {
         $block = ContentBlock::model()->published()->findByCode($this->code);
         if (null === $block) {
             if ($this->silent === false) {
                 throw new CException(Yii::t('ContentBlockModule.contentblock', 'Content block "{code}" was not found !', array('{code}' => $this->code)));
             }
             $output = '';
         } else {
             switch ($block->type) {
                 case ContentBlock::PHP_CODE:
                     $output = eval($block->content);
                     break;
                 case ContentBlock::SIMPLE_TEXT:
                     $output = CHtml::encode($block->content);
                     break;
                 case ContentBlock::HTML_TEXT:
                     $output = $block->content;
                     break;
             }
         }
         Yii::app()->cache->set($cacheName, $output);
     }
     $this->render($this->view, array('output' => $output));
 }
Beispiel #22
0
 /**
  *### .run()
  *
  * Renders the content of the widget.
  *
  * @throws CException
  */
 public function run()
 {
     // Hide empty breadcrumbs.
     if (empty($this->links)) {
         return;
     }
     $links = '';
     if (!isset($this->homeLink)) {
         $content = CHtml::link(Yii::t('zii', 'Home'), Yii::app()->homeUrl);
         $links .= $this->renderItem($content);
     } else {
         if ($this->homeLink !== false) {
             $links .= $this->renderItem($this->homeLink);
         }
     }
     $count = count($this->links);
     $counter = 0;
     foreach ($this->links as $label => $url) {
         ++$counter;
         // latest is the active one
         if (is_string($label) || is_array($url)) {
             $content = CHtml::link($this->encodeLabel ? CHtml::encode($label) : $label, $url);
             $links .= $this->renderItem($content);
         } else {
             $links .= $this->renderItem($this->encodeLabel ? CHtml::encode($url) : $url, $counter === $count);
         }
     }
     echo CHtml::tag('ul', $this->htmlOptions, $links);
 }
Beispiel #23
0
 public function toHtml()
 {
     $this->htmlOptions['class'] .= ' ' . $this->options['level'];
     $this->htmlOptions['class'] .= ' event-action';
     $label = CHtml::encode($this->label);
     if ($this->options['level'] === 'save') {
         $this->htmlOptions['class'] .= ' button secondary small';
     }
     if ($this->options['level'] === 'delete') {
         $content = '<span class="icon-button-small-trash-can"></span>';
         $content .= '<span class="hide-offscreen">' . $label . '</span>';
         $label = $content;
         $this->htmlOptions['class'] .= ' button button-icon small';
     }
     if ($this->options['level'] === 'cancel') {
         $this->htmlOptions['class'] .= ' button small';
     }
     if ($this->options['disabled']) {
         $this->htmlOptions['class'] .= ' disabled';
         $this->htmlOptions['disabled'] = 'disabled';
     }
     if ($this->type == 'button') {
         return CHtml::htmlButton($label, $this->htmlOptions);
     } elseif ($this->type == 'link') {
         return CHtml::link($label, $this->href, $this->htmlOptions);
     }
 }
Beispiel #24
0
 /**
  * Renders the content of the widget.
  */
 public function run()
 {
     $links = array();
     if ($this->homeLink === null || !(isset($this->homeLink['label']) && isset($this->homeLink['url']))) {
         $this->homeLink = array('label' => Yii::t('bootstrap', 'Home'), 'url' => Yii::app()->homeUrl);
     }
     if (!empty($this->links)) {
         $content = CHtml::link($this->homeLink['label'], $this->homeLink['url']);
         $links[] = $this->renderItem($content);
     } else {
         $links[] = $this->renderItem($this->homeLink['label'], true);
     }
     foreach ($this->links as $label => $url) {
         if (is_string($label) || is_array($url)) {
             $label = $this->encodeLabel ? CHtml::encode($label) : $label;
             $content = CHtml::link($label, $url);
             $links[] = $this->renderItem($content);
         } else {
             $links[] = $this->renderItem($this->encodeLabel ? CHtml::encode($url) : $url, true);
         }
     }
     echo CHtml::openTag('ul', $this->htmlOptions);
     echo implode('', $links);
     echo '</ul>';
 }
Beispiel #25
0
 /**
  * 使用discuz词库
  * @param unknown_type $title
  * @param unknown_type $content
  */
 public static function discuz($title = '', $content = '')
 {
     $subjectenc = rawurlencode(strip_tags($title));
     $messageenc = rawurlencode(strip_tags(preg_replace("/\\[.+?\\]/U", '', $content)));
     $data = @implode('', file("http://keyword.discuz.com/related_kw.html?title={$subjectenc}&content={$messageenc}&ics=utf-8&ocs=utf-8"));
     if ($data) {
         $parser = xml_parser_create();
         xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
         xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
         xml_parse_into_struct($parser, $data, $values, $index);
         xml_parser_free($parser);
         $kws = array();
         foreach ($values as $valuearray) {
             if ($valuearray['tag'] == 'kw' || $valuearray['tag'] == 'ekw') {
                 $kws[] = trim($valuearray['value']);
             }
         }
         $return = '';
         if ($kws) {
             foreach ($kws as $kw) {
                 $kw = CHtml::encode(strip_tags($kw));
                 $return .= $dot . $kw;
                 $dot = ',';
             }
             $return = trim($return);
         }
         return $return;
     }
 }
 /**
  * Renders the mass action button, if applicable
  */
 public function renderButton()
 {
     if (!$this->hasButton) {
         return;
     }
     echo "\n            <a href='#' title='" . CHtml::encode($this->getLabel()) . "'\n             data-mass-action='" . get_class($this) . "'\n             data-allow-multiple='" . ($this->allowMultiple ? 'true' : 'false') . "'\n             class='fa fa-folder fa-lg mass-action-button x2-button mass-action-button-" . get_class($this) . "'>\n            </a>";
 }
Beispiel #27
0
 /**
  * Initializes the widget.
  */
 public function init()
 {
     if ($this->brand !== false) {
         if (!isset($this->brand)) {
             $this->brand = CHtml::encode(Yii::app()->name);
         }
         if (!isset($this->brandUrl)) {
             $this->brandUrl = Yii::app()->homeUrl;
         }
         $this->brandOptions['href'] = CHtml::normalizeUrl($this->brandUrl);
         if (isset($this->brandOptions['class'])) {
             $this->brandOptions['class'] .= ' brand';
         } else {
             $this->brandOptions['class'] = 'brand';
         }
     }
     $classes = array('navbar');
     if (isset($this->type) && in_array($this->type, array(self::TYPE_INVERSE))) {
         $classes[] = 'navbar-' . $this->type;
     }
     if ($this->fixed !== false && in_array($this->fixed, array(self::FIXED_TOP, self::FIXED_BOTTOM))) {
         $classes[] = 'navbar-fixed-' . $this->fixed;
     }
     if (!empty($classes)) {
         $classes = implode(' ', $classes);
         if (isset($this->htmlOptions['class'])) {
             $this->htmlOptions['class'] .= ' ' . $classes;
         } else {
             $this->htmlOptions['class'] = $classes;
         }
     }
 }
Beispiel #28
0
 public function run()
 {
     if (empty($this->links)) {
         return;
     }
     echo CHtml::openTag($this->tagName, $this->htmlOptions) . "\n";
     $links = array();
     if ($this->homeLink === null) {
         $links[] = CHtml::link(Yii::t('zii', 'Home'), Yii::app()->homeUrl);
     } else {
         if ($this->homeLink !== false) {
             $links[] = $this->homeLink;
         }
     }
     $i = 1;
     foreach ($this->links as $label => $url) {
         if (is_string($label) || is_array($url)) {
             if (count($this->links) == $i) {
                 $links[] = CHtml::link($this->encodeLabel ? CHtml::encode($label) : $label, $url, array('class' => $this->lastCssClass));
             } else {
                 $links[] = CHtml::link($this->encodeLabel ? CHtml::encode($label) : $label, $url);
             }
         } else {
             if (count($this->links) == $i) {
                 $links[] = '<span class="' . $this->lastCssClass . '">' . ($this->encodeLabel ? CHtml::encode($url) : $url) . '</span>';
             } else {
                 $links[] = '<span>' . ($this->encodeLabel ? CHtml::encode($url) : $url) . '</span>';
             }
         }
         $i++;
     }
     echo implode($this->separator, $links);
     echo CHtml::closeTag($this->tagName);
 }
Beispiel #29
0
 /**
  * ### .
  * run()
  *
  * Renders the content of the widget.
  */
 public function run()
 {
     if (empty($this->links)) {
         return;
     }
     echo CHtml::openTag($this->tagName, $this->htmlOptions);
     if ($this->homeLink === null) {
         $this->homeLink = CHtml::link(Yii::t('zii', 'Home'), Yii::app()->homeUrl);
     }
     if ($this->homeLink !== false) {
         // check whether home link is not a link
         $active = stripos($this->homeLink, '<a') === false ? ' class="active"' : '';
         echo '<li' . $active . '>' . $this->homeLink . '</li>';
     }
     end($this->links);
     $lastLink = key($this->links);
     foreach ($this->links as $label => $url) {
         if (is_string($label) || is_array($url)) {
             echo '<li>';
             echo strtr($this->activeLinkTemplate, array('{url}' => CHtml::normalizeUrl($url), '{label}' => $this->encodeLabel ? CHtml::encode($label) : $label));
         } else {
             echo '<li class="active">';
             echo str_replace('{label}', $this->encodeLabel ? CHtml::encode($url) : $url, $this->inactiveLinkTemplate);
         }
         echo '</li>';
     }
     echo CHtml::closeTag($this->tagName);
 }
Beispiel #30
0
 public function run()
 {
     if (empty($this->links)) {
         return;
     }
     echo CHtml::openTag($this->tagName, $this->htmlOptions) . "\n";
     $links = array();
     echo '<span class="m_left20">当前位置:</span>';
     if ($this->homeLink === null) {
         $links[] = CHtml::link("工作台", Yii::app()->homeUrl);
     } else {
         if ($this->homeLink !== false) {
             $links[] = $this->homeLink;
         }
     }
     foreach ($this->links as $label => $url) {
         if (is_string($label) || is_array($url)) {
             $links[] = CHtml::link($this->encodeLabel ? CHtml::encode($label) : $label, $url);
         } else {
             $links[] = '<span>' . ($this->encodeLabel ? CHtml::encode($url) : $url) . '</span>';
         }
     }
     echo implode($this->separator, $links);
     echo CHtml::closeTag($this->tagName);
 }