From 5e9f3657484f18a239d2d0f89412c8ad339b3776 Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Mon, 21 Dec 2015 15:09:53 +0200 Subject: [PATCH] VItaliy 21.12.2015 upload --- frontend/components/SiteSearch.php | 21 +++++++++++++++++++++ frontend/components/views/siteSearch.php | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/controllers/SiteController.php | 45 ++++++++++++++++++++++++++++++++++++++++----- frontend/models/SiteSearchForm.php | 26 ++++++++++++++++++++++++++ frontend/web/js/select.js | 344 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 5 files changed, 330 insertions(+), 177 deletions(-) create mode 100644 frontend/components/SiteSearch.php create mode 100644 frontend/components/views/siteSearch.php create mode 100644 frontend/models/SiteSearchForm.php diff --git a/frontend/components/SiteSearch.php b/frontend/components/SiteSearch.php new file mode 100644 index 0000000..f834cf6 --- /dev/null +++ b/frontend/components/SiteSearch.php @@ -0,0 +1,21 @@ +render('siteSearch', array('model'=>$model)); + } +} \ No newline at end of file diff --git a/frontend/components/views/siteSearch.php b/frontend/components/views/siteSearch.php new file mode 100644 index 0000000..90ed55c --- /dev/null +++ b/frontend/components/views/siteSearch.php @@ -0,0 +1,71 @@ + + + + + + + ['enctype'=> 'multipart/form-data', 'class'=>'form-search'], 'action' => Url::toRoute('site/search'), 'method'=>'get']); ?> + +field($model, 'string',[ +// 'options'=> +// [ +// 'tag'=>'label', +// ], +// 'template' => "{input}", +// ])->textInput(['maxlength' => 255, 'placeholder' => 'Поиск','class'=>'mramor-search']) ?> + + + + \ No newline at end of file diff --git a/frontend/controllers/SiteController.php b/frontend/controllers/SiteController.php index a983129..1391982 100755 --- a/frontend/controllers/SiteController.php +++ b/frontend/controllers/SiteController.php @@ -5,22 +5,22 @@ use common\models\Accounts; use frontend\models\AccountsForm; use common\models\News; use common\models\Slider; -use common\models\Team; + use common\models\TeamGroup; use Yii; use common\models\UserLoginForm; use frontend\models\PasswordResetRequestForm; use frontend\models\ResetPasswordForm; -use frontend\models\SignupForm; -use frontend\models\ContactForm; + use yii\base\InvalidParamException; use yii\web\BadRequestHttpException; use yii\web\Controller; -use yii\filters\VerbFilter; -use yii\filters\AccessControl; use common\models\Callback; use common\components\MailWidget; +use frontend\models\SiteSearchForm; +use yii\db\Query; +use yii\data\ArrayDataProvider; /** * Site controller */ @@ -45,6 +45,41 @@ class SiteController extends Controller ]; } + public function actionSearch() + { + $this->layout = '/internal'; + $search = new SiteSearchForm(); + if ($search->load(Yii::$app->request->get()) && $search->validate()) { +// $query1 = (new Query()) +// ->select('name, image, description, translit ') +// ->addSelect(["CONCAT('stone/view') AS url"]) +// ->where(['like','name',$search->string]) +// ->from('{{%stone}}'); +// +// $query2 = (new Query()) +// ->select('name, image, description, translit ') +// ->addSelect(["CONCAT('goods/one-item') AS url"]) +// ->where(['like','name',$search->string]) +// ->from('{{%goods}}'); +// +// $dataProvider = new ArrayDataProvider([ +// 'allModels' => $query1->union($query2)->all(), +// 'pagination' => [ +// 'pageSize' => 6, +// ], +// +// ]); + $dataProvider = array(); + + return $this->render('search', [ + + 'dataProvider' => $dataProvider, + ]); + + + } + } + /** * Displays homepage. * diff --git a/frontend/models/SiteSearchForm.php b/frontend/models/SiteSearchForm.php new file mode 100644 index 0000000..2fa4f53 --- /dev/null +++ b/frontend/models/SiteSearchForm.php @@ -0,0 +1,26 @@ +' + - (item.vinvin ? '' + escape(item.vinvin) + '' : '')+ - (item.vin_number ? '' + escape(item.vin_number) + '' : '') + - ''; - }, - option: function(item, escape) { - var label = item.vinvin || item.vin_number; - var caption = item.vin ? item.vin_number : null; - return '
' + - '' + escape(label) + '' + - (caption ? '' + escape(caption) + '' : '') + - '
'; - } - }, - createFilter: function(input) { - var match, regex; - - // email@address.com - regex = new RegExp('^' + REGEX_EMAIL + '$', 'i'); - match = input.match(regex); - if (match) return !this.options.hasOwnProperty(match[0]); - - // name - regex = new RegExp('^([^<]*)\<' + REGEX_EMAIL + '\>$', 'i'); - match = input.match(regex); - if (match) return !this.options.hasOwnProperty(match[2]); - - return false; - }, - create: function(input) { - if ((new RegExp('^' + REGEX_EMAIL + '$', 'i')).test(input)) { - return {email: input}; - } - var match = input.match(new RegExp('^([^<]*)\<' + REGEX_EMAIL + '\>$', 'i')); - if (match) { - return { - vin : match[1], - vin_number : $.trim(match[1]) - }; - } - alert('Invalid email address.'); - return false; - } -}); - -$('.input_search').selectize({ - persist: false, - maxItems: 1, - valueField: 'vinvin', - searchField: ['vinvin','vin_number'], - options: [ - {vinvin:'12345', vin_number:'12345'}, - {vinvin:'34567',vin_number:'34567'}, - {vinvin:'75434',vin_number:'75434'} - ], - render: { - item: function(item, escape) { - return '
' + - (item.vinvin ? '' + escape(item.vinvin) + '' : '')+ - (item.vin_number ? '' + escape(item.vin_number) + '' : '') + - '
'; - }, - option: function(item, escape) { - var label = item.vinvin || item.vin_number; - var caption = item.vin ? item.vin_number : null; - return '
' + - '' + escape(label) + '' + - (caption ? '' + escape(caption) + '' : '') + - '
'; - } - }, - createFilter: function(input) { - var match, regex; - - // email@address.com - regex = new RegExp('^' + REGEX_EMAIL + '$', 'i'); - match = input.match(regex); - if (match) return !this.options.hasOwnProperty(match[0]); - - // name - regex = new RegExp('^([^<]*)\<' + REGEX_EMAIL + '\>$', 'i'); - match = input.match(regex); - if (match) return !this.options.hasOwnProperty(match[2]); - - return false; - }, - create: function(input) { - if ((new RegExp('^' + REGEX_EMAIL + '$', 'i')).test(input)) { - return {email: input}; - } - var match = input.match(new RegExp('^([^<]*)\<' + REGEX_EMAIL + '\>$', 'i')); - if (match) { - return { - vin : match[1], - vin_number : $.trim(match[1]) - }; - } - alert('Invalid email address.'); - return false; - } -}); - -$('.input_search1').selectize({ - persist: false, - maxItems: 1, - valueField: 'vinvin', - searchField: ['vinvin','vin_number'], - options: [ - {vinvin:'12345', vin_number:'12345'}, - {vinvin:'34567',vin_number:'34567'}, - {vinvin:'75434',vin_number:'75434'} - ], - render: { - item: function(item, escape) { - return '
' + - (item.vinvin ? '' + escape(item.vinvin) + '' : '')+ - (item.vin_number ? '' + escape(item.vin_number) + '' : '') + - '
'; - }, - option: function(item, escape) { - var label = item.vinvin || item.vin_number; - var caption = item.vin ? item.vin_number : null; - return '
' + - '' + escape(label) + '' + - (caption ? '' + escape(caption) + '' : '') + - '
'; - } - }, - createFilter: function(input) { - var match, regex; - - // email@address.com - regex = new RegExp('^' + REGEX_EMAIL + '$', 'i'); - match = input.match(regex); - if (match) return !this.options.hasOwnProperty(match[0]); - - // name - regex = new RegExp('^([^<]*)\<' + REGEX_EMAIL + '\>$', 'i'); - match = input.match(regex); - if (match) return !this.options.hasOwnProperty(match[2]); - - return false; - }, - create: function(input) { - if ((new RegExp('^' + REGEX_EMAIL + '$', 'i')).test(input)) { - return {email: input}; - } - var match = input.match(new RegExp('^([^<]*)\<' + REGEX_EMAIL + '\>$', 'i')); - if (match) { - return { - vin : match[1], - vin_number : $.trim(match[1]) - }; - } - alert('Invalid email address.'); - return false; - } -}); +// +// +//$('#number').selectize({ +// persist: false, +// maxItems: 1, +// valueField: 'vinvin', +// searchField: ['vinvin','vin_number'], +// options: [ +// {vinvin:'12345', vin_number:'12345'}, +// {vinvin:'34567',vin_number:'34567'}, +// {vinvin:'75434',vin_number:'75434'} +// ], +// render: { +// item: function(item, escape) { +// return '
' + +// (item.vinvin ? '' + escape(item.vinvin) + '' : '')+ +// (item.vin_number ? '' + escape(item.vin_number) + '' : '') + +// '
'; +// }, +// option: function(item, escape) { +// var label = item.vinvin || item.vin_number; +// var caption = item.vin ? item.vin_number : null; +// return '
' + +// '' + escape(label) + '' + +// (caption ? '' + escape(caption) + '' : '') + +// '
'; +// } +// }, +// createFilter: function(input) { +// var match, regex; +// +// // email@address.com +// regex = new RegExp('^' + REGEX_EMAIL + '$', 'i'); +// match = input.match(regex); +// if (match) return !this.options.hasOwnProperty(match[0]); +// +// // name +// regex = new RegExp('^([^<]*)\<' + REGEX_EMAIL + '\>$', 'i'); +// match = input.match(regex); +// if (match) return !this.options.hasOwnProperty(match[2]); +// +// return false; +// }, +// create: function(input) { +// if ((new RegExp('^' + REGEX_EMAIL + '$', 'i')).test(input)) { +// return {email: input}; +// } +// var match = input.match(new RegExp('^([^<]*)\<' + REGEX_EMAIL + '\>$', 'i')); +// if (match) { +// return { +// vin : match[1], +// vin_number : $.trim(match[1]) +// }; +// } +// alert('Invalid email address.'); +// return false; +// } +//}); + +//$('.input_search').selectize({ +// persist: false, +// maxItems: 1, +// valueField: 'vinvin', +// searchField: ['vinvin','vin_number'], +// options: [ +// {vinvin:'12345', vin_number:'12345'}, +// {vinvin:'34567',vin_number:'34567'}, +// {vinvin:'75434',vin_number:'75434'} +// ], +// render: { +// item: function(item, escape) { +// return '
' + +// (item.vinvin ? '' + escape(item.vinvin) + '' : '')+ +// (item.vin_number ? '' + escape(item.vin_number) + '' : '') + +// '
'; +// }, +// option: function(item, escape) { +// var label = item.vinvin || item.vin_number; +// var caption = item.vin ? item.vin_number : null; +// return '
' + +// '' + escape(label) + '' + +// (caption ? '' + escape(caption) + '' : '') + +// '
'; +// } +// }, +// createFilter: function(input) { +// var match, regex; +// +// // email@address.com +// regex = new RegExp('^' + REGEX_EMAIL + '$', 'i'); +// match = input.match(regex); +// if (match) return !this.options.hasOwnProperty(match[0]); +// +// // name +// regex = new RegExp('^([^<]*)\<' + REGEX_EMAIL + '\>$', 'i'); +// match = input.match(regex); +// if (match) return !this.options.hasOwnProperty(match[2]); +// +// return false; +// }, +// create: function(input) { +// if ((new RegExp('^' + REGEX_EMAIL + '$', 'i')).test(input)) { +// return {email: input}; +// } +// var match = input.match(new RegExp('^([^<]*)\<' + REGEX_EMAIL + '\>$', 'i')); +// if (match) { +// return { +// vin : match[1], +// vin_number : $.trim(match[1]) +// }; +// } +// alert('Invalid email address.'); +// return false; +// } +//}); +// +//$('.input_search1').selectize({ +// persist: false, +// maxItems: 1, +// valueField: 'vinvin', +// searchField: ['vinvin','vin_number'], +// options: [ +// {vinvin:'12345', vin_number:'12345'}, +// {vinvin:'34567',vin_number:'34567'}, +// {vinvin:'75434',vin_number:'75434'} +// ], +// render: { +// item: function(item, escape) { +// return '
' + +// (item.vinvin ? '' + escape(item.vinvin) + '' : '')+ +// (item.vin_number ? '' + escape(item.vin_number) + '' : '') + +// '
'; +// }, +// option: function(item, escape) { +// var label = item.vinvin || item.vin_number; +// var caption = item.vin ? item.vin_number : null; +// return '
' + +// '' + escape(label) + '' + +// (caption ? '' + escape(caption) + '' : '') + +// '
'; +// } +// }, +// createFilter: function(input) { +// var match, regex; +// +// // email@address.com +// regex = new RegExp('^' + REGEX_EMAIL + '$', 'i'); +// match = input.match(regex); +// if (match) return !this.options.hasOwnProperty(match[0]); +// +// // name +// regex = new RegExp('^([^<]*)\<' + REGEX_EMAIL + '\>$', 'i'); +// match = input.match(regex); +// if (match) return !this.options.hasOwnProperty(match[2]); +// +// return false; +// }, +// create: function(input) { +// if ((new RegExp('^' + REGEX_EMAIL + '$', 'i')).test(input)) { +// return {email: input}; +// } +// var match = input.match(new RegExp('^([^<]*)\<' + REGEX_EMAIL + '\>$', 'i')); +// if (match) { +// return { +// vin : match[1], +// vin_number : $.trim(match[1]) +// }; +// } +// alert('Invalid email address.'); +// return false; +// } +//}); $('#number1').selectize({ persist: false, -- libgit2 0.21.4