| Server IP : 180.180.241.3 / Your IP : 216.73.216.216 Web Server : Microsoft-IIS/7.5 System : Windows NT NETWORK-NHRC 6.1 build 7601 (Windows Server 2008 R2 Standard Edition Service Pack 1) i586 User : IUSR ( 0) PHP Version : 5.3.28 Disable Function : NONE MySQL : ON | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/AppServ/www/news/tmp/Slider/admin/formfield/ |
Upload File : |
<?php
/**
* @package mod_bt_contentslider - BT ContentSlider Module
* @version 2.3
* @created July 2013
* @author BowThemes
* @email support@bowthems.com
* @website http://bowthemes.com
* @support Forum - http://bowthemes.com/forum/
* @copyright Copyright (C) 2012 Bowthemes. All rights reserved.
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
*
*/
// no direct access
defined('_JEXEC') or die('Restricted access');
jimport('joomla.html.html');
jimport('joomla.form.formfield');
class JFormFieldEasyblogcategories extends JFormFieldList {
protected $type = 'easyblogcategories'; //the form field type
var $options = array();
protected function getInput(){
$db = JFactory::getDBO();
$db->setQuery("SELECT enabled, manifest_cache FROM #__extensions WHERE name = 'com_easyblog'");
$rs = $db->loadAssoc();
if($rs['enabled']){
$cache = new JRegistry($rs['manifest_cache']);
$this->version = $cache->get('version');
return parent::getInput();
}else{
return '<span class="' . $this->element['class'] . '">' . JText::_('EASYBLOG_IS_NOT_ENABLED_OR_INSTALLED') . '</span>';
}
}
protected function getOptions() {
if(version_compare($this->version, '5.0', 'ge')){
require_once( JPATH_ADMINISTRATOR . '/components/com_easyblog/includes/easyblog.php' );
$catModel = EB::getModel( 'Categories' );
}else{
require_once( JPATH_ROOT . '/components/com_easyblog/constants.php' );
require_once( EBLOG_HELPERS . '/helper.php' );
$catModel = EasyBlogHelper::getModel( 'Categories' );
}
$parentCat = $catModel->getParentCategories('', 'all', true);
if(! empty($parentCat))
{
for($i = 0; $i < count($parentCat); $i++)
{
$parent = $parentCat[$i];
//reset
$parent->childs = null;
$this->buildNestedCategories($parent, false, true);
}
foreach($parentCat as $category)
{
$this->options[] = JHtml::_('select.option', $category->id, JText::_( $category->title ));
$this->accessNestedCategories($category, '0');
}
}
return $this->options;
}
public function buildNestedCategories(& $parent, $ignorePrivate = false, $isPublishedOnly = true)
{
$catModel = EasyBlogHelper::getModel( 'Categories' );
$childs = $catModel->getChildCategories($parent->id, $isPublishedOnly);
$accessibleCatsIds = EasyBlogHelper::getAccessibleCategories( $parent->id );
if(! empty($childs))
{
for($j = 0; $j < count($childs); $j++)
{
$child = $childs[$j];
$child->childs = null;
if(! $ignorePrivate)
{
if( count( $accessibleCatsIds ) > 0)
{
$access = false;
foreach( $accessibleCatsIds as $canAccess)
{
if( $canAccess->id == $child->id)
{
$access = true;
}
}
if( !$access ) continue;
}
else
{
continue;
}
}
if(! $this->buildNestedCategories($child, $ignorePrivate, $isPublishedOnly))
{
$parent->childs[] = $child;
}
}// for $j
}
else
{
return false;
}
}
/**
* Get nested categories
*/
public function accessNestedCategories($category, $deep='0')
{
if(isset($category->childs) && is_array($category->childs))
{
$sup = '- ';
$deep++;
for($d=0; $d < $deep; $d++)
{
$sup .= '- ';
}
for($j = 0; $j < count($category->childs); $j++)
{
$child = $category->childs[$j];
$this->options[] = JHtml::_('select.option', $child->id, $sup . JText::_( $child->title ));
EasyBlogHelper::accessNestedCategories($child, $deep);
}
}
else
{
return false;
}
}
// bind function to save
function bind( $array, $ignore = '' ) {
if (key_exists( 'field-name', $array ) && is_array( $array['field-name'] )) {
$array['field-name'] = implode( ',', $array['field-name'] );
}
return parent::bind( $array, $ignore );
}
}