Пример #1
0
 public function actionSearch()
 {
     $indexFiles = Yii::app()->getModule('zendsearch')->indexFiles;
     SetLocale(LC_ALL, 'ru_RU.UTF-8');
     Zend_Search_Lucene_Analysis_Analyzer::setDefault(new Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive());
     Zend_Search_Lucene_Search_QueryParser::setDefaultEncoding('UTF-8');
     if (($term = Yii::app()->getRequest()->getQuery('q', null)) !== null) {
         $index = new Zend_Search_Lucene(Yii::getPathOfAlias('application.' . $indexFiles));
         $results = $index->find($term);
         $query = Zend_Search_Lucene_Search_QueryParser::parse($term);
         $this->render('search', compact('results', 'term', 'query'));
     }
 }
Пример #2
0
<?php

SetLocale(LC_ALL, "Czech");
require __DIR__ . '/../vendor/autoload.php';
RadekDostal\NetteComponents\DateTimePicker\DatePicker::register();
$configurator = new Nette\Configurator();
//$configurator->setDebugMode('23.75.345.200'); // enable for your remote IP
$configurator->enableDebugger(__DIR__ . '/../log');
$configurator->setTempDirectory(__DIR__ . '/../temp');
//$configurator->setDebugMode(FALSE);
$configurator->createRobotLoader()->addDirectory(__DIR__)->register();
$configurator->addConfig(__DIR__ . '/config/config.neon');
$configurator->addConfig(__DIR__ . '/config/config.local.neon');
$container = $configurator->createContainer();
return $container;
Пример #3
0
    #-------------------------------------------------------------------------------
}
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
$__USER = $GLOBALS['__USER'];
#-------------------------------------------------------------------------------
if ($StepID) {
    #-------------------------------------------------------------------------------
    $Comp = Comp_Load('Form/Input', array('name' => 'ContractID', 'type' => 'hidden', 'value' => $ContractID));
    if (Is_Error($Comp)) {
        return ERROR | @Trigger_Error(500);
    }
    #-------------------------------------------------------------------------------
    $Form->AddChild($Comp);
    #-------------------------------------------------------------------------------
    SetLocale(LC_ALL, 'russian');
    #-------------------------------------------------------------------------------
    //$DomainName = Mb_StrToLower($DomainName,'UTF-8');
    #-------------------------------------------------------------------------------
    $Regulars = Regulars();
    #-------------------------------------------------------------------------------
    $Comp = Comp_Load('Form/Input', array('name' => 'DomainName', 'type' => 'hidden', 'value' => $DomainName));
    if (Is_Error($Comp)) {
        return ERROR | @Trigger_Error(500);
    }
    #-------------------------------------------------------------------------------
    $Form->AddChild($Comp);
    #-------------------------------------------------------------------------------
    $Table = array('Общая информация');
    #-------------------------------------------------------------------------------
    if (!$DomainSchemeID) {
Пример #4
0
 /**
  * Search index creation
  */
 public function actionCreate()
 {
     /**
      * Если это не AJAX-запрос - посылаем:
      **/
     if (!Yii::app()->getRequest()->getIsPostRequest() && !Yii::app()->getRequest()->getIsAjaxRequest()) {
         throw new CHttpException(404, Yii::t('ZendSearchModule.zendsearch', 'Page was not found!'));
     }
     try {
         // Папка для хранения индекса поиска
         $indexFiles = Yii::app()->getModule('zendsearch')->indexFiles;
         // Модели, включенные в индекс
         $searchModels = Yii::app()->getModule('zendsearch')->searchModels;
         // Лимит количества символов к описанию превью найденной страницы
         $limit = 600;
         SetLocale(LC_ALL, 'ru_RU.UTF-8');
         $analyzer = new Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive();
         Zend_Search_Lucene_Analysis_Analyzer::setDefault($analyzer);
         $index = new Zend_Search_Lucene(Yii::getPathOfAlias('application.' . $indexFiles), true);
         $messages = [];
         if (extension_loaded('iconv') === true) {
             // Пробежаться по всем моделям и добавить их в индекс
             foreach ($searchModels as $modelName => $model) {
                 if (!empty($model['path'])) {
                     Yii::import($model['path']);
                 }
                 if (!isset($model['module'])) {
                     $messages[] = Yii::t('ZendSearchModule.zendsearch', 'Update config file or module, Module index not found for model "{model}"!', ['{model}' => $modelName]);
                 } elseif (is_file(Yii::getPathOfAlias($model['path']) . '.php') && Yii::app()->hasModule($model['module'])) {
                     $criteria = isset($model['criteria']) ? $model['criteria'] : [];
                     $searchNodes = $modelName::model()->findAll(new CDbCriteria($criteria));
                     foreach ($searchNodes as $node) {
                         $doc = new Zend_Search_Lucene_Document();
                         $doc->addField(Zend_Search_Lucene_Field::Text('title', CHtml::encode($node->{$model}['titleColumn']), 'UTF-8'));
                         $link = str_replace('{' . $model['linkColumn'] . '}', $node->{$model}['linkColumn'], $model['linkPattern']);
                         $doc->addField(Zend_Search_Lucene_Field::Text('link', $link, 'UTF-8'));
                         $contentColumns = explode(',', $model['textColumns']);
                         $i = 0;
                         foreach ($contentColumns as $column) {
                             $content = $this->cleanContent($node->{$column});
                             if ($i == 0) {
                                 $doc->addField(Zend_Search_Lucene_Field::Text('content', $content, 'UTF-8'));
                                 $description = $this->cleanContent($this->previewContent($node->{$column}, $limit));
                                 $doc->addField(Zend_Search_Lucene_Field::Text('description', $description, 'UTF-8'));
                             } else {
                                 $doc->addField(Zend_Search_Lucene_Field::Text('content' . $i, $content, 'UTF-8'));
                             }
                             $i++;
                         }
                         $index->addDocument($doc);
                     }
                     $index->optimize();
                     $index->commit();
                 } else {
                     $messages[] = Yii::t('ZendSearchModule.zendsearch', 'Module "{module}" not installed!', ['{module}' => $model['module']]);
                 }
             }
         } else {
             $messages[] = Yii::t('ZendSearchModule.zendsearch', 'This module require "Iconv" extension!');
         }
         Yii::app()->ajax->raw(empty($messages) ? Yii::t('ZendSearchModule.zendsearch', 'Index updated successfully!') : Yii::t('ZendSearchModule.zendsearch', 'There is an error!') . ': ' . implode("\n", $messages));
     } catch (Exception $e) {
         Yii::app()->ajax->raw(Yii::t('ZendSearchModule.zendsearch', 'There is an error!') . ":\n" . $e->getMessage());
     }
 }
Пример #5
0
 public function visitsAction()
 {
     // Log In Start
     if (!is_array($patron = $this->catalogLogin())) {
         return $patron;
     }
     $user = $this->getUser();
     if (empty($user['major'])) {
         return $this->redirect()->toRoute('myresearch-home');
     }
     $config = $this->getServiceLocator()->get('config');
     $isAdmin = $this->isAdmin($user);
     if (!$isAdmin) {
         $userLibCard = $user['major'];
     }
     // Log in End
     // Get params inspection Start (preventing user Injection)
     $urlGetParams = $this->params()->fromQuery();
     $this->checkGetParams($urlGetParams);
     // Get params inspections End
     $dateFrom = !empty($urlGetParams['dateFrom']) ? $urlGetParams['dateFrom'] : date('Y-m-01');
     $dateTo = !empty($urlGetParams['dateTo']) ? $urlGetParams['dateTo'] : date('Y-m-t');
     $date = $dateFrom . ',' . $dateTo;
     if (!$isAdmin) {
         $PiwikStatistics = $this->getServiceLocator()->get('Statistics\\PiwikPiwikStatistics');
         // Periodicity
         $ts1 = strtotime($dateFrom);
         $ts2 = strtotime($dateTo);
         $year1 = date('Y', $ts1);
         $year2 = date('Y', $ts2);
         $month1 = date('m', $ts1);
         $month2 = date('m', $ts2);
         $monthsBetweenDates = ($year2 - $year1) * 12 + ($month2 - $month1);
         if ($monthsBetweenDates == 0) {
             $periodicity = 'day';
         } else {
             if ($monthsBetweenDates <= 2) {
                 $periodicity = 'week';
             } else {
                 if ($monthsBetweenDates <= 12) {
                     $periodicity = 'month';
                 } else {
                     // 13+ months
                     $periodicity = 'year';
                 }
             }
         }
         //
         // visits in time
         $returningVisitsInTime = $PiwikStatistics->getVisitsCountForLibrary($periodicity, $date, $userLibCard, array('segment' => 'visitorType==returning'));
         $newVisitsInTime = $PiwikStatistics->getVisitsCountForLibrary($periodicity, $date, $userLibCard, array('segment' => 'visitorType==new'));
         $visitsInTime = array();
         foreach ($returningVisitsInTime as $key => $value) {
             $visitsInTime[$key] = array('returningVisits' => $value, 'newVisits' => $newVisitsInTime[$key]);
         }
         //
         // Total visits
         $totalVisitsArray = $PiwikStatistics->getVisitsCountForLibrary('range', $date, $userLibCard);
         $totalVisits = $totalVisitsArray['value'];
         // New visitors count
         $newVisitorsCount = $PiwikStatistics->getNewVisitorsCountForLibrary('range', $date, $userLibCard);
         // Returning visitors count
         $returningVisitorsCount = $PiwikStatistics->getReturningVisitorsCountForLibrary('range', $date, $userLibCard);
         // Visits info [Dashboard]
         $visitsInfoArray = $PiwikStatistics->getVisitsInfoForLibrary('range', $date, $userLibCard);
         $nbActionPerVisit = $visitsInfoArray['nb_actions_per_visit'];
         $nbActions = $visitsInfoArray['nb_actions'];
         $avgTimeOnSite = date('i:s', $visitsInfoArray['avg_time_on_site']);
         SetLocale(LC_ALL, "Czech");
         $totalTimeOnSite = date('G:i:s', $visitsInfoArray['sum_visit_length']);
         $nbOnlineUsers = $PiwikStatistics->getOnlineUsers(10, $userLibCard);
         $view = $this->createViewModel(array('urlGetParams' => $urlGetParams, 'newVisitorsCount' => $newVisitorsCount, 'returningVisitorsCount' => $returningVisitorsCount, 'visitsInTime' => $visitsInTime, 'totalVisits' => $totalVisits, 'nbActionPerVisit' => $nbActionPerVisit, 'nbActions' => $nbActions, 'avgTimeOnSite' => $avgTimeOnSite, 'totalTimeOnSite' => $totalTimeOnSite, 'nbOnlineUsers' => $nbOnlineUsers));
         $view->setTemplate('statistics/visits');
     } else {
         // isAdmin
         $PiwikStatistics = $this->getServiceLocator()->get('Statistics\\PiwikPiwikStatistics');
         // Periodicity
         $ts1 = strtotime($dateFrom);
         $ts2 = strtotime($dateTo);
         $year1 = date('Y', $ts1);
         $year2 = date('Y', $ts2);
         $month1 = date('m', $ts1);
         $month2 = date('m', $ts2);
         $monthsBetweenDates = ($year2 - $year1) * 12 + ($month2 - $month1);
         if ($monthsBetweenDates == 0) {
             $periodicity = 'day';
         } else {
             if ($monthsBetweenDates <= 2) {
                 $periodicity = 'week';
             } else {
                 if ($monthsBetweenDates <= 12) {
                     $periodicity = 'month';
                 } else {
                     // 13+ months
                     $periodicity = 'year';
                 }
             }
         }
         //
         $libCard = !empty($urlGetParams['libCard']) ? $urlGetParams['libCard'] : 'all';
         // visits in time
         if ($libCard && $libCard !== 'all') {
             $returningVisitsInTime = $PiwikStatistics->getVisitsCountForLibrary($periodicity, $date, $libCard, array('segment' => 'visitorType==returning'));
             $newVisitsInTime = $PiwikStatistics->getVisitsCountForLibrary($periodicity, $date, $libCard, array('segment' => 'visitorType==new'));
         } else {
             // all libs
             $returningVisitsInTime = $PiwikStatistics->getVisitsCount($periodicity, $date, 'all', array('segment' => 'visitorType==returning'));
             $newVisitsInTime = $PiwikStatistics->getVisitsCount($periodicity, $date, 'all', array('segment' => 'visitorType==new'));
         }
         $visitsInTime = array();
         foreach ($returningVisitsInTime as $key => $value) {
             $visitsInTime[$key] = array('returningVisits' => $value, 'newVisits' => $newVisitsInTime[$key]);
         }
         //
         // Total visits
         if ($libCard && $libCard !== 'all') {
             $totalVisitsArray = $PiwikStatistics->getVisitsCountForLibrary('range', $date, $libCard);
         } else {
             $totalVisitsArray = $PiwikStatistics->getVisitsCount('range', $date, 'all');
         }
         $totalVisits = $totalVisitsArray['value'];
         // New and Returning visitors count
         if ($libCard && $libCard !== 'all') {
             // chosen library
             $newVisitorsCount = $PiwikStatistics->getNewVisitorsCountForLibrary('range', $date, $libCard);
             $newAnonymeVisitorsCount = null;
             $newAuthenticatedVisitorsCount = null;
             $returningVisitorsCount = $PiwikStatistics->getReturningVisitorsCountForLibrary('range', $date, $libCard);
             $returningAnonymeVisitorsCount = null;
             $returningAuthenticatedVisitorsCount = null;
         } else {
             // all libs
             $newVisitorsCount = $PiwikStatistics->getNewVisitorsCount('range', $date);
             $newAuthenticatedVisitorsCount = $PiwikStatistics->getNewVisitorsCount('range', $date, "authenticated");
             $newAnonymeVisitorsCount = $newVisitorsCount - $newAuthenticatedVisitorsCount;
             $returningVisitorsCount = $PiwikStatistics->getReturningVisitorsCount('range', $date);
             $returningAuthenticatedVisitorsCount = $PiwikStatistics->getReturningVisitorsCount('range', $date, "authenticated");
             $returningAnonymeVisitorsCount = $returningVisitorsCount - $returningAuthenticatedVisitorsCount;
         }
         // Visits info [Dashboard]
         if ($libCard && $libCard !== 'all') {
             // chosen lib
             $visitsInfoArray = $PiwikStatistics->getVisitsInfoForLibrary('range', $date, $libCard);
             $nbActionPerVisit = $visitsInfoArray['nb_actions_per_visit'];
             $nbActions = $visitsInfoArray['nb_actions'];
             $avgTimeOnSite = date('i:s', $visitsInfoArray['avg_time_on_site']);
             $totalTimeOnSite = date('j G:i:s', $visitsInfoArray['sum_visit_length']);
             $nbOnlineUsers = $PiwikStatistics->getOnlineUsers(10, $libCard);
         } else {
             // all libs
             $visitsInfoArray = $PiwikStatistics->getVisitsInfo('range', $date);
             $nbActionPerVisit = $visitsInfoArray['nb_actions_per_visit'];
             $nbActions = $visitsInfoArray['nb_actions'];
             $avgTimeOnSite = date('i:s', $visitsInfoArray['avg_time_on_site']);
             $totalTimeOnSite = date('j G:i:s', $visitsInfoArray['sum_visit_length']);
             $nbOnlineUsers = $PiwikStatistics->getOnlineUsers(10);
         }
         // All cards
         $allDrivers = $PiwikStatistics->getDrivers();
         $view = $this->createViewModel(array('urlGetParams' => $urlGetParams, 'newVisitorsCount' => $newVisitorsCount, 'returningVisitorsCount' => $returningVisitorsCount, 'visitsInTime' => $visitsInTime, 'totalVisits' => $totalVisits, 'nbActionPerVisit' => $nbActionPerVisit, 'nbActions' => $nbActions, 'avgTimeOnSite' => $avgTimeOnSite, 'totalTimeOnSite' => $totalTimeOnSite, 'nbOnlineUsers' => $nbOnlineUsers, 'returningAnonymeVisitorsCount' => $returningAnonymeVisitorsCount, 'returningAuthenticatedVisitorsCount' => $returningAuthenticatedVisitorsCount, 'newAnonymeVisitorsCount' => $newAnonymeVisitorsCount, 'newAuthenticatedVisitorsCount' => $newAuthenticatedVisitorsCount, 'isAdmin' => $isAdmin, 'cards' => $allDrivers));
         $view->setTemplate('statistics/visits-admin');
     }
     return $view;
 }