/** * This function utilizes the Mimer SQL Validator service * to validate an SQL query * * <http://developer.mimer.com/validator/index.htm> * * @param string $sql SQL query to validate * * @return string Validator result string * * @global array The PMA configuration array */ function PMA_validateSQL($sql) { global $cfg; $str = ''; if ($cfg['SQLValidator']['use']) { if (isset($GLOBALS['sqlvalidator_error']) && $GLOBALS['sqlvalidator_error']) { $str = sprintf(__('The SQL validator could not be initialized. Please check if you have installed the necessary PHP extensions as described in the %sdocumentation%s.'), '<a href="' . PMA_Util::getDocuLink('faq', 'faqsqlvalidator') . '" target="documentation">', '</a>'); } else { // create new class instance $srv = new PMA_SQLValidator(); // Checks for username settings // The class defaults to anonymous with an empty password // automatically if ($cfg['SQLValidator']['username'] != '') { $srv->setCredentials($cfg['SQLValidator']['username'], $cfg['SQLValidator']['password']); } // Identify ourselves to the server properly... $srv->appendCallingProgram('phpMyAdmin', PMA_VERSION); // ... and specify what database system we are using $srv->setTargetDbms('MySQL', PMA_MYSQL_STR_VERSION); // Log on to service $srv->start(); // Do service validation $str = $srv->validationString($sql); } } // end if // Gives string back to caller return $str; }
/** * Callback function for replacing [doc@anchor] links in bb code. * * @param array $found Array of preg matches * * @return string Replaced string */ function PMA_replaceDocLink($found) { $anchor = $found[1]; if (strncmp('faq', $anchor, 3) == 0) { $page = 'faq'; } else { if (strncmp('cfg', $anchor, 3) == 0) { $page = 'cfg'; } else { /* Guess */ $page = 'setup'; } } $link = PMA_Util::getDocuLink($page, $anchor); return '<a href="' . $link . '" target="documentation">'; }
/** * prints out one diagnostic message for a configuration parameter * * @param string $parameter config parameter name to display * @param boolean $relationParameterSet whether this parameter is set * @param array $messages utility messages * @param string $docAnchor anchor in documentation * * @return string */ function PMA_getDiagMessageForParameter($parameter, $relationParameterSet, $messages, $docAnchor) { $retval = '<tr><th class="left">'; $retval .= '$cfg[\'Servers\'][$i][\'' . $parameter . '\'] ... '; $retval .= '</th><td class="right">'; if ($relationParameterSet) { $retval .= $messages['ok']; } else { $retval .= sprintf($messages['error'], PMA_Util::getDocuLink('config', 'cfg_Servers_' . $docAnchor)); } $retval .= '</td></tr>' . "\n"; return $retval; }
/** * Creates the code for displaying the links * at the top of the navigation panel * * @return string HTML code for the links */ private function _links() { // always iconic $showIcon = true; $showText = false; $retval = '<!-- LINKS START -->'; $retval .= '<div id="navipanellinks">'; $retval .= PMA_Util::getNavigationLink('index2.php' . PMA_URL_getCommon(), $showText, __('Home'), $showIcon, 'b_home.png'); // if we have chosen server if ($GLOBALS['server'] != 0) { // Logout for advanced authentication if ($GLOBALS['cfg']['Server']['auth_type'] != 'config') { $link = 'index2.php' . $GLOBALS['url_query']; $link .= '&old_usr='******'PHP_AUTH_USER']); $retval .= PMA_Util::getNavigationLink($link, $showText, __('Log out'), $showIcon, 's_loggoff.png', '', true); } } $retval .= PMA_Util::getNavigationLink(PMA_Util::getDocuLink('index'), $showText, __('phpMyAdmin documentation'), $showIcon, 'b_docs.png', '', false, 'documentation'); $retval .= PMA_Util::getNavigationLink(PMA_Util::getMySQLDocuURL('', ''), $showText, __('Documentation'), $showIcon, 'b_sqlhelp.png', '', false, 'mysql_doc'); $retval .= PMA_Util::getNavigationLink('#', $showText, __('Navigation panel settings'), $showIcon, 's_cog.png', 'pma_navigation_settings_icon', false, '', defined('PMA_DISABLE_NAVI_SETTINGS') ? array('hide') : array()); $retval .= PMA_Util::getNavigationLink('#', $showText, __('Reload navigation panel'), $showIcon, 's_reload.png', 'pma_navigation_reload'); $retval .= '</div>'; $retval .= '<!-- LINKS ENDS -->'; return $retval; }
/** * Prints Html For Export Options * * @param String $export_type Selected Export Type * * @return string */ function PMA_getHtmlForExportOptionsOutputFormat($export_type) { $html = '<li>'; $html .= '<label for="filename_template" class="desc">'; $html .= __('File name template:'); $trans = new PMA_Message(); $trans->addMessage(__('@SERVER@ will become the server name')); if ($export_type == 'database' || $export_type == 'table') { $trans->addMessage(__(', @DATABASE@ will become the database name')); if ($export_type == 'table') { $trans->addMessage(__(', @TABLE@ will become the table name')); } } $msg = new PMA_Message(__('This value is interpreted using %1$sstrftime%2$s, ' . 'so you can use time formatting strings. ' . 'Additionally the following transformations will happen: %3$s. ' . 'Other text will be kept as is. See the %4$sFAQ%5$s for details.')); $msg->addParam('<a href="' . PMA_linkURL(PMA_getPHPDocLink('function.strftime.php')) . '" target="documentation" title="' . __('Documentation') . '">', false); $msg->addParam('</a>', false); $msg->addParam($trans); $doc_url = PMA_Util::getDocuLink('faq', 'faq6-27'); $msg->addParam('<a href="' . $doc_url . '" target="documentation">', false); $msg->addParam('</a>', false); $html .= PMA_Util::showHint($msg); $html .= '</label>'; $html .= '<input type="text" name="filename_template" id="filename_template" '; $html .= ' value="'; if (isset($_GET['filename_template'])) { $html .= htmlspecialchars($_GET['filename_template']); } else { if ($export_type == 'database') { $html .= htmlspecialchars($GLOBALS['PMA_Config']->getUserValue('pma_db_filename_template', $GLOBALS['cfg']['Export']['file_template_database'])); } elseif ($export_type == 'table') { $html .= htmlspecialchars($GLOBALS['PMA_Config']->getUserValue('pma_table_filename_template', $GLOBALS['cfg']['Export']['file_template_table'])); } else { $html .= htmlspecialchars($GLOBALS['PMA_Config']->getUserValue('pma_server_filename_template', $GLOBALS['cfg']['Export']['file_template_server'])); } } $html .= '"'; $html .= '/>'; $html .= '<input type="checkbox" name="remember_template" '; $html .= 'id="checkbox_remember_template" '; $html .= PMA_exportCheckboxCheck('remember_file_template'); $html .= '/>'; $html .= '<label for="checkbox_remember_template">'; $html .= __('use this for future exports'); $html .= '</label>'; $html .= '</li>'; return $html; }
PMA_printListItem(__('Show PHP information'), 'li_phpinfo', 'phpinfo.php' . $common_url_query, null, '_blank'); } echo ' </ul>'; echo ' </div>'; } echo '<div class="group pmagroup">'; echo '<h2>phpMyAdmin</h2>'; echo '<ul>'; $class = null; // We rely on CSP to allow access to http://www.phpmyadmin.net, but IE lacks // support here and does not allow request to http once using https. if ($GLOBALS['cfg']['VersionCheck'] && (!$GLOBALS['PMA_Config']->get('is_https') || PMA_USR_BROWSER_AGENT != 'IE')) { $class = 'jsversioncheck'; } PMA_printListItem(__('Version information:') . ' ' . PMA_VERSION, 'li_pma_version', null, null, null, null, $class); PMA_printListItem(__('Documentation'), 'li_pma_docs', PMA_Util::getDocuLink('index'), null, '_blank'); PMA_printListItem(__('Wiki'), 'li_pma_wiki', PMA_linkURL('http://wiki.phpmyadmin.net/'), null, '_blank'); // does not work if no target specified, don't know why PMA_printListItem(__('Official Homepage'), 'li_pma_homepage', PMA_linkURL('http://www.phpMyAdmin.net/'), null, '_blank'); PMA_printListItem(__('Contribute'), 'li_pma_contribute', PMA_linkURL('http://www.phpmyadmin.net/home_page/improve.php'), null, '_blank'); PMA_printListItem(__('Get support'), 'li_pma_support', PMA_linkURL('http://www.phpmyadmin.net/home_page/support.php'), null, '_blank'); PMA_printListItem(__('List of changes'), 'li_pma_changes', PMA_linkURL('changelog.php'), null, '_blank'); echo ' </ul>'; echo ' </div>'; echo '</div>'; echo '</div>'; /** * Warning if using the default MySQL privileged account */ if ($server != 0 && $cfg['Server']['user'] == 'root' && $cfg['Server']['password'] == '') { trigger_error(__('Your configuration file contains settings (root with no password)' . ' that correspond to the default MySQL privileged account.' . ' Your MySQL server is running with this default, is open to' . ' intrusion, and you really should fix this security hole by' . ' setting a password for user \'root\'.'), E_USER_WARNING);
/** * Returns HTML for the menu bar of the designer page * * @param boolean $visualBuilder whether this is visual query builder * @param string $selected_page name of the selected page * * @return string html */ function PMA_getDesignerPageMenu($visualBuilder, $selected_page) { $iconClass = ''; $textClass = 'hidable hide'; $html = ''; if (!$visualBuilder) { $html .= '<div id="name-panel" style="overflow:hidden">'; $html .= '<span id="page_name" style="border:none">'; $html .= $selected_page == null ? __("Untitled") : htmlspecialchars($selected_page); $html .= '</span>'; $html .= '<span id="saved_state" style="border:none;width:5px">'; $html .= ($selected_page == null ? '*' : '') . '</span>'; $html .= '</div>'; } $html .= '<div class="pmd_header side-menu" id="side_menu">'; $html .= '<a class="M_butt" id="key_Show_left_menu" href="#" target="_self">'; $html .= '<img class="' . $iconClass . '" title="' . __('Show/Hide tables list') . '" alt="v" '; $html .= 'src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/downarrow2_m.png') . '" />'; $html .= '<span class="' . $textClass . '">' . __('Show/Hide tables list') . '</span>'; $html .= '</a>'; $html .= '<a href="#" id="toggleFullscreen" class="M_butt" target="_self">'; $html .= '<img class="' . $iconClass . '" title="' . __('View in fullscreen') . '" alt="" '; $html .= 'src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/viewInFullscreen.png') . '" />'; $html .= '<span class="' . $textClass . '" data-exit="' . __('Exit fullscreen'); $html .= '" data-enter="' . __('View in fullscreen') . '">' . __('View in fullscreen') . '</span>'; $html .= '</a>'; if (!$visualBuilder) { $html .= '<a id="newPage" href="#" '; $html .= 'class="M_butt" target="_self">'; $html .= '<img class="' . $iconClass . '" title="' . __('New page') . '"alt="" '; $html .= 'src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/page_add.png') . '" />'; $html .= '<span class="' . $textClass . '">' . __('New page') . '</span>'; $html .= '</a>'; $html .= '<a href="#" id="editPage" '; $html .= 'class="M_butt ajax" target="_self">'; $html .= '<img class="' . $iconClass . '" title="' . __('Open page') . '" alt="" '; $html .= 'src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/page_edit.png') . '" />'; $html .= '<span class="' . $textClass . '">' . __('Open page') . '</span>'; $html .= '</a>'; $html .= '<a href="#" id="savePos" '; $html .= 'class="M_butt" target="_self">'; $html .= '<img class="' . $iconClass . '" title="' . __('Save position') . '" alt="" '; $html .= 'src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/save.png') . '" />'; $html .= '<span class="' . $textClass . '">' . __('Save position') . '</span>'; $html .= '</a>'; $html .= '<a href="#" id="SaveAs" '; $html .= 'class="M_butt ajax" target="_self">'; $html .= '<img class="' . $iconClass . '" title="' . __('Save positions as') . '" alt="" '; $html .= 'src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/save_as.png') . '" />'; $html .= '<span class="' . $textClass . '">' . __('Save positions as') . '</span>'; $html .= '</a>'; $html .= '<a href="#" id="delPages" '; $html .= 'class="M_butt ajax" target="_self">'; $html .= '<img class="' . $iconClass . '" title="' . __('Delete pages') . '" alt="" '; $html .= 'src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/page_delete.png') . '" />'; $html .= '<span class="' . $textClass . '">' . __('Delete pages') . '</span>'; $html .= '</a>'; } $html .= '<a href="#" id="StartTableNew" '; $html .= 'class="M_butt" target="_self">'; $html .= '<img class="' . $iconClass . '" title="' . __('Create table') . '" alt="" '; $html .= 'src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/table.png') . '" />'; $html .= '<span class="' . $textClass . '">' . __('Create table') . '</span>'; $html .= '</a>'; $html .= '<a href="#" class="M_butt" '; $html .= 'id="rel_button" target="_self">'; $html .= '<img class="' . $iconClass . '" title="' . __('Create relation') . '" alt="" '; $html .= 'src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/relation.png') . '" />'; $html .= '<span class="' . $textClass . '">' . __('Create relation') . '</span>'; $html .= '</a>'; $html .= '<a href="#" '; $html .= 'class="M_butt" id="display_field_button" target="_self">'; $html .= '<img class="' . $iconClass . '" title="' . __('Choose column to display') . '" alt="" '; $html .= 'src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/display_field.png') . '" />'; $html .= '<span class="' . $textClass . '">' . __('Choose column to display') . '</span>'; $html .= '</a>'; $html .= '<a href="#" id="reloadPage" class="M_butt" '; $html .= 'target="_self">'; $html .= '<img class="' . $iconClass . '" title="' . __('Reload') . '" alt="" '; $html .= 'src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/reload.png') . '" />'; $html .= '<span class="' . $textClass . '">' . __('Reload') . '</span>'; $html .= '</a>'; $html .= '<a href="' . PMA_Util::getDocuLink('faq', 'faq6-31') . '" '; $html .= 'target="documentation" class="M_butt" target="_self">'; $html .= '<img class="' . $iconClass . '" title="' . __('Help') . '" alt="" '; $html .= 'src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/help.png') . '" />'; $html .= '<span class="' . $textClass . '">' . __('Help') . '</span>'; $html .= '</a>'; $html .= '<a href="#" '; $html .= 'class="M_butt" id="angular_direct_button" target="_self">'; $html .= '<img class="' . $iconClass . '" title="' . __('Angular links') . ' / ' . __('Direct links') . '" alt="" '; $html .= 'src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/ang_direct.png') . '" />'; $html .= '<span class="' . $textClass . '">' . __('Angular links') . ' / ' . __('Direct links') . '</span>'; $html .= '</a>'; $html .= '<a href="#" class="M_butt" '; $html .= 'id="grid_button" target="_self">'; $html .= '<img class="' . $iconClass . '" title="' . __('Snap to grid') . '" alt="" '; $html .= 'src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/grid.png') . '" />'; $html .= '<span class="' . $textClass . '">' . __('Snap to grid') . '</span>'; $html .= '</a>'; $html .= '<a href="#" class="M_butt" target="_self" id="key_SB_all">'; $html .= '<img class="' . $iconClass . '" title="' . __('Small/Big All') . '" alt="v" '; $html .= 'src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/downarrow1.png') . '" />'; $html .= '<span class="' . $textClass . '">' . __('Small/Big All') . '</span>'; $html .= '</a>'; $html .= '<a href="#" id="SmallTabInvert" '; $html .= 'class="M_butt" target="_self" >'; $html .= '<img class="' . $iconClass . '" title="' . __('Toggle small/big') . '" alt="key" '; $html .= 'src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/bottom.png') . '" />'; $html .= '<span class="' . $textClass . '">' . __('Toggle small/big') . '</span>'; $html .= '</a>'; $html .= '<a href="#" id="relLineInvert" '; $html .= 'class="M_butt" target="_self" >'; $html .= '<img class="' . $iconClass . '" title="' . __('Toggle relation lines') . '" alt="key" '; $html .= 'src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/toggle_lines.png') . '" />'; $html .= '<span class="' . $textClass . '">' . __('Toggle relation lines') . '</span>'; $html .= '</a>'; if (!$visualBuilder) { $html .= '<a href="#" id="exportPages" '; $html .= 'class="M_butt" target="_self" >'; $html .= '<img class="' . $iconClass . '" title="' . __('Export schema') . '" alt="key" '; $html .= 'src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/export.png') . '" />'; $html .= '<span class="' . $textClass . '">' . __('Export schema') . '</span>'; $html .= '</a>'; } else { $html .= '<a class="M_butt" href="#" onclick="build_query(\'SQL Query on Database\', 0)" '; $html .= 'onmousedown="return false;" class="M_butt" target="_self">'; $html .= '<img class="' . $iconClass . '" title="' . __('Build Query') . '" alt="key" '; $html .= 'width="20" height="20" src="'; $html .= $_SESSION['PMA_Theme']->getImgPath('pmd/query_builder.png') . '" />'; $html .= '<span class="' . $textClass . '">' . __('Build Query') . '</span>'; $html .= '</a>'; } $html .= '<a href="#" class="M_butt" target="_self" id="key_Left_Right">'; $html .= '<img class="' . $iconClass . '" title="' . __('Move Menu') . '" alt=">"'; $html .= ' data-right="' . $_SESSION['PMA_Theme']->getImgPath('pmd/2leftarrow_m.png'); $html .= '" src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/2rightarrow_m.png') . '" />'; $html .= '<span class="' . $textClass . '">' . __('Move Menu') . '</span>'; $html .= '</a>'; $html .= '<a href="#" class="M_butt" target="_self" id="pin_Text">'; $html .= '<img class="' . $iconClass . '" title="' . __('Pin text') . '" alt=">"'; $html .= ' data-right="' . $_SESSION['PMA_Theme']->getImgPath('pmd/anchor.png'); $html .= '" src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/anchor.png') . '" />'; $html .= '<span class="' . $textClass . '">' . __('Pin text') . '</span>'; $html .= '</a>'; $html .= '</div>'; return $html; }
/** * Creates the code for displaying the links * at the top of the navigation panel * * @return string HTML code for the links */ private function _links() { // always iconic $showIcon = true; $showText = false; $retval = '<!-- LINKS START -->'; $retval .= '<div id="navipanellinks">'; $retval .= $this->_getLink('index.php?' . PMA_URL_getCommon(), $showText, __('Home'), $showIcon, 'b_home.png'); // if we have chosen server if ($GLOBALS['server'] != 0) { // Logout for advanced authentication if ($GLOBALS['cfg']['Server']['auth_type'] != 'config') { $link = 'index.php?' . $GLOBALS['url_query']; $link .= '&old_usr='******'PHP_AUTH_USER']); $retval .= $this->_getLink($link, $showText, __('Log out'), $showIcon, 's_loggoff.png', '', true); } $link = 'querywindow.php?'; $link .= PMA_URL_getCommon($GLOBALS['db'], $GLOBALS['table']); $link .= '&no_js=true'; $retval .= $this->_getLink($link, $showText, __('Query window'), $showIcon, 'b_selboard.png', 'pma_open_querywindow', true); } $retval .= $this->_getLink(PMA_Util::getDocuLink('index'), $showText, __('phpMyAdmin documentation'), $showIcon, 'b_docs.png', '', false, 'documentation'); if ($showIcon) { $retval .= PMA_Util::showMySQLDocu('', true); } if ($showText) { // PMA_showMySQLDocu always spits out an icon, // we just replace it with some perl regexp. $link = preg_replace('/<img[^>]+>/i', __('Documentation'), PMA_Util::showMySQLDocu('', true)); $retval .= $link; $retval .= '<br />'; } $retval .= $this->_getLink('#', $showText, __('Reload navigation panel'), $showIcon, 's_reload.png', 'pma_navigation_reload'); $retval .= '</div>'; $retval .= '<!-- LINKS ENDS -->'; return $retval; }
} require_once './libraries/DatabaseInterface.class.php'; if (defined('TESTSUITE')) { /** * For testsuite we use dummy driver which can fake some queries. */ include_once './libraries/dbi/DBIDummy.class.php'; $extension = new PMA_DBI_Dummy(); } else { /** * First check for the mysqli extension, as it's the one recommended * for the MySQL server's version that we support */ $extension = 'mysqli'; if (!PMA_DatabaseInterface::checkDbExtension($extension)) { $docurl = PMA_Util::getDocuLink('faq', 'faqmysql'); $doclink = sprintf(__('See %sour documentation%s for more information.'), '[a@' . $docurl . '@documentation]', '[/a]'); $extension = 'mysql'; if (!PMA_DatabaseInterface::checkDbExtension($extension)) { // warn about both extensions missing and exit PMA_warnMissingExtension('mysqli|mysql', true, $doclink); } elseif (empty($_SESSION['mysqlwarning'])) { trigger_error(__('You are using the mysql extension which is deprecated in ' . 'phpMyAdmin. Please consider installing the mysqli ' . 'extension.') . ' ' . $doclink, E_USER_WARNING); // tell the user just once per session $_SESSION['mysqlwarning'] = true; } } /** * Including The DBI Plugin */ switch ($extension) {
/** * Returns link to documentation * * @param string $path * * @return string */ public function getDocLink($path) { $test = substr($path, 0, 6); if ($test == 'Import' || $test == 'Export') { return ''; } return PMA_Util::getDocuLink('config', 'cfg_' . $this->_getOptName($path)); }
/** * prints out diagnostic info for pma relation feature * * @param array $cfgRelation Relation configuration * * @return string */ function PMA_getRelationsParamDiagnostic($cfgRelation) { $retval = ''; $doc_url = PMA_Util::getDocuLink('config', 'cfg_Servers_%s'); $messages['error'] = '<font color="red"><strong>' . __('not OK') . '</strong></font>' . ' [ <a href="' . $doc_url . '" target="documentation">' . __('Documentation') . '</a> ]'; $messages['ok'] = '<font color="green"><strong>' . _pgettext('Correctly working', 'OK') . '</strong></font>'; $messages['enabled'] = '<font color="green">' . __('Enabled') . '</font>'; $messages['disabled'] = '<font color="red">' . __('Disabled') . '</font>'; if (false === $GLOBALS['cfg']['Server']['pmadb']) { $retval .= 'PMA Database ... ' . sprintf($messages['error'], 'pmadb') . '<br />' . "\n" . __('General relation features') . ' <font color="green">' . __('Disabled') . '</font>' . "\n"; } else { $retval .= '<table>' . "\n"; $retval .= PMA_getDiagMessageForParameter('pmadb', $GLOBALS['cfg']['Server']['pmadb'], $messages, 'pmadb'); $retval .= PMA_getDiagMessageForParameter('relation', isset($cfgRelation['relation']), $messages, 'relation'); $retval .= PMA_getDiagMessageForFeature(__('General relation features'), 'relwork', $messages); $retval .= PMA_getDiagMessageForParameter('table_info', isset($cfgRelation['table_info']), $messages, 'table_info'); $retval .= PMA_getDiagMessageForFeature(__('Display Features'), 'displaywork', $messages); $retval .= PMA_getDiagMessageForParameter('table_coords', isset($cfgRelation['table_coords']), $messages, 'table_coords'); $retval .= PMA_getDiagMessageForParameter('pdf_pages', isset($cfgRelation['pdf_pages']), $messages, 'pdf_pages'); $retval .= PMA_getDiagMessageForFeature(__('Creation of PDFs'), 'pdfwork', $messages); $retval .= PMA_getDiagMessageForParameter('column_info', isset($cfgRelation['column_info']), $messages, 'column_info'); $retval .= PMA_getDiagMessageForFeature(__('Displaying Column Comments'), 'commwork', $messages, false); $retval .= PMA_getDiagMessageForFeature(__('Browser transformation'), 'mimework', $messages); if ($cfgRelation['commwork'] && !$cfgRelation['mimework']) { $retval .= '<tr><td colspan=2 class="left">'; $retval .= __('Please see the documentation on how to update your column_comments table'); $retval .= '</td></tr>'; } $retval .= PMA_getDiagMessageForParameter('bookmarktable', isset($cfgRelation['bookmark']), $messages, 'bookmark'); $retval .= PMA_getDiagMessageForFeature(__('Bookmarked SQL query'), 'bookmarkwork', $messages); $retval .= PMA_getDiagMessageForParameter('history', isset($cfgRelation['history']), $messages, 'history'); $retval .= PMA_getDiagMessageForFeature(__('SQL history'), 'historywork', $messages); $retval .= PMA_getDiagMessageForParameter('designer_coords', isset($cfgRelation['designer_coords']), $messages, 'designer_coords'); $retval .= PMA_getDiagMessageForFeature(__('Designer'), 'designerwork', $messages); $retval .= PMA_getDiagMessageForParameter('recent', isset($cfgRelation['recent']), $messages, 'recent'); $retval .= PMA_getDiagMessageForFeature(__('Persistent recently used tables'), 'recentwork', $messages); $retval .= PMA_getDiagMessageForParameter('table_uiprefs', isset($cfgRelation['table_uiprefs']), $messages, 'table_uiprefs'); $retval .= PMA_getDiagMessageForFeature(__('Persistent tables\' UI preferences'), 'uiprefswork', $messages); $retval .= PMA_getDiagMessageForParameter('tracking', isset($cfgRelation['tracking']), $messages, 'tracking'); $retval .= PMA_getDiagMessageForFeature(__('Tracking'), 'trackingwork', $messages); $retval .= PMA_getDiagMessageForParameter('userconfig', isset($cfgRelation['userconfig']), $messages, 'userconfig'); $retval .= PMA_getDiagMessageForFeature(__('User preferences'), 'userconfigwork', $messages); $retval .= '</table>' . "\n"; $retval .= '<p>' . __('Quick steps to setup advanced features:') . '</p>'; $retval .= '<ul>'; $retval .= '<li>'; $retval .= __('Create the needed tables with the ' . '<code>examples/create_tables.sql</code>.'); $retval .= ' ' . PMA_Util::showDocu('setup', 'linked-tables'); $retval .= '</li>'; $retval .= '<li>'; $retval .= __('Create a pma user and give access to these tables.'); $retval .= ' ' . PMA_Util::showDocu('config', 'cfg_Servers_controluser'); $retval .= '</li>'; $retval .= '<li>'; $retval .= __('Enable advanced features in configuration file ' . '(<code>config.inc.php</code>), for example by ' . 'starting from <code>config.sample.inc.php</code>.'); $retval .= ' ' . PMA_Util::showDocu('setup', 'quick-install'); $retval .= '</li>'; $retval .= '<li>'; $retval .= __('Re-login to phpMyAdmin to load the updated configuration file.'); $retval .= '</li>'; $retval .= '</ul>'; } return $retval; }
?> " /> </a> <a href="#" onclick="location.reload(); return false" class="M_butt" target="_self"> <img title="<?php echo __('Reload'); ?> " alt="" src="<?php echo $_SESSION['PMA_Theme']->getImgPath('pmd/reload.png'); ?> " /> </a> <a href="<?php echo PMA_Util::getDocuLink('faq', 'faq6-31'); ?> " target="documentation" class="M_butt" target="_self"> <img title="<?php echo __('Help'); ?> " alt="" src="<?php echo $_SESSION['PMA_Theme']->getImgPath('pmd/help.png'); ?> " /> </a> <img class="M_bord" src="<?php echo $_SESSION['PMA_Theme']->getImgPath('pmd/bord.png');
echo '<li>'; echo '<label for="filename_template" class="desc">'; echo __('File name template:'); $trans = new PMA_Message(); $trans->addMessage(__('@SERVER@ will become the server name')); if ($export_type == 'database' || $export_type == 'table') { $trans->addMessage(__(', @DATABASE@ will become the database name')); if ($export_type == 'table') { $trans->addMessage(__(', @TABLE@ will become the table name')); } } $msg = new PMA_Message(__('This value is interpreted using %1$sstrftime%2$s, so you can use time formatting strings. Additionally the following transformations will happen: %3$s. Other text will be kept as is. See the %4$sFAQ%5$s for details.')); $msg->addParam('<a href="' . PMA_linkURL(PMA_getPHPDocLink('function.strftime.php')) . '" target="documentation" title="' . __('Documentation') . '">', false); $msg->addParam('</a>', false); $msg->addParam($trans); $doc_url = PMA_Util::getDocuLink('faq', 'faq6-27'); $msg->addParam('<a href="' . $doc_url . '" target="documentation">', false); $msg->addParam('</a>', false); echo PMA_Util::showHint($msg); echo '</label>'; echo '<input type="text" name="filename_template" id="filename_template" '; echo ' value="'; if (isset($_GET['filename_template'])) { echo htmlspecialchars($_GET['filename_template']); } else { if ($export_type == 'database') { echo htmlspecialchars($GLOBALS['PMA_Config']->getUserValue('pma_db_filename_template', $GLOBALS['cfg']['Export']['file_template_database'])); } elseif ($export_type == 'table') { echo htmlspecialchars($GLOBALS['PMA_Config']->getUserValue('pma_table_filename_template', $GLOBALS['cfg']['Export']['file_template_table'])); } else { echo htmlspecialchars($GLOBALS['PMA_Config']->getUserValue('pma_server_filename_template', $GLOBALS['cfg']['Export']['file_template_server']));
/** * Returns HTML for the top menu bar of the designer page * * @param boolean $visualBuilder whether this is visual query builder * @param string $selected_page name of the selected page * * @return string html */ function PMA_getDesignerPageTopMenu($visualBuilder, $selected_page) { $html = '<div class="pmd_header" id="top_menu">'; $html .= '<a href="#" onclick="Show_left_menu(' . 'document.getElementById(\'key_Show_left_menu\')' . '); return false" '; $html .= 'class="M_butt first" target="_self">'; $html .= '<img id="key_Show_left_menu" '; $html .= 'title="' . __('Show/Hide left menu') . '" alt="v" '; $html .= 'src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/downarrow2_m.png') . '" />'; $html .= '</a>'; $html .= '<a href="#" id="enterFullscreen" '; $html .= 'onclick="Enter_fullscreen(); return false" '; $html .= 'class="M_butt" target="_self">'; $html .= '<img title="' . __('View in fullscreen') . '" alt="" '; $html .= 'src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/viewInFullscreen.png') . '" />'; $html .= '</a>'; $html .= '<a href="#" id="exitFullscreen" '; $html .= 'onclick="Exit_fullscreen(); return false" '; $html .= 'class="M_butt hide" target="_self">'; $html .= '<img title="' . __('Exit fullscreen') . '" alt="" '; $html .= 'src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/exitFullscreen.png') . '" />'; $html .= '</a>'; if (!$visualBuilder) { $html .= '<img class="M_bord" alt="" '; $html .= 'src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/bord.png') . '" />'; $html .= '<a href="#" onclick="New(); return false" '; $html .= 'class="M_butt" target="_self">'; $html .= '<img title="' . __('New page') . '"alt="" '; $html .= 'src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/page_add.png') . '" />'; $html .= '</a>'; $html .= '<a href="#" onclick="Edit_pages(); return false" '; $html .= 'class="M_butt ajax" target="_self">'; $html .= '<img title="' . __('Open page') . '" alt="" '; $html .= 'src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/page_edit.png') . '" />'; $html .= '</a>'; $html .= '<a href="#" onclick="Save3(); return false" '; $html .= 'class="M_butt" target="_self">'; $html .= '<img title="' . __('Save position') . '" alt="" '; $html .= 'src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/save.png') . '" />'; $html .= '</a>'; $html .= '<a href="#" onclick="Save_as(); return false" '; $html .= 'class="M_butt ajax" target="_self">'; $html .= '<img title="' . __('Save positions as') . '" alt="" '; $html .= 'src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/save_as.png') . '" />'; $html .= '</a>'; $html .= '<a href="#" onclick="Delete_pages(); return false" '; $html .= 'class="M_butt ajax" target="_self">'; $html .= '<img title="' . __('Delete pages') . '" alt="" '; $html .= 'src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/page_delete.png') . '" />'; $html .= '</a>'; } $html .= '<img class="M_bord" alt="" '; $html .= 'src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/bord.png') . '" />'; $html .= '<a href="#" onclick="Start_table_new(); return false" '; $html .= 'class="M_butt" target="_self">'; $html .= '<img title="' . __('Create table') . '" alt="" '; $html .= 'src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/table.png') . '" />'; $html .= '</a>'; $html .= '<a href="#" onclick="Start_relation(); return false" class="M_butt" '; $html .= 'id="rel_button" target="_self">'; $html .= '<img title="' . __('Create relation') . '" alt="" '; $html .= 'src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/relation.png') . '" />'; $html .= '</a>'; $html .= '<a href="#" onclick="Start_display_field(); return false" '; $html .= 'class="M_butt" id="display_field_button" target="_self">'; $html .= '<img title="' . __('Choose column to display') . '" alt="" '; $html .= 'src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/display_field.png') . '" />'; $html .= '</a>'; $html .= '<a href="#" onclick="location.reload(); return false" class="M_butt" '; $html .= 'target="_self">'; $html .= '<img title="' . __('Reload') . '" alt="" '; $html .= 'src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/reload.png') . '" />'; $html .= '</a>'; $html .= '<a href="' . PMA_Util::getDocuLink('faq', 'faq6-31') . '" '; $html .= 'target="documentation" class="M_butt" target="_self">'; $html .= '<img title="' . __('Help') . '" alt="" '; $html .= 'src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/help.png') . '" />'; $html .= '</a>'; $html .= '<img class="M_bord" alt="" '; $html .= 'src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/bord.png') . '" />'; $html .= '<a href="#" onclick="Angular_direct(); return false" '; $html .= 'class="M_butt" id="angular_direct_button" target="_self">'; $html .= '<img alt="" '; $html .= 'title="' . __('Angular links') . ' / ' . __('Direct links') . '" '; $html .= 'src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/ang_direct.png') . '" />'; $html .= '</a>'; $html .= '<a href="#" onclick="Grid(); return false" class="M_butt" '; $html .= 'id="grid_button" target="_self">'; $html .= '<img title="' . __('Snap to grid') . '>" alt="" '; $html .= 'src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/grid.png') . '" />'; $html .= '</a>'; $html .= '<img class="M_bord" alt="" '; $html .= 'src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/bord.png') . '" />'; $html .= '<a href="#" onclick="Small_tab_all(' . 'document.getElementById("key_SB_all")); return false" '; $html .= 'class="M_butt" target="_self">'; $html .= '<img id="key_SB_all" title="' . __('Small/Big All') . '" alt="v" '; $html .= 'src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/downarrow1.png') . '" />'; $html .= '</a>'; $html .= '<a href="#" onclick="Small_tab_invert(); return false" '; $html .= 'class="M_butt" target="_self" >'; $html .= '<img title="' . __('Toggle small/big') . '" alt="key" '; $html .= 'src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/bottom.png') . '" />'; $html .= '</a>'; $html .= '<a href="#" onclick="Relation_lines_invert(); return false"'; $html .= 'class="M_butt" target="_self" >'; $html .= '<img title="' . __('Toggle relation lines') . '" alt="key" '; $html .= 'src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/toggle_lines.png') . '" />'; $html .= '</a>'; if (!$visualBuilder) { $html .= '<img class="M_bord" alt="" '; $html .= 'src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/bord.png') . '" />'; $html .= '<span id="page_name" style="border:none;">'; $html .= $selected_page == null ? __("Untitled") : htmlspecialchars($selected_page); $html .= '</span>'; $html .= '<span id="saved_state" style="border:none;width:5px">'; $html .= ($selected_page == null ? '*' : '') . '</span>'; $html .= '<img class="M_bord" alt="" '; $html .= 'src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/bord.png') . '" />'; $html .= '<a href="#" onclick="Export_pages(); return false" '; $html .= 'class="M_butt" target="_self" >'; $html .= '<img title="' . __('Export schema') . '" alt="key" '; $html .= 'src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/export.png') . '" />'; $html .= '</a>'; $html .= '<img class="M_bord" alt="" '; $html .= 'src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/bord.png') . '" />'; } else { $html .= '<a href="#" onclick="build_query(\'SQL Query on Database\', 0)" '; $html .= 'onmousedown="return false;" class="M_butt" target="_self">'; $html .= '<img alt="key" width="20" height="20" '; $html .= 'title="' . __('Build Query') . '" '; $html .= 'src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/query_builder.png') . '" />'; $html .= '</a>'; } $html .= '<a href="#" onclick="Top_menu_right(' . 'document.getElementById("key_Left_Right")); return false" '; $html .= 'class="M_butt last" target="_self">'; $html .= '<img id="key_Left_Right" alt=">" title="' . __('Move Menu') . '"'; $html .= 'src="' . $_SESSION['PMA_Theme']->getImgPath('pmd/2rightarrow_m.png') . '" />'; $html .= '</a>'; $html .= '</div>'; return $html; }