public function addToolbar() { $bar = JToolBar::getInstance('toolbar'); /* @var $bar JToolBar */ JToolBarHelper::title(JText::_('JOOMDOC_LICENSES'), 'licenses'); if (JoomDOCAccess::licenses()) { JToolBarHelper::addNew(JoomDOCHelper::getTask(JOOMDOC_LICENSE, JOOMDOC_TASK_ADD)); JToolBarHelper::publishList(JoomDOCHelper::getTask(JOOMDOC_LICENSES, JOOMDOC_TASK_PUBLISH)); JToolBarHelper::unpublishList(JoomDOCHelper::getTask(JOOMDOC_LICENSES, JOOMDOC_TASK_UNPUBLISH)); JToolBarHelper::divider(); JToolBarHelper::deleteList('JOOMDOC_ARE_YOU_SURE_DELETE_LICENSE', JoomDOCHelper::getTask(JOOMDOC_LICENSES, JOOMDOC_TASK_DELETE)); $bar->appendButton('Confirm', 'JOOMDOC_ARE_YOU_SURE_EMPTY_TRASH', 'trash', 'JTOOLBAR_EMPTY_TRASH', JoomDOCHelper::getTask(JOOMDOC_LICENSES, JOOMDOC_TASK_TRASH), false); } else { $bar->appendButton('Standard', 'new', 'JTOOLBAR_NEW'); $bar->appendButton('Standard', 'publish', 'JTOOLBAR_PUBLISH'); $bar->appendButton('Standard', 'unpublish', 'JTOOLBAR_UNPUBLISH'); JToolBarHelper::divider(); $bar->appendButton('Standard', 'remove', 'JTOOLBAR_DELETE'); $bar->appendButton('Standard', 'trash', 'JTOOLBAR_TRASH'); } if (JoomDOCAccess::admin()) { JToolBarHelper::divider(); JToolBarHelper::preferences(JOOMDOC_OPTION, JOOMDOC_PARAMS_WINDOW_HEIGHT, JOOMDOC_PARAMS_WINDOW_WIDTH); } }
/** * Add page main toolbar. * * @return void */ protected function addToolbar() { JToolBarHelper::title(JText::_('JOOMDOC'), 'joomdoc'); if (JoomDOCAccess::admin()) { JToolBarHelper::preferences(JOOMDOC_OPTION, JOOMDOC_PARAMS_WINDOW_HEIGHT, JOOMDOC_PARAMS_WINDOW_WIDTH); } }
/** * Add the page title and toolbar. * @return void */ protected function addToolbar() { JRequest::setVar('hidemainmenu', true); JToolBarHelper::title(JText::_('JOOMDOC_LICENSE'), 'licenses'); if (JoomDOCAccess::licenses()) { JToolBarHelper::apply(JoomDOCHelper::getTask(JOOMDOC_LICENSE, JOOMDOC_TASK_APPLY), 'JTOOLBAR_APPLY'); JToolBarHelper::save(JoomDOCHelper::getTask(JOOMDOC_LICENSE, JOOMDOC_TASK_SAVE), 'JTOOLBAR_SAVE'); } else { $bar = JToolBar::getInstance('toolbar'); /* @var $bar JToolBar */ $bar->appendButton('Standard', 'apply', 'JTOOLBAR_APPLY'); $bar->appendButton('Standard', 'save', 'JTOOLBAR_SAVE'); } JToolBarHelper::cancel(JoomDOCHelper::getTask(JOOMDOC_LICENSE, JOOMDOC_TASK_CANCEL), 'JTOOLBAR_CLOSE'); }
/** * Method to get the record form. * * @param array $data Data for the form. * @param boolean $loadData True if the form is to load its own data (default case), false if not. * @return mixed A JForm object on success, false on failure */ public function getForm($data = array(), $loadData = true) { $form = $this->loadForm(sprintf('%s.%s', JOOMDOC_OPTION, JOOMDOC_LICENSE), JFile::read(JOOMDOC_MODELS . DIRECTORY_SEPARATOR . 'forms' . DIRECTORY_SEPARATOR . JOOMDOC_LICENSE . '.xml'), array('control' => 'jform', 'load_data' => $loadData)); /* @var $form JForm */ if (empty($form)) { return false; } if (!JoomDOCAccess::licenses()) { $form->setFieldAttribute('id', 'disabled', 'true'); $form->setFieldAttribute('title', 'disabled', 'true'); $form->setFieldAttribute('alias', 'disabled', 'true'); $form->setFieldAttribute('text', 'disabled', 'true'); $form->setFieldAttribute('state', 'disabled', 'true'); $form->setFieldAttribute('default', 'disabled', 'true'); $form->setFieldAttribute('checked_out', 'disabled', 'true'); $form->setFieldAttribute('checked_out_time', 'disabled', 'true'); $form->setFieldAttribute('created', 'disabled', 'true'); $form->setFieldAttribute('created_by', 'disabled', 'true'); $form->setFieldAttribute('modified', 'disabled', 'true'); $form->setFieldAttribute('modified_by', 'disabled', 'true'); $form->setFieldAttribute('params', 'disabled', 'true'); $form->setFieldAttribute('id', 'filter', 'unset'); $form->setFieldAttribute('title', 'filter', 'unset'); $form->setFieldAttribute('alias', 'filter', 'unset'); $form->setFieldAttribute('text', 'filter', 'unset'); $form->setFieldAttribute('state', 'filter', 'unset'); $form->setFieldAttribute('default', 'filter', 'unset'); $form->setFieldAttribute('checked_out', 'filter', 'unset'); $form->setFieldAttribute('checked_out_time', 'filter', 'unset'); $form->setFieldAttribute('created', 'filter', 'unset'); $form->setFieldAttribute('created_by', 'filter', 'unset'); $form->setFieldAttribute('modified', 'filter', 'unset'); $form->setFieldAttribute('modified_by', 'filter', 'unset'); $form->setFieldAttribute('params', 'filter', 'unset'); } return $form; }
/** * Allow save license operation. * * @return boolean */ protected function allowSave($data, $key = 'id') { return JoomDOCAccess::licenses(); }
/** * Delete trashed license's. * * @return void */ public function trash() { if (JoomDOCAccess::licenses()) { $model = $this->getModel(); $count = $model->trash(); $this->setRedirect(JoomDOCRoute::viewLicenses(), JText::sprintf('JOOMDOC_TRASH_EMPTY', $count)); } }
$i = 0; while ($this->root->hasNext()) { // previous item $prevItemDocid = JoomDOCHelper::getDocumentID($this->root->getNext(JOOMDOC_ORDER_PREV)); // next item $nextItemDocid = JoomDOCHelper::getDocumentID($this->root->getNext(JOOMDOC_ORDER_NEXT)); // current item $item = $this->root->getNext(); //var_dump($item); // access rules $access = new JoomDOCAccessHelper($item); // save files/folders names for next using $access->isFile ? $files[] = $access->name : ($folders[] = $access->name); echo '<div class="object" style="float: left; width: 140px; height: 110px; margin-right: 10px;">'; if ($access->docid && $access->isChecked) { echo JHtml::_('jgrid.checkedout', $i, $item->document->editor, $item->document->checked_out_time, 'documents.', JoomDOCAccessDocument::manage($item->document->checked_out) && JoomDOCAccess::manage()); } if (!$access->isTrashed) { echo '<input type="checkbox" name="paths[]" id="cbb' . $i . '" value="' . $this->escape($access->relativePath) . '" class="blind" />'; } if (!$access->isChecked && !$access->isLocked && !$access->isTrashed) { echo '<input type="checkbox" name="cid[]" id="cb' . $i . '" value="' . $access->docid . '" onclick="Joomla.isChecked(this.checked);JoomDOC.check(this,' . $i . ')" />'; } /*if ($access->canRename && !$access->isTrashed) { echo '<a href="javascript:void(0)" class="rename hasTip" id="openRename' . $i . '" onclick="JoomDOC.openRename(' . $i . ')" title="' . $this->getTooltip($access->relativePath, 'JOOMDOC_RENAME') . '"></a>'; }*/ echo '<script type="text/javascript"> $$(".dblc").addEvent("click", function() { return false;}).addEvent("dblclick", function() { window.location = this.href; return false;})
$js[] = ' var form = document.getElementById(\'item-form\');'; $js[] = ' if (task == \'' . JoomDOCHelper::getTask(JOOMDOC_LICENSE, JOOMDOC_TASK_CANCEL) . '\' || document.formvalidator.isValid(form))'; $js[] = ' Joomla.submitform(task, form);'; $js[] = ' else alert(\'' . JText::_('JGLOBAL_VALIDATION_FORM_FAILED', true) . '\');'; $js[] = '}'; $js[] = 'function submitform(pressbutton){Joomla.submitbutton(pressbutton);}'; $document->addScriptDeclaration(PHP_EOL . implode(PHP_EOL, $js) . PHP_EOL); echo '<form action="' . JRoute::_(JoomDOCRoute::saveLicense($this->license->id)) . '" method="post" name="adminForm" id="item-form" class="form-validate">'; echo '<div class="fltlft col"><fieldset class="adminform"><legend>' . JText::_('JOOMDOC_DOCUMENT') . '</legend><table class="admintable">'; echo '<tr><td class="key">' . $this->form->getLabel('title') . '</td><td>' . $this->form->getInput('title') . '</td></tr>'; echo '<tr><td class="key">' . $this->form->getLabel('alias') . '</td><td>' . $this->form->getInput('alias') . '</td></tr>'; echo '<tr><td class="key">' . $this->form->getLabel('default') . '</td><td>' . $this->form->getInput('default') . '</td></tr>'; echo '<tr><td class="key">' . $this->form->getLabel('state') . '</td><td>' . $this->form->getInput('state') . '</td></tr>'; echo '</table><div class="clr"></div>'; echo $this->form->getLabel('text') . '<div class="clr"></div>'; echo JoomDOCAccess::licenses() ? $this->form->getInput('text') : $this->form->getValue('text'); echo '<div class="clr"></div></fieldset></div>'; if ($this->license->id) { echo '<div class="fltlft col">'; require_once JOOMDOC_ADMINISTRATOR . '/libraries/joomdoc/html/joomdoc.php'; echo JHtmlJoomDOC::startSliders('license', 'publishing'); echo JHtmlJoomDOC::addSlide('license', 'JOOMDOC_PUBLISHING', 'publishing'); echo '<fieldset class="panelform"><table class="admintable">'; echo '<tr><td class="key">' . $this->form->getLabel('created') . '</td><td>' . $this->date('created') . '</td></tr>'; echo '<tr><td class="key">' . $this->form->getLabel('created_by') . '</td><td>' . $this->form->getInput('created_by') . '</td></tr>'; if ($this->license->modified_by) { echo '<tr><td class="key">' . $this->form->getLabel('modified') . '</td><td>' . $this->date('modified') . '</td></tr>'; echo '<tr><td class="key">' . $this->form->getLabel('modified_by') . '</td><td>' . $this->form->getInput('modified_by') . '</td></tr>'; } echo '</table></fieldset>'; echo JHtmlJoomDOC::endSlide();
echo '</div>'; echo '</div>'; echo '</fieldset>'; echo '<div class="clearfix"></div>'; echo '<table class="adminlist table table-striped" cellspacing="1">'; echo '<thead><tr>'; echo '<th width="1%" class="center"><input type="checkbox" name="checkall-toggle" value="" onclick="Joomla.checkAll(this)" /></th>'; echo '<th>' . JHtml::_('grid.sort', 'JOOMDOC_TITLE', 'lcs.title', $listDirn, $listOrder) . '</th>'; echo '<th width="5%">' . JHtml::_('grid.sort', 'JSTATUS', 'lcs.state', $listDirn, $listOrder) . '</th>'; echo '<th width="5%">' . JHtml::_('grid.sort', 'JOOMDOC_DEFAULT', 'lcs.default', $listDirn, $listOrder) . '</th>'; echo '<th width="8%">' . JHtml::_('grid.sort', 'JGRID_HEADING_CREATED_BY', 'lcs.created_by', $listDirn, $listOrder) . '</th>'; echo '<th width="7%">' . JHtml::_('grid.sort', 'JDATE', 'lcs..created', $listDirn, $listOrder) . '</th>'; echo '<th width="1%">' . JHtml::_('grid.sort', 'JGRID_HEADING_ID', 'lcs.id', $listDirn, $listOrder) . '</th>'; echo '</tr></thead>'; echo '<tfoot><tr><td colspan="20">' . $this->pagination->getListFooter() . '</td></tr></tfoot><tbody>'; $canManage = JoomDOCAccess::licenses(); $dateFormat = JText::_('DATE_FORMAT_LC4'); foreach ($this->licenses as $i => $license) { echo '<tr class="row' . $i % 2 . '">'; echo '<td class="center">'; echo $license->checked_out ? JHtml::_('jgrid.checkedout', $i, $license->editor, $license->checked_out_time, JOOMDOC_LICENSES . '.', $canManage) : JHtml::_('grid.id', $i, $license->id); echo '</td>'; echo '<td><a href="' . JRoute::_(JoomDOCRoute::editLicense($license->id)) . '" title="">' . $license->title . '</a></td>'; echo '<td class="center" align="center">'; echo JHtml::_('jgrid.published', $license->state, $i, JOOMDOC_LICENSES . '.', $canManage, 'cb'); echo '</td>'; echo '<td class="center" align="center">' . JHtml::_('joomdoc.defaults', $license->default, $i, JOOMDOC_LICENSES, $canManage) . '</td>'; echo '<td nowrap="nowrap">' . $license->creator . '</td>'; echo '<td nowrap="nowrap">' . JHtml::_('date', $license->created, $dateFormat) . '</td>'; echo '<td>' . $license->id . '</td>'; echo '</tr>';
echo '<fieldset class="panelform">'; echo '<table class="admintable">'; foreach ($this->form->getFieldset($name) as $field) { echo '<tr>'; echo '<td class="key">' . $field->label . '</td>'; echo '<td>' . $field->input . '</td>'; echo '</tr>'; } echo '</table>'; echo '</fieldset>'; echo JHtmlJoomDOC::endSlide(); } echo JHtmlJoomDOC::endSlides(); echo '</div>'; echo '<div class="clr"></div>'; if (JoomDOCAccess::admin()) { echo '<div>'; echo JHtmlJoomDOC::startSliders('permissions-sliders-' . $this->document->id, 'access-rules'); echo JHtmlJoomDOC::addSlide('permissions-sliders-' . $this->document->id, 'JOOMDOC_FIELDSET_RULES', 'access-rules'); echo '<fieldset class="panelform">'; echo $this->form->getLabel('rules'); echo $this->form->getInput('rules'); echo '</fieldset>'; echo JHtmlJoomDOC::endSlide(); echo JHtmlJoomDOC::endSlides(); echo '</div>'; } echo '<div>'; echo '<input type="hidden" name="Itemid" value="' . JoomDOCMenu::getMenuItemID($this->form->getValue('path')) . '" />'; echo '<input type="hidden" name="task" value="" />'; echo '<input type="hidden" name="id" value="' . $this->document->id . '" />';
/** * Add page main toolbar. * * @return void */ protected function addToolbar() { $bar = JToolBar::getInstance('toolbar'); /* @var $bar JToolBar */ JToolBarHelper::title(JText::_('JOOMDOC_DOCUMENTS'), 'documents'); if ($this->access->canEditStates) { JToolBarHelper::publish(JoomDOCHelper::getTask(JOOMDOC_DOCUMENTS, JOOMDOC_TASK_PUBLISH)); JToolBarHelper::unpublish(JoomDOCHelper::getTask(JOOMDOC_DOCUMENTS, JOOMDOC_TASK_UNPUBLISH)); JToolBarHelper::custom(JoomDOCHelper::getTask(JOOMDOC_DOCUMENTS, JOOMDOC_TASK_CHECKIN), 'checkin', '', 'JTOOLBAR_CHECKIN', true); } else { $bar->appendButton('Standard', 'publish', 'JTOOLBAR_PUBLISH'); $bar->appendButton('Standard', 'unpublish', 'JTOOLBAR_UNPUBLISH'); $bar->appendButton('Standard', 'checkin', 'JTOOLBAR_CHECKIN'); } JToolBarHelper::divider(); if ($this->access->canCopyMove && !JoomDOCFileSystem::haveOperation()) { JToolBarHelper::custom(JoomDOCHelper::getTask(JOOMDOC_DOCUMENT, JOOMDOC_TASK_COPY), 'copy', '', 'JTOOLBAR_COPY', true); JToolBarHelper::custom(JoomDOCHelper::getTask(JOOMDOC_DOCUMENT, JOOMDOC_TASK_MOVE), 'move', '', 'JTOOLBAR_MOVE', true); } else { //$bar->appendButton('Standard', 'copy', 'JTOOLBAR_COPY'); //$bar->appendButton('Standard', 'move', 'JTOOLBAR_MOVE'); } if ($this->access->canCopyMove && JoomDOCFileSystem::haveOperation()) { JToolBarHelper::custom(JoomDOCHelper::getTask(JOOMDOC_DOCUMENT, JOOMDOC_TASK_PASTE), 'save', '', 'JTOOLBAR_PASTE', false); JToolBarHelper::custom(JoomDOCHelper::getTask(JOOMDOC_DOCUMENT, JOOMDOC_TASK_RESET), 'remove', '', 'JTOOLBAR_RESET', false); } else { //$bar->appendButton('Standard', 'save', 'JTOOLBAR_PASTE'); //$bar->appendButton('Standard', 'remove', 'JTOOLBAR_RESET'); } JToolBarHelper::divider(); // Document delete //if ($this->access->canDeleteDocs) //$bar->appendButton('Confirm', 'JOOMDOC_ARE_YOU_SURE_DELETE_DOCUMETS', 'docs-delete', 'JOOMDOC_DELETE_DOCUMENT', JoomDOCHelper::getTask(JOOMDOC_DOCUMENTS, JOOMDOC_TASK_DELETE), true); //else //$bar->appendButton('Standard', 'docs-delete', 'JOOMDOC_DELETE_DOCUMENT'); // Item delete if ($this->access->canDeleteFile) { JToolBarHelper::deleteList('JOOMDOC_ARE_YOU_SURE_DELETE_ITEMS', JoomDOCHelper::getTask(JOOMDOC_DOCUMENTS, JOOMDOC_TASK_DELETEFILE), 'JTOOLBAR_DELETE'); } else { $bar->appendButton('Standard', 'delete', 'JOOMDOC_DELETE_ITEM'); } if (JoomDOCHelper::trashedItemsCount() >= 1) { if ($this->access->canDeleteDocs && $this->access->canDeleteFile) { $bar->appendButton('Confirm', 'JOOMDOC_ARE_YOU_SURE_EMPTY_TRASH', 'trash', 'JTOOLBAR_EMPTY_TRASH', JoomDOCHelper::getTask(JOOMDOC_DOCUMENTS, JOOMDOC_TASK_TRASH), false); } else { $bar->appendButton('Standard', 'trash', 'JTOOLBAR_TRASH'); } } if (JoomDOCAccessFileSystem::refresh()) { JToolBarHelper::divider(); JToolBarHelper::custom(JoomDOCHelper::getTask(JOOMDOC_DOCUMENTS, JOOMDOC_TASK_REFRESH), 'refresh', '', 'JTOOLBAR_REFRESH', false); JHtml::_('joomdoc.tooltip', 'toolbar-refresh', 'JTOOLBAR_REFRESH', 'JOOMDOC_REFRESH_TIP'); JToolBarHelper::custom(JoomDOCHelper::getTask(JOOMDOC_DOCUMENTS, JOOMDOC_TASK_FLAT), 'reflat', '', 'JOOMDOC_REFLAT', false); JHtml::_('joomdoc.tooltip', 'toolbar-reflat', 'JOOMDOC_REFLAT', 'JOOMDOC_REFLAT_TIP'); } if (JoomDOCAccess::admin()) { JToolBarHelper::divider(); JToolBarHelper::preferences(JOOMDOC_OPTION, JOOMDOC_PARAMS_WINDOW_HEIGHT, JOOMDOC_PARAMS_WINDOW_WIDTH); } }
/** * Access item by document ID or file path. * If document ID not available search last parent with document to inherit access. * If parent document not found use global setting. * * @param string $task accessed task name * @param mixed $docid document ID if null search parent, if false search document ID by path * @param string $path file path * @return boolean */ public static function authorise($task, $docid, $path, $sessionid = null) { static $model; /* @var $model JoomDOCModelDocument */ if (is_null($model)) { $model = JModelLegacy::getInstance(JOOMDOC_DOCUMENT, JOOMDOC_MODEL_PREFIX); } if ($docid === null) { // search last parent document ID $docid = $model->getParentDocumentID($path); } if ($docid === false) { // search document ID by path $docid = $model->searchIdByPath($path); } if ($docid) { // get access from file document or inherit from last parent return JoomDOCAccess::authorise($task, JoomDOCHelper::getDocumentAsset($docid), $sessionid); } // get global access return JoomDOCAccess::authorise($task, JOOMDOC_OPTION, $sessionid); }
/** * Method to get the record form. * * @param array $data Data for the form. * @param boolean $loadData True if the form is to load its own data (default case), false if not. * @return mixed A JForm object on success, false on failure */ public function getForm($data = array(), $loadData = true) { $form = $this->loadForm(sprintf('%s.%s', JOOMDOC_OPTION, JOOMDOC_DOCUMENT), JFile::read(JOOMDOC_MODELS . DIRECTORY_SEPARATOR . 'forms' . DIRECTORY_SEPARATOR . JOOMDOC_DOCUMENT . '.xml'), array('control' => 'jform', 'load_data' => $loadData)); /* @var $form JForm */ $data = $this->loadFormData(); if (empty($form)) { return false; } $config = JoomDOCConfig::getInstance(); if ($config->documentAccess == 2) { // single user instead of access level $form->setFieldAttribute('access', 'type', 'user'); } else { $form->removeField('download'); } if (!$this->canEditState($form)) { $form->setFieldAttribute('publish_up', 'disabled', 'true'); $form->setFieldAttribute('publish_down', 'disabled', 'true'); $form->setFieldAttribute('state', 'disabled', 'true'); $form->setFieldAttribute('favorite', 'disabled', 'true'); $form->setFieldAttribute('ordering', 'disabled', 'true'); $form->setFieldAttribute('publish_up', 'filter', 'unset'); $form->setFieldAttribute('publish_down', 'filter', 'unset'); $form->setFieldAttribute('state', 'filter', 'unset'); $form->setFieldAttribute('favorite', 'filter', 'unset'); $form->setFieldAttribute('ordering', 'filter', 'unset'); } if (!JoomDOCAccess::licenses()) { $form->setFieldAttribute('license', 'disabled', 'true'); $form->setFieldAttribute('license', 'filter', 'unset'); } $config = JoomDOCConfig::getInstance(); /* @var $config JoomDOCConfig */ if ($config->versionDocument && JoomDOCAccessDocument::viewVersions($form->getValue('id'))) { $form->setValue('versionNote', ''); if ($config->versionRequired) { $form->setFieldAttribute('versionNote', 'required', 'true'); } } // load custom fields $query = $this->getDbo()->getQuery(true); $query->select('id, title, type, params')->from('#__joomdoc_field')->order('ordering')->where('published = 1'); $fields = $this->getDbo()->setQuery($query)->loadObjectList('id'); if ($fields) { // load custom fields options $query = $this->getDbo()->getQuery(true); $query->select('field, value, label')->from('#__joomdoc_option')->where('field IN (' . implode(', ', array_keys($fields)) . ')')->order('ordering'); $options = $this->getDbo()->setQuery($query)->loadObjectList(); $fieldmap[JOOMDOC_FIELD_TEXT] = 'text'; $fieldmap[JOOMDOC_FIELD_DATE] = 'calendar'; $fieldmap[JOOMDOC_FIELD_RADIO] = 'radio'; $fieldmap[JOOMDOC_FIELD_SELECT] = 'list'; $fieldmap[JOOMDOC_FIELD_CHECKBOX] = 'checkboxes'; $fieldmap[JOOMDOC_FIELD_TEXTAREA] = 'textarea'; $fieldmap[JOOMDOC_FIELD_EDITOR] = 'editor'; $fieldmap[JOOMDOC_FIELD_MULTI_SELECT] = 'list'; $fieldmap[JOOMDOC_FIELD_SUGGEST] = 'suggest'; foreach ($fields as $field) { // create basic form element $element = new SimpleXMLElement('<field/>'); // setup basic field params $element->addAttribute('field_id', $field->id); $element->addAttribute('name', 'field' . $field->id); $element->addAttribute('label', $field->title); if ($field->type == JOOMDOC_FIELD_EDITOR && !JFactory::getUser()->authorise('joomdoc.field.edit', 'com_joomdoc.field.' . $field->id)) { $element->addAttribute('type', 'div'); } else { $element->addAttribute('type', $fieldmap[$field->type]); } // setup other field params $params = new JRegistry($field->params); $params = $params->toArray(); // setup field options if ($field->type == JOOMDOC_FIELD_RADIO) { $element->addChild('option', JText::_('JNO'))->addAttribute('value', 0); $element->addChild('option', JText::_('JYES'))->addAttribute('value', 1); if (JFactory::getUser()->authorise('joomdoc.field.edit', 'com_joomdoc.field.' . $field->id)) { $params['class'] = JString::trim(JArrayHelper::getValue($params, 'class', '', 'string') . ' btn-group'); } } if ($field->type == JOOMDOC_FIELD_SELECT || $field->type == JOOMDOC_FIELD_CHECKBOX || $field->type == JOOMDOC_FIELD_MULTI_SELECT) { foreach ($options as $option) { if ($field->id == $option->field) { $child = $element->addChild('option', $option->label)->addAttribute('value', $option->value); } } } if ($field->type == JOOMDOC_FIELD_EDITOR) { $element->addAttribute('filter', 'JComponentHelper::filterText'); } if ($field->type == JOOMDOC_FIELD_MULTI_SELECT || $field->type == JOOMDOC_FIELD_SUGGEST) { $element->addAttribute('multiple', 'multiple'); } foreach ($params as $var => $val) { if ($var == 'required' && !JFactory::getUser()->authorise('joomdoc.field.edit', 'com_joomdoc.field.' . $field->id)) { continue; } if ($val) { $element->addAttribute($var, $val); } } if (!JFactory::getUser()->authorise('joomdoc.field.edit', 'com_joomdoc.field.' . $field->id)) { $element->addAttribute('disabled', 'true'); if ($field->type == JOOMDOC_FIELD_RADIO || $field->type == JOOMDOC_FIELD_CHECKBOX) { foreach ($element->children() as $option) { $option->addAttribute('disabled', 'true'); } } } $form->setField($element); if ($field->type == JOOMDOC_FIELD_CHECKBOX || $field->type == JOOMDOC_FIELD_MULTI_SELECT || $field->type == JOOMDOC_FIELD_SUGGEST) { $registry = new JRegistry(is_array($data) ? JArrayHelper::getValue($data, 'field' . $field->id) : $data->get('field' . $field->id)); is_array($data) ? $data['field' . $field->id] = (array) $registry->toArray() : $data->set('field' . $field->id, (array) $registry->toArray()); } } $form->bind($data); } return $form; }
/** * Manage document's licenses. * * @return boolean */ public static function licenses() { return JoomDOCAccess::authorise(JOOMDOC_CORE_LICENSES); }