diff --git a/Block/Search/Result.php b/Block/Search/Result.php index 202a649..4f483a2 100644 --- a/Block/Search/Result.php +++ b/Block/Search/Result.php @@ -1,18 +1,18 @@ _request->getParam('s'); + $searchKey = $this->_blogHelper->xss_clean($searchKey); $page_title = __("Search result for: '%1'", $searchKey); $this->pageConfig->addBodyClass('vesblog-page'); $this->pageConfig->addBodyClass('blog-searchresult'); if($page_title){ - $this->pageConfig->getTitle()->set($page_title); + $this->pageConfig->getTitle()->set($page_title); } return parent::_prepareLayout(); } @@ -151,7 +152,7 @@ public function getPostsBlock() $html = $block->toHtml(); if ($html) { return $html; - } + } } /** @@ -178,6 +179,7 @@ protected function _beforeToHtml() $store = $this->_storeManager->getStore(); $searchKey = $this->_request->getParam('s'); + $searchKey = $this->_blogHelper->xss_clean($searchKey); $itemsperpage = (int)$this->getConfig('blog_page/item_per_page'); $orderby = $this->getConfig('blog_page/orderby'); $orderby = $orderby?$orderby:"DESC"; @@ -210,4 +212,4 @@ protected function _beforeToHtml() } return parent::_beforeToHtml(); } -} \ No newline at end of file +} diff --git a/Controller/Comment/Add.php b/Controller/Comment/Add.php index 64378ad..c04f382 100644 --- a/Controller/Comment/Add.php +++ b/Controller/Comment/Add.php @@ -1,18 +1,18 @@ _blogHelper->xss_clean($data['content']); $model = $this->_objectManager->create('Ves\Blog\Model\Comment'); $store = $this->_storeManager->getStore(); @@ -231,4 +232,4 @@ public function execute() } return $resultRedirect->setRefererOrBaseUrl(); } -} \ No newline at end of file +} diff --git a/Helper/Data.php b/Helper/Data.php index 982472b..441892f 100644 --- a/Helper/Data.php +++ b/Helper/Data.php @@ -1,419 +1,504 @@ -_request = $context->getRequest(); - $this->_filterProvider = $filterProvider; - $this->_storeManager = $storeManager; - $this->_resource = $resource; - $this->_frontendUrlBuilder = $frontendUrlBuilder; - $this->_userFactory = $userFactory; - $this->_localeDate = $localeDate; - $this->_postFactory = $postFactory; - $this->_coreRegistry = $registry; - $this->_authorFactory = $authorFactory; - } - - /** - * Retrieve translated & formated date - * @param string $format - * @param string $dateOrTime - * @return string - */ - public static function getTranslatedDate($format, $dateOrTime) - { - $time = is_numeric($dateOrTime) ? $dateOrTime : strtotime($dateOrTime); - $month = ['F' => '%1', 'M' => '%2']; - - foreach ($month as $from => $to) { - $format = str_replace($from, $to, $format); - } - - $date = date($format, $time); - - foreach ($month as $to => $from) { - $date = str_replace($from, __(date($to, $time)), $date); - } - - return $date; - } - - /** - * Return brand config value by key and store - * - * @param string $key - * @param \Magento\Store\Model\Store|int|string $store - * @return string|null - */ - public function getConfig($key, $store = null) - { - $store = $this->_storeManager->getStore($store); - $websiteId = $store->getWebsiteId(); - - $result = $this->scopeConfig->getValue( - 'vesblog/'.$key, - \Magento\Store\Model\ScopeInterface::SCOPE_STORE, - $store); - - return $result; - } - - public function filter($str) - { - $html = $this->_filterProvider->getPageFilter()->filter($str); - return $html; - } - - public function getAuthorUrl($author) - { - if($author) { - $url = $this->_storeManager->getStore()->getBaseUrl(); - $url_prefix = $this->getConfig('general_settings/url_prefix'); - $url_suffix = $this->getConfig('general_settings/url_suffix'); - $urlPrefix = ''; - if($url_prefix){ - $urlPrefix = $url_prefix.'/'; - } - return $url . $urlPrefix . 'author/' . $author->getUserName(); - } - return ""; - } - - public function getCategoryUrl($alias) - { - $url = $this->_storeManager->getStore()->getBaseUrl(); - $url_prefix = $this->getConfig('general_settings/url_prefix'); - $url_suffix = $this->getConfig('general_settings/url_suffix'); - $urlPrefix = ''; - if($url_prefix){ - $urlPrefix = $url_prefix.'/'; - } - return $url . $urlPrefix . $alias . $url_suffix; - } - - public function getPostAuthor($post){ - $authorId = $post->getUserId(); - $author = $this->_authorFactory->loadByUserId($authorId); - if($author->getIsView()) { - return $author; - } - return false; - } - - public function getTagUrl($alias){ - $url = $this->_storeManager->getStore()->getBaseUrl(); - $url_prefix = $this->getConfig('general_settings/url_prefix'); - $url_suffix = $this->getConfig('general_settings/url_suffix'); - $urlPrefix = ''; - if($url_prefix){ - $urlPrefix = $url_prefix.'/'; - } - return $url . $urlPrefix . 'tag/' . $alias; - } - - public function getLatestPageUrl(){ - $url = $this->_storeManager->getStore()->getBaseUrl(); - $url_prefix = $this->getConfig('general_settings/url_prefix'); - $url_suffix = $this->getConfig('general_settings/url_suffix'); - $urlPrefix = ''; - if($url_prefix){ - $urlPrefix = $url_prefix.'/'; - } - return $url . $urlPrefix; - } - - public function getAuthorsPageUrl(){ - $url = $this->_storeManager->getStore()->getBaseUrl(); - $blog_url_prefix = $this->getConfig('general_settings/url_prefix'); - $url_prefix = $this->getConfig('other_settings/authors_url'); - $urlPrefix = $blog_url_prefix.'/author/list/'; - if($url_prefix){ - $urlPrefix = $blog_url_prefix."/".$url_prefix.'/'; - } - return $url . $urlPrefix; - } - - public function formatDate( - $date = null, - $format = \IntlDateFormatter::SHORT, - $showTime = false, - $timezone = null - ) { - $date = $date instanceof \DateTimeInterface ? $date : new \DateTime($date); - return $this->_localeDate->formatDateTime( - $date, - $format, - $showTime ? $format : \IntlDateFormatter::NONE, - null, - $timezone - ); - } - - public function getFormatDate($date, $type = 'full'){ - $result = ''; - switch ($type) { - case 'full': - $result = $this->formatDate($date, \IntlDateFormatter::FULL); - break; - case 'long': - $result = $this->formatDate($date, \IntlDateFormatter::LONG); - break; - case 'medium': - $result = $this->formatDate($date, \IntlDateFormatter::MEDIUM); - break; - case 'short': - $result = $this->formatDate($date, \IntlDateFormatter::SHORT); - break; - } - return $result; - } - - public function getPostUrlLinkAttr($post){ - $attr = ''; - $enable_custom_post_url = $this->getConfig("other_settings/use_custom_post_link"); - $link_follow = $this->getConfig("other_settings/link_follow"); - $real_post_url = $post->getData("real_post_url"); - if($enable_custom_post_url && $post->hasData("real_post_url") && $link_follow && $real_post_url){ - return ' rel="'.$link_follow.'"'; - } - return $attr; - } - - public function getPostUrl($post) - { - $enable_custom_post_url = $this->getConfig("other_settings/use_custom_post_link"); - $real_post_url = $post->getData("real_post_url"); - if($enable_custom_post_url && $post->hasData("real_post_url") && $real_post_url){ - return $real_post_url; - } - - $url = $this->_storeManager->getStore()->getBaseUrl(); - $url_prefix = $this->getConfig('general_settings/url_prefix'); - $url_suffix = $this->getConfig('general_settings/url_suffix'); - $categoriesUrls = $this->getConfig('general_settings/categories_urls'); - $urlPrefix = ''; - if($url_prefix){ - $urlPrefix = $url_prefix.'/'; - } - $categoryUrl = ''; - - if($categoriesUrls){ - $category = $post->getData("categories"); - if($category && isset($category[0]['identifier']) && $category[0]['identifier']!=''){ - $categoryUrl = $category[0]['identifier'] . '/'; - } - - } - return $url . $urlPrefix . $categoryUrl . $post->getIdentifier() . $url_suffix; - } - - - public function getPostPreviewUrl($post) - { - $url_prefix = $this->getConfig('general_settings/url_prefix'); - $url_suffix = $this->getConfig('general_settings/url_suffix'); - $categoriesUrls = $this->getConfig('general_settings/categories_urls'); - $urlPrefix = ''; - if($url_prefix){ - $urlPrefix = $url_prefix.'/'; - } - $categoryUrl = ''; - - if($categoriesUrls){ - $category = $post["categories"]; - if($category && isset($category[0]['identifier']) && $category[0]['identifier']!=''){ - $categoryUrl = $category[0]['identifier'] . '/'; - } - - } - return $urlPrefix . $categoryUrl . $post['identifier'] . $url_suffix; - } - - public function getSearchFormUrl(){ - $url = $this->_storeManager->getStore()->getBaseUrl(); - $url_prefix = $this->getConfig('general_settings/url_prefix'); - $url_suffix = $this->getConfig('general_settings/url_suffix'); - $urlPrefix = ''; - if ($url_prefix) { - $urlPrefix = $url_prefix . '/'; - } - return $url . $urlPrefix . 'search'; - } - - - public function getPostCategories($postId){ - if($this->_postCategories == NULL){ - $connection = $this->_resource->getConnection(); - $select = 'SELECT * FROM ' . $this->_resource->getTableName('ves_blog_post_category') . ' WHERE post_id = ' . $postId . ' ORDER BY position ASC'; - $this->_postCategories = $connection->fetchAll($select); - } - return $this->_postCategories; - } - - public function subString( $text, $length = 100, $replacer ='...', $is_striped=true ){ - if($length == 0) return $text; - $text = ($is_striped==true)?strip_tags($text):$text; - if(strlen($text) <= $length){ - return $text; - } - $text = substr($text,0,$length); - $pos_space = strrpos($text,' '); - return substr($text,0,$pos_space).$replacer; - } - - /** - * @param string|null $route - * @param array|null $params - * @return string - */ - public function getUrl($route, $params = []) - { - return $this->_frontendUrlBuilder->getUrl($route, $params); - } - - public function getPostCategoryUrl($post) - { - $category = ''; - $categories = $this->getPostCategories($post->getPostId()); - if(!empty($categories)){ - $connection = $this->_resource->getConnection(); - $select = 'SELECT * FROM ' . $this->_resource->getTableName('ves_blog_category') . ' WHERE category_id = ' . $categories[0]['category_id']; - $category = $connection->fetchAll($select); - return $category; - } - return $category; - } - - /** - * @param string $file - * @return string - */ - public function getMediaUrl($file) - { - $parsed = parse_url($file); - if (empty($parsed['scheme'])) { - return $this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA) . $file; - }else{ - return $file; - } - } - - public function getPostByCategory($categoryId){ - $collection = $this->_postFactory->getCollection(); - } - - public function getCoreRegistry(){ - return $this->_coreRegistry; - } - - public function getSearchKey(){ - return $this->_request->getParam('s'); - } - public function isEnabled($storeId = null) - { - return $this->getConfig(self::XML_PATH_BLOG_ENABLED, $storeId); - } - /** - * Escape quotes in java script - * - * @param mixed $data - * @param string $quote - * @return mixed - */ - public function jsQuoteEscape($data, $quote='\'') - { - if (is_array($data)) { - $result = array(); - foreach ($data as $item) { - $result[] = str_replace($quote, '\\'.$quote, $item); - } - return $result; - } - return str_replace($quote, '\\'.$quote, $data); - } -} \ No newline at end of file +_request = $context->getRequest(); + $this->_filterProvider = $filterProvider; + $this->_storeManager = $storeManager; + $this->_resource = $resource; + $this->_frontendUrlBuilder = $frontendUrlBuilder; + $this->_userFactory = $userFactory; + $this->_localeDate = $localeDate; + $this->_postFactory = $postFactory; + $this->_coreRegistry = $registry; + $this->_authorFactory = $authorFactory; + } + + /** + * Retrieve translated & formated date + * @param string $format + * @param string $dateOrTime + * @return string + */ + public static function getTranslatedDate($format, $dateOrTime) + { + $time = is_numeric($dateOrTime) ? $dateOrTime : strtotime($dateOrTime); + $month = ['F' => '%1', 'M' => '%2']; + + foreach ($month as $from => $to) { + $format = str_replace($from, $to, $format); + } + + $date = date($format, $time); + + foreach ($month as $to => $from) { + $date = str_replace($from, __(date($to, $time)), $date); + } + + return $date; + } + + /** + * Return brand config value by key and store + * + * @param string $key + * @param \Magento\Store\Model\Store|int|string $store + * @return string|null + */ + public function getConfig($key, $store = null) + { + $store = $this->_storeManager->getStore($store); + $websiteId = $store->getWebsiteId(); + + $result = $this->scopeConfig->getValue( + 'vesblog/'.$key, + \Magento\Store\Model\ScopeInterface::SCOPE_STORE, + $store); + + return $result; + } + + public function filter($str) + { + $html = $this->_filterProvider->getPageFilter()->filter($str); + return $html; + } + + public function getAuthorUrl($author) + { + if($author) { + $url = $this->_storeManager->getStore()->getBaseUrl(); + $url_prefix = $this->getConfig('general_settings/url_prefix'); + $url_suffix = $this->getConfig('general_settings/url_suffix'); + $urlPrefix = ''; + if($url_prefix){ + $urlPrefix = $url_prefix.'/'; + } + return $url . $urlPrefix . 'author/' . $author->getUserName(); + } + return ""; + } + + public function getCategoryUrl($alias) + { + $url = $this->_storeManager->getStore()->getBaseUrl(); + $url_prefix = $this->getConfig('general_settings/url_prefix'); + $url_suffix = $this->getConfig('general_settings/url_suffix'); + $urlPrefix = ''; + if($url_prefix){ + $urlPrefix = $url_prefix.'/'; + } + return $url . $urlPrefix . $alias . $url_suffix; + } + + public function getPostAuthor($post){ + $authorId = $post->getUserId(); + $author = $this->_authorFactory->loadByUserId($authorId); + if($author->getIsView()) { + return $author; + } + return false; + } + + public function getTagUrl($alias){ + $url = $this->_storeManager->getStore()->getBaseUrl(); + $url_prefix = $this->getConfig('general_settings/url_prefix'); + $url_suffix = $this->getConfig('general_settings/url_suffix'); + $urlPrefix = ''; + if($url_prefix){ + $urlPrefix = $url_prefix.'/'; + } + return $url . $urlPrefix . 'tag/' . $alias; + } + + public function getLatestPageUrl(){ + $url = $this->_storeManager->getStore()->getBaseUrl(); + $url_prefix = $this->getConfig('general_settings/url_prefix'); + $url_suffix = $this->getConfig('general_settings/url_suffix'); + $urlPrefix = ''; + if($url_prefix){ + $urlPrefix = $url_prefix.'/'; + } + return $url . $urlPrefix; + } + + public function getAuthorsPageUrl(){ + $url = $this->_storeManager->getStore()->getBaseUrl(); + $blog_url_prefix = $this->getConfig('general_settings/url_prefix'); + $url_prefix = $this->getConfig('other_settings/authors_url'); + $urlPrefix = $blog_url_prefix.'/author/list/'; + if($url_prefix){ + $urlPrefix = $blog_url_prefix."/".$url_prefix.'/'; + } + return $url . $urlPrefix; + } + + public function formatDate( + $date = null, + $format = \IntlDateFormatter::SHORT, + $showTime = false, + $timezone = null + ) { + $date = $date instanceof \DateTimeInterface ? $date : new \DateTime($date); + return $this->_localeDate->formatDateTime( + $date, + $format, + $showTime ? $format : \IntlDateFormatter::NONE, + null, + $timezone + ); + } + + public function getFormatDate($date, $type = 'full'){ + $result = ''; + switch ($type) { + case 'full': + $result = $this->formatDate($date, \IntlDateFormatter::FULL); + break; + case 'long': + $result = $this->formatDate($date, \IntlDateFormatter::LONG); + break; + case 'medium': + $result = $this->formatDate($date, \IntlDateFormatter::MEDIUM); + break; + case 'short': + $result = $this->formatDate($date, \IntlDateFormatter::SHORT); + break; + } + return $result; + } + + public function getPostUrlLinkAttr($post){ + $attr = ''; + $enable_custom_post_url = $this->getConfig("other_settings/use_custom_post_link"); + $link_follow = $this->getConfig("other_settings/link_follow"); + $real_post_url = $post->getData("real_post_url"); + if($enable_custom_post_url && $post->hasData("real_post_url") && $link_follow && $real_post_url){ + return ' rel="'.$link_follow.'"'; + } + return $attr; + } + + public function getPostUrl($post) + { + $enable_custom_post_url = $this->getConfig("other_settings/use_custom_post_link"); + $real_post_url = $post->getData("real_post_url"); + if($enable_custom_post_url && $post->hasData("real_post_url") && $real_post_url){ + return $real_post_url; + } + + $url = $this->_storeManager->getStore()->getBaseUrl(); + $url_prefix = $this->getConfig('general_settings/url_prefix'); + $url_suffix = $this->getConfig('general_settings/url_suffix'); + $categoriesUrls = $this->getConfig('general_settings/categories_urls'); + $urlPrefix = ''; + if($url_prefix){ + $urlPrefix = $url_prefix.'/'; + } + $categoryUrl = ''; + + if($categoriesUrls){ + $category = $post->getData("categories"); + if($category && isset($category[0]['identifier']) && $category[0]['identifier']!=''){ + $categoryUrl = $category[0]['identifier'] . '/'; + } + + } + return $url . $urlPrefix . $categoryUrl . $post->getIdentifier() . $url_suffix; + } + + + public function getPostPreviewUrl($post) + { + $url_prefix = $this->getConfig('general_settings/url_prefix'); + $url_suffix = $this->getConfig('general_settings/url_suffix'); + $categoriesUrls = $this->getConfig('general_settings/categories_urls'); + $urlPrefix = ''; + if($url_prefix){ + $urlPrefix = $url_prefix.'/'; + } + $categoryUrl = ''; + + if($categoriesUrls){ + $category = $post["categories"]; + if($category && isset($category[0]['identifier']) && $category[0]['identifier']!=''){ + $categoryUrl = $category[0]['identifier'] . '/'; + } + + } + return $urlPrefix . $categoryUrl . $post['identifier'] . $url_suffix; + } + + public function getSearchFormUrl(){ + $url = $this->_storeManager->getStore()->getBaseUrl(); + $url_prefix = $this->getConfig('general_settings/url_prefix'); + $url_suffix = $this->getConfig('general_settings/url_suffix'); + $urlPrefix = ''; + if ($url_prefix) { + $urlPrefix = $url_prefix . '/'; + } + return $url . $urlPrefix . 'search'; + } + + + public function getPostCategories($postId){ + if($this->_postCategories == NULL){ + $connection = $this->_resource->getConnection(); + $select = 'SELECT * FROM ' . $this->_resource->getTableName('ves_blog_post_category') . ' WHERE post_id = ' . $postId . ' ORDER BY position ASC'; + $this->_postCategories = $connection->fetchAll($select); + } + return $this->_postCategories; + } + + public function subString( $text, $length = 100, $replacer ='...', $is_striped=true ){ + if($length == 0) return $text; + $text = ($is_striped==true)?strip_tags($text):$text; + if(strlen($text) <= $length){ + return $text; + } + $text = substr($text,0,$length); + $pos_space = strrpos($text,' '); + return substr($text,0,$pos_space).$replacer; + } + + /** + * @param string|null $route + * @param array|null $params + * @return string + */ + public function getUrl($route, $params = []) + { + return $this->_frontendUrlBuilder->getUrl($route, $params); + } + + public function getPostCategoryUrl($post) + { + $category = ''; + $categories = $this->getPostCategories($post->getPostId()); + if(!empty($categories)){ + $connection = $this->_resource->getConnection(); + $select = 'SELECT * FROM ' . $this->_resource->getTableName('ves_blog_category') . ' WHERE category_id = ' . $categories[0]['category_id']; + $category = $connection->fetchAll($select); + return $category; + } + return $category; + } + + /** + * @param string $file + * @return string + */ + public function getMediaUrl($file) + { + $parsed = parse_url($file); + if (empty($parsed['scheme'])) { + return $this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA) . $file; + }else{ + return $file; + } + } + + public function getPostByCategory($categoryId){ + $collection = $this->_postFactory->getCollection(); + } + + public function getCoreRegistry(){ + return $this->_coreRegistry; + } + + public function getSearchKey(){ + return $this->_request->getParam('s'); + } + public function isEnabled($storeId = null) + { + return $this->getConfig(self::XML_PATH_BLOG_ENABLED, $storeId); + } + /** + * Escape quotes in java script + * + * @param mixed $data + * @param string $quote + * @return mixed + */ + public function jsQuoteEscape($data, $quote='\'') + { + if (is_array($data)) { + $result = array(); + foreach ($data as $item) { + $result[] = str_replace($quote, '\\'.$quote, $item); + } + return $result; + } + return str_replace($quote, '\\'.$quote, $data); + } + + /** + * @param $data_array + * @return array + */ + public function xss_clean_array($data_array) + { + $result = []; + if (is_array($data_array)) { + foreach ($data_array as $key => $val) { + $val = $this->xss_clean($val); + $result[$key] = $val; + } + } + return $result; + } + + /** + * @param $data + * @return string|string[]|null + */ + public function xss_clean($data) + { + if (!is_string($data)) { + return $data; + } + // Fix &entity\n; + $data = str_replace(['&', '<', '>'], ['&', '<', '>'], $data); + $data = preg_replace('/(*\w+)[\x00-\x20]+;/u', '$1;', $data); + $data = preg_replace('/(*[0-9A-F]+);*/iu', '$1;', $data); + $data = html_entity_decode($data, ENT_COMPAT, 'UTF-8'); + + // Remove any attribute starting with "on" or xmlns + $data = preg_replace('#(<[^>]+?[\x00-\x20"\'])(?:on|xmlns)[^>]*+>#iu', '$1>', $data); + + // Remove javascript: and vbscript: protocols + $data = preg_replace( + '#([a-z]*)[\x00-\x20]*=[\x00-\x20]*([`\'"]*)[\x00-\x20]*j[\x00-\x20]*a[\x00-\x20]*v[\x00-\x20]*a[\x00-\x20]*s[\x00-\x20]*c[\x00-\x20]*r[\x00-\x20]*i[\x00-\x20]*p[\x00-\x20]*t[\x00-\x20]*:#iu', + '$1=$2nojavascript...', + $data + ); + $data = preg_replace( + '#([a-z]*)[\x00-\x20]*=([\'"]*)[\x00-\x20]*v[\x00-\x20]*b[\x00-\x20]*s[\x00-\x20]*c[\x00-\x20]*r[\x00-\x20]*i[\x00-\x20]*p[\x00-\x20]*t[\x00-\x20]*:#iu', + '$1=$2novbscript...', + $data + ); + $data = preg_replace( + '#([a-z]*)[\x00-\x20]*=([\'"]*)[\x00-\x20]*-moz-binding[\x00-\x20]*:#u', + '$1=$2nomozbinding...', + $data + ); + + // Only works in IE: + $data = preg_replace( + '#(<[^>]+?)style[\x00-\x20]*=[\x00-\x20]*[`\'"]*.*?expression[\x00-\x20]*\([^>]*+>#i', + '$1>', + $data + ); + $data = preg_replace( + '#(<[^>]+?)style[\x00-\x20]*=[\x00-\x20]*[`\'"]*.*?behaviour[\x00-\x20]*\([^>]*+>#i', + '$1>', + $data + ); + $data = preg_replace( + '#(<[^>]+?)style[\x00-\x20]*=[\x00-\x20]*[`\'"]*.*?s[\x00-\x20]*c[\x00-\x20]*r[\x00-\x20]*i[\x00-\x20]*p[\x00-\x20]*t[\x00-\x20]*:*[^>]*+>#iu', + '$1>', + $data + ); + + // Remove namespaced elements (we do not need them) + $data = preg_replace('#*\w+:\w[^>]*+>#i', '', $data); + + do { + // Remove really unwanted tags + $old_data = $data; + $data = preg_replace( + '#*(?:applet|b(?:ase|gsound|link)|embed|frame(?:set)?|i(?:frame|layer)|l(?:ayer|ink)|meta|object|s(?:cript|tyle)|title|xml)[^>]*+>#i', + '', + $data + ); + } while ($old_data !== $data); + + // we are done... + return $data; + } +} diff --git a/view/frontend/templates/archive.phtml b/view/frontend/templates/archive.phtml index 4e34b67..19e8bf9 100644 --- a/view/frontend/templates/archive.phtml +++ b/view/frontend/templates/archive.phtml @@ -8,7 +8,7 @@ $archiveblockTitle = $helper->getConfig('sidebar/archiveblock_title');