Commit 146493f1c87ddba241486be1c2831b777d6fd50b

Authored by Anastasia
1 parent 8f340aa7

- catalog books

- card book
frontend/controllers/BookController.php
... ... @@ -9,9 +9,10 @@
9 9 namespace frontend\controllers;
10 10  
11 11 use common\models\Book;
  12 + use yii\data\ActiveDataProvider;
12 13 use yii\web\Controller;
13 14 use yii\web\UploadedFile;
14   -
  15 +
15 16 class BookController extends Controller
16 17 {
17 18 /**
... ... @@ -22,13 +23,14 @@
22 23 if ($action->id == 'add' or $action->id == 'edit') {
23 24 $this->enableCsrfValidation = false;
24 25 }
25   -
  26 +
26 27 return parent::beforeAction($action);
27 28 }
28   -
29   - public function actionAdd(){
  29 +
  30 + public function actionAdd()
  31 + {
30 32 /**
31   - * @var \common\models\Author $user;
  33 + * @var \common\models\Author $user ;
32 34 */
33 35 $user = \Yii::$app->user->identity;
34 36 if (\Yii::$app->user->isGuest) {
... ... @@ -36,41 +38,69 @@
36 38 }
37 39 $model = new Book();
38 40 if (\Yii::$app->request->isPost) {
39   -
  41 +
40 42 if ($model->load(\Yii::$app->request->post(), '') and $model->validate()) {
41 43 $model->author_id = $user->id;
42 44 $model->status = $model::STATUS_MODERATION;
43   - return($model->save() && $model->saveImage(UploadedFile::getInstanceByName('file')));
  45 + return ( $model->save() && $model->saveImage(UploadedFile::getInstanceByName('file')) );
44 46 } else {
45 47 return false;
46 48 }
47   -
  49 +
48 50 }
49   - return $this->render('add', [
50   - 'book' => array()
51   - ]);
  51 + return $this->render(
  52 + 'add',
  53 + [
  54 + 'book' => [],
  55 + ]
  56 + );
52 57 }
53 58  
54   - public function actionEdit($id){
  59 + public function actionEdit($id)
  60 + {
55 61 $model = Book::findOne($id);
56   - if ($model->author_id !== \Yii::$app->user->getId()){
57   - return $this->redirect(['site/index']);
  62 + if ($model->author_id !== \Yii::$app->user->getId()) {
  63 + return $this->redirect([ 'site/index' ]);
58 64 }
59 65 if (\Yii::$app->request->isPost) {
60   -
  66 +
61 67 if ($model->load(\Yii::$app->request->post(), '') and $model->validate()) {
62   - return($model->save() && $model->saveImage(UploadedFile::getInstanceByName('file')));
  68 + return ( $model->save() && $model->saveImage(UploadedFile::getInstanceByName('file')) );
63 69 } else {
64 70 return false;
65 71 }
66   -
  72 +
67 73 }
68   - return $this->render('add', [
69   - 'book' => $model->attributes
70   - ]);
  74 + return $this->render(
  75 + 'add',
  76 + [
  77 + 'book' => $model->attributes,
  78 + ]
  79 + );
71 80 }
72 81  
73   - public function actionIndex(){
  82 + public function actionIndex()
  83 + {
  84 + $dataProvider = new ActiveDataProvider(
  85 + [
  86 + 'query' => Book::find()
  87 + ->with('author')
  88 + ->where([ 'status' => Book::STATUS_ACTIVE ]),
  89 + 'pagination' => [
  90 + 'pageSize' => 10,
  91 + ],
  92 + ]
  93 + );
  94 + return $this->render(
  95 + 'index',
  96 + [
  97 + 'dataProvider' => $dataProvider,
  98 + ]
  99 + );
  100 + }
74 101  
  102 + public function actionView($id){
  103 + $model = Book::find()->with('author') ->where(['id' => $id])->one();
  104 + return $this->render('view', ['model' => $model]);
75 105 }
76 106 }
77 107 \ No newline at end of file
... ...
frontend/views/book/_book.php 0 โ†’ 100644
  1 +<?php
  2 + /**
  3 + * @var \common\models\Book $model;
  4 + */
  5 + use yii\helpers\Url;
  6 +
  7 +?>
  8 +<div class="row">
  9 + <div class="col-xs-12 col-sm-4 col-md-5 col-lg-6 books-wrapp-img">
  10 + <?php if ($model->image !== null){?>
  11 + <img src="<?='/storage/books/'.$model->id.'/'.$model->image?>" alt="">
  12 + <?php } ?>
  13 + </div>
  14 + <div class="col-xs-12 col-sm-8 col-md-7 col-lg-6 books-wrapp-text">
  15 + <div class="style books-title"><a href="<?=Url::to(['book/view', 'id' => $model->id])?>"><?=$model->title?></a></div>
  16 + <div class="style books-autor">ะะฒั‚ะพั€: <?=$model->author->name?> <?=$model->author->secondname?></div>
  17 + <div class="style books-text">
  18 + <?=$model->preview?>
  19 + </div>
  20 + <?php if ($model->price == null){?>
  21 + <div class="style books-btn books-btn-new">
  22 + <a href="#" class="btn_">ะŸั–ะดั‚ั€ะธะผะฐั‚ะธ</a>
  23 + </div>
  24 + <?php } else{?>
  25 + <div class="style price-books-catalog"><div>ะฒะฐั€ั‚ั–ัั‚ัŒ <b><?=$model->price?></b> ะณั€ะฝ.</div></div>
  26 +
  27 + <div class="style books-btn books-btn-buy">
  28 + <a href="#" class="btn_">ะฟั€ะธะดะฑะฐั‚ะธ</a>
  29 + </div>
  30 + <?php } ?>
  31 + </div>
  32 +</div>
... ...
frontend/views/book/index.php 0 โ†’ 100644
  1 +<?php
  2 + /**
  3 + * @var \yii\data\ActiveDataProvider $dataProvider
  4 + * @var \yii\web\View $this;
  5 + */
  6 + use yii\widgets\ListView;
  7 + $this->params['breadcrumbs'][] = 'ะšะฝะธะณะธ';
  8 +
  9 +?>
  10 +<section class="section-books-catalog">
  11 + <div class="container">
  12 + <div class="row">
  13 + <div class="col-xs-12">
  14 + <div class="title-blocks">ะšะฝะธะณะธ</div>
  15 + </div>
  16 + </div>
  17 + <?= ListView::widget(
  18 + [
  19 + 'dataProvider' => $dataProvider,
  20 + 'itemView' => '_book',
  21 + 'options' => [
  22 + 'class' => 'row',
  23 +
  24 + ],
  25 + 'itemOptions' => [
  26 + 'class' => 'col-xs-12 col-sm-12 col-md-6 books-wrapp',
  27 + ],
  28 + 'layout' => '{items}',
  29 + ]
  30 + ); ?>
  31 +
  32 + <div class="col-xs-12 col-sm-12">
  33 + <?php echo \frontend\widgets\FrontendPager::widget(
  34 + [
  35 + 'pagination' => $dataProvider->pagination,
  36 + 'maxButtonCount' => 5,
  37 + ]
  38 + ); ?>
  39 + </div>
  40 + </div>
  41 +</section>
... ...
frontend/views/book/view.php 0 โ†’ 100644
  1 +<?php
  2 + /**
  3 + * @var \yii\web\View $this;
  4 + * @var \common\models\Book $model;
  5 + */
  6 + use artbox\core\helpers\ImageHelper;
  7 + use yii\helpers\Url;
  8 +
  9 + $this->params[ 'breadrumbs'][] = [
  10 + 'label' => 'ะšะฝะธะณะธ',
  11 + 'url' => Url::to(['book/index'])
  12 + ];
  13 +
  14 + $this->params['breadcrumbs'][] = $model->title;
  15 + ?>
  16 +
  17 +<section class="section-card">
  18 + <div class="container">
  19 + <div class="row">
  20 +
  21 + <div class="col-xs-12 col-sm-3 col-md-3 col-lg-3 card-img-col">
  22 + <?php if ($model->image !== null){?>
  23 + <div class="card-img">
  24 + <?=ImageHelper::set('@storage/books/'.$model->id.'/'.$model->image)->cropResize(262, 390)->renderImage()?>
  25 + </div>
  26 + <?php } ?>
  27 + </div>
  28 + <div class="col-xs-12 col-sm-4 col-md-4 col-lg-4">
  29 + <div class="style card-title"><?=$model->title?></div>
  30 + <div class="style card-autor-wrapp">
  31 + <div class="autor-img">
  32 + <div><img src="images/card/autor.jpg" alt=""></div>
  33 + </div>
  34 + <div class="autor-name"><?=$model->author->name?> <?=$model->author->secondname?></div>
  35 + </div>
  36 + <div class="style card-btns-price-wr">
  37 + <?php if ($model->price == null){ ?>
  38 + <div>
  39 + <div class="price-block">
  40 + <!--"ะฝะตะพะฑั…ั–ะดะฝะพ" ะฒั‹ะฒะพะดะธั‚ัั ะฑะตะท ะบะปะฐััะฐ '.have'-->
  41 + <!--<p><b>110000</b> ะณั€ะฝ. <span>ะฝะตะพะฑั…ั–ะดะฝะพ</span></p>-->
  42 + <p><b>37620</b> ะณั€ะฝ. <span class="have">ะทั–ะฑั€ะฐะฝะพ</span></p>
  43 + <p><b>460</b> <span class="supporters">ะฟั–ะดั‚ั€ะธะผัƒะฒะฐั‡ั–ะฒ</span></p>
  44 + </div>
  45 + <div class="style books-btn books-btn-new">
  46 + <a href="#" class="btn_">ะŸั–ะดั‚ั€ะธะผะฐั‚ะธ</a>
  47 + </div>
  48 + </div>
  49 + <?php } else {?>
  50 + <div>
  51 + <div class="style price-books-catalog"><div>ะฒะฐั€ั‚ั–ัั‚ัŒ <b>150</b> ะณั€ะฝ.</div></div>
  52 + <div class="style books-btn books-btn-buy">
  53 + <a href="#" class="btn_">ะฟั€ะธะดะฑะฐั‚ะธ</a>
  54 + </div>
  55 + </div>
  56 + <?php } ?>
  57 + </div>
  58 + <div class="style card-seti-wr">
  59 + <p>ะฟะพะดั–ะปะธั‚ะธัั ะฒ ัะพั†ั–ะฐะปัŒะฝะธั… ะผะตั€ะตะถะฐั…</p>
  60 + <!--ะฒัั‚ะฐะฒะปัั‚ัŒ ััั‹ะปะบัƒ ะฝะฐ ัั‚ัƒ ัั‚ั€ะฐะฝะธั†ัƒ ััŽะดะฐ {link-this-page}-->
  61 + <ul>
  62 + <li class="card-s1"><a target="_blank" rel="nofollow" href="http://www.facebook.com/sharer/sharer.php?u=http://{link-this-page}"></a></li>
  63 + <li class="card-s2"><a target="_blank" rel="nofollow" href="https://twitter.com/intent/tweet?text=Hello%20world&url=http://{link-this-page}"></a></li>
  64 + <li class="card-s3"><a target="_blank" rel="nofollow" href="https://plus.google.com/share?url=http://{link-this-page}"></a></li>
  65 + </ul>
  66 + </div>
  67 + </div>
  68 + <div class="col-xs-12 col-sm-5 col-md-5 col-lg-5">
  69 + <div class="card-text style">
  70 + <?=$model->preview?>
  71 + </div>
  72 + </div>
  73 + </div>
  74 + </div>
  75 +</section>
  76 +<?php if ($model->description != null){?>
  77 +<section class="section-card-description">
  78 + <div class="container">
  79 + <div class="row">
  80 + <div class="col-xs-12 col-sm-12">
  81 + <div class="card-desk-title">ะžะฟะธั</div>
  82 + </div>
  83 + <div class="col-xs-12 col-sm-12 card-desk-text blog-view">
  84 + <?=$model->description; ?>
  85 + </div>
  86 +
  87 + <div style="display: none;" class="style mob-card-desk-btn" data-hide="ะทะณะพั€ะฝัƒั‚ะธ" data-show="ั€ะพะทะณะพั€ะฝัƒั‚ะธ">
  88 + <span>ั€ะพะทะณะพั€ะฝัƒั‚ะธ</span>
  89 + </div>
  90 + </div>
  91 + </div>
  92 +</section>
  93 +<?php } ?>
  94 +<section class="section-card-title">
  95 + <div class="container">
  96 + <div class="row">
  97 + <div class="col-xs-12 col-sm-12">
  98 + <div class="card-desk-title">ะบะพะผะตะฝั‚ะฐั€ั–</div>
  99 + </div>
  100 + </div>
  101 + <div class="row">
  102 + <div class="col-xs-12 col-sm-6 col-md-6 comments-card-col">
  103 + <div class="hidden-comments-form-card style" style="display: none;">
  104 + <div class="style card-form-add-wrapp">
  105 + <form action="#">
  106 + <div class="style title-add-comments-form">ะ’ั–ะดะฟะพะฒั–ัั‚ะธ</div>
  107 + <div class="input-wr">
  108 + <label for="q1">ะ†ะผ'ั</label>
  109 + <input id="q1" type="text">
  110 + </div>
  111 + <div class="input-wr">
  112 + <label for="q2">ะŸะพัˆั‚ะฐ</label>
  113 + <input id="q2" type="text">
  114 + </div>
  115 + <div class="input-wr">
  116 + <label for="q3">ะšะพะผะตะฝั‚ะฐั€</label>
  117 + <textarea name="" id="q3" cols="30" rows="10"></textarea>
  118 + </div>
  119 + <div class="button-wr">
  120 + <button type="submit">ะฒั–ะดะฟะพะฒั–ัั‚ะธ</button>
  121 + </div>
  122 + </form>
  123 + </div>
  124 + </div>
  125 + <div class="style">
  126 + <div class="comments-card-wr style">
  127 + <div class="style comments-card-autor">ะžะปัŒะณะฐ ะ’ะฐั‰ะตะฝะบะพ</div>
  128 + <div class="style comments-card-text">ะกะบะพั€ั–ัˆะต ะฒั–ะดะบั€ะธะฒะฐะนั‚ะต, ั‡ะตะบะฐั‚ะธะผัƒ ะท ะฝะตั‚ะตั€ะฟั–ะฝะฝัะผ! ะะตะนะผะพะฒั–ั€ะฝะต ะฒะฐะผ ัะฟะฐัะธะฑั– ะทะฐ ะฒะธะดะฐะฝะฝั ั†ัŒะพะณะพ ะฐะฒั‚ะพั€ะฐ ัƒะบั€ะฐั—ะฝััŒะบะพัŽ!</div>
  129 + <div class="style answers-wr">
  130 + <span>ะฒั–ะดะฟะพะฒั–ัั‚ะธ</span>
  131 + </div>
  132 + </div>
  133 +
  134 + <div class="comments-card-wr style">
  135 + <div class="style comments-card-autor">ะžะปะตะบัะฐะฝะดั€ ะšะฐั€ะผะฐัˆ</div>
  136 + <div class="style comments-card-text">ะกะบะพั€ั–ัˆะต ะฒั–ะดะบั€ะธะฒะฐะนั‚ะต, ั‡ะตะบะฐั‚ะธะผัƒ ะท ะฝะตั‚ะตั€ะฟั–ะฝะฝัะผ! ะะตะนะผะพะฒั–ั€ะฝะต ะฒะฐะผ ัะฟะฐัะธะฑั– ะทะฐ ะฒะธะดะฐะฝะฝั ั†ัŒะพะณะพ ะฐะฒั‚ะพั€ะฐ ัƒะบั€ะฐั—ะฝััŒะบะพัŽ!ะฆะต ะฒะถะต ะพัั‚ะฐั‚ะพั‡ะฝะธะน ะฒะฐั€ั–ะฐะฝั‚ ะพะฑะบะปะฐะดะธะฝะบะธ? ะ‘ะพ ั†ะต ะผะตะฝั– ะฒะฟะตั€ัˆะต ะฝะต ัะฟะพะดะพะฑะฐะปะฐััŒ ะพะฑะบะปะฐะดะธะฝะบะฐ ะบะฝะธะถะบะธ ะฒะฐัˆะพะณะพ ะฒะธะดะฐะฒะฝะธั†ั‚ะฒะฐ...(ัะบ ะฝะฐ ะผะตะฝะต ั„ั€ะฐะทะฐ ะฟั€ะพ ั€ะพะทั‡ะธะฝะฝะธะน ัƒะฑั–ะบ ะทะฑะพะบัƒ ะฟััƒั” ะฒััŽ ะบะฐั€ั‚ะธะฝัƒ ั– ะฒะธะดะฐั”ั‚ัŒัั ะทะฐะนะฒะพัŽ)..</div>
  137 + <div class="style answers-wr">
  138 + <span>ะฒั–ะดะฟะพะฒั–ัั‚ะธ</span>
  139 + </div>
  140 + <div class="comments-card-ansvers-text-wr style">
  141 + <div class="style comments-card-autor-ansvers comments-card-autor">ะะฝะดั€ั–ะน</div>
  142 + <div class="comments-card-text style">
  143 + ะ”ะพะฑั€ะพะณะพ ะดะฝั! ะฆะต ะฝะต ะพะฑะบะปะฐะดะธะฝะบะฐ, ะฐ ะฟั€ะพัั‚ะพ ั„ัƒั‚ัƒั€ะธัั‚ะธั‡ะฝะฐ ะบะฐั€ั‚ะธะฝะบะฐ "ะดะปั ั–ะปัŽัั‚ั€ะฐั†ั–ั—". ะžะฑะบะปะฐะดะธะฝะบัƒ ะผะธ ะทะฐั€ะฐะท ะณะพั‚ัƒั”ะผะพ ั– ะฝะตะทะฐะฑะฐั€ะพะผ ะดะพะดะฐะผะพ ั—ั— ะฝะฐ ัะฐะนั‚.
  144 + </div>
  145 + <div class="style answers-wr">
  146 + <span>ะฒั–ะดะฟะพะฒั–ัั‚ะธ</span>
  147 + </div>
  148 + </div>
  149 + </div>
  150 +
  151 + <div class="comments-card-wr style">
  152 + <div class="style comments-card-autor">ะ’ั–ะบั‚ะพั€ั–ั</div>
  153 + <div class="style comments-card-text">ะ”ะพั‡ะตะบะฐะฒัั. ะŸะตั€ัˆะฐ ะบะฝะธะถะบะฐ ะ”ั–ะบะฐ ัะบัƒ ั ะฟั€ะพั‡ะธั‚ะฐะฒ (ั€ะพัั–ะนััŒะบะพัŽ), ั‚ะตะฟะตั€ ะน ัƒะบั€ะฐั—ะฝััŒะบะพัŽ. ะะตะนะผะพะฒั–ั€ะฝะพ ะทะฐั…ะพะฟะปะธะฒะฐ, ั– ะท (ัะฟะพะนะปะตั€).
  154 + ะะปะต, ัˆะฐะฝะพะฒะฝั–, ะทะผั–ะฝั–ั‚ัŒ ะพะฑะบะปะฐะดะธะฝะบัƒ, ั†ะต ะถ ะพะฑะบะปะฐะดะธะฝะบะฐ ะฑั€ะฐะทะธะปัŒััŒะบะพะณะพ ะฒะธะดะฐะฝะฝั "ะะตะนั€ะพะผะฐะฝั‚" ะ’ั–ะปัŒัะผะฐ ะ“ั–ะฑัะพะฝะฐ </div>
  155 + <div class="style answers-wr">
  156 + <span>ะฒั–ะดะฟะพะฒั–ัั‚ะธ</span>
  157 + </div>
  158 + </div>
  159 +
  160 + <div class="comments-card-wr style">
  161 + <div class="style comments-card-autor">ะ ัƒัะปะฐะฝ ะšะพะฒั‚ัƒะฝ</div>
  162 + <div class="style comments-card-text">ะ”ะพั‡ะตะบะฐะฒัั. ะŸะตั€ัˆะฐ ะบะฝะธะถะบะฐ ะ”ั–ะบะฐ ัะบัƒ ั ะฟั€ะพั‡ะธั‚ะฐะฒ (ั€ะพัั–ะนััŒะบะพัŽ), ั‚ะตะฟะตั€ ะน ัƒะบั€ะฐั—ะฝััŒะบะพัŽ. ะะตะนะผะพะฒั–ั€ะฝะพ ะทะฐั…ะพะฟะปะธะฒะฐ, ั– ะท (ัะฟะพะนะปะตั€).
  163 + ะะปะต, ัˆะฐะฝะพะฒะฝั–, ะทะผั–ะฝั–ั‚ัŒ ะพะฑะบะปะฐะดะธะฝะบัƒ, ั†ะต ะถ ะพะฑะบะปะฐะดะธะฝะบะฐ ะฑั€ะฐะทะธะปัŒััŒะบะพะณะพ ะฒะธะดะฐะฝะฝั "ะะตะนั€ะพะผะฐะฝั‚" ะ’ั–ะปัŒัะผะฐ ะ“ั–ะฑัะพะฝะฐ </div>
  164 + <div class="style answers-wr">
  165 + <span>ะฒั–ะดะฟะพะฒั–ัั‚ะธ</span>
  166 + </div>
  167 + </div>
  168 + </div>
  169 + </div>
  170 + <div class="col-xs-12 hidden-sm col-md-1"></div>
  171 + <div class="col-xs-12 col-sm-6 col-md-5">
  172 + <div class="style card-form-add-wrapp">
  173 + <form action="#">
  174 + <div class="style title-add-comments-form">ะ”ะพะดะฐั‚ะธ ะบะพะผะตะฝั‚ะฐั€</div>
  175 + <div class="input-wr">
  176 + <label for="q1">ะ†ะผ'ั</label>
  177 + <input id="q1" type="text">
  178 + </div>
  179 + <div class="input-wr">
  180 + <label for="q2">ะŸะพัˆั‚ะฐ</label>
  181 + <input id="q2" type="text">
  182 + </div>
  183 + <div class="input-wr">
  184 + <label for="q3">ะšะพะผะตะฝั‚ะฐั€</label>
  185 + <textarea name="" id="q3" cols="30" rows="10"></textarea>
  186 + </div>
  187 + <div class="button-wr">
  188 + <button type="submit">ะดะพะดะฐั‚ะธ</button>
  189 + </div>
  190 + </form>
  191 + </div>
  192 + </div>
  193 + </div>
  194 + </div>
  195 +</section>
... ...
frontend/views/layouts/main.php
... ... @@ -88,7 +88,7 @@
88 88 <div class="col-xs-12 hidden-xs hidden-sm col-sm-3 col-md-3 header-menu">
89 89 <ul>
90 90 <li><a href="<?=Url::to(['site/about'])?>">ะŸั€ะพ ะฟั€ะพะตะบั‚</a></li>
91   - <li><a href="<?=Url::to(['books/index'])?>">ะšะฝะธะณะธ</a></li>
  91 + <li><a href="<?=Url::to(['book/index'])?>">ะšะฝะธะณะธ</a></li>
92 92 </ul>
93 93 </div>
94 94  
... ... @@ -98,11 +98,17 @@
98 98 </div>
99 99 <?php if (\Yii::$app->user->isGuest){?>
100 100 <div class="col-xs-12 hidden-xs hidden-sm col-sm-2 col-md-2">
101   - <a href="#" class="login">
  101 + <a href="<?=Url::to(['site/login'])?>" class="login">
102 102 ะ’ั…iะด
103 103 </a>
104 104 </div>
105   - <?php } ?>
  105 + <?php } else { ?>
  106 + <div class="col-xs-12 hidden-xs hidden-sm col-sm-2 col-md-2">
  107 + <a href="<?=Url::to(['account/index'])?>">
  108 + ะžัะพะฑะธัั‚ะธะน ะบะฐะฑั–ะฝะตั‚
  109 + </a>
  110 + </div>
  111 + <?php }?>
106 112  
107 113 </div>
108 114 </div>
... ...
frontend/views/site/index.php
... ... @@ -34,48 +34,22 @@
34 34 <div class="container">
35 35 <div class="row">
36 36 <div class="col-xs-12">
37   - <div class="title-blocks">ะšะฝะธะณะธ</div>
  37 + <div class="title-blocks first-title-blocks">ะšะฝะธะณะธ</div>
38 38 </div>
39 39 </div>
40 40 <div class="row">
41 41 <?php foreach ($books as $book){ ?>
42 42 <div class="col-xs-12 col-sm-12 col-md-6 books-wrapp">
43   - <div class="row">
44   - <div class="col-xs-12 col-sm-4 col-md-5 col-lg-6 books-wrapp-img">
45   - <img src="images/books/book-1.jpg" alt="">
46   - </div>
47   - <div class="col-xs-12 col-sm-8 col-md-7 col-lg-6 books-wrapp-text">
48   - <div class="style books-title"><?=$book->title?></div>
49   - <div class="style books-autor">ะะฒั‚ะพั€: <?=$book->author->name?> <?=$book->author->secondname?></div>
50   - <div class="style books-text">
51   - <?=$book->preview?>
52   - </div>
53   - <div class="style percent-price-block-wrapp">
54   - <div class="percent-block">
55   - <div class="percent-bl green" data-width="60" data-lineWidth="6">34</div>
56   - </div>
57   - <div class="price-block-wrapp">
58   - <div class="price-block">
59   - <p><b>110000</b> ะณั€ะฝ. <span>ะฝะตะพะฑั…ั–ะดะฝะพ</span></p>
60   - <p><b>37620</b> ะณั€ะฝ. <span class="have">ะทั–ะฑั€ะฐะฝะพ</span></p>
61   - </div>
62   - <div class="caldendar-books">
63   - <p><b>20</b> ะดะฝ. ะปะธัˆะธะปะพััŒ</p>
64   - </div>
65   - </div>
66   - </div>
67   - <div class="style books-btn">
68   - <a href="#" class="btn_">ะŸั–ะดั‚ั€ะธะผะฐั‚ะธ</a>
69   - </div>
70   - </div>
71   - </div>
  43 + <?=$this->render('@frontend/views/book/_book', [
  44 + 'model' => $book
  45 + ])?>
72 46 </div>
73 47 <?php } ?>
74 48 </div>
75 49 <div class="row">
76 50 <div class="col-xs-12">
77 51 <div class="style all-projects-link">
78   - <a href="#">ะ’ัั– ะฟั€ะพะตะบั‚ะธ</a>
  52 + <a href="<?=Url::to(['book/index'])?>">ะ’ัั– ะฟั€ะพะตะบั‚ะธ</a>
79 53 </div>
80 54 </div>
81 55 </div>
... ...
frontend/web/js/book.js
... ... @@ -38,11 +38,15 @@
38 38 .replace(/\r/g, "\\\\r")
39 39 .replace(/\t/g, "\\\\t");
40 40 data = JSON.parse(st);
41   - title = data.title;
42   - description = data.description;
43   - preview = data.preview;
44   - image = data.image;
45   - id = data.id;
  41 + console.log(data);
  42 + if (data.length > 0){
  43 + title = data.title;
  44 + description = data.description;
  45 + preview = data.preview;
  46 + image = data.image;
  47 + id = data.id;
  48 + }
  49 +
46 50 }
47 51 titleSelector.addEventListener('blur', function(e) {
48 52 e.preventDefault();
... ... @@ -156,7 +160,7 @@
156 160 function sendData() {
157 161 var xhr = new XMLHttpRequest();
158 162 var url = '/book/add';
159   - if (id !== 0){
  163 + if (id != 0){
160 164 url = '/book/edit?id='+id;
161 165 }
162 166 xhr.open('POST', url, true);
... ...
frontend/widgets/FrontendPager.php 0 โ†’ 100755
  1 +<?php
  2 +
  3 + namespace frontend\widgets;
  4 +
  5 + use function key_exists;
  6 + use yii\data\Pagination;
  7 + use yii\helpers\ArrayHelper;
  8 + use yii\helpers\Html;
  9 + use yii\helpers\Url;
  10 + use yii\web\Link;
  11 +
  12 + /**
  13 + * Class FrontendPager
  14 + *
  15 + * @package frontend\widgets
  16 + */
  17 + class FrontendPager extends \yii\widgets\LinkPager
  18 + {
  19 + public $dots = false;
  20 + public $dotsClass = null;
  21 +
  22 + public $params = null;
  23 +
  24 + public $pageParam = 'page';
  25 +
  26 + public $defaultPageSize = 20;
  27 +
  28 + public $pageSizeParam = 'per-page';
  29 +
  30 + public $route;
  31 +
  32 + public $urlManager;
  33 +
  34 +
  35 +
  36 + protected function renderPageButtons()
  37 + {
  38 +
  39 + $pageCount = $this->pagination->getPageCount();
  40 + if ($pageCount < 2 && $this->hideOnSinglePage) {
  41 + return '';
  42 + }
  43 +
  44 + $buttons = [];
  45 + $currentPage = $this->pagination->getPage();
  46 +
  47 + // first page
  48 +// $firstPageLabel = $this->firstPageLabel === true ? '1' : $this->firstPageLabel;
  49 +// if ($firstPageLabel !== false) {
  50 +// $buttons[] = $this->renderPageButton($firstPageLabel, 0, $this->firstPageCssClass, $currentPage <= 0, false);
  51 +// }
  52 + // prev page
  53 + if ($this->prevPageLabel !== false) {
  54 + if (( $page = $currentPage - 1 ) < 0) {
  55 + $page = 0;
  56 + }
  57 + $buttons[] = $this->renderPageButton(
  58 + $this->prevPageLabel,
  59 + $page,
  60 + $this->prevPageCssClass,
  61 + $currentPage <= 0,
  62 + false
  63 + );
  64 + }
  65 + $firstPageLabel = '1';
  66 + list($beginPage, $endPage) = $this->getPageRange();
  67 + if ($beginPage !== 0) {
  68 + $buttons[] = $this->renderPageButton(
  69 + $firstPageLabel,
  70 + 0,
  71 + $this->firstPageCssClass,
  72 + $currentPage <= 0,
  73 + false
  74 + );
  75 + }
  76 + // internal pages
  77 +
  78 + for ($i = $beginPage; $i <= $endPage; ++$i) {
  79 + $buttons[] = $this->renderPageButton(
  80 + $i + 1,
  81 + $i,
  82 + null,
  83 + $this->disableCurrentPageButton && $i == $currentPage,
  84 + $i == $currentPage
  85 + );
  86 + }
  87 + // last page
  88 + $lastPageLabel = $this->lastPageLabel === true ? $pageCount : $this->lastPageLabel;
  89 + if ($lastPageLabel !== false and $endPage !== $pageCount - 1) {
  90 + if ($endPage + 1 < $pageCount - 1 and $this->dots) {
  91 + $buttons[] = $this->renderPageButton('...', $endPage + 1, $this->dotsClass, true, false);
  92 + }
  93 + if ($lastPageLabel == 'last_number') {
  94 + $lastPageLabel = $pageCount;
  95 + }
  96 + $buttons[] = $this->renderPageButton(
  97 + $lastPageLabel,
  98 + $pageCount - 1,
  99 + $this->lastPageCssClass,
  100 + $currentPage >= $pageCount - 1,
  101 + false
  102 + );
  103 + }
  104 + // next page
  105 + if ($this->nextPageLabel !== false) {
  106 + if (( $page = $currentPage + 1 ) >= $pageCount - 1) {
  107 + $page = $pageCount - 1;
  108 + }
  109 + $buttons[] = $this->renderPageButton(
  110 + $this->nextPageLabel,
  111 + $page,
  112 + $this->nextPageCssClass,
  113 + $currentPage >= $pageCount - 1,
  114 + false
  115 + );
  116 + }
  117 +
  118 + return Html::tag('ul', implode("\n", $buttons), $this->options);
  119 + }
  120 +
  121 + protected function renderPageButton($label, $page, $class, $disabled, $active)
  122 + {
  123 + $options = [ 'class' => empty($class) ? $this->pageCssClass : $class ];
  124 + if ($active) {
  125 + Html::addCssClass($options, $this->activePageCssClass);
  126 + }
  127 + if ($disabled) {
  128 + Html::addCssClass($options, $this->disabledPageCssClass);
  129 + $tag = ArrayHelper::remove($this->disabledListItemSubTagOptions, 'tag', 'span');
  130 +
  131 + return Html::tag('li', Html::tag($tag, $label, $this->disabledListItemSubTagOptions), $options);
  132 + }
  133 + $linkOptions = $this->linkOptions;
  134 + $linkOptions[ 'data-page' ] = $page;
  135 + if ($page == 0 and !$active) {
  136 +
  137 + $link = trim(
  138 + Url::current(
  139 + [
  140 + 'page' => null,
  141 + 'per-page' => null,
  142 + ]
  143 + ),
  144 + '?'
  145 + );
  146 + /**
  147 + * @var \artbox\catalog\models\Filter $filter
  148 + */
  149 + $filter = \Yii::$app->get('filter')->filterObj;
  150 + if (key_exists($link, $filter->getReplacedFilters())) {
  151 + $link = $filter->getReplacedFilters()[ $link ];
  152 + }
  153 + return Html::tag(
  154 + 'li',
  155 + Html::a($label, $link, $linkOptions),
  156 + $options
  157 + );
  158 + }
  159 +
  160 +
  161 + if ($active) {
  162 + return Html::tag('li', Html::a($label, null, $linkOptions), $options);
  163 + } else {
  164 + $link = $this->pagination->createUrl($page);
  165 + $query = parse_url($link);
  166 + parse_str($query[ 'query' ], $params);
  167 + unset($query[ 'query' ]);
  168 + ksort($params);
  169 + $link = $query[ 'path' ] . '?' . http_build_query($params);
  170 + return Html::tag('li', Html::a($label, $link, $linkOptions), $options);
  171 + }
  172 +
  173 + }
  174 +
  175 + }
0 176 \ No newline at end of file
... ...