/** * get an object value * * @param string $name : the name of the value to get * @param string $parameters (optional) : parameters for the value to get * @return multidimentionnal array : the object values structure * @access public */ function getValue($name, $parameters = '') { $href = new CMS_href($this->_subfieldValues[0]->getValue()); switch ($name) { case 'validhref': return $href->hasValidHREF(); break; case 'hrefvalue': //get module codename $moduleCodename = CMS_poly_object_catalog::getModuleCodenameForField($this->_field->getID()); //set location $location = $this->_public ? RESOURCE_DATA_LOCATION_PUBLIC : RESOURCE_DATA_LOCATION_EDITED; return $href->getHTML(false, $moduleCodename, $location, false, true); break; case 'hreflabel': return io::htmlspecialchars($href->getLabel()); break; case 'hreftarget': return $href->getTarget(); break; case 'hreftype': return $href->getLinkType(); break; case 'popupWidth': $popup = $href->getPopup(); return $popup['width']; break; case 'popupHeight': $popup = $href->getPopup(); return $popup['height']; break; case 'hrefHTML': //get module codename $moduleCodename = CMS_poly_object_catalog::getModuleCodenameForField($this->_field->getID()); //set location $location = $this->_public ? RESOURCE_DATA_LOCATION_PUBLIC : RESOURCE_DATA_LOCATION_EDITED; //add link title (if any) if ($parameters) { $title = $parameters; //add title attribute to link $href->setAttributes(array('title' => io::htmlspecialchars($href->getLabel() . ' (' . $title . ')'))); } else { $title = false; //add title attribute to link $href->setAttributes(array('title' => io::htmlspecialchars($href->getLabel()))); } return $href->getHTML($title, $moduleCodename, $location); break; default: return parent::getValue($name, $parameters); break; } }
/** * get HTML admin (used to enter object values in admin) * * @param integer $fieldID, the current field id (only for poly object compatibility) * @param CMS_language $language, the current admin language * @param string prefixname : the prefix to use for post names * @return string : the html admin * @access public */ function getHTMLAdmin($fieldID, $language, $prefixName) { //get module codename $moduleCodename = CMS_poly_object_catalog::getModuleCodenameForField($this->_field->getID()); //is this field mandatory ? $mandatory = $this->_field->getValue('required') ? '<span class="atm-red">*</span> ' : ''; $desc = $this->getFieldDescription($language); if (POLYMOD_DEBUG) { $values = array(); foreach (array_keys($this->_subfieldValues) as $subFieldID) { if (is_object($this->_subfieldValues[$subFieldID])) { $values[$subFieldID] = sensitiveIO::ellipsis(strip_tags($this->_subfieldValues[$subFieldID]->getValue()), 50); } } $desc .= $desc ? '<br />' : ''; $desc .= '<span class="atm-red">Field : ' . $fieldID . ' - Value(s) : <ul>'; foreach ($values as $subFieldID => $value) { $desc .= '<li>' . $subFieldID . ' : ' . $value . '</li>'; } $desc .= '</ul></span>'; } $label = $desc ? '<span class="atm-help" ext:qtip="' . io::htmlspecialchars($desc) . '">' . $mandatory . $this->getFieldLabel($language) . '</span>' : $mandatory . $this->getFieldLabel($language); $ids = 'oembed-' . md5(mt_rand() . microtime()); $oembedURL = PATH_ADMIN_MODULES_WR . '/' . MOD_POLYMOD_CODENAME . '/oembed.php'; $loadingURL = PATH_ADMIN_IMAGES_WR . '/loading-old.gif'; $params = $this->getParamsValues(); $fields = array(); $fields[] = array('fieldLabel' => '<span class="atm-help" ext:qtip="' . io::htmlspecialchars($language->getMessage(self::MESSAGE_OBJECT_OEMBED_MEDIA_URL_DESC, false, MOD_POLYMOD_CODENAME)) . '">' . $language->getMessage(self::MESSAGE_OBJECT_OEMBED_MEDIA_URL, false, MOD_POLYMOD_CODENAME) . '</span>', 'xtype' => 'textfield', 'name' => 'polymodFieldsValue[' . $prefixName . $this->_field->getID() . '_0]', 'value' => $this->_subfieldValues[0]->getValue() ? sensitiveIO::decodeEntities($this->_subfieldValues[0]->getValue()) : '', 'enableKeyEvents' => true, 'listeners' => array('blur' => array('fn' => sensitiveIO::sanitizeJSString('function(el){ /*call server for oembed HTML content*/ Ext.get(\'' . $ids . '-view\').update(\'<img src="' . $loadingURL . '" />\'); Automne.server.call({ url: \'' . $oembedURL . '\', scope: this, fcnCallback: function(response, options, htmlResponse){ Ext.get(\'' . $ids . '-view\').update(htmlResponse); }, params: { module: \'' . $moduleCodename . '\', url: el.getValue(), width: 600, height: 250, key: \'' . $params['embedlyKey'] . '\' } }); }', false, false), 'buffer' => 600))); $fields[] = array('xtype' => 'panel', 'border' => false, 'html' => '<div id="' . $ids . '-view" style="overflow:auto;text-align:center;">' . ($this->getValue('hasValue') ? $this->getValue('html', '600,250') : '') . '</div>'); $return = array(); $return = array('title' => $label, 'xtype' => 'fieldset', 'autoHeight' => true, 'defaultType' => 'textfield', 'defaults' => array('anchor' => '97%', 'allowBlank' => !$this->_field->getValue('required')), 'items' => $fields); return $return; }
/** * get HTML admin (used to enter object values in admin) * * @param CMS_language $language, the current admin language * @param string prefixname : the prefix to use for post names * @return string : the html admin * @access public */ function getHTMLAdmin($fieldID, $language, $prefixName) { global $cms_user; $params = $this->getParamsValues(); //is this field mandatory ? $mandatory = $this->_field->getValue('required') ? '<span class="atm-red">*</span> ' : ''; $desc = $this->getFieldDescription($language); if (POLYMOD_DEBUG) { $values = array(); foreach (array_keys($this->_subfieldValues) as $subFieldID) { if (is_object($this->_subfieldValues[$subFieldID])) { $values[$subFieldID] = sensitiveIO::ellipsis(strip_tags($this->_subfieldValues[$subFieldID]->getValue()), 50); } } $desc .= $desc ? '<br />' : ''; $desc .= '<span class="atm-red">Field : ' . $fieldID . ' - Value(s) : <ul>'; foreach ($values as $subFieldID => $value) { $desc .= '<li>' . $subFieldID . ' : ' . $value . '</li>'; } $desc .= '</ul></span>'; } $label = $desc ? '<span class="atm-help" ext:qtip="' . io::htmlspecialchars($desc) . '">' . $mandatory . $this->getFieldLabel($language) . '</span>' : $mandatory . $this->getFieldLabel($language); $listId = 'list' . md5(mt_rand() . microtime()); $listId2 = 'list' . md5(mt_rand() . microtime()); if ($params['editable']) { //get object definition $objectDef = $this->getObjectDefinition(); $associatedItems = array(); foreach (array_keys($this->_subfieldValues) as $subFieldID) { if (is_object($this->_subfieldValues[$subFieldID])) { $associatedItems[$this->_subfieldValues[$subFieldID]->getValue()] = $this->_subfieldValues[$subFieldID]->getValue(); } } $items = array(); $editURL = PATH_ADMIN_MODULES_WR . '/' . MOD_POLYMOD_CODENAME . '/item.php'; $associateURL = PATH_ADMIN_MODULES_WR . '/' . MOD_POLYMOD_CODENAME . '/associate-items.php'; $searchURL = PATH_ADMIN_MODULES_WR . '/' . MOD_POLYMOD_CODENAME . '/search.php'; $moduleCodename = CMS_poly_object_catalog::getModuleCodenameForField($this->_field->getID()); if (!$cms_user->hasModuleClearance($moduleCodename, CLEARANCE_MODULE_EDIT)) { define("MESSAGE_ERROR_MODULE_RIGHTS", 570); $module = CMS_modulesCatalog::getByCodename($moduleCodename); $items[] = array('width' => '100%', 'layout' => 'fit', 'border' => false, 'bodyStyle' => 'margin:5px 0 3px 0', 'html' => $language->getMessage(MESSAGE_ERROR_MODULE_RIGHTS, array($module->getLabel($language)))); } else { $items[] = array('width' => '100%', 'layout' => 'fit', 'border' => false, 'bodyStyle' => 'margin:5px 0 3px 0', 'html' => $language->getMessage(self::MESSAGE_MULTI_OBJECT_LIST_ZONE, array($objectDef->getObjectLabel($language)), MOD_POLYMOD_CODENAME)); $items[] = array('xtype' => "multiselect2", 'hideLabel' => true, 'id' => $listId2, 'name' => 'polymodFieldsValue[list' . $prefixName . $this->_field->getID() . '_0]', 'allowBlank' => !$this->_field->getValue('required'), 'valueField' => 'id', 'displayField' => 'label', 'tpl' => sensitiveIO::sanitizeJSString('<tpl for="rows"> <dl> <tpl for="parent.columns"> <dt style="width:100%;text-align:{align};white-space:normal;" class="MultiselectDD"> <div unselectable="on" class="atm-result x-unselectable" id="object-{parent.id}"> <div class="atm-title"> <table> <tr> <td class="atm-label" ext:qtip="ID: {parent.id}">{parent.status} {parent.label}</td> <td class="atm-pubrange">{parent.pubrange}</td> <td class="atm-drag"> </td> </tr> </table> </div> <div class="atm-description">{parent.description}<div style="clear:both;height:1px;"> </div></div> </div> </dt> </tpl> <div class="x-clear"></div> </dl> </tpl>'), 'store' => array('xtype' => 'atmJsonstore', 'root' => 'results', 'totalProperty' => 'total', 'url' => $searchURL, 'id' => 'id', 'remoteSort' => true, 'baseParams' => array('module' => $moduleCodename, 'objectId' => $this->_objectID), 'fields' => array('id', 'status', 'pubrange', 'label', 'description', 'locked', 'deleted', 'previz', 'edit')), 'value' => implode(',', $associatedItems), 'width' => 'auto', 'height' => 'auto', 'cls' => 'x-list-body', 'tbar' => array(!$params['doNotUseExternalSubObjects'] ? array('text' => $language->getMessage(self::MESSAGE_PAGE_ACTION_ASSOCIATE), 'tooltip' => $language->getMessage(self::MESSAGE_MULTI_OBJECT_CHOOSE_ELEMENT, array($objectDef->getObjectLabel($language)), MOD_POLYMOD_CODENAME), 'handler' => sensitiveIO::sanitizeJSString('function(button){ var windowId = \'module' . $moduleCodename . 'AssociateWindow\'; /*create window element*/ var window = new Automne.Window({ id: windowId, objectId: \'\', autoLoad: { url: \'' . $associateURL . '\', params: { winId: windowId, module: \'' . $moduleCodename . '\', type: \'' . $this->_objectID . '\' }, nocache: true, scope: this }, modal: true, width: 750, height: 580, animateTarget: button, listeners:{\'close\':function(window){ var cmp = Ext.getCmp(\'' . $listId2 . '\'); if (window.selectedItems && window.selectedItems.split) { var values = cmp.getRawValue(); var items = window.selectedItems.split(\',\'); for (var i = 0, itemsLen = items.length; i < itemsLen; i++) { if (values.indexOf(items[i]) === -1) { values.unshift(items[i]); } } cmp.setValue(values.join(cmp.delimiter)); } }} }); /*display window*/ window.show(button.getEl()); }', false, false), 'scope' => 'this') : '', array('text' => $language->getMessage(self::MESSAGE_PAGE_ACTION_DESASSOCIATE), 'tooltip' => $language->getMessage(self::MESSAGE_MULTI_OBJECT_DISASSOCIATE_ELEMENT, false, MOD_POLYMOD_CODENAME), 'handler' => sensitiveIO::sanitizeJSString('function(button){ var cmp = Ext.getCmp(\'' . $listId2 . '\'); var selected = cmp.view.getSelectedRecords(); if (!selected.length || selected.length > 1) { Automne.message.popup({ msg: \'' . $language->getJSMessage(self::MESSAGE_MULTI_OBJECT_SELECT_BEFORE, false, MOD_POLYMOD_CODENAME) . '\', buttons: Ext.MessageBox.OKCANCEL, animEl: button.getEl(), closable: false, icon: Ext.MessageBox.INFO }); return; } Automne.message.popup({ msg: \'' . io::htmlspecialchars($language->getMessage(self::MESSAGE_PAGE_ACTION_DESASSOCIATE_CONFIRM, array($objectDef->getObjectLabel($language)), MOD_POLYMOD_CODENAME)) . '\', buttons: Ext.MessageBox.OKCANCEL, animEl: button.getEl(), closable: false, icon: Ext.MessageBox.WARNING, scope: this, fn: function (button) { if (button == \'ok\') { var cmp = Ext.getCmp(\'' . $listId2 . '\'); var selected = cmp.view.getSelectedRecords(); if (!selected.length || selected.length > 1) { return; } var objectId = selected[0].id; var values = cmp.getRawValue(); values.remove(objectId); cmp.setValue(values.join(cmp.delimiter)); if (\'' . $listId . '\') { var list = Ext.getCmp(\'' . $listId . '\'); if (list) { list.store.baseParams.removeIds = values.join(cmp.delimiter); list.store.load(); } } } } }); }', false, false), 'scope' => 'this'), '->', array('text' => $language->getMessage(self::MESSAGE_PAGE_ACTION_MODIFIY), 'tooltip' => $language->getMessage(self::MESSAGE_MULTI_OBJECT_EDIT_ELEMENT, false, MOD_POLYMOD_CODENAME), 'iconCls' => 'atm-pic-modify', 'handler' => sensitiveIO::sanitizeJSString('function(button){ var cmp = Ext.getCmp(\'' . $listId2 . '\'); var selected = cmp.view.getSelectedRecords(); if (!selected.length || selected.length > 1) { Automne.message.popup({ msg: \'' . $language->getJSMessage(self::MESSAGE_MULTI_OBJECT_SELECT_BEFORE, false, MOD_POLYMOD_CODENAME) . '\', buttons: Ext.MessageBox.OKCANCEL, animEl: button.getEl(), closable: false, icon: Ext.MessageBox.INFO }); return; } var objectId = selected[0].id; var windowId = \'module' . $moduleCodename . 'EditWindow\'+objectId; /*create window element*/ var window = new Automne.Window({ id: windowId, objectId: objectId, autoLoad: { url: \'' . $editURL . '\', params: { winId: windowId, module: \'' . $moduleCodename . '\', type: \'' . $this->_objectID . '\', item: objectId }, nocache: true, scope: this }, modal: true, width: 750, height: 580, animateTarget: button, listeners:{\'close\':function(window){ var cmp = Ext.getCmp(\'' . $listId2 . '\'); cmp.store.reload(); }} }); /*display window*/ window.show(button.getEl()); }', false, false), 'scope' => 'this'), array('text' => $language->getMessage(self::MESSAGE_PAGE_ACTION_NEW), 'tooltip' => $language->getMessage(self::MESSAGE_MULTI_OBJECT_CREATE_ZONE, array($objectDef->getObjectLabel($language)), MOD_POLYMOD_CODENAME), 'iconCls' => 'atm-pic-add', 'handler' => sensitiveIO::sanitizeJSString('function(button){ var objectId = \'create' . $moduleCodename . $this->_objectID . '\'; var windowId = \'module' . $moduleCodename . 'EditWindow\'+objectId; /*create window element*/ var window = new Automne.Window({ id: windowId, objectId: \'\', autoLoad: { url: \'' . $editURL . '\', params: { winId: windowId, module: \'' . $moduleCodename . '\', type: \'' . $this->_objectID . '\' }, nocache: true, scope: this }, modal: true, width: 750, height: 580, animateTarget: button, listeners:{\'close\':function(window){ var cmp = Ext.getCmp(\'' . $listId2 . '\'); if (window.objectId) { var values = cmp.getRawValue(); values.unshift(window.objectId); cmp.setValue(values.join(cmp.delimiter)); } }} }); /*display window*/ window.show(button.getEl()); }', false, false), 'scope' => 'this')), 'ddReorder' => true); } $return = array('title' => $label, 'xtype' => 'fieldset', 'autoHeight' => true, 'layout' => 'form', 'defaults' => array('anchor' => '97%'), 'items' => $items); return $return; } else { $return = array('allowBlank' => !$this->_field->getValue('required'), 'fieldLabel' => $label, 'name' => 'polymodFieldsValue[list' . $prefixName . $this->_field->getID() . '_0]'); //get searched objects conditions $searchedObjects = is_array($params['searchedObjects']) ? $params['searchedObjects'] : array(); $objectsNames = CMS_poly_object_catalog::getListOfNamesForObject($this->_objectID, false, $searchedObjects); $associatedItems = $availableItems = array(); if (is_array($objectsNames) && $objectsNames) { foreach (array_keys($this->_subfieldValues) as $subFieldID) { if (is_object($this->_subfieldValues[$subFieldID])) { $associatedItems[$this->_subfieldValues[$subFieldID]->getValue()] = $this->_subfieldValues[$subFieldID]->getValue(); } } foreach ($objectsNames as $id => $name) { $availableItems[] = array($id, $name); } } else { $availableItems[] = array('', $language->getMessage(self::MESSAGE_EMPTY_OBJECTS_SET)); $return['disabled'] = true; } /*$return['xtype'] = 'multiselect'; $return['dataFields'] = array('id', 'label'); $return['data'] = $availableItems; $return['value'] = implode(',',$associatedItems); $return['valueField'] = "id"; $return['displayField'] = "label"; $return['width'] = '100%';*/ $return['xtype'] = 'superboxselect'; $return['dataFields'] = array('id', 'label'); $return['store'] = $availableItems; $return['mode'] = 'local'; $return['value'] = implode(',', $associatedItems); $return['valueField'] = "id"; $return['displayField'] = "label"; $return['width'] = '100%'; $return['stackItems'] = true; return $return; } }
/** * Destroy this object, in DB and filesystem if needed * Destroy title label also * * @return boolean true on success, false on failure * @access public */ function destroy() { if ($this->_fieldID) { //delete all files of objects for this field $module = CMS_poly_object_catalog::getModuleCodenameForField($this->_fieldID); $filesDir = new CMS_file(PATH_MODULES_FILES_FS . '/' . $module, CMS_file::FILE_SYSTEM, CMS_file::TYPE_DIRECTORY); if ($filesDir->exists()) { //search all files of this field $filesList = $filesDir->getFileList(PATH_MODULES_FILES_FS . '/' . $module . '/*_f' . $this->_fieldID . '_*'); //then delete them foreach ($filesList as $aFile) { if (!CMS_file::deleteFile($aFile['name'])) { $this->raiseError("Can't delete file " . $aFile['name'] . " for field : " . $this->_fieldID); return false; } } } //delete all datas of objects for this field $tables = array('mod_subobject_date_deleted', 'mod_subobject_date_edited', 'mod_subobject_date_public', 'mod_subobject_integer_deleted', 'mod_subobject_integer_edited', 'mod_subobject_integer_public', 'mod_subobject_string_deleted', 'mod_subobject_string_edited', 'mod_subobject_string_public', 'mod_subobject_text_deleted', 'mod_subobject_text_edited', 'mod_subobject_text_public'); foreach ($tables as $aTable) { $sql = "\n\t\t\t\t\tdelete from\n\t\t\t\t\t\t" . $aTable . "\n\t\t\t\t\twhere\n\t\t\t\t\t\tobjectFieldID = '" . $this->_fieldID . "'\n\t\t\t\t"; $q = new CMS_query($sql); if ($q->hasError()) { $this->raiseError("Can't delete datas of table " . $aTable . " for field : " . $this->_fieldID); return false; } } //delete title label object if (sensitiveIO::IsPositiveInteger($this->_objectFieldValues["labelID"])) { $label = new CMS_object_i18nm($this->_objectFieldValues["labelID"]); $label->destroy(); } //delete field DB record $sql = "\n\t\t\t\tdelete from\n\t\t\t\t\tmod_object_field \n\t\t\t\twhere\n\t\t\t\t\tid_mof='" . $this->_fieldID . "'\n\t\t\t"; $q = new CMS_query($sql); if ($q->hasError()) { $this->raiseError("Can't delete datas of table mod_object_field for field : " . $this->_fieldID); return false; } //unset fields catalog in cache CMS_cache::clearTypeCache('atm-polymod-structure'); //Clear polymod cache //CMS_cache::clearTypeCacheByMetas('polymod', array('module' => CMS_poly_object_catalog::getModuleCodenameForField($this->_fieldID))); CMS_cache::clearTypeCache('polymod'); } //unset fields catalog in cache CMS_cache::clearTypeCacheByMetas('atm-polymod-structure', array('type' => 'fields')); //finally destroy object instance unset($this); return true; }
/** * set object Values * * @param array $values : the POST result values * @param string prefixname : the prefix used for post names * @return boolean true on success, false on failure * @access public */ function setValues($values, $prefixName) { $params = $this->getParamsValues(); if (!$params['html']) { //remove html characters if any then convert line breaks to <br /> tags $value = isset($values[$prefixName . $this->_field->getID() . '_0']) ? nl2br(strip_tags(io::htmlspecialchars($values[$prefixName . $this->_field->getID() . '_0']))) : ''; } else { $value = CMS_textEditor::parseOuterContent($values[$prefixName . $this->_field->getID() . '_0'], CMS_poly_object_catalog::getModuleCodenameForField($this->_field->getID())); } if (!$this->_subfieldValues[0]->setValue($value)) { return false; } return true; }
/** * Get field parameters as an array structure used for export * * @return array : the object array structure * @access public */ public function asArray() { $aParameters = parent::asArray(); $moduleCodename = CMS_poly_object_catalog::getModuleCodenameForField($this->_field->getID()); $module = CMS_modulesCatalog::getByCodename($moduleCodename); //convert definitions $aParameters['emailSubject'] = $module->convertDefinitionString($aParameters['emailSubject'], true); $aParameters['emailBody']['html'] = $module->convertDefinitionString($aParameters['emailBody']['html'], true); $aParameters['emailBody']['pageURL'] = $module->convertDefinitionString($aParameters['emailBody']['pageURL'], true); return $aParameters; }
/** * get HTML admin (used to enter object values in admin) * * @param CMS_language $language, the current admin language * @param string prefixname : the prefix to use for post names * @return string : the html admin * @access public */ function getHTMLAdmin($fieldID, $language, $prefixName) { global $cms_user; if (is_object($this->_objectFieldsDefinition[$fieldID])) { if (is_a($this->_objectValues[$fieldID], 'CMS_poly_object')) { //is this field mandatory ? $mandatory = $this->_objectFieldsDefinition[$fieldID]->getValue('required') ? '<span class="atm-red">*</span> ' : ''; $desc = $this->_objectFieldsDefinition[$fieldID]->getFieldDescription($language); $params = array(); $params['doNotUseExternalSubObjects'] = false; if (POLYMOD_DEBUG) { $desc .= $desc ? '<br />' : ''; $desc .= '<span class="atm-red">Field : ' . $fieldID . ' - Value : <ul>'; $desc .= '<li>' . $fieldID . ' : ' . $this->_polyObjectValues[$fieldID]->getValue() . '</li>'; $desc .= '</ul></span>'; } $label = $desc ? '<span class="atm-help" ext:qtip="' . io::htmlspecialchars($desc) . '">' . $mandatory . $this->_objectFieldsDefinition[$fieldID]->getLabel($language) . '</span>' : $mandatory . $this->_objectFieldsDefinition[$fieldID]->getLabel($language); $listId = 'list' . md5(mt_rand() . microtime()); //get object definition $objectDef = $this->_objectFieldsDefinition[$fieldID]->getTypeObject(true); $associatedItems = array(); if (isset($this->_polyObjectValues[$fieldID]) && is_object($this->_polyObjectValues[$fieldID]) && !is_null($this->_polyObjectValues[$fieldID]->getValue())) { $associatedItem = $this->_polyObjectValues[$fieldID]->getValue(); } else { $associatedItem = ''; } $items = array(); $editURL = PATH_ADMIN_MODULES_WR . '/' . MOD_POLYMOD_CODENAME . '/item.php'; $associateURL = PATH_ADMIN_MODULES_WR . '/' . MOD_POLYMOD_CODENAME . '/associate-items.php'; $searchURL = PATH_ADMIN_MODULES_WR . '/' . MOD_POLYMOD_CODENAME . '/search.php'; $moduleCodename = CMS_poly_object_catalog::getModuleCodenameForField($this->_objectFieldsDefinition[$fieldID]->getID()); $objectID = $this->_objectValues[$fieldID]->getObjectID(); if (!$cms_user->hasModuleClearance($moduleCodename, CLEARANCE_MODULE_EDIT)) { define("MESSAGE_ERROR_MODULE_RIGHTS", 570); $module = CMS_modulesCatalog::getByCodename($moduleCodename); $items[] = array('width' => '100%', 'layout' => 'fit', 'border' => false, 'bodyStyle' => 'margin:5px 0 3px 0', 'html' => $language->getMessage(MESSAGE_ERROR_MODULE_RIGHTS, array($module->getLabel($language)))); } else { $items[] = array('width' => '100%', 'layout' => 'fit', 'border' => false, 'bodyStyle' => 'margin:5px 0 3px 0', 'html' => $language->getMessage(self::MESSAGE_POLYOBJECT_OBJECT_LIST_ZONE, array($objectDef->getObjectLabel($language)), MOD_POLYMOD_CODENAME)); $items[] = array('xtype' => "multiselect2", 'hideLabel' => true, 'id' => $listId, 'name' => 'polymodFieldsValue[' . $prefixName . $this->_objectFieldsDefinition[$fieldID]->getID() . '_0]', 'allowBlank' => !$this->_objectFieldsDefinition[$fieldID]->getValue('required'), 'valueField' => 'id', 'displayField' => 'label', 'listeners' => array('valid' => sensitiveIO::sanitizeJSString('function(field) { if (field.getValue()) { Ext.getCmp(\'btnAssociate' . $listId . '\').disable(); Ext.getCmp(\'btnDesassociate' . $listId . '\').enable(); Ext.getCmp(\'btnModify' . $listId . '\').enable(); Ext.getCmp(\'btnNew' . $listId . '\').disable(); } else { Ext.getCmp(\'btnAssociate' . $listId . '\').enable(); Ext.getCmp(\'btnDesassociate' . $listId . '\').disable(); Ext.getCmp(\'btnModify' . $listId . '\').disable(); Ext.getCmp(\'btnNew' . $listId . '\').enable(); } if (field.store.getAt(0)) { if (field.store.getAt(0).data.locked) { Ext.getCmp(\'btnModify' . $listId . '\').disable(); } } return true; }', false, false), 'render' => sensitiveIO::sanitizeJSString('function(field) { if (field.getValue()) { Ext.getCmp(\'btnAssociate' . $listId . '\').disable(); Ext.getCmp(\'btnDesassociate' . $listId . '\').enable(); Ext.getCmp(\'btnModify' . $listId . '\').enable(); Ext.getCmp(\'btnNew' . $listId . '\').disable(); } else { Ext.getCmp(\'btnAssociate' . $listId . '\').enable(); Ext.getCmp(\'btnDesassociate' . $listId . '\').disable(); Ext.getCmp(\'btnModify' . $listId . '\').disable(); Ext.getCmp(\'btnNew' . $listId . '\').enable(); } if (field.store.getAt(0)) { if (field.store.getAt(0).data.locked) { Ext.getCmp(\'btnModify' . $listId . '\').disable(); } } return true; }', false, false)), 'tpl' => sensitiveIO::sanitizeJSString('<tpl for="rows"> <dl> <tpl for="parent.columns"> <dt style="width:100%;text-align:{align};" class="MultiselectDD"> <div unselectable="on" class="atm-result x-unselectable" id="object-{parent.id}"> <div class="atm-title"> <table> <tr> <td class="atm-label" ext:qtip="ID: {parent.id}">{parent.status} {parent.label}</td> <td class="atm-pubrange">{parent.pubrange}</td> </tr> </table> </div> <div class="atm-description">{parent.description}<div style="clear:both;height:1px;"> </div></div> </div> </dt> </tpl> <div class="x-clear"></div> </dl> </tpl>'), 'scripts' => true, 'store' => array('xtype' => 'atmJsonstore', 'root' => 'results', 'totalProperty' => 'total', 'url' => $searchURL, 'id' => 'id', 'remoteSort' => true, 'baseParams' => array('module' => $moduleCodename, 'objectId' => $objectID), 'fields' => array('id', 'status', 'pubrange', 'label', 'description', 'locked', 'deleted', 'previz', 'edit')), 'value' => $associatedItem, 'width' => 'auto', 'height' => 'auto', 'cls' => 'x-list-body', 'tbar' => array(array('id' => 'btnAssociate' . $listId, 'text' => $language->getMessage(self::MESSAGE_PAGE_ACTION_ASSOCIATE), 'tooltip' => $language->getMessage(self::MESSAGE_POLYOBJECT_OBJECT_CHOOSE_ELEMENT, array($objectDef->getObjectLabel($language)), MOD_POLYMOD_CODENAME), 'handler' => sensitiveIO::sanitizeJSString('function(button){ var windowId = \'module' . $moduleCodename . 'AssociateWindow\'; /*create window element*/ var window = new Automne.Window({ id: windowId, objectId: \'\', autoLoad: { url: \'' . $associateURL . '\', params: { winId: windowId, module: \'' . $moduleCodename . '\', type: \'' . $objectID . '\', unique: 1 }, nocache: true, scope: this }, modal: true, width: 750, height: 580, animateTarget: button, listeners:{\'close\':function(window){ var cmp = Ext.getCmp(\'' . $listId . '\'); if (window.selectedItem) { cmp.setValue(window.selectedItem); } }} }); /*display window*/ window.show(button.getEl()); }', false, false), 'scope' => 'this'), array('id' => 'btnDesassociate' . $listId, 'text' => $language->getMessage(self::MESSAGE_PAGE_ACTION_DESASSOCIATE), 'tooltip' => $language->getMessage(self::MESSAGE_POLYOBJECT_OBJECT_DISASSOCIATE_ELEMENT, false, MOD_POLYMOD_CODENAME), 'handler' => sensitiveIO::sanitizeJSString('function(button){ var cmp = Ext.getCmp(\'' . $listId . '\'); var selected = cmp.view.getSelectedRecords(); if (!selected.length || selected.length > 1) { Automne.message.popup({ msg: \'' . $language->getJSMessage(self::MESSAGE_POLYOBJECT_OBJECT_SELECT_BEFORE, false, MOD_POLYMOD_CODENAME) . '\', buttons: Ext.MessageBox.OKCANCEL, animEl: button.getEl(), closable: false, icon: Ext.MessageBox.INFO }); return; } Automne.message.popup({ msg: \'' . io::htmlspecialchars($language->getMessage(self::MESSAGE_PAGE_ACTION_DESASSOCIATE_CONFIRM, array($objectDef->getObjectLabel($language)), MOD_POLYMOD_CODENAME)) . '\', buttons: Ext.MessageBox.OKCANCEL, animEl: button.getEl(), closable: false, icon: Ext.MessageBox.WARNING, scope: this, fn: function (button) { if (button == \'ok\') { var cmp = Ext.getCmp(\'' . $listId . '\'); var selected = cmp.view.getSelectedRecords(); if (!selected.length || selected.length > 1) { return; } var objectId = selected[0].id; var values = cmp.getRawValue(); values.remove(objectId); cmp.setValue(values.join(cmp.delimiter)); if (cmp.getValue()) { Ext.getCmp(\'btnAssociate' . $listId . '\').disable(); Ext.getCmp(\'btnDesassociate' . $listId . '\').enable(); Ext.getCmp(\'btnModify' . $listId . '\').enable(); Ext.getCmp(\'btnNew' . $listId . '\').disable(); } else { Ext.getCmp(\'btnAssociate' . $listId . '\').enable(); Ext.getCmp(\'btnDesassociate' . $listId . '\').disable(); Ext.getCmp(\'btnModify' . $listId . '\').disable(); Ext.getCmp(\'btnNew' . $listId . '\').enable(); } } } }); }', false, false), 'scope' => 'this'), '->', array('id' => 'btnModify' . $listId, 'text' => $language->getMessage(self::MESSAGE_PAGE_ACTION_MODIFIY), 'tooltip' => $language->getMessage(self::MESSAGE_POLYOBJECT_OBJECT_EDIT_ELEMENT, false, MOD_POLYMOD_CODENAME), 'iconCls' => 'atm-pic-modify', 'handler' => sensitiveIO::sanitizeJSString('function(button){ var cmp = Ext.getCmp(\'' . $listId . '\'); var selected = cmp.view.getSelectedRecords(); if (!selected.length || selected.length > 1) { Automne.message.popup({ msg: \'' . $language->getJSMessage(self::MESSAGE_POLYOBJECT_OBJECT_SELECT_BEFORE, false, MOD_POLYMOD_CODENAME) . '\', buttons: Ext.MessageBox.OKCANCEL, animEl: button.getEl(), closable: false, icon: Ext.MessageBox.INFO }); return; } var objectId = selected[0].id; var windowId = \'module' . $moduleCodename . 'EditWindow\'+objectId; /*create window element*/ var window = new Automne.Window({ id: windowId, objectId: objectId, autoLoad: { url: \'' . $editURL . '\', params: { winId: windowId, module: \'' . $moduleCodename . '\', type: \'' . $objectID . '\', item: objectId }, nocache: true, scope: this }, modal: true, width: 750, height: 580, animateTarget: button, listeners:{\'close\':function(window){ var cmp = Ext.getCmp(\'' . $listId . '\'); cmp.store.reload(); }} }); /*display window*/ window.show(button.getEl()); }', false, false), 'scope' => 'this'), array('id' => 'btnNew' . $listId, 'text' => $language->getMessage(self::MESSAGE_PAGE_ACTION_NEW), 'tooltip' => $language->getMessage(self::MESSAGE_POLYOBJECT_OBJECT_CREATE_ZONE, array($objectDef->getObjectLabel($language)), MOD_POLYMOD_CODENAME), 'iconCls' => 'atm-pic-add', 'handler' => sensitiveIO::sanitizeJSString('function(button){ var objectId = \'create\'; var windowId = \'module' . $moduleCodename . 'EditWindow\'+objectId; /*create window element*/ var window = new Automne.Window({ id: windowId, objectId: \'\', autoLoad: { url: \'' . $editURL . '\', params: { winId: windowId, module: \'' . $moduleCodename . '\', type: \'' . $objectID . '\' }, nocache: true, scope: this }, modal: true, width: 750, height: 580, animateTarget: button, listeners:{\'close\':function(window){ var cmp = Ext.getCmp(\'' . $listId . '\'); if (window.objectId) { var values = cmp.getRawValue(); values.unshift(window.objectId); cmp.setValue(values.join(cmp.delimiter)); } }} }); /*display window*/ window.show(button.getEl()); }', false, false), 'scope' => 'this')), 'ddReorder' => true); } $return = array('title' => $label, 'xtype' => 'fieldset', 'autoHeight' => true, 'layout' => 'form', 'defaults' => array('anchor' => '97%'), 'items' => $items); return $return; } else { //return html for other type of objects fields return $this->_objectValues[$fieldID]->getHTMLAdmin($fieldID, $language, $prefixName); } } else { return false; } }
/** * Return a list of all objects names of given type * * @param boolean $public are the needed datas public ? /!\ Does not apply for this type of object * @param array $searchConditions, search conditions to add. /!\ Does not apply for this type of object * @return array(integer objectID => string objectName) * @access public * @static */ function getListOfNamesForObject($public = false, $searchConditions = array(), $restrictToUsedCat = true) { global $cms_language; $module = CMS_poly_object_catalog::getModuleCodenameForField($this->_field->getID()); if (APPLICATION_ENFORCES_ACCESS_CONTROL && !$public) { $editableOnly = CLEARANCE_MODULE_EDIT; } else { $editableOnly = CLEARANCE_MODULE_VIEW; } $a_all_categories = $this->getAllCategoriesAsArray($cms_language, $restrictToUsedCat, $module, $editableOnly); $a_all_categories[CMS_moduleCategory::LINEAGE_PARK_POSITION] = '[' . $cms_language->getMessage(self::MESSAGE_OBJECT_CATEGORIES_FIELD_WITHOUT_CATEGORIES, array($this->_field->getLabel($cms_language)), MOD_POLYMOD_CODENAME) . ']'; return $a_all_categories; }
/** * get an object value * * @param string $name : the name of the value to get * @param string $parameters (optional) : parameters for the value to get * @return multidimentionnal array : the object values structure * @access public */ function getValue($name, $parameters = '') { switch ($name) { case 'label': return $this->getLabel(); break; case 'image': case 'imageZoom': if ($name == 'image') { $fieldIndex = 0; } else { $fieldIndex = 2; } if ($this->_subfieldValues[$fieldIndex]->getValue() && $parameters) { @(list($x, $y) = explode(',', str_replace(';', ',', $parameters))); if (io::isPositiveInteger($x) && $x < $this->getValue($name . 'Width') || io::isPositiveInteger($y) && $y < $this->getValue($name . 'Height')) { //get module codename $crop = $x && $y ? 1 : 0; //get module codename $moduleCodename = CMS_poly_object_catalog::getModuleCodenameForField($this->_field->getID()); //set location $location = $this->isPublic() ? RESOURCE_DATA_LOCATION_PUBLIC : RESOURCE_DATA_LOCATION_EDITED; //resized image path $pathInfo = pathinfo($this->_subfieldValues[$fieldIndex]->getValue()); $resizedImage = $pathInfo['filename'] . '-' . $x . '-' . $y . ($crop ? '-c' : '') . '.' . $pathInfo['extension']; //resized image path $resizedImagepathFS = PATH_MODULES_FILES_FS . '/' . $moduleCodename . '/' . $location . '/' . $resizedImage; //if file already exists, no need to resize file send it if (file_exists($resizedImagepathFS)) { return $this->getValue('imagePath') . '/' . $resizedImage; } else { return CMS_websitesCatalog::getCurrentDomain() . PATH_REALROOT_WR . '/image-file' . (!STRIP_PHP_EXTENSION ? '.php' : '') . '?image=' . $this->_subfieldValues[$fieldIndex]->getValue() . '&module=' . $moduleCodename . '&x=' . $x . '&y=' . $y . '&crop=' . $crop . ($location != RESOURCE_DATA_LOCATION_PUBLIC ? '&location=' . $location : ''); } } } if ($this->_subfieldValues[$fieldIndex]->getValue()) { return $this->getValue('imagePath') . '/' . $this->_subfieldValues[$fieldIndex]->getValue(); } return ''; break; case 'imageHTML': //get module codename $moduleCodename = CMS_poly_object_catalog::getModuleCodenameForField($this->_field->getID()); //set location $location = $this->isPublic() ? RESOURCE_DATA_LOCATION_PUBLIC : RESOURCE_DATA_LOCATION_EDITED; //link content $img = ''; if ($parameters) { $img = $parameters; } elseif ($this->_subfieldValues[0]->getValue()) { //bug 1380 $img = '<img src="' . $this->getValue('image') . '" alt="' . $this->_subfieldValues[1]->getValue() . '" />'; } //add link to zoom if any if ($img && $this->_subfieldValues[2]->getValue()) { $href = CMS_websitesCatalog::getCurrentDomain() . PATH_REALROOT_WR . "/" . self::OBJECT_IMAGE_POPUP_FILE . '?' . ($location != RESOURCE_DATA_LOCATION_PUBLIC ? 'location=' . RESOURCE_DATA_LOCATION_EDITED . '&' : '') . 'file=' . $this->_subfieldValues[2]->getValue() . '&label=' . urlencode($this->_subfieldValues[1]->getValue()) . '&module=' . $moduleCodename; // file informations $popup = OPEN_ZOOMIMAGE_IN_POPUP ? ' onclick="javascript:CMS_openPopUpImage(\'' . addslashes($href) . '\');return false;"' : ''; $img = '<a target="_blank" rel="atm-enlarge" href="' . $href . '"' . $popup . ' title="' . $this->_subfieldValues[1]->getValue() . '">' . $img . '</a>'; } return $img; break; case 'imageLabel': return $this->_subfieldValues[1]->getValue(); break; case 'imageName': return $this->_subfieldValues[0]->getValue(); break; case 'imageZoomName': return $this->_subfieldValues[2]->getValue(); break; case 'imagePath': //get module codename $moduleCodename = CMS_poly_object_catalog::getModuleCodenameForField($this->_field->getID()); //set location $location = $this->isPublic() ? RESOURCE_DATA_LOCATION_PUBLIC : RESOURCE_DATA_LOCATION_EDITED; $altDomain = $this->getAlternativeDomain(); // If we are serving a public file and there is an alternative domain set up, change the url if ($this->isPublic() && $altDomain) { return $altDomain . PATH_MODULES_FILES_WR . '/' . $moduleCodename . '/' . $location; } else { return CMS_websitesCatalog::getCurrentDomain() . PATH_MODULES_FILES_WR . '/' . $moduleCodename . '/' . $location; } break; case 'imageMaxWidth': //get field parameters $params = $this->getParamsValues(); return $params['maxWidth'] ? $params['maxWidth'] : ''; break; case 'imageMaxHeight': //get field parameters $params = $this->getParamsValues(); return $params['maxHeight'] ? $params['maxHeight'] : ''; break; case 'imageWidth': case 'imageHeight': //get module codename $moduleCodename = CMS_poly_object_catalog::getModuleCodenameForField($this->_field->getID()); //set location $location = $this->isPublic() ? RESOURCE_DATA_LOCATION_PUBLIC : RESOURCE_DATA_LOCATION_EDITED; $path = PATH_MODULES_FILES_FS . '/' . $moduleCodename . '/' . $location; $imgPath = $path . "/" . $this->_subfieldValues[0]->getValue(); $sizeX = $sizeY = 0; if (file_exists($imgPath)) { list($sizeX, $sizeY) = @getimagesize($imgPath); } if ($name == 'imageWidth') { return (string) $sizeX; } else { return (string) $sizeY; } break; case 'imageZoomWidth': case 'imageZoomHeight': //get module codename $moduleCodename = CMS_poly_object_catalog::getModuleCodenameForField($this->_field->getID()); //set location $location = $this->isPublic() ? RESOURCE_DATA_LOCATION_PUBLIC : RESOURCE_DATA_LOCATION_EDITED; $path = PATH_MODULES_FILES_FS . '/' . $moduleCodename . '/' . $location; $imgPath = $path . "/" . $this->_subfieldValues[2]->getValue(); $sizeX = $sizeY = 0; if (file_exists($imgPath)) { list($sizeX, $sizeY) = @getimagesize($imgPath); } if ($name == 'imageZoomWidth') { return (string) $sizeX; } else { return (string) $sizeY; } break; case 'imageSize': //get module codename $moduleCodename = CMS_poly_object_catalog::getModuleCodenameForField($this->_field->getID()); //set location $location = $this->isPublic() ? RESOURCE_DATA_LOCATION_PUBLIC : RESOURCE_DATA_LOCATION_EDITED; $path = PATH_MODULES_FILES_FS . '/' . $moduleCodename . '/' . $location; $filesize = @filesize($path . "/" . $this->_subfieldValues[0]->getValue()); if ($filesize !== false && $filesize > 0) { //convert in MB $filesize = round($filesize / 1048576, 2) . ' M'; } else { $filesize = '0 M'; } return $filesize; break; case 'imageZoomSize': //get module codename $moduleCodename = CMS_poly_object_catalog::getModuleCodenameForField($this->_field->getID()); //set location $location = $this->isPublic() ? RESOURCE_DATA_LOCATION_PUBLIC : RESOURCE_DATA_LOCATION_EDITED; $path = PATH_MODULES_FILES_FS . '/' . $moduleCodename . '/' . $location; $filesize = @filesize($path . "/" . $this->_subfieldValues[2]->getValue()); if ($filesize !== false && $filesize > 0) { //convert in MB $filesize = round($filesize / 1048576, 2) . ' M'; } else { $filesize = '0 M'; } return $filesize; break; case 'alternativeDomain': return $this->getAlternativeDomain(); default: return parent::getValue($name, $parameters); break; } }
/** * get an object value * * @param string $name : the name of the value to get * @param string $parameters (optional) : parameters for the value to get * @return multidimentionnal array : the object values structure * @access public */ function getValue($name, $parameters = '') { switch ($name) { case 'file': case 'thumb': if ($name == 'file') { $fieldIndex = 4; $fielfPrefix = 'image'; } else { $fieldIndex = 1; $fielfPrefix = 'thumb'; } // If we have a value and there are additionnal cropping parameters if ($this->_subfieldValues[$fieldIndex]->getValue() && $parameters && in_array($this->getValue($name . 'Extension'), array('jpg', 'jpeg', 'png', 'gif'))) { @(list($x, $y) = explode(',', str_replace(';', ',', $parameters))); if (io::isPositiveInteger($x) && $x < $this->getValue($fielfPrefix . 'Width') || io::isPositiveInteger($y) && $y < $this->getValue($fielfPrefix . 'Height')) { $crop = $x && $y ? 1 : 0; //get module codename $moduleCodename = CMS_poly_object_catalog::getModuleCodenameForField($this->_field->getID()); //set location $location = $this->isPublic() ? RESOURCE_DATA_LOCATION_PUBLIC : RESOURCE_DATA_LOCATION_EDITED; //resized image path $pathInfo = pathinfo($this->_subfieldValues[$fieldIndex]->getValue()); $resizedImage = $pathInfo['filename'] . '-' . $x . '-' . $y . ($crop ? '-c' : '') . '.' . $pathInfo['extension']; //resized image path $resizedImagepathFS = PATH_MODULES_FILES_FS . '/' . $moduleCodename . '/' . $location . '/' . $resizedImage; //if file already exists, no need to resize file send it if (file_exists($resizedImagepathFS)) { return $this->getValue('filePath') . '/' . $resizedImage; } else { return CMS_websitesCatalog::getCurrentDomain() . PATH_REALROOT_WR . '/image-file' . (!STRIP_PHP_EXTENSION ? '.php' : '') . '?image=' . $this->_subfieldValues[$fieldIndex]->getValue() . '&module=' . $moduleCodename . '&x=' . $x . '&y=' . $y . '&crop=' . $crop . ($location != RESOURCE_DATA_LOCATION_PUBLIC ? '&location=' . $location : ''); } } } if ($this->_subfieldValues[$fieldIndex]->getValue()) { // If we have a value but no cropping params return $this->getValue('filePath') . '/' . $this->_subfieldValues[$fieldIndex]->getValue(); } return ''; break; case 'fileHTML': //get module codename $moduleCodename = CMS_poly_object_catalog::getModuleCodenameForField($this->_field->getID()); //set location $location = $this->_public ? RESOURCE_DATA_LOCATION_PUBLIC : RESOURCE_DATA_LOCATION_EDITED; $filepath = $this->_subfieldValues[3]->getValue() == self::OBJECT_FILE_TYPE_INTERNAL ? PATH_MODULES_FILES_WR . '/' . $moduleCodename . '/' . $location . '/' . $this->_subfieldValues[4]->getValue() : $this->_subfieldValues[4]->getValue(); //append website url if missing if (io::substr($filepath, 0, 1) == '/') { $filepath = CMS_websitesCatalog::getCurrentDomain() . $filepath; } //link content $linkContent = $parameters ? $parameters : $this->_subfieldValues[0]->getValue(); $file = '<a href="' . $filepath . '" target="_blank" title="' . $this->_subfieldValues[0]->getValue() . '">' . $linkContent . '</a>'; return $file; break; case 'fileLabel': return $this->_subfieldValues[0]->getValue(); break; case 'filename': return $this->_subfieldValues[4]->getValue(); break; case 'thumbnail': case 'thumbname': return $this->_subfieldValues[1]->getValue(); break; case 'filePath': //get module codename $moduleCodename = CMS_poly_object_catalog::getModuleCodenameForField($this->_field->getID()); //set location $location = $this->isPublic() ? RESOURCE_DATA_LOCATION_PUBLIC : RESOURCE_DATA_LOCATION_EDITED; $altDomain = $this->getAlternativeDomain(); // If we are serving a public file and there is an alternative domain set up, change the url if ($this->isPublic() && $altDomain) { return $altDomain . PATH_MODULES_FILES_WR . '/' . $moduleCodename . '/' . $location; } else { return CMS_websitesCatalog::getCurrentDomain() . PATH_MODULES_FILES_WR . '/' . $moduleCodename . '/' . $location; } break; case 'thumbMaxWidth': //get field parameters $params = $this->getParamsValues(); return $params['thumbMaxWidth'] ? $params['thumbMaxWidth'] : ''; break; case 'thumbMaxHeight': //get field parameters $params = $this->getParamsValues(); return $params['thumbMaxHeight'] ? $params['thumbMaxHeight'] : ''; break; case 'thumbWidth': case 'thumbHeight': //get module codename $moduleCodename = CMS_poly_object_catalog::getModuleCodenameForField($this->_field->getID()); //set location $location = $this->isPublic() ? RESOURCE_DATA_LOCATION_PUBLIC : RESOURCE_DATA_LOCATION_EDITED; $path = PATH_MODULES_FILES_FS . '/' . $moduleCodename . '/' . $location; $imgPath = $path . "/" . $this->_subfieldValues[1]->getValue(); $sizeX = $sizeY = 0; if (file_exists($imgPath)) { list($sizeX, $sizeY) = @getimagesize($imgPath); } if ($name == 'thumbWidth') { return (string) $sizeX; } else { return (string) $sizeY; } break; case 'imageWidth': case 'imageHeight': if ($this->_subfieldValues[4]->getValue() && in_array($this->getValue('fileExtension'), array('jpg', 'jpeg', 'png', 'gif'))) { //get module codename $moduleCodename = CMS_poly_object_catalog::getModuleCodenameForField($this->_field->getID()); //set location $location = $this->isPublic() ? RESOURCE_DATA_LOCATION_PUBLIC : RESOURCE_DATA_LOCATION_EDITED; $path = PATH_MODULES_FILES_FS . '/' . $moduleCodename . '/' . $location; $imgPath = $path . "/" . $this->_subfieldValues[4]->getValue(); $sizeX = $sizeY = 0; if (file_exists($imgPath)) { list($sizeX, $sizeY) = @getimagesize($imgPath); } if ($name == 'imageWidth') { return (string) $sizeX; } else { return (string) $sizeY; } } return 0; break; case 'fileSize': return $this->_subfieldValues[2]->getValue(); break; case 'fileIcon': return $this->_getFileIcon(); break; case 'fileExtension': return $this->_getFileExtension(); break; case 'thumbExtension': return $this->_getThumbExtension(); break; case 'alternativeDomain': return $this->getAlternativeDomain(); default: return parent::getValue($name, $parameters); break; } }
/** * Return a list of all objects names of given type * * @param boolean $public are the needed datas public ? /!\ Does not apply for this type of object * @param array $searchConditions, search conditions to add. /!\ Does not apply for this type of object * @return array(integer objectID => string objectName) * @access public * @static */ function getListOfNamesForObject($public = false, $searchConditions = array()) { //get module $module = CMS_poly_object_catalog::getModuleCodenameForField($this->_field->getID()); // Get languages $a_all_languages = CMS_languagesCatalog::getAllLanguages($module); $languages = array(); foreach ($a_all_languages as $code => $language) { $languages[$code] = $language->getLabel(); } return $languages; }