source: extensions/AMenuManager/amm_root.class.inc.php @ 3681

Last change on this file since 3681 was 3681, checked in by grum, 15 years ago

Add plugin Advanced Menu Manager 2.1.0

  • Property svn:executable set to *
File size: 5.2 KB
Line 
1<?php
2/* -----------------------------------------------------------------------------
3  Plugin     : Advanced Menu Manager
4  Author     : Grum
5    email    : grum@grum.fr
6    website  : http://photos.fr
7    PWG user : http://forum.piwigo.org/profile.php?id=3706
8
9    << May the Little SpaceFrog be with you ! >>
10  ------------------------------------------------------------------------------
11  See main.inc.php for release information
12
13  AMM_root : root classe for plugin
14
15  --------------------------------------------------------------------------- */
16
17if (!defined('PHPWG_ROOT_PATH')) { die('Hacking attempt!'); }
18
19include_once(PHPWG_PLUGINS_PATH.'grum_plugins_classes-2/common_plugin.class.inc.php');
20include_once(PHPWG_PLUGINS_PATH.'grum_plugins_classes-2/css.class.inc.php');
21
22class AMM_root extends common_plugin
23{
24  protected $css;   //the css object
25
26  function AMM_root($prefixeTable, $filelocation)
27  {
28    $this->plugin_name="Advanced Menu Manager";
29    $this->plugin_name_files="amm";
30    parent::__construct($prefixeTable, $filelocation);
31
32    $list=array('urls', 'personalised');
33    $this->set_tables_list($list);
34  }
35
36  /* ---------------------------------------------------------------------------
37  common AIP & PIP functions
38  --------------------------------------------------------------------------- */
39
40  /* this function initialize var $my_config with default values */
41  public function init_config()
42  {
43    $this->my_config=array(
44      'amm_links_show_icons' => 'y',
45      'amm_links_title' => array(),
46      'amm_randompicture_showname' => 'n',     //n:no, o:over, u:under
47      'amm_randompicture_showcomment' => 'n',   //n:no, o:over, u:under
48      'amm_randompicture_periodicchange' => 0,   //0: no periodic change ; periodic change in milliseconds
49      'amm_randompicture_title' => array(),
50      'amm_sections_modspecials' => array(
51        'favorites' => 'y',
52        'most_visited' => 'y',
53        'best_rated' => 'y',
54        'random' => 'y',
55        'recent_pics' => 'y',
56        'recent_cats' => 'y',
57        'calendar' => 'y'
58      ),
59      'amm_sections_modmenu' => array(
60        'qsearch' => 'y',
61        'tags' => 'y',
62        'search' => 'y',
63        'comments' => 'y',
64        'about' => 'y',
65        'rss' => 'y'
66      )
67    );
68
69    $languages=get_languages();
70    foreach($languages as $key => $val)
71    {
72      if($key=='fr_FR')
73      {
74        $this->my_config['amm_links_title'][$key]=base64_encode('Liens');
75        $this->my_config['amm_randompicture_title'][$key]=base64_encode('Une image au hasard');
76      }
77      else
78      {
79        $this->my_config['amm_links_title'][$key]=base64_encode('Links');
80        $this->my_config['amm_randompicture_title'][$key]=base64_encode('A random picture');
81      }
82    }
83  }
84
85  public function load_config()
86  {
87    parent::load_config();
88  }
89
90  public function init_events()
91  {
92    add_event_handler('blockmanager_register_blocks', array(&$this, 'register_blocks') );
93  }
94
95  public function register_blocks( $menu_ref_arr )
96  {
97    $menu = & $menu_ref_arr[0];
98    if ($menu->get_id() != 'menubar')
99      return;
100    $menu->register_block( new RegisteredBlock( 'mbAMM_randompict', 'Random pictures', 'AMM'));
101    $menu->register_block( new RegisteredBlock( 'mbAMM_links', 'Links', 'AMM'));
102
103    $sections=$this->get_sections(true);
104    if(count($sections))
105    {
106      $id_done=array();
107      foreach($sections as $key => $val)
108      {
109        if(!isset($id_done[$val['id']]))
110        {
111          $menu->register_block( new RegisteredBlock( 'mbAMM_personalised'.$val['id'], $val['title'], 'AMM'));
112          $id_done[$val['id']]="";
113        }
114      }
115    }
116  }
117
118  // return an array of urls (each url is an array)
119  protected function get_urls($only_visible=false)
120  {
121    $returned=array();
122    $sql="SELECT * FROM ".$this->tables['urls'];
123    if($only_visible)
124    {
125      $sql.=" WHERE visible = 'y' ";
126    }
127    $sql.=" ORDER BY position";
128    $result=pwg_query($sql);
129    if($result)
130    {
131      while($row=mysql_fetch_array($result))
132      {
133        $row['label']=stripslashes($row['label']);
134        $returned[]=$row;
135      }
136    }
137    return($returned);
138  }
139
140  //return number of url
141  protected function get_count_url($only_visible=false)
142  {
143    $returned=0;
144    $sql="SELECT count(id) FROM ".$this->tables['urls'];
145    if($only_visible)
146    {
147      $sql.=" WHERE visible = 'y' ";
148    }
149    $result=pwg_query($sql);
150    if($result)
151    {
152      $tmp=mysql_fetch_row($result);
153      $returned=$tmp[0];
154    }
155    return($returned);
156  }
157
158  // return an array of sections (each section is an array)
159  protected function get_sections($only_visible=false, $lang="", $only_with_content=true)
160  {
161    global $user;
162
163    if($lang=="")
164    {
165      $lang=$user['language'];
166    }
167
168    $returned=array();
169    $sql="SELECT * FROM ".$this->tables['personalised']."
170WHERE (lang = '*' OR lang = '".$lang."') ";
171    if($only_visible)
172    {
173      $sql.=" AND visible = 'y' ";
174    }
175    if($only_with_content)
176    {
177      $sql.=" AND content != '' ";
178    }
179    $sql.=" ORDER BY id, lang DESC ";
180    $result=pwg_query($sql);
181    if($result)
182    {
183      while($row=mysql_fetch_array($result))
184      {
185        $returned[]=$row;
186      }
187    }
188    return($returned);
189  }
190
191
192
193} // amm_root  class
194
195
196?>
Note: See TracBrowser for help on using the repository browser.