* @copyright 2007-2015 Leotheme * @license http://leotheme.com - prestashop template provider */ if (!defined('_PS_VERSION_')) { # module validation exit; } class LeoBlogHelper { public $bloglink = null; public $ssl; public static function getInstance() { static $instance = null; if (!$instance) { # validate module $instance = new LeoBlogHelper(); } return $instance; } public function __construct() { if (Configuration::get('PS_SSL_ENABLED') && Configuration::get('PS_SSL_ENABLED_EVERYWHERE')) { $this->ssl = true; } $protocol_link = (Configuration::get('PS_SSL_ENABLED') || Tools::usingSecureMode()) ? 'https://' : 'http://'; $use_ssl = ((isset($this->ssl) && $this->ssl && Configuration::get('PS_SSL_ENABLED')) || Tools::usingSecureMode()) ? true : false; $protocol_content = ($use_ssl) ? 'https://' : 'http://'; $this->bloglink = new LeoBlogLink($protocol_link, $protocol_content); } public static function loadMedia($context, $obj) { //DONGND:: update new direction for media $media_dir = $obj->module->getMediaDir(); if (file_exists(_PS_THEME_DIR_.'css/modules/leoblog/assets/leoblog.css')) { $context->controller->addCss(__PS_BASE_URI__.$media_dir.'assets/leoblog.css'); } else { $context->controller->addCss(__PS_BASE_URI__.$media_dir.'css/leoblog.css'); } if (file_exists(_PS_THEME_DIR_.'js/modules/leoblog/assets/leoblog.js')) { $context->controller->addJs(__PS_BASE_URI__.$media_dir.'assets/leoblog.js'); } else { $context->controller->addJs(__PS_BASE_URI__.$media_dir.'js/leoblog.js'); } } public function getLinkObject() { return $this->bloglink; } public function getModuleLink($route_id, $controller, array $params = array(), $ssl = null, $id_lang = null, $id_shop = null) { return $this->getLinkObject()->getLink($route_id, $controller, $params, $ssl, $id_lang, $id_shop); } public function getFontBlogLink() { return $this->getModuleLink('module-leoblog-list', 'list', array()); } public function getPaginationLink($route_id, $controller, array $params = array(), $nb = false, $sort = false, $pagination = false, $array = true) { return $this->getLinkObject()->getLeoPaginationLink('leoblog', $route_id, $controller, $params, $nb, $sort, $pagination, $array); } public function getBlogLink($blog, $params1 = array()) { $params = array( 'id' => $blog['id_leoblog_blog'], 'rewrite' => $blog['link_rewrite'], ); $params = array_merge($params, $params1); // echo '
';
        // print_r($params);die();
        return $this->getModuleLink('module-leoblog-blog', 'blog', $params);
    }

    public function getTagLink($tag)
    {
        $params = array(
            'tag' => $tag,
        );

        return $this->getModuleLink('blog_user_filter_rule', 'blog', $params);
    }

    public function getBlogCatLink($cparams)
    {
        $params = array(
            'id' => '',
            'rewrite' => ''
        );
        $params = array_merge($params, $cparams);
        return $this->getModuleLink('module-leoblog-category', 'category', $params);
    }

    public function getBlogTagLink($tag, $cparams = array())
    {
        $params = array(
            'tag' => urlencode($tag),
        );
        $params = array_merge($params, $cparams);
        return $this->getModuleLink('module-leoblog-list', 'list', $params);
    }

    public function getBlogAuthorLink($author, $cparams = array())
    {
        $params = array(
            'author' => $author,
        );
        $params = array_merge($params, $cparams);
        return $this->getModuleLink('module-leoblog-list', 'list', $params);
    }

    public static function getTemplates()
    {
        $theme = _THEME_NAME_;
        $path = _PS_MODULE_DIR_.'leoblog';
        $tpath = _PS_ALL_THEMES_DIR_.$theme.'modules/leoblog/front';

        $output = array();

        $templates = glob($path.'/views/templates/front/*', GLOB_ONLYDIR);

        $ttemplates = glob($tpath, GLOB_ONLYDIR);
        if ($templates) {
            foreach ($templates as $t) {
                # validate module
                $output[basename($t)] = array('type' => 'module', 'template' => basename($t));
            }
        }
        if ($ttemplates) {
            foreach ($ttemplates as $t) {
                # validate module
                $output[basename($t)] = array('type' => 'module', 'template' => basename($t));
            }
        }

        return $output;
    }

    public static function buildBlog($helper, $blog, $image_w, $image_h, $config, $check_thumb = false)
    {
        # module validation
        !is_null($image_w) ? true : $image_w = 0;
        !is_null($image_h) ? true : $image_h = 0;

        $url = _PS_BASE_URL_;
        if (Tools::usingSecureMode()) {
            # validate module
            $url = _PS_BASE_URL_SSL_;
        }

        $id_shop = (int)Context::getContext()->shop->id;
        $blog['preview_url'] = '';
        $blog['image_url'] = '';

        $blog['preview_thumb_url'] = '';
        $blog['thumb_url'] = '';
        //DONGND:: check callback for Appagebuilder, only create thumb image if exists
        if ($check_thumb && isset($blog['thumb']) && $blog['thumb'] != '') {
            if (isset($blog['thumb']) && $blog['thumb'] != '') {
                $blog['thumb_url'] = $url . '/themes/leo_gstore/assets/img/modules/leoblog/'.$id_shop.'/b/'.$blog['thumb'];
                // TODO: Poprawić
                // if (!file_exists(_LEOBLOG_CACHE_IMG_DIR_.'b/'.$id_shop.'/'.$blog['id_leoblog_blog'].'/'.$image_w.'_'.$image_h.'/'.$blog['thumb'])) {
                //     @mkdir(_LEOBLOG_CACHE_IMG_DIR_.'b/'.$id_shop, 0777);
                //     @mkdir(_LEOBLOG_CACHE_IMG_DIR_.'b/'.$id_shop.'/'.$blog['id_leoblog_blog'], 0777);
                //     @mkdir(_LEOBLOG_CACHE_IMG_DIR_.'b/'.$id_shop.'/'.$blog['id_leoblog_blog'].'/'.$image_w.'_'.$image_h, 0777);

                //     if (ImageManager::resize('/themes/leo_gstore/assets/img/modules/leoblog/'.$id_shop.'/b/'.$blog['thumb'], _LEOBLOG_CACHE_IMG_DIR_.'b/'.$id_shop.'/'.$blog['id_leoblog_blog'].'/'.$image_w.'_'.$image_h.'/'.$blog['thumb'], $image_w, $image_h)) {
                //         # validate module
                //         $blog['preview_thumb_url'] = _LEOBLOG_CACHE_IMG_DIR_.'b/'.$id_shop.'/'.$blog['id_leoblog_blog'].'/'.$image_w.'_'.$image_h.'/'.$blog['thumb'];
                //     }
                // }
                $blog['thumb_url'] = $url . '/themes/leo_gstore/assets/img/modules/leoblog/'.$id_shop.'/b/'.$blog['thumb'];
                // $blog['preview_thumb_url'] = $url._LEOBLOG_CACHE_IMG_URI_.'b/'.$id_shop.'/'.$blog['id_leoblog_blog'].'/'.$image_w.'_'.$image_h.'/'.$blog['thumb'];
                $blog['preview_thumb_url'] = $url . '/themes/leo_gstore/assets/img/modules/leoblog/'.$id_shop.'/b/'.$blog['thumb'];
            }
        } else {
            if ($blog['image']) {
                $blog['image_url'] = $url . '/themes/leo_gstore/assets/img/modules/leoblog/'.$id_shop.'/b/'.$blog['image'];
                // TODO: Poprawić
                // if (!file_exists(_LEOBLOG_CACHE_IMG_DIR_.'b/'.$id_shop.'/'.$blog['id_leoblog_blog'].'/'.$image_w.'_'.$image_h.'/'.$blog['image'])) {
                //     @mkdir(_LEOBLOG_CACHE_IMG_DIR_.'b/'.$id_shop, 0777);
                //     @mkdir(_LEOBLOG_CACHE_IMG_DIR_.'b/'.$id_shop.'/'.$blog['id_leoblog_blog'], 0777);
                //     @mkdir(_LEOBLOG_CACHE_IMG_DIR_.'b/'.$id_shop.'/'.$blog['id_leoblog_blog'].'/'.$image_w.'_'.$image_h, 0777);
                //     if (ImageManager::resize('/themes/leo_gstore/assets/img/modules/leoblog/'.$id_shop.'/b/'.$blog['image'], _LEOBLOG_CACHE_IMG_DIR_.'b/'.$id_shop.'/'.$blog['id_leoblog_blog'].'/'.$image_w.'_'.$image_h.'/'.$blog['image'], $image_w, $image_h)) {
                //         # validate module
                //         $blog['preview_url'] = _LEOBLOG_CACHE_IMG_DIR_.'b/'.$id_shop.'/'.$blog['id_leoblog_blog'].'/'.$image_w.'_'.$image_h.'/'.$blog['image'];
                //     }
                // }
                $blog['image_url'] = $url . '/themes/leo_gstore/assets/img/modules/leoblog/'.$id_shop.'/b/'.$blog['image'];
                // $blog['preview_url'] = $url._LEOBLOG_CACHE_IMG_URI_.'b/'.$id_shop.'/'.$blog['id_leoblog_blog'].'/'.$image_w.'_'.$image_h.'/'.$blog['image'];
                $blog['preview_url'] = $url . '/themes/leo_gstore/assets/img/modules/leoblog/'.$id_shop.'/b/'.$blog['image'];
            }
        }

        $params = array(
            'rewrite' => $blog['category_link_rewrite'],
            'id' => $blog['id_leoblogcat']
        );
        //    if (!$config->get( 'listing_show_counter' , 1)  ) {
        if ($config->get('item_comment_engine', 'local') == 'local') {
            # validate module
            $blog['comment_count'] = LeoBlogComment::countComments($blog['id_leoblog_blog'], true, true);
        }
        //    } else {
        //    $blog['comment_count'] = 0;
        //    }
        $blog['category_link'] = $helper->getBlogCatLink($params);
        $blog['link'] = $helper->getBlogLink($blog);
        return $blog;
    }

    public static function rrmdir($dir)
    {
        if (is_dir($dir)) {
            $objects = scandir($dir);
            foreach ($objects as $object) {
                if ($object != '.' && $object != '..') {
                    if (filetype($dir.'/'.$object) == 'dir') {
                        self::rrmdir($dir.'/'.$object);
                    } else {
                        unlink($dir.'/'.$object);
                    }
                }
            }
            $objects = scandir($dir);
            reset($objects);
            rmdir($dir);
        }
    }

    public static function getConfigKey($multi_lang = false)
    {
        if ($multi_lang == false) {
            return array(
                'saveConfiguration',
                'template',
                'indexation',
                'rss_limit_item',
                'rss_title_item',
                'listing_show_categoryinfo',
                'listing_show_subcategories',
                'listing_leading_column',
                'listing_leading_limit_items',
                'listing_leading_img_width',
                'listing_leading_img_height',
                'listing_secondary_column',
                'listing_secondary_limit_items',
                'listing_secondary_img_width',
                'listing_secondary_img_height',
                'listing_show_title',
                'listing_show_description',
                'listing_show_readmore',
                'listing_show_image',
                'listing_show_author',
                'listing_show_category',
                'listing_show_created',
                'listing_show_hit',
                'listing_show_counter',
                'item_img_width',
                'item_img_height',
                'item_show_description',
                'item_show_image',
                'item_show_author',
                'item_show_category',
                'item_show_created',
                'item_show_hit',
                'item_show_counter',
                'social_code',
                'item_show_listcomment',
                'item_show_formcomment',
                'item_comment_engine',
                'item_limit_comments',
                'item_diquis_account',
                'item_facebook_appid',
                'item_facebook_width',
                'url_use_id',
                'show_popular_blog',
                'limit_popular_blog',
                'show_recent_blog',
                'limit_recent_blog',
                'show_all_tags',
            );
        } else {
            return array(
                'blog_link_title',
                'link_rewrite',
                'category_rewrite',
                'detail_rewrite',
                'meta_title',
                'meta_description',
                'meta_keywords',
            );
        }
    }

    /**
     * @return day in month
     * 1st, 2nd, 3rd, 4th, ...
     */
    public function ordinal($number)
    {
        $ends = array('th', 'st', 'nd', 'rd', 'th', 'th', 'th', 'th', 'th', 'th');
        if ((($number % 100) >= 11) && (($number % 100) <= 13))
            return $number.'th';
        else
            return $number.$ends[$number % 10];
    }

    /**
     * @return day in month
     * st, nd, rd, th, ...
     */
    public function string_ordinal($number)
    {
        $number = (int) $number;
        $ends = array('th', 'st', 'nd', 'rd', 'th', 'th', 'th', 'th', 'th', 'th');
        if ((($number % 100) >= 11) && (($number % 100) <= 13))
            return 'th';
        else
            return $ends[$number % 10];
    }

    public static function genKey()
    {
        return md5(time().rand());
    }

    //DONGND:: create folder image in theme if not exists
    public static function buildFolder($id_shop)
    {
        //DONGND:: copy image from module to theme
        if (!file_exists(_PS_THEME_DIR_.'assets/img/index.php')) {
            @copy(_LEOBLOG_BLOG_IMG_DIR_.'index.php', _PS_THEME_DIR_.'assets/img/index.php');
        }

        if (!is_dir(_PS_THEME_DIR_.'assets/img/modules')) {
            mkdir(_PS_THEME_DIR_.'assets/img/modules', 0777, true);
        }

        if (!file_exists(_PS_THEME_DIR_.'assets/img/modules/index.php')) {
            @copy(_LEOBLOG_BLOG_IMG_DIR_.'index.php', _PS_THEME_DIR_.'assets/img/modules/index.php');
        }

        if (!is_dir(_PS_THEME_DIR_.'assets/img/modules/leoblog')) {
            mkdir(_PS_THEME_DIR_.'assets/img/modules/leoblog', 0777, true);
        }

        if (!file_exists(_PS_THEME_DIR_.'assets/img/modules/leoblog/index.php')) {
            @copy(_LEOBLOG_BLOG_IMG_DIR_.'index.php', _PS_THEME_DIR_.'assets/img/modules/leoblog/index.php');
        }

        if (!is_dir(_PS_THEME_DIR_.'assets/img/modules/leoblog/'.$id_shop)) {
            mkdir(_PS_THEME_DIR_.'assets/img/modules/leoblog/'.$id_shop, 0777, true);

        }
        if (!file_exists(_PS_THEME_DIR_.'assets/img/modules/leoblog/index.php')) {
            @copy(_LEOBLOG_BLOG_IMG_DIR_.'index.php', _PS_THEME_DIR_.'assets/img/modules/leoblog/'.$id_shop.'/index.php');
        }

        if (!is_dir(_PS_THEME_DIR_.'assets/img/modules/leoblog/'.$id_shop.'/b')) {
            mkdir(_PS_THEME_DIR_.'assets/img/modules/leoblog/'.$id_shop.'/b', 0777, true);

        }

        if (!file_exists(_PS_THEME_DIR_.'assets/img/modules/leoblog/'.$id_shop.'/b/index.php')) {
            @copy(_LEOBLOG_BLOG_IMG_DIR_.'index.php', _PS_THEME_DIR_.'assets/img/modules/leoblog/'.$id_shop.'/b/index.php');
        }

        if (!is_dir(_PS_THEME_DIR_.'assets/img/modules/leoblog/'.$id_shop.'/c')) {
            mkdir(_PS_THEME_DIR_.'assets/img/modules/leoblog/'.$id_shop.'/c', 0777, true);

        }

        if (!file_exists(_PS_THEME_DIR_.'assets/img/modules/leoblog/'.$id_shop.'/c/index.php')) {
            @copy(_LEOBLOG_BLOG_IMG_DIR_.'index.php', _PS_THEME_DIR_.'assets/img/modules/leoblog/'.$id_shop.'/c/index.php');
        }

        if (!is_dir(_PS_THEME_DIR_.'assets/img/modules/leoblog/sample')) {
            mkdir(_PS_THEME_DIR_.'assets/img/modules/leoblog/sample', 0777, true);

            mkdir(_PS_THEME_DIR_.'assets/img/modules/leoblog/sample/b', 0777, true);
            mkdir(_PS_THEME_DIR_.'assets/img/modules/leoblog/sample/c', 0777, true);

            if (is_dir(_LEOBLOG_BLOG_IMG_DIR_.'b') && is_dir(_PS_THEME_DIR_.'assets/img/modules/leoblog/sample/b')) {
                $objects_b = scandir(_LEOBLOG_BLOG_IMG_DIR_.'b');
                $objects_theme_b = scandir(_PS_THEME_DIR_.'assets/img/modules/leoblog/sample/b');
                if (count($objects_b) > 2 && count($objects_theme_b) <= 2) {
                    foreach ($objects_b as $objects_b_val) {
                        if ($objects_b_val != '.' && $objects_b_val != '..') {
                            if (filetype(_LEOBLOG_BLOG_IMG_DIR_.'b'.'/'.$objects_b_val) == 'file') {
                                @copy(_LEOBLOG_BLOG_IMG_DIR_.'b'.'/'.$objects_b_val, _PS_THEME_DIR_.'assets/img/modules/leoblog/sample/b/'.$objects_b_val);
                            }
                        }
                    }
                }
            }

            if (is_dir(_LEOBLOG_BLOG_IMG_DIR_.'c') && is_dir(_PS_THEME_DIR_.'assets/img/modules/leoblog/sample/c')) {
                $objects_c = scandir(_LEOBLOG_BLOG_IMG_DIR_.'c');
                $objects_theme_c = scandir(_PS_THEME_DIR_.'assets/img/modules/leoblog/sample/c');
                if (count($objects_c) > 2 && count($objects_theme_c) <= 2) {
                    foreach ($objects_c as $objects_c_val) {
                        if ($objects_c_val != '.' && $objects_c_val != '..') {
                            if (filetype(_LEOBLOG_BLOG_IMG_DIR_.'c'.'/'.$objects_c_val) == 'file') {
                                @copy(_LEOBLOG_BLOG_IMG_DIR_.'c'.'/'.$objects_c_val, _PS_THEME_DIR_.'assets/img/modules/leoblog/sample/c/'.$objects_c_val);
                            }
                        }
                    }
                }
            }
        }

        if (!file_exists(_PS_THEME_DIR_.'assets/img/modules/leoblog/sample/index.php')) {
            @copy(_LEOBLOG_BLOG_IMG_DIR_.'index.php', _PS_THEME_DIR_.'assets/img/modules/leoblog/sample/index.php');
        }
    }

    static $id_shop;
    /**
     * FIX Install multi theme
     * LeoBlogHelper::getIDShop();
     */
    public static function getIDShop()
    {
        if ((int)self::$id_shop) {
            $id_shop = (int)self::$id_shop;
        } else {
            $id_shop = (int)Context::getContext()->shop->id;
        }
        return $id_shop;
    }
}