/** * Initializes editor view with core set of values, loads model with record to be edited and selects user interface to use. * * @param $pa_options Array of options. Supported options are: * ui = The ui_id or editor_code value for the user interface to use. If omitted the default user interface is used. */ protected function _initView($pa_options = null) { // load required javascript JavascriptLoadManager::register('bundleableEditor'); JavascriptLoadManager::register('imageScroller'); JavascriptLoadManager::register('ckeditor'); if (!($t_subject = $this->opo_datamodel->getInstanceByTableName($this->ops_table_name))) { return null; } if (is_array($pa_options) && isset($pa_options['loadSubject']) && (bool) $pa_options['loadSubject'] && ($vn_subject_id = (int) $this->request->getParameter($t_subject->primaryKey(), pInteger))) { $t_subject->load($vn_subject_id); } if (is_array($pa_options) && isset($pa_options['forceSubjectValues']) && is_array($pa_options['forceSubjectValues'])) { foreach ($pa_options['forceSubjectValues'] as $vs_f => $vs_v) { $t_subject->set($vs_f, $vs_v); } } // then reload the definitions (which includes bundle specs) $t_subject->reloadLabelDefinitions(); $t_ui = new ca_editor_uis(); if (isset($pa_options['ui']) && $pa_options['ui']) { if (is_numeric($pa_options['ui'])) { $t_ui->load((int) $pa_options['ui']); } if (!$t_ui->getPrimaryKey()) { $t_ui->load(array('editor_code' => $pa_options['ui'])); } } if (!$t_ui->getPrimaryKey()) { $t_ui = ca_editor_uis::loadDefaultUI($this->ops_table_name, $this->request, $t_subject->getTypeID(), array('editorPref' => 'quickadd')); } $this->view->setVar($t_subject->primaryKey(), $t_subject->getPrimaryKey()); $this->view->setVar('subject_id', $t_subject->getPrimaryKey()); $this->view->setVar('t_subject', $t_subject); if ($vs_parent_id_fld = $t_subject->getProperty('HIERARCHY_PARENT_ID_FLD')) { $this->view->setVar('parent_id', $vn_parent_id = $this->request->getParameter($vs_parent_id_fld, pInteger)); return array($t_subject, $t_ui, $vn_parent_id, $vn_above_id); } return array($t_subject, $t_ui); }
/** * Generates display summary of record data based upon a bundle display for screen * * @param array $pa_options Array of options passed through to _initView */ protected function _initView($pa_options = null) { // load required javascript JavascriptLoadManager::register('bundleableEditor'); JavascriptLoadManager::register('imageScroller'); $t_subject = $this->opo_datamodel->getInstanceByTableName($this->ops_table_name); $t_subject->purify(true); // filter HTML for bad things like <script> tags and malformed markup // empty (ie. new) rows don't have a type_id set, which means we'll have no idea which attributes to display // so we get the type_id off of the request if (!($vn_type_id = $this->request->getParameter($t_subject->getTypeFieldName(), pInteger))) { $vn_type_id = null; } // then set the empty row's type_id $t_subject->set($t_subject->getTypeFieldName(), $vn_type_id); // then reload the definitions (which includes bundle specs) $t_subject->reloadLabelDefinitions(); $t_ui = new ca_editor_uis(); if (isset($pa_options['ui']) && $pa_options['ui']) { if (is_numeric($pa_options['ui'])) { $t_ui->load((int) $pa_options['ui']); } if (!$t_ui->getPrimaryKey()) { $t_ui->load(array('editor_code' => $pa_options['ui'])); } } if (!$t_ui->getPrimaryKey()) { $t_ui->loadDefaultUI($this->ops_table_name, $this->request); } $this->view->setVar('t_subject', $t_subject); return array(null, $t_subject, $t_ui); }
/** * Initializes editor view with core set of values, loads model with record to be edited and selects user interface to use. * * @param $pa_options Array of options. Supported options are: * ui = The ui_id or editor_code value for the user interface to use. If omitted the default user interface is used. */ protected function _initView($pa_options = null) { // load required javascript AssetLoadManager::register('bundleableEditor'); AssetLoadManager::register('imageScroller'); AssetLoadManager::register('ckeditor'); $t_subject = $this->opo_datamodel->getInstanceByTableName($this->ops_table_name); if (is_array($pa_options) && isset($pa_options['loadSubject']) && (bool) $pa_options['loadSubject'] && ($vn_subject_id = (int) $this->request->getParameter($t_subject->primaryKey(), pInteger))) { $t_subject->load($vn_subject_id); } if (is_array($pa_options) && isset($pa_options['forceSubjectValues']) && is_array($pa_options['forceSubjectValues'])) { foreach ($pa_options['forceSubjectValues'] as $vs_f => $vs_v) { $t_subject->set($vs_f, $vs_v); } } // empty (ie. new) rows don't have a type_id set, which means we'll have no idea which attributes to display // so we get the type_id off of the request if (!($vn_type_id = $this->request->getParameter($t_subject->getTypeFieldName(), pString))) { $vn_type_id = null; } // then set the empty row's type_id $t_subject->set($t_subject->getTypeFieldName(), $vn_type_id); // then reload the definitions (which includes bundle specs) $t_subject->reloadLabelDefinitions(); $t_ui = new ca_editor_uis(); if (isset($pa_options['ui']) && $pa_options['ui']) { if (is_numeric($pa_options['ui'])) { $t_ui->load((int) $pa_options['ui']); } if (!$t_ui->getPrimaryKey()) { $t_ui->load(array('editor_code' => $pa_options['ui'])); } } if (!$t_ui->getPrimaryKey()) { $t_ui = ca_editor_uis::loadDefaultUI($this->ops_table_name, $this->request, $t_subject->getTypeID()); } $this->view->setVar($t_subject->primaryKey(), $t_subject->getPrimaryKey()); $this->view->setVar('subject_id', $t_subject->getPrimaryKey()); $this->view->setVar('t_subject', $t_subject); if ($vs_parent_id_fld = $t_subject->getProperty('HIERARCHY_PARENT_ID_FLD')) { $this->view->setVar('parent_id', $vn_parent_id = $this->request->getParameter($vs_parent_id_fld, pInteger)); return array($t_subject, $t_ui, $vn_parent_id, $vn_above_id); } return array($t_subject, $t_ui); }
/** * Checks for presence of configuration for ca_editor_uis and ca_editor_ui_screens editors, and if not * present, loads a default configuration. Since these editors are used to configure themselves, lack of * configuration (the case with all pre-version 1.1 installations), will effectively make it impossible to * change the setup for any editor in the installation. * * @return bool Returns true on success (either UI already exists or was created successfully), false on error (UI does not exist and could not be created) * */ public function checkConfiguration() { global $g_ui_locale_id; $t_ui = new ca_editor_uis(); if (!$t_ui->load(array('editor_type' => 101))) { $t_ui->setMode(ACCESS_WRITE); $t_ui->set('user_id', null); $t_ui->set('is_system_ui', 1); $t_ui->set('editor_type', 101); $t_ui->set('editor_code', 'ui_editor'); $t_ui->set('color', '000000'); $t_ui->insert(); if ($t_ui->numErrors()) { return false; } $t_ui->addLabel(array('name' => 'UI Editor'), $g_ui_locale_id, null, true); if ($t_ui->numErrors()) { return false; } $vn_ui_id = $t_ui->getPrimaryKey(); $t_screen = new ca_editor_ui_screens(); $t_screen->setMode(ACCESS_WRITE); $t_screen->set('ui_id', $vn_ui_id); $t_screen->set('idno', 'basic_' . $vn_ui_id); $t_screen->set('rank', 1); $t_screen->set('default', 1); $t_screen->insert(); if ($t_screen->numErrors()) { return false; } $t_screen->addLabel(array('name' => 'Basic'), $g_ui_locale_id, null, true); if ($t_screen->numErrors()) { return false; } $vn_i = 1; foreach (array('preferred_labels', 'editor_code', 'color', 'editor_type', 'ca_editor_ui_type_restrictions', 'ca_editor_ui_screens', 'is_system_ui', 'ca_users', 'ca_user_groups', 'ca_user_roles') as $vs_bundle_name) { $t_screen->addPlacement($vs_bundle_name, $vs_bundle_name, array(), $vn_i); $vn_i++; } } if (!$t_ui->load(array('editor_type' => 100))) { $t_ui->setMode(ACCESS_WRITE); $t_ui->set('user_id', null); $t_ui->set('is_system_ui', 1); $t_ui->set('editor_type', 100); $t_ui->set('color', 'CC0000'); $t_ui->set('editor_code', 'ui_screen_editor'); $t_ui->insert(); if ($t_ui->numErrors()) { return false; } $t_ui->addLabel(array('name' => 'UI Screen Editor'), $g_ui_locale_id, null, true); if ($t_ui->numErrors()) { return false; } $vn_ui_id = $t_ui->getPrimaryKey(); $t_screen = new ca_editor_ui_screens(); $t_screen->setMode(ACCESS_WRITE); $t_screen->set('ui_id', $vn_ui_id); $t_screen->set('idno', 'basic_' . $vn_ui_id); $t_screen->set('rank', 1); $t_screen->set('default', 1); $t_screen->insert(); if ($t_screen->numErrors()) { return false; } $t_screen->addLabel(array('name' => 'Basic'), $g_ui_locale_id, null, true); if ($t_screen->numErrors()) { return false; } $vn_i = 1; foreach (array('preferred_labels', 'idno', 'color', 'is_default', 'ca_editor_ui_screen_type_restrictions', 'ca_editor_ui_bundle_placements', 'ca_users', 'ca_user_groups', 'ca_user_roles') as $vs_bundle_name) { $t_screen->addPlacement($vs_bundle_name, $vs_bundle_name, array(), $vn_i); $vn_i++; } } return true; }
/** * Load standard UI (either system default or user-defined) for specified record and, optionally, record type * * @param mixed $pm_table_name_or_num Table name or number to load editor for. Values for $pm_table_name_or_num may be, for example: * 'ca_objects' = objects editor * 'ca_entities' = entities editor * .. etc .. * @param RequestHTTP $po_request The current request * @param int $pn_type_id Optional type_id * @param array $pa_options Options are: * editorPref = "cataloguing" to select UI using user's "cataloguing_<table_name>_editor_ui" preference, "quickadd" to use "quickadd_<table_name>_editor_ui" pref; default is "cataloguing" * @return ca_editor_uis instance loaded with default UI on success, false on failure */ public static function loadDefaultUI($pm_table_name_or_num, $po_request, $pn_type_id = null, $pa_options = null) { if (ca_editor_uis::$s_default_ui_cache[$pm_table_name_or_num . '/' . $pn_type_id]) { return ca_editor_uis::$s_default_ui_cache[$pm_table_name_or_num . '/' . $pn_type_id]; } $o_dm = Datamodel::load(); if (is_numeric($pm_table_name_or_num)) { $t_instance = $o_dm->getInstanceByTableNum($pm_table_name_or_num, true); } else { $t_instance = $o_dm->getInstanceByTableName($pm_table_name_or_num, true); } if (!$t_instance) { return false; } $vs_table_name = $t_instance->tableName(); $vn_table_num = $t_instance->tableNum(); if (!isset($pa_options['editorPref'])) { $pa_options['editorPref'] = 'cataloguing'; } switch ($pa_options['editorPref']) { case 'quickadd': $va_uis_by_type = $po_request->user->getPreference("quickadd_{$vs_table_name}_editor_ui"); break; default: $va_uis_by_type = $po_request->user->getPreference("cataloguing_{$vs_table_name}_editor_ui"); break; } $va_available_uis_by_type = $po_request->user->_getUIListByType($vn_table_num); if ($pn_type_id && $va_uis_by_type) { if (!is_array($va_uis_by_type)) { if (!isset($va_available_uis_by_type[$pn_type_id][$va_uis_by_type]) && !isset($va_available_uis_by_type['__all__'][$va_uis_by_type])) { $pn_type_id = null; } $va_uis_by_type = array(); } else { if (!isset($va_available_uis_by_type[$pn_type_id][$va_uis_by_type[$pn_type_id]]) && !isset($va_available_uis_by_type['__all__'][$va_uis_by_type[$pn_type_id]])) { $pn_type_id = null; } } } $t_ui = new ca_editor_uis(); if (!$pn_type_id || !($vn_rc = $t_ui->load($va_uis_by_type[$pn_type_id]))) { $va_ui_ids = ca_editor_uis::getAvailableUIs($vn_table_num, $po_request, $pn_type_id, true); if (sizeof($va_ui_ids) == 0) { return false; } $va_tmp = array_keys($va_ui_ids); if ($t_ui->load($va_tmp[0])) { return ca_editor_uis::$s_default_ui_cache[$pm_table_name_or_num . '/' . $pn_type_id] = $t_ui; } return false; } return ca_editor_uis::$s_default_ui_cache[$pm_table_name_or_num . '/' . $pn_type_id] = $t_ui; }
/** * Initializes editor view with core set of values, loads model with record to be edited and selects user interface to use. * * @param $pa_options Array of options. Supported options are: * ui = The ui_id or editor_code value for the user interface to use. If omitted the default user interface is used. */ protected function _initView($pa_options = null) { // load required javascript AssetLoadManager::register('bundleableEditor'); AssetLoadManager::register('imageScroller'); AssetLoadManager::register('datePickerUI'); $vn_set_id = $this->request->getParameter('set_id', pInteger); $t_set = new ca_sets(); if (!$vn_set_id || !$t_set->load($vn_set_id)) { // Bad set id return array(null, null, null, null); } // Does user have access to set? if (!$t_set->haveAccessToSet($this->request->getUserID(), __CA_SET_READ_ACCESS__)) { return array(null, null, null, null); } $t_subject = $this->opo_datamodel->getInstanceByTableNum($t_set->get('table_num')); $t_ui = new ca_editor_uis(); if (!isset($pa_options['ui']) && !$pa_options['ui']) { $t_ui->load($this->request->user->getPreference("batch_" . $t_subject->tableName() . "_editor_ui")); } if (!$t_ui->getPrimaryKey() && isset($pa_options['ui']['__all__']) && $pa_options['ui']['__all__']) { if (is_numeric($pa_options['ui']['__all__'])) { $t_ui->load((int) $pa_options['ui']['__all__']); } if (!$t_ui->getPrimaryKey()) { $t_ui->load(array('editor_code' => $pa_options['ui']['__all__'])); } } if (!$t_ui->getPrimaryKey()) { $t_ui = ca_editor_uis::loadDefaultUI($t_subject->tableName(), $this->request, $t_subject->getTypeID()); } $this->view->setVar('set_id', $vn_set_id); $this->view->setVar('t_set', $t_set); $this->view->setVar('t_subject', $t_subject); $vn_item_count = $t_set->getItemCount(array('user_id' => $this->request->getUserID())); $vs_item_name = $vn_item_count == 1 ? $t_subject->getProperty("NAME_SINGULAR") : $t_subject->getProperty("NAME_PLURAL"); MetaTagManager::setWindowTitle(_t("Batch editing %1 %2 with set %3", $vn_item_count, $vs_item_name, $t_set->getLabelForDisplay(true))); return array($vn_set_id, $t_set, $t_subject, $t_ui); }
/** * Sets restrictions for currently loaded screen * * @param array $pa_type_ids list of types to restrict to * @return bool True on success, false on error, null if no screen is loaded * */ public function setTypeRestrictions($pa_type_ids) { if (!($vn_screen_id = $this->getPrimaryKey())) { return null; } // screen must be loaded if (!is_array($pa_type_ids)) { if (is_numeric($pa_type_ids)) { $pa_type_ids = array($pa_type_ids); } else { $pa_type_ids = array(); } } $t_ui = new ca_editor_uis(); if (!($t_instance = $this->_DATAMODEL->getInstanceByTableNum($this->getTableNum()))) { return false; } if ($this->inTransaction()) { $t_instance->setTransaction($this->getTransaction()); $t_ui->setTransaction($this->getTransaction()); } if (!$t_ui->load($this->get('ui_id'))) { return false; } if ($t_instance instanceof BaseRelationshipModel) { // interstitial type restrictions $va_type_list = $t_instance->getRelationshipTypes(); } else { // "normal" (list-based) type restrictions $va_type_list = $t_instance->getTypeList(); } $va_current_restrictions = $this->getTypeRestrictions(); $va_current_type_ids = array(); foreach ($va_current_restrictions as $vn_i => $va_restriction) { $va_current_type_ids[$va_restriction['type_id']] = true; } foreach ($va_type_list as $vn_type_id => $va_type_info) { if (in_array($vn_type_id, $pa_type_ids)) { // need to set if (!isset($va_current_type_ids[$vn_type_id])) { $this->addTypeRestriction($vn_type_id); } } else { // need to unset if (isset($va_current_type_ids[$vn_type_id])) { $this->removeTypeRestriction($vn_type_id); } } } return true; }
/** * */ protected function _getUI($pn_type_id = null, $pa_options = null) { $t_ui = new ca_editor_uis(); if (isset($pa_options['ui']) && $pa_options['ui']) { if (is_numeric($pa_options['ui'])) { $t_ui->load((int) $pa_options['ui']); } if (!$t_ui->getPrimaryKey()) { $t_ui->load(array('editor_code' => $pa_options['ui'])); } } if (!$t_ui->getPrimaryKey()) { $t_ui = ca_editor_uis::loadDefaultUI($this->ops_table_name, $this->request, $pn_type_id); } return $t_ui; }
/** * Initializes editor view with core set of values, loads model with record to be edited and selects user interface to use. * * @param $pa_options Array of options. Supported options are: * ui = The ui_id or editor_code value for the user interface to use. If omitted the default user interface is used. */ protected function _initView($pa_options = null) { // load required javascript JavascriptLoadManager::register('bundleableEditor'); JavascriptLoadManager::register('imageScroller'); JavascriptLoadManager::register('datePickerUI'); $t_subject = $this->opo_datamodel->getInstanceByTableName($this->ops_table_name); $vn_subject_id = $this->request->getParameter($t_subject->primaryKey(), pInteger); if (!$vn_subject_id || !$t_subject->load($vn_subject_id)) { // empty (ie. new) rows don't have a type_id set, which means we'll have no idea which attributes to display // so we get the type_id off of the request if (!($vn_type_id = $this->request->getParameter($t_subject->getTypeFieldName(), pInteger))) { $vn_type_id = null; } // then set the empty row's type_id $t_subject->set($t_subject->getTypeFieldName(), $vn_type_id); // then reload the definitions (which includes bundle specs) $t_subject->reloadLabelDefinitions(); } $t_ui = new ca_editor_uis(); if (isset($pa_options['ui']) && $pa_options['ui']) { if (is_numeric($pa_options['ui'])) { $t_ui->load((int) $pa_options['ui']); } if (!$t_ui->getPrimaryKey()) { $t_ui->load(array('editor_code' => $pa_options['ui'])); } } if (!$t_ui->getPrimaryKey()) { $t_ui = ca_editor_uis::loadDefaultUI($this->ops_table_name, $this->request, $t_subject->getTypeID()); } $this->view->setVar($t_subject->primaryKey(), $vn_subject_id); $this->view->setVar('subject_id', $vn_subject_id); $this->view->setVar('t_subject', $t_subject); MetaTagManager::setWindowTitle(_t("Editing %1 : %2", ($vs_type = $t_subject->getTypeName()) ? $vs_type : $t_subject->getProperty('NAME_SINGULAR'), $vn_subject_id ? $t_subject->getLabelForDisplay(true) : _t('new %1', $t_subject->getTypeName()))); if ($vs_parent_id_fld = $t_subject->getProperty('HIERARCHY_PARENT_ID_FLD')) { $this->view->setVar('parent_id', $vn_parent_id = $this->request->getParameter($vs_parent_id_fld, pInteger)); // The "above_id" is set when the new record we're creating is to be inserted *above* an existing record (eg. made // the parent of another record). It will be set to the record we're inserting above. We ignore it if set when editing // an existing record since it is only relevant for newly created records. if (!$vn_subject_id) { $this->view->setVar('above_id', $vn_above_id = $this->request->getParameter('above_id', pInteger)); $t_subject->set($vs_parent_id_fld, $vn_parent_id); $t_parent = $this->opo_datamodel->getInstanceByTableName($this->ops_table_name); if ($t_parent->load($vn_parent_id)) { $t_subject->set('idno', $t_parent->get('idno')); } } return array($vn_subject_id, $t_subject, $t_ui, $vn_parent_id, $vn_above_id); } return array($vn_subject_id, $t_subject, $t_ui); }
/** * Returns a list of ui id, screen id and placement id for a given setting key (editor_code/screen_idno/placement_code) * @param string $ps_key * @return array|bool */ public static function resolveHideIfSelectedKey($ps_key) { if (CompositeCache::contains($ps_key, 'ListAttrHideIfSelected')) { return CompositeCache::fetch($ps_key, 'ListAttrHideIfSelected'); } $va_tmp = explode('/', $ps_key); if (!sizeof($va_tmp) == 3) { return false; } // ui $t_ui = new ca_editor_uis(); if (!$t_ui->load(array('editor_code' => $va_tmp[0]))) { return false; } // screen $t_screen = new ca_editor_ui_screens(); if (!$t_screen->load(array('ui_id' => $t_ui->getPrimaryKey(), 'idno' => $va_tmp[1]))) { return false; } // placement $t_placement = new ca_editor_ui_bundle_placements(); if (!$t_placement->load(array('screen_id' => $t_screen->getPrimaryKey(), 'placement_code' => $va_tmp[2]))) { return false; } $va_ret = array($t_screen->getPrimaryKey(), $t_placement->getPrimaryKey()); CompositeCache::save($ps_key, $va_ret, 'ListAttrHideIfSelected'); return $va_ret; }
/** * Load standard UI (either system default or user-defined) for specified record and, optionally, record type * * @param mixed $pm_table_name_or_num Table name or number to load editor for. Values for $pm_table_name_or_num may be, for example: * 'ca_objects' = objects editor * 'ca_entities' = entities editor * .. etc .. * @param RequestHTTP $po_request The current request * @param int $pn_type_id Optional type_id * @param array $pa_options Options are: * editorPref = "cataloguing" to select UI using user's "cataloguing_<table_name>_editor_ui" preference, "quickadd" to use "quickadd_<table_name>_editor_ui" pref; default is "cataloguing" * @return ca_editor_uis instance loaded with default UI on success, false on failure */ public static function loadDefaultUI($pm_table_name_or_num, $po_request, $pn_type_id = null, $pa_options = null) { if (isset(ca_editor_uis::$s_default_ui_cache[$pm_table_name_or_num . '/' . $pn_type_id])) { return ca_editor_uis::$s_default_ui_cache[$pm_table_name_or_num . '/' . $pn_type_id]; } $o_dm = Datamodel::load(); if (is_numeric($pm_table_name_or_num)) { $t_instance = $o_dm->getInstanceByTableNum($pm_table_name_or_num, true); } else { $t_instance = $o_dm->getInstanceByTableName($pm_table_name_or_num, true); } if (!$t_instance) { return ca_editor_uis::$s_default_ui_cache[$pm_table_name_or_num . '/' . $pn_type_id] = false; } $vs_table_name = $t_instance->tableName(); $vn_table_num = $t_instance->tableNum(); if (!isset($pa_options['editorPref'])) { $pa_options['editorPref'] = 'cataloguing'; } switch ($pa_options['editorPref']) { case 'quickadd': $va_uis_by_type = $po_request->user->getPreference("quickadd_{$vs_table_name}_editor_ui"); break; default: $va_uis_by_type = $po_request->user->getPreference("cataloguing_{$vs_table_name}_editor_ui"); break; } $va_available_uis_by_type = $po_request->user->_getUIListByType($vn_table_num); $vn_type_id = $pn_type_id; if ($vn_type_id && $va_uis_by_type) { if (!is_array($va_uis_by_type)) { if (!isset($va_available_uis_by_type[$vn_type_id][$va_uis_by_type]) && !isset($va_available_uis_by_type['__all__'][$va_uis_by_type])) { $vn_type_id = null; } $va_uis_by_type = array(); } else { if (!isset($va_available_uis_by_type[$vn_type_id][$va_uis_by_type[$vn_type_id]]) && !isset($va_available_uis_by_type['__all__'][$va_uis_by_type[$vn_type_id]])) { $vn_type_id = null; } } } $t_ui = new ca_editor_uis(); // If table supports null types take type_id=null to be "none" rather than a signal to allow any type of editor if (!$vn_type_id && method_exists($t_instance, "getTypeFieldName") && (bool) $t_instance->getFieldInfo($t_instance->getTypeFieldName(), 'IS_NULL')) { $vn_type_id = '_NONE_'; } if (!$vn_type_id || !($vn_rc = $t_ui->load($va_uis_by_type[$vn_type_id]))) { $va_ui_ids = ca_editor_uis::getAvailableUIs($vn_table_num, $po_request, $vn_type_id, true); if (sizeof($va_ui_ids) == 0) { return ca_editor_uis::$s_default_ui_cache[$pm_table_name_or_num . '/' . $pn_type_id] = false; } $va_tmp = array_keys($va_ui_ids); if ($t_ui->load($va_tmp[0])) { return ca_editor_uis::$s_default_ui_cache[$pm_table_name_or_num . '/' . $pn_type_id] = $t_ui; } return ca_editor_uis::$s_default_ui_cache[$pm_table_name_or_num . '/' . $pn_type_id] = false; } return ca_editor_uis::$s_default_ui_cache[$pm_table_name_or_num . '/' . $pn_type_id] = $t_ui; }
/** * Initializes editor view with core set of values, loads model with record to be edited and selects user interface to use. * * @param $pa_options Array of options. Supported options are: * ui = The ui_id or editor_code value for the user interface to use. If omitted the default user interface is used. */ protected function _initView($pa_options = null) { // load required javascript AssetLoadManager::register('bundleableEditor'); AssetLoadManager::register('imageScroller'); AssetLoadManager::register('datePickerUI'); $t_ui = new ca_editor_uis(); if (!isset($pa_options['ui']) && !$pa_options['ui']) { $pa_options['ui'] = $this->request->user->getPreference("batch_ca_object_media_import_ui"); } if (isset($pa_options['ui']) && $pa_options['ui']) { if (is_numeric($pa_options['ui'])) { $t_ui->load((int) $pa_options['ui']); } if (!$t_ui->getPrimaryKey()) { $t_ui->load(array('editor_code' => $pa_options['ui'])); } } if (!$t_ui->getPrimaryKey()) { $t_ui = ca_editor_uis::loadDefaultUI('ca_objects', $this->request, null); } MetaTagManager::setWindowTitle(_t("Batch import media")); return array($t_ui); }