Commit 146493f1c87ddba241486be1c2831b777d6fd50b
1 parent
8f340aa7
- catalog books
- card book
Showing
8 changed files
with
518 additions
and
61 deletions
Show diff stats
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 | ... | ... |
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> | ... | ... |
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> | ... | ... |
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); | ... | ... |
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 | ... | ... |