Ignore:
Timestamp:
10/14/13 18:35:28 (6 years ago)
Author:
mistic100
Message:

use my plugin architecture, add options to hide the page for guests, fix admin links in mails

File:
1 edited

Legend:

Unmodified
Added
Removed
  • extensions/GuestBook/main.inc.php

    r21292 r24889  
    44Version: auto 
    55Description: Add a guestbook to the gallery 
    6 Plugin URI: http://piwigo.org/ext/extension_view.php?eid=609 
     6Plugin URI: auto 
    77Author: Mistic 
    88Author URI: http://www.strangeplanet.fr 
     
    1414 
    1515 
    16 define('GUESTBOOK_PATH' ,  PHPWG_PLUGINS_PATH . basename(dirname(__FILE__)) . '/'); 
    17 define('GUESTBOOK_TABLE' , $prefixeTable . 'guestbook'); 
    18 define('GUESTBOOK_ADMIN',  get_root_url().'admin.php?page=plugin-' . basename(dirname(__FILE__))); 
    19 define('GUESTBOOK_URL',    get_absolute_root_url() . make_index_url(array('section' => 'guestbook'))); 
     16defined('GUESTBOOK_ID') or define('GUESTBOOK_ID', basename(dirname(__FILE__))); 
     17define('GUESTBOOK_PATH' ,   PHPWG_PLUGINS_PATH . GUESTBOOK_ID . '/'); 
     18define('GUESTBOOK_TABLE' ,  $prefixeTable . 'guestbook'); 
     19define('GUESTBOOK_ADMIN',   get_root_url().'admin.php?page=plugin-' . GUESTBOOK_ID); 
     20define('GUESTBOOK_URL',     get_absolute_root_url() . make_index_url(array('section' => 'guestbook'))); 
     21define('GUESTBOOK_VERSION', 'auto'); 
    2022 
    21 add_event_handler('init', 'gb_init'); 
    2223 
    23 function gb_init() 
     24include_once(GUESTBOOK_PATH . 'include/events.inc.php'); 
     25 
     26add_event_handler('init', 'guestbook_init'); 
     27 
     28// admin page 
     29if (defined('IN_ADMIN')) 
    2430{ 
    25   global $conf; 
     31  add_event_handler('get_admin_plugin_menu_links', 'gb_admin_menu'); 
     32} 
     33 
     34// menu entry 
     35add_event_handler('blockmanager_apply', 'gb_menubar_apply', EVENT_HANDLER_PRIORITY_NEUTRAL+10); 
     36 
     37// guestbook section 
     38add_event_handler('loc_end_section_init', 'gb_section_init'); 
     39add_event_handler('loc_end_index', 'gb_index'); 
     40 
     41// stuff 
     42// add_event_handler('get_stuffs_modules', 'gb_register_stuffs_module') 
     43 
     44 
     45function guestbook_init() 
     46{ 
     47  global $conf, $pwg_loaded_plugins; 
    2648   
    27   load_language('plugin.lang', GUESTBOOK_PATH); 
    28   $conf['guestbook'] = unserialize($conf['guestbook']); 
    29    
    30   // menubar 
    31   if (script_basename() != 'admin') 
     49  // apply upgrade if needed 
     50  if ( 
     51    GUESTBOOK_VERSION == 'auto' or 
     52    $pwg_loaded_plugins[GUESTBOOK_ID]['version'] == 'auto' or 
     53    version_compare($pwg_loaded_plugins[GUESTBOOK_ID]['version'], GUESTBOOK_VERSION, '<') 
     54  ) 
    3255  { 
    33     add_event_handler('blockmanager_apply', 'gb_menubar_apply', EVENT_HANDLER_PRIORITY_NEUTRAL+10); 
    34   } 
    35   else 
    36   { 
    37     add_event_handler('get_admin_plugin_menu_links', 'gb_admin_menu'); 
     56    // call install function 
     57    include_once(GUESTBOOK_PATH . 'include/install.inc.php'); 
     58    guestbook_install(); 
     59     
     60    // update plugin version in database 
     61    if ( $pwg_loaded_plugins[GUESTBOOK_ID]['version'] != 'auto' and GUESTBOOK_VERSION != 'auto' ) 
     62    { 
     63      $query = ' 
     64UPDATE '. PLUGINS_TABLE .' 
     65SET version = "'. GUESTBOOK_VERSION .'" 
     66WHERE id = "'. GUESTBOOK_ID .'"'; 
     67      pwg_query($query); 
     68       
     69      $pwg_loaded_plugins[GUESTBOOK_ID]['version'] = GUESTBOOK_VERSION; 
     70       
     71      if (defined('IN_ADMIN')) 
     72      { 
     73        $_SESSION['page_infos'][] = 'GuestBook updated to version '. GUESTBOOK_VERSION; 
     74      } 
     75    } 
    3876  } 
    3977   
    40   // guestbook section 
    41   add_event_handler('loc_end_section_init', 'gb_section_init'); 
    42   add_event_handler('loc_end_index', 'gb_index'); 
     78  // load plugin language file 
     79  load_language('plugin.lang', GUESTBOOK_PATH); 
    4380   
    44   // stuff 
    45   // add_event_handler('get_stuffs_modules', 'gb_register_stuffs_module') 
     81  // prepare plugin configuration 
     82  $conf['guestbook'] = unserialize($conf['guestbook']); 
    4683} 
    47  
    48 function gb_menubar_apply($menu_ref_arr) 
    49 { 
    50   $menu = &$menu_ref_arr[0]; 
    51    
    52   if ( ($block = $menu->get_block('mbMenu')) != null ) 
    53   { 
    54     array_push($block->data, array( 
    55       'URL' => GUESTBOOK_URL, 
    56       'TITLE' => l10n('GuestBook'), 
    57       'NAME' => l10n('GuestBook') 
    58     )); 
    59   } 
    60 } 
    61  
    62 function gb_section_init() 
    63 { 
    64   global $tokens, $page, $conf; 
    65  
    66   if ($tokens[0] == 'guestbook') 
    67   { 
    68     add_event_handler('loc_begin_page_header', 'gb_page_header'); 
    69      
    70     $page['section'] = 'guestbook'; 
    71     $page['title'] = l10n('GuestBook'); 
    72     $page['section_title'] = '<a href="'.get_gallery_home_url().'">'.l10n('Home').'</a>'.$conf['level_separator'].l10n('GuestBook'); 
    73   } 
    74 } 
    75  
    76 function gb_page_header() 
    77 { 
    78   global $page; 
    79   $page['body_id'] = 'theGuestBook'; 
    80 } 
    81  
    82 function gb_index()  
    83 { 
    84   global $template, $page, $conf; 
    85  
    86   if (isset($page['section']) and $page['section'] == 'guestbook') 
    87   { 
    88     include(GUESTBOOK_PATH . '/include/guestbook.inc.php'); 
    89   } 
    90 } 
    91  
    92 /*function gb_register_stuffs_module($modules) 
    93 { 
    94   array_push($modules, array( 
    95     'path' => GUESTBOOK_PATH . '/stuffs_module', 
    96     'name' => GB_NAME, 
    97     'description' => l10n('gb_stuffs_desc'), 
    98   )); 
    99  
    100   return $modules; 
    101 }*/ 
    102  
    103 function gb_admin_menu($menu)  
    104 { 
    105   array_push($menu, array( 
    106     'NAME' => 'GuestBook', 
    107     'URL' => GUESTBOOK_ADMIN, 
    108   )); 
    109   return $menu; 
    110 } 
    111  
    112 ?> 
Note: See TracChangeset for help on using the changeset viewer.