Current File : //var/www/vinorea/modules/tvcmsblog/classes/tvcmspostsclass.php |
<?php
/**
* 2007-2025 PrestaShop.
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2025 PrestaShop SA
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
class TvcmsPostsClass extends ObjectModel
{
public $id;
public $id_tvcmsposts;
public $post_author;
public $post_date;
public $post_modified;
public $comment_status;
public $post_password;
public $post_parent;
public $post_type;
public $post_format;
public $category;
public $comment_count;
public $post_title;
public $post_excerpt;
public $post_content;
public $post_img;
public $link_rewrite;
public $position;
public $active;
public $video;
public $audio;
public $gallery;
public $meta_title;
public $meta_description;
public $meta_keyword;
public $related_products;
public static $definition = [
'table' => 'tvcmsposts',
'primary' => 'id_tvcmsposts',
'multilang' => true,
'fields' => [
'post_title' => ['type' => self::TYPE_STRING, 'validate' => 'isString', 'lang' => true],
'meta_title' => ['type' => self::TYPE_STRING, 'validate' => 'isString', 'lang' => true],
'post_excerpt' => ['type' => self::TYPE_STRING, 'validate' => 'isString', 'lang' => true],
'meta_description' => ['type' => self::TYPE_STRING, 'validate' => 'isString', 'lang' => true],
'meta_keyword' => ['type' => self::TYPE_STRING, 'validate' => 'isString', 'lang' => true],
'post_content' => ['type' => self::TYPE_HTML, 'validate' => 'isCleanHtml', 'lang' => true],
'link_rewrite' => ['type' => self::TYPE_STRING, 'validate' => 'isString', 'lang' => true],
'related_products' => ['type' => self::TYPE_STRING, 'validate' => 'isString'],
'video' => ['type' => self::TYPE_HTML, 'validate' => 'isCleanHtml'],
'audio' => ['type' => self::TYPE_HTML, 'validate' => 'isCleanHtml'],
'gallery' => ['type' => self::TYPE_HTML, 'validate' => 'isCleanHtml'],
'post_password' => ['type' => self::TYPE_STRING, 'validate' => 'isString'],
'post_type' => ['type' => self::TYPE_STRING, 'validate' => 'isString'],
'post_format' => ['type' => self::TYPE_STRING, 'validate' => 'isString'],
'category' => ['type' => self::TYPE_INT, 'validate' => 'isunsignedInt'],
'post_date' => ['type' => self::TYPE_DATE, 'validate' => 'isString'],
'post_modified' => ['type' => self::TYPE_DATE, 'validate' => 'isString'],
'post_img' => ['type' => self::TYPE_DATE, 'validate' => 'isString'],
'post_author' => ['type' => self::TYPE_INT, 'validate' => 'isunsignedInt'],
'post_parent' => ['type' => self::TYPE_INT, 'validate' => 'isunsignedInt'],
'comment_status' => ['type' => self::TYPE_STRING, 'validate' => 'isString'],
'comment_count' => ['type' => self::TYPE_INT, 'validate' => 'isunsignedInt'],
'position' => ['type' => self::TYPE_INT, 'validate' => 'isunsignedInt'],
'active' => ['type' => self::TYPE_BOOL, 'validate' => 'isBool'],
],
];
public function __construct($id = null, $id_lang = null, $id_shop = null)
{
Shop::addTableAssociation('tvcmsposts', ['type' => 'shop']);
parent::__construct($id, $id_lang, $id_shop);
}
public function update($null_values = false)
{
if (isset($_FILES['post_img'])
&& isset($_FILES['post_img']['tmp_name'])
&& !empty($_FILES['post_img']['tmp_name'])) {
$tmp = (int) Tools::getValue('id_tvcmsposts');
$res = $this->getSinglePost($tmp);
$categories = TvcmsImageTypeClass::getAllImageTypes();
if (file_exists(TVCMSBLOG_IMG_DIR . $res['post_img'])) {
unlink(TVCMSBLOG_IMG_DIR . $res['post_img']);
}
foreach ($categories as $category) {
if (file_exists(TVCMSBLOG_IMG_DIR . $category['name'] . '-' . $res['post_img'])) {
unlink(TVCMSBLOG_IMG_DIR . $category['name'] . '-' . $res['post_img']);
}
}
$this->post_img = TvcmsBlog::uploadMedia('post_img');
} else {
$id_tvcmsposts = (int) Tools::getValue('id_tvcmsposts');
$img = $this->getSinglePost($id_tvcmsposts);
$this->post_img = $img['post_img'];
}
$tvaudio_temp = Tools::getValue('audio_temp');
if ($tvaudio_temp
&& !empty($tvaudio_temp)
&& is_array($tvaudio_temp)) {
$this->audio = @implode(',', $tvaudio_temp);
}
$tvvideo_temp = Tools::getValue('video_temp');
if ($tvvideo_temp
&& !empty($tvvideo_temp)
&& is_array($tvvideo_temp)) {
$this->video = @implode(',', $tvvideo_temp);
}
$this->galleryUploadsUpdated();
$tags = pSQL(Tools::getValue('meta_tag'));
$tags_ids = self::getCategoryTypeIds($tags);
self::tagPostInsert($this->id, $tags_ids);
$this->post_modified = date('Y-m-d H:i:s');
if (!parent::update($null_values)) {
return false;
}
return true;
}
public function add($autodate = true, $null_values = false)
{
if (isset($_FILES['post_img'])
&& isset($_FILES['post_img']['tmp_name'])
&& !empty($_FILES['post_img']['tmp_name'])) {
$this->post_img = TvcmsBlog::uploadMedia('post_img');
}
$gallery_temp = TvcmsBlog::bulkuploadMedia('gallery_temp');
if (isset($gallery_temp) && !empty($gallery_temp) && is_array($gallery_temp)) {
$this->gallery = @implode(',', $gallery_temp);
}
$tvaudio_temp = Tools::getValue('audio_temp');
if ($tvaudio_temp
&& !empty($tvaudio_temp)
&& is_array($tvaudio_temp)) {
$this->audio = @implode(',', $tvaudio_temp);
}
$tvvideo_temp = Tools::getValue('video_temp');
if ($tvvideo_temp
&& !empty($tvvideo_temp)
&& is_array($tvvideo_temp)) {
$this->video = @implode(',', $tvvideo_temp);
}
$this->post_author = (int) Context::getContext()->employee->id;
$this->post_date = date('Y-m-d H:i:s');
$this->post_modified = date('Y-m-d H:i:s');
if ($this->position <= 0) {
$this->position = self::getTopPosition() + 1;
}
if ($this->post_img && !empty($this->post_img)) {
$this->post_img = $this->post_img;
} else {
$this->post_img = TvcmsBlog::uploadMedia('post_img');
}
$tags = pSQL(Tools::getValue('meta_tag'));
$tags_ids = self::getCategoryTypeIds($tags);
if (!parent::add($autodate, $null_values) || !Validate::isLoadedObject($this)) {
return false;
} else {
self::tagPostInsert($this->id, $tags_ids);
return true;
}
}
public function galleryUploadsUpdated()
{
$main_update_gallery = '';
$gallery_temp = TvcmsBlog::bulkuploadMedia('gallery_temp');
$tvgallery_temp_delete = Tools::getValue('gallery_temp_delete');
if ($tvgallery_temp_delete && !empty($tvgallery_temp_delete)) {
$gallery_temp_delete = @explode(',', $tvgallery_temp_delete);
}
if (isset($this->gallery) && !empty($this->gallery)) {
$thisgallery = @explode(',', $this->gallery);
} else {
$thisgallery = [];
}
$categories = TvcmsImageTypeClass::getAllImageTypes();
if (isset($gallery_temp_delete)) {
foreach ($gallery_temp_delete as $img) {
if (file_exists(TVCMSBLOG_IMG_DIR . $img)) {
unlink(TVCMSBLOG_IMG_DIR . $img);
}
foreach ($categories as $category) {
if (file_exists(TVCMSBLOG_IMG_DIR . $category['name'] . '-' . $img)) {
unlink(TVCMSBLOG_IMG_DIR . $category['name'] . '-' . $img);
}
}
}
}
$org = [];
if (isset($thisgallery)
&& !empty($thisgallery)
&& isset($gallery_temp_delete)
&& !empty($gallery_temp_delete)) {
foreach ($thisgallery as $galvalue) {
if (!in_array($galvalue, $gallery_temp_delete)) {
$org[] = $galvalue;
}
}
if (isset($org) && !empty($org) && isset($gallery_temp) && !empty($gallery_temp)) {
$main_update_gallery = @array_merge($gallery_temp, $org);
} else {
if (isset($org) && !empty($org)) {
$main_update_gallery = $org;
}
if (isset($gallery_temp) && !empty($gallery_temp)) {
$main_update_gallery = $gallery_temp;
}
}
} else {
if (isset($thisgallery) && !empty($thisgallery) && isset($gallery_temp) && !empty($gallery_temp)) {
$main_update_gallery = @array_merge($gallery_temp, $thisgallery);
} elseif (isset($thisgallery) && !empty($thisgallery)) {
$main_update_gallery = $thisgallery;
} elseif (isset($gallery_temp) && !empty($gallery_temp)) {
$main_update_gallery = $gallery_temp;
}
}
if (isset($main_update_gallery) && !empty($main_update_gallery) && is_array($main_update_gallery)) {
// echo "Welcome Here";
$this->gallery = @implode(',', $main_update_gallery);
}
}
public static function getsinglepath($id_post = null, $post_type = 'post')
{
if (null == $id_post) {
return false;
}
$pipe = (Configuration::get('PS_NAVIGATION_PIPE') ? Configuration::get('PS_NAVIGATION_PIPE') : '>');
$posts = self::getTheTitle($id_post, $post_type);
$category = $posts['category'] ? $posts['category'] : null;
$categories = self::getTheCategory($category);
$title = $categories['name'] ? $categories['name'] : '';
$name = $posts['post_title'];
$params = [];
$params['id'] = $categories['id_tvcmscategory'] ? $categories['id_tvcmscategory'] : 0;
$params['rewrite'] = $categories['link_rewrite'] ? $categories['link_rewrite'] : '';
$params['page_type'] = 'category';
$params['subpage_type'] = $post_type ? $post_type : 'post';
$link = TvcmsBlog::tvcmsBlogCategoryLink($params);
$meta_title = Configuration::get(TvcmsBlog::$tvcmsblogshortname . 'meta_title');
$meta_title = (isset($meta_title) ? $meta_title : 'Blog');
$blog_url = TvcmsBlog::tvcmsBlogLink();
$full_paths = '<a href="' . $blog_url . '" title="' . $meta_title . '" data-gg="">' . $meta_title
. '</a><span class="navigation-pipe">' . $pipe . '</span>';
$str = '<a href="' . $link . '" title="' . $title . '" data-gg="">' . $title . '</a><span class="navigation-pipe">'
. $pipe . '</span>' . $name;
return $full_paths . $str;
}
public static function getTopPosition()
{
$sql = 'SELECT MAX(`position`)
FROM `' . _DB_PREFIX_ . 'tvcmsposts`';
$position = DB::getInstance()->getValue($sql);
return (is_numeric($position)) ? $position : -1;
}
public function updatePosition($way, $position)
{
if (!$res = Db::getInstance()->executeS(
'SELECT `id_tvcmsposts`, `position`
FROM `' . _DB_PREFIX_ . 'tvcmsposts`
ORDER BY `position` ASC'
)) {
return false;
}
if (!empty($res)) {
foreach ($res as $tvcmsposts) {
if ((int) $tvcmsposts['id_tvcmsposts'] == (int) $this->id) {
$moved_tvcmsposts = $tvcmsposts;
}
}
}
if (!isset($moved_tvcmsposts) || !isset($position)) {
return false;
}
$queryx = ' UPDATE `' . _DB_PREFIX_ . 'tvcmsposts`
SET `position`= `position` ' . ($way ? '- 1' : '+ 1') . '
WHERE `position`
' . ($way
? '> ' . (int) $moved_tvcmsposts['position'] . ' AND `position` <= ' . (int) $position
: '< ' . (int) $moved_tvcmsposts['position'] . ' AND `position` >= ' . (int) $position . '
');
$queryy = ' UPDATE `' . _DB_PREFIX_ . 'tvcmsposts`
SET `position` = ' . (int) $position . '
WHERE `id_tvcmsposts` = ' . (int) $moved_tvcmsposts['id_tvcmsposts'];
return Db::getInstance()->execute($queryx)
&& Db::getInstance()->execute($queryy);
}
public static function getCategoryTypeIds($values = null)
{
if (null == $values) {
return false;
}
$results = [];
if (isset($values) && !empty($values)) {
$values = explode(',', $values);
if (is_array($values)) {
foreach ($values as $val) {
$results[] = self::tagInsert($val);
}
return $results;
}
} else {
return false;
}
}
public static function tagPostInsert($id_post = null, $category_ids = null, $tag = 'tag')
{
if (null == $id_post || null == $category_ids) {
return false;
} else {
$queryval = '';
self::deleteTagPost($id_post);
if (isset($category_ids) && !empty($category_ids)) {
foreach ($category_ids as $id_category) {
$queryval .= '(' . (int) $id_post . ',' . (int) $id_category . ',"' . $tag . '"),';
}
$queryval = rtrim($queryval, ',');
if (Db::getInstance()->execute('INSERT INTO `' . _DB_PREFIX_
. 'tvcms_category_post`(`id_post`, `id_category`,`type`) VALUES ' . $queryval)) {
return true;
} else {
return false;
}
}
}
}
public static function deleteTagPost($id_post = null, $tag = 'tag')
{
if (null == $id_post) {
return false;
}
$tmp = (int) Tools::getValue('id_tvcmsposts');
$res = self::getSinglePost($tmp);
$categories = TvcmsImageTypeClass::getAllImageTypes();
if (file_exists(TVCMSBLOG_IMG_DIR . $res['post_img'])) {
unlink(TVCMSBLOG_IMG_DIR . $res['post_img']);
}
foreach ($categories as $category) {
if (file_exists(TVCMSBLOG_IMG_DIR . $category['name'] . '-' . $res['post_img'])) {
unlink(TVCMSBLOG_IMG_DIR . $category['name'] . '-' . $res['post_img']);
}
}
if (Db::getInstance()->execute('DELETE FROM ' . _DB_PREFIX_ . 'tvcms_category_post WHERE id_post = '
. $id_post . ' AND type = "' . $tag . '"')) {
return true;
} else {
return false;
}
}
public static function getTheTitle($id_post = null, $post_type = 'post')
{
if (null == $id_post) {
return false;
}
$id_lang = (int) Context::getContext()->language->id;
$id_shop = (int) Context::getContext()->shop->id;
$sql = 'SELECT xc.`id_tvcmsposts`,xc.`category`,xcl.`post_title`,xcl.`link_rewrite` FROM `'
. _DB_PREFIX_ . 'tvcmsposts` xc
INNER JOIN `' . _DB_PREFIX_ . 'tvcmsposts_lang` xcl ON (xc.`id_tvcmsposts` = xcl.`id_tvcmsposts` '
. 'AND xcl.`id_lang` = ' . $id_lang . ')
INNER JOIN `' . _DB_PREFIX_ . 'tvcmsposts_shop` xcs ON (xc.`id_tvcmsposts` = xcs.`id_tvcmsposts` '
. 'AND xcs.`id_shop` = ' . $id_shop . ')
';
$sql .= ' WHERE xc.`post_type` = "' . ($post_type ? $post_type : 'post') . '" AND xc.`id_tvcmsposts` = ' . $id_post;
$rslts = Db::getInstance()->getrow($sql);
return $rslts;
}
public static function getTheId($rewrite = null, $post_type = 'post')
{
if (null == $rewrite) {
return false;
}
$id_lang = (int) Context::getContext()->language->id;
$id_shop = (int) Context::getContext()->shop->id;
$sql = 'SELECT xc.`id_tvcmsposts` FROM `' . _DB_PREFIX_ . 'tvcmsposts` xc INNER JOIN `' . _DB_PREFIX_
. 'tvcmsposts_lang` xcl ON (xc.`id_tvcmsposts` = xcl.`id_tvcmsposts` AND xcl.`id_lang` = '
. $id_lang . ') INNER JOIN `' . _DB_PREFIX_ . 'tvcmsposts_shop` xcs ON '
. '(xc.`id_tvcmsposts` = xcs.`id_tvcmsposts` '
. 'AND xcs.`id_shop` = ' . $id_shop . ') ';
$sql .= ' WHERE xc.`post_type` = "' . ($post_type ? $post_type : 'post') . '" AND xcl.`link_rewrite` = "'
. $rewrite . '" ';
$rslts = Db::getInstance()->getrow($sql);
return isset($rslts['id_tvcmsposts']) ? $rslts['id_tvcmsposts'] : null;
}
public static function postExists($id_post = null, $post_type = 'post')
{
if (null == $id_post || 0 == $id_post) {
return false;
}
$sql = 'SELECT xc.`id_tvcmsposts` FROM `' . _DB_PREFIX_ . 'tvcmsposts` xc WHERE xc.`post_type` = "'
. ($post_type ? $post_type : 'post') . '" AND xc.active = 1 AND xc.`id_tvcmsposts` = ' . $id_post;
$rslts = Db::getInstance()->getrow($sql);
$tmp = $rslts['id_tvcmsposts'];
if (isset($tmp) && !empty($tmp)) {
return true;
} else {
return false;
}
}
public static function getTheRewrite($id = null, $post_type = 'post')
{
if (null == $id) {
return false;
}
$id_lang = (int) Context::getContext()->language->id;
$id_shop = (int) Context::getContext()->shop->id;
$sql = 'SELECT xcl.`link_rewrite` FROM `' . _DB_PREFIX_ . 'tvcmsposts` xc INNER JOIN `' . _DB_PREFIX_
. 'tvcmsposts_lang` xcl ON (xc.`id_tvcmsposts` = xcl.`id_tvcmsposts` AND xcl.`id_lang` = '
. $id_lang . ') INNER JOIN `' . _DB_PREFIX_ . 'tvcmsposts_shop` xcs ON '
. '(xc.`id_tvcmsposts` = xcs.`id_tvcmsposts` '
. 'AND xcs.`id_shop` = ' . $id_shop . ') ';
$sql .= ' WHERE xc.`post_type` = "' . ($post_type ? $post_type : 'post') . '" AND xc.`id_tvcmsposts` = "' . $id . '" ';
$rslts = Db::getInstance()->getrow($sql);
return isset($rslts['link_rewrite']) ? $rslts['link_rewrite'] : null;
}
public static function getTheCategory($id_category = null, $category_type = 'category')
{
if (null == $id_category) {
return false;
}
$id_lang = (int) Context::getContext()->language->id;
$id_shop = (int) Context::getContext()->shop->id;
$sql = 'SELECT xc.`id_tvcmscategory`,xcl.`name`,xcl.`link_rewrite` FROM `' . _DB_PREFIX_ . 'tvcmscategory` xc
INNER JOIN `' . _DB_PREFIX_ . 'tvcmscategory_lang` xcl ON (xc.`id_tvcmscategory` = xcl.`id_tvcmscategory` '
. 'AND xcl.`id_lang` = ' . $id_lang . ')
INNER JOIN `' . _DB_PREFIX_ . 'tvcmscategory_shop` xcs ON (xc.`id_tvcmscategory` = xcs.`id_tvcmscategory` '
. 'AND xcs.`id_shop` = ' . $id_shop . ')
';
$sql .= ' WHERE xc.`category_type` = "' . ($category_type ? $category_type : 'category') . '" AND'
. ' xc.`id_tvcmscategory` = ' . $id_category;
$rslts = Db::getInstance()->getrow($sql);
return $rslts;
}
public static function tagInsert($tag = null)
{
if (null == $tag) {
return false;
}
$Languages = Language::getLanguages();
$id_lang = (int) Context::getContext()->language->id;
$id_shop = (int) Context::getContext()->shop->id;
$sql = 'SELECT xc.`id_tvcmscategory` FROM `' . _DB_PREFIX_ . 'tvcmscategory` xc
INNER JOIN `' . _DB_PREFIX_ . 'tvcmscategory_lang` xcl ON (xc.`id_tvcmscategory` = xcl.`id_tvcmscategory` '
. 'AND xcl.`id_lang` = ' . $id_lang . ')
INNER JOIN `' . _DB_PREFIX_ . 'tvcmscategory_shop` xcs ON (xc.`id_tvcmscategory` = xcs.`id_tvcmscategory` '
. 'AND xcs.`id_shop` = ' . $id_shop . ')
';
$sql .= ' WHERE xc.`category_type` = "tag" AND xcl.`name` = "' . $tag . '"';
$rslts = Db::getInstance()->getrow($sql);
if (isset($rslts) && !empty($rslts)) {
return $rslts['id_tvcmscategory'];
} else {
$tagobj = new TvcmsCategoryClass();
foreach ($Languages as $lang) {
$tagobj->name[$lang['id_lang']] = $tag;
$tagobj->link_rewrite[$lang['id_lang']] = Tools::str2url($tag);
$tagobj->title[$lang['id_lang']] = $tag;
$tagobj->description[$lang['id_lang']] = $tag;
$tagobj->meta_description[$lang['id_lang']] = $tag;
$tagobj->keyword[$lang['id_lang']] = $tag;
}
$tagobj->category_type = 'tag';
$tagobj->category_group = 0;
$tagobj->position = 0;
$tagobj->active = 1;
if ($tagobj->add()) {
return $tagobj->id;
}
return false;
}
}
public static function getPostTags($id_post = null, $tag = 'tag')
{
if (null == $id_post) {
return false;
}
$results = '';
$id_lang = (int) Context::getContext()->language->id; // it use in id_lang from id_shop
$id_shop = (int) Context::getContext()->shop->id;
$sql = 'SELECT xcl.`name` FROM `' . _DB_PREFIX_ . 'tvcms_category_post` xcp
INNER JOIN `' . _DB_PREFIX_ . 'tvcmscategory` xc ON (xcp.`id_category` = xc.`id_tvcmscategory` '
. 'AND xc.`category_type` = "' . $tag . '")
INNER JOIN `' . _DB_PREFIX_ . 'tvcmscategory_lang` xcl ON (xcp.`id_category` = xcl.`id_tvcmscategory` '
. 'AND xcl.`id_lang` = ' . $id_lang . ')
INNER JOIN `' . _DB_PREFIX_ . 'tvcmscategory_shop` xcs ON (xcp.`id_category` = xcs.`id_tvcmscategory` '
. 'AND xcs.`id_shop` = ' . $id_shop . ')
';
$sql .= ' WHERE xcp.`id_post` = ' . $id_post . ' AND xcp.`type` = "' . $tag . '"';
$rslts = Db::getInstance()->executeS($sql);
if (isset($rslts) && !empty($rslts)) {
$countrslts = count($rslts);
$i = 1;
foreach ($rslts as $rslt) {
if ($i == $countrslts) {
$results .= $rslt['name'];
} else {
$results .= $rslt['name'] . ',';
}
++$i;
}
}
return $results;
}
public static function getPostTagsResults($id_post = null, $tag = 'tag')
{
if (null == $id_post) {
return false;
}
$results = [];
$id_lang = (int) Context::getContext()->language->id; // it use in id_lang from id_shop
$id_shop = (int) Context::getContext()->shop->id;
$sql = 'SELECT xcp.`id_category`,xcl.`name`,xcl.`link_rewrite` FROM `' . _DB_PREFIX_ . 'tvcms_category_post` xcp
INNER JOIN `' . _DB_PREFIX_ . 'tvcmscategory` xc ON (xcp.`id_category` = xc.`id_tvcmscategory` AND '
. 'xc.`category_type` = "' . $tag . '")
INNER JOIN `' . _DB_PREFIX_ . 'tvcmscategory_lang` xcl ON (xcp.`id_category` = xcl.`id_tvcmscategory` '
. 'AND xcl.`id_lang` = ' . $id_lang . ')
INNER JOIN `' . _DB_PREFIX_ . 'tvcmscategory_shop` xcs ON (xcp.`id_category` = xcs.`id_tvcmscategory` '
. 'AND xcs.`id_shop` = ' . $id_shop . ')
';
$sql .= ' WHERE xcp.`id_post` = ' . $id_post . ' AND xcp.`type` = "' . $tag . '"';
$rslts = Db::getInstance()->executeS($sql);
if (isset($rslts) && !empty($rslts)) {
$i = 0;
foreach ($rslts as $rslt) {
$results[$i]['name'] = $rslt['name'];
if ('tag' == $tag) {
$results[$i]['id_tag'] = $rslt['id_category'];
$results[$i]['link'] = TvcmsBlog::tvcmsBlogTagLink([
'id' => $rslt['id_category'],
'rewrite' => $rslt['link_rewrite'],
'page_type' => 'tag',
'subpage_type' => 'post',
]);
} elseif ('category' == $tag) {
$results[$i]['id_category'] = $rslt['id_category'];
$results[$i]['link'] = TvcmsBlog::tvcmsBlogCategoryLink([
'id' => $rslt['id_category'],
'rewrite' => $rslt['link_rewrite'],
'page_type' => 'category',
'subpage_type' => 'post',
]);
}
++$i;
}
}
return $results;
}
public static function getBlogTags($count = 10, $tag = 'tag')
{
$results = [];
$id_lang = (int) Context::getContext()->language->id;
$id_shop = (int) Context::getContext()->shop->id;
$sql = 'SELECT xc.`id_tvcmscategory`,xcl.`name`,xcl.`link_rewrite` FROM `' . _DB_PREFIX_ . 'tvcmscategory` xc
INNER JOIN `' . _DB_PREFIX_ . 'tvcmscategory_lang` xcl ON (xc.`id_tvcmscategory` = xcl.`id_tvcmscategory` '
. 'AND xcl.`id_lang` = ' . $id_lang . ')
INNER JOIN `' . _DB_PREFIX_ . 'tvcmscategory_shop` xcs ON (xc.`id_tvcmscategory` = xcs.`id_tvcmscategory` '
. 'AND xcs.`id_shop` = ' . $id_shop . ')
';
$sql .= ' WHERE xc.`category_type` = "' . $tag . '" ';
$sql .= ' ORDER BY xc.`id_tvcmscategory` DESC ';
$sql .= ' LIMIT ' . (int) $count;
$rslts = Db::getInstance()->executeS($sql);
if (isset($rslts) && !empty($rslts)) {
$i = 0;
foreach ($rslts as $rslt) {
$results[$i]['name'] = $rslt['name'];
if ('tag' == $tag) {
$results[$i]['id_tag'] = $rslt['id_tvcmscategory'];
$results[$i]['link'] = TvcmsBlog::tvcmsBlogTagLink([
'id' => $rslt['id_tvcmscategory'],
'rewrite' => $rslt['link_rewrite'],
'page_type' => 'tag',
'subpage_type' => 'post',
]);
} elseif ('category' == $tag) {
$results[$i]['id_category'] = $rslt['id_tvcmscategory'];
$results[$i]['link'] = TvcmsBlog::tvcmsBlogCategoryLink([
'id' => $rslt['id_tvcmscategory'],
'rewrite' => $rslt['link_rewrite'],
'page_type' => 'category',
'subpage_type' => 'post',
]);
}
++$i;
}
}
return $results;
}
public static function getCategoryPostsCount($category = null, $post_type = 'post')
{
$id_lang = (int) Context::getContext()->language->id;
$id_shop = (int) Context::getContext()->shop->id;
$sql = 'SELECT count(xc.`id_tvcmsposts`) as alltvcmsposts FROM `' . _DB_PREFIX_ . 'tvcmsposts` xc
INNER JOIN `' . _DB_PREFIX_ . 'tvcmsposts_lang` xcl ON (xc.`id_tvcmsposts` = xcl.`id_tvcmsposts` '
. 'AND xcl.`id_lang` = ' . $id_lang . ')
INNER JOIN `' . _DB_PREFIX_ . 'tvcmsposts_shop` xcs ON (xc.`id_tvcmsposts` = xcs.`id_tvcmsposts` '
. 'AND xcs.`id_shop` = ' . $id_shop . ')
';
$sql .= ' WHERE xc.`active` = 1 ';
if (0 != (int) $category) {
$sql .= ' AND xc.category = ' . $category;
}
if (null != $post_type) {
$sql .= ' AND xc.post_type = "' . $post_type . '" ';
}
$sql .= ' ORDER BY xc.`position` DESC ';
$queryexec = Db::getInstance()->getrow($sql);
return (int) $queryexec['alltvcmsposts'];
}
public static function getCategoryPosts(
$category = null,
$p = null,
$n = null,
$post_type = 'post',
$order_by = 'DESC'
) {
if (null == $p || $p < 1) {
$p = 1;
}
if (null == $n) {
$n = (int) Configuration::get(TvcmsBlog::$tvcmsblogshortname . 'post_per_page');
}
$results = [];
$id_lang = (int) Context::getContext()->language->id;
$id_shop = (int) Context::getContext()->shop->id;
$GetAllImageTypes = TvcmsImageTypeClass::getAllImageTypes();
$sql = 'SELECT * FROM `' . _DB_PREFIX_ . 'tvcmsposts` xc
INNER JOIN `' . _DB_PREFIX_ . 'tvcmsposts_lang` xcl ON (xc.`id_tvcmsposts` = xcl.`id_tvcmsposts` '
. 'AND xcl.`id_lang` = ' . $id_lang . ')
INNER JOIN `' . _DB_PREFIX_ . 'tvcmsposts_shop` xcs ON (xc.`id_tvcmsposts` = xcs.`id_tvcmsposts` '
. 'AND xcs.`id_shop` = ' . $id_shop . ')
';
$sql .= ' WHERE xc.`active` = 1 ';
if (0 != (int) $category) {
$sql .= ' AND xc.category = ' . $category;
}
if (null != $post_type) {
$sql .= ' AND xc.post_type = "' . $post_type . '" ';
}
$sql .= ' ORDER BY xc.`position` ' . $order_by;
$sql .= ' LIMIT ' . (((int) $p - 1) * (int) $n) . ',' . (int) $n;
$queryexec = Db::getInstance()->executeS($sql);
if (isset($queryexec) && !empty($queryexec)) {
$i = 0;
foreach ($queryexec as $qlvalue) {
if (isset($qlvalue) && !empty($qlvalue)) {
foreach ($qlvalue as $qkey => $qvalue) {
$results[$i][$qkey] = $qvalue;
// start Image
if ('post_img' == $qkey) {
if (isset($GetAllImageTypes) && !empty($GetAllImageTypes)) {
foreach ($GetAllImageTypes as $imagetype) {
$results[$i]['post_img_' . $imagetype['name']] = TVCMSBLOG_IMG_URI
. $imagetype['name'] . '-' . $qvalue;
if (!self::imageExists($imagetype['name'] . '-' . $qvalue)) {
$results[$i]['post_img_' . $imagetype['name']] = TVCMSBLOG_IMG_URI
. 'noimage.jpg';
}
}
if (!self::imageExists($qvalue)) {
$results[$i]['post_img'] = 'noimage.jpg';
}
}
}
// end Image
if ('post_author' == $qkey) {
$post_author_arr = new Employee((int) $qvalue);
$results[$i]['post_author_arr']['lastname'] = $post_author_arr->lastname;
$results[$i]['post_author_arr']['firstname'] = $post_author_arr->firstname;
}
// $check_data = 'SELECT `id_tvcmsposts` FROM `' . _DB_PREFIX_ . 'tvcmsposts_view` where `id_tvcmsposts` = ' . $qlvalue['id_tvcmsposts'] . '';
// $ansaa = Db::getInstance()->executeS($check_data);
// if (!empty($ansaa)) {
// $blogview = count($ansaa);
// } else {
// $blogview = 0;
// }
// $results[$i]['blog_view']['view'] = $blogview;
$results[$i]['link'] = TvcmsBlog::tvcmsBlogPostLink([
'id' => $qlvalue['id_tvcmsposts'],
'rewrite' => $qlvalue['link_rewrite'],
'page_type' => $post_type,
]);
$results[$i]['post_tags'] = self::getPostTagsResults($qlvalue['id_tvcmsposts'], 'tag');
if (isset($qlvalue['audio']) && !empty($qlvalue['audio'])) {
$results[$i]['audio_lists'] = @explode(',', $qlvalue['audio']);
}
if (isset($qlvalue['video']) && !empty($qlvalue['video'])) {
$results[$i]['video_lists'] = @explode(',', $qlvalue['video']);
}
if (isset($qlvalue['gallery']) && !empty($qlvalue['gallery'])) {
$gallery_lists = @explode(',', $qlvalue['gallery']);
if (isset($gallery_lists) && !empty($gallery_lists)) {
$ij = 0;
foreach ($gallery_lists as $gall) {
$results[$i]['gallery_lists'][$ij]['main'] = TVCMSBLOG_IMG_URI . $gall;
if (isset($GetAllImageTypes) && !empty($GetAllImageTypes)) {
foreach ($GetAllImageTypes as $imagetype) {
$results[$i]['gallery_lists'][$ij][$imagetype['name']] = TVCMSBLOG_IMG_URI
. $imagetype['name'] . '-' . $gall;
if (!self::imageExists($imagetype['name'] . '-' . $gall)) {
$tmp = TVCMSBLOG_IMG_URI . 'noimage.jpg';
$results[$i]['gallery_lists'][$ij][$imagetype['name']] = $tmp;
}
}
}
++$ij;
}
}
}
if ('category' == $qkey) {
$category_arr = new TvcmsCategoryClass((int) $qvalue);
$results[$i]['category_arr']['id'] = @$category_arr->id;
$results[$i]['category_arr']['name'] = @$category_arr->name[$id_lang];
$results[$i]['category_arr']['link_rewrite'] = @$category_arr->link_rewrite[$id_lang];
$results[$i]['category_arr']['title'] = @$category_arr->title[$id_lang];
$results[$i]['category_arr']['link'] = TvcmsBlog::tvcmsBlogCategoryLink([
'id' => $category_arr->id,
'rewrite' => $category_arr->link_rewrite[$id_lang],
'page_type' => 'category',
'subpage_type' => $post_type,
]);
}
$post_id = $qlvalue['id_tvcmsposts'];
if (isset($post_id) && !empty($post_id)) {
$tvcmsblog_total_commets = TvcmsCommentClass::getCountComments($post_id);
$results[$i]['total_comments'] = $tvcmsblog_total_commets;
}
}
++$i;
}
}
}
return $results;
}
public static function getPopularPosts($count = 4, $post_type = 'post', $order_by = 'DESC')
{
$results = [];
$id_lang = (int) Context::getContext()->language->id;
$id_shop = (int) Context::getContext()->shop->id;
$GetAllImageTypes = TvcmsImageTypeClass::getAllImageTypes();
$sql = 'SELECT * FROM `' . _DB_PREFIX_ . 'tvcmsposts` xc
INNER JOIN `' . _DB_PREFIX_ . 'tvcmsposts_lang` xcl ON (xc.`id_tvcmsposts` = xcl.`id_tvcmsposts` '
. 'AND xcl.`id_lang` = ' . $id_lang . ')
INNER JOIN `' . _DB_PREFIX_ . 'tvcmsposts_shop` xcs ON (xc.`id_tvcmsposts` = xcs.`id_tvcmsposts` '
. 'AND xcs.`id_shop` = ' . $id_shop . ')
';
$sql .= ' WHERE xc.`active` = 1 ';
if (null != $post_type) {
$sql .= ' AND xc.post_type = "' . $post_type . '" ';
}
$sql .= ' ORDER BY xc.`comment_count` ' . $order_by;
$sql .= ' LIMIT ' . (int) $count;
$queryexec = Db::getInstance()->executeS($sql);
if (isset($queryexec) && !empty($queryexec)) {
$i = 0;
foreach ($queryexec as $qlvalue) {
if (isset($qlvalue) && !empty($qlvalue)) {
foreach ($qlvalue as $qkey => $qvalue) {
$results[$i][$qkey] = $qvalue;
// start Image
if ('post_img' == $qkey) {
if (isset($GetAllImageTypes) && !empty($GetAllImageTypes)) {
foreach ($GetAllImageTypes as $imagetype) {
$results[$i]['post_img_' . $imagetype['name']] = TVCMSBLOG_IMG_URI
. $imagetype['name'] . '-' . $qvalue;
if (!self::imageExists($imagetype['name'] . '-' . $qvalue)) {
$results[$i]['post_img_' . $imagetype['name']] = TVCMSBLOG_IMG_URI
. 'noimage.jpg';
}
}
if (!self::imageExists($qvalue)) {
$results[$i]['post_img'] = 'noimage.jpg';
}
}
}
// end Image
if ('post_author' == $qkey) {
$post_author_arr = new Employee((int) $qvalue);
$results[$i]['post_author_arr']['lastname'] = $post_author_arr->lastname;
$results[$i]['post_author_arr']['firstname'] = $post_author_arr->firstname;
}
$results[$i]['link'] = TvcmsBlog::tvcmsBlogPostLink([
'id' => $qlvalue['id_tvcmsposts'],
'rewrite' => $qlvalue['link_rewrite'],
'page_type' => $post_type,
]);
$results[$i]['post_tags'] = self::getPostTagsResults($qlvalue['id_tvcmsposts'], 'tag');
if (isset($qlvalue['audio']) && !empty($qlvalue['audio'])) {
$results[$i]['audio_lists'] = @explode(',', $qlvalue['audio']);
}
if (isset($qlvalue['video']) && !empty($qlvalue['video'])) {
$results[$i]['video_lists'] = @explode(',', $qlvalue['video']);
}
if (isset($qlvalue['gallery']) && !empty($qlvalue['gallery'])) {
$gallery_lists = @explode(',', $qlvalue['gallery']);
if (isset($gallery_lists) && !empty($gallery_lists)) {
$ij = 0;
foreach ($gallery_lists as $gall) {
$results[$i]['gallery_lists'][$ij]['main'] = TVCMSBLOG_IMG_URI . $gall;
if (isset($GetAllImageTypes) && !empty($GetAllImageTypes)) {
foreach ($GetAllImageTypes as $imagetype) {
$results[$i]['gallery_lists'][$ij][$imagetype['name']] = TVCMSBLOG_IMG_URI
. $imagetype['name'] . '-' . $gall;
if (!self::imageExists($imagetype['name'] . '-' . $gall)) {
$tmp = TVCMSBLOG_IMG_URI . 'noimage.jpg';
$results[$i]['gallery_lists'][$ij][$imagetype['name']] = $tmp;
}
}
}
++$ij;
}
}
}
if ('category' == $qkey) {
$category_arr = new TvcmsCategoryClass((int) $qvalue);
$results[$i]['category_arr']['id'] = @$category_arr->id;
$results[$i]['category_arr']['name'] = @$category_arr->name[$id_lang];
$results[$i]['category_arr']['link_rewrite'] = @$category_arr->link_rewrite[$id_lang];
$results[$i]['category_arr']['title'] = @$category_arr->title[$id_lang];
$results[$i]['category_arr']['link'] = TvcmsBlog::tvcmsBlogCategoryLink([
'id' => $category_arr->id,
'rewrite' => $category_arr->link_rewrite[$id_lang],
'page_type' => 'category',
'subpage_type' => $post_type,
]);
}
}
++$i;
}
}
}
return $results;
}
public static function getRecentPosts($count = 4, $post_type = 'post', $order_by = 'DESC')
{
$results = [];
$id_lang = (int) Context::getContext()->language->id;
$id_shop = (int) Context::getContext()->shop->id;
$GetAllImageTypes = TvcmsImageTypeClass::getAllImageTypes();
$sql = 'SELECT * FROM `' . _DB_PREFIX_ . 'tvcmsposts` xc
INNER JOIN `' . _DB_PREFIX_ . 'tvcmsposts_lang` xcl ON (xc.`id_tvcmsposts` = xcl.`id_tvcmsposts` '
. 'AND xcl.`id_lang` = ' . $id_lang . ')
INNER JOIN `' . _DB_PREFIX_ . 'tvcmsposts_shop` xcs ON (xc.`id_tvcmsposts` = xcs.`id_tvcmsposts` '
. 'AND xcs.`id_shop` = ' . $id_shop . ')
';
$sql .= ' WHERE xc.`active` = 1 ';
if (null != $post_type) {
$sql .= ' AND xc.post_type = "' . $post_type . '" ';
}
$sql .= ' ORDER BY xc.`id_tvcmsposts` ' . $order_by;
$sql .= ' LIMIT ' . (int) $count;
$queryexec = Db::getInstance()->executeS($sql);
if (isset($queryexec) && !empty($queryexec)) {
$i = 0;
foreach ($queryexec as $qlvalue) {
if (isset($qlvalue) && !empty($qlvalue)) {
foreach ($qlvalue as $qkey => $qvalue) {
$results[$i][$qkey] = $qvalue;
// start Image
if ('post_img' == $qkey) {
if (isset($GetAllImageTypes) && !empty($GetAllImageTypes)) {
foreach ($GetAllImageTypes as $imagetype) {
$results[$i]['post_img_' . $imagetype['name']] = TVCMSBLOG_IMG_URI
. $imagetype['name'] . '-' . $qvalue;
if (!self::imageExists($imagetype['name'] . '-' . $qvalue)) {
$results[$i]['post_img_' . $imagetype['name']] = TVCMSBLOG_IMG_URI
. 'noimage.jpg';
}
}
if (!self::imageExists($qvalue)) {
$results[$i]['post_img'] = 'noimage.jpg';
}
}
}
// end Image
if ('post_author' == $qkey) {
$post_author_arr = new Employee((int) $qvalue);
$results[$i]['post_author_arr']['lastname'] = $post_author_arr->lastname;
$results[$i]['post_author_arr']['firstname'] = $post_author_arr->firstname;
}
$results[$i]['link'] = TvcmsBlog::tvcmsBlogPostLink([
'id' => $qlvalue['id_tvcmsposts'],
'rewrite' => $qlvalue['link_rewrite'],
'page_type' => $post_type,
]);
$results[$i]['post_tags'] = self::getPostTagsResults($qlvalue['id_tvcmsposts'], 'tag');
if (isset($qlvalue['audio']) && !empty($qlvalue['audio'])) {
$results[$i]['audio_lists'] = @explode(',', $qlvalue['audio']);
}
if (isset($qlvalue['video']) && !empty($qlvalue['video'])) {
$results[$i]['video_lists'] = @explode(',', $qlvalue['video']);
}
if (isset($qlvalue['gallery']) && !empty($qlvalue['gallery'])) {
$gallery_lists = @explode(',', $qlvalue['gallery']);
if (isset($gallery_lists) && !empty($gallery_lists)) {
$ij = 0;
foreach ($gallery_lists as $gall) {
$results[$i]['gallery_lists'][$ij]['main'] = TVCMSBLOG_IMG_URI . $gall;
if (isset($GetAllImageTypes) && !empty($GetAllImageTypes)) {
foreach ($GetAllImageTypes as $imagetype) {
$results[$i]['gallery_lists'][$ij][$imagetype['name']] = TVCMSBLOG_IMG_URI
. $imagetype['name'] . '-' . $gall;
if (!self::imageExists($imagetype['name'] . '-' . $gall)) {
$tmp = TVCMSBLOG_IMG_URI . 'noimage.jpg';
$results[$i]['gallery_lists'][$ij][$imagetype['name']] = $tmp;
}
}
}
++$ij;
}
}
}
if ('category' == $qkey) {
$category_arr = new TvcmsCategoryClass((int) $qvalue);
$results[$i]['category_arr']['id'] = @$category_arr->id;
$results[$i]['category_arr']['name'] = @$category_arr->name[$id_lang];
$results[$i]['category_arr']['link_rewrite'] = @$category_arr->link_rewrite[$id_lang];
$results[$i]['category_arr']['title'] = @$category_arr->title[$id_lang];
$results[$i]['category_arr']['link'] = TvcmsBlog::tvcmsBlogCategoryLink([
'id' => $category_arr->id,
'rewrite' => $category_arr->link_rewrite[$id_lang],
'page_type' => 'category',
'subpage_type' => $post_type,
]);
}
}
++$i;
}
}
}
return $results;
}
public static function imageExists($file = null)
{
if (null == $file) {
return false;
}
$image = TVCMSBLOG_IMG_DIR . $file;
if (file_exists($image)) {
return true;
} else {
return false;
}
}
public static function postCountUpdate($id = null)
{
if (null == $id || 0 == $id) {
return false;
}
$sql = 'UPDATE ' . _DB_PREFIX_ . 'tvcmsposts as xc SET xc.comment_count = (xc.comment_count+1) '
. 'where xc.id_tvcmsposts = ' . $id;
if (Db::getInstance()->execute($sql)) {
return true;
} else {
return false;
}
}
public static function getSinglePost($id_post = null, $post_type = 'post')
{
if (null == $id_post) {
return false;
}
$results = [];
$id_lang = (int) Context::getContext()->language->id;
$id_shop = (int) Context::getContext()->shop->id;
$GetAllImageTypes = TvcmsImageTypeClass::getAllImageTypes();
$sql = 'SELECT * FROM `' . _DB_PREFIX_ . 'tvcmsposts` xc
INNER JOIN `' . _DB_PREFIX_ . 'tvcmsposts_lang` xcl ON (xc.`id_tvcmsposts` = xcl.`id_tvcmsposts` '
. 'AND xcl.`id_lang` = ' . $id_lang . ')
INNER JOIN `' . _DB_PREFIX_ . 'tvcmsposts_shop` xcs ON (xc.`id_tvcmsposts` = xcs.`id_tvcmsposts` '
. 'AND xcs.`id_shop` = ' . $id_shop . ')
';
$sql .= ' WHERE xc.`active` = 1 AND xc.post_type = "' . $post_type . '" AND xc.id_tvcmsposts = ' . (int) $id_post;
$queryexec = Db::getInstance()->getrow($sql);
if (isset($queryexec) && !empty($queryexec)) {
foreach ($queryexec as $qkey => $qvalue) {
$results[$qkey] = $qvalue;
// start Image
if ('post_img' == $qkey) {
if (isset($GetAllImageTypes) && !empty($GetAllImageTypes)) {
foreach ($GetAllImageTypes as $imagetype) {
$tmp = TVCMSBLOG_IMG_URI . $imagetype['name'] . '-' . $qvalue;
$results['post_img_' . $imagetype['name']] = $tmp;
if (!self::imageExists($imagetype['name'] . '-' . $qvalue)) {
$results['post_img_' . $imagetype['name']] = TVCMSBLOG_IMG_URI
. 'noimage.jpg';
}
}
if (!self::imageExists($qvalue)) {
$results['post_img'] = 'noimage.jpg';
}
}
}
// end Image
if ('post_author' == $qkey) {
$post_author_arr = new Employee((int) $qvalue);
$results['post_author_arr']['lastname'] = $post_author_arr->lastname;
$results['post_author_arr']['firstname'] = $post_author_arr->firstname;
}
if ('audio' == $qkey) {
$results['audio_lists'] = @explode(',', $qvalue);
}
if ('video' == $qkey) {
$results['video_lists'] = @explode(',', $qvalue);
}
if ('gallery' == $qkey) {
$gallery_lists = @explode(',', $qvalue);
if (isset($gallery_lists) && !empty($gallery_lists)) {
$ij = 0;
foreach ($gallery_lists as $gall) {
$results['gallery_lists'][$ij]['main'] = TVCMSBLOG_IMG_URI . $gall;
if (isset($GetAllImageTypes) && !empty($GetAllImageTypes)) {
foreach ($GetAllImageTypes as $imagetype) {
$results['gallery_lists'][$ij][$imagetype['name']] = TVCMSBLOG_IMG_URI
. $imagetype['name'] . '-' . $gall;
if (!self::imageExists($imagetype['name'] . '-' . $gall)) {
$tmp = TVCMSBLOG_IMG_URI . 'noimage.jpg';
$results['gallery_lists'][$ij][$imagetype['name']] = $tmp;
}
}
}
++$ij;
}
}
}
$results['link'] = TvcmsBlog::tvcmsBlogPostLink([
'id' => $queryexec['id_tvcmsposts'],
'rewrite' => $queryexec['link_rewrite'],
'page_type' => $post_type,
]);
$results['post_tags'] = self::getPostTagsResults($queryexec['id_tvcmsposts'], 'tag');
if ('category' == $qkey) {
$category_arr = new TvcmsCategoryClass((int) $qvalue);
$results['category_arr']['id'] = @$category_arr->id;
$results['category_arr']['name'] = @$category_arr->name[$id_lang];
$results['category_arr']['title'] = @$category_arr->title[$id_lang];
$results['category_arr']['link_rewrite'] = @$category_arr->link_rewrite[$id_lang];
$results['category_arr']['link'] = TvcmsBlog::tvcmsBlogCategoryLink([
'id' => $category_arr->id,
'rewrite' => $category_arr->link_rewrite[$id_lang],
'subpage_type' => $post_type,
'page_type' => 'category',
]);
}
}
}
return $results;
}
public static function getTagPosts($id_tag = null, $p = null, $n = null, $post_type = 'post', $order_by = 'DESC')
{
if (null == $id_tag || 0 == $id_tag) {
return false;
}
if (null == $p || $p < 1) {
$p = 1;
}
if (null == $n) {
$n = (int) Configuration::get(TvcmsBlog::$tvcmsblogshortname . 'post_per_page');
}
$results = [];
$id_lang = (int) Context::getContext()->language->id;
$id_shop = (int) Context::getContext()->shop->id;
$GetAllImageTypes = TvcmsImageTypeClass::getAllImageTypes();
$sql = 'SELECT * FROM `' . _DB_PREFIX_ . 'tvcmsposts` xc
INNER JOIN `' . _DB_PREFIX_ . 'tvcmsposts_lang` xcl ON (xc.`id_tvcmsposts` = xcl.`id_tvcmsposts` '
. 'AND xcl.`id_lang` = ' . $id_lang . ')
INNER JOIN `' . _DB_PREFIX_ . 'tvcmsposts_shop` xcs ON (xc.`id_tvcmsposts` = xcs.`id_tvcmsposts` '
. 'AND xcs.`id_shop` = ' . $id_shop . ')
INNER JOIN `' . _DB_PREFIX_ . 'tvcms_category_post` xcp ON (xcp.`id_post` = xc.`id_tvcmsposts` '
. 'AND xcp.`id_category` = ' . (int) $id_tag . ' )
';
$sql .= ' WHERE xc.`active` = 1 ';
if (null != $post_type) {
$sql .= ' AND xc.post_type = "' . $post_type . '" ';
}
$sql .= ' ORDER BY xc.`position` ' . $order_by;
$sql .= ' LIMIT ' . (((int) $p - 1) * (int) $n) . ',' . (int) $n;
$queryexec = Db::getInstance()->executeS($sql);
if (isset($queryexec) && !empty($queryexec)) {
$i = 0;
foreach ($queryexec as $qlvalue) {
if (isset($qlvalue) && !empty($qlvalue)) {
foreach ($qlvalue as $qkey => $qvalue) {
$results[$i][$qkey] = $qvalue;
// start Image
if ('post_img' == $qkey) {
if (isset($GetAllImageTypes) && !empty($GetAllImageTypes)) {
foreach ($GetAllImageTypes as $imagetype) {
$results[$i]['post_img_' . $imagetype['name']] = TVCMSBLOG_IMG_URI
. $imagetype['name'] . '-' . $qvalue;
if (!self::imageExists($imagetype['name'] . '-' . $qvalue)) {
$results[$i]['post_img_' . $imagetype['name']] = TVCMSBLOG_IMG_URI
. 'noimage.jpg';
}
}
if (!self::imageExists($qvalue)) {
$results[$i]['post_img'] = 'noimage.jpg';
}
}
}
// end Image
if ('post_author' == $qkey) {
$post_author_arr = new Employee((int) $qvalue);
$results[$i]['post_author_arr']['lastname'] = $post_author_arr->lastname;
$results[$i]['post_author_arr']['firstname'] = $post_author_arr->firstname;
}
$results[$i]['link'] = TvcmsBlog::tvcmsBlogPostLink([
'id' => $qlvalue['id_tvcmsposts'],
'rewrite' => $qlvalue['link_rewrite'],
'page_type' => $post_type,
]);
$results[$i]['post_tags'] = self::getPostTagsResults($qlvalue['id_tvcmsposts'], 'tag');
if (isset($qlvalue['audio']) && !empty($qlvalue['audio'])) {
$results[$i]['audio_lists'] = @explode(',', $qlvalue['audio']);
}
if (isset($qlvalue['video']) && !empty($qlvalue['video'])) {
$results[$i]['video_lists'] = @explode(',', $qlvalue['video']);
}
if (isset($qlvalue['gallery']) && !empty($qlvalue['gallery'])) {
$gallery_lists = @explode(',', $qlvalue['gallery']);
if (isset($gallery_lists) && !empty($gallery_lists)) {
$ij = 0;
foreach ($gallery_lists as $gall) {
$results[$i]['gallery_lists'][$ij]['main'] = TVCMSBLOG_IMG_URI . $gall;
if (isset($GetAllImageTypes) && !empty($GetAllImageTypes)) {
foreach ($GetAllImageTypes as $imagetype) {
$results[$i]['gallery_lists'][$ij][$imagetype['name']] = TVCMSBLOG_IMG_URI
. $imagetype['name'] . '-' . $gall;
if (!self::imageExists($imagetype['name'] . '-' . $gall)) {
$tmp = TVCMSBLOG_IMG_URI . 'noimage.jpg';
$results[$i]['gallery_lists'][$ij][$imagetype['name']] = $tmp;
}
}
}
++$ij;
}
}
}
if ('category' == $qkey) {
$category_arr = new TvcmsCategoryClass((int) $qvalue);
$results[$i]['category_arr']['id'] = @$category_arr->id;
$results[$i]['category_arr']['name'] = @$category_arr->name[$id_lang];
$results[$i]['category_arr']['link_rewrite'] = @$category_arr->link_rewrite[$id_lang];
$results[$i]['category_arr']['title'] = @$category_arr->title[$id_lang];
$results[$i]['category_arr']['link'] = TvcmsBlog::tvcmsBlogCategoryLink([
'id' => $category_arr->id,
'rewrite' => $category_arr->link_rewrite[$id_lang],
'page_type' => 'category',
'subpage_type' => $post_type,
]);
}
}
++$i;
}
}
}
return $results;
}
}