home *** CD-ROM | disk | FTP | other *** search
/ Cricao de Sites - 650 Layouts Prontos / WebMasters.iso / Servidores / xampp-win32-1.6.7-installer.exe / phpMyAdmin / libraries / bookmark.lib.php < prev    next >
Encoding:
PHP Script  |  2008-06-23  |  5.5 KB  |  181 lines

  1. <?php
  2. /* vim: set expandtab sw=4 ts=4 sts=4: */
  3. /**
  4.  * Set of functions used with the bookmark feature
  5.  *
  6.  * @version $Id: bookmark.lib.php 11163 2008-03-16 11:28:18Z lem9 $
  7.  */
  8.  
  9.  
  10. /**
  11.  * Defines the bookmark parameters for the current user
  12.  *
  13.  * @return  array    the bookmark parameters for the current user
  14.  *
  15.  * @global  integer  the id of the current server
  16.  *
  17.  * @access  public
  18.  */
  19. function PMA_getBookmarksParam()
  20. {
  21.     global $server;
  22.  
  23.     $cfgBookmark = '';
  24.  
  25.     // No server selected -> no bookmark table
  26.     if ($server == 0) {
  27.         return '';
  28.     }
  29.  
  30.     $cfgBookmark['user']  = $GLOBALS['cfg']['Server']['user'];
  31.     $cfgBookmark['db']    = $GLOBALS['cfg']['Server']['pmadb'];
  32.     $cfgBookmark['table'] = $GLOBALS['cfg']['Server']['bookmarktable'];
  33.  
  34.     return $cfgBookmark;
  35. } // end of the 'PMA_getBookmarksParam()' function
  36.  
  37.  
  38. /**
  39.  * Gets the list of bookmarks defined for the current database
  40.  *
  41.  * @global  resource  the controluser db connection handle
  42.  *
  43.  * @param   string    the current database name
  44.  * @param   array     the bookmark parameters for the current user
  45.  *
  46.  * @return  mixed     the bookmarks list if defined, false else
  47.  *
  48.  * @access  public
  49.  */
  50. function PMA_listBookmarks($db, $cfgBookmark)
  51. {
  52.     global $controllink;
  53.  
  54.     if (empty($cfgBookmark['db']) || empty($cfgBookmark['table'])) {
  55.         return '';
  56.     }
  57.  
  58.     $query  = 'SELECT label, id FROM '. PMA_backquote($cfgBookmark['db']) . '.' . PMA_backquote($cfgBookmark['table'])
  59.             . ' WHERE dbase = \'' . PMA_sqlAddslashes($db) . '\''
  60.             . ' AND (user = \'' . PMA_sqlAddslashes($cfgBookmark['user']) . '\''
  61.             . '      OR user = \'\')'
  62.             . ' ORDER BY label';
  63.     $result = PMA_DBI_query($query, $controllink, PMA_DBI_QUERY_STORE);
  64.  
  65.     // There are some bookmarks -> store them
  66.     // use the unique id as the key
  67.     if ($result && PMA_DBI_num_rows($result) > 0) {
  68.         while ($row = PMA_DBI_fetch_row($result)) {
  69.             $bookmark_list[$row[1]] = $row[0];
  70.         } // end while
  71.         return $bookmark_list;
  72.     }
  73.     // No bookmarks for the current database
  74.     else {
  75.         return FALSE;
  76.     }
  77. } // end of the 'PMA_listBookmarks()' function
  78.  
  79.  
  80. /**
  81.  * Gets the sql command from a bookmark
  82.  *
  83.  * @global  resource  the controluser db connection handle
  84.  *
  85.  * @param   string    the current database name
  86.  * @param   array     the bookmark parameters for the current user
  87.  * @param   mixed     the id of the bookmark to get
  88.  * @param   string    which field to look up the $id
  89.  * @param   boolean  TRUE: get all bookmarks regardless of the owning user
  90.  *
  91.  * @return  string    the sql query
  92.  *
  93.  * @access  public
  94.  */
  95. function PMA_queryBookmarks($db, $cfgBookmark, $id, $id_field = 'id', $action_bookmark_all = FALSE)
  96. {
  97.     global $controllink;
  98.  
  99.     if (empty($cfgBookmark['db']) || empty($cfgBookmark['table'])) {
  100.         return '';
  101.     }
  102.  
  103.     $query          = 'SELECT query FROM ' . PMA_backquote($cfgBookmark['db']) . '.' . PMA_backquote($cfgBookmark['table'])
  104.                     . ' WHERE dbase = \'' . PMA_sqlAddslashes($db) . '\''
  105.                     . ($action_bookmark_all? '' : ' AND (user = \'' . PMA_sqlAddslashes($cfgBookmark['user']) . '\''
  106.                     . '      OR user = \'\')')
  107.                     . ' AND ' . PMA_backquote($id_field) . ' = ' . $id;
  108.     $result = PMA_DBI_try_query($query, $controllink);
  109.     if (!$result) {
  110.         return FALSE;
  111.     }
  112.     list($bookmark_query) = PMA_DBI_fetch_row($result) or array(FALSE);
  113.  
  114.     return $bookmark_query;
  115. } // end of the 'PMA_queryBookmarks()' function
  116.  
  117. /**
  118.  * Adds a bookmark
  119.  *
  120.  * @global  resource  the controluser db connection handle
  121.  *
  122.  * @param   array     the properties of the bookmark to add
  123.  * @param   array     the bookmark parameters for the current user
  124.  * @param   boolean   whether to make the bookmark available for all users
  125.  *
  126.  * @return  boolean   whether the INSERT succeeds or not
  127.  *
  128.  * @access  public
  129.  */
  130. function PMA_addBookmarks($fields, $cfgBookmark, $all_users = false)
  131. {
  132.     global $controllink;
  133.  
  134.     $query = 'INSERT INTO ' . PMA_backquote($cfgBookmark['db']) . '.' . PMA_backquote($cfgBookmark['table'])
  135.            . ' (id, dbase, user, query, label) VALUES (NULL, \'' . PMA_sqlAddslashes($fields['dbase']) . '\', \'' . ($all_users ? '' : PMA_sqlAddslashes($fields['user'])) . '\', \'' . PMA_sqlAddslashes(urldecode($fields['query'])) . '\', \'' . PMA_sqlAddslashes($fields['label']) . '\')';
  136.     $result   = PMA_DBI_query($query, $controllink);
  137.  
  138.     return TRUE;
  139. } // end of the 'PMA_addBookmarks()' function
  140.  
  141.  
  142. /**
  143.  * Deletes a bookmark
  144.  *
  145.  * @global  resource  the controluser db connection handle
  146.  *
  147.  * @param   string   the current database name
  148.  * @param   array    the bookmark parameters for the current user
  149.  * @param   integer  the id of the bookmark to get
  150.  *
  151.  * @access  public
  152.  */
  153. function PMA_deleteBookmarks($db, $cfgBookmark, $id)
  154. {
  155.     global $controllink;
  156.  
  157.     $query  = 'DELETE FROM ' . PMA_backquote($cfgBookmark['db']) . '.' . PMA_backquote($cfgBookmark['table'])
  158.             . ' WHERE (user = \'' . PMA_sqlAddslashes($cfgBookmark['user']) . '\''
  159.             . '        OR user = \'\')'
  160.             . ' AND id = ' . $id;
  161.     $result = PMA_DBI_try_query($query, $controllink);
  162. } // end of the 'PMA_deleteBookmarks()' function
  163.  
  164.  
  165. /**
  166.  * Bookmark Support
  167.  */
  168.  
  169. if (! isset($GLOBALS['cfgRelation'])) {
  170.     require_once './libraries/relation.lib.php';
  171.     $GLOBALS['cfgRelation'] = PMA_getRelationsParam();
  172. }
  173.  
  174. if ($GLOBALS['cfgRelation']['bookmarkwork']) {
  175.     $cfg['Bookmark'] = PMA_getBookmarksParam();
  176. } else {
  177.     $cfg['Bookmark'] = array();
  178. }
  179.  
  180. ?>
  181.