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); } }
/** * Display icon tool to set item as default or non default. * * @param int $value value of item parameter default * @param int $i order number in list to identify row * @param string $entity name of entity * @param boolean $canChange icon is active or disabled * @return string HTML code */ public static function defaults($value, $i, $entity, $canChange) { $states[JOOMDOC_STATE_UNDEFAULT] = array('disabled.png', JoomDOCHelper::getTask($entity, JOOMDOC_TASK_DEFAULT), 'JOOMDOC_DEFAULT', 'JOOMDOC_TO_DEFAULT'); $states[JOOMDOC_STATE_DEFAULT] = array('featured.png', JoomDOCHelper::getTask($entity, JOOMDOC_TASK_UNDEFAULT), 'JOOMDOC_UNDEFAULT', 'JOOMDOC_TO_UNDEFAULT'); $state = JArrayHelper::getValue($states, $value, $states[JOOMDOC_STATE_DEFAULT]); $html = JHtml::_('image', 'admin/' . $state[0], JText::_($state[2], true), null, true); if ($canChange) { $html = '<a href="#" onclick="return listItemTask(\'cb' . $i . '\',\'' . $state[1] . '\')" title="' . JText::_($state[3], true) . '">' . $html . '</a>'; } return $html; }
/** * 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'); }
/** * Add the page title and toolbar. * * @since 1.6 */ protected function addToolbar() { JRequest::setVar('hidemainmenu', true); JToolBarHelper::title(JText::_('JOOMDOC_DOCUMENT'), 'document'); if ($this->access->canEdit || $this->access->canCreate) { JToolBarHelper::apply(JoomDOCHelper::getTask(JOOMDOC_DOCUMENT, JOOMDOC_TASK_APPLY), 'JTOOLBAR_APPLY'); JToolBarHelper::save(JoomDOCHelper::getTask(JOOMDOC_DOCUMENT, 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_DOCUMENT, JOOMDOC_TASK_CANCEL), 'JTOOLBAR_CLOSE'); }
if ($access->canDownload && !$access->isTrashed) { $size = $access->isFolder ? '-' : $item->getFileSize(); $update = isset($item->upload) ? JoomDOCHelper::uploaded($item->upload, false) : ''; $of = JText::_('JOOMDOC_DOWNLOAD_FILE'); echo '<a href="' . JRoute::_(JoomDOCRoute::download($access->relativePath)) . '" class="hasTip file ' . $class . '" title="' . $this->getTooltip($access->relativePath, $of . '<br />' . $update . '/' . $size) . '">' . $access->name . '</a>'; } else { echo '<a href="javascript:void(0)" class="file noLink ' . $class . '" title="">' . $name . '</a>'; } } if ($access->canRename && !$access->isTrashed) { echo '<div class="rename blind" style="width: 305px; padding: 5px 5px 0px;">'; echo '<div class="btn-group pull-left">'; echo '<input class="pull-left" style="position: relative; width: 165px;" type="text" name="rename" value="' . $this->escape($access->name) . '" />'; echo '</div>'; echo '<div class="btn-group pull-left">'; echo '<button class="btn" style="position: relative;" onclick="return JoomDOC.rename(this, \'' . addslashes(JoomDOCHelper::getTask(JOOMDOC_DOCUMENT, JOOMDOC_TASK_RENAME)) . '\', \'' . addslashes($access->name) . '\', \'' . addslashes($access->relativePath) . '\',\'' . JText::_('JOOMDOC_RENAME_SAME_NAME', true) . '\',\'' . JText::_('JOOMDOC_RENAME_EMPTY_NAME', true) . '\', \'' . JText::_('JOOMDOC_RENAME_FILE_EXISTS', true) . '\', \'' . JText::_('JOOMDOC_RENAME_DIR_EXISTS', true) . '\')">' . JText::_('JOOMDOC_RENAME_SAVE') . '</button>'; echo '<button class="btn" style="position: relative;" onclick="return JoomDOC.closeRename(this, \'' . addslashes($access->name) . '\')">' . JText::_('JOOMDOC_RENAME_CLOSE') . '</button>'; echo '</div>'; echo '</div>'; } if ($access->isTrashed && $access->canUntrash) { echo '<a href="' . JRoute::_(JoomDOCRoute::untrash($access->relativePath)) . '" class="untrash hasTip" title="' . $this->getTooltip($access->relativePath, 'JOOMDOC_UNTRASH_FILE') . '"></a>'; } echo '</td>'; echo '<td class="rename">'; echo '<div class="btn-group pull-left">'; if ($access->canRename && !$access->isTrashed) { if (JOOMDOC_ISJ3) { //jui button echo '<a href="javascript:void(0)" class="btn btn-smaller hasTip" id="openRename' . $i . '" onclick="JoomDOC.openRename(' . $i . ')" title="' . $this->getTooltip($access->relativePath, 'JOOMDOC_RENAME') . '" style="margin-left: 4px;"><i class="icon-pencil-2"> </i></a>'; } else {
* @package Joomla.Administrator * @subpackage JoomDOC * @author ARTIO s.r.o., info@artio.net, http:://www.artio.net * @copyright Copyright (C) 2011 Artio s.r.o.. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; $document = JFactory::getDocument(); /* @var $document JDocumentHTML */ $config = JoomDOCConfig::getInstance(); $params['joomDOCTaskUploadFile'] = JoomDOCHelper::getTask(JOOMDOC_DOCUMENTS, JOOMDOC_TASK_UPLOADFILE); $params['joomDOCmsgEmpty'] = JText::_('JOOMDOC_UPLOAD_EMPTY'); $params['joomDOCmsgOverwrite'] = JText::_('JOOMDOC_UPLOAD_OVERWRITE'); $params['joomDOCmsgDirExists'] = JText::_('JOOMDOC_UPLOAD_DIR_EXISTS'); $params['joomDOCmsgAreYouSure'] = JText::_('JOOMDOC_ARE_YOU_SURE'); $params['joomDOCmsgAddKeywords'] = JText::_('JOOMDOC_SEARCH_ADD_KEYWORDS'); $params['joomDOCmsgAddArea'] = JText::_('JOOMDOC_SEARCH_ADD_WHERE'); $params['joomDOCmsgMkdirEmpty'] = JText::_('JOOMDOC_MKDIR_EMPTY'); $params['joomDOCmsgMkdirFileExists'] = JText::_('JOOMDOC_MKDIR_FILE_EXISTS'); $params['joomDOCmsgMkdirDirExists'] = JText::_('JOOMDOC_MKDIR_DIR_EXISTS'); $params['joomDOCmsgMkdirCreateDocument'] = JText::_('JOOMDOC_MKDIR_CREATE_DOCUMENT'); $params['joomDOCmsgMkdirTask'] = "'" . addslashes(JoomDOCHelper::getTask(JOOMDOC_DOCUMENTS, JOOMDOC_TASK_NEWFOLDER)) . "'"; $params['joomDOCsearchDefaultType'] = $config->searchDefaultType; $params['joomDOCsearchDefaultOrder'] = $config->searchDefaultOrder; foreach ($params as $param => $value) { $document->addScriptDeclaration('var ' . $param . ' = "' . addslashes($value) . '";'); } ?>
* @package Joomla.Administrator * @subpackage JoomDOC * @author ARTIO s.r.o., info@artio.net, http:://www.artio.net * @copyright Copyright (C) 2011 Artio s.r.o.. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; /* @var $this JoomDOCViewLicense */ JHtml::_('behavior.formvalidation'); JHtml::_('behavior.keepalive'); jimport('joomla.html.pane'); $document = JFactory::getDocument(); /* @var $document JDocumentHTML */ $js[] = 'Joomla.submitbutton = function (task) {'; $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>';
/** * Get URL to update tree explorer via Ajax. * * @param string $path * @return string */ public static function updatemootree() { return 'index.php?option=' . JOOMDOC_OPTION . '&task=' . JoomDOCHelper::getTask(JOOMDOC_DOCUMENTS, JOOMDOC_TASK_UPDATEMOOTREE); }
public function run() { $db = JFactory::getDbo(); /* @var $db JDatabase */ $mainframe = JFactory::getApplication(); /* @var $mainframe JApplication */ // selected source docman or joomdoc $component = JRequest::getString('component'); // current database prefix $pr = $mainframe->getCfg('dbprefix'); // all DocMAN or JoomDOC2 tables if ($component == 'docman') { $tables = array($pr . 'docman', $pr . 'docman_groups', $pr . 'docman_history', $pr . 'docman_licenses', $pr . 'docman_log'); } else { $tables = array($pr . 'joomdoc2', $pr . 'joomdoc2_groups', $pr . 'joomdoc2_history', $pr . 'joomdoc2_licenses', $pr . 'joomdoc2_log'); } // all tables in Joomla database $joomla = $db->getTableList(); // check if all tables exists, are required if (array_intersect($tables, $joomla) != $tables) { return $this->setRedirect(JoomDOCRoute::viewJoomDOC(), JText::sprintf('JOOMDOC_MIGRATION_TABLES_UNAVAILABLE', implode(', ', $tables)), 'error'); } // relative path folder where DocMAN or JoomDOC stored files, is required $docbase = JPath::clean(JPATH_ROOT . '/' . JRequest::getString('docbase')); if (!JFolder::exists($docbase)) { return $this->setRedirect(JoomDOCRoute::viewJoomDOC(), JText::sprintf('JOOMDOC_MIGRATION_DOCBASE_UNAVAILABLE', $docbase), 'error'); } // statictis counters $newFolders = $newFiles = 0; /* copy DocMAN or JoomDOC2 licenses into JoomDOC3 */ $license = JTable::getInstance(JOOMDOC_LICENSE, JOOMDOC_TABLE_PREFIX); /* @var $license JoomDOCTableLicense */ $table = $component == 'docman' ? 'docman_licenses ' : 'joomdoc2_licenses '; // total of licenses in DocMAN or JoomDOC2 $db->setQuery('SELECT COUNT(*) FROM #__' . $table); $total = $db->loadResult(); // map Ids of licenses from DocMAN or JoomDOC2 into Ids of licenses in new JoomDOC3 structure $licensesMap = array(); for ($i = 0; $i < $total; $i += 100) { // migrate licenses in batch process $db->setQuery('SELECT * FROM #__' . $table, $i, 100); $items = $db->loadObjectList(); foreach ($items as $item) { // prepare new JoomDOC3 license $license->id = 0; $license->alias = null; $license->state = JOOMDOC_STATE_PUBLISHED; // copy data from DocMAN or JoomDOC2 license into JoomDOC3 $license->title = $item->name; $license->text = $item->license; $license->store(); // store licenses maping for using in new JoomDOC3 documents $licensesMap[$item->id] = $license->id; } } $document = JTable::getInstance(JOOMDOC_DOCUMENT, JOOMDOC_TABLE_PREFIX); /* @var $document JoomDOCTableDocument */ // convert DocMAN or JoomDOC categories into JoomDOC3 folders $parents = array(0 => ''); // root of categories tree // do for levels of categories tree // store map of Joomla categories and DocMAN/JoomDOC2 documents to JoomDOC3 paths $categoriesMap = $documentsMap = array(); do { // name of Joomla category section - identify component $section = $db->quote($component == 'docman' ? 'com_docman' : 'com_joomdoc'); $parentsIds = implode(', ', array_keys($parents)); // load total of DocMAN or JoomDOC2 categories in one level of categories tree if ($component == 'docman' && in_array($pr . 'docman_categories', $joomla)) { // since DocMAN 1.5 $db->setQuery('SELECT COUNT(*) FROM #__docman_categories WHERE parent_id IN (' . $parentsIds . ')'); } else { $db->setQuery('SELECT COUNT(*) FROM #__categories WHERE section = ' . $section . ' AND parent_id IN (' . $parentsIds . ')'); } try { $total = $db->loadResult(); } catch (Exception $e) { // new format of table jos_categories without section column $c = $db->replacePrefix('#__categories'); $mainframe->enqueueMessage(JText::sprintf('JOOMDOC_MIGRATION_OLD_CATEGORIES', $c, $c, $c, $c), 'notice'); return; } $nextLevel = isset($nextLevel) ? array() : array(0 => ''); // in the first batch process uncategorized documents for ($i = 0; $i < $total; $i += 100) { // load DocMAN or JoomDOC2 categories tree level full node list in batch process if ($component == 'docman' && in_array($pr . 'docman_categories', $joomla)) { // since DocMAN 1.5 $db->setQuery('SELECT id, title, parent_id, description, published, ordering, access FROM #__docman_categories WHERE parent_id IN (' . $parentsIds . ')', $i, 100); } else { $db->setQuery('SELECT id, title, parent_id, description, published, ordering, access FROM #__categories WHERE section = ' . $section . ' AND parent_id IN (' . $parentsIds . ')', $i, 100); } $children = $db->loadObjectList('id'); foreach ($children as $id => $kid) { /* @var $kid JTableCategory */ // create folder name from category title $folder = JFilterOutput::stringURLSafe($kid->title); // create document for folder $document->id = 0; $document->parent_path = $parents[$kid->parent_id]; $document->path = ($document->parent_path ? $document->parent_path . DIRECTORY_SEPARATOR : '') . $folder; // copy data form category into document $document->title = $kid->title; $document->alias = null; $document->description = $kid->description; $document->state = $kid->published == JOOMDOC_STATE_PUBLISHED ? JOOMDOC_STATE_PUBLISHED : JOOMDOC_STATE_UNPUBLISHED; $document->ordering = $kid->ordering; $document->access = $kid->access ? $kid->access : 1; if (!JFolder::exists(JoomDOCFileSystem::getFullPath($document->path))) { // create folder only if doesn't exists JoomDOCFileSystem::newFolder($document->parent_path, $folder, false, false); } else { // folder exist, search last exists document $db->setQuery('SELECT id FROM #__joomdoc WHERE path = ' . $db->Quote($document->path) . ' ORDER BY version DESC'); $document->id = $db->loadResult(); } if (JFolder::exists(JoomDOCFileSystem::getFullPath($document->path))) { if ($document->store(false, false)) { $newFolders++; // current kid will be in parents for next level of categories tree $nextLevel[$id] = $document->path; $categoriesMap[$kid->id] = $document->path; } } } } // next level parents $parents = $nextLevel; if (count($parents)) { /* Convert DocMAN or JoomDOC2 categories documents into JoomDOC3 files in folder */ $table = $component == 'docman' ? 'docman' : 'joomdoc2'; $parentsIds = implode(', ', array_keys($parents)); // load total of DocMAN or JoomDOC2 documents for categories in current level $db->setQuery('SELECT COUNT(*) FROM #__' . $table . ' WHERE catid IN (' . $parentsIds . ')'); $total = $db->loadResult(); // DocMAN or JoomDOC2 documents from categories in current tree level - batch process for ($i = 0; $i < $total; $i += 100) { $db->setQuery('SELECT * FROM #__' . $table . ' WHERE catid IN (' . $parentsIds . ')', $i, 100); $items = $db->loadObjectList(); foreach ($items as $item) { // create document for successfully uploaded file $document->id = 0; $document->parent_path = $parents[$item->catid]; $document->path = $document->parent_path . DIRECTORY_SEPARATOR . $item->dmfilename; // copy data from DocMAN or JoomDOC2 document into JoomDOC3 document $document->title = $item->dmname; $document->alias = null; $document->description = $item->dmdescription; $document->publish_up = $item->dmdate_published; $document->created_by = $item->dmsubmitedby; $document->state = $item->published == JOOMDOC_STATE_PUBLISHED ? JOOMDOC_STATE_PUBLISHED : JOOMDOC_STATE_UNPUBLISHED; $document->modified = $item->dmlastupdateon; $document->modified_by = $item->dmlastupdateby; $document->access = $item->access ? $item->access : 1; $document->license = isset($licensesMap[$item->dmlicense_id]) ? $licensesMap[$item->dmlicense_id] : 0; if (JFile::exists(JoomDOCFileSystem::getFullPath($document->path))) { // if file exists search for last document $db->setQuery('SELECT id FROM #__joomdoc WHERE path = ' . $db->quote($document->path) . ' ORDER BY version DESC'); $document->id = $db->loadResult(); } if (JoomDOCFileSystem::uploadFile(JoomDOCFileSystem::getFullPath($parents[$item->catid]), $docbase . DIRECTORY_SEPARATOR . $item->dmfilename, $item->dmfilename, true, false)) { // upload into JoomDOC3 tree structure if ($document->store(false, false)) { $newFiles++; // copy document hits into JoomDOC3 file $db->setQuery('UPDATE #__joomdoc_file SET hits = ' . $item->dmcounter . ' WHERE path = ' . $db->quote($document->path)); $db->query(); $documentsMap[$item->id] = $document->path; } } } } } } while (count($parents)); // reindex at the end JModelLegacy::getInstance(JOOMDOC_DOCUMENTS, JOOMDOC_MODEL_PREFIX)->flat(); /* Migrate DocMAN/JoomDOC2 URLs to JoomDOC3 in JoomSEF and Joomla tables*/ $entities = array(array('table' => 'menu', 'html' => false, 'columns' => array('link', 'params'), 'where' => ' WHERE client_id != 1 '), array('table' => 'content', 'html' => true, 'columns' => array('introtext', '`fulltext`')), array('table' => 'modules', 'html' => true, 'columns' => array('content')), array('table' => 'sefurls', 'html' => false, 'columns' => array('origurl'))); foreach ($entities as $entity) { // check if table is available // backup table with name eq. jos_content_joomdoc3_migration_backup $backup = $pr . $entity['table'] . '_joomdoc3_migration_backup'; // check if backup already exists $db->setQuery('SHOW TABLES LIKE ' . $db->quote($backup)); if ($db->loadResult() === null) { // create clone of backuped table $db->setQuery('CREATE TABLE IF NOT EXISTS ' . $backup . ' LIKE #__' . $entity['table']); try { $db->query(); } catch (Exception $e) { continue; // JoomSEF not installed } // copy data of table into backup $db->setQuery('INSERT INTO ' . $backup . ' SELECT * FROM #__' . $entity['table']); $db->query(); // inform user about backup available $mainframe->enqueueMessage(JText::sprintf('JOOMDOC_MIGRATION_BACKUPED', $pr . $entity['table'], $backup)); } // get total of rows $db->setQuery('SELECT COUNT(*) FROM #__' . $entity['table'] . (empty($entity['where']) ? '' : $entity['where'])); $total = $db->loadResult(); for ($i = 0; $i < $total; $i += 500) { // load URLs in batch process $db->setQuery('SELECT id, ' . implode(', ', $entity['columns']) . ' FROM #__' . $entity['table'] . (empty($entity['where']) ? '' : $entity['where']), $i, 500); // load as multidimensional array $items = $db->loadRowList(); foreach ($items as $item) { // information if any change was made $affected = false; $count = count($item); // process columns without id for ($j = 1; $j < $count; $j++) { $urls = array(); if ($entity['html']) { // content is HTML code from editor (article, module) $matches = array(); if (preg_match_all('/href="([^"]*)"/', $item[$j], $matches)) { $urls = $matches[1]; } } else { // URL is whole content (JoomSEF, menu) $urls = array($item[$j]); } // analyse URLs foreach ($urls as $url) { $uri = JFactory::getURI($url); /* @var $uri JURI Joomla support for working with URLs */ if ($uri->getVar('option') == 'com_joomdoc' || $uri->getVar('option') == 'com_docman') { // JoomDOC3 option same as JoomDOC2 $uri->setVar('option', 'com_joomdoc'); // ID of DocMAN/JoomDOC2 category or document $gid = $uri->getVar('gid'); // unused in new URL $uri->delVar('gid'); // analyse DocMAN/JoomDOC task value to recognise typoe of URL switch ($uri->getVar('task')) { case 'cat_view': /* display DocMAN/JoomDOC2 category */ $uri->setVar('view', JOOMDOC_DOCUMENTS); $uri->delVar('task'); // don't use task wit wire together break; case 'doc_details': /* display DocMAN/JoomDOC2 document */ /* display DocMAN/JoomDOC2 document */ case 'doc_view': $uri->setVar('view', JOOMDOC_DOCUMENTS); $uri->delVar('task'); // don't use task with view together break; case 'doc_download': $uri->setVar('task', JoomDOCHelper::getTask(JOOMDOC_DOCUMENT, JOOMDOC_TASK_DOWNLOAD)); break; case 'doc_edit': $uri->setVar('task', JoomDOCHelper::getTask(JOOMDOC_DOCUMENT, JOOMDOC_TASK_EDIT)); break; case 'doc_delete': $uri->setVar('task', JoomDOCHelper::getTask(JOOMDOC_DOCUMENT, JOOMDOC_TASK_DELETE)); break; default: /* URLs not supported by JoomDOC3 redirect to root */ $uri->setVar('view', JOOMDOC_DOCUMENTS); break; } if (isset($documentsMap[$gid])) { $uri->setVar('path', $documentsMap[$gid]); } // menu items to open documents list store for using in next entities if ($entity['table'] == 'menu' && $uri->getVar('view') == JOOMDOC_DOCUMENTS) { $registry = new JRegistry($item[2]); // load menu item configuration $registry->set('virtual_folder', 0); // disable JoomDOC3 virtual folder $item[2] = $registry->toString(); /* back to database format */ } $new = $uri->toString(); // back to string if ($entity['html']) { // safe for valid HTML code $new = str_replace('&', '&', $new); } // remove encoding in path added with JURI - prevent for making duplicity with JoomSEF $new = str_replace('%2F', '/', $new); $item[$j] = str_replace($url, $new, $item[$j]); // update in data // row will be updated $affected = true; } } } if ($affected) { $cols = array(); for ($j = 1; $j < $count; $j++) { $cols[] = $entity['columns'][$j - 1] . ' = ' . $db->quote($item[$j]); } $db->setQuery('UPDATE #__' . $entity['table'] . ' SET ' . implode(', ', $cols) . ' WHERE id = ' . $item[0]); $db->query(); } } } } // final report $mainframe->enqueueMessage(JText::sprintf('JOOMDOC_MIGRATION_REPORT', $newFolders, $newFiles)); $this->setRedirect(JoomDOCRoute::viewMigration()); }
echo '<a href="javascript:Joomla.submitbutton(\'' . JoomDOCHelper::getTask(JOOMDOC_DOCUMENT, JOOMDOC_TASK_APPLY) . '\')" class="apply" title="">' . JText::_('JTOOLBAR_APPLY') . '</a>'; echo '<a href="javascript:Joomla.submitbutton(\'' . JoomDOCHelper::getTask(JOOMDOC_DOCUMENT, JOOMDOC_TASK_SAVE) . '\')" class="save" title="">' . JText::_('JTOOLBAR_SAVE') . '</a>'; } echo '<a href="javascript:Joomla.submitbutton(\'' . JoomDOCHelper::getTask(JOOMDOC_DOCUMENT, JOOMDOC_TASK_CANCEL) . '\')" class="cancel" title="">' . JText::_('JTOOLBAR_CANCEL') . '</a>'; echo '<div class="clr"></div>'; echo '</div>'; require_once JOOMDOC_ADMINISTRATOR . '/libraries/joomdoc/html/joomdoc.php'; echo JHtmlJoomDOC::startTabs('tabone', 'details'); echo JHtmlJoomDOC::addTab('JOOMDOC_DOCUMENT_DETAILS', 'details', 'tabone'); echo '<script type="text/javascript">'; echo '//<![CDATA['; /** * Joomla 1.6.x */ echo 'Joomla.submitbutton = function(task) {'; echo 'if (task == \'' . JoomDOCHelper::getTask(JOOMDOC_DOCUMENT, JOOMDOC_TASK_CANCEL) . '\' || document.formvalidator.isValid(document.getElementById(\'item-form\'))) {'; echo 'try {'; echo 'Joomla.submitform(task, document.getElementById(\'item-form\'));'; echo '} catch(e) {'; echo 'document.adminForm.task.value = task;'; echo 'document.adminForm.submit();'; echo '}'; echo '} else {'; echo 'alert(\'' . JText::_('JGLOBAL_VALIDATION_FORM_FAILED', true) . '\');'; echo '}'; echo '}'; /** * Submit form operation. * * @param pressbutton taks value from toolbar button */
/** * 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); } }
echo '<div class="btn-group">'; if (!JoomDOCFileSystem::haveOperation()) { echo '<button class="btn btn-small" onclick="if (document.adminForm.boxchecked.value==0){alert(\'' . JText::_('JLIB_HTML_PLEASE_MAKE_A_SELECTION_FROM_THE_LIST', true) . '\');}else{ Joomla.submitbutton(\'' . JoomDOCHelper::getTask(JOOMDOC_DOCUMENT, JOOMDOC_TASK_COPY) . '\')};return false;">'; echo '<span class="icon-copy"></span>'; echo JText::_('JTOOLBAR_COPY'); echo '</button>'; echo '<button class="btn btn-small" onclick="if (document.adminForm.boxchecked.value==0){alert(\'' . JText::_('JLIB_HTML_PLEASE_MAKE_A_SELECTION_FROM_THE_LIST', true) . '\');}else{ Joomla.submitbutton(\'' . JoomDOCHelper::getTask(JOOMDOC_DOCUMENT, JOOMDOC_TASK_MOVE) . '\')};return false;">'; echo '<span class="icon-move"></span>'; echo JText::_('JTOOLBAR_MOVE'); echo '</button>'; } else { echo '<button class="btn btn-small" onclick="Joomla.submitbutton(\'' . JoomDOCHelper::getTask(JOOMDOC_DOCUMENT, JOOMDOC_TASK_PASTE) . '\')">'; echo '<span class="icon-save"></span>'; echo JText::_('JTOOLBAR_PASTE'); echo '</button>'; echo '<button class="btn btn-small" onclick="Joomla.submitbutton(\'' . JoomDOCHelper::getTask(JOOMDOC_DOCUMENT, JOOMDOC_TASK_RESET) . '\')">'; echo '<span class="icon-remove"></span>'; echo JText::_('JTOOLBAR_RESET'); echo '</button>'; } echo '</div>'; echo '<label>'; echo '<input type="checkbox" name="checkall-toggle" value="" onclick="Joomla.checkAll(this)" />'; echo "\n" . JText::_('JOOMDOC_CHECK_ALL'); echo '</label>'; echo JHtmlJoomDOC::endTab(); } if ($this->access->canUpload || $this->access->canCreateFolder || $this->access->canCopyMove) { echo JHtmlJoomDOC::endTabs(); } $this->root->initIteration();
/** * Add page main toolbar. * * @return void */ protected function addToolbar() { JToolBarHelper::title(JText::sprintf('JOOMDOC_FILE_PATH', $this->filter->path), 'file'); if ($this->access->canManageVersions) { JToolBarHelper::deleteList('JOOMDOC_ARE_YOU_SURE_TRASH_VERSION', JoomDOCHelper::getTask(JOOMDOC_FILE, JOOMDOC_TASK_TRASH), 'JTOOLBAR_TRASH'); JToolBarHelper::custom(JoomDOCHelper::getTask(JOOMDOC_FILE, JOOMDOC_TASK_RESTORE), JOOMDOC_ISJ3 ? 'refresh' : JOOMDOC_TASK_RESTORE, JOOMDOC_TASK_RESTORE, JText::_('JTOOLBAR_RESTORE')); JToolBarHelper::divider(); JToolBarHelper::custom(JoomDOCHelper::getTask(JOOMDOC_FILE, JOOMDOC_TASK_REVERT), JOOMDOC_ISJ3 ? 'redo' : JOOMDOC_TASK_REVERT, JOOMDOC_TASK_REVERT, JText::_('JTOOLBAR_REVERT')); JToolBarHelper::divider(); } if (JOOMDOC_ISJ3) { //has icon in J3 JToolBarHelper::cancel(JoomDOCHelper::getTask(JOOMDOC_DOCUMENT, JOOMDOC_TASK_CANCEL), 'JTOOLBAR_CLOSE'); } else { JToolBarHelper::back('Back', JRoute::_(JoomDOCRoute::viewDocuments())); } }