Commit f7aa643c74d000975961b3bde6de15cefca39d91
1 parent
30c37ebf
21.03.16 Versrka
Showing
12 changed files
with
200 additions
and
242 deletions
Show diff stats
.gitignore
| @@ -35,4 +35,6 @@ common/config/params-local.php | @@ -35,4 +35,6 @@ common/config/params-local.php | ||
| 35 | backend/config/main-local.php | 35 | backend/config/main-local.php |
| 36 | backend/config/params-local.php | 36 | backend/config/params-local.php |
| 37 | frontend/config/main-local.php | 37 | frontend/config/main-local.php |
| 38 | -frontend/config/params-local.php | ||
| 39 | \ No newline at end of file | 38 | \ No newline at end of file |
| 39 | +frontend/config/params-local.php | ||
| 40 | +frontend/views/вертска | ||
| 41 | +frontend/web/css/node_modules | ||
| 40 | \ No newline at end of file | 42 | \ No newline at end of file |
common/models/Customers.php
| @@ -42,7 +42,6 @@ class Customers extends User | @@ -42,7 +42,6 @@ class Customers extends User | ||
| 42 | [['email'], 'unique'], | 42 | [['email'], 'unique'], |
| 43 | [['password_reset_token'], 'unique'], | 43 | [['password_reset_token'], 'unique'], |
| 44 | [['phone'], 'unique'], | 44 | [['phone'], 'unique'], |
| 45 | - [['username'], 'unique'], | ||
| 46 | ]; | 45 | ]; |
| 47 | } | 46 | } |
| 48 | 47 |
common/widgets/BasketModal.php
| 1 | <?php | 1 | <?php |
| 2 | namespace common\widgets; | 2 | namespace common\widgets; |
| 3 | -use common\models\Fields; | 3 | + |
| 4 | use yii\base\Widget; | 4 | use yii\base\Widget; |
| 5 | -use yii\helpers\ArrayHelper; | ||
| 6 | 5 | ||
| 7 | class BasketModal extends Widget | 6 | class BasketModal extends Widget |
| 8 | { | 7 | { |
| 9 | - public $item_id; | ||
| 10 | - public $model; | ||
| 11 | - public $template; | ||
| 12 | - public $language; | ||
| 13 | 8 | ||
| 14 | public function init(){ | 9 | public function init(){ |
| 15 | 10 | ||
| @@ -20,29 +15,15 @@ class BasketModal extends Widget | @@ -20,29 +15,15 @@ class BasketModal extends Widget | ||
| 20 | 15 | ||
| 21 | public function run() | 16 | public function run() |
| 22 | { | 17 | { |
| 23 | - if($this->item_id && $this->model){ | ||
| 24 | - $widgetData = $this->findModel(); | ||
| 25 | - } else { | ||
| 26 | - $widgetData= [new Fields()]; | 18 | + $sessionData = \Yii::$app->session->get('order'); |
| 19 | + $count = count($sessionData); | ||
| 20 | + if(is_array($sessionData) && !empty($sessionData)){ | ||
| 21 | + return $this->render('busket_modal',[ | ||
| 22 | + 'items'=>$sessionData, | ||
| 23 | + 'count' => $count | ||
| 24 | + ]); | ||
| 27 | } | 25 | } |
| 28 | 26 | ||
| 29 | - return $this->render($this->template.'_field',['model'=>ArrayHelper::toArray($widgetData)]); | ||
| 30 | } | 27 | } |
| 31 | 28 | ||
| 32 | - protected function findModel() | ||
| 33 | - { | ||
| 34 | - | ||
| 35 | - if (($model = Fields::find()->where([ | ||
| 36 | - 'table_id'=>$this->item_id, | ||
| 37 | - 'table_name'=>$this->model, | ||
| 38 | - 'field_type'=>$this->template, | ||
| 39 | - 'language'=>$this->language, | ||
| 40 | - ])->all())) { | ||
| 41 | - | ||
| 42 | - return $model; | ||
| 43 | - | ||
| 44 | - } else { | ||
| 45 | - return [new Fields()]; | ||
| 46 | - } | ||
| 47 | - } | ||
| 48 | } | 29 | } |
| 49 | \ No newline at end of file | 30 | \ No newline at end of file |
common/widgets/views/busket_modal.php
| 1 | <?php | 1 | <?php |
| 2 | /** | 2 | /** |
| 3 | - * Created by PhpStorm. | ||
| 4 | - * User: vitaliy | ||
| 5 | - * Date: 23.03.16 | ||
| 6 | - * Time: 0:25 | ||
| 7 | - */ | ||
| 8 | \ No newline at end of file | 3 | \ No newline at end of file |
| 4 | + * @var $items array data from session | ||
| 5 | + * @var $count integer count items in basket | ||
| 6 | + */ | ||
| 7 | + | ||
| 8 | +?> | ||
| 9 | +<div class="order_list"> | ||
| 10 | + <ul> | ||
| 11 | + <?php foreach($items as $item){ ?> | ||
| 12 | + <li> | ||
| 13 | + <div class="order_list_li" data-id="1"> | ||
| 14 | + <div class="delete_item_btn"><i class="fa fa-times"></i></div> | ||
| 15 | + <div class="little_img"> | ||
| 16 | + <img src="/images/items/01.jpg" alt=""> | ||
| 17 | + </div> | ||
| 18 | + <div class="name_and_code"> | ||
| 19 | + <span class="name">Штукатурка гипсовая Кнауф Ротбанд 30 кг белая</span> | ||
| 20 | + <span class="code"> Код: 45885-01016049</span> | ||
| 21 | + </div> | ||
| 22 | + <div class="count_block_wrap"> | ||
| 23 | + <div class="count_block"> | ||
| 24 | + <input type="text" name="" class="form-control buy_one_item" value="1"> | ||
| 25 | + <div class="count_buttons"> | ||
| 26 | + <div class="button_plus">+</div> | ||
| 27 | + <div class="button_minus">-</div> | ||
| 28 | + </div> | ||
| 29 | + </div> | ||
| 30 | + <div class="price">102.05 <span class="price_text">грн.</span></div> | ||
| 31 | + </div> | ||
| 32 | + </div> | ||
| 33 | + </li> | ||
| 34 | + <?php } ?> | ||
| 35 | + | ||
| 36 | + </ul> | ||
| 37 | + <hr> | ||
| 38 | + <div class="all_price"> | ||
| 39 | + <p>Всего товаров: <span class="all_count"><?= $count ?></span></p> | ||
| 40 | + <p>Сумма: <span class="all_price">306.15</span> грн.</p> | ||
| 41 | + </div> | ||
| 42 | + <div class="busket_bottom_btn"> | ||
| 43 | + <a href="#">продолжить покупки</a> | ||
| 44 | + <button>оформить заказ</button> | ||
| 45 | + </div> | ||
| 46 | +</div> |
console/migrations/m160321_232402_orders.php
| @@ -13,7 +13,8 @@ class m160321_232402_orders extends Migration | @@ -13,7 +13,8 @@ class m160321_232402_orders extends Migration | ||
| 13 | } | 13 | } |
| 14 | 14 | ||
| 15 | $this->createTable('{{%orders}}', [ | 15 | $this->createTable('{{%orders}}', [ |
| 16 | - 'id' => $this->primaryKey(), | 16 | + 'order_id' => $this->primaryKey(), |
| 17 | + 'customer_id' => $this->integer(), | ||
| 17 | 'name' => $this->string()->notNull(), | 18 | 'name' => $this->string()->notNull(), |
| 18 | 'email' => $this->string()->notNull(), | 19 | 'email' => $this->string()->notNull(), |
| 19 | 'phone' => $this->string(32)->notNull(), | 20 | 'phone' => $this->string(32)->notNull(), |
| @@ -24,11 +25,25 @@ class m160321_232402_orders extends Migration | @@ -24,11 +25,25 @@ class m160321_232402_orders extends Migration | ||
| 24 | 'created_at' => $this->integer()->notNull(), | 25 | 'created_at' => $this->integer()->notNull(), |
| 25 | 'updated_at' => $this->integer()->notNull(), | 26 | 'updated_at' => $this->integer()->notNull(), |
| 26 | ], $tableOptions); | 27 | ], $tableOptions); |
| 28 | + | ||
| 29 | + $this->createTable('{{%order_items}}', [ | ||
| 30 | + 'order_items_id' => $this->primaryKey(), | ||
| 31 | + 'order_id' => $this->integer(), | ||
| 32 | + 'item_id' => $this->integer(), | ||
| 33 | + 'item_count' => $this->integer(), | ||
| 34 | + 'price' => $this->float(), | ||
| 35 | + ], $tableOptions); | ||
| 36 | + | ||
| 37 | + $this->addForeignKey('orders_items_fk', '{{%order_items}}', 'order_id', '{{%orders}}', 'order_id', 'CASCADE', 'CASCADE'); | ||
| 38 | + $this->addForeignKey('orders_items_items_fk', '{{%order_items}}', 'item_id', '{{%product}}', 'product_id', 'RESTRICT', 'RESTRICT'); | ||
| 27 | } | 39 | } |
| 28 | 40 | ||
| 29 | public function down() | 41 | public function down() |
| 30 | { | 42 | { |
| 43 | + $this->dropForeignKey('orders_items_fk', '{{%order_items}}'); | ||
| 44 | + $this->dropForeignKey('orders_items_items_fk', '{{%order_items}}'); | ||
| 31 | $this->dropTable('{{%orders}}'); | 45 | $this->dropTable('{{%orders}}'); |
| 46 | + $this->dropTable('{{%order_items}}'); | ||
| 32 | } | 47 | } |
| 33 | 48 | ||
| 34 | } | 49 | } |
frontend/controllers/OrdersController.php
| @@ -2,6 +2,7 @@ | @@ -2,6 +2,7 @@ | ||
| 2 | 2 | ||
| 3 | namespace frontend\controllers; | 3 | namespace frontend\controllers; |
| 4 | 4 | ||
| 5 | +use common\widgets\BasketModal; | ||
| 5 | use Yii; | 6 | use Yii; |
| 6 | 7 | ||
| 7 | use yii\web\Controller; | 8 | use yii\web\Controller; |
| @@ -10,10 +11,21 @@ use yii\data\ArrayDataProvider; | @@ -10,10 +11,21 @@ use yii\data\ArrayDataProvider; | ||
| 10 | /** | 11 | /** |
| 11 | * OrderController implements the CRUD actions for Order model. | 12 | * OrderController implements the CRUD actions for Order model. |
| 12 | */ | 13 | */ |
| 13 | -class OrderыController extends Controller | 14 | +class OrdersController extends Controller |
| 14 | { | 15 | { |
| 15 | 16 | ||
| 16 | - public $layout='/column2'; | 17 | + |
| 18 | + /** | ||
| 19 | + * @inheritdoc | ||
| 20 | + */ | ||
| 21 | + public function beforeAction($action) | ||
| 22 | + { | ||
| 23 | + if ($action->id == 'buy-items' || $action->id == 'delete') { | ||
| 24 | + Yii::$app->controller->enableCsrfValidation = false; | ||
| 25 | + } | ||
| 26 | + | ||
| 27 | + return true; | ||
| 28 | + } | ||
| 17 | 29 | ||
| 18 | /** | 30 | /** |
| 19 | * Lists all Order models. | 31 | * Lists all Order models. |
| @@ -105,7 +117,7 @@ class OrderыController extends Controller | @@ -105,7 +117,7 @@ class OrderыController extends Controller | ||
| 105 | $array[$data['id']] = $data; | 117 | $array[$data['id']] = $data; |
| 106 | Yii::$app->session->set('order', $array ); | 118 | Yii::$app->session->set('order', $array ); |
| 107 | } | 119 | } |
| 108 | - echo count(Yii::$app->session->get('order')); | 120 | + echo BasketModal::widget([]); |
| 109 | 121 | ||
| 110 | } | 122 | } |
| 111 | /** | 123 | /** |
frontend/views/layouts/main.php
| @@ -4,6 +4,7 @@ | @@ -4,6 +4,7 @@ | ||
| 4 | /* @var $content string */ | 4 | /* @var $content string */ |
| 5 | 5 | ||
| 6 | 6 | ||
| 7 | +use common\widgets\BasketModal; | ||
| 7 | use frontend\assets\AppAsset; | 8 | use frontend\assets\AppAsset; |
| 8 | use yii\helpers\Html; | 9 | use yii\helpers\Html; |
| 9 | use yii\helpers\Url; | 10 | use yii\helpers\Url; |
| @@ -79,84 +80,8 @@ AppAsset::register($this); | @@ -79,84 +80,8 @@ AppAsset::register($this); | ||
| 79 | <div class="busket_modal_header"><!-- MODAL BUSKET WINDOW(HEAD) START --> | 80 | <div class="busket_modal_header"><!-- MODAL BUSKET WINDOW(HEAD) START --> |
| 80 | <div class="m_a"> | 81 | <div class="m_a"> |
| 81 | <div class="busket_modal_02"> | 82 | <div class="busket_modal_02"> |
| 82 | - <div class="order_list"> | ||
| 83 | - <ul> | ||
| 84 | - <li> | ||
| 85 | - <div class="order_list_li "> | ||
| 86 | - <div class="delete_item_btn"><i class="fa fa-times"></i></div> | ||
| 87 | - <div class="little_img"> | ||
| 88 | - <img src="/images/items/01.jpg" alt=""> | ||
| 89 | - </div> | ||
| 90 | - <div class="name_and_code"> | ||
| 91 | - <span class="name">Штукатурка гипсовая Кнауф Ротбанд 30 кг белая</span> | ||
| 92 | - <span class="code"> Код: 45885-01016049</span> | ||
| 93 | - </div> | ||
| 94 | - <div class="count_block_wrap"> | ||
| 95 | - <div class="count_block"> | ||
| 96 | - <div class="count_number">1</div> | ||
| 97 | - <div class="count_buttons"> | ||
| 98 | - <div class="button_plus">+</div> | ||
| 99 | - <div class="button_minus">-</div> | ||
| 100 | - </div> | ||
| 101 | - </div> | ||
| 102 | - <div class="price">102.05 <span class="price_text">грн.</span></div> | ||
| 103 | - </div> | ||
| 104 | - </div> | ||
| 105 | - </li> | ||
| 106 | - <li> | ||
| 107 | - <div class="order_list_li "> | ||
| 108 | - <div class="delete_item_btn"><i class="fa fa-times"></i></div> | ||
| 109 | - <div class="little_img"> | ||
| 110 | - <img src="/images/items/01.jpg" alt=""> | ||
| 111 | - </div> | ||
| 112 | - <div class="name_and_code"> | ||
| 113 | - <span class="name">Штукатурка гипсовая Кнауф Ротбанд 30 кг белая</span> | ||
| 114 | - <span class="code"> Код: 45885-01016049</span> | ||
| 115 | - </div> | ||
| 116 | - <div class="count_block_wrap"> | ||
| 117 | - <div class="count_block"> | ||
| 118 | - <div class="count_number">1</div> | ||
| 119 | - <div class="count_buttons"> | ||
| 120 | - <div class="button_plus">+</div> | ||
| 121 | - <div class="button_minus">-</div> | ||
| 122 | - </div> | ||
| 123 | - </div> | ||
| 124 | - <div class="price">102.05 <span class="price_text">грн.</span></div> | ||
| 125 | - </div> | ||
| 126 | - </div> | ||
| 127 | - </li> | ||
| 128 | - <li> | ||
| 129 | - <div class="order_list_li "> | ||
| 130 | - <div class="delete_item_btn"><i class="fa fa-times"></i></div> | ||
| 131 | - <div class="little_img"> | ||
| 132 | - <img src="/images/items/01.jpg" alt=""> | ||
| 133 | - </div> | ||
| 134 | - <div class="name_and_code"> | ||
| 135 | - <span class="name">Штукатурка гипсовая Кнауф Ротбанд 30 кг белая</span> | ||
| 136 | - <span class="code"> Код: 45885-01016049</span> | ||
| 137 | - </div> | ||
| 138 | - <div class="count_block_wrap"> | ||
| 139 | - <div class="count_block"> | ||
| 140 | - <div class="count_number">1</div> | ||
| 141 | - <div class="count_buttons"> | ||
| 142 | - <div class="button_plus">+</div> | ||
| 143 | - <div class="button_minus">-</div> | ||
| 144 | - </div> | ||
| 145 | - </div> | ||
| 146 | - <div class="price">102.05 <span class="price_text">грн.</span></div> | ||
| 147 | - </div> | ||
| 148 | - </div> | ||
| 149 | - </li> | ||
| 150 | - </ul> | ||
| 151 | - <hr> | ||
| 152 | - <div class="all_price"> | ||
| 153 | - <p>Всего товаров: <span class="all_count">3</span></p> | ||
| 154 | - <p>Сумма: <span class="all_price">306.15</span> грн.</p> | ||
| 155 | - </div> | ||
| 156 | - <div class="busket_bottom_btn"> | ||
| 157 | - <a href="#">продолжить покупки</a> | ||
| 158 | - <button>оформить заказ</button> | ||
| 159 | - </div> | 83 | + <div class="basket_result"> |
| 84 | + <?= BasketModal::widget([]); ?> | ||
| 160 | </div> | 85 | </div> |
| 161 | </div> | 86 | </div> |
| 162 | </div> | 87 | </div> |
| @@ -257,87 +182,9 @@ AppAsset::register($this); | @@ -257,87 +182,9 @@ AppAsset::register($this); | ||
| 257 | <div class="m_a"> | 182 | <div class="m_a"> |
| 258 | <div class="busket_modal_01"> | 183 | <div class="busket_modal_01"> |
| 259 | <div class="modal_close_btn"></div> | 184 | <div class="modal_close_btn"></div> |
| 260 | - <div class="order_list"> | ||
| 261 | - <h3>товар добавлен в корзину</h3> | ||
| 262 | - <ul> | ||
| 263 | - <li> | ||
| 264 | - <div class="order_list_li "> | ||
| 265 | - <div class="delete_item_btn"><i class="fa fa-times"></i></div> | ||
| 266 | - <div class="little_img"> | ||
| 267 | - <img src="/images/items/01.jpg" alt=""> | ||
| 268 | - </div> | ||
| 269 | - <div class="name_and_code"> | ||
| 270 | - <span class="name">Штукатурка гипсовая Кнауф Ротбанд 30 кг белая</span> | ||
| 271 | - <span class="code"> Код: 45885-01016049</span> | ||
| 272 | - </div> | ||
| 273 | - <div class="count_block_wrap"> | ||
| 274 | - <div class="count_block"> | ||
| 275 | - <div class="count_number">1</div> | ||
| 276 | - <div class="count_buttons"> | ||
| 277 | - <div class="button_plus">+</div> | ||
| 278 | - <div class="button_minus">-</div> | ||
| 279 | - </div> | ||
| 280 | - </div> | ||
| 281 | - <div class="price">102.05 <span class="price_text">грн.</span></div> | ||
| 282 | - </div> | ||
| 283 | - </div> | ||
| 284 | - </li> | ||
| 285 | - <li> | ||
| 286 | - <div class="order_list_li "> | ||
| 287 | - <div class="delete_item_btn"><i class="fa fa-times"></i></div> | ||
| 288 | - <div class="little_img"> | ||
| 289 | - <img src="/images/items/01.jpg" alt=""> | ||
| 290 | - </div> | ||
| 291 | - <div class="name_and_code"> | ||
| 292 | - <span class="name">Штукатурка гипсовая Кнауф Ротбанд 30 кг белая</span> | ||
| 293 | - <span class="code"> Код: 45885-01016049</span> | ||
| 294 | - </div> | ||
| 295 | - <div class="count_block_wrap"> | ||
| 296 | - <div class="count_block"> | ||
| 297 | - <div class="count_number">1</div> | ||
| 298 | - <div class="count_buttons"> | ||
| 299 | - <div class="button_plus">+</div> | ||
| 300 | - <div class="button_minus">-</div> | ||
| 301 | - </div> | ||
| 302 | - </div> | ||
| 303 | - <div class="price">102.05 <span class="price_text">грн.</span></div> | ||
| 304 | - </div> | ||
| 305 | - </div> | ||
| 306 | - </li> | ||
| 307 | - <li> | ||
| 308 | - <div class="order_list_li "> | ||
| 309 | - <div class="delete_item_btn"><i class="fa fa-times"></i></div> | ||
| 310 | - <div class="little_img"> | ||
| 311 | - <img src="/images/items/01.jpg" alt=""> | ||
| 312 | - </div> | ||
| 313 | - <div class="name_and_code"> | ||
| 314 | - <span class="name">Штукатурка гипсовая Кнауф Ротбанд 30 кг белая</span> | ||
| 315 | - <span class="code"> Код: 45885-01016049</span> | ||
| 316 | - </div> | ||
| 317 | - <div class="count_block_wrap"> | ||
| 318 | - <div class="count_block"> | ||
| 319 | - <div class="count_number">1</div> | ||
| 320 | - <div class="count_buttons"> | ||
| 321 | - <div class="button_plus">+</div> | ||
| 322 | - <div class="button_minus">-</div> | ||
| 323 | - </div> | ||
| 324 | - </div> | ||
| 325 | - <div class="price">102.05 <span class="price_text">грн.</span></div> | ||
| 326 | - </div> | ||
| 327 | - </div> | ||
| 328 | - </li> | ||
| 329 | - </ul> | ||
| 330 | - <hr> | ||
| 331 | - <div class="all_price"> | ||
| 332 | - <p>Всего товаров: <span class="all_count">3</span></p> | ||
| 333 | - <p>Сумма: <span class="all_price">306.15</span> грн.</p> | ||
| 334 | - </div> | ||
| 335 | - <div class="busket_bottom_btn"> | ||
| 336 | - <a href="#">продолжить покупки</a> | ||
| 337 | - <button>оформить заказ</button> | ||
| 338 | - </div> | 185 | + <div class="basket_result"> |
| 186 | + <?= BasketModal::widget([]); ?> | ||
| 339 | </div> | 187 | </div> |
| 340 | - | ||
| 341 | </div> | 188 | </div> |
| 342 | </div> | 189 | </div> |
| 343 | </div> <!-- MODAL BUSKET WINDOW END --> | 190 | </div> <!-- MODAL BUSKET WINDOW END --> |
frontend/views/site/login.php
| @@ -19,7 +19,7 @@ $this->params['breadcrumbs'][] = $this->title; | @@ -19,7 +19,7 @@ $this->params['breadcrumbs'][] = $this->title; | ||
| 19 | <div class="col-lg-5"> | 19 | <div class="col-lg-5"> |
| 20 | <?php $form = ActiveForm::begin(['id' => 'login-form']); ?> | 20 | <?php $form = ActiveForm::begin(['id' => 'login-form']); ?> |
| 21 | 21 | ||
| 22 | - <?= $form->field($model, 'username')->textInput(['autofocus' => true]) ?> | 22 | + <?= $form->field($model, 'email')->textInput(['autofocus' => true]) ?> |
| 23 | 23 | ||
| 24 | <?= $form->field($model, 'password')->passwordInput() ?> | 24 | <?= $form->field($model, 'password')->passwordInput() ?> |
| 25 | 25 |
frontend/web/css/concat_all.css
| @@ -2494,7 +2494,7 @@ span.red { | @@ -2494,7 +2494,7 @@ span.red { | ||
| 2494 | .busket_modal_wrapper .busket_modal_01 .order_list .count_block .count_buttons { | 2494 | .busket_modal_wrapper .busket_modal_01 .order_list .count_block .count_buttons { |
| 2495 | position: relative; | 2495 | position: relative; |
| 2496 | /*top: 4px;*/ | 2496 | /*top: 4px;*/ |
| 2497 | - right: 6px; | 2497 | + right: 16px; |
| 2498 | display: inline-block; | 2498 | display: inline-block; |
| 2499 | vertical-align: bottom; | 2499 | vertical-align: bottom; |
| 2500 | } | 2500 | } |
| @@ -2680,7 +2680,7 @@ span.red { | @@ -2680,7 +2680,7 @@ span.red { | ||
| 2680 | .busket_modal_header .busket_modal_02 .order_list .count_block .count_buttons { | 2680 | .busket_modal_header .busket_modal_02 .order_list .count_block .count_buttons { |
| 2681 | position: relative; | 2681 | position: relative; |
| 2682 | /*top: 4px;*/ | 2682 | /*top: 4px;*/ |
| 2683 | - right: 6px; | 2683 | + right: 16px; |
| 2684 | display: inline-block; | 2684 | display: inline-block; |
| 2685 | vertical-align: bottom; | 2685 | vertical-align: bottom; |
| 2686 | } | 2686 | } |
frontend/web/css/concat_all_back.css
| @@ -2492,8 +2492,7 @@ span.red { | @@ -2492,8 +2492,7 @@ span.red { | ||
| 2492 | 2492 | ||
| 2493 | .busket_modal_wrapper .busket_modal_01 .order_list .count_block .count_buttons { | 2493 | .busket_modal_wrapper .busket_modal_01 .order_list .count_block .count_buttons { |
| 2494 | position: relative; | 2494 | position: relative; |
| 2495 | - /*top: 4px;*/ | ||
| 2496 | - right: 6px; | 2495 | + right: 16px; |
| 2497 | display: inline-block; | 2496 | display: inline-block; |
| 2498 | vertical-align: bottom; | 2497 | vertical-align: bottom; |
| 2499 | } | 2498 | } |
frontend/web/css/style.css
| @@ -1071,10 +1071,32 @@ input.error_pass{ | @@ -1071,10 +1071,32 @@ input.error_pass{ | ||
| 1071 | #loginform-rememberme{ | 1071 | #loginform-rememberme{ |
| 1072 | display: none; | 1072 | display: none; |
| 1073 | } | 1073 | } |
| 1074 | + | ||
| 1074 | .field-loginform-rememberme{ | 1075 | .field-loginform-rememberme{ |
| 1075 | display: inline; | 1076 | display: inline; |
| 1076 | color: #6aa034; | 1077 | color: #6aa034; |
| 1077 | } | 1078 | } |
| 1079 | + | ||
| 1078 | .field-loginform-rememberme label:hover{ | 1080 | .field-loginform-rememberme label:hover{ |
| 1079 | color: #517a27; | 1081 | color: #517a27; |
| 1082 | +} | ||
| 1083 | + | ||
| 1084 | +.buy_one_item { | ||
| 1085 | + display: inline-block; | ||
| 1086 | + width: 50px; | ||
| 1087 | + height: 31px; | ||
| 1088 | + vertical-align: top; | ||
| 1089 | + font-size: 17px; | ||
| 1090 | + line-height: 1; | ||
| 1091 | + padding: 0 10px 0 10px; | ||
| 1092 | + color: #555; | ||
| 1093 | + background-color: #fff; | ||
| 1094 | + background-image: none; | ||
| 1095 | + border: 1px solid #ccc; | ||
| 1096 | + border-radius: 4px; | ||
| 1097 | + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); | ||
| 1098 | + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); | ||
| 1099 | + -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s; | ||
| 1100 | + -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; | ||
| 1101 | + transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; | ||
| 1080 | } | 1102 | } |
| 1081 | \ No newline at end of file | 1103 | \ No newline at end of file |
frontend/web/js/my_scripts.js
| @@ -21,10 +21,10 @@ $(document).ready(function(){ | @@ -21,10 +21,10 @@ $(document).ready(function(){ | ||
| 21 | filter_list.on('click', function(){ | 21 | filter_list.on('click', function(){ |
| 22 | $(this).next().slideToggle(300); | 22 | $(this).next().slideToggle(300); |
| 23 | var this_img = $(this).children('img'); | 23 | var this_img = $(this).children('img'); |
| 24 | - if (this_img.attr('src') === "images/head_down.png" ) { | ||
| 25 | - this_img.attr('src', 'images/head_up.png'); | 24 | + if (this_img.attr('src') === "/images/head_down.png" ) { |
| 25 | + this_img.attr('src', '/images/head_up.png'); | ||
| 26 | } else { | 26 | } else { |
| 27 | - this_img.attr('src', 'images/head_down.png'); | 27 | + this_img.attr('src', '/images/head_down.png'); |
| 28 | }; | 28 | }; |
| 29 | }); | 29 | }); |
| 30 | 30 | ||
| @@ -85,46 +85,25 @@ $(document).ready(function(){ | @@ -85,46 +85,25 @@ $(document).ready(function(){ | ||
| 85 | // arrow left hover | 85 | // arrow left hover |
| 86 | arrow_left.hover( | 86 | arrow_left.hover( |
| 87 | function(){ | 87 | function(){ |
| 88 | - $(this).attr('src', 'images/slider_left_hover.png'); | 88 | + $(this).attr('src', '/images/slider_left_hover.png'); |
| 89 | }, function(){ | 89 | }, function(){ |
| 90 | - $(this).attr('src', 'images/slider_left.png'); | 90 | + $(this).attr('src', '/images/slider_left.png'); |
| 91 | }); | 91 | }); |
| 92 | 92 | ||
| 93 | // arrow right hover | 93 | // arrow right hover |
| 94 | arrow_right.hover( | 94 | arrow_right.hover( |
| 95 | function(){ | 95 | function(){ |
| 96 | - $(this).attr('src', 'images/slider_right_hover.png'); | 96 | + $(this).attr('src', '/images/slider_right_hover.png'); |
| 97 | }, function(){ | 97 | }, function(){ |
| 98 | - $(this).attr('src', 'images/slider_right.png'); | 98 | + $(this).attr('src', '/images/slider_right.png'); |
| 99 | }); | 99 | }); |
| 100 | 100 | ||
| 101 | // добавить в корзину - счетчик + - товар | 101 | // добавить в корзину - счетчик + - товар |
| 102 | var open_card_item_price = $('.counter').children('.price'), | 102 | var open_card_item_price = $('.counter').children('.price'), |
| 103 | - counter_plus_btn = $('.counter').find('.button_plus'), | ||
| 104 | - counter_minus_btn = $('.counter').find('.button_minus'), | ||
| 105 | counter_item_count = $('.counter').find('.count_number'), | 103 | counter_item_count = $('.counter').find('.count_number'), |
| 106 | state_price = 1*($('.counter').children('.price').html()); | 104 | state_price = 1*($('.counter').children('.price').html()); |
| 107 | 105 | ||
| 108 | 106 | ||
| 109 | - counter_plus_btn.click(function(){ | ||
| 110 | - var count = +counter_item_count.html(); | ||
| 111 | - count++; | ||
| 112 | - counter_item_count.text(count); | ||
| 113 | - | ||
| 114 | - var become = 1*($('.counter').children('.price').html()); | ||
| 115 | - var result = become + state_price; | ||
| 116 | - open_card_item_price.text(result.toFixed(2)); | ||
| 117 | - }); | ||
| 118 | - counter_minus_btn.click(function(){ | ||
| 119 | - var become = 1*($('.counter').children('.price').html()); | ||
| 120 | - var result = become - state_price; | ||
| 121 | - if(become > 0) { | ||
| 122 | - open_card_item_price.text(result.toFixed(2)); | ||
| 123 | - var count = +counter_item_count.html(); | ||
| 124 | - count--; | ||
| 125 | - counter_item_count.text(count); | ||
| 126 | - } | ||
| 127 | - }); | ||
| 128 | 107 | ||
| 129 | // активный класс для корзины | 108 | // активный класс для корзины |
| 130 | var basket_order_list = $('.order_list').find('.order_list_li'); | 109 | var basket_order_list = $('.order_list').find('.order_list_li'); |
| @@ -141,19 +120,19 @@ $(document).ready(function(){ | @@ -141,19 +120,19 @@ $(document).ready(function(){ | ||
| 141 | basket_each_count = basket_order_list.children('.how_many'); // количество каждого товара | 120 | basket_each_count = basket_order_list.children('.how_many'); // количество каждого товара |
| 142 | // console.log(basket_each_price); | 121 | // console.log(basket_each_price); |
| 143 | 122 | ||
| 144 | - function basket_all_prices() { | ||
| 145 | - var all_count = 0; | ||
| 146 | - var all_price = 0; | ||
| 147 | - for (var i = basket_each_count.length - 1; i >= 0; i--) { | ||
| 148 | - var temp = basket_each_count[i].innerHTML; | ||
| 149 | - var temp_price = basket_each_price[i].innerHTML; | ||
| 150 | - all_count += parseInt(temp); | ||
| 151 | - all_price += parseFloat(temp_price); | ||
| 152 | - }; | ||
| 153 | - basket_all_items.text(all_count); | ||
| 154 | - basket_all_price.text(all_price.toFixed(2)); | ||
| 155 | - } | ||
| 156 | - basket_all_prices(); | 123 | + //function basket_all_prices() { |
| 124 | + // var all_count = 0; | ||
| 125 | + // var all_price = 0; | ||
| 126 | + // for (var i = basket_each_count.length - 1; i >= 0; i--) { | ||
| 127 | + // var temp = basket_each_count[i].innerHTML; | ||
| 128 | + // var temp_price = basket_each_price[i].innerHTML; | ||
| 129 | + // all_count += parseInt(temp); | ||
| 130 | + // all_price += parseFloat(temp_price); | ||
| 131 | + // }; | ||
| 132 | + // basket_all_items.text(all_count); | ||
| 133 | + // basket_all_price.text(all_price.toFixed(2)); | ||
| 134 | + //} | ||
| 135 | + //basket_all_prices(); | ||
| 157 | 136 | ||
| 158 | 137 | ||
| 159 | // modal widows | 138 | // modal widows |
| @@ -293,6 +272,8 @@ $(document).ready(function(){ | @@ -293,6 +272,8 @@ $(document).ready(function(){ | ||
| 293 | log_wrap.fadeOut(200); | 272 | log_wrap.fadeOut(200); |
| 294 | forgot_pass_wrap.fadeOut(200); | 273 | forgot_pass_wrap.fadeOut(200); |
| 295 | forgot_pass_success_wrap.fadeOut(200); | 274 | forgot_pass_success_wrap.fadeOut(200); |
| 275 | + forgot_pass_success_wrap.fadeOut(200); | ||
| 276 | + busket_modal_wrapper.fadeOut(200); | ||
| 296 | callback_wrap.fadeOut(200); | 277 | callback_wrap.fadeOut(200); |
| 297 | }); | 278 | }); |
| 298 | $(".close_modal").click(function(){ | 279 | $(".close_modal").click(function(){ |
| @@ -499,6 +480,68 @@ $(document).ready(function(){ | @@ -499,6 +480,68 @@ $(document).ready(function(){ | ||
| 499 | all_modal_moves(); | 480 | all_modal_moves(); |
| 500 | 481 | ||
| 501 | 482 | ||
| 483 | + function countPrise(block){ | ||
| 484 | + var total_price = 0; | ||
| 485 | + block.find('.price').each(function(){ | ||
| 486 | + total_price += +$(this).html(); | ||
| 487 | + }); | ||
| 488 | + $('.total_price').html(total_price); | ||
| 489 | + $("input[name='OrderForm[total_price]']").val(total_price); | ||
| 490 | + } | ||
| 491 | + | ||
| 492 | + | ||
| 493 | + $('.item').on('click', '.basket_add_but', function(e){ | ||
| 494 | + var id = $(this).parents('.item').data('id'); | ||
| 495 | + console.log(id); | ||
| 496 | + $.post( "/orders/buy-items", {id: id}, function( data ) { | ||
| 497 | + $('.basket_result').each(function(){ | ||
| 498 | + $(this).html(data) | ||
| 499 | + }); | ||
| 500 | + }); | ||
| 501 | + | ||
| 502 | + }); | ||
| 503 | + | ||
| 504 | + $('.basket_result').on('click', '.delete_item_btn', function(){ | ||
| 505 | + var id = $(this).parents('.order_list_li').data('id'); | ||
| 506 | + $(this).parents('.order_list_li').remove(); | ||
| 507 | + $.post( "/orders/delete", {id: id}, function( data ) { | ||
| 508 | + }); | ||
| 509 | + countPrise(); | ||
| 510 | + }); | ||
| 511 | + | ||
| 512 | + $('.basket_result').on('click', '.button_minus', function(){ | ||
| 513 | + var input = $(this).parents('.order_list_li ').find('input'); | ||
| 514 | + var number = input.val(); | ||
| 515 | + if(number > 1){ | ||
| 516 | + number--; | ||
| 517 | + input.val(number); | ||
| 518 | + var price = $(this).parents('.goods_data').find('.item_prise_block').find('span').html(); | ||
| 519 | + var new_price = number * price; | ||
| 520 | + $(this).parents('.goods_data').find('.item_prise_total_block').find('span').html(new_price); | ||
| 521 | + } | ||
| 522 | + countPrise(); | ||
| 523 | + }); | ||
| 524 | + | ||
| 525 | + | ||
| 526 | + $('.basket_result').on('click', '.button_plus', function(){ | ||
| 527 | + var input = $(this).parents('.order_list_li ').find('input'); | ||
| 528 | + var number = input.val(); | ||
| 529 | + number++; | ||
| 530 | + input.val(number); | ||
| 531 | + var price = $(this).parents('.goods_data').find('.item_prise_block').find('span').html(); | ||
| 532 | + var new_price = number * price; | ||
| 533 | + $(this).parents('.goods_data').find('.item_prise_total_block').find('span').html(new_price); | ||
| 534 | + countPrise(); | ||
| 535 | + }); | ||
| 536 | + | ||
| 537 | + $('.basket_result').on('change', '.buy_one_item', function(){ | ||
| 538 | + var num = $(this).val(); | ||
| 539 | + var priceBlock = $(this).parents('.order_list_li').find('.price'); | ||
| 540 | + var price = priceBlock.html(); | ||
| 541 | + var new_price = num * price; | ||
| 542 | + priceBlock.html(new_price); | ||
| 543 | + countPrise(); | ||
| 544 | + }); | ||
| 502 | 545 | ||
| 503 | 546 | ||
| 504 | }); | 547 | }); |
| 505 | \ No newline at end of file | 548 | \ No newline at end of file |