<?php

/**
* Community Builder (TM)
* @version $Id: $
* @package CommunityBuilder
* @copyright (C) 2004-2016 www.joomlapolis.com / Lightning MultiCom SA - and its licensors, all rights reserved
* @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU/GPL version 2
*/
// ensure this file is being included by a parent file
if (!(defined('_VALID_CB') || defined('_JEXEC') || defined('_VALID_MOS'))) {
    die('Direct Access to this location is not allowed.');
}
// Auto-load and initialize everything that was in here:
/** @see CB\Legacy\LegacyComprofilerFunctions */
\CBLib\Application\Application::DI()->get('CB\\Legacy\\LegacyComprofilerFunctions');
/**
 * The classes that were in here have moved to libraries/CBLib/CB/Legacy folder.
 * The functions in here have moved to libraries/CBLib/CB/Legacy/LegacyComprofilerFunctions.php
 */
 private static function registerXml($action, $actionType)
 {
     global $_PLUGINS;
     $di = Application::DI();
     $extensionPath = $_PLUGINS->getPluginPath();
     /** @var \CBLib\AhaWow\AutoLoaderXml $autoLoaderXml::_construct() */
     $autoLoaderXml = $di->get('CBLib\\AhaWow\\AutoLoaderXml');
     $autoLoaderXml->registerMap('com_comprofiler/' . $action . '/' . $actionType, $extensionPath . '/xml/edit.front.' . preg_replace('/[^A-Za-z0-9_\\.-]/', '', $actionType) . '.xml');
 }
Example #3
0
 /**
  * Constructor
  *
  * @param  InputInterface           $input            The user form input
  * @param  SimpleXMLElement         $controllerModel  The model of the controller
  * @param  array                    $options          The routing options
  * @param  RegistryInterface        $pluginParams     The parameters of the plugin
  * @param  SimpleXMLElement         $types            The types definitions in XML
  * @param  SimpleXMLElement         $actions          The actions definitions in XML
  * @param  SimpleXMLElement         $views            The views definitions in XML
  * @param  PluginTable              $pluginObject     The plugin object
  * @param  int                      $tabId            The tab id (if there is one)
  * @param  DatabaseDriverInterface  $db               The tab id (if there is one)
  * @param  RegistryEditView         $registryEditVew  The Registry Edit View (the calling object)
  */
 public function __construct(InputInterface $input, SimpleXMLElement $controllerModel, $options, RegistryInterface $pluginParams, SimpleXMLElement $types, SimpleXMLElement $actions, SimpleXMLElement $views, PluginTable $pluginObject = null, $tabId = null, DatabaseDriverInterface $db, RegistryEditView $registryEditVew)
 {
     $this->input = $input;
     $this->state = Application::DI()->get('CBLib\\Session\\SessionStateInterface', array('input' => $this->input));
     $this->_tableBrowserModel = $controllerModel;
     $this->_options = $options;
     $this->_pluginParams = $pluginParams;
     $this->_types = $types;
     $this->_actions = $actions;
     $this->_views = $views;
     $this->_pluginObject = $pluginObject;
     $this->_tabid = $tabId;
     $this->_db = $db;
     $this->registryEditVew = $registryEditVew;
 }
Example #4
0
 /**
  * Handles a request with a route to the controller action
  *
  * @param  array   $route  Ordered Route array with at least option, view, ..., method (where method is view, edit, apply, save)
  * @return string
  *
  * @throws \LogicException
  */
 public function handleAction(array $route)
 {
     $option = $route['option'];
     $view = $route['view'];
     $method = $route['method'];
     if (!$method) {
         $method = isset($route['act']) ? $route['act'] : 'edit';
     }
     $frontOrAdmin = $this->clientId == 1 ? 'admin' : 'front';
     /** @var AutoLoaderXml $autoLoaderXml */
     $autoLoaderXml = Application::DI()->get('CBLib\\AhaWow\\AutoLoaderXml');
     $element = $autoLoaderXml->loadXML($route);
     if ($element) {
         if ($view === null) {
             $adminActionsModel = $element->getChildByNameAttr('actions', 'ui', $frontOrAdmin);
             if ($adminActionsModel) {
                 $defaultAction = $adminActionsModel->getChildByNameAttr('action', 'name', 'default');
                 $actionRequest = $defaultAction->attributes('request');
                 $actionAction = $defaultAction->attributes('action');
                 if ($actionRequest === '') {
                     $view = $actionAction;
                 }
             }
         }
         return $this->drawView($option, $view, $element, $method);
     }
     throw new \LogicException('No route found for this request.', 404);
 }
Example #5
0
 /**
  * Legacy support function: Loads the CB Config from database (if it is ready) and
  * Sets the global $ueConfig
  * It also loads the Language handler powering CBTxt.
  *
  * @param  boolean  $legacy  prepare legacy config params
  * @return void
  */
 public static function loadLegacyCBueConfig($legacy = false)
 {
     global $ueConfig;
     if (self::$configReady) {
         $version = $ueConfig['version'];
         $config = Application::Config();
         $ueConfig = $config->asArray();
         $ueConfig['version'] = $version;
         // Legacy config options for B/C:
         if ($legacy) {
             if (isset($ueConfig['profile_viewaccesslevel'])) {
                 switch ((int) $ueConfig['profile_viewaccesslevel']) {
                     case 1:
                         // Public
                     // Public
                     case 5:
                         // Guest
                         $profileAccess = '1';
                         // Public
                         break;
                     case 3:
                         // Special
                         $profileAccess = '3';
                         // Author
                         break;
                     default:
                         $profileAccess = '2';
                         // Registered
                         break;
                 }
             } else {
                 $profileAccess = '2';
                 // Registered
             }
             if (isset($ueConfig['moderator_viewaccesslevel'])) {
                 switch ((int) $ueConfig['moderator_viewaccesslevel']) {
                     case 1:
                         // Public
                     // Public
                     case 5:
                         // Guest
                         $modAccess = '1';
                         // Public
                         break;
                     case 2:
                         // Registered
                         $modAccess = '2';
                         // Registered
                         break;
                     default:
                         $modAccess = '6';
                         // Manager
                         break;
                 }
             } else {
                 $modAccess = '6';
                 // Manager
             }
             $ueConfig['allow_profileviewbyGID'] = $profileAccess;
             // "Allow Access To:"
             $ueConfig['imageApproverGid'] = $modAccess;
             // "Moderator Groups"
             $ueConfig['reg_email_checker'] = '0';
             // "Ajax Email checker"
             $ueConfig['reg_toc_url'] = '';
             // "URL to Terms &amp; Conditions"
             $ueConfig['num_per_page'] = '30';
             // "Users Per Page"
             $ueConfig['allow_profilelink'] = '1';
             // "Allow Link to Profile"
             $ueConfig['nesttabs'] = '0';
             // "Nest Tabs"
             $ueConfig['xhtmlComply'] = '1';
             // "W3C XHTML 1.0 Trans. compliance"
             $ueConfig['im_path'] = 'auto';
             // "Path to ImageMagick"
             $ueConfig['netpbm_path'] = 'auto';
             // "Path to NetPBM"
             $ueConfig['allowAvatar'] = '1';
             // "Image"
             $ueConfig['allowAvatarUpload'] = '1';
             // "Allow Image Upload"
             $ueConfig['allowAvatarGallery'] = '1';
             // "Use Image Gallery"
         }
         $languageParams = array('debugMode' => $config->get('translations_debug', 0));
         if ($languageParams['debugMode'] == 0) {
             $languageParams['translationsLogger'] = null;
         }
     } else {
         $languageParams = array();
     }
     // Set Language as singleton and instantiate it now that Config is read:
     Application::DI()->get('Language', $languageParams);
 }
 /**
  * Outputs legacy plugin views
  *
  * @deprecated 2.0 Use XML
  *
  * @param  PluginTable       $row
  * @param  string            $option
  * @param  string            $task
  * @param  int               $uid
  * @param  string            $action
  * @param  SimpleXMLElement  $element
  * @param  string            $mode
  * @param  Registry          $pluginParams
  * @return mixed|null
  */
 public function editPluginView($row, $option, $task, $uid, $action, $element, $mode, $pluginParams)
 {
     global $_CB_framework, $_CB_database, $_PLUGINS;
     if (!$row->id) {
         $_CB_framework->enqueueMessage(CBTxt::T('Plugin id not found.'), 'error');
         return null;
     }
     if (!$element) {
         $_CB_framework->enqueueMessage(CBTxt::T('No plugin XML found.'), 'error');
         return null;
     }
     $adminHandlerModel = $element->getChildByNameAttr('handler', 'ui', 'admin');
     if (!$adminHandlerModel || $row->element == 'cbpaidsubscriptions') {
         $adminActionsModel = $element->getChildByNameAttr('actions', 'ui', 'admin');
         if ($adminActionsModel) {
             // New CB 2.0 method:
             $savedPluginId = $_PLUGINS->_loading;
             $_PLUGINS->_loading = (int) $row->id;
             /** @var ActionController $actionController */
             /** @see CBLib\AhaWow\Controller\ActionController::__construct() */
             $actionController = Application::DI()->get('CBLib\\AhaWow\\Controller\\ActionController');
             $actionController->setData($row);
             $displayMode = $mode == 'applyPlugin' ? 'apply' : ($mode == 'savePlugin' ? 'save' : 'edit');
             echo $actionController->drawView($option, null, $element, $displayMode);
             $_PLUGINS->_loading = $savedPluginId;
             return null;
         } else {
             return null;
         }
     }
     $class = $adminHandlerModel->attributes('class');
     if ($class) {
         if (!class_exists($class)) {
             $_CB_framework->enqueueMessage(CBTxt::T('ADMIN_HANDLER_CLASS_CLASS_DOES_NOT_EXIST', 'Admin handler class [class] does not exist.', array('[class]' => $class)), 'error');
             return null;
         }
         $handler = new $class($_CB_database);
         /** @var stdClass|CBController_plugin|cbpaidAdminView  $handler */
         return $handler->editPluginView($row, $option, $task, $uid, $action, $element, $mode, $pluginParams);
     } else {
         // new method in CB 1.2.3:
         $args = array(&$row, $option, $task, $uid, $action, &$element, $mode, &$pluginParams);
         return $_PLUGINS->call($row->id, 'editPluginView', 'get' . $row->element . 'Tab', $args, null, true);
     }
 }