function &getSingleton()
 {
     if (!KTUtil::arrayGet($GLOBALS, 'oKTFieldsetDisplayRegistry')) {
         $GLOBALS['oKTFieldsetDisplayRegistry'] = new KTFieldsetDisplayRegistry();
     }
     return $GLOBALS['oKTFieldsetDisplayRegistry'];
 }
Пример #2
0
 function do_main()
 {
     $notifications = (array) KTNotification::getList(array("user_id = ?", $this->oUser->getId()));
     $num_notifications = count($notifications);
     $PAGE_SIZE = 5;
     $page = (int) KTUtil::arrayGet($_REQUEST, 'page', 0);
     $page_count = ceil($num_notifications / $PAGE_SIZE);
     if ($page >= $page_count) {
         $page = $page_count - 1;
     }
     if ($page < 0) {
         $page = 0;
     }
     // slice the notification array.
     $notifications = array_slice($notifications, $page * $PAGE_SIZE, $PAGE_SIZE);
     // prepare the batch html.  easier to do this here than in the template.
     $batch = array();
     for ($i = 0; $i < $page_count; $i++) {
         if ($i == $page) {
             $batch[] = sprintf("<strong>%d</strong>", $i + 1);
         } else {
             $batch[] = sprintf('<a href="%s">%d</a>', KTUtil::addQueryStringSelf($this->meldPersistQuery(array("page" => $i), "main", true)), $i + 1);
         }
     }
     $batch_html = implode(' &middot; ', $batch);
     $count_string = sprintf(_kt("Showing Notifications %d - %d of %d"), $page * $PAGE_SIZE + 1, min(($page + 1) * $PAGE_SIZE, $num_notifications), $num_notifications);
     $this->oPage->setTitle(_kt("Items that require your attention"));
     $oTemplate =& $this->oValidator->validateTemplate("ktcore/misc/notification_overflow");
     $oTemplate->setData(array('count_string' => $count_string, 'batch_html' => $batch_html, 'notifications' => $notifications));
     return $oTemplate->render();
 }
Пример #3
0
 function do_assign_handler()
 {
     $oKTTriggerRegistry = KTTriggerRegistry::getSingleton();
     $aTriggers = $oKTTriggerRegistry->getTriggers('workflow', 'objectModification');
     $selection_ns = KTUtil::arrayGet($_REQUEST, 'selection_ns');
     if (empty($selection_ns)) {
         $sQuery = 'DELETE FROM ' . KTUtil::getTableName('trigger_selection');
         $sQuery .= ' WHERE event_ns = ?';
         $aParams = array('ktstandard.workflowassociation.handler');
         DBUtil::runQuery(array($sQuery, $aParams));
         $this->successRedirectToMain(_kt('Handler removed.'));
     } else {
         if (!array_key_exists($selection_ns, $aTriggers)) {
             $this->errorRedirectToMain(_kt('Invalid assignment'));
         }
         // clear
         $sQuery = 'DELETE FROM ' . KTUtil::getTableName('trigger_selection');
         $sQuery .= ' WHERE event_ns = ?';
         $aParams = array('ktstandard.workflowassociation.handler');
         DBUtil::runQuery(array($sQuery, $aParams));
         // set
         $sQuery = 'INSERT INTO ' . KTUtil::getTableName('trigger_selection');
         $sQuery .= ' (event_ns, selection_ns)';
         $sQuery .= ' VALUES ("ktstandard.workflowassociation.handler",?)';
         $aParams = array($selection_ns);
         DBUtil::runQuery(array($sQuery, $aParams));
         $this->successRedirectToMain(_kt('Handler set.'));
     }
 }
Пример #4
0
 function isRegistered($sName)
 {
     if (KTUtil::arrayGet($this->aResources, $sName)) {
         return true;
     }
     return false;
 }
 static function &getSingleton()
 {
     if (!KTUtil::arrayGet($GLOBALS['_KT_PLUGIN'], 'oKTTriggerRegistry')) {
         $GLOBALS['_KT_PLUGIN']['oKTTriggerRegistry'] = new KTTriggerRegistry();
     }
     return $GLOBALS['_KT_PLUGIN']['oKTTriggerRegistry'];
 }
Пример #6
0
 function do_checkin()
 {
     global $default;
     $document_id = KTUtil::arrayGet($_REQUEST, 'fDocumentId');
     if (empty($document_id)) {
         return $this->errorRedirectToMain(_kt('You must select a document to check in first.'));
     }
     $oDocument = Document::get($document_id);
     if (PEAR::isError($oDocument)) {
         return $this->errorRedirectToMain(_kt('The document you specified appears to be invalid.'));
     }
     $this->startTransaction();
     // actually do the checkin.
     $oDocument->setIsCheckedOut(0);
     $oDocument->setCheckedOutUserID(-1);
     if (!$oDocument->update()) {
         $this->rollbackTransaction();
         return $this->errorRedirectToMain(_kt("Failed to force the document's checkin."));
     }
     // checkout cancelled transaction
     $oDocumentTransaction =& new DocumentTransaction($oDocument, _kt('Document checked out cancelled'), 'ktcore.transactions.force_checkin');
     $res = $oDocumentTransaction->create();
     if (PEAR::isError($res) || $res == false) {
         $this->rollbackTransaction();
         return $this->errorRedirectToMain(_kt("Failed to force the document's checkin."));
     }
     $this->commitTransaction();
     // FIXME do we want to do this if we can't created the document-transaction?
     return $this->successRedirectToMain(sprintf(_kt('Successfully forced "%s" to be checked in.'), $oDocument->getName()));
 }
Пример #7
0
 function do_rename()
 {
     $aErrorOptions = array('redirect_to' => array('', sprintf('fFolderId=%d', $this->oFolder->getId())));
     $sFolderName = KTUtil::arrayGet($_REQUEST, 'foldername');
     $aErrorOptions['defaultmessage'] = _kt("No folder name given");
     $sFolderName = $this->oValidator->validateString($sFolderName, $aErrorOptions);
     $sFolderName = $this->oValidator->validateIllegalCharacters($sFolderName, $aErrorOptions);
     $sOldFolderName = $this->oFolder->getName();
     if ($this->oFolder->getId() != 1) {
         $oParentFolder =& Folder::get($this->oFolder->getParentID());
         if (PEAR::isError($oParentFolder)) {
             $this->errorRedirectToMain(_kt('Unable to retrieve parent folder.'), $aErrorOptions['redirect_to'][1]);
             exit(0);
         }
         if (KTFolderUtil::exists($oParentFolder, $sFolderName)) {
             $this->errorRedirectToMain(_kt('A folder with that name already exists.'), $aErrorOptions['redirect_to'][1]);
             exit(0);
         }
     }
     $res = KTFolderUtil::rename($this->oFolder, $sFolderName, $this->oUser);
     if (PEAR::isError($res)) {
         $_SESSION['KTErrorMessage'][] = $res->getMessage();
         redirect(KTBrowseUtil::getUrlForFolder($this->oFolder));
         exit(0);
     } else {
         $_SESSION['KTInfoMessage'][] = sprintf(_kt('Folder "%s" renamed to "%s".'), $sOldFolderName, $sFolderName);
     }
     $this->commitTransaction();
     redirect(KTBrowseUtil::getUrlForFolder($this->oFolder));
     exit(0);
 }
Пример #8
0
 function do_update()
 {
     $sTable = KTUtil::getTableName('plugins');
     $aIds = (array) KTUtil::arrayGet($_REQUEST, 'pluginids');
     // Update disabled plugins
     $sIds = implode(',', $aIds);
     $sQuery = "UPDATE {$sTable} SET disabled = 1 WHERE id NOT IN ({$sIds})";
     DBUtil::runQuery(array($sQuery));
     // Select disabled plugins that have been enabled
     $sQuery = "SELECT * FROM {$sTable} WHERE disabled = 1 AND id IN ({$sIds})";
     $res = DBUtil::getResultArray($sQuery);
     if (!PEAR::isError($res)) {
         // Enable the disabled plugins
         $sQuery = "UPDATE {$sTable} SET disabled = 0 WHERE id IN ({$sIds})";
         DBUtil::runQuery(array($sQuery));
         // run setup for each plugin
         $aEnabled = array();
         if (!empty($res)) {
             foreach ($res as $item) {
                 $aEnabled[] = $item['id'];
             }
             $sEnabled = implode(',', $aEnabled);
             $sQuery = "SELECT h.classname, h.pathname FROM {$sTable} p\n                    INNER JOIN plugin_helper h ON (p.namespace = h.plugin)\n                    WHERE classtype = 'plugin' AND p.id IN ({$sEnabled})";
             $res = DBUtil::getResultArray($sQuery);
             if (!PEAR::isError($res)) {
                 foreach ($res as $item) {
                     $classname = $item['classname'];
                     $path = $item['pathname'];
                     if (!empty($path)) {
                         require_once $path;
                     }
                     $oPlugin = new $classname($path);
                     $oPlugin->setup();
                 }
             }
         }
     }
     KTPluginEntity::clearAllCaches();
     // FIXME!!! Plugin manager needs to be updated to deal with this situation. This code should be in the plugin.
     //enabling or disabling Tag fieldset depending on whether tag cloud plugin is enabled or disabled.
     //Get tag cloud object
     $oTagClouPlugin = KTPluginEntity::getByNamespace('ktcore.tagcloud.plugin');
     if (!PEAR::isError($oTagClouPlugin) && !is_a($oTagClouPlugin, 'KTEntityNoObjects') && !is_null($oTagClouPlugin)) {
         if ($oTagClouPlugin->getDisabled() == '1') {
             //disable tag fieldset
             $aFV = array('disabled' => true);
             $aWFV = array('namespace' => 'tagcloud');
             $res = DBUtil::whereUpdate('fieldsets', $aFV, $aWFV);
         } else {
             //enable tag fieldset
             $aFV = array('disabled' => false);
             $aWFV = array('namespace' => 'tagcloud');
             $res = DBUtil::whereUpdate('fieldsets', $aFV, $aWFV);
         }
     }
     // we reregister the plugins to ensure they are in the correct order
     KTPluginUtil::registerPlugins();
     $this->successRedirectToMain(_kt('Plugins updated'));
 }
Пример #9
0
 function &retrieveList($sCode)
 {
     $sList = KTUtil::arrayGet($_SESSION['ktentitylists'], $sCode, False);
     if ($sList === False) {
         return PEAR::raiseError(_kt('No such KTEntityList'));
     }
     $oList = unserialize($sList);
     return $oList;
 }
 function renderDocumentLink($aDataRow)
 {
     $aOptions = $this->getOptions();
     $fParentDocId = KTUtil::arrayGet(KTUtil::arrayGet($aOptions, 'qs_params', array()), 'fDocumentId', False);
     if ((int) $aDataRow["document"]->getId() === (int) $fParentDocId) {
         return htmlentities($aDataRow["document"]->getName(), ENT_QUOTES, 'UTF-8') . ' <span class="descriptiveText">(' . _kt('you cannot link to the source document') . ')';
     } else {
         return parent::renderDocumentLink($aDataRow);
     }
 }
 function &getValidatorByNamespace($sNamespace)
 {
     $aInfo = KTUtil::arrayGet($this->validators, $sNamespace);
     if (empty($aInfo)) {
         return PEAR::raiseError(sprintf(_kt('No such validator: %s'), $sNamespace));
     }
     if (!empty($aInfo['file'])) {
         require_once $aInfo['file'];
     }
     return new $aInfo['class']();
 }
Пример #12
0
 function takeover()
 {
     $oRegistry =& KTPluginRegistry::getSingleton();
     $oPlugin =& $oRegistry->getPlugin('password.reset.plugin');
     $dispatcherURL = $oPlugin->getURLPath('loginResetDispatcher.php');
     $redirect = KTUtil::arrayGet($_REQUEST, 'redirect');
     $url = KTUtil::kt_url() . $dispatcherURL;
     $url .= !empty($redirect) ? '?redirect=' . $redirect : '';
     redirect($url);
     exit(0);
 }
Пример #13
0
 function do_main()
 {
     $clear_all = KTUtil::arrayGet($_REQUEST, 'clearAll');
     if ($clear_all) {
         return $this->clearAll();
     }
     // get the notification-handler, instantiate it, call resolveNotification.
     $oHandler =& $this->notification->getHandler();
     $oHandler->notification =& $this->notification;
     $oHandler->subDispatch($this);
     exit(0);
 }
Пример #14
0
 function KTBulkImportManager($oFolder, $oStorage, $oUser, $aOptions = null)
 {
     $this->oFolder =& $oFolder;
     $this->oStorage =& $oStorage;
     $this->oUser =& $oUser;
     $this->aOptions =& $aOptions;
     if (is_null($aOptions)) {
         $aOptions = array();
     }
     $this->aMetadata = KTUtil::arrayGet($aOptions, 'metadata', array());
     $this->oDocumentType = KTUtil::arrayGet($aOptions, 'documenttype', null);
     // DocUtil::_add will do the right thing.
 }
Пример #15
0
 function getPage($sPath)
 {
     $aInfo = KTUtil::arrayGet($this->aResources, $sPath);
     if (empty($aInfo)) {
         return null;
     }
     $sClassName = $aInfo[1];
     $sFilename = $aInfo[2];
     if ($sFilename) {
         require_once $sFilename;
     }
     return new $sClassName();
 }
Пример #16
0
 function takeover()
 {
     $oRegistry =& KTPluginRegistry::getSingleton();
     $oPlugin =& $oRegistry->getPlugin('password.reset.plugin');
     $dispatcherURL = $oPlugin->getURLPath('loginResetDispatcher.php');
     $queryString = $_SERVER['QUERY_STRING'];
     $redirect = KTUtil::arrayGet($_REQUEST, 'redirect');
     $redirect = urlencode($redirect);
     $url = KTUtil::kt_url() . $dispatcherURL;
     $url .= !empty($queryString) ? '?' . $queryString : '';
     redirect($url);
     exit(0);
 }
Пример #17
0
 function render()
 {
     $oTemplating =& KTTemplating::getSingleton();
     $oTemplate = $oTemplating->loadTemplate("ktcore/search2/search_portlet");
     $iFolderId = KTUtil::arrayGet($_REQUEST, 'fFolderId', 1);
     $iDocumentId = KTUtil::arrayGet($_REQUEST, 'fDocumentId');
     if (!$iFolderId && !$iDocumentId) {
         return null;
     }
     $savedSearches = SearchHelper::getSavedSearches($_SESSION['userID']);
     $aTemplateData = array('context' => $this, 'folder_id' => $iFolderId, 'document_id' => $iDocumentId, 'savedSearches' => $savedSearches);
     return $oTemplate->render($aTemplateData);
 }
Пример #18
0
 function check()
 {
     $res = parent::check();
     if (empty($res)) {
         return $res;
     }
     $postExpected = KTUtil::arrayGet($_REQUEST, "postExpected");
     $postReceived = KTUtil::arrayGet($_REQUEST, "postReceived");
     if (!empty($postExpected)) {
         $aErrorOptions = array('redirect_to' => array('main', sprintf('fFolderId=%d', $this->oFolder->getId())), 'message' => _kt('Upload larger than maximum POST size (post_max_size variable in .htaccess or php.ini)'));
         $this->oValidator->notEmpty($postReceived, $aErrorOptions);
     }
     return true;
 }
Пример #19
0
 function do_viewCategory()
 {
     // are we categorised, or not?
     $category = KTUtil::arrayGet($_REQUEST, 'fCategory', $this->category);
     $oRegistry =& KTAdminNavigationRegistry::getSingleton();
     $aCategory = $oRegistry->getCategory($category);
     $aItems = $oRegistry->getItemsForCategory($category);
     asort($aItems);
     $this->aBreadcrumbs[] = array('name' => $aCategory['title'], 'url' => KTUtil::ktLink('admin.php', $category));
     $this->oPage->title = _kt('DMS Administration') . ': ' . $aCategory['title'];
     $oTemplating =& KTTemplating::getSingleton();
     $oTemplate = $oTemplating->loadTemplate('kt3/admin_items');
     $aTemplateData = array('context' => $this, 'category' => $aCategory, 'items' => $aItems, 'baseurl' => $_SERVER['PHP_SELF']);
     return $oTemplate->render($aTemplateData);
 }
Пример #20
0
 function do_getNewCriteria()
 {
     $criteriaType = KTUtil::arrayGet($_REQUEST, 'type');
     if (empty($criteriaType)) {
         return 'AJAX Error:  no criteria type specified.';
     }
     $oCriteriaRegistry =& KTCriteriaRegistry::getSingleton();
     $critObj = $oCriteriaRegistry->getCriterion($criteriaType);
     if (PEAR::isError($critObj)) {
         return 'AJAX Error:  failed to initialise critiria of type "' . $type . '".';
     }
     // NBM:  there appears to be no reason to take $aRequest into searchWidget...
     $noRequest = array();
     return $critObj->searchWidget($noRequest);
 }
Пример #21
0
 function KTBaseWidget($sLabel, $sDescription, $sName, $value, &$oPage, $bRequired = false, $sId = null, $aErrors = null, $aOptions = null)
 {
     $this->sLabel = $sLabel;
     $this->sDescription = $sDescription;
     $this->sName = $sName;
     $this->value = $value;
     $this->oPage =& $oPage;
     $this->bRequired = $bRequired;
     $this->sId = $sId;
     $this->aOptions = $aOptions;
     $this->aErrors = $aErrors;
     if (is_null($this->aOptions)) {
         $this->aOptions = array();
     }
     // default to being a bit bigger.
     $this->aOptions['width'] = KTUtil::arrayGet($this->aOptions, 'width', '45');
 }
 function do_cleanup()
 {
     $folder = KTUtil::arrayGet($_REQUEST, 'folder');
     if (is_null($folder)) {
         exit(redirect(generateControllerLink('dashboard')));
     }
     $oRegistry =& KTPluginRegistry::getSingleton();
     $oPlugin =& $oRegistry->getPlugin('ktcore.housekeeper.plugin');
     // we must avoid doing anything to the documents folder at all costs!
     $folder = HouseKeeper::getDirectory($folder);
     if (is_null($folder) || !$folder['canClean']) {
         exit(redirect(generateControllerLink('dashboard')));
     }
     HouseKeeper::cleanDirectory($folder['folder'], $folder['pattern']);
     HouseKeeper::getKTUsageStats();
     exit(redirect(generateControllerLink('dashboard')));
 }
Пример #23
0
 function configure($aOptions)
 {
     $this->sInputVariable = KTUtil::arrayGet($aOptions, 'name', KTUtil::arrayGet($aOptions, 'test'));
     if (empty($this->sInputVariable)) {
         return PEAR::raiseError(_kt("You must specify a variable name"));
     }
     $this->sBasename = KTUtil::arrayGet($aOptions, 'basename', $this->sInputVariable);
     $this->sOutputVariable = KTUtil::arrayGet($aOptions, 'output');
     if (empty($this->sOutputVariable)) {
         if (!KTUtil::arrayGet($aOptions, 'no_output', false)) {
             $this->sOutputVariable = $this->sInputVariable;
         }
     }
     $this->bProduceOutput = !empty($this->sOutputVariable);
     $this->bRequired = KTUtil::arrayGet($aOptions, 'required', false, false);
     $this->aOptions = $aOptions;
 }
Пример #24
0
 function &getPlugin($sNamespace)
 {
     if (array_key_exists($sNamespace, $this->_aPlugins)) {
         return $this->_aPlugins[$sNamespace];
     }
     $aDetails = KTUtil::arrayGet($this->_aPluginDetails, $sNamespace);
     if (empty($aDetails)) {
         return null;
     }
     $sFilename = KTUtil::isAbsolutePath($aDetails[2]) ? $aDetails[2] : KT_DIR . '/' . $aDetails[2];
     if (!empty($sFilename)) {
         require_once $sFilename;
     }
     $sClassName = $aDetails[0];
     $oPlugin = new $sClassName($sFilename);
     $this->_aPlugins[$sNamespace] =& $oPlugin;
     return $oPlugin;
 }
Пример #25
0
 function getViewer($oError)
 {
     $sErrorClass = strtolower(get_class($oError));
     // Try for direct hit first
     $sClass = $sErrorClass;
     $sHandlerClass = KTUtil::arrayGet($this->aViewers, $sClass);
     if ($sHandlerClass) {
         return new $sHandlerClass($oError);
     }
     // PHP 4.0.5 added get_parent_class - this offers us the
     // best/first match
     if (function_exists('get_parent_class')) {
         while ($sClass = get_parent_class($sClass)) {
             $sHandlerClass = KTUtil::arrayGet($this->aViewers, $sClass);
             if ($sHandlerClass) {
                 return new $sHandlerClass($oError);
             }
         }
     }
     // Now try things the hard way - no best/first match (ick!)
     // Reverse, since hopefully the best/first match will be added
     // after the other matches.
     foreach (array_reverse($this->aViewers) as $sHandlerClass => $sClass) {
         if (is_a($oError, $sClass)) {
             return new $sHandlerClass($oError);
         }
     }
     // Just in case we have an unhandled i18n-friendly error
     if (method_exists($oError, 'geti18nMessage')) {
         return new KTStringErrorViewer($oError->getMessage());
     }
     // PEAR_Error should have caught things above, but just in case,
     // check if getMessage is there, and use that:
     if (method_exists($oError, 'getMessage')) {
         return new KTStringErrorViewer($oError->getMessage());
     }
     // Check if we are a string
     if (is_string($oError)) {
         return new KTStringErrorViewer($oError);
     }
     // Give up.
     return new KTStringErrorViewer(_kt("Unknown error"));
 }
Пример #26
0
 /**
  * assign the class variables
  * @return 
  * @param $sLabel Object
  * @param $sDescription Object
  * @param $sName Object
  * @param $value Object
  * @param $oPage Object
  * @param $bRequired Object[optional]
  * @param $sId Object[optional]
  * @param $aErrors Object[optional]
  * @param $aOptions Object[optional]
  * 
  * iNET Process
  */
 function InetMultiselectWidget($sLabel, $sDescription, $sName, $value, &$oPage, $bRequired = false, $sId = null, $aErrors = null, $aOptions = null)
 {
     $this->sLabel = $sLabel;
     $this->sDescription = $sDescription;
     $this->sName = $sName;
     $this->value = $value;
     $this->oPage =& $oPage;
     $this->bRequired = $bRequired;
     $this->sId = $sId;
     $this->aOptions = $aOptions;
     $this->aErrors = $aErrors;
     if (is_null($this->aOptions)) {
         $this->aOptions = array();
     }
     // default to being a bit bigger.
     $this->aOptions['width'] = KTUtil::arrayGet($this->aOptions, 'width', '45');
     if ($this->aOptions['lookup_type'] == "multiwithcheckboxes") {
         $this->sTemplate = "multiselect/simple_selection";
     }
 }
 function &getAuthenticationProvider($nsname)
 {
     $oProvider =& KTUtil::arrayGet($this->_aAuthenticationProviders, $nsname);
     if ($oProvider) {
         return $oProvider;
     }
     $aInfo = $this->_aAuthenticationProvidersInfo[$nsname];
     $sClass = $aInfo[1];
     $sPath = $aInfo[3];
     if ($sPath) {
         $sPath = KTUtil::isAbsolutePath($sPath) ? $sPath : KT_DIR . '/' . $sPath;
         include_once $sPath;
     }
     if (!class_exists($sClass)) {
         return PEAR::raiseError(_kt('Authentication provider class does not exist. ' . $sClass));
     }
     $oProvider = new $sClass();
     $this->_aAuthenticationProviders[$nsname] =& $oProvider;
     return $oProvider;
 }
Пример #28
0
 function do_viewCategory()
 {
     // are we categorised, or not?
     $category = KTUtil::arrayGet($_REQUEST, 'fCategory', $this->category);
     //Removing bad documents/fieldmanagement links from the Document Metadata and Workflow Configuration page.
     if ($category == 'documents') {
         $oPage =& $GLOBALS['main'];
         $aJavascript[] = 'thirdpartyjs/jquery/jquery-1.3.2.js';
         $oPage->requireJSResources($aJavascript);
         $jscript .= "<script src='resources/js/kt_hideadminlink.js' type='text/javascript'></script>";
     }
     $oRegistry =& KTAdminNavigationRegistry::getSingleton();
     $aCategory = $oRegistry->getCategory($category);
     $aItems = $oRegistry->getItemsForCategory($category);
     asort($aItems);
     $this->aBreadcrumbs[] = array('name' => $aCategory['title'], 'url' => KTUtil::ktLink('admin.php', $category));
     $this->oPage->title = _kt('Administration') . ': ' . $aCategory['title'];
     $oTemplating =& KTTemplating::getSingleton();
     $oTemplate = $oTemplating->loadTemplate('kt3/admin_items');
     $aTemplateData = array('context' => $this, 'category' => $aCategory, 'items' => $aItems, 'baseurl' => $_SERVER['PHP_SELF'], 'jscript' => $jscript);
     return $oTemplate->render($aTemplateData);
 }
Пример #29
0
 function getPortletsForPage($aBreadcrumbs)
 {
     $aPortlets = array();
     foreach ($aBreadcrumbs as $aBreadcrumb) {
         $action = KTUtil::arrayGet($aBreadcrumb, 'action');
         if (empty($action)) {
             continue;
         }
         $aThisPortlets = $this->getPortlet($action);
         if (empty($aThisPortlets)) {
             continue;
         }
         foreach ($aThisPortlets as $aPortlet) {
             $aPortlets[] = $aPortlet;
         }
     }
     $aReturn = array();
     $aDone = array();
     foreach ($aPortlets as $aPortlet) {
         if (in_array($aPortlet, $aDone)) {
             continue;
         }
         $aDone[] = $aPortlet;
         $sPortletClass = $aPortlet[0];
         $sPortletFile = $aPortlet[1];
         $sPluginName = $aPortlet[3];
         $oRegistry =& KTPluginRegistry::getSingleton();
         $oPlugin =& $oRegistry->getPlugin($sPluginName);
         if (file_exists($sPortletFile)) {
             require_once $sPortletFile;
         }
         $oPortlet = new $sPortletClass();
         $oPortlet->setPlugin($oPlugin);
         array_push($aReturn, $oPortlet);
     }
     return $aReturn;
 }
Пример #30
0
 function &getCriterion($sNamespace)
 {
     if (!$this->_bGenericRegistered) {
         $this->_buildGenericCriteria();
     }
     if (array_key_exists($sNamespace, $this->_aCriteria)) {
         return $this->_aCriteria[$sNamespace];
     }
     $aDetails = KTUtil::arrayGet($this->_aCriteriaDetails, $sNamespace);
     if (empty($aDetails)) {
         return null;
     }
     $sFilename = $aDetails[2];
     if (!empty($sFilename)) {
         require_once $sFilename;
     }
     $sClassName = $aDetails[0];
     $oCriterion = new $sClassName();
     if (is_array($aDetails[3])) {
         call_user_func_array(array(&$oCriterion, 'initialize'), $aDetails[3]);
     }
     $this->_aCriteria[$sNamespace] =& $oCriterion;
     return $oCriterion;
 }