/** * Returns HTML for colored (red/green) display of writable status * * @param mixed $CurrentStatus The current status of the item in question * @param mixed $DesiredStatus The status considered good for the item in question * @param string $goodKey The translation key for the string to display if the status is good * @param string $errorKey The translation key for the string to display if the status is not good * @param string $translationSection The translation section to look for the key in. * @return string */ function colorizeWriteStatus($CurrentStatus, $DesiredStatus, $goodKey = 'writable', $errorKey = 'unwritable', $translationSection = 'common') { $isStatusGood = $CurrentStatus === $DesiredStatus; $statusVerbal = $isStatusGood ? JoomlapackLangManager::_(strtoupper($translationSection) . '_' . strtoupper($goodKey)) : JoomlapackLangManager::_(strtoupper($translationSection) . '_' . strtoupper($errorKey)); $class = $isStatusGood ? 'statusok' : 'statusnotok'; $image = $isStatusGood ? 'ok_small' : 'error_small'; $imageURL = JoomlapackCommonHTML::getImageURI($image); return '<span class="' . $class . '"><img src="' . $imageURL . '" border="0" width="16" height="16" />' . $statusVerbal . '</span>'; }
/** * Displays the HTML for this page * */ function echoHTML() { $nohtml = JoomlapackAbstraction::getParam('no_html', 0); if ($nohtml == 1) { JoomlapackLogger::VisualizeLogDirect(); } else { $configuration =& JoomlapackConfiguration::getInstance(); $option = JoomlapackAbstraction::getParam('option', 'com_joomlapack'); // Show top header echo JoomlapackCommonHTML::getAdminHeadingHTML(JoomlapackLangManager::_('LOG_LOGBANNER')); echo "<p><a href=\"index2.php?option={$option}&act=dllog&no_html=1\">" . JoomlapackLangManager::_('LOG_DOWNLOADTEXT') . "</a></p>"; echo '<iframe src="index2.php?option=' . $option . '&act=log&no_html=1" width="90%" height="400px">'; echo '</iframe>'; } }
function echoHTML() { jpimport('helpers.lang'); $errorStack = array(); // Initialize an errors stack // Cleanup locks jpimport('classes.core.cube'); JoomlapackCUBE::cleanup(); // Test for the existence of a default temporary folder if (!is_dir(JPATH_COMPONENT_ADMINISTRATOR . DS . 'backup')) { // Temp dir doesn't exist; try to create one if (!@mkdir(JPATH_COMPONENT_ADMINISTRATOR . DS . 'backup')) { $errorStack[] = JoomlapackLangManager::_('UNLOCK_CANTCREATEDIR'); } else { // Try creating a deafult .htaccess $htaccess = <<<END Deny from all END; $fp = @fopen(JPATH_COMPONENT_ADMINISTRATOR . DS . 'backup' . DS . '.htaccess'); if ($fp === false) { $errorStack[] = JoomlapackLangManager::_('UNLOCK_CANTCREATEHTACCESS'); } else { @fputs($fp, $htaccess); @fclose($fp); } } } // Get some more HTML fragments echo JoomlapackCommonHTML::getAdminHeadingHTML(JoomlapackLangManager::_('CPANEL_UNLOCK')); ?> <p> <?php if (count($errorStack) == 0) { echo JoomlapackLangManager::_('UNLOCK_DONE'); } else { foreach ($errorStack as $error) { echo "<p class=\"error\">{$error}</p>"; } } ?> </p> <?php }
function getTablesHTML() { jpimport('classes.filter.dbef'); jpimport('helpers.lang'); $resetHTML = JoomlapackLangManager::_('DBEF_RESET'); $filter1HTML = JoomlapackLangManager::_('DBEF_QUICK1'); $out = <<<END \t\t\t<p> \t\t\t<a href='javascript:Reset();'>{$resetHTML}</a> - \t\t\t<a href='javascript:FilterNonJ();'>{$filter1HTML}</a> \t\t\t</p> \t\t\t<table class="adminlist"> \t\t\t\t<tr> \t\t\t\t\t<th align="left" width="50"> END; $out .= JoomlapackLangManager::_('DBEF_EXCLUDE') . "\n" . "</th><th class=\"title\">" . JoomlapackLangManager::_('DBEF_TABLE') . "</th></tr>"; $dbef = new JoomlapackFilterDBEF(); $dbef->init(); $filters = $dbef->getFilters('database'); $tables = $this->getTables(); $id = 0; // Get db prefix global $mosConfig_dbprefix; $prefix = defined('_JEXEC') ? JApplication::getCfg('dbprefix') : $mosConfig_dbprefix; foreach ($tables as $table) { // Get abstract name $tableAbstract = str_replace($prefix, '#__', $table); $isJoomla = $tableAbstract != $table; $checked = in_array($tableAbstract, $filters) ? " checked = \"true\" " : ''; $id++; $out .= "\n<tr><td align=\"center\">"; $out .= "<input type=\"checkbox\" {$checked} onclick=\"ToggleFilter('" . $tableAbstract . "', 'dbef-{$id}');\" id=\"dbef-{$id}\">"; $out .= "</td><td align=\"left\">"; $out .= ($isJoomla ? "<b>" : "") . htmlentities($table) . ($isJoomla ? "</b>" : ""); } $out .= "\n</table>"; return $out; }
function getFileSelectionHTML($root) { // Import usefull JoomlaPack classes jpimport('classes.filter.sff'); jpimport('helpers.lang'); jpimport('classes.core.utility.filtermanager'); // Cleanup the root folder we were passed $root = realpath($root); // Get some translation strings $lang_dir = JoomlapackLangManager::_('SFF_DIR'); $lang_excluded = JoomlapackLangManager::_('SFF_EXCLUDE'); $lang_file = JoomlapackLangManager::_('SFF_FILE'); // Scan folder for files $sff = new JoomlapackFilterSFF(); $scanResult = $sff->getDirectory($root); // Get the directories filters; we're not going to allow the user to enter excluded folders :) $filterManager = new JoomlapackFilterManager(); $filterManager->init(); // Produce the output $out = <<<END \t\t\t<h4>{$root}</h4> \t\t\t<table border="0" cellspacing="10"> \t\t\t\t<tr> \t\t\t\t\t<td valign="top"> \t\t\t\t\t\t<!-- Directory Selection --> \t\t\t\t\t\t<table class="adminlist"> \t\t\t\t\t\t\t<thead> \t\t\t\t\t\t\t\t<tr> \t\t\t\t\t\t\t\t\t<th>{$lang_dir}</th> \t\t\t\t\t\t\t\t</tr> \t\t\t\t\t\t\t</thead> \t\t\t\t\t\t\t<tbody> END; $dirFilters = $filterManager->getFilters('folder'); foreach ($scanResult['folders'] as $folder) { if (is_array($dirFilters)) { $wholefolder = JoomlapackAbstraction::TranslateWinPath($root . DIRECTORY_SEPARATOR . $folder); $showLink = !in_array($wholefolder, $dirFilters); } else { $showLink = true; } $out .= "\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t<td>\n"; if ($showLink) { $out .= "<a href=\"javascript:dirSelectionHTML('" . JoomlapackAbstraction::TranslateWinPath($root . DIRECTORY_SEPARATOR . $folder) . "');\">" . htmlentities($folder) . "</a>"; } else { $out .= htmlentities($folder); } $out .= "\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t</tr>\n"; } $out .= <<<END \t\t\t\t\t\t\t</tbody> \t\t\t\t\t\t</table> \t\t\t\t\t</td> \t\t\t\t\t<td valign="top"> \t\t\t\t\t\t<!-- File Selection --> \t\t\t\t\t\t<table class="adminlist"> \t\t\t\t\t\t\t<thead> \t\t\t\t\t\t\t\t<tr> \t\t\t\t\t\t\t\t\t<th>{$lang_excluded}</th> \t\t\t\t\t\t\t\t\t<th>{$lang_file}</th> \t\t\t\t\t\t\t\t</tr> \t\t\t\t\t\t\t</thead> \t\t\t\t\t\t\t<tbody> END; $id = 0; foreach ($scanResult['files'] as $file => $excluded) { $id++; $checked = $excluded ? " checked = \"true\" " : ""; $out .= "\n<tr><td align=\"center\">"; $out .= "<input type=\"checkbox\" {$checked} onclick=\"ToggleFilter('" . JoomlapackAbstraction::TranslateWinPath($root) . "', '{$file}','sff-{$id}');\" id=\"sff-{$id}\">"; $out .= "</td><td align=\"left\">"; $out .= htmlentities($file); $out .= "</td></tr>"; } $out .= <<<END \t\t\t\t\t\t\t</tbody> \t\t\t\t\t\t</table> \t\t\t\t\t</td> \t\t\t\t</tr> \t\t\t</table> END; return $out; }
function backupMethodChooser($activeMethod) { $options = array(); if (!defined('_JEXEC')) { $options[] = mosHTML::makeOption('ajax', JoomlapackLangManager::_('CONFIG_METHODAJAX')); $options[] = mosHTML::makeOption('redirect', JoomlapackLangManager::_('CONFIG_METHODJSREDIRECT')); echo mosHTML::selectList($options, 'backupMethod', '', 'value', 'text', $activeMethod); } else { $options[] = JHTML::_('select.option', 'ajax', JoomlapackLangManager::_('CONFIG_METHODAJAX')); $options[] = JHTML::_('select.option', 'redirect', JoomlapackLangManager::_('CONFIG_METHODJSREDIRECT')); echo JHTML::_('select.genericlist', $options, 'backupMethod', '', 'value', 'text', $activeMethod); } }
function CommonFooter() { // Skip footer for AJAX calls if (JoomlapackAbstraction::isSAJAX()) { return; } $option = JoomlapackAbstraction::getParam('option', 'com_joomlapack'); ?> <p> [ <a href="index2.php?option=<?php echo $option; ?> "><?php echo JoomlapackLangManager::_('CPANEL_HOME'); ?> </a> ] <br /> <span style="font-size:x-small;"> JoomlaPack <?php echo _JP_VERSION; ?> . Copyright © 2006-2008 <a href="http://www.joomlapack.net">JoomlaPack Developers</a>.<br/> <a href="http://www.joomlapack.net">JoomlaPack</a> is Free Software released under the GNU/GPL License. </span> </p> <?php }
function _checkCollision() { jpimport('classes.core.utility.configuration'); $lastLock = JoomlapackTables::ReadVar('CUBELock'); // Expire CUBE lock after two minutes of inactivity if (is_null($lastLock)) { $noLock = true; } else { $now = time(); $noLock = $now - $lastLock > 120; } if (!$noLock) { die(JoomlapackLangManager::_('FRONTEND_STATUS501')); } }
/** * Returns the admin list of multidb definitions * * @return string The HTML of the table */ function getMultiDBList() { jpimport('helpers.lang'); $lang_active = JoomlapackLangManager::_('MULTIDB_ACTIVE'); $lang_host = JoomlapackLangManager::_('MULTIDB_HOST'); $lang_database = JoomlapackLangManager::_('MULTIDB_DATABASE'); $out = ''; $out .= <<<END \t\t\t<table class="adminlist"> \t\t\t<thead> \t\t\t<tr> \t\t\t\t<th width="5">#</th> \t\t\t\t<th class="title" width="100px">{$lang_active}</th> \t\t\t\t<th class="title">{$lang_host}</th> \t\t\t\t<th class="title">{$lang_database}</th> \t\t\t\t<th width="80" align="right"></th> \t\t\t\t<th width="80" align="right"></th> \t\t\t</tr> \t\t\t</thead> \t\t\t<tbody> END; $allRows = $this->_getRowList(); if (count($allRows) > 0) { foreach ($allRows as $row) { $checked = $row['active'] ? " checked = \"true\" " : ""; $row_id = $row['id']; $row_host = $row['host']; $row_database = $row['database']; $lang_edit = JoomlapackLangManager::_('MULTIDB_EDIT'); $lang_delete = JoomlapackLangManager::_('MULTIDB_DELETE'); $out .= <<<ENDTHISROW \t\t\t<tr> \t\t\t\t<td>{$row_id}</td> \t\t\t\t<td><input type="checkbox" {$checked} onclick="ToggleActive({$row_id});" /></td> \t\t\t\t<td>{$row_host}</td> \t\t\t\t<td>{$row_database}</td> \t\t\t\t<td><a href="javascript:editRow({$row_id});">{$lang_edit}</a></td> \t\t\t\t<td><a href="javascript:deleteRow({$row_id});">{$lang_delete}</a></td> \t\t\t</tr> ENDTHISROW; } } else { $out .= '<tr><td colspan="6">' . JoomlapackLangManager::_('MULTIDB_NORECORDS') . '</td></tr>'; } $out .= <<<END \t\t\t</tbody> \t\t</table> END; return $out; }
$myBase = realpath($myBase) == '' ? $myBase : realpath($myBase); // 1.2a3 -- Rare case when $myBase == '/' define('DS', DIRECTORY_SEPARATOR); define('JPATH_SITE', realpath($myBase)); define('JPATH_COMPONENT_ADMINISTRATOR', $myBase . DS . 'administrator' . DS . 'components' . DS . $option); define('JPATH_COMPONENT', $myBase . DS . 'components' . DS . $option); } // Include Joomla! Version Abstraction Layer require_once JPATH_COMPONENT_ADMINISTRATOR . DS . 'helpers' . DS . 'frameworkabstraction.php'; // Include abstract classes definitions jpimport('classes.abstract.object'); jpimport('classes.abstract.filter'); jpimport('classes.abstract.enginearchiver'); jpimport('classes.abstract.engineparts'); // Always populate basic Joomla! page parameters and make them global global $act, $task; // Get the parameters from the request $act = JoomlapackAbstraction::getParam('act', 'default'); $task = JoomlapackAbstraction::getParam('task', ''); // Load language definitions require_once JPATH_COMPONENT_ADMINISTRATOR . DS . 'helpers' . DS . 'lang.php'; switch ($act) { case "fullbackup": require_once JPATH_COMPONENT . '/includes/CFullBackup.php'; $tickableObject =& CFullBackup::getInstance(); $tickableObject->tick(); break; default: echo JoomlapackLangManager::_('FRONTEND_ACCESSDENIED'); break; }
/** * Outputs an error condition. Used by the JavaScript Redirects backup method. * It displays all errors found in the class' _errorStack array. * * @access private * @since 1.2.b1 */ function _echoHTML_Redirects_Error() { ?> <div id="Main"> <div id="Timeout" style="display:none; margin-top: 10px;" class="sitePack"> <table border="0" width="100%"> <tr> <td valign="top"> <img src="<?php echo JoomlapackCommonHTML::getImageURI('error_big'); ?> " border="0" /> </td> </tr> <?php foreach ($this->_errorStack as $errorString) { ?> <tr> <td> <p><?php echo $errorString; ?> </p> </td> </tr> <?php } ?> <tr> <td> </td> <td> <a href="<?php echo JoomlapackAbstraction::JPLink('log'); ?> "> <div class="jpbutton"> <img src="<?php echo JoomlapackCommonHTML::getImageURI('log'); ?> " border="0" /> <p><?php echo JoomlapackLangManager::_('CPANEL_LOG'); ?> </p> </div> </a> </td> </tr> </table> </div> </div> <?php }
function _echoFix() { $jpconfiguration =& JoomlapackConfiguration::getInstance(); $db = JoomlapackAbstraction::getDatabase(); echo JoomlapackCommonHTML::getAdminHeadingHTML(JoomlapackLangManager::_('CPANEL_CONFIGMIGRATE')); // Catch the "nothing to do" case if ($jpconfiguration->get('siteRoot') == JPATH_SITE) { echo JoomlapackLangManager::_('CONFIGMIGRATE_NOFIXREQUIRED'); return; } // Sometimes, it is possible that the siteRoot configuration value is not set // (e.g. manually upgrading from an older version, keeping the config xml file). // This will fix it if (is_null($jpconfiguration->get('siteRoot'))) { echo JoomlapackLangManager::_('CONFIGMIGRATE_NOROOTSTORED'); $jpconfiguration->set('siteRoot', JPATH_SITE); $jpconfiguration->SaveConfiguration(); return; } // A genuine case of site location mismatch. Let's take a look at it. $oldPath = JoomlapackAbstraction::TranslateWinPath($jpconfiguration->get('siteRoot')); $newPath = JoomlapackAbstraction::TranslateWinPath(JPATH_SITE); $sql = 'SELECT * FROM ' . $db->nameQuote('#__jp_exclusion'); $db->setQuery($sql); $temparray = $db->loadAssocList(); foreach ($temparray as $row) { $value = $row['value']; if (strstr($value, $oldPath)) { $value = str_replace($oldPath, $newPath, $value); $sql = 'UPDATE ' . $db->nameQuote('#__jp_exclusion') . ' SET ' . $db->nameQuote('value') . ' = ' . $db->Quote($value) . ' WHERE ' . $db->nameQuote('id') . ' = ' . $db->Quote($row['id']); $db->setQuery($sql); $db->query(); } } echo JoomlapackLangManager::_('CONFIGMIGRATE_FIXED'); }
function _echoJavaScript() { $this->commonSAJAX(); ?> <script type="text/javascript"> <?php sajax_show_javascript(); ?> sajax_fail_handle = SAJAXTrap; function SAJAXTrap( myData ) { alert('Invalid AJAX reponse: ' + myData); } function do_deletebackup( filename ) { x_deleteBackup( filename, do_deletebackup_cb ); } function do_deletebackup_cb( myRet ) { if( myRet ) { alert('<?php echo JoomlapackLangManager::_('BUADMIN_DELETESUCCESS'); ?> '); } else { alert('<?php echo JoomlapackLangManager::_('BUADMIN_DELETEFAILED'); ?> '); } history.go(0); } </script> <?php }
function getDirSelectionHTML($root) { jpimport('classes.filter.def'); jpimport('helpers.lang'); $root = realpath($root); $out = <<<END \t\t\t<h4>{$root}</h4> \t\t\t<table class="adminlist"> \t\t\t\t<tr> \t\t\t\t\t<th align="left" width="50"> END; $out .= JoomlapackLangManager::_('DEF_EXCLUDE') . "\n" . "</th><th class=\"title\">" . JoomlapackLangManager::_('DEF_DIRECTORY') . "</th></tr>"; $def = new JoomlapackFilterDEF(); $def->init(); $dirs = $def->getDirectory($root); $id = 0; foreach ($dirs as $dir => $excluded) { $id++; $checked = $excluded ? " checked = \"true\" " : ""; $nocheck = $dir == "." || $dir == ".."; $out .= "\n<tr><td align=\"center\">"; if (!$nocheck) { $out .= "<input type=\"checkbox\" {$checked} onclick=\"ToggleFilter('" . JoomlapackAbstraction::TranslateWinPath($root) . "', '{$dir}','def-{$id}');\" id=\"def-{$id}\">"; } else { $out .= " "; } $out .= "</td><td align=\"left\">"; if ($excluded) { $out .= htmlentities($dir); } else { $out .= "<a href=\"javascript:dirSelectionHTML('" . JoomlapackAbstraction::TranslateWinPath($root . DIRECTORY_SEPARATOR . $dir) . "');\">" . htmlentities($dir) . "</a>"; } $out .= "</td></tr>"; } $out .= "\n</table>"; return $out; }
/** * Renders the JoomlaPack's overview tabbed pane */ function _getTabsHTML() { // Get some status information $config =& JoomlapackConfiguration::getInstance(); $this->_isOutWritable = $config->isOutputWriteable(); $this->_isTempWritable = $config->isTempWriteable(); $this->_isStatusGood = $this->_isOutWritable && $this->_isTempWritable; $this->_defaultDirs = realpath($config->OutputDirectory) == realpath(JPATH_COMPONENT_ADMINISTRATOR . DS . 'backup') || realpath($config->TempDirectory) == realpath(JPATH_COMPONENT_ADMINISTRATOR . DS . 'backup'); if (defined('_JEXEC')) { jimport('joomla.html.pane'); $tabs =& JPane::getInstance('sliders'); echo $tabs->startPane('jpstatuspane'); } else { $tabs = new mosTabs(1); $tabs->startPane('jpstatuspane'); } if (defined('_JEXEC')) { echo $tabs->startPanel(JoomlapackLangManager::_('MAIN_OVERVIEW'), 'jpstatusov'); } else { $tabs->startTab(JoomlapackLangManager::_('MAIN_OVERVIEW'), 'jpstatusov'); } echo '<p class="sanityCheck">' . JoomlapackLangManager::_('MAIN_STATUS') . ': '; echo JoomlapackCommonHTML::colorizeWriteStatus($this->_isStatusGood, true, 'appgood', 'appnotgood', 'main') . '</p>'; // --- START --- Detect use of default temp directory if ($this->_defaultDirs) { echo '<p class="sanityCheck">' . JoomlapackLangManager::_('MAIN_WARNING') . '<br/>'; echo '<a href="http://www.joomlapack.net/index.php?option=com_content&id=75">' . JoomlapackLangManager::_('MAIN_WARNING_INFO') . '</a></p>'; } // --- END --- if (defined('_JEXEC')) { echo $tabs->endPanel(); echo $tabs->startPanel(JoomlapackLangManager::_('MAIN_DETAILS'), 'jpstatusdet'); } else { $tabs->endTab(); $tabs->startTab(JoomlapackLangManager::_('MAIN_DETAILS'), 'jpstatusdet'); } // Populate side panel $item = JoomlapackLangManager::_('MAIN_ITEM'); $status = JoomlapackLangManager::_('MAIN_STATUS'); $tempDir = JoomlapackLangManager::_('COMMON_TEMPDIR'); $tempStatus = JoomlapackCommonHTML::colorizeWriteStatus($this->_isTempWritable, true); $outDir = JoomlapackLangManager::_('COMMON_OUTDIR'); $outStatus = JoomlapackCommonHTML::colorizeWriteStatus($this->_isOutWritable, true); $verCheckTitle = JoomlapackLangManager::_('COMMON_VERSION_CHECK'); $verHTML = $this->checkAppStatusV(strstr(_JP_VERSION, 'SVN') ? 0 : 1); echo <<<ENDSNIPPET \t\t\t<table align="center" border="1" cellspacing="0" cellpadding="5" class="adminlist"> \t\t\t\t<thead> \t\t\t\t\t<tr> \t\t\t\t\t\t<th class="title">{$item}</th> \t\t\t\t\t\t<th>{$status}</th> \t\t\t\t\t</tr> \t\t\t\t</thead> \t\t\t\t<tbody> \t\t\t\t\t<tr> \t\t\t\t\t\t<td>{$tempDir}</td> \t\t\t\t\t\t<td>{$tempStatus}</td> \t\t\t\t\t</tr> \t\t\t\t\t<tr> \t\t\t\t\t\t<td>{$outDir}</td> \t\t\t\t\t\t<td>{$outStatus}</td> \t\t\t\t\t</tr> \t\t\t\t\t<tr> \t\t\t\t\t\t<td>{$verCheckTitle}</td> \t\t\t\t\t\t<td>{$verHTML}</td> \t\t\t\t\t</tr> \t\t\t\t</tbody> \t\t\t</table> ENDSNIPPET; if (defined('_JEXEC')) { echo $tabs->endPanel(); echo $tabs->startPanel(JoomlapackLangManager::_('MAIN_TRANSLATIONCREDITS'), 'jptranscredits'); } else { $tabs->endTab(); $tabs->startTab(JoomlapackLangManager::_('MAIN_TRANSLATIONCREDITS'), 'jptranscredits'); } $translationlanglabel = JoomlapackLangManager::_('MAIN_TRANSLATIONLANG'); $translationlang = JoomlapackLangManager::_('INFO_LANGUAGE'); $translationverlabel = JoomlapackLangManager::_('MAIN_TRANSLATIONVER'); $translationver = JoomlapackLangManager::_('INFO_JPVER'); $translationauthorlabel = JoomlapackLangManager::_('MAIN_TRANSLATIONAUTHOR'); $translationauthor = JoomlapackLangManager::_('INFO_AUTHOR'); $trasnlationurllabel = JoomlapackLangManager::_('MAIN_TRANSLATIONURL'); $trasnlationurl = JoomlapackLangManager::_('INFO_AUTHORURL'); echo <<<ENDSNIPPET \t\t\t<table align="center" border="1" cellspacing="0" cellpadding="5" class="adminlist"> \t\t\t\t<thead> \t\t\t\t\t<tr> \t\t\t\t\t\t<th class="title">{$item}</th> \t\t\t\t\t\t<th>{$status}</th> \t\t\t\t\t</tr> \t\t\t\t</thead> \t\t\t\t<tbody> \t\t\t\t\t<tr> \t\t\t\t\t\t<td>{$translationlanglabel}</td> \t\t\t\t\t\t<td>{$translationlang}</td> \t\t\t\t\t</tr> \t\t\t\t\t<tr> \t\t\t\t\t\t<td>{$translationverlabel}</td> \t\t\t\t\t\t<td>{$translationver}</td> \t\t\t\t\t</tr> \t\t\t\t\t<tr> \t\t\t\t\t\t<td>{$translationauthorlabel}</td> \t\t\t\t\t\t<td>{$translationauthor}</td> \t\t\t\t\t</tr> \t\t\t\t\t<tr> \t\t\t\t\t\t<td>{$trasnlationurllabel}</td> \t\t\t\t\t\t<td>{$trasnlationurl}</td> \t\t\t\t\t</tr> \t\t\t\t</tbody> \t\t\t</table> ENDSNIPPET; if (defined('_JEXEC')) { echo $tabs->endPanel(); echo $tabs->endPane(); } else { $tabs->endTab(); $tabs->endPane(); } }
// Configuration screen if (!JoomlapackAbstraction::isSAJAX() && $task != 'save') { echo '<link rel="stylesheet" href="components/' . $option . '/assets/css/jpcss.css" type="text/css" />'; } switch ($task) { case "apply": $configuration =& JoomlapackConfiguration::getInstance(); $configuration->SaveFromPost(); jpackScreens::fConfig(); break; case "save": $configuration =& JoomlapackConfiguration::getInstance(); $configuration->SaveFromPost(); $skipFooter = true; $uri = JoomlapackAbstraction::SiteURI() . '/administrator/index.php?option=' . JoomlapackAbstraction::getParam('option', 'com_joomlapack'); $html = JoomlapackLangManager::_('CONFIG_CONT_LINE1') . ' <a href="' . $uri . '">' . JoomlapackLangManager::_('CONFIG_CONT_LINE2') . '</a> ' . JoomlapackLangManager::_('CONFIG_CONT_LINE3'); echo <<<ENDSNIPPET \t\t\t\t<script language="Javascript" type="text/javascript"> \t\t\t\twindow.location="{$uri}"; \t\t\t\t</script> \t\t\t\t<noscript> \t\t\t\t{$html} \t\t\t\t</noscript> ENDSNIPPET; //jpackScreens::fMain(); break; case "cancel": jpackScreens::fMain(); break; default: jpackScreens::fConfig();