Nickbur /
Sunrise-CMS
| 1 | <?php |
||||||
| 2 | |||||||
| 3 | /* Divine CMS - Open source CMS for widespread use. |
||||||
| 4 | Copyright (c) 2019 Mykola Burakov ([email protected]) |
||||||
| 5 | |||||||
| 6 | See SOURCE.txt for other and additional information. |
||||||
| 7 | |||||||
| 8 | This file is part of Divine CMS. |
||||||
| 9 | |||||||
| 10 | This program is free software: you can redistribute it and/or modify |
||||||
| 11 | it under the terms of the GNU General Public License as published by |
||||||
| 12 | the Free Software Foundation, either version 3 of the License, or |
||||||
| 13 | (at your option) any later version. |
||||||
| 14 | |||||||
| 15 | This program is distributed in the hope that it will be useful, |
||||||
| 16 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||||
| 17 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||||
| 18 | GNU General Public License for more details. |
||||||
| 19 | |||||||
| 20 | You should have received a copy of the GNU General Public License |
||||||
| 21 | along with this program. If not, see <http://www.gnu.org/licenses/>. */ |
||||||
| 22 | |||||||
| 23 | class ControllerBlogArticle extends \Divine\Engine\Core\Controller |
||||||
|
0 ignored issues
–
show
|
|||||||
| 24 | { |
||||||
| 25 | private $error = array(); |
||||||
|
0 ignored issues
–
show
|
|||||||
| 26 | |||||||
| 27 | public function index() |
||||||
|
0 ignored issues
–
show
|
|||||||
| 28 | { |
||||||
| 29 | $this->load->language('blog/article'); |
||||||
| 30 | |||||||
| 31 | $data['breadcrumbs'] = array(); |
||||||
|
0 ignored issues
–
show
Comprehensibility
Best Practice
introduced
by
|
|||||||
| 32 | |||||||
| 33 | $data['breadcrumbs'][] = array( |
||||||
| 34 | 'text' => $this->language->get('text_home'), |
||||||
| 35 | 'href' => $this->url->link('common/home'), |
||||||
| 36 | 'separator' => false |
||||||
| 37 | ); |
||||||
| 38 | |||||||
| 39 | $configblog_name = $this->config->get('configblog_name'); |
||||||
| 40 | |||||||
| 41 | if (!empty($configblog_name)) { |
||||||
| 42 | $name = $this->config->get('configblog_name'); |
||||||
| 43 | } else { |
||||||
| 44 | $name = $this->language->get('text_blog'); |
||||||
| 45 | } |
||||||
| 46 | |||||||
| 47 | $data['breadcrumbs'][] = array( |
||||||
| 48 | 'text' => $name, |
||||||
| 49 | 'href' => $this->url->link('blog/latest') |
||||||
| 50 | ); |
||||||
| 51 | |||||||
| 52 | $this->load->model('blog/category'); |
||||||
| 53 | |||||||
| 54 | |||||||
| 55 | if (isset($this->request->get['blog_category_id'])) { |
||||||
| 56 | $blog_category_id = ''; |
||||||
| 57 | |||||||
| 58 | foreach (explode('_', $this->request->get['blog_category_id']) as $path_id) { |
||||||
| 59 | if (!$blog_category_id) { |
||||||
| 60 | $blog_category_id = $path_id; |
||||||
| 61 | } else { |
||||||
| 62 | $blog_category_id .= '_' . $path_id; |
||||||
| 63 | } |
||||||
| 64 | |||||||
| 65 | $category_info = $this->model_blog_category->getCategory($path_id); |
||||||
| 66 | |||||||
| 67 | if ($category_info) { |
||||||
| 68 | $data['breadcrumbs'][] = array( |
||||||
| 69 | 'text' => $category_info['name'], |
||||||
| 70 | 'href' => $this->url->link('blog/category', 'blog_category_id=' . $blog_category_id) |
||||||
| 71 | ); |
||||||
| 72 | } |
||||||
| 73 | } |
||||||
| 74 | } |
||||||
| 75 | |||||||
| 76 | |||||||
| 77 | |||||||
| 78 | |||||||
| 79 | |||||||
| 80 | if (isset($this->request->get['filter_name']) || isset($this->request->get['filter_tag'])) { |
||||||
| 81 | $url = ''; |
||||||
| 82 | |||||||
| 83 | if (isset($this->request->get['filter_name'])) { |
||||||
| 84 | $url .= '&filter_name=' . $this->request->get['filter_name']; |
||||||
| 85 | } |
||||||
| 86 | |||||||
| 87 | if (isset($this->request->get['filter_tag'])) { |
||||||
| 88 | $url .= '&filter_tag=' . $this->request->get['filter_tag']; |
||||||
| 89 | } |
||||||
| 90 | |||||||
| 91 | if (isset($this->request->get['filter_description'])) { |
||||||
| 92 | $url .= '&filter_description=' . $this->request->get['filter_description']; |
||||||
| 93 | } |
||||||
| 94 | |||||||
| 95 | if (isset($this->request->get['filter_news_id'])) { |
||||||
| 96 | $url .= '&filter_news_id=' . $this->request->get['filter_news_id']; |
||||||
| 97 | } |
||||||
| 98 | } |
||||||
| 99 | |||||||
| 100 | if (isset($this->request->get['article_id'])) { |
||||||
| 101 | $article_id = (int)$this->request->get['article_id']; |
||||||
| 102 | } else { |
||||||
| 103 | $article_id = 0; |
||||||
| 104 | } |
||||||
| 105 | |||||||
| 106 | $this->load->model('blog/article'); |
||||||
| 107 | |||||||
| 108 | $article_info = $this->model_blog_article->getArticle($article_id); |
||||||
| 109 | |||||||
| 110 | if ($article_info) { |
||||||
| 111 | $url = ''; |
||||||
| 112 | |||||||
| 113 | if (isset($this->request->get['blog_category_id'])) { |
||||||
| 114 | $url .= '&blog_category_id=' . $this->request->get['blog_category_id']; |
||||||
| 115 | } |
||||||
| 116 | |||||||
| 117 | if (isset($this->request->get['filter_name'])) { |
||||||
| 118 | $url .= '&filter_name=' . $this->request->get['filter_name']; |
||||||
| 119 | } |
||||||
| 120 | |||||||
| 121 | if (isset($this->request->get['filter_tag'])) { |
||||||
| 122 | $url .= '&filter_tag=' . $this->request->get['filter_tag']; |
||||||
| 123 | } |
||||||
| 124 | |||||||
| 125 | if (isset($this->request->get['filter_description'])) { |
||||||
| 126 | $url .= '&filter_description=' . $this->request->get['filter_description']; |
||||||
| 127 | } |
||||||
| 128 | |||||||
| 129 | if (isset($this->request->get['filter_news_id'])) { |
||||||
| 130 | $url .= '&filter_news_id=' . $this->request->get['filter_news_id']; |
||||||
| 131 | } |
||||||
| 132 | |||||||
| 133 | $data['breadcrumbs'][] = array( |
||||||
| 134 | 'text' => $article_info['name'], |
||||||
| 135 | 'href' => $this->url->link('blog/article', 'article_id=' . $this->request->get['article_id']) |
||||||
| 136 | ); |
||||||
| 137 | |||||||
| 138 | if ($article_info['meta_title']) { |
||||||
| 139 | $this->document->setTitle($article_info['meta_title']); |
||||||
| 140 | } else { |
||||||
| 141 | $this->document->setTitle($article_info['name']); |
||||||
| 142 | } |
||||||
| 143 | |||||||
| 144 | if ($article_info['noindex'] <= 0) { |
||||||
| 145 | $this->document->setRobots('noindex,follow'); |
||||||
| 146 | } |
||||||
| 147 | |||||||
| 148 | $this->document->setDescription($article_info['meta_description']); |
||||||
| 149 | $this->document->addLink($this->url->link('blog/article', 'article_id=' . $this->request->get['article_id']), 'canonical'); |
||||||
| 150 | |||||||
| 151 | if ($article_info['meta_h1']) { |
||||||
| 152 | $data['heading_title'] = $article_info['meta_h1']; |
||||||
| 153 | } else { |
||||||
| 154 | $data['heading_title'] = $article_info['name']; |
||||||
| 155 | } |
||||||
| 156 | |||||||
| 157 | $data['text_select'] = $this->language->get('text_select'); |
||||||
| 158 | $data['text_write'] = $this->language->get('text_write'); |
||||||
| 159 | $data['text_login'] = sprintf($this->language->get('text_login'), $this->url->link('account/login', '', true), $this->url->link('account/register', '', true)); |
||||||
| 160 | $data['text_loading'] = $this->language->get('text_loading'); |
||||||
| 161 | $data['text_note'] = $this->language->get('text_note'); |
||||||
| 162 | $data['text_share'] = $this->language->get('text_share'); |
||||||
| 163 | $data['text_wait'] = $this->language->get('text_wait'); |
||||||
| 164 | $data['button_buy_it'] = $this->language->get('button_buy_it'); |
||||||
| 165 | $data['entry_name'] = $this->language->get('entry_name'); |
||||||
| 166 | $data['entry_review'] = $this->language->get('entry_review'); |
||||||
| 167 | $data['entry_good'] = $this->language->get('entry_good'); |
||||||
| 168 | $data['entry_bad'] = $this->language->get('entry_bad'); |
||||||
| 169 | |||||||
| 170 | $data['text_go_back'] = $this->language->get('text_go_back'); |
||||||
| 171 | |||||||
| 172 | $data['button_continue'] = $this->language->get('button_continue'); |
||||||
| 173 | |||||||
| 174 | $this->load->model('blog/review'); |
||||||
| 175 | |||||||
| 176 | $data['text_related'] = $this->language->get('text_related'); |
||||||
| 177 | $data['text_related_product'] = $this->language->get('text_related_product'); |
||||||
| 178 | |||||||
| 179 | $data['article_id'] = $this->request->get['article_id']; |
||||||
| 180 | |||||||
| 181 | $data['review_status'] = $this->config->get('configblog_review_status'); |
||||||
| 182 | |||||||
| 183 | if ($this->config->get('configblog_review_guest') || $this->customer->isLogged()) { |
||||||
| 184 | $data['review_guest'] = true; |
||||||
| 185 | } else { |
||||||
| 186 | $data['review_guest'] = false; |
||||||
| 187 | } |
||||||
| 188 | |||||||
| 189 | if ($this->customer->isLogged()) { |
||||||
| 190 | $data['customer_name'] = $this->customer->getFirstName() . ' ' . $this->customer->getLastName(); |
||||||
| 191 | } else { |
||||||
| 192 | $data['customer_name'] = ''; |
||||||
| 193 | } |
||||||
| 194 | |||||||
| 195 | $data['article_review'] = (int)$article_info['article_review']; |
||||||
| 196 | $data['reviews'] = sprintf($this->language->get('text_reviews'), (int)$article_info['reviews']); |
||||||
| 197 | $data['gstatus'] = (int)$article_info['gstatus']; |
||||||
| 198 | $data['description'] = html_entity_decode($article_info['description'], ENT_QUOTES, 'UTF-8'); |
||||||
| 199 | |||||||
| 200 | $data['articles'] = array(); |
||||||
| 201 | |||||||
| 202 | $data['button_more'] = $this->language->get('button_more'); |
||||||
| 203 | $data['text_views'] = $this->language->get('text_views'); |
||||||
| 204 | |||||||
| 205 | |||||||
| 206 | |||||||
| 207 | $results = $this->model_blog_article->getArticleRelated($this->request->get['article_id']); |
||||||
| 208 | |||||||
| 209 | foreach ($results as $result) { |
||||||
| 210 | if ($result['image']) { |
||||||
| 211 | $image = '/public_html/assets/images/' . $result['image']; |
||||||
| 212 | } else { |
||||||
| 213 | $image = '/public_html/assets/images/no_image.png'; |
||||||
| 214 | } |
||||||
| 215 | |||||||
| 216 | $data['articles'][] = array( |
||||||
| 217 | 'article_id' => $result['article_id'], |
||||||
| 218 | 'thumb' => $image, |
||||||
| 219 | 'name' => $result['name'], |
||||||
| 220 | 'description' => \voku\helper\UTF8::substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get('configblog_article_description_length')) . '..', |
||||||
|
0 ignored issues
–
show
Are you sure
voku\helper\UTF8::substr...e_description_length')) of type false|string can be used in concatenation?
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
|
|||||||
| 221 | 'date_added' => date($this->language->get('date_format_short'), strtotime($result['date_added'])), |
||||||
| 222 | 'viewed' => $result['viewed'], |
||||||
| 223 | 'reviews' => sprintf($this->language->get('text_reviews'), (int)$result['reviews']), |
||||||
| 224 | 'href' => $this->url->link('blog/article', 'article_id=' . $result['article_id']), |
||||||
| 225 | ); |
||||||
| 226 | } |
||||||
| 227 | |||||||
| 228 | |||||||
| 229 | $data['products'] = array(); |
||||||
| 230 | |||||||
| 231 | $results = $this->model_blog_article->getArticleRelatedProduct($this->request->get['article_id']); |
||||||
| 232 | |||||||
| 233 | foreach ($results as $result) { |
||||||
| 234 | if ($result['image']) { |
||||||
| 235 | $image = '/public_html/assets/images/' . $result['image']; |
||||||
| 236 | } else { |
||||||
| 237 | $image = '/public_html/assets/images/no_image.png'; |
||||||
| 238 | } |
||||||
| 239 | |||||||
| 240 | if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) { |
||||||
| 241 | $price = $this->currency->format($result['price'], $this->session->data['currency']); |
||||||
| 242 | } else { |
||||||
| 243 | $price = false; |
||||||
| 244 | } |
||||||
| 245 | |||||||
| 246 | if ((float)$result['special']) { |
||||||
| 247 | $special = $this->currency->format($result['special'], $this->session->data['currency']); |
||||||
| 248 | } else { |
||||||
| 249 | $special = false; |
||||||
| 250 | } |
||||||
| 251 | |||||||
| 252 | if ((float)$result['special']) { |
||||||
| 253 | $yousave_percent = round(((($result['price'] - $result['special']) / $result['price']) * 100), 0); |
||||||
| 254 | } else { |
||||||
| 255 | $yousave_percent = false; |
||||||
| 256 | } |
||||||
| 257 | |||||||
| 258 | $stickers = $this->getStickers($result['product_id']); |
||||||
| 259 | |||||||
| 260 | $data['products'][] = array( |
||||||
| 261 | 'product_id' => $result['product_id'], |
||||||
| 262 | 'thumb' => $image, |
||||||
| 263 | 'name' => $result['name'], |
||||||
| 264 | 'description' => \voku\helper\UTF8::substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get('configblog_article_description_length')) . '..', |
||||||
| 265 | 'price' => $price, |
||||||
| 266 | 'special' => $special, |
||||||
| 267 | 'yousave_percent' => $yousave_percent, |
||||||
| 268 | 'sticker' => $stickers, |
||||||
| 269 | 'minimum' => $result['minimum'] > 0 ? $result['minimum'] : 1, |
||||||
| 270 | 'reviews' => sprintf($this->language->get('text_reviews'), (int)$result['reviews']), |
||||||
| 271 | 'href' => $this->url->link('product/product', 'product_id=' . $result['product_id']), |
||||||
| 272 | ); |
||||||
| 273 | } |
||||||
| 274 | |||||||
| 275 | $data['download_status'] = $this->config->get('configblog_article_download'); |
||||||
| 276 | |||||||
| 277 | $data['downloads'] = array(); |
||||||
| 278 | |||||||
| 279 | $results = $this->model_blog_article->getDownloads($this->request->get['article_id']); |
||||||
| 280 | |||||||
| 281 | foreach ($results as $result) { |
||||||
| 282 | if (file_exists($_SERVER['DOCUMENT_ROOT'] . '/storage/download/' . $result['filename'])) { |
||||||
| 283 | $size = filesize($_SERVER['DOCUMENT_ROOT'] . '/storage/download/' . $result['filename']); |
||||||
| 284 | |||||||
| 285 | $i = 0; |
||||||
| 286 | |||||||
| 287 | $suffix = array( |
||||||
| 288 | 'B', |
||||||
| 289 | 'KB', |
||||||
| 290 | 'MB', |
||||||
| 291 | 'GB', |
||||||
| 292 | 'TB', |
||||||
| 293 | 'PB', |
||||||
| 294 | 'EB', |
||||||
| 295 | 'ZB', |
||||||
| 296 | 'YB' |
||||||
| 297 | ); |
||||||
| 298 | |||||||
| 299 | while (($size / 10024) > 1) { |
||||||
| 300 | $size = $size / 10024; |
||||||
| 301 | $i++; |
||||||
| 302 | } |
||||||
| 303 | |||||||
| 304 | $data['downloads'][] = array( |
||||||
| 305 | 'date_added' => date($this->language->get('date_format_short'), strtotime($result['date_added'])), |
||||||
| 306 | 'name' => $result['name'], |
||||||
| 307 | 'size' => round(substr($size, 0, strpos($size, '.') + 4), 2) . $suffix[$i], |
||||||
|
0 ignored issues
–
show
substr($size, 0, strpos($size, '.') + 4) of type string is incompatible with the type double expected by parameter $val of round().
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
|
|||||||
| 308 | 'href' => $this->url->link('blog/article/download', '&article_id=' . $this->request->get['article_id'] . '&download_id=' . $result['download_id']) |
||||||
| 309 | ); |
||||||
| 310 | } |
||||||
| 311 | } |
||||||
| 312 | |||||||
| 313 | $this->model_blog_article->updateViewed($this->request->get['article_id']); |
||||||
| 314 | |||||||
| 315 | $data['column'] = $this->load->controller('common/column'); |
||||||
| 316 | |||||||
| 317 | $data['content_top'] = $this->load->controller('common/content_top'); |
||||||
| 318 | $data['content_bottom'] = $this->load->controller('common/content_bottom'); |
||||||
| 319 | $data['footer'] = $this->load->controller('common/footer'); |
||||||
| 320 | $data['header'] = $this->load->controller('common/header'); |
||||||
| 321 | |||||||
| 322 | $this->response->setOutput($this->load->view('blog/article', $data)); |
||||||
| 323 | } else { |
||||||
| 324 | $url = ''; |
||||||
| 325 | |||||||
| 326 | if (isset($this->request->get['blog_category_id'])) { |
||||||
| 327 | $url .= '&blog_category_id=' . $this->request->get['blog_category_id']; |
||||||
| 328 | } |
||||||
| 329 | |||||||
| 330 | if (isset($this->request->get['filter_name'])) { |
||||||
| 331 | $url .= '&filter_name=' . $this->request->get['filter_name']; |
||||||
| 332 | } |
||||||
| 333 | |||||||
| 334 | if (isset($this->request->get['filter_tag'])) { |
||||||
| 335 | $url .= '&filter_tag=' . $this->request->get['filter_tag']; |
||||||
| 336 | } |
||||||
| 337 | |||||||
| 338 | if (isset($this->request->get['filter_description'])) { |
||||||
| 339 | $url .= '&filter_description=' . $this->request->get['filter_description']; |
||||||
| 340 | } |
||||||
| 341 | |||||||
| 342 | if (isset($this->request->get['filter_news_id'])) { |
||||||
| 343 | $url .= '&filter_news_id=' . $this->request->get['filter_news_id']; |
||||||
| 344 | } |
||||||
| 345 | |||||||
| 346 | $data['breadcrumbs'][] = array( |
||||||
| 347 | 'text' => $this->language->get('text_error'), |
||||||
| 348 | 'href' => $this->url->link('product/product', $url . '&product_id=' . $article_id) |
||||||
| 349 | ); |
||||||
| 350 | |||||||
| 351 | $this->document->setTitle($this->language->get('text_error')); |
||||||
| 352 | |||||||
| 353 | $data['heading_title'] = $this->language->get('text_error'); |
||||||
| 354 | |||||||
| 355 | $data['text_error'] = $this->language->get('text_error'); |
||||||
| 356 | $data['text_go_back'] = $this->language->get('text_go_back'); |
||||||
| 357 | $data['text_get_back'] = $this->language->get('text_get_back'); |
||||||
| 358 | |||||||
| 359 | $data['button_continue'] = $this->language->get('button_continue'); |
||||||
| 360 | |||||||
| 361 | $data['continue'] = $this->url->link('common/home'); |
||||||
| 362 | |||||||
| 363 | $this->response->addHeader($this->request->server['SERVER_PROTOCOL'] . ' 404 Not Found'); |
||||||
| 364 | |||||||
| 365 | $data['column'] = $this->load->controller('common/column'); |
||||||
| 366 | |||||||
| 367 | $data['content_top'] = $this->load->controller('common/content_top'); |
||||||
| 368 | $data['content_bottom'] = $this->load->controller('common/content_bottom'); |
||||||
| 369 | $data['footer'] = $this->load->controller('common/footer'); |
||||||
| 370 | $data['header'] = $this->load->controller('common/header'); |
||||||
| 371 | |||||||
| 372 | $this->response->setOutput($this->load->view('error/not_found', $data)); |
||||||
| 373 | } |
||||||
| 374 | } |
||||||
| 375 | |||||||
| 376 | public function download() |
||||||
| 377 | { |
||||||
| 378 | $this->load->model('blog/article'); |
||||||
| 379 | |||||||
| 380 | if (isset($this->request->get['download_id'])) { |
||||||
| 381 | $download_id = $this->request->get['download_id']; |
||||||
| 382 | } else { |
||||||
| 383 | $download_id = 0; |
||||||
| 384 | } |
||||||
| 385 | |||||||
| 386 | if (isset($this->request->get['article_id'])) { |
||||||
| 387 | $article_id = $this->request->get['article_id']; |
||||||
| 388 | } else { |
||||||
| 389 | $article_id = 0; |
||||||
| 390 | } |
||||||
| 391 | |||||||
| 392 | $download_info = $this->model_blog_article->getDownload($article_id, $download_id); |
||||||
| 393 | |||||||
| 394 | if ($download_info) { |
||||||
| 395 | $file = $_SERVER['DOCUMENT_ROOT'] . '/storage/download/' . $download_info['filename']; |
||||||
| 396 | $mask = basename($download_info['mask']); |
||||||
| 397 | |||||||
| 398 | if (!headers_sent()) { |
||||||
| 399 | if (file_exists($file)) { |
||||||
| 400 | header('Content-Description: File Transfer'); |
||||||
| 401 | header('Content-Type: application/octet-stream'); |
||||||
| 402 | header('Content-Disposition: attachment; filename="' . ($mask ? $mask : basename($file)) . '"'); |
||||||
| 403 | header('Content-Transfer-Encoding: binary'); |
||||||
| 404 | header('Expires: 0'); |
||||||
| 405 | header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); |
||||||
| 406 | header('Pragma: public'); |
||||||
| 407 | header('Content-Length: ' . filesize($file)); |
||||||
| 408 | |||||||
| 409 | readfile($file, 'rb'); |
||||||
|
0 ignored issues
–
show
'rb' of type string is incompatible with the type boolean expected by parameter $use_include_path of readfile().
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
|
|||||||
| 410 | |||||||
| 411 | exit; |
||||||
|
0 ignored issues
–
show
|
|||||||
| 412 | } else { |
||||||
| 413 | exit('Error: Could not find file ' . $file . '!'); |
||||||
|
0 ignored issues
–
show
|
|||||||
| 414 | } |
||||||
| 415 | } else { |
||||||
| 416 | exit('Error: Headers already sent out!'); |
||||||
|
0 ignored issues
–
show
|
|||||||
| 417 | } |
||||||
| 418 | } else { |
||||||
| 419 | $this->redirect('/index.php?route=account/download'); |
||||||
|
0 ignored issues
–
show
The method
redirect() does not exist on ControllerBlogArticle.
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces. This is most likely a typographical error or the method has been renamed. Loading history...
|
|||||||
| 420 | } |
||||||
| 421 | } |
||||||
| 422 | |||||||
| 423 | public function review() |
||||||
| 424 | { |
||||||
| 425 | $this->language->load('blog/article'); |
||||||
| 426 | |||||||
| 427 | $this->load->model('blog/review'); |
||||||
| 428 | |||||||
| 429 | $data['text_on'] = $this->language->get('text_on'); |
||||||
|
0 ignored issues
–
show
Comprehensibility
Best Practice
introduced
by
|
|||||||
| 430 | $data['text_no_reviews'] = $this->language->get('text_no_reviews'); |
||||||
| 431 | |||||||
| 432 | if (isset($this->request->get['page'])) { |
||||||
| 433 | $page = $this->request->get['page']; |
||||||
| 434 | } else { |
||||||
| 435 | $page = 1; |
||||||
| 436 | } |
||||||
| 437 | |||||||
| 438 | $data['reviews'] = array(); |
||||||
| 439 | |||||||
| 440 | $review_total = $this->model_blog_review->getTotalReviewsByArticleId($this->request->get['article_id']); |
||||||
| 441 | |||||||
| 442 | $results = $this->model_blog_review->getReviewsByArticleId($this->request->get['article_id'], ($page - 1) * 5, 5); |
||||||
| 443 | |||||||
| 444 | foreach ($results as $result) { |
||||||
| 445 | $data['reviews'][] = array( |
||||||
| 446 | 'author' => $result['author'], |
||||||
| 447 | 'text' => $result['text'], |
||||||
| 448 | 'reviews' => sprintf($this->language->get('text_reviews'), (int)$review_total), |
||||||
| 449 | 'date_added' => date($this->language->get('date_format_short'), strtotime($result['date_added'])) |
||||||
| 450 | ); |
||||||
| 451 | } |
||||||
| 452 | |||||||
| 453 | $pagination = new \Divine\Engine\Library\Pagination(); |
||||||
| 454 | $pagination->total = $review_total; |
||||||
| 455 | $pagination->page = $page; |
||||||
| 456 | $pagination->limit = 5; |
||||||
| 457 | $pagination->url = $this->url->link('blog/article/review', 'article_id=' . $this->request->get['article_id'] . '&page={page}'); |
||||||
| 458 | |||||||
| 459 | $data['pagination'] = $pagination->render(); |
||||||
| 460 | |||||||
| 461 | $data['results'] = sprintf($this->language->get('text_pagination'), ($review_total) ? (($page - 1) * 5) + 1 : 0, ((($page - 1) * 5) > ($review_total - 5)) ? $review_total : ((($page - 1) * 5) + 5), $review_total, ceil($review_total / 5)); |
||||||
| 462 | |||||||
| 463 | $this->response->setOutput($this->load->view('blog/review', $data)); |
||||||
| 464 | } |
||||||
| 465 | |||||||
| 466 | public function write() |
||||||
| 467 | { |
||||||
| 468 | $this->load->language('blog/article'); |
||||||
| 469 | |||||||
| 470 | $json = array(); |
||||||
| 471 | |||||||
| 472 | if ($this->request->server['REQUEST_METHOD'] == 'POST') { |
||||||
| 473 | if ((\voku\helper\UTF8::strlen($this->request->post['name']) < 3) || (\voku\helper\UTF8::strlen($this->request->post['name']) > 25)) { |
||||||
| 474 | $json['error'] = $this->language->get('error_name'); |
||||||
| 475 | } |
||||||
| 476 | |||||||
| 477 | if ((\voku\helper\UTF8::strlen($this->request->post['text']) < 25) || (\voku\helper\UTF8::strlen($this->request->post['text']) > 1000)) { |
||||||
| 478 | $json['error'] = $this->language->get('error_text'); |
||||||
| 479 | } |
||||||
| 480 | |||||||
| 481 | if (!isset($json['error'])) { |
||||||
| 482 | $this->load->model('blog/review'); |
||||||
| 483 | |||||||
| 484 | $this->model_blog_review->addReview($this->request->get['article_id'], $this->request->post); |
||||||
| 485 | |||||||
| 486 | $json['success'] = $this->language->get('text_success'); |
||||||
| 487 | } |
||||||
| 488 | } |
||||||
| 489 | |||||||
| 490 | $this->response->addHeader('Content-Type: application/json'); |
||||||
| 491 | $this->response->setOutput(json_encode($json)); |
||||||
| 492 | } |
||||||
| 493 | |||||||
| 494 | private function getStickers($product_id) |
||||||
| 495 | { |
||||||
| 496 | $stickers = $this->model_catalog_product->getProductStickerbyProductId($product_id); |
||||||
| 497 | |||||||
| 498 | |||||||
| 499 | if (!$stickers) { |
||||||
| 500 | return; |
||||||
| 501 | } |
||||||
| 502 | |||||||
| 503 | $data['stickers'] = array(); |
||||||
|
0 ignored issues
–
show
Comprehensibility
Best Practice
introduced
by
|
|||||||
| 504 | |||||||
| 505 | foreach ($stickers as $sticker) { |
||||||
| 506 | $data['stickers'][] = array( |
||||||
| 507 | 'position' => $sticker['position'], |
||||||
| 508 | 'image' => '/public_html/assets/images/' . $sticker['image'] |
||||||
| 509 | ); |
||||||
| 510 | } |
||||||
| 511 | |||||||
| 512 | return $this->load->view('product/stickers', $data); |
||||||
| 513 | } |
||||||
| 514 | } |
||||||
| 515 |
You can fix this by adding a namespace to your class:
When choosing a vendor namespace, try to pick something that is not too generic to avoid conflicts with other libraries.