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 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)); } }
$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>';
/** * 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; }