/**
  * This will return the columns for the requested view, defaulting to browse view
  *
  */
 function get_columns($view = 'ktcore.views.browse')
 {
     $oColumnRegistry =& KTColumnRegistry::getSingleton();
     $columns = $oColumnRegistry->getColumnsForView($view);
     // Flattening columns
     $res = array();
     $i = 0;
     foreach ($columns as $val) {
         foreach ($val as $objkey => $objval) {
             $res[$i][$objkey] = $objval;
         }
         $i++;
     }
     return $res;
 }
Example #2
0
 function do_editView()
 {
     $oTemplating =& KTTemplating::getSingleton();
     $oTemplate = $oTemplating->loadTemplate('ktcore/misc/columns/edit_view');
     $oColumnRegistry =& KTColumnRegistry::getSingleton();
     $aColumns = $oColumnRegistry->getColumnsForView($_REQUEST['viewNS']);
     //var_dump($aColumns); exit(0);
     $aAllColumns = $oColumnRegistry->getColumns();
     $view_name = $oColumnRegistry->getViewName($_REQUEST['viewNS']);
     $this->oPage->setTitle($view_name);
     $this->oPage->setBreadcrumbDetails($view_name);
     $aOptions = array();
     $vocab = array();
     foreach ($aAllColumns as $aInfo) {
         $vocab[$aInfo['namespace']] = $aInfo['name'];
     }
     $aOptions['vocab'] = $vocab;
     $add_field = new KTLookupWidget(_kt("Columns"), _kt("Select a column to add to the view.  Please note that while you can add multiple copies of a column, they will all behave as a single column"), 'column_ns', null, $this->oPage, true, null, $aErrors = null, $aOptions);
     $aTemplateData = array('context' => $this, 'current_columns' => $aColumns, 'all_columns' => $aAllColumns, 'view' => $_REQUEST['viewNS'], 'add_field' => $add_field);
     return $oTemplate->render($aTemplateData);
 }
 function do_main()
 {
     $this->aBreadcrumbs[] = array('url' => $_SERVER['PHP_SELF'], 'name' => _kt('Archived Documents'));
     $this->oPage->setBreadcrumbDetails(_kt('browse'));
     $oFolder = Folder::get(KTUtil::arrayGet($_REQUEST, 'fFolderId', 1));
     if (PEAR::isError($oFolder)) {
         $this->errorRedirectToMain(_kt('Invalid folder selected.'));
         exit(0);
     }
     // Setup the collection for restore display.
     $aBaseParams = array();
     $collection = new AdvancedCollection();
     $oCR =& KTColumnRegistry::getSingleton();
     $col = $oCR->getColumn('ktcore.columns.selection');
     $aColOptions = array();
     //$aColOptions['qs_params'] = kt_array_merge($aBaseParams, array('fFolderId'=>$oFolder->getId()));
     $aColOptions['show_folders'] = false;
     $aColOptions['show_documents'] = true;
     $aColOptions['rangename'] = '_d[]';
     $col->setOptions($aColOptions);
     $collection->addColumn($col);
     $col = $oCR->getColumn('ktcore.columns.title');
     //$col->setOptions(array('qs_params'=>kt_array_merge($aBaseParams, array('action' => 'new', 'fFolderId'=>$oFolder->getId()))));
     $col->setOptions(array('link_documents' => false));
     $collection->addColumn($col);
     //$qObj = new BrowseQuery($iFolderId);
     $qObj = new ArchivedBrowseQuery($oFolder->getId());
     $collection->setQueryObject($qObj);
     $aOptions = $collection->getEnvironOptions();
     $aOptions['result_url'] = KTUtil::addQueryString($_SERVER['PHP_SELF'], array(kt_array_merge($aBaseParams, array('fFolderId' => $oFolder->getId()))));
     $collection->setOptions($aOptions);
     $aURLParams = $aBaseParams;
     $aURLParams['action'] = 'restore';
     $aBreadcrumbs = KTUtil::generate_breadcrumbs($oFolder, $iFolderId, $aURLParams);
     $aTemplateData = array('context' => $this, 'folder' => $oFolder, 'breadcrumbs' => $aBreadcrumbs, 'collection' => $collection);
     $oTemplate =& $this->oValidator->validateTemplate('ktcore/document/admin/archivebrowse');
     return $oTemplate->render($aTemplateData);
 }
Example #4
0
 function handleCriteriaSet($aCriteriaSet, $iStartIndex, $sTitle = null, $bIsCondition = false)
 {
     if ($sTitle == null) {
         $this->aBreadcrumbs[] = array('url' => $_SERVER['PHP_SELF'], 'name' => _kt('Advanced Search'));
         $sTitle = _kt('Search Results');
     } else {
         if ($bIsCondition) {
             $this->aBreadcrumbs[] = array('name' => _kt('Test Condition'));
             $this->oPage->setTitle(sprintf(_kt('Test Condition: %s'), $sTitle));
         } else {
             $this->aBreadcrumbs[] = array('name' => _kt('Saved Search'));
             $this->oPage->setTitle(sprintf(_kt('Saved Search: %s'), $sTitle));
         }
         $this->oPage->setBreadcrumbDetails($sTitle);
     }
     $this->browseType = "Folder";
     $searchable_text = KTUtil::arrayGet($_REQUEST, "fSearchableText");
     $sSearch = md5(serialize($aCriteriaSet));
     $_SESSION['boolean_search'][$sSearch] = $aCriteriaSet;
     $collection = new AdvancedCollection();
     $oColumnRegistry = KTColumnRegistry::getSingleton();
     $aColumns = $oColumnRegistry->getColumnsForView('ktcore.views.search');
     $collection->addColumns($aColumns);
     // get search parameters
     $oCriteriaRegistry =& KTCriteriaRegistry::getSingleton();
     $aParams = array();
     $aJoins = array();
     $aJoins['main'] = $aCriteriaSet['join'] == 'AND' ? _kt('all') : _kt('any');
     foreach ($aCriteriaSet['subgroup'] as $k => $subgroup) {
         $aGroup = array();
         $aJoins[$k] = $subgroup['join'] == 'AND' ? _kt('all') : _kt('any');
         if (!empty($subgroup['values'])) {
             foreach ($subgroup['values'] as $value) {
                 $oCriterion =& $oCriteriaRegistry->getCriterion($value['type']);
                 if ($oCriterion == null || $oCriterion == "" || PEAR::isError($oCriterion)) {
                     $this->errorRedirectToMain('Criterion error');
                 }
                 $aGroup[] = $oCriterion->parameterDisplay($value['data']);
             }
         }
         $aParams[] = $aGroup;
     }
     // set a view option
     $aTitleOptions = array('documenturl' => $GLOBALS['KTRootUrl'] . '/view.php');
     $collection->setColumnOptions('ktcore.columns.title', $aTitleOptions);
     $collection->setColumnOptions('ktcore.columns.selection', array('rangename' => 'selection', 'show_folders' => true, 'show_documents' => true));
     $aOptions = $collection->getEnvironOptions();
     // extract data from the environment
     $aOptions['return_url'] = KTUtil::addQueryStringSelf("action=performSearch&boolean_search_id=" . urlencode($sSearch));
     $aOptions['empty_message'] = _kt("No documents or folders match this query.");
     $aOptions['is_browse'] = true;
     $collection->setOptions($aOptions);
     $collection->setQueryObject(new BooleanSearchQuery($aCriteriaSet));
     //$a = new BooleanSearchQuery($aCriteriaSet);
     //var_dump($a->getDocumentCount()); exit(0);
     // form fields for saving the search
     $save_fields = array();
     $save_fields[] = new KTStringWidget(_kt('New search'), _kt('The name to save this search as'), 'name', null, $this->oPage, true);
     $aUserSearches = KTSavedSearch::getUserSearches($this->oUser->getId(), true);
     if (count($aUserSearches)) {
         $aVocab = array('' => ' ---- ');
         foreach ($aUserSearches as $oSearch) {
             $aVocab[$oSearch->getId()] = $oSearch->getName();
         }
         $aSelectOptions = array('vocab' => $aVocab);
         $save_fields[] = new KTLookupWidget(_kt('Existing search'), _kt('To save over one of your existing searches, select it here.'), 'fSearchId', null, $this->oPage, true, null, null, $aSelectOptions);
     }
     $oTemplating =& KTTemplating::getSingleton();
     $oTemplate = $oTemplating->loadTemplate("kt3/browse");
     $aTemplateData = array("context" => $this, "collection" => $collection, "custom_title" => $sTitle, "save_fields" => $save_fields, "params" => $aParams, "joins" => $aJoins, 'isEditable' => true, "boolean_search" => $sSearch, 'bulkactions' => KTBulkActionUtil::getAllBulkActions(), 'browseutil' => new KTBrowseUtil(), 'returnaction' => 'booleanSearch', 'returndata' => $sSearch);
     return $oTemplate->render($aTemplateData);
 }
Example #5
0
 function do_main()
 {
     $oColumnRegistry =& KTColumnRegistry::getSingleton();
     $collection = new AdvancedCollection();
     $collection->addColumns($oColumnRegistry->getColumnsForView('ktcore.views.browse'));
     $aOptions = $collection->getEnvironOptions();
     // extract data from the environment
     $aOptions['result_url'] = $this->resultURL;
     $aOptions['is_browse'] = true;
     $collection->setOptions($aOptions);
     $collection->setQueryObject($this->oQuery);
     $collection->setColumnOptions('ktcore.columns.selection', array('rangename' => 'selection', 'show_folders' => true, 'show_documents' => true));
     // get bulk actions
     $aBulkActions = KTBulkActionUtil::getAllBulkActions();
     $oTemplating =& KTTemplating::getSingleton();
     $oTemplate = $oTemplating->loadTemplate('kt3/browse');
     $aTemplateData = array('context' => $this, 'collection' => $collection, 'browse_mode' => $this->browse_mode, 'isEditable' => $this->editable, 'bulkactions' => $aBulkActions, 'browseutil' => new KTBrowseUtil(), 'returnaction' => 'browse');
     if ($this->oFolder) {
         $aTemplateData['returndata'] = $this->oFolder->getId();
     }
     return $oTemplate->render($aTemplateData);
 }
 function do_new()
 {
     $this->oPage->setBreadcrumbDetails(_kt("New Link"));
     $this->oPage->setTitle(_kt("New Link"));
     $oPermission =& KTPermission::getByName('ktcore.permissions.write');
     if (PEAR::isError($oPermission) || !KTPermissionUtil::userHasPermissionOnItem($this->oUser, $oPermission, $this->oDocument)) {
         $this->errorRedirectToMain(_kt('You do not have sufficient permissions to add a document link'), sprintf("fDocumentId=%d", $this->oDocument->getId()));
         exit(0);
     }
     $oParentDocument =& $this->oDocument;
     if (PEAR::isError($oParentDocument)) {
         $this->errorRedirectToMain(_kt('Invalid parent document selected.'));
         exit(0);
     }
     $oFolder = Folder::get(KTUtil::arrayGet($_REQUEST, 'fFolderId', $oParentDocument->getFolderID()));
     if (PEAR::isError($oFolder) || $oFolder == false) {
         $this->errorRedirectToMain(_kt('Invalid folder selected.'));
         exit(0);
     }
     $iFolderId = $oFolder->getId();
     // Setup the collection for move display.
     $collection = new AdvancedCollection();
     $aBaseParams = array('fDocumentId' => $oParentDocument->getId());
     $oCR =& KTColumnRegistry::getSingleton();
     $col = $oCR->getColumn('ktcore.columns.selection');
     $aColOptions = array();
     $aColOptions['qs_params'] = kt_array_merge($aBaseParams, array('fFolderId' => $oFolder->getId()));
     $aColOptions['show_folders'] = false;
     $aColOptions['show_documents'] = true;
     $aColOptions['rangename'] = 'linkselection[]';
     $col->setOptions($aColOptions);
     $collection->addColumn($col);
     $col = $oCR->getColumn('ktdocumentlinks.columns.title');
     $col->setOptions(array('qs_params' => kt_array_merge($aBaseParams, array('action' => 'new', 'fFolderId' => $oFolder->getId()))));
     $collection->addColumn($col);
     $qObj = new BrowseQuery($iFolderId);
     $collection->setQueryObject($qObj);
     $aOptions = $collection->getEnvironOptions();
     //$aOptions['is_browse'] = true;
     $aResultUrl = $aBaseParams;
     $aResultUrl['fFolderId'] = $oFolder->getId();
     $aResultUrl['action'] = 'new';
     $aOptions['result_url'] = KTUtil::addQueryString($_SERVER['PHP_SELF'], $aResultUrl);
     $collection->setOptions($aOptions);
     $aURLParams = $aBaseParams;
     $aURLParams['action'] = 'new';
     $aBreadcrumbs = KTUtil::generate_breadcrumbs($oFolder, $iFolderId, $aURLParams);
     // Add an electronic signature
     global $default;
     if ($default->enableESignatures) {
         $sUrl = KTPluginUtil::getPluginPath('electronic.signatures.plugin', true);
         $heading = _kt('You are attempting to add a document link');
         $submit['type'] = 'button';
         $submit['onclick'] = "javascript: showSignatureForm('{$sUrl}', '{$heading}', 'ktcore.transactions.add_link', 'document', 'document_add_link_form', 'submit', {$oParentDocument->iId});";
     } else {
         $submit['type'] = 'submit';
         $submit['onclick'] = '';
     }
     $aTemplateData = array('context' => $this, 'folder' => $oFolder, 'parent' => $oParentDocument, 'breadcrumbs' => $aBreadcrumbs, 'collection' => $collection, 'link_types' => LinkType::getList("id > 0"), 'submit' => $submit);
     $oTemplate =& $this->oValidator->validateTemplate('ktstandard/action/link');
     return $oTemplate->render($aTemplateData);
 }
Example #7
0
    function do_addUnit2()
    {
        $this->oPage->setBreadcrumbDetails(_kt('Add a new unit'));
        $this->oPage->setTitle(_kt("Add a new unit"));
        $aOptions = array('redirect_to' => array('addUnit'), 'message' => _kt('No name given'));
        $sName = $this->oValidator->validateString($_REQUEST['unit_name'], $aOptions);
        $aOptions['message'] = _kt('A unit with that name already exists.');
        $sName = $this->oValidator->validateDuplicateName('Unit', $sName, $aOptions);
        $iFolderId = KTUtil::arrayGet($_REQUEST, 'fFolderId', 1);
        $_REQUEST['fFolderId'] = $iFolderId;
        $oFolder = $this->oValidator->validateFolder($_REQUEST['fFolderId']);
        // Setup the collection for move display.
        $collection = new AdvancedCollection();
        $oCR =& KTColumnRegistry::getSingleton();
        $col = $oCR->getColumn('ktcore.columns.title');
        $col->setOptions(array('qs_params' => array('fFolderId' => $oFolder->getId())));
        $collection->addColumn($col);
        $qObj = new FolderBrowseQuery($oFolder->getId());
        $collection->setQueryObject($qObj);
        $collection->empty_message = _kt('No folders available in this location.');
        $aOptions = $collection->getEnvironOptions();
        $collection->setOptions($aOptions);
        $oWF =& KTWidgetFactory::getSingleton();
        $oWidget = $oWF->get('ktcore.widgets.collection', array('label' => _kt('Target Folder'), 'description' => _kt('<p>The folder given below is where the unit folder will be created. Use the folder collection and path below to browse to the folder you wish to create the unit folder into.</p><p>The unit administrators have additional rights within that portion of the document management system.
</p>'), 'required' => true, 'name' => 'browse', 'folder_id' => $oFolder->getId(), 'collection' => $collection));
        $add_fields = array();
        $add_fields[] = new KTStaticTextWidget(_kt('Unit Name'), _kt('A short name for the unit.  e.g. <strong>Accounting</strong>.'), 'unit_name', $sName, $this->oPage, true);
        $add_fields[] = $oWidget;
        $oTemplating =& KTTemplating::getSingleton();
        $oTemplate = $oTemplating->loadTemplate("ktcore/principals/addunit2");
        $aTemplateData = array("context" => $this, "add_fields" => $add_fields, "unit_name" => $sName, "folder" => $oFolder, "name" => $sName);
        return $oTemplate->render($aTemplateData);
    }
 function displayConfiguration($args)
 {
     $oTemplating =& KTTemplating::getSingleton();
     $oTemplate = $oTemplating->loadTemplate('ktcore/workflowtriggers/moveaction');
     require_once KT_LIB_DIR . '/browse/DocumentCollection.inc.php';
     require_once KT_LIB_DIR . '/browse/columnregistry.inc.php';
     $collection = new AdvancedCollection();
     $oColumnRegistry = KTColumnRegistry::getSingleton();
     $aColumns = array();
     $aColumns[] = $oColumnRegistry->getColumn('ktcore.columns.singleselection');
     $aColumns[] = $oColumnRegistry->getColumn('ktcore.columns.title');
     $collection->addColumns($aColumns);
     $aOptions = $collection->getEnvironOptions();
     // extract data from the environment
     $qsFrag = array();
     foreach ($args as $k => $v) {
         if ($k == 'action') {
             $v = 'editactiontrigger';
         }
         // horrible hack - we really need iframe embedding.
         $qsFrag[] = sprintf('%s=%s', urlencode($k), urlencode($v));
     }
     $qs = implode('&', $qsFrag);
     $aOptions['result_url'] = KTUtil::addQueryStringSelf($qs);
     $aOptions['show_documents'] = false;
     $fFolderId = KTUtil::arrayGet($_REQUEST, 'fFolderId', KTUtil::arrayGet($this->aConfig, 'folder_id', 1));
     $oFolder = Folder::get($fFolderId);
     if (PEAR::isError($oFolder)) {
         $iRoot = 1;
         $oFolder = Folder::get($iRoot);
         $fFolderId = 1;
     }
     $collection->setOptions($aOptions);
     $collection->setQueryObject(new BrowseQuery($fFolderId, $this->oUser));
     $collection->setColumnOptions('ktcore.columns.singleselection', array('rangename' => 'folder_id', 'show_folders' => true, 'show_documents' => false));
     $collection->setColumnOptions('ktcore.columns.title', array('direct_folder' => false, 'folder_link' => $aOptions['result_url']));
     $aBreadcrumbs = array();
     $folder_path_names = $oFolder->getPathArray();
     $folder_path_ids = explode(',', $oFolder->getParentFolderIds());
     $folder_path_ids[] = $oFolder->getId();
     if ($folder_path_ids[0] == 0) {
         array_shift($folder_path_ids);
         array_shift($folder_path_names);
     }
     foreach (range(0, count($folder_path_ids) - 1) as $index) {
         $id = $folder_path_ids[$index];
         $qsFrag2 = $qsFrag;
         $qsFrag2[] = sprintf('fFolderId=%d', $id);
         $qs2 = implode('&', $qsFrag2);
         $url = KTUtil::addQueryStringSelf($qs2);
         $aBreadcrumbs[] = sprintf('<a href="%s">%s</a>', $url, htmlentities($folder_path_names[$index], ENT_NOQUOTES, 'UTF-8'));
     }
     $sBreadcrumbs = implode(' &raquo; ', $aBreadcrumbs);
     $aTemplateData = array('context' => $this, 'breadcrumbs' => $sBreadcrumbs, 'collection' => $collection, 'args' => $args);
     return $oTemplate->render($aTemplateData);
 }
Example #9
0
 function configure($aOptions)
 {
     if (!isset($aOptions['value'])) {
         $aOptions['value'] = KTUtil::arrayGet($aOptions, 'folder_id', 1);
     }
     $this->value = $aOptions['value'];
     $collection = new AdvancedCollection();
     $oCR =& KTColumnRegistry::getSingleton();
     $col = $oCR->getColumn('ktcore.columns.title');
     $col->setOptions(array('qs_params' => array('fMoveCode' => $sMoveCode, 'fFolderId' => $this->value, 'action' => 'startMove')));
     $collection->addColumn($col);
     $qObj = new FolderBrowseQuery(KTUtil::arrayGet($aOptions, 'value'));
     $collection->setQueryObject($qObj);
     $aO = $collection->getEnvironOptions();
     $collection->setOptions($aO);
     $aOptions['collection'] = $collection;
     $aOptions['broken_name'] = $false;
     return parent::configure($aOptions);
 }
Example #10
0
 /**
  * Original load function for the plugins
  * @deprecated
  */
 function load2()
 {
     if (!$this->isRegistered()) {
         return;
     }
     $this->setup();
     require_once KT_LIB_DIR . '/actions/actionregistry.inc.php';
     require_once KT_LIB_DIR . '/actions/portletregistry.inc.php';
     require_once KT_LIB_DIR . '/triggers/triggerregistry.inc.php';
     require_once KT_LIB_DIR . '/plugins/pageregistry.inc.php';
     require_once KT_LIB_DIR . '/authentication/authenticationproviderregistry.inc.php';
     require_once KT_LIB_DIR . "/plugins/KTAdminNavigation.php";
     require_once KT_LIB_DIR . "/dashboard/dashletregistry.inc.php";
     require_once KT_LIB_DIR . "/i18n/i18nregistry.inc.php";
     require_once KT_LIB_DIR . "/help/help.inc.php";
     require_once KT_LIB_DIR . "/workflow/workflowutil.inc.php";
     require_once KT_LIB_DIR . "/widgets/widgetfactory.inc.php";
     require_once KT_LIB_DIR . "/validation/validatorfactory.inc.php";
     require_once KT_LIB_DIR . "/browse/columnregistry.inc.php";
     require_once KT_LIB_DIR . "/browse/criteriaregistry.php";
     require_once KT_LIB_DIR . "/authentication/interceptorregistry.inc.php";
     $oPRegistry =& KTPortletRegistry::getSingleton();
     $oTRegistry =& KTTriggerRegistry::getSingleton();
     $oARegistry =& KTActionRegistry::getSingleton();
     $oPageRegistry =& KTPageRegistry::getSingleton();
     $oAPRegistry =& KTAuthenticationProviderRegistry::getSingleton();
     $oAdminRegistry =& KTAdminNavigationRegistry::getSingleton();
     $oDashletRegistry =& KTDashletRegistry::getSingleton();
     $oi18nRegistry =& KTi18nRegistry::getSingleton();
     $oKTHelpRegistry =& KTHelpRegistry::getSingleton();
     $oWFTriggerRegistry =& KTWorkflowTriggerRegistry::getSingleton();
     $oColumnRegistry =& KTColumnRegistry::getSingleton();
     $oNotificationHandlerRegistry =& KTNotificationRegistry::getSingleton();
     $oTemplating =& KTTemplating::getSingleton();
     $oWidgetFactory =& KTWidgetFactory::getSingleton();
     $oValidatorFactory =& KTValidatorFactory::getSingleton();
     $oCriteriaRegistry =& KTCriteriaRegistry::getSingleton();
     $oInterceptorRegistry =& KTInterceptorRegistry::getSingleton();
     foreach ($this->_aPortlets as $k => $v) {
         call_user_func_array(array(&$oPRegistry, 'registerPortlet'), $v);
     }
     foreach ($this->_aTriggers as $k => $v) {
         call_user_func_array(array(&$oTRegistry, 'registerTrigger'), $v);
     }
     foreach ($this->_aActions as $k => $v) {
         call_user_func_array(array(&$oARegistry, 'registerAction'), $v);
     }
     foreach ($this->_aPages as $k => $v) {
         call_user_func_array(array(&$oPageRegistry, 'registerPage'), $v);
     }
     foreach ($this->_aAuthenticationProviders as $k => $v) {
         call_user_func_array(array(&$oAPRegistry, 'registerAuthenticationProvider'), $v);
     }
     foreach ($this->_aAdminCategories as $k => $v) {
         call_user_func_array(array(&$oAdminRegistry, 'registerCategory'), $v);
     }
     foreach ($this->_aAdminPages as $k => $v) {
         call_user_func_array(array(&$oAdminRegistry, 'registerLocation'), $v);
     }
     foreach ($this->_aDashlets as $k => $v) {
         call_user_func_array(array(&$oDashletRegistry, 'registerDashlet'), $v);
     }
     foreach ($this->_ai18n as $k => $v) {
         call_user_func_array(array(&$oi18nRegistry, 'registeri18n'), $v);
     }
     foreach ($this->_ai18nLang as $k => $v) {
         call_user_func_array(array(&$oi18nRegistry, 'registeri18nLang'), $v);
     }
     foreach ($this->_aLanguage as $k => $v) {
         call_user_func_array(array(&$oi18nRegistry, 'registerLanguage'), $v);
     }
     foreach ($this->_aHelpLanguage as $k => $v) {
         call_user_func_array(array(&$oKTHelpRegistry, 'registerHelp'), $v);
     }
     foreach ($this->_aWFTriggers as $k => $v) {
         call_user_func_array(array(&$oWFTriggerRegistry, 'registerWorkflowTrigger'), $v);
     }
     foreach ($this->_aColumns as $k => $v) {
         call_user_func_array(array(&$oColumnRegistry, 'registerColumn'), $v);
     }
     foreach ($this->_aViews as $k => $v) {
         call_user_func_array(array(&$oColumnRegistry, 'registerView'), $v);
     }
     foreach ($this->_aNotificationHandlers as $k => $v) {
         call_user_func_array(array(&$oNotificationHandlerRegistry, 'registerNotificationHandler'), $v);
     }
     foreach ($this->_aTemplateLocations as $k => $v) {
         call_user_func_array(array(&$oTemplating, 'addLocation'), $v);
     }
     foreach ($this->_aCriteria as $k => $v) {
         call_user_func_array(array(&$oCriteriaRegistry, 'registerCriterion'), $v);
     }
     foreach ($this->_aWidgets as $k => $v) {
         call_user_func_array(array(&$oWidgetFactory, 'registerWidget'), $v);
     }
     foreach ($this->_aValidators as $k => $v) {
         call_user_func_array(array(&$oValidatorFactory, 'registerValidator'), $v);
     }
     foreach ($this->_aInterceptors as $k => $v) {
         call_user_func_array(array(&$oInterceptorRegistry, 'registerInterceptor'), $v);
     }
 }
Example #11
0
 function do_oldSearchResults()
 {
     // call the results sorting function in case of sort options selected
     search2QuerySort(stripslashes($_GET['sort_on']), stripslashes($_GET['sort_order']));
     $this->oPage->setBreadcrumbDetails(_kt("Search Results"));
     $this->oPage->title = _kt("Search Results");
     $collection = new AdvancedCollection();
     $oColumnRegistry = KTColumnRegistry::getSingleton();
     $aColumns = $oColumnRegistry->getColumnsForView('ktcore.views.search');
     $collection->addColumns($aColumns);
     // set a view option
     $aTitleOptions = array('documenturl' => $GLOBALS['KTRootUrl'] . '/view.php', 'direct_folder' => true);
     $collection->setColumnOptions('ktcore.columns.title', $aTitleOptions);
     // set the selection options
     $collection->setColumnOptions('ktcore.columns.selection', array('rangename' => 'selection', 'show_folders' => true, 'show_documents' => true));
     $aOptions = $collection->getEnvironOptions();
     // extract data from the environment
     $aOptions['empty_message'] = _kt("No documents or folders match this query.");
     $aOptions['is_browse'] = true;
     $aOptions['return_url'] = KTUtil::addQueryStringSelf("action=oldSearchResults");
     $collection->setOptions($aOptions);
     $collection->setQueryObject(new Search2Query());
     $oTemplating =& KTTemplating::getSingleton();
     $oTemplate = $oTemplating->loadTemplate("kt3/browse");
     $aTemplateData = array("context" => $this, "collection" => $collection, 'isEditable' => true, 'bulkactions' => KTBulkActionUtil::getAllBulkActions(), 'browseutil' => new KTBrowseUtil(), 'returnaction' => 'search2');
     return $oTemplate->render($aTemplateData);
 }
Example #12
0
 /**
  * Load the plugins into the global space
  *
  * @param array $aPlugins
  */
 function load($aPlugins)
 {
     require_once KT_LIB_DIR . '/actions/actionregistry.inc.php';
     require_once KT_LIB_DIR . '/actions/portletregistry.inc.php';
     require_once KT_LIB_DIR . '/triggers/triggerregistry.inc.php';
     require_once KT_LIB_DIR . '/plugins/pageregistry.inc.php';
     require_once KT_LIB_DIR . '/authentication/authenticationproviderregistry.inc.php';
     require_once KT_LIB_DIR . "/plugins/KTAdminNavigation.php";
     require_once KT_LIB_DIR . "/dashboard/dashletregistry.inc.php";
     require_once KT_LIB_DIR . "/i18n/i18nregistry.inc.php";
     require_once KT_LIB_DIR . "/help/help.inc.php";
     require_once KT_LIB_DIR . "/workflow/workflowutil.inc.php";
     require_once KT_LIB_DIR . "/widgets/widgetfactory.inc.php";
     require_once KT_LIB_DIR . "/validation/validatorfactory.inc.php";
     require_once KT_LIB_DIR . "/browse/columnregistry.inc.php";
     require_once KT_LIB_DIR . "/browse/criteriaregistry.php";
     require_once KT_LIB_DIR . "/authentication/interceptorregistry.inc.php";
     $oPRegistry =& KTPortletRegistry::getSingleton();
     $oTRegistry =& KTTriggerRegistry::getSingleton();
     $oARegistry =& KTActionRegistry::getSingleton();
     $oPageRegistry =& KTPageRegistry::getSingleton();
     $oAPRegistry =& KTAuthenticationProviderRegistry::getSingleton();
     $oAdminRegistry =& KTAdminNavigationRegistry::getSingleton();
     $oDashletRegistry =& KTDashletRegistry::getSingleton();
     $oi18nRegistry =& KTi18nRegistry::getSingleton();
     $oKTHelpRegistry =& KTHelpRegistry::getSingleton();
     $oWFTriggerRegistry =& KTWorkflowTriggerRegistry::getSingleton();
     $oColumnRegistry =& KTColumnRegistry::getSingleton();
     $oNotificationHandlerRegistry =& KTNotificationRegistry::getSingleton();
     $oTemplating =& KTTemplating::getSingleton();
     $oWidgetFactory =& KTWidgetFactory::getSingleton();
     $oValidatorFactory =& KTValidatorFactory::getSingleton();
     $oCriteriaRegistry =& KTCriteriaRegistry::getSingleton();
     $oInterceptorRegistry =& KTInterceptorRegistry::getSingleton();
     $oKTPluginRegistry =& KTPluginRegistry::getSingleton();
     // Loop through the loaded plugins and register them for access
     foreach ($aPlugins as $plugin) {
         $sName = $plugin['namespace'];
         $sParams = $plugin['object'];
         $aParams = explode('|', $sParams);
         $sClassType = $plugin['classtype'];
         switch ($sClassType) {
             case 'portlet':
                 $aLocation = unserialize($aParams[0]);
                 if ($aLocation != false) {
                     $aParams[0] = $aLocation;
                 }
                 if (isset($aParams[3])) {
                     $aParams[3] = KTPluginUtil::getFullPath($aParams[3]);
                 }
                 call_user_func_array(array(&$oPRegistry, 'registerPortlet'), $aParams);
                 break;
             case 'trigger':
                 if (isset($aParams[4])) {
                     $aParams[4] = KTPluginUtil::getFullPath($aParams[4]);
                 }
                 call_user_func_array(array(&$oTRegistry, 'registerTrigger'), $aParams);
                 break;
             case 'action':
                 if (isset($aParams[3])) {
                     $aParams[3] = KTPluginUtil::getFullPath($aParams[3]);
                 }
                 call_user_func_array(array(&$oARegistry, 'registerAction'), $aParams);
                 break;
             case 'page':
                 if (isset($aParams[2])) {
                     $aParams[2] = KTPluginUtil::getFullPath($aParams[2]);
                 }
                 call_user_func_array(array(&$oPageRegistry, 'registerPage'), $aParams);
                 break;
             case 'authentication_provider':
                 if (isset($aParams[3])) {
                     $aParams[3] = KTPluginUtil::getFullPath($aParams[3]);
                 }
                 $aParams[0] = _kt($aParams[0]);
                 call_user_func_array(array(&$oAPRegistry, 'registerAuthenticationProvider'), $aParams);
                 break;
             case 'admin_category':
                 $aParams[1] = _kt($aParams[1]);
                 $aParams[2] = _kt($aParams[2]);
                 call_user_func_array(array(&$oAdminRegistry, 'registerCategory'), $aParams);
                 break;
             case 'admin_page':
                 if (isset($aParams[5])) {
                     $aParams[5] = KTPluginUtil::getFullPath($aParams[5]);
                 }
                 $aParams[3] = _kt($aParams[3]);
                 $aParams[4] = _kt($aParams[4]);
                 call_user_func_array(array(&$oAdminRegistry, 'registerLocation'), $aParams);
                 break;
             case 'dashlet':
                 if (isset($aParams[2])) {
                     $aParams[2] = KTPluginUtil::getFullPath($aParams[2]);
                 }
                 call_user_func_array(array(&$oDashletRegistry, 'registerDashlet'), $aParams);
                 break;
             case 'i18nlang':
                 if (isset($aParams[2]) && $aParams[2] != 'default') {
                     $aParams[2] = KTPluginUtil::getFullPath($aParams[2]);
                 }
                 call_user_func_array(array(&$oi18nRegistry, 'registeri18nLang'), $aParams);
             case 'i18n':
                 if (isset($aParams[2])) {
                     $aParams[1] = $aParams[2];
                     unset($aParams[2]);
                 } else {
                     $aParams[1] = KTPluginUtil::getFullPath($aParams[1]);
                 }
                 call_user_func_array(array(&$oi18nRegistry, 'registeri18n'), $aParams);
                 break;
             case 'language':
                 call_user_func_array(array(&$oi18nRegistry, 'registerLanguage'), $aParams);
                 break;
             case 'help_language':
                 if (isset($aParams[2])) {
                     $aParams[2] = KTPluginUtil::getFullPath($aParams[2]);
                 }
                 call_user_func_array(array(&$oKTHelpRegistry, 'registerHelp'), $aParams);
                 break;
             case 'workflow_trigger':
                 if (isset($aParams[2])) {
                     $aParams[2] = KTPluginUtil::getFullPath($aParams[2]);
                 }
                 call_user_func_array(array(&$oWFTriggerRegistry, 'registerWorkflowTrigger'), $aParams);
                 break;
             case 'column':
                 if (isset($aParams[3])) {
                     $aParams[3] = KTPluginUtil::getFullPath($aParams[3]);
                 }
                 $aParams[0] = _kt($aParams[0]);
                 call_user_func_array(array(&$oColumnRegistry, 'registerColumn'), $aParams);
                 break;
             case 'view':
                 $aParams[0] = _kt($aParams[0]);
                 call_user_func_array(array(&$oColumnRegistry, 'registerView'), $aParams);
                 break;
             case 'notification_handler':
                 if (isset($aParams[2])) {
                     $aParams[2] = KTPluginUtil::getFullPath($aParams[2]);
                 }
                 call_user_func_array(array(&$oNotificationHandlerRegistry, 'registerNotificationHandler'), $aParams);
                 break;
             case 'template_location':
                 if (isset($aParams[1])) {
                     $aParams[1] = KTPluginUtil::getFullPath($aParams[1]);
                 }
                 call_user_func_array(array(&$oTemplating, 'addLocation2'), $aParams);
                 break;
             case 'criterion':
                 $aInit = unserialize($aParams[3]);
                 if ($aInit != false) {
                     $aParams[3] = $aInit;
                 }
                 if (isset($aParams[2])) {
                     $aParams[2] = KTPluginUtil::getFullPath($aParams[2]);
                 }
                 call_user_func_array(array(&$oCriteriaRegistry, 'registerCriterion'), $aParams);
                 break;
             case 'widget':
                 if (isset($aParams[2])) {
                     $aParams[2] = KTPluginUtil::getFullPath($aParams[2]);
                 }
                 call_user_func_array(array(&$oWidgetFactory, 'registerWidget'), $aParams);
                 break;
             case 'validator':
                 if (isset($aParams[2])) {
                     $aParams[2] = KTPluginUtil::getFullPath($aParams[2]);
                 }
                 call_user_func_array(array(&$oValidatorFactory, 'registerValidator'), $aParams);
                 break;
             case 'interceptor':
                 if (isset($aParams[2])) {
                     $aParams[2] = KTPluginUtil::getFullPath($aParams[2]);
                 }
                 call_user_func_array(array(&$oInterceptorRegistry, 'registerInterceptor'), $aParams);
                 break;
             case 'plugin':
                 if (isset($aParams[2])) {
                     $aParams[2] = KTPluginUtil::getFullPath($aParams[2]);
                 }
                 $oKTPluginRegistry->_aPluginDetails[$sName] = $aParams;
                 break;
         }
     }
 }
Example #13
0
 function do_main()
 {
     $aErrorOptions = array("message" => _kt("Please provide a search term"));
     $searchable_text = sanitizeForSQL(KTUtil::arrayGet($_REQUEST, "fSearchableText"));
     $this->oValidator->notEmpty($searchable_text, $aErrorOptions);
     $collection = new AdvancedCollection();
     $oColumnRegistry = KTColumnRegistry::getSingleton();
     $aColumns = $oColumnRegistry->getColumnsForView('ktcore.views.search');
     $collection->addColumns($aColumns);
     // set a view option
     $aTitleOptions = array('documenturl' => $GLOBALS['KTRootUrl'] . '/view.php', 'direct_folder' => true);
     $collection->setColumnOptions('ktcore.columns.title', $aTitleOptions);
     // set the selection options
     $collection->setColumnOptions('ktcore.columns.selection', array('rangename' => 'selection', 'show_folders' => true, 'show_documents' => true));
     $aOptions = $collection->getEnvironOptions();
     // extract data from the environment
     $aOptions['return_url'] = KTUtil::addQueryStringSelf("fSearchableText=" . urlencode($searchable_text));
     $aOptions['empty_message'] = _kt("No documents or folders match this query.");
     $aOptions['is_browse'] = true;
     $collection->setOptions($aOptions);
     $collection->setQueryObject(new SimpleSearchQuery($searchable_text));
     $oTemplating =& KTTemplating::getSingleton();
     $oTemplate = $oTemplating->loadTemplate("kt3/browse");
     $aTemplateData = array("context" => $this, "collection" => $collection, 'isEditable' => true, 'bulkactions' => KTBulkActionUtil::getAllBulkActions(), 'browseutil' => new KTBrowseUtil(), 'returnaction' => 'simpleSearch', 'returndata' => $searchable_text);
     return $oTemplate->render($aTemplateData);
 }
 * KnowledgeTree" logo and retain the original copyright notice. If the display of the 
 * logo is not reasonably feasible for technical reasons, the Appropriate Legal Notices
 * must display the words "Powered by KnowledgeTree" and retain the original 
 * copyright notice.
 * Contributor( s): ______________________________________
 *
 */
require_once KT_LIB_DIR . '/widgets/fieldWidgets.php';
require_once KT_LIB_DIR . '/documentmanagement/DocumentLink.inc';
require_once KT_LIB_DIR . '/documentmanagement/LinkType.inc';
require_once KT_LIB_DIR . "/browse/DocumentCollection.inc.php";
require_once KT_LIB_DIR . "/browse/BrowseColumns.inc.php";
require_once KT_LIB_DIR . "/browse/PartialQuery.inc.php";
require_once KT_LIB_DIR . "/browse/browseutil.inc.php";
require_once KT_LIB_DIR . "/browse/columnregistry.inc.php";
$oCR =& KTColumnRegistry::getSingleton();
$oCR->getColumn('ktcore.columns.title');
class KTDocumentLinkTitle extends AdvancedTitleColumn
{
    var $namespace = 'ktdocumentlinks.columns.title';
    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);
        }
    }
}
Example #15
0
 function form_collectinfo()
 {
     $cancelUrl = $this->getReturnUrl();
     $oForm = new KTForm();
     $oForm->setOptions(array('identifier' => 'ktcore.actions.bulk.copy.form', 'label' => _kt('Copy Items'), 'submit_label' => _kt('Copy'), 'action' => 'performaction', 'fail_action' => 'collectinfo', 'cancel_url' => $cancelUrl, 'context' => $this));
     // Setup the collection for move display.
     require_once KT_LIB_DIR . '/browse/DocumentCollection.inc.php';
     $collection = new AdvancedCollection();
     $oCR =& KTColumnRegistry::getSingleton();
     $col = $oCR->getColumn('ktcore.columns.title');
     //$col->setOptions(array('qs_params'=>array('fMoveCode'=>$sMoveCode,
     //                                          'fFolderId'=>$oFolder->getId(),
     //                                          'action'=>'startMove')));
     $collection->addColumn($col);
     $qObj = new FolderBrowseQuery($this->oFolder->iId);
     $exclude = array();
     foreach ($this->oEntityList->aFolderIds as $folderid) {
         $exclude[] = $folderid + 0;
     }
     $qObj->exclude_folders = $exclude;
     $collection->setQueryObject($qObj);
     $aOptions = $collection->getEnvironOptions();
     $aOptions['result_url'] = KTUtil::addQueryString($_SERVER['PHP_SELF'], array('fFolderId' => $this->oFolder->iId, 'action' => 'collectinfo'));
     $collection->setOptions($aOptions);
     $oWF =& KTWidgetFactory::getSingleton();
     $oWidget = $oWF->get('ktcore.widgets.collection', array('label' => _kt('Target Folder'), 'description' => _kt('Use the folder collection and path below to browse to the folder you wish to copy the documents into.'), 'required' => true, 'name' => 'fFolderId', 'broken_name' => true, 'folder_id' => $this->oFolder->iId, 'collection' => $collection));
     $oForm->addInitializedWidget($oWidget);
     // Electronic Signature if enabled
     global $default;
     if ($default->enableESignatures) {
         $oForm->addWidget(array('ktcore.widgets.info', array('label' => _kt('This action requires authentication'), 'description' => _kt('Please provide your user credentials as confirmation of this action.'), 'name' => 'info')));
         $oForm->addWidget(array('ktcore.widgets.string', array('label' => _kt('Username'), 'name' => 'sign_username', 'required' => true)));
         $oForm->addWidget(array('ktcore.widgets.password', array('label' => _kt('Password'), 'name' => 'sign_password', 'required' => true)));
     }
     $oForm->addWidget(array('ktcore.widgets.reason', array('name' => 'reason', 'label' => _kt('Reason'), 'description' => _kt('The reason for copying these documents and folders, for historical purposes.'), 'value' => null, 'required' => true)));
     $oForm->setValidators(array(array('ktcore.validators.string', array('test' => 'reason', 'output' => 'reason'))));
     if ($default->enableESignatures) {
         $oForm->addValidator(array('electonic.signatures.validators.authenticate', array('object_id' => $this->oFolder->getID(), 'type' => 'bulk', 'action' => 'ktcore.transactions.bulk_copy', 'test' => 'info', 'output' => 'info')));
     }
     return $oForm;
 }
 function do_search()
 {
     // Get the tag to search for and create search query
     $tag = isset($_REQUEST['tag']) ? $_REQUEST['tag'] : '';
     $decode = isset($_REQUEST['decode']) ? $_REQUEST['decode'] : '';
     if ($decode == 'true') {
         $tag = urldecode($tag);
     }
     $iUserId = $_SESSION['userID'];
     $oUser = User::get($iUserId);
     // set breadcrumbs
     $this->aBreadcrumbs[] = array('url' => 'dashboard.php', 'name' => _kt('Dashboard'));
     $this->aBreadcrumbs[] = array('url' => $_SERVER['PHP_SELF'], 'name' => _kt('Tag Cloud Search'));
     $tagList = $_SESSION['tagList'];
     if (!empty($tagList)) {
         $aPrevTag = end($tagList);
         $aTagTree = $aPrevTag['tagTree'];
         $base = KTUtil::addQueryString('TagCloudRedirection&action=recall', null);
         foreach ($aTagTree as $key => $item) {
             if ($tag == $item) {
                 continue;
             }
             $url = $base . '&tag=' . urlencode($item) . '&pos=' . $key;
             $this->aBreadcrumbs[] = array('url' => $url, 'name' => $item);
         }
     }
     if (!empty($tag)) {
         $this->aBreadcrumbs[] = array('url' => '', 'name' => $tag);
     }
     // set page title
     $sTitle = _kt('Search Results');
     $this->oPage->setBreadcrumbDetails($sTitle);
     // Set tag cloud portlet
     $portlet = new TagCloudPortlet($oUser, $tag);
     $this->oPage->addPortlet($portlet);
     $collection = new AdvancedCollection();
     $oColumnRegistry = KTColumnRegistry::getSingleton();
     $aColumns = $oColumnRegistry->getColumnsForView('ktcore.views.search');
     $collection->addColumns($aColumns);
     // set a view option
     $aTitleOptions = array('documenturl' => $GLOBALS['KTRootUrl'] . '/view.php');
     $collection->setColumnOptions('ktcore.columns.title', $aTitleOptions);
     $collection->setColumnOptions('ktcore.columns.selection', array('rangename' => 'selection', 'show_folders' => true, 'show_documents' => true));
     $aOptions = $collection->getEnvironOptions();
     // extract data from the environment
     $returnUrl = KTUtil::addQueryString('TagCloudRedirection&action=search&tag=' . urlencode($tag), false);
     $aOptions['return_url'] = $returnUrl;
     $aOptions['empty_message'] = _kt('No documents or folders match this query.');
     $aOptions['is_browse'] = true;
     $collection->setOptions($aOptions);
     $collection->setQueryObject(new TagQuery($oUser, $tag));
     $oTemplating =& KTTemplating::getSingleton();
     $oTemplate = $oTemplating->loadTemplate('kt3/browse');
     $aTemplateData = array('context' => $this, 'collection' => $collection, 'custom_title' => $sTitle, 'isEditable' => true, 'boolean_search' => $sSearch, 'bulkactions' => KTBulkActionUtil::getAllBulkActions(), 'browseutil' => new KTBrowseUtil(), 'returnaction' => $returnUrl);
     return $oTemplate->render($aTemplateData);
 }