oct_blogsearch.php
7.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
<?php
/**
* @copyright OCTemplates
* @support https://octemplates.net/
* @license LICENSE.txt
*/
class ControllerOCTemplatesBlogOCTBlogSearch extends Controller {
public function index() {
if (!$this->config->get('oct_blogsettings_status')) {
$this->response->redirect($this->url->link('common/home', '', true));
}
$this->load->language('octemplates/blog/oct_blogsearch');
$this->load->model('octemplates/blog/oct_blogcategory');
$this->load->model('octemplates/blog/oct_blogarticle');
$this->load->model('tool/image');
$oct_blogsettings_data = $this->config->get('oct_blogsettings_data');
if (isset($this->request->get['search'])) {
$search = $this->request->get['search'];
} else {
$search = '';
}
if (isset($this->request->get['tag'])) {
$tag = $this->request->get['tag'];
} elseif (isset($this->request->get['search'])) {
$tag = $this->request->get['search'];
} else {
$tag = '';
}
$sort = 'a.date_added';
$order = 'DESC';
if (isset($this->request->get['page'])) {
$page = (int)$this->request->get['page'];
} else {
$page = 1;
}
if (isset($this->request->get['limit'])) {
$limit = (int)$this->request->get['limit'];
} else {
$limit = (int)$oct_blogsettings_data['limit'];
}
if (isset($this->request->get['search'])) {
$this->document->setTitle($this->language->get('heading_title') . ' - ' . $this->request->get['search']);
} elseif (isset($this->request->get['tag'])) {
$this->document->setTitle($this->language->get('heading_title') . ' - ' . $this->language->get('heading_tag') . $this->request->get['tag']);
} else {
$this->document->setTitle($this->language->get('heading_title'));
}
$data['breadcrumbs'] = [];
$data['breadcrumbs'][] = [
'text' => $this->language->get('text_home'),
'href' => $this->url->link('common/home')
];
$url = '';
if (isset($this->request->get['search'])) {
$url .= '&search=' . urlencode(html_entity_decode($this->request->get['search'], ENT_QUOTES, 'UTF-8'));
}
if (isset($this->request->get['tag'])) {
$url .= '&tag=' . urlencode(html_entity_decode($this->request->get['tag'], ENT_QUOTES, 'UTF-8'));
}
if (isset($this->request->get['page'])) {
$url .= '&page=' . $this->request->get['page'];
}
if (isset($this->request->get['limit'])) {
$url .= '&limit=' . $this->request->get['limit'];
}
$data['breadcrumbs'][] = [
'text' => $this->language->get('heading_title'),
'href' => $this->url->link('product/search', $url)
];
if (isset($this->request->get['search'])) {
$data['heading_title'] = $this->language->get('heading_title') . ' - ' . $this->request->get['search'];
} else {
$data['heading_title'] = $this->language->get('heading_title');
}
$data['continue'] = $this->url->link('common/home');
$data['articles'] = [];
if (isset($this->request->get['search']) || isset($this->request->get['tag'])) {
$filter_data = [
'filter_name' => $search,
'filter_tag' => $tag,
'sort' => $sort,
'order' => $order,
'start' => ($page - 1) * $limit,
'limit' => $limit
];
$article_total = $this->model_octemplates_blog_oct_blogarticle->getTotalArticles($filter_data);
$results = $this->model_octemplates_blog_oct_blogarticle->getArticles($filter_data);
foreach ($results as $result) {
if ($result['image']) {
$image = $this->model_tool_image->resize($result['image'], $oct_blogsettings_data['articles_width'], $oct_blogsettings_data['articles_height']);
} else {
$image = $this->model_tool_image->resize('placeholder.png', $oct_blogsettings_data['articles_width'], $oct_blogsettings_data['articles_height']);
}
// Get categories
$blog_category_badge = $this->model_octemplates_blog_oct_blogcategory->getBlogCategoryBadges($result['blogarticle_id']);
$description = !empty(trim(strip_tags($result['shot_description']))) ? $result['shot_description'] : $result['description'];
$data['articles'][] = [
'blogarticle_id' => $result['blogarticle_id'],
'thumb' => $image,
'blog_categories' => $blog_category_badge,
'width' => $oct_blogsettings_data['articles_width'],
'height' => $oct_blogsettings_data['articles_height'],
'name' => $result['name'],
'viewed' => $result['viewed'],
'description' => utf8_substr(trim(strip_tags(html_entity_decode($description, ENT_QUOTES, 'UTF-8'))), 0, $oct_blogsettings_data['description_length']) . '..',
'date_added' => $this->load->controller('octemplates/main/oct_functions/OctDateTime', array($result['date_added'], 0)),
'href' => $this->url->link('octemplates/blog/oct_blogarticle', 'blogarticle_id=' . $result['blogarticle_id'] . $url)
];
}
$url = '';
if (isset($this->request->get['search'])) {
$url .= '&search=' . urlencode(html_entity_decode($this->request->get['search'], ENT_QUOTES, 'UTF-8'));
}
if (isset($this->request->get['tag'])) {
$url .= '&tag=' . urlencode(html_entity_decode($this->request->get['tag'], ENT_QUOTES, 'UTF-8'));
}
if (isset($this->request->get['limit'])) {
$url .= '&limit=' . $this->request->get['limit'];
}
$url = '';
if (isset($this->request->get['search'])) {
$url .= '&search=' . urlencode(html_entity_decode($this->request->get['search'], ENT_QUOTES, 'UTF-8'));
}
if (isset($this->request->get['tag'])) {
$url .= '&tag=' . urlencode(html_entity_decode($this->request->get['tag'], ENT_QUOTES, 'UTF-8'));
}
$data['limits'] = [];
$limits = array_unique([$limit, 25, 50, 75, 100]);
sort($limits);
foreach($limits as $value) {
$data['limits'][] = [
'text' => $value,
'value' => $value,
'href' => $this->url->link('product/search', $url . '&limit=' . $value)
];
}
$url = '';
if (isset($this->request->get['search'])) {
$url .= '&search=' . urlencode(html_entity_decode($this->request->get['search'], ENT_QUOTES, 'UTF-8'));
}
if (isset($this->request->get['tag'])) {
$url .= '&tag=' . urlencode(html_entity_decode($this->request->get['tag'], ENT_QUOTES, 'UTF-8'));
}
if (isset($this->request->get['description'])) {
$url .= '&description=' . $this->request->get['description'];
}
if (isset($this->request->get['limit'])) {
$url .= '&limit=' . $this->request->get['limit'];
}
$pagination = new Pagination();
$pagination->total = $article_total;
$pagination->page = $page;
$pagination->limit = $limit;
$pagination->url = $this->url->link('octemplates/blog/oct_blogsearch', $url . '&page={page}');
$data['pagination'] = $pagination->render();
$data['results'] = sprintf($this->language->get('text_pagination'), ($article_total) ? (($page - 1) * $limit) + 1 : 0, ((($page - 1) * $limit) > ($article_total - $limit)) ? $article_total : ((($page - 1) * $limit) + $limit), $article_total, ceil($article_total / $limit));
}
$data['search'] = $search;
$data['sort'] = $sort;
$data['order'] = $order;
$data['limit'] = $limit;
$data['column_left'] = $this->load->controller('common/column_left');
$data['column_right'] = $this->load->controller('common/column_right');
$data['content_top'] = $this->load->controller('common/content_top');
$data['content_bottom'] = $this->load->controller('common/content_bottom');
$data['footer'] = $this->load->controller('common/footer');
$data['header'] = $this->load->controller('common/header');
$oct_data['breadcrumbs'] = $data['breadcrumbs'];
$data['oct_breadcrumbs'] = $this->load->controller('octemplates/main/oct_functions/octBreadcrumbs', $oct_data);
$this->response->setOutput($this->load->view('octemplates/blog/oct_blogsearch', $data));
}
}