| Current Path : /home/balossw/www/site2/administrator/components/com_sppagebuilder/builder/types/ |
| Current File : /home/balossw/www/site2/administrator/components/com_sppagebuilder/builder/types/module.php |
<?php
/**
* @package SP Page Builder
* @author JoomShaper http://www.joomshaper.com
* @copyright Copyright (c) 2010 - 2016 JoomShaper
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 or later
*/
//no direct accees
defined ('_JEXEC') or die ('restricted access');
class SpTypeModule{
static function getInput($key, $attr)
{
if(!isset($attr['std'])){
$attr['std'] = '';
}
// Depends
$depend_data = '';
if(isset($attr['depends'])) {
$array = array();
foreach ($attr['depends'] as $operand => $value) {
if(!is_array($value)) {
$array[] = array(
$operand,
'=',
$value
);
} else {
$array = $attr['depends'];
}
}
$depend_data = " data-depends='". json_encode($array) ."'";
}
if(!isset($attr['module'])){
$attr['module'] = 'module';
}
// Get list of modules
if($attr['module'] == 'position') {
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select(array('position'))
->from('#__modules')
->where('client_id = 0')
->where('published = 1')
->group('position')
->order('position ASC');
$db->setQuery($query);
$positions = $db->loadColumn();
$template = self::getTemplate();
$templateXML = JPATH_SITE.'/templates/'.$template.'/templateDetails.xml';
$template = simplexml_load_file( $templateXML );
foreach($template->positions[0] as $position) {
$positions[] = (string) $position;
}
$positions = array_unique($positions);
} else {
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('id, title');
$query->from('#__modules');
$query->where('client_id = 0');
$query->where('published = 1');
$query->order('ordering, title');
$db->setQuery($query);
$modules = $db->loadObjectList();
}
$output = '<div class="sp-pagebuilder-form-group"' . $depend_data . '>';
$output .= '<label>'.$attr['title'].'</label>';
$output .= '<select class="sp-pagebuilder-form-control sp-pagebuilder-addon-input" name="'.$key.'" id="field_'.$key.'">';
$output .= '<option value=""></option>';
if($attr['module'] == 'position') {
foreach( $positions as $position )
{
$output .= '<option value="'.$position.'" '.(($attr['std'] == $position )?'selected':'').'>'. $position .'</option>';
}
} else {
foreach( $modules as $module )
{
$output .= '<option value="'.$module->id.'" '.(($attr['std'] == $module->id )?'selected':'').'>'. $module->title .'</option>';
}
}
$output .= '</select>';
if( ( isset($attr['desc']) ) && ( isset($attr['desc']) != '' ) )
{
$output .= '<p class="sp-pagebuilder-help-block">' . $attr['desc'] . '</p>';
}
$output .= '</div>';
return $output;
}
private static function getTemplate() {
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select($db->quoteName(array('template')));
$query->from($db->quoteName('#__template_styles'));
$query->where($db->quoteName('client_id') . ' = '. $db->quote(0));
$query->where($db->quoteName('home') . ' = '. $db->quote(1));
$db->setQuery($query);
return $db->loadResult();
}
}