private function initialise() { static $loaded = false; if (!$loaded || true) { defined('DS') || define('DS', DIRECTORY_SEPARATOR); require_once JPATH_SITE . '/components/com_sobipro/lib/sobi.php'; Sobi::Initialise(); if (SOBI_CMS == 'joomla3') { SPFactory::header()->initBase(true)->addJsFile(array('sobipro', 'jqnc', 'adm.sobipro', 'adm.jnmenu', 'jquery-base64')); } else { SPFactory::header()->initBase(true)->addJsFile(array('sobipro', 'jquery', 'adm.sobipro', 'adm.jnmenu', 'jquery-migrate', 'jquery-base64'))->addCSSCode('#toolbar-box { display: block }'); } $loaded = true; SPLoader::loadClass('mlo.input'); SPLoader::loadClass('models.datamodel'); SPLoader::loadClass('models.dbobject'); SPLoader::loadModel('section'); $model = JModelLegacy::getInstance('MenusModelItem')->getItem(); self::$mid = $model->id; if (isset($model->params['SobiProSettings']) && strlen($model->params['SobiProSettings'])) { $this->params = json_decode(base64_decode($model->params['SobiProSettings'])); } $jsString = json_encode(array('component' => Sobi::Txt('SOBI_NATIVE_TASKS'), 'buttonLabel' => Sobi::Txt('SOBI_SELECT_FUNCTIONALITY'))); SPFactory::header()->addJsCode("SpStrings = {$jsString}; "); } }
public function __construct($component) { if (!defined('SOBIPRO')) { define('SOBIPRO', true); defined('SOBI_CMS') || version_compare(JVERSION, '1.6.0', 'ge') ? define('SOBI_CMS', 'joomla16') : define('SOBI_CMS', 'joomla15'); defined('SOBI_TASK') || define('SOBI_TASK', 'task'); defined('SOBI_DEFLANG') || define('SOBI_DEFLANG', JFactory::getConfig()->get('config.language')); defined('SOBI_ACL') || define('SOBI_ACL', 'front'); defined('SOBI_ROOT') || define('SOBI_ROOT', JPATH_ROOT); defined('SOBI_MEDIA') || define('SOBI_MEDIA', implode(DIRECTORY_SEPARATOR, array(JPATH_ROOT, 'media', 'sobipro'))); defined('SOBI_MEDIA_LIVE') || define('SOBI_MEDIA_LIVE', JURI::root() . '/media/sobipro'); defined('SOBI_PATH') || define('SOBI_PATH', SOBI_ROOT . DIRECTORY_SEPARATOR . 'components' . DIRECTORY_SEPARATOR . 'com_sobipro'); defined('SOBI_LIVE_PATH') || define('SOBI_LIVE_PATH', 'components/com_sobipro'); $this->addFile(SOBI_PATH . DIRECTORY_SEPARATOR . 'lib' . DIRECTORY_SEPARATOR . 'base' . DIRECTORY_SEPARATOR . 'fs' . DIRECTORY_SEPARATOR . 'loader.php'); } SPLoader::loadController('interface'); SPLoader::loadClass('base.filter'); SPLoader::loadClass('base.request'); SPLoader::loadClass('base.const'); SPLoader::loadClass('base.factory'); SPLoader::loadClass('base.object'); SPLoader::loadClass('base.filter'); SPLoader::loadClass('base.request'); SPLoader::loadClass('sobi'); SPLoader::loadClass('base.config'); SPLoader::loadClass('base.exception'); SPLoader::loadClass('cms.base.lang'); SPLoader::loadClass('mlo.input'); parent::__construct($component); }
protected function loadFunction($function) { $xml = new DOMDocument(); $xml->load(SPLoader::path("menu.{$function}", 'adm.templates', true, 'xml')); $xpath = new DOMXPath($xml); $this->loadLanguage($xpath); $calls = $xpath->query('/definition/config/calls/call'); $this->menu = SPFactory::db()->select('*', '#__menu', array('id' => SPRequest::int('mid')))->loadObject(); if (isset($this->menu->params)) { $this->menu->params = json_decode($this->menu->params); if (isset($this->menu->params->SobiProSettings)) { $this->menu->params->SobiProSettings = json_decode(base64_decode($this->menu->params->SobiProSettings)); } } /** @var SPAdmView $view */ $view = SPFactory::View('joomla-menu', true); $view->assign($this->menu, 'joomlaMenu'); $section = SPRequest::int('section'); if ($calls->length) { foreach ($calls as $file) { $method = $file->attributes->getNamedItem('method')->nodeValue; if ($file->attributes->getNamedItem('static') && $file->attributes->getNamedItem('static')->nodeValue == 'true') { $class = SPLoader::loadClass($file->attributes->getNamedItem('file')->nodeValue); $class::$method($view, $this->menu); } else { $obj = SPFactory::Instance($file->attributes->getNamedItem('file')->nodeValue); $obj->{$method}($view, $this->menu); } } } $view->assign($section, 'sectionId')->determineTemplate('menu', $function)->display(); }
protected function edit() { SPLoader::loadClass('html.tooltip'); $this->_type = 'entry_form'; $id = $this->get('entry.id'); if ($id) { $this->addHidden($id, 'entry.id'); } if (Sobi::Cfg('legacy.sigsiutree', false)) { /* load the SigsiuTree class */ $tree = SPLoader::loadClass('mlo.tree'); /* create new instance */ $tree = new $tree(Sobi::Cfg('list.categories_ordering')); $link = "javascript:SP_selectCat( '{sid}' )"; $tree->setHref($link); $tree->setTask('category.chooser'); $tree->disable(Sobi::Section()); $tree->init(Sobi::Section()); $head = SPFactory::header(); $params = array(); $params['URL'] = Sobi::Url(array('task' => 'category.parents', 'out' => 'json'), true, false, true); $params['MAXCATS'] = Sobi::Cfg('legacy.maxCats', '5'); $params['SEPARATOR'] = Sobi::Cfg('string.path_separator', ' > '); $head->addJsVarFile('edit', md5(Sobi::Section() . Sobi::Section(true) . serialize($params)), $params); } $type = $this->key('template_type', 'xslt'); if ($type != 'php' && Sobi::Cfg('global.disable_xslt', false)) { $type = 'php'; } if ($type == 'xslt') { $data = $this->entryData(false); $fields = $this->get('fields'); $f = array(); if (count($fields)) { foreach ($fields as $field) { if ($field->enabled('form')) { $pf = null; $pfm = null; if (!$field->get('isFree') && $field->get('fee') && !Sobi::Can('entry.payment.free')) { $pf = SPLang::currency($field->get('fee')); $pfm = Sobi::Txt('EN.FIELD_NOT_FREE_MSG', array('fee' => $pf, 'fieldname' => $field->get('name'))); } $f[$field->get('nid')] = array('_complex' => 1, '_data' => array('label' => array('_complex' => 1, '_data' => $field->get('name'), '_attributes' => array('lang' => Sobi::Lang(false), 'show' => $field->__get('showEditLabel'))), 'data' => array('_complex' => 1, '_xml' => 1, '_data' => $field->field(true)), 'description' => array('_complex' => 1, '_xml' => 1, '_data' => $field->get('description')), 'fee' => $pf, 'fee_msg' => $pfm), '_attributes' => array('id' => $field->get('id'), 'type' => $field->get('type'), 'suffix' => $field->get('suffix'), 'position' => $field->get('position'), 'required' => $field->get('required'), 'css_edit' => $field->get('cssClassEdit'), 'width' => $field->get('bsWidth'), 'css_class' => strlen($field->get('cssClass')) ? $field->get('cssClass') : 'spField')); } } } $f['save_button'] = array('_complex' => 1, '_data' => array('data' => array('_complex' => 1, '_xml' => 1, '_data' => SPHtml_Input::submit('save', Sobi::Txt('EN.SAVE_ENTRY_BT'))))); $f['cancel_button'] = array('_complex' => 1, '_data' => array('data' => array('_complex' => 1, '_xml' => 1, '_data' => SPHtml_Input::button('cancel', Sobi::Txt('EN.CANCEL_BT'), array('onclick' => 'SPcancelEdit();'))))); if (Sobi::Cfg('legacy.sigsiutree', false)) { $data['entry']['_data']['category_chooser'] = array('path' => array('_complex' => 1, '_xml' => 1, '_data' => SPHtml_Input::textarea('parent_path', $this->get('parent_path'), false, 500, 60, array('id' => 'entry.path', 'class' => 'inputbox required', 'readonly' => 'readonly'))), 'selected' => array('_complex' => 1, '_xml' => 1, '_data' => SPHtml_Input::text('entry.parent', $this->get('parents'), array('id' => 'entry.parent', 'size' => 15, 'maxlength' => 50, 'class' => 'inputbox required', 'readonly' => 'readonly', 'style' => 'text-align:center;')))); } $data['entry']['_data']['fields'] = array('_complex' => 1, '_data' => $f, '_attributes' => array('lang' => Sobi::Lang(false))); if (Sobi::Cfg('legacy.sigsiutree', false)) { $data['tree'] = array('_complex' => 1, '_xml' => 1, '_data' => SPLang::entities($tree->display(true), true)); } $this->_attr = $data; Sobi::Trigger($this->_type, ucfirst(__FUNCTION__), array(&$this->_attr)); } }
/** */ public function __construct() { SPLoader::loadClass('mlo.input'); SPFactory::header()->addJsFile('adm.tooltips'); // @todo: legacy - has to be removed later SPLoader::loadClass('helpers.adm.lists'); Sobi::Trigger('Create', $this->name(), array(&$this)); }
/** * @param int $limit * @param int $count * @param int $current * @param string $func * @param array $limits * @deprecated */ public function __construct($limit, $count, $current, $func, $box, $boxFunc, $limits = array(5, 10, 15, 25, 50)) { $this->limit = $limit; $this->count = $count; $this->current = $current ? $current : 1; $this->limits = is_array($limits) && count($limits) ? $limits : $this->limits; $this->func = $func; $this->boxFunc = $boxFunc; $this->box = $box; SPLoader::loadClass('mlo.input'); }
/** * */ public function _display() { SPLoader::loadClass('html.tooltip'); switch ($this->get('task')) { case 'edit': $this->assign($this->languages(), 'languages-list'); case 'add': $this->edit(); break; } parent::display(); }
function getObjectInfo($id, $language = null) { $info = new JCommentsObjectInfo(); $app = JFactory::getApplication(); if (!$app->isAdmin()) { $db = JFactory::getDBO(); $query = "SELECT o.id, o.name, o.owner, o.parent, fd.baseData" . " FROM #__sobipro_object as o" . " LEFT JOIN #__sobipro_field_data AS fd ON o.id = fd.sid" . " JOIN #__sobipro_field AS f ON fd.fid = f.fid AND f.nid = 'field_name'" . " WHERE o.id = " . $id . " AND o.oType = 'entry'"; $db->setQuery($query); $row = $db->loadObject(); if (!empty($row)) { $sobiCore = JPATH_SITE . '/components/com_sobipro/lib/base/fs/loader.php'; if (is_file($sobiCore)) { if (!defined('SOBIPRO')) { $ver = new JVersion(); $ver = str_replace('.', null, $ver->RELEASE); if ($ver > '15') { $ver = '16'; } define('SOBI_CMS', 'joomla' . $ver); define('SOBIPRO', true); define('SOBI_TASK', 'task'); define('SOBI_DEFLANG', JFactory::getLanguage()->getDefault()); define('SOBI_ACL', 'front'); define('SOBI_ROOT', JPATH_ROOT); define('SOBI_MEDIA', implode(DS, array(JPATH_ROOT, 'media', 'sobipro'))); define('SOBI_MEDIA_LIVE', JURI::root() . '/media/sobipro'); define('SOBI_PATH', JPATH_ROOT . '/components/com_sobipro'); define('SOBI_LIVE_PATH', 'components/com_sobipro'); require_once JPATH_ROOT . '/components/com_sobipro/lib/base/fs/loader.php'; } SPLoader::loadClass('sobi'); SPLoader::loadClass('base.request'); SPLoader::loadClass('base.object'); SPLoader::loadClass('base.factory'); SPLoader::loadClass('base.mainframe'); SPLoader::loadClass('base.const'); SPLoader::loadClass('cms.base.mainframe'); SPLoader::loadClass('cms.base.lang'); $info->title = empty($row->name) ? isset($row->baseData) ? $row->baseData : '' : $row->name; $info->access = NULL; $info->userid = $row->owner; $info->link = Sobi::Url(array('title' => $row->name, 'pid' => $row->parent, 'sid' => $row->id)); } } } return $info; }
/** */ private function getSections() { $order = $this->parseOrdering(); try { $sections = SPFactory::db()->select('*', 'spdb_object', array('oType' => 'section'), $order)->loadObjectList(); } catch (SPException $x) { Sobi::Error($this->name(), SPLang::e('DB_REPORTS_ERR', $x->getMessage()), SPC::WARNING, 500, __LINE__, __FILE__); } if (count($sections)) { SPLoader::loadClass('models.datamodel'); SPLoader::loadClass('models.dbobject'); SPLoader::loadModel('section'); foreach ($sections as $section) { if (Sobi::Can('section', 'access', 'any', $section->id)) { $s = new SPSection(); $s->extend($section); $this->_sections[] = $s; } } } }
public function execute() { SPRequest::set('task', $this->_type . '.' . $this->_task); if (strstr($this->_task, '.')) { $task = explode('.', $this->_task); $class = SPLoader::loadClass('opt.listing.' . $task[0], false, null, true); } else { $class = SPLoader::loadClass('opt.listing.' . $this->_task, false, null, true); } if ($class) { $imp = class_implements($class); if (is_array($imp) && in_array('SPListing', $imp)) { /** @noinspection PhpIncludeInspection $compatibility */ $listing = new $class(); if (!isset($class::$compatibility)) { define('SOBI_LEGACY_LISTING', true); if (strstr($this->_task, '.')) { $t = explode('.', $this->_task); $listing->setTask($t[0]); } else { $listing->setTask($this->_task); } } else { $listing->setTask($this->_task); } return $listing->execute(); } else { Sobi::Error($this->name(), SPLang::e('SUCH_TASK_NOT_FOUND Wrong class definition', SPRequest::task()), SPC::NOTICE, 404, __LINE__, __FILE__); } } else { /* case parent didn't registered this task, it was an error */ if (!parent::execute() && $this->name() == __CLASS__) { Sobi::Error($this->name(), SPLang::e('SUCH_TASK_NOT_FOUND', SPRequest::task()), SPC::NOTICE, 404, __LINE__, __FILE__); } } }
/** * @deprecated since 1.1 replaced by {@link #Initialise()} * @param int $sid - section id * @param null $root - root of Joomla! * @param null $lang - language * @return null */ public static function Init($root = null, $lang = null, $sid = 0) { static $loaded = false; if (!$loaded) { if (!defined('SOBI_CMS')) { define('SOBI_CMS', version_compare(JVERSION, '3.0.0', 'ge') ? 'joomla3' : (version_compare(JVERSION, '1.6.0', 'ge') ? 'joomla16' : 'joomla15')); } defined('SOBIPRO') || define('SOBIPRO', true); defined('SOBI_TASK') || define('SOBI_TASK', 'task'); defined('SOBI_DEFLANG') || define('SOBI_DEFLANG', $lang); defined('SOBI_ACL') || define('SOBI_ACL', 'front'); defined('SOBI_ROOT') || define('SOBI_ROOT', $root); defined('SOBI_MEDIA') || define('SOBI_MEDIA', implode('/', array($root, 'media', 'sobipro'))); defined('SOBI_PATH') || define('SOBI_PATH', SOBI_ROOT . '/components/com_sobipro'); defined('SOBI_LIVE_PATH') || define('SOBI_LIVE_PATH', 'components/com_sobipro'); require_once SOBI_PATH . '/lib/base/fs/loader.php'; SPLoader::loadController('sobipro'); SPLoader::loadController('interface'); SPLoader::loadClass('base.exception'); SPLoader::loadClass('base.const'); SPLoader::loadClass('base.object'); SPLoader::loadClass('base.filter'); SPLoader::loadClass('base.request'); SPLoader::loadClass('cms.base.lang'); SPLoader::loadClass('models.dbobject'); SPLoader::loadClass('base.factory'); SPLoader::loadClass('base.config'); SPLoader::loadClass('cms.base.fs'); // in case it is a CLI call if (isset($_SERVER['REQUEST_URI'])) { SPFactory::config()->set('live_site', JURI::root()); } $loaded = true; } if ($sid) { $section = null; if ($sid) { $path = array(); $id = $sid; $path[] = (int) $id; while ($id > 0) { try { $id = SPFactory::db()->select('pid', 'spdb_relations', array('id' => $id))->loadResult(); if ($id) { $path[] = (int) $id; } } catch (SPException $x) { Sobi::Error('ExtCoreCtrl', SPLang::e('DB_REPORTS_ERR', $x->getMessage()), SPC::ERROR, 500, __LINE__, __FILE__); } } $path = array_reverse($path); $section = SPFactory::object($path[0]); } /* set current section in the registry */ SPFactory::registry()->set('current_section', $section->id); $_config =& SPFactory::config(); /* load basic configuration settings */ $_config->addIniFile('etc.config', true); $_config->addTable('spdb_config', $sid); /* initialise interface config setting */ SPFactory::mainframe()->getBasicCfg(); /* initialise config */ $_config->init(); } }
public static function validateVisibility(&$data) { SPLoader::loadClass('env.browser'); $humanity = SPBrowser::getInstance()->get('humanity'); $display = Sobi::Cfg('mail_protection.show'); if (!($humanity >= $display)) { $data['_data'] = array(); } }
/** * Enter description here... * */ protected function fields() { SPLoader::loadClass('html.tabs'); SPFactory::header()->addCssFile('tabs', true); $t = new SPHtml_Tabs(true, null); $tabs = $this->get('fields'); if (count($tabs)) { $t->startPane('fields_' . $this->get('task')); foreach ($tabs as $tab => $keys) { $t->startTab(Sobi::Txt($tab), str_replace(' ', '_', $tab)); echo '<table class="admintable" style="width: 100%;">'; $c = 0; foreach ($keys as $key => $params) { $class = $c % 2; $c++; $params = explode('|', $params); $p = array(); /* at first we need the label */ $label = Sobi::Txt(array_shift($params)); $label2 = null; if (strstr($label, ':')) { $label = explode(':', $label); $label2 = $label[1]; $label = $label[0]; } /* get the field type */ $p[0] = array_shift($params); if (preg_match('/^section.*/', $key)) { /* put the field name */ $p[1] = $key; /* get the current value */ $p[2] = $this->get($key); } elseif (!strstr($key, 'spacer')) { /* put the field name */ $p[1] = 'spcfg_' . $key; /* get the current value */ $p[2] = Sobi::Cfg($key, ''); } if (strstr($key, 'spacer')) { if ($key == 'spacer_pby') { $this->pby(); } else { echo "<tr class=\"row{$class}\">"; echo '<th colspan="2" class="spConfigTableHeader">'; $this->txt($label); echo '</th>'; echo '</tr>'; } } else { if (strstr($key, '_array') && count($p[2]) && $p[2]) { $p[2] = implode(',', $p[2]); } /* and all other parameters */ if (count($params)) { foreach ($params as $param) { $p[] = $param; } } echo "<tr class=\"row{$class}\">"; echo '<td class="key" style="min-width:200px;">'; $this->txt($label); echo '</td>'; echo '<td>'; $this->parseField($p); if ($label2) { $this->txt($label2); } echo '</td>'; echo '</tr>'; } } echo '</table>'; $t->endTab(); } $t->endPane(); } }
private function delImgs() { $files = SPConfig::unserialize($this->getRaw()); if (is_array($files) && count($files)) { SPLoader::loadClass('cms.base.fs'); foreach ($files as $file) { if (!strlen($file)) { continue; } $file = Sobi::FixPath(SOBI_ROOT . "/{$file}"); // should never happen but who knows .... if ($file == SOBI_ROOT) { continue; } if (SPFs::exists($file)) { SPFs::delete($file); } } } }
* $HeadURL$ */ define('SOBI_TESTS', false); defined('_JEXEC') || exit('Restricted access'); defined('DS') || define('DS', DIRECTORY_SEPARATOR); define('SOBI_CMS', version_compare(JVERSION, '3.0.0', 'ge') ? 'joomla3' : (version_compare(JVERSION, '1.6.0', 'ge') ? 'joomla16' : 'joomla15')); define('SOBIPRO', true); define('SOBI_TASK', 'task'); if (SOBI_CMS == 'joomla15') { define('SOBI_DEFLANG', JFactory::getConfig()->getValue('config.language')); } else { define('SOBI_DEFLANG', JComponentHelper::getParams('com_languages')->get('site', 'en-GB')); } define('SOBI_ACL', 'front'); define('SOBI_ROOT', JPATH_ROOT); define('SOBI_MEDIA', implode('/', array(JPATH_ROOT, 'media', 'sobipro'))); define('SOBI_MEDIA_LIVE', JURI::root() . 'media/sobipro'); define('SOBI_PATH', SOBI_ROOT . '/components/com_sobipro'); define('SOBI_LIVE_PATH', 'components/com_sobipro'); require_once SOBI_PATH . '/lib/base/fs/loader.php'; SPLoader::loadController('interface'); SPLoader::loadClass('base.filter'); SPLoader::loadClass('base.request'); // Try to catch direct file calls. Like /directory/piwik.php if (preg_match('/\\.php$/', SPRequest::task()) || strlen(SPRequest::task()) > 50) { JError::raiseError(403, 'Unauthorized Access'); } $class = SPLoader::loadController('sobipro'); $sobi = new $class(SPRequest::task()); $sobi->execute(); //SPConfig::debOut( SPRequest::task() );
* @copyright Copyright (C) 2006 - 2015 Sigsiu.NET GmbH (https://www.sigsiu.net). All rights reserved. * @license GNU/LGPL Version 3 * This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 3 * as published by the Free Software Foundation, and under the additional terms according section 7 of GPL v3. * See http://www.gnu.org/licenses/lgpl.html and https://www.sigsiu.net/licenses. * * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. */ defined('SOBIPRO') || exit('Restricted access'); /** * @author Radek Suski * @version 1.0 * @created 22-Jun-2010 13:39:51 */ SPLoader::loadClass('services.installers.installer'); class SPRepository extends SPInstaller { /** * @var SPSoapClient */ private $_server = null; protected $_repoDefArr = array(); public function __construct() { } public function loadDefinition($path) { $this->xmlFile = $path; $this->definition = new DOMDocument(); $this->definition->load($this->xmlFile);
* @author * Name: Sigrid Suski & Radek Suski, Sigsiu.NET GmbH * Email: sobi[at]sigsiu.net * Url: http://www.Sigsiu.NET * @copyright Copyright (C) 2006 - 2015 Sigsiu.NET GmbH (http://www.sigsiu.net). All rights reserved. * @license GNU/GPL Version 3 * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License version 3 as published by the Free Software Foundation, and under the additional terms according section 7 of GPL v3. * See http://www.gnu.org/licenses/gpl.html and http://sobipro.sigsiu.net/licenses. * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. * $Date: 2015-02-19 13:24:35 +0100 (Thu, 19 Feb 2015) $ * $Revision: 4387 $ * $Author: Radek Suski $ * $HeadURL: file:///opt/svn/SobiPro/Component/branches/SobiPro-1.1/Site/opt/fields/adm/url.php $ */ defined('SOBIPRO') || exit('Restricted access'); SPLoader::loadClass('opt.fields.url'); /** * @author Radek Suski * @version 1.0 * @created 14-Sep-2009 11:37:11 */ class SPField_UrlAdm extends SPField_Url { /** * @var string */ public $cssClass = "inputbox"; public function onFieldEdit() { $this->allowedProtocols = is_array($this->allowedProtocols) ? implode(',', $this->allowedProtocols) : null; }
* @author * Name: Sigrid Suski & Radek Suski, Sigsiu.NET GmbH * Email: sobi[at]sigsiu.net * Url: http://www.Sigsiu.NET * @copyright Copyright (C) 2006 - 2015 Sigsiu.NET GmbH (http://www.sigsiu.net). All rights reserved. * @license GNU/LGPL Version 3 * This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 3 as published by the Free Software Foundation, and under the additional terms according section 7 of GPL v3. * See http://www.gnu.org/licenses/lgpl.html and http://sobipro.sigsiu.net/licenses. * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. * $Date$ * $Revision$ * $Author$ * $HeadURL$ */ defined('SOBIPRO') || exit('Restricted access'); SPLoader::loadClass('base.fs.file'); /** * @author Radek Suski * @version 1.0 * @created 10-Jun-2010 10:21:27 */ class SPDirectoryIterator extends ArrayObject { /** * @var string */ private $_dir = null; /** * @param string $dir - path * @return SPDirectoryIterator */
* @author * Name: Sigrid Suski & Radek Suski, Sigsiu.NET GmbH * Email: sobi[at]sigsiu.net * Url: http://www.Sigsiu.NET * @copyright Copyright (C) 2006 - 2015 Sigsiu.NET GmbH (http://www.sigsiu.net). All rights reserved. * @license GNU/GPL Version 3 * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License version 3 as published by the Free Software Foundation, and under the additional terms according section 7 of GPL v3. * See http://www.gnu.org/licenses/gpl.html and http://sobipro.sigsiu.net/licenses. * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. * $Date$ * $Revision$ * $Author$ * $HeadURL$ */ defined('SOBIPRO') || exit('Restricted access'); SPLoader::loadClass('opt.fields.image'); /** * @author Radek Suski * @version 1.0 * @created 28-Nov-2009 20:06:47 */ class SPField_ImageAdm extends SPField_Image { public function save(&$attr) { if (($attr['resize'] || $attr['crop']) && !($attr['resizeWidth'] && $attr['resizeHeight'])) { throw new SPException(SPLang::e('IMG_FIELD_RESIZE_NO_SIZE')); } parent::save($attr); } }
private function cloneTpl() { $dir = $this->dir(SPRequest::cmd('templateName')); $newName = SPRequest::word('templateNewName', 'Duplicated Template', 'post'); $dirName = SPLang::nid($newName); $dirNameOrg = $dirName; $c = 1; while (SPFs::exists(SPLoader::dirPath('usr.templates.' . $dirName, 'front', false))) { $dirName = $dirNameOrg . '-' . $c++; } $newPath = SPLoader::dirPath('usr.templates.' . $dirName, 'front', false); if (!SPFs::copy($dir, $newPath)) { throw new SPException(SPLang::e('COULD_NOT_COPY_DIRECTORY', $dir, $newPath)); } $defFile = SPLoader::path($newPath . '.template', 'absolute', true, 'xml'); if ($defFile) { $fc = SPLoader::loadClass('base.fs.file'); $def = new DOMDocument(); $def->load($defFile); $xdef = new DOMXPath($def); $oldName = $xdef->query('/template/name')->item(0)->nodeValue; $oldDesc = $xdef->query('/template/description')->item(0)->nodeValue; $date = SPFactory::config()->date(time()); $xdef->query('/template/name')->item(0)->nodeValue = $newName; $xdef->query('/template/creationDate')->item(0)->nodeValue = $date; $xdef->query('/template/id')->item(0)->nodeValue = $dirName; $newDesc = Sobi::Txt('TP.CLONE_NOTE', array('name' => $oldName, 'date' => $date)); $xdef->query('/template/description')->item(0)->nodeValue = "{$newDesc}\n{$oldDesc}"; $file = new $fc($defFile); $file->content($def->saveXML()); $file->save(); } $this->response(Sobi::Url(array('task' => 'template.info', 'template' => str_replace(SOBI_PATH . DS . 'usr' . DS . 'templates' . DS, null, $dirName))), Sobi::Txt('TP.DUPLICATED'), false, 'success'); }
/** * Creates a textarea field with or without WYSIWYG editor * * @param string $name - name of the html field * @param string $value - selected value * @param bool $editor - enables WYSIWYG editor * @param int $width - width of the created textarea field in pixel * @param int $height - height of the created textarea field in pixel * @param array|string $params - two-dimensional array with additional html parameters. Can be also string defined, comma separated array with equal sign as key to index separator. * @param string | array $editorParams * @return string */ public static function textarea($name, $value = null, $editor = false, $width = 500, $height = 350, $params = '', $editorParams = null) { if (!is_array($editorParams) && strlen($editorParams)) { $editorParams = SPFactory::config()->structuralData($editorParams); } self::checkArray($params); if (!isset($params['style'])) { $params['style'] = "width: {$width}px; height: {$height}px;"; } Sobi::Trigger('BeforeCreateField', ucfirst(__FUNCTION__), array(&$name, &$value, &$editor, &$width, &$height, &$params)); $value = SPLang::entities($value); if ($editor) { $e = Sobi::Cfg('html.editor', 'cms.html.editor'); $c = SPLoader::loadClass($e); if ($c) { $e = new $c(); $area = $e->display($name, $value, $width, $height, (bool) Sobi::Cfg('html.editor_buttons', false), $editorParams); } } else { $params = self::params($params); $area = "<textarea name=\"{$name}\" {$params}>{$value}</textarea>"; } Sobi::Trigger('Field', ucfirst(__FUNCTION__), array(&$area)); return "\n<!-- TextArea '{$name}' Output -->\n{$area}\n<!-- TextArea '{$name}' End -->\n\n"; }
/** * @version: $Id: inbox.php 4387 2015-02-19 12:24:35Z Radek Suski $ * @package: SobiPro Component for Joomla! * @author * Name: Sigrid Suski & Radek Suski, Sigsiu.NET GmbH * Email: sobi[at]sigsiu.net * Url: http://www.Sigsiu.NET * @copyright Copyright (C) 2006 - 2015 Sigsiu.NET GmbH (http://www.sigsiu.net). All rights reserved. * @license GNU/GPL Version 3 * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License version 3 as published by the Free Software Foundation, and under the additional terms according section 7 of GPL v3. * See http://www.gnu.org/licenses/gpl.html and http://sobipro.sigsiu.net/licenses. * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. * $Date: 2015-02-19 13:24:35 +0100 (Thu, 19 Feb 2015) $ * $Revision: 4387 $ * $Author: Radek Suski $ * $HeadURL: file:///opt/svn/SobiPro/Component/branches/SobiPro-1.1/Site/opt/fields/adm/inbox.php $ */ defined('SOBIPRO') || exit('Restricted access'); SPLoader::loadClass('opt.fields.inbox'); /** * @author Radek Suski * @version 1.0 * @created 09-Sep-2009 12:52:45 PM */ class SPField_InboxAdm extends SPField_Inbox { /** * @var string */ public $cssClass = "inputbox"; }
<?php /** * @package: SobiPro Component for Joomla! * @author * Name: Sigrid Suski & Radek Suski, Sigsiu.NET GmbH * Email: sobi[at]sigsiu.net * Url: http://www.Sigsiu.NET * @copyright Copyright (C) 2006 - 2015 Sigsiu.NET GmbH (https://www.sigsiu.net). All rights reserved. * @license GNU/GPL Version 3 * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License version 3 as published by the Free Software Foundation, and under the additional terms according section 7 of GPL v3. * See http://www.gnu.org/licenses/gpl.html and https://www.sigsiu.net/licenses. * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. */ defined('SOBIPRO') || exit('Restricted access'); SPLoader::loadClass('opt.fields.radio'); /** * @author Radek Suski * @version 1.0 * @created 27-Nov-2009 17:10:15 */ class SPField_ChbxGr extends SPField_Radio implements SPFieldInterface { /** * @var string */ protected $cssClass = 'spClassCheckbox'; /** * @var string */ protected $cssClassView = 'spClassViewCheckbox'; /** * @var string */ protected $cssClassEdit = 'spClassEditCheckbox'; /** * @var string */ protected $cssClassSearch = 'spClassSearchCheckbox';
protected static function loadSobi() { if (defined('SOBI_TESTS')) { return true; } define('SOBI_TESTS', false); $ver = new JVersion(); $ver = str_replace('.', null, $ver->RELEASE); // added by Pierre Burri-Wittke globeall.de if ($ver > '15') { $ver = '16'; } define('SOBI_CMS', 'joomla' . $ver); define('SOBIPRO', true); define('SOBI_TASK', 'task'); define('SOBI_DEFLANG', JFactory::getLanguage()->getDefault()); define('SOBI_ACL', 'front'); define('SOBI_ROOT', JPATH_ROOT); define('SOBI_MEDIA', implode('/', array(JPATH_ROOT, 'media', 'sobipro'))); define('SOBI_MEDIA_LIVE', JURI::root() . '/media/sobipro'); define('SOBI_PATH', SOBI_ROOT . '/components/com_sobipro'); if (!file_exists(SOBI_PATH . '/lib/base/fs/loader.php')) { return false; } require_once SOBI_PATH . '/lib/base/fs/loader.php'; SPLoader::loadClass('sobi'); SPLoader::loadClass('base.request'); SPLoader::loadClass('base.object'); SPLoader::loadClass('base.factory'); SPLoader::loadClass('base.mainframe'); // added by Pierre Burri-Wittke globeall.de SPLoader::loadClass('base.const'); SPLoader::loadClass('cms.base.mainframe'); SPLoader::loadClass('cms.base.lang'); return true; }
/** * @return SPPlugins */ public static function &plugins() { $r =& self::registry(); if (!$r->__isset('plugins')) { SPLoader::loadClass('plugins.interface'); $plugins =& SPPlugins::getInstance(); $r->set('plugins', $plugins); } else { $plugins =& $r->__get('plugins'); } return $plugins; }
* @author * Name: Sigrid Suski & Radek Suski, Sigsiu.NET GmbH * Email: sobi[at]sigsiu.net * Url: http://www.Sigsiu.NET * @copyright Copyright (C) 2006 - 2015 Sigsiu.NET GmbH (http://www.sigsiu.net). All rights reserved. * @license GNU/LGPL Version 3 * This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 3 as published by the Free Software Foundation, and under the additional terms according section 7 of GPL v3. * See http://www.gnu.org/licenses/lgpl.html and http://sobipro.sigsiu.net/licenses. * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. * $Date$ * $Revision$ * $Author$ * $HeadURL$ */ defined('SOBIPRO') || exit('Restricted access'); SPLoader::loadClass('cms.base.mail'); /** * @author Radek Suski * @version 1.0 * @created 19-Sep-2010 13:00:06 */ class SPMail extends SPMailInterface { /** * @param array $recipient Recipient e-mail address * @param string $subject E-mail subject * @param string $body Message body * @param bool $html - HTML mail or plain text * @param array $replyto Reply to email address * @param array $cc CC e-mail address * @param array $bcc BCC e-mail address
/** * @todo Enter description here... * * @param array $ordering * @param string $type * @param string $id * @param string $fname * @return string */ public static function tableHeader($ordering, $type, $id = 'sid', $fname = 'order', $def = 'position.asc') { $header = array(); $current = SPFactory::user()->getUserState($type . '.order', $fname, $def); if (strstr($current, '.')) { $current = explode('.', $current); $newDirect = trim($current[1]) == 'asc' ? 'desc' : 'asc'; $current = $current[0]; } $sid = SPRequest::sid() ? SPRequest::sid() : SPRequest::int('pid'); if (is_array($ordering) && count($ordering)) { foreach ($ordering as $order => $active) { $class = null; $params = array(); if (is_array($active)) { $params = $active; $active = $active['type']; } switch ($active) { case SP_TBL_HEAD_RAW: $header[$order] = Sobi::Txt($type . '.header_' . $order); break; case 1: case 3: case 4: case 5: case 6: $direction = 'asc'; $ico = null; $aico = null; if (isset($params['order'])) { $sortBy = $params['order']; } else { $sortBy = $order; } $label = Sobi::Txt($type . '.header_' . $order); $title = Sobi::Txt($type . '.header_order_by_' . $order); if ($sortBy == $current) { $class = "class=\"selected\""; $ico = Sobi::Cfg('list_icons.sort_direction_' . ($newDirect == 'asc' ? 'desc' : 'asc')); $ico = " <img src=\"{$ico}\"/> "; $direction = $newDirect; } if ($active == SP_TBL_HEAD_SORTABLE_FIELD) { $label = $params['label']; $title = Sobi::Txt('LIST.ORDER_BY_FIELD', array('field' => $label)); } if ($active == SP_TBL_HEAD_STATE) { SPLoader::loadClass('html.tooltip'); $msg = Sobi::Txt('LIST.MAKE_SELECTION'); $onclk = " onclick=\"if( document.adminForm.boxchecked.value == 0 ) { alert( '{$msg}' ); } else { submitbutton( '{$type}.publish' ); }\""; $url = "#"; $ai = Sobi::Cfg('list_icons.enable'); $s = Sobi::Txt('LIST.ENABLE_S', array('type' => Sobi::Txt(strtoupper($type)))); $a = Sobi::Txt($type . '.enable_expl'); $aico = SPTooltip::toolTip($a, $s, $ai); $aico = " <span class=\"headerStateIcons\"><a href=\"{$url}\"{$onclk}>{$aico}</a></span>"; $ui = Sobi::Cfg('list_icons.disable'); $s = Sobi::Txt('LIST.DISABLE_S', array('type' => Sobi::Txt(strtoupper($type)))); $a = Sobi::Txt($type . '.disable_expl'); $uico = SPTooltip::toolTip($a, $s, $ui); $onclk = " onclick=\"if( document.adminForm.boxchecked.value == 0 ) { alert( '{$msg}' ); } else { submitbutton( '{$type}.hide' ); }\""; $uico = " <span class=\"headerStateIcons\"><a href=\"{$url}\"{$onclk}>{$uico}</a></span>"; $aico .= $uico; } if ($active == SP_TBL_HEAD_APPROVAL) { SPLoader::loadClass('html.tooltip'); $msg = Sobi::Txt('LIST.MAKE_SELECTION'); $onclk = " onclick=\"if( document.adminForm.boxchecked.value == 0 ) { alert( '{$msg}' ); } else { submitbutton( '{$type}.approve' ); }\""; $url = "#"; $ai = Sobi::Cfg('list_icons.approve'); $s = Sobi::Txt($type . '.approve'); $a = Sobi::Txt($type . '.approve_expl'); $aico = SPTooltip::toolTip($a, $s, $ai); $aico = " <span class=\"headerAppIcons\"><a href=\"{$url}\"{$onclk}>{$aico}</a></span>"; $ui = Sobi::Cfg('list_icons.disable'); $s = Sobi::Txt($type . '.unapprove'); $a = Sobi::Txt($type . '.unapprove_expl'); $uico = SPTooltip::toolTip($a, $s, $ui); $onclk = " onclick=\"if( document.adminForm.boxchecked.value == 0 ) { alert( '{$msg}' ); } else { submitbutton( '{$type}.unapprove' ); }\""; $uico = " <span class=\"headerAppIcons\"><a href=\"{$url}\"{$onclk}>{$uico}</a></span>"; $aico .= $uico; } if ($active == SP_TBL_HEAD_ORDER) { SPLoader::loadClass('html.tooltip'); $url = "#"; $onclk = " onclick=\"SPReorder( '{$type}', {$sid} );\" "; $aico = " <span class=\"headerStateIcons\"><a href=\"{$url}\" title=\"{$a}\">{$aico}</a></span>"; $ui = Sobi::Cfg('list_icons.order'); $s = Sobi::Txt($type . '.save_order'); $a = Sobi::Txt($type . '.save_order_expl'); $uico = SPTooltip::toolTip($a, $s, $ui); $uico = " <span class=\"headerOrderIcon\"><a href=\"{$url}\"{$onclk}>{$uico}</a></span>"; $aico .= $uico; } $header[$order] = "<a {$class} href=\"javascript:SPOrdering( '{$sortBy}','{$direction}', '{$fname}', {$sid} );\" title=\"{$title}\">{$label}</a> {$ico}{$aico}"; break; case SP_TBL_HEAD_SELECTION_BOX: $name = Sobi::Txt($type . '.header_toggle'); $header[$order] = "<input type=\"checkbox\" name=\"toggle\" id=\"toggel_{$id}\" title=\"{$name}\" value=\"1\" onclick=\"SPCheckListElements('{$id}', this );\"/>"; break; } } } return $header; }
* @author * Name: Sigrid Suski & Radek Suski, Sigsiu.NET GmbH * Email: sobi[at]sigsiu.net * Url: http://www.Sigsiu.NET * @copyright Copyright (C) 2006 - 2015 Sigsiu.NET GmbH (http://www.sigsiu.net). All rights reserved. * @license GNU/GPL Version 3 * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License version 3 as published by the Free Software Foundation, and under the additional terms according section 7 of GPL v3. * See http://www.gnu.org/licenses/gpl.html and http://sobipro.sigsiu.net/licenses. * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. * $Date$ * $Revision$ * $Author$ * $HeadURL$ */ defined('SOBIPRO') || exit('Restricted access'); SPLoader::loadClass('opt.fields.chbxgroup'); /** * @author Radek Suski * @version 1.0 * @created 27-Nov-2009 17:10:03 */ class SPField_ChbxGrAdm extends SPField_ChbxGr { public function save(&$attr) { static $lang = null; static $defLang = null; if (!$lang) { $lang = Sobi::Lang(); $defLang = Sobi::DefLang(); }
protected function validateFields($fields) { foreach ($fields as $data) { if (isset($data['_data']['data']['_validate']) && count($data['_data']['data']['_validate'])) { $class = str_replace(array('/', '.php'), array('.', null), $data['_data']['data']['_validate']['class']); if ($class) { $method = $data['_data']['data']['_validate']['method']; $class = SPLoader::loadClass($class); $class::$method($data['_data']['data']); } } } }
/** * @package: SobiPro Component for Joomla! * @author * Name: Sigrid Suski & Radek Suski, Sigsiu.NET GmbH * Email: sobi[at]sigsiu.net * Url: http://www.Sigsiu.NET * @copyright Copyright (C) 2006 - 2015 Sigsiu.NET GmbH (https://www.sigsiu.net). All rights reserved. * @license GNU/GPL Version 3 * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License version 3 * as published by the Free Software Foundation, and under the additional terms according section 7 of GPL v3. * See http://www.gnu.org/licenses/gpl.html and https://www.sigsiu.net/licenses. * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. */ defined('SOBIPRO') || exit('Restricted access'); SPLoader::loadClass('opt.fields.select'); /** * @author Radek Suski * @version 1.0 * @created 26-Nov-2009 14:33:03 */ class SPField_MultiSelect extends SPField_Select implements SPFieldInterface { /** * @var bool */ protected $multi = true; /** * @var int */ protected $size = 10;