source: extensions/ASearchEngine/ase_rb_callback_hd.class.inc.php @ 11516

Revision 7318, 4.5 KB checked in by grum, 9 years ago (diff)

fix some bugs and implement public interface

  • Property svn:executable set to *
Line 
1<?php
2/* -----------------------------------------------------------------------------
3  Plugin     : Advanced Search Engine
4  Author     : Grum
5    email    : grum@piwigo.org
6    website  : http://photos.grum.fr
7
8    << May the Little SpaceFrog be with you ! >>
9  ------------------------------------------------------------------------------
10  See main.inc.php for release information
11
12
13  --------------------------------------------------------------------------- */
14
15  if(!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
16
17  include_once(PHPWG_PLUGINS_PATH.'GrumPluginClasses/classes/GPCRequestBuilder.class.inc.php');
18
19load_language('plugin.lang', ASE_PATH);
20
21class RBCallBackASEHD extends GPCSearchCallback {
22
23  /**
24   * the getImageId returns the name of the image id attribute
25   * return String
26   */
27  static public function getImageId()
28  {
29    return("ase_pith.id");
30  }
31
32  /**
33   * the getSelect function must return an attribute list separated with a comma
34   *
35   * "att1, att2, att3, att4"
36   */
37  static public function getSelect($param="")
38  {
39    $returned=" ase_pith.has_high AS hasHigh";
40    return($returned);
41  }
42
43  /**
44   * the getFrom function must return a tables list separated with a comma
45   *
46   * "table1, (table2 left join table3 on table2.key = table3.key), table4"
47   */
48  static public function getFrom($param="")
49  {
50    global $prefixeTable;
51
52    return(IMAGES_TABLE." ase_pith ");
53  }
54
55  /**
56   * the getWhere function must return a ready to use where clause
57   *
58   * "(att1 = value0 OR att2 = value1) AND att4 LIKE value2 "
59   */
60  static public function getWhere($param="")
61  {
62    global $user;
63
64
65    if($param['withHD']=='y')
66    {
67      $returned=" ase_pith.has_high=true ";
68    }
69    else
70    {
71      $returned=" ase_pith.has_high=false OR ase_pith.has_high IS NULL ";
72    }
73
74    return($returned);
75  }
76
77
78  /**
79   * the getJoin function must return a ready to use where allowing to join the
80   * IMAGES table (key : id) with given conditions
81   *
82   * "att3 = pit.id "
83   */
84  static public function getJoin($param="")
85  {
86    return("ase_pith.id = pit.id");
87  }
88
89
90  /**
91   * the getFilter function must return a ready to use where clause
92   * this where clause is used to filter the cache when the used tables can
93   * return more than one result
94   *
95   * the filter can be empty, can be equal to the where clause, or can be equal
96   * to a sub part of the where clause
97   *
98   */
99  static public function getFilter($param="")
100  {
101    return("");
102  }
103
104  /**
105   * this function is called by the request builder, allowing to display plugin
106   * data with a specific format
107   *
108   * @param Array $attributes : array of ('attribute_name' => 'attribute_value')
109   * @return String : HTML formatted value
110   */
111  static public function formatData($attributes)
112  {
113    /* attributes is an array :
114     *    Array(
115     *      'csColors' => 'color1,color2,color3,...,colorN',
116     *      'csColorsPct' => 'pct1,pct2,pct3,...,pctN'
117     *    );
118     */
119    $returned="<span style='font-weight:bold;'>".l10n('ase_the_picture_has_HD')."</span>&nbsp;:&nbsp;";
120
121    if($returned['hasHigh']==true)
122    {
123      $returned.=l10n('ase_y');
124    }
125    else
126    {
127      $returned.=l10n('ase_n');
128    }
129
130    return($returned);
131  }
132
133
134
135  /**
136   * this function is called by the request builder to make the search page, and
137   * must return the HTML & JS code of the dialogbox used to select criterion
138   *
139   * Notes :
140   *  - the dialogbox is a JS object with a public method 'show'
141   *  - when the method show is called, one parameter is given by the request
142   *    builder ; the parameter is an object defined as this :
143   *      {
144   *        cBuilder: an instance of the criteriaBuilder object used in the page,
145   *        eventOK : a callback function, called when the OK button is pushed
146   *        id:
147   *      }
148   *
149   *
150   *
151   *
152   * @param String $mode : can take 'admin' or 'public' values, allowing to
153   *                       return different interface if needed
154   * @return String : HTML formatted value
155   */
156  static public function getInterfaceContent($mode='admin')
157  {
158    return(ASE_functions::dialogBoxASEHD());
159  }
160
161  /**
162   * this function returns the label displayed in the criterion menu
163   *
164   * @return String : label displayed in the criterions menu
165   */
166  static public function getInterfaceLabel()
167  {
168    return(l10n('ase_add_HD'));
169  }
170
171  /**
172   * this function returns the name of the dialog box class
173   *
174   * @return String : name of the dialogbox class
175   */
176  static public function getInterfaceDBClass()
177  {
178    return('dialogChooseASEHDBox');
179  }
180
181}
182
183?>
Note: See TracBrowser for help on using the repository browser.