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')); } }
<?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;
#------------------------------------------------------------------------------- } #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- $__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) {
/** * 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()); } }
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; }