File manager - Edit - /home/capoccitel/www/components/com_tz_portfolio_plus/models/portfolio.php
Back
<?php /*------------------------------------------------------------------------ # TZ Portfolio Plus Extension # ------------------------------------------------------------------------ # author DuongTVTemPlaza # copyright Copyright (C) 2015 templaza.com. All Rights Reserved. # @license - http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL # Websites: http://www.templaza.com # Technical Support: Forum - http://templaza.com/Forum -------------------------------------------------------------------------*/ // no direct access defined('_JEXEC') or die(); use Joomla\Registry\Registry; use Joomla\Utilities\ArrayHelper; jimport('joomla.application.component.modellist'); jimport('joomla.html.pagination'); jimport('joomla.filesystem.folder'); jimport('joomla.filesystem.file'); class TZ_Portfolio_PlusModelPortfolio extends JModelList { protected $pagNav = null; protected $rowsTag = null; protected $categories = null; public function __construct($config = array()){ parent::__construct($config); } protected function populateState($ordering = null, $direction = null){ parent::populateState($ordering,$direction); $app = JFactory::getApplication('site'); $params = $app -> getParams('com_tz_portfolio_plus'); $global_params = JComponentHelper::getParams('com_tz_portfolio_plus'); if($layout_type = $params -> get('layout_type',array())){ if(!count($layout_type)){ $params -> set('layout_type',$global_params -> get('layout_type',array())); } }else{ $params -> set('layout_type',$global_params -> get('layout_type',array())); } $user = JFactory::getUser(); $offset = $app -> input -> getUInt('limitstart',0); if($params -> get('show_limit_box',0) && $params -> get('tz_portfolio_plus_layout') == 'default'){ $limit = $app->getUserStateFromRequest('com_tz_portfolio_plus.portfolio.limit','limit',$params -> get('tz_article_limit',10)); } else{ $limit = (int) $params -> get('tz_article_limit',10); } if ((!$user->authorise('core.edit.state', 'com_tz_portfolio_plus')) && (!$user->authorise('core.edit', 'com_tz_portfolio_plus'))){ // limit to published for people who can't edit or edit.state. $this->setState('filter.published', 1); } else { $this->setState('filter.published', array(0, 1, 2)); } $this->setState('filter.language', JLanguageMultilang::isEnabled()); $this -> setState('params',$params); $this -> setState('list.start', $offset); $this -> setState('Itemid',$params -> get('id')); $this -> setState('list.limit',$limit); $this -> setState('catid',$params -> get('catid')); $this -> setState('filter.char',$app -> input -> getString('char',null)); $this -> setState('filter.tagId', $app -> input -> getInt('tid')); $this -> setState('filter.tagAlias', $app -> input -> getString('tagAlias')); $this -> setState('filter.userId', $app -> input -> getInt('uid')); $this -> setState('filter.featured',null); $this -> setState('filter.year',null); $this -> setState('filter.month',null); $this -> setState('filter.category_id',$app -> input -> getInt('id')); $this -> setState('filter.searchword', $app->input->getString('searchword')); $this -> setState('filter.fields', $app -> input -> get('fields', array(), 'array')); $this -> setState('filter.shownIds', $app -> input -> get('shownIds', array(), 'array')); $orderby = ''; $secondary = TZ_Portfolio_PlusHelperQuery::orderbySecondary($params -> get('orderby_sec', 'rdate')); $primary = TZ_Portfolio_PlusHelperQuery::orderbyPrimary($params -> get('orderby_pri')); $orderby .= $primary . ' ' . $secondary; $this -> setState('list.ordering', $orderby); $this -> setState('list.direction', null); } protected function getListQuery(){ $params = $this -> getState('params'); $user = JFactory::getUser(); $db = JFactory::getDbo(); $query = $db -> getQuery(true); $query -> select( $this->getState( 'list.select', 'c.*, m.catid AS catid ,cc.title AS category_title'. ',CASE WHEN CHAR_LENGTH(c.alias) THEN CONCAT_WS(":", c.id, c.alias) ELSE c.id END as slug'. ',CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(":", cc.id, cc.alias) ELSE cc.id END as catslug'. ',CASE WHEN CHAR_LENGTH(c.fulltext) THEN c.fulltext ELSE null END as readmore' // . // ',parent.title as parent_title, parent.id as parent_id, parent.path as parent_route, parent.alias as parent_alias' ) ); $query -> from($db -> quoteName('#__tz_portfolio_plus_content').' AS c'); $query -> join('INNER',$db -> quoteName('#__tz_portfolio_plus_content_category_map').' AS m ON m.contentid=c.id'); $query -> join('LEFT',$db -> quoteName('#__tz_portfolio_plus_categories').' AS cc ON cc.id=m.catid'); $query -> join('LEFT',$db -> quoteName('#__tz_portfolio_plus_tag_content_map').' AS x ON x.contentid=c.id'); $query -> select('t.title AS tagName'); $query -> join('LEFT',$db -> quoteName('#__tz_portfolio_plus_tags').' AS t ON t.id=x.tagsid'); // Filter by tag id if($tagId = $this -> getState('filter.tagId')) { $query->where('t.id =' .$tagId); } // Filter by tag alias if($tagAlias = $this -> getState('filter.tagAlias')) { // $query -> select('t2.title AS tagName'); // $query -> join('INNER',$db -> quoteName('#__tz_portfolio_plus_tags').' AS t2 ON t2.id=x.tagsid'); $query->where('t.alias =' .$db -> quote($tagAlias)); } $query -> select(' u.name AS author'); $query -> select('u.email AS author_email'); $query -> join('LEFT',$db -> quoteName('#__users').' AS u ON u.id=c.created_by'); // Filter by user id if($userId = $this -> getState('filter.userId')) { $query->where('u.id =' .$userId); } // Join over the categories to get parent category titles $query -> select('parent.title as parent_title, parent.id as parent_id, parent.path as parent_route, parent.alias as parent_alias'); $query->join('LEFT', '#__tz_portfolio_plus_categories as parent ON parent.id = cc.parent_id'); // Filter by published state $published = $this->getState('filter.published'); if (is_numeric($published)) { // Use article state if badcats.id is null, otherwise, force 0 for unpublished $query->where('c.state = ' . (int) $published); } elseif (is_array($published)) { $published = ArrayHelper::toInteger($published); $published = implode(',', $published); // Use article state if badcats.id is null, otherwise, force 0 for unpublished $query->where('c.state IN ('.$published.')'); } if ((!$user->authorise('core.edit.state', 'com_tz_portfolio_plus')) && (!$user->authorise('core.edit', 'com_tz_portfolio_plus'))){ // Filter by start and end dates. $nullDate = $db->Quote($db->getNullDate()); $nowDate = $db->Quote(JFactory::getDate()->toSQL()); $query->where('(c.publish_up = ' . $nullDate . ' OR c.publish_up <= ' . $nowDate . ')'); $query->where('(c.publish_down = ' . $nullDate . ' OR c.publish_down >= ' . $nowDate . ')'); } // Filter by access level. if (!$params->get('show_noauth')) { $groups = implode(',', $user->getAuthorisedViewLevels()); $query->where('c.access IN ('.$groups.')'); $query->where('cc.access IN ('.$groups.')'); } $catids = $params -> get('catid'); if($this -> getState('filter.category_id')){ $catids = $this -> getState('filter.category_id'); } if(is_array($catids)){ $catids = array_filter($catids); if(count($catids)){ $query -> where('m.catid IN('.implode(',',$catids).')'); } } elseif(!empty($catids)){ $query -> where('m.catid IN('.$catids.')'); } if($types = $params -> get('media_types',array())){ $types = array_filter($types); if(count($types)) { $media_conditions = array(); foreach($types as $type){ $media_conditions[] = 'type='.$db -> quote($type); } if(count($media_conditions)){ $query -> where('('.implode(' OR ', $media_conditions).')'); } } } if($char = $this -> getState('filter.char')){ $query -> where('c.title LIKE '.$db -> quote(urldecode(mb_strtolower($char)).'%')); $query -> where('ASCII(SUBSTR(LOWER(c.title),1,1)) = ASCII('.$db -> quote(mb_strtolower($char)).')'); } // Filter by shownids $shownIds = $this -> getState('filter.shownIds', array()); if(count($shownIds)){ $query -> where('c.id NOT IN( '.implode(',', $shownIds).')'); } // Filter by word from filter module if ($searchWord = $this->getState('filter.searchword')) { $searchWord = $db->quote('%' . $db->escape($searchWord, true) . '%', true); $query->where('(c.title LIKE ' . $searchWord . ' OR c.introtext LIKE ' . $searchWord.')'); } // Filter by extrafields from filter module if ($fields = $this->getState('filter.fields')) { if (count($fields)) { $fields = array_filter($fields); $fieldIds = array_keys($fields); $fieldIds = array_unique($fieldIds); JLoader::import('extrafields', JPATH_SITE . '/components/com_tz_portfolio_plus/helpers'); if ($extraFields = TZ_Portfolio_PlusFrontHelperExtraFields::getExtraFieldObjectById($fieldIds)) { $where = array(); if (count($extraFields)) { foreach ($extraFields as $field) { $field->onSearch($query, $where, $fields[$field->id]); } } if (count($where)) { $query->where('(' . implode(' AND ', $where) . ')'); } } } } $query->order($this->getState('list.ordering', 'c.created') . ' ' . $this->getState('list.direction', null)); // Filter by language if ($this->getState('filter.language')) { $query->where('c.language in ('.$db->quote(JFactory::getLanguage()->getTag()).','.$db->quote('*').')'); } $query -> group('c.id'); return $query; } public function getItems(){ if($items = parent::getItems()){ $app = JFactory::getApplication(); $user = TZ_Portfolio_PlusUser::getUser(); $userId = $user->get('id'); $guest = $user->get('guest'); $params = $this -> getState('params'); JLoader::import('category',COM_TZ_PORTFOLIO_PLUS_PATH_SITE.DIRECTORY_SEPARATOR.'helpers'); $_params = null; $threadLink = null; $comments = null; if(count($items)>0){ $content_ids = ArrayHelper::getColumn($items, 'id'); $mainCategories = TZ_Portfolio_PlusFrontHelperCategories::getCategoriesByArticleId($content_ids, array('main' => true)); $second_categories = TZ_Portfolio_PlusFrontHelperCategories::getCategoriesByArticleId($content_ids, array('main' => false)); $tags = null; if(count($content_ids) && $params -> get('show_tags',1)) { $tags = TZ_Portfolio_PlusFrontHelperTags::getTagsByArticleId($content_ids, array( 'orderby' => 'm.contentid', 'menuActive' => $params -> get('menu_active', 'auto'), 'reverse_contentid' => true ) ); } JPluginHelper::importPlugin('content'); TZ_Portfolio_PlusPluginHelper::importPlugin('mediatype'); TZ_Portfolio_PlusPluginHelper::importPlugin('content'); $app -> triggerEvent('onAlwaysLoadDocument', array('com_tz_portfolio_plus.portfolio')); $app -> triggerEvent('onLoadData', array('com_tz_portfolio_plus.portfolio', $items, $params)); // Get the global params $globalParams = JComponentHelper::getParams('com_tz_portfolio_plus', true); JLoader::import('extrafields', COM_TZ_PORTFOLIO_PLUS_SITE_HELPERS_PATH); foreach($items as $i => &$item){ $_params = clone($params); $item->params = clone($_params); $app -> triggerEvent('onTPContentBeforePrepare', array('com_tz_portfolio_plus.portfolio', &$item, &$item -> params)); $articleParams = new JRegistry; $articleParams->loadString($item->attribs); if($mainCategories && isset($mainCategories[$item -> id])){ $mainCategory = $mainCategories[$item -> id]; if($mainCategory){ $item -> catid = $mainCategory -> id; $item -> category_title = $mainCategory -> title; $item -> catslug = $mainCategory -> id.':'.$mainCategory -> alias; $item -> category_link = $mainCategory -> link; $item -> cat_alias = $mainCategory -> alias.'_'.$mainCategory -> id; // Merge main category's params to article $catParams = new JRegistry($mainCategory -> params); if($inheritFrom = $catParams -> get('inheritFrom', 0)){ if($inheritCategory = TZ_Portfolio_PlusFrontHelperCategories::getCategoriesById($inheritFrom)) { $inheritCatParams = new JRegistry($inheritCategory->params); $catParams = clone($inheritCatParams); } } $item -> params -> merge($catParams); } }else { // Create main category's link $item -> category_link = JRoute::_(TZ_Portfolio_PlusHelperRoute::getCategoryRoute($item -> catid)); // Merge main category's params to article if($mainCategory = TZ_Portfolio_PlusFrontHelperCategories::getCategoriesById($item -> catid)) { $catParams = new JRegistry($mainCategory->params); if ($inheritFrom = $catParams->get('inheritFrom', 0)) { if ($inheritCategory = TZ_Portfolio_PlusFrontHelperCategories::getCategoriesById($inheritFrom)) { $inheritCatParams = new JRegistry($inheritCategory->params); $catParams = clone($inheritCatParams); } } $item->params->merge($catParams); } } // Merge with article params $item -> params -> merge($articleParams); // Get all second categories $item -> second_categories = null; if(isset($second_categories[$item -> id])) { $item->second_categories = $second_categories[$item -> id]; } // Get article's tags $item -> tags = null; if($tags && count($tags) && isset($tags[$item -> id])){ $item -> tags = $tags[$item -> id]; } /*** Start New Source ***/ $tmpl = null; $config = JFactory::getConfig(); $ssl = 2; if($config -> get('force_ssl')){ $ssl = $config -> get('force_ssl'); } $uri = JUri::getInstance(); if($uri -> isSsl()){ $ssl = 1; } // Create Article Link $item ->link = JRoute::_(TZ_Portfolio_PlusHelperRoute::getArticleRoute($item -> slug, $item -> catid, $item->language).$tmpl); $item -> fullLink = JRoute::_(TZ_Portfolio_PlusHelperRoute::getArticleRoute($item -> slug, $item -> catid, $item->language), true, $ssl); // Create author Link $item -> author_link = JRoute::_(TZ_Portfolio_PlusHelperRoute::getUserRoute($item -> created_by, $params -> get('user_menu_active','auto'))); // Compute the asset access permissions. // Technically guest could edit an article, but lets not check that to improve performance a little. if (!$guest) { $asset = 'com_tz_portfolio_plus.article.'.$item->id; // Check general edit permission first. if ($user->authorise('core.edit', $asset)) { $item->params->set('access-edit', true); } // Now check if edit.own is available. elseif (!empty($userId) && $user->authorise('core.edit.own', $asset)) { // Check for a valid user and that they are the owner. if ($userId == $item->created_by) { $item->params->set('access-edit', true); } } } $media = $item -> media; if($item -> media && !empty($item -> media)) { $registry = new JRegistry($item -> media); $obj = $registry->toObject(); $item->media = clone($obj); } $item -> mediatypes = array(); // Add feed links if ($app -> input -> getCmd('format',null) != 'feed') { // Old plugins: Ensure that text property is available if (!isset($item->text)) { $item->text = $item->introtext; } // // Process the content plugins. // $app -> triggerEvent('onTPContentPrepare', array ( 'com_tz_portfolio_plus.portfolio', &$item, &$item -> params, $this -> getState('list.start'))); $app -> triggerEvent('onContentPrepare', array ( 'com_tz_portfolio_plus.portfolio', &$item, &$item -> params, $this -> getState('list.start'))); $item->introtext = $item->text; $item->event = new stdClass(); $results = $app -> triggerEvent('onContentAfterTitle', array( 'com_tz_portfolio_plus.portfolio', &$item, &$item -> params, $this -> getState('list.start'))); $item->event->afterDisplayTitle = trim(implode("\n", $results)); $results = $app -> triggerEvent('onContentBeforeDisplay', array( 'com_tz_portfolio_plus.portfolio', &$item, &$item -> params, $this -> getState('list.start'))); $item->event->beforeDisplayContent = trim(implode("\n", $results)); $results = $app -> triggerEvent('onContentAfterDisplay', array( 'com_tz_portfolio_plus.portfolio', &$item, &$item -> params, $this -> getState('list.start'))); $item->event->afterDisplayContent = trim(implode("\n", $results)); // Process the tz portfolio's content plugins. $results = $app -> triggerEvent('onContentDisplayVote',array( 'com_tz_portfolio_plus.portfolio', &$item, &$item -> params, $this -> getState('list.start'))); $item -> event -> contentDisplayVote = trim(implode("\n", $results)); $results = $app -> triggerEvent('onBeforeDisplayAdditionInfo',array( 'com_tz_portfolio_plus.portfolio', &$item, &$item -> params, $this -> getState('list.start'))); $item -> event -> beforeDisplayAdditionInfo = trim(implode("\n", $results)); $results = $app -> triggerEvent('onAfterDisplayAdditionInfo',array( 'com_tz_portfolio_plus.portfolio', &$item, &$item -> params, $this -> getState('list.start'))); $item -> event -> afterDisplayAdditionInfo = trim(implode("\n", $results)); $results = $app -> triggerEvent('onContentDisplayListView', array( 'com_tz_portfolio_plus.portfolio', &$item, &$item -> params, $this->getState('list.start'))); $item->event->contentDisplayListView = trim(implode("\n", $results)); // Process the tz portfolio's mediatype plugins. $results = $app -> triggerEvent('onContentDisplayMediaType',array( 'com_tz_portfolio_plus.portfolio', &$item, &$item -> params, $this -> getState('list.start'))); if($item){ $item -> event -> onContentDisplayMediaType = trim(implode("\n", $results)); if($results = $app -> triggerEvent('onAddMediaType')){ $mediatypes = array(); foreach($results as $result){ if(isset($result -> special) && $result -> special) { $mediatypes[] = $result -> value; } } $item -> mediatypes = $mediatypes; } }else{ unset($items[$i]); } } if($item && strlen(trim($item -> introtext)) && $introLimit = $params -> get('tz_article_intro_limit')){ $item -> introtext = '<p>'.JHtml::_('string.truncate', $item->introtext, $introLimit, true, false).'</p>'; } // Get article's extrafields $extraFields = TZ_Portfolio_PlusFrontHelperExtraFields::getExtraFields($item, $item -> params, false, array('filter.list_view' => true, 'filter.group' => $params -> get('order_fieldgroup', 'rdate'))); $item -> extrafields = $extraFields; $app -> triggerEvent('onTPContentAfterPrepare', array('com_tz_portfolio_plus.portfolio', &$item, &$item -> params, $this -> getState('list.start'))); } return $items; } } return false; } public function ajax($data = null){ $list = null; $params = JComponentHelper::getParams('com_tz_portfolio_plus'); $input = JFactory::getApplication() -> input; $Itemid = $data['Itemid']; $page = $data['page']; $layout = $data['layout']; $char = $data['char']; $catid = $data['id']; $uid = $data['uid']; $tagid = $data['tid']; $searchword = $data['searchword']; $tags = stripslashes($input -> getString('tags')); $tags = json_decode($tags); $menu = JMenu::getInstance('site'); $menuParams = $menu -> getParams($Itemid); $params -> merge($menuParams); $limit = (int) $params -> get('tz_article_limit', 10); $offset = $limit * ($page - 1); $user = JFactory::getUser(); if ((!$user->authorise('core.edit.state', 'com_tz_portfolio_plus')) && (!$user->authorise('core.edit', 'com_tz_portfolio_plus'))){ // limit to published for people who can't edit or edit.state. $this->setState('filter.published', 1); } else { $this->setState('filter.published', array(0, 1, 2)); } $app = JFactory::getApplication(); $this->setState('filter.language', $app->getLanguageFilter()); $this -> setState('list.limit',$limit); $this -> setState('list.start',$offset); $this -> setState('params',$params); $this -> setState('filter.char',$char); $this -> setState('filter.category_id',$catid); $this -> setState('filter.userId',$uid); $this -> setState('filter.tagId',$tagid); $this -> setState('filter.tagAlias',$data['tagAlias']); $this -> setState('filter.shownIds',$data['shownIds']); $this -> setState('filter.fields',$data['fields']); $this -> setState('filter.searchword',$searchword); $orderby = ''; $secondary = TZ_Portfolio_PlusHelperQuery::orderbySecondary($params -> get('orderby_sec', 'rdate')); $primary = TZ_Portfolio_PlusHelperQuery::orderbyPrimary($params -> get('orderby_pri')); $orderby .= $primary . ' ' . $secondary; $this -> setState('list.ordering', $orderby); $this -> setState('list.direction', null); return true; } protected function __getArticleByKey($article, $key = 'id'){ $storeId = md5(__METHOD__.'::'.$key); if(!isset($this -> cache[$storeId])){ $this -> cache[$storeId] = ArrayHelper::getColumn($article, $key); return $this -> cache[$storeId]; } return $this -> cache[$storeId]; } public function getCategoriesByArticle(){ if($articles = $this -> cache[$this->getStoreId()]){ $contentId = $this -> __getArticleByKey($articles, 'id'); $params = $this -> getState('params'); $orderby = null; // Order by artilce switch ($params -> get('orderby_pri')){ case 'alpha' : $orderby = 'title'; break; case 'ralpha' : $orderby = 'title DESC'; break; case 'order' : $orderby = 'lft'; break; } $options = array('orderby' => $orderby, 'reverse_contentid' => false, 'groupby' => 'c.id'); if(!$params -> get('filter_second_category', 1)){ return TZ_Portfolio_PlusFrontHelperCategories::getMainCategoriesByArticleId($contentId); } return TZ_Portfolio_PlusFrontHelperCategories::getCategoriesByArticleId($contentId, $options); } return false; } public function getAllCategories(){ $params = $this -> getState('params'); $orderby = null; // Order by artilce switch ($params -> get('orderby_pri')){ case 'alpha' : $orderby = 'c.title'; break; case 'ralpha' : $orderby = 'c.title DESC'; break; case 'order' : $orderby = 'c.lft'; break; } $catid = $params -> get('catid', array()); $catid = array_unique($catid); $catid = array_filter($catid); $options = array('second_by_article' => true, 'orderby' => $orderby); if(!$params -> get('filter_second_category', 1)){ $options['second_by_article'] = false; } if(count($catid) && $categories = TZ_Portfolio_PlusFrontHelperCategories::getCategoriesById($catid, $options)){ return $categories; } return TZ_Portfolio_PlusFrontHelperCategories::getAllCategories($options); } public function getTagsByArticle($filterAlias = null){ if($articles = $this -> cache[$this->getStoreId()]){ $contentId = $this -> __getArticleByKey($articles, 'id'); $tags = TZ_Portfolio_PlusFrontHelperTags::getTagsFilterByArticleId($contentId, $filterAlias); return $tags; } return false; } public function getAllTags(){ $params = $this -> getState('params'); return TZ_Portfolio_PlusFrontHelperTags::getTagsByCategoryId($params -> get('catid')); } public function getAvailableLetter(){ $params = $this -> getState('params'); if($params -> get('use_filter_first_letter',0)){ if($letters = $params -> get('tz_letters','a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z')){ $letters = explode(',',$letters); $arr = null; $filters = array(); if($catids = $params -> get('catid')){ $filters['catid'] = $catids; } if($featured = $this -> getState('filter.featured')){ $filters['featured'] = $featured; } if($tagId = $this -> getState('filter.tagId')){ $filters['tagId'] = $tagId; } if($userId = $this -> getState('filter.userId')){ $filters['userId'] = $userId; } if($year = $this -> getState('filter.year')){ $filters['year'] = $year; } if($month = $this -> getState('filter.month')){ $filters['month'] = $month; } $lettersArt = TZ_Portfolio_PlusContentHelper::getLetters($filters); foreach($letters as $i => &$letter){ $letter = trim($letter); $letterKey = ord($letter); $arr[$i] = false; if(in_array($letterKey, $lettersArt)){ $arr[$i] = true; } } return $arr; } } return false; } public function getAvailableItem() { if (isset($_COOKIE["tppLatestItem"]) && $_COOKIE["tppLatestItem"] !='undefined' && $tppLatestItem = $_COOKIE["tppLatestItem"]) { $tppLatestItem = (int)str_replace('tzelement','', $tppLatestItem); if ($tppLatestItem) { $query = $this->getListQuery(); $query->where ('c.id = '.$tppLatestItem); $db = JFactory::getDbo(); $db->setQuery($query); $data = $db->loadObject(); if ($data) { return $data; } } } return false; } public function ajaxComments(){ $input = JFactory::getApplication() -> input; $data = json_decode(base64_decode($input -> getString('url'))); $id = json_decode(base64_decode($input -> getString('id'))); if($data){ require_once(JPATH_COMPONENT_ADMINISTRATOR.DIRECTORY_SEPARATOR.'libraries' .DIRECTORY_SEPARATOR.'phpclass'.DIRECTORY_SEPARATOR.'http_fetcher.php'); require_once(JPATH_COMPONENT_ADMINISTRATOR.DIRECTORY_SEPARATOR.'libraries' .DIRECTORY_SEPARATOR.'phpclass'.DIRECTORY_SEPARATOR.'readfile.php'); $params = JComponentHelper::getParams('com_tz_portfolio_plus'); $Itemid = $input -> getInt('Itemid'); $menu = JMenu::getInstance('site'); $menuParams = $menu -> getParams($Itemid); $params -> merge($menuParams); $threadLink = null; $_id = null; if(is_array($data) && count($data)){ foreach($data as $i => &$contentUrl){ if(!preg_match('/http\:\/\//i',$contentUrl)){ $uri = JUri::getInstance(); $contentUrl = $uri -> getScheme().'://'.$uri -> getHost().$contentUrl; } if(preg_match('/(.*?)(\?tmpl\=component)|(\&tmpl\=component)/i',$contentUrl)){ $contentUrl = preg_replace('/(.*?)(\?tmpl\=component)|(\&tmpl\=component)/i','$1',$contentUrl); } $_id[$contentUrl] = $id[$i]; if($params -> get('tz_comment_type','disqus') == 'facebook'){ $threadLink .= '&urls[]='.$contentUrl; }elseif($params -> get('tz_comment_type','disqus') == 'disqus'){ $threadLink .= '&thread[]=link:'.$contentUrl; } } } if(!is_array($data)){ $threadLink = $data; } $fetch = new Services_Yadis_Plainhttp_fetcher(); $comments = null; if($params -> get('tz_show_count_comment',1) == 1){ // From Facebook if($params -> get('tz_comment_type','disqus') == 'facebook'){ if($threadLink){ $url = 'http://api.facebook.com/restserver.php?method=links.getStats' .$threadLink; $content = $fetch -> get($url); if($content){ if($bodies = $content -> body){ if(preg_match_all('/\<link_stat\>(.*?)\<\/link_stat\>/ims',$bodies,$matches)){ if(isset($matches[1]) && !empty($matches[1])){ foreach($matches[1]as $val){ $match = null; if(preg_match('/\<url\>(.*?)\<\/url\>.*?\<comment_count\>(.*?)\<\/comment_count\>/msi',$val,$match)){ if(isset($match[1]) && isset($match[2])){ if(in_array($match[1],$data)){ $comments[$_id[$match[1]]] = $match[2]; } } } } } } } } } } // Disqus Comment count if($params -> get('tz_comment_type','disqus') == 'disqus'){ $url = 'https://disqus.com/api/3.0/threads/list.json?api_secret=' .$params -> get('disqusApiSecretKey','4sLbLjSq7ZCYtlMkfsG7SS5muVp7DsGgwedJL5gRsfUuXIt6AX5h6Ae6PnNREMiB') .'&forum='.$params -> get('disqusSubDomain','templazatoturials') .$threadLink.'&include=open'; if($_content = $fetch -> get($url)){ $body = json_decode($_content -> body); if(isset($body -> response)){ if($responses = $body -> response){ foreach($responses as $response){ if(in_array($response ->link,$data)){ $comments[$_id[$response ->link]] = $response -> posts; } } } } } } if($comments){ if(is_array($comments)){ return json_encode($comments); } return 0; } return 0; } } } } ?>
| ver. 1.6 |
Github
|
.
| PHP 7.4.33 | Generation time: 0 |
proxy
|
phpinfo
|
Settings