Beispiel #1
0
 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);
     }
 }
Beispiel #2
0
 /**
  * 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);
     }
 }
Beispiel #3
0
 /**
  * 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');
 }
Beispiel #4
0
 /**
  * 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;
 }
Beispiel #5
0
 /**
  * Allow save license operation.
  *
  * @return boolean
  */
 protected function allowSave($data, $key = 'id')
 {
     return JoomDOCAccess::licenses();
 }
Beispiel #6
0
 /**
  * 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));
     }
 }
Beispiel #7
0
 $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;})
Beispiel #8
0
$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();
Beispiel #9
0
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>';
Beispiel #10
0
    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 . '" />';
Beispiel #11
0
 /**
  * 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);
     }
 }
Beispiel #12
0
 /**
  * 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);
 }
Beispiel #13
0
 /**
  * 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;
 }
Beispiel #14
0
 /**
  * Manage document's licenses.
  *
  * @return boolean
  */
 public static function licenses()
 {
     return JoomDOCAccess::authorise(JOOMDOC_CORE_LICENSES);
 }