source: extensions/ASearchEngine/ase_rb_callback_rate.class.inc.php @ 30060

Last change on this file since 30060 was 15360, checked in by grum, 13 years ago

feature:2635 - Compatibility with Piwigo 2.4

  • Property svn:executable set to *
File size: 4.7 KB
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 RBCallBackASERate 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_pitn.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    return(" ase_pitn.rating_score AS averageRate");
40  }
41
42  /**
43   * the getFrom function must return a tables list separated with a comma
44   *
45   * "table1, (table2 left join table3 on table2.key = table3.key), table4"
46   */
47  static public function getFrom($param="")
48  {
49    global $prefixeTable;
50
51    return(IMAGES_TABLE." ase_pitn ");
52  }
53
54  /**
55   * the getWhere function must return a ready to use where clause
56   *
57   * "(att1 = value0 OR att2 = value1) AND att4 LIKE value2 "
58   */
59  static public function getWhere($param="")
60  {
61    global $user;
62
63    $returned=" ase_pitn.rating_score ";
64
65    switch($param['searchType'])
66    {
67      case 'no':
68        $returned.=" IS NULL ";
69        break;
70      case 'bt':
71        $returned.=" BETWEEN '".$param['minValue']."' AND '".$param['maxValue']."' ";
72        break;
73      case 'gt':
74        $returned.=" >= '".$param['minValue']."' ";
75        break;
76      case 'lt':
77        $returned.=" <= '".$param['maxValue']."' ";
78        break;
79    }
80
81    return($returned);
82  }
83
84  /**
85   * the getJoin function must return a ready to use where allowing to join the
86   * IMAGES table (key : id) with given conditions
87   *
88   * "att3 = pit.id "
89   */
90  static public function getJoin($param="")
91  {
92    return("ase_pitn.id = pit.id");
93  }
94
95
96  /**
97   * the getFilter function must return a ready to use where clause
98   * this where clause is used to filter the cache when the used tables can
99   * return more than one result
100   *
101   * the filter can be empty, can be equal to the where clause, or can be equal
102   * to a sub part of the where clause
103   *
104   */
105  static public function getFilter($param="")
106  {
107    return("");
108  }
109
110  /**
111   * this function is called by the request builder, allowing to display plugin
112   * data with a specific format
113   *
114   * @param Array $attributes : array of ('attribute_name' => 'attribute_value')
115   * @return String : HTML formatted value
116   */
117  static public function formatData($attributes)
118  {
119    /* attributes is an array :
120     *    Array(
121     *      'csColors' => 'color1,color2,color3,...,colorN',
122     *      'csColorsPct' => 'pct1,pct2,pct3,...,pctN'
123     *    );
124     */
125    $returned="<span style='font-weight:bold;'>".l10n('ase_average_rate')."</span>&nbsp;:&nbsp;".$attributes['averageRate'];
126    return($returned);
127  }
128
129
130
131  /**
132   * this function is called by the request builder to make the search page, and
133   * must return the HTML & JS code of the dialogbox used to select criterion
134   *
135   * Notes :
136   *  - the dialogbox is a JS object with a public method 'show'
137   *  - when the method show is called, one parameter is given by the request
138   *    builder ; the parameter is an object defined as this :
139   *      {
140   *        cBuilder: an instance of the criteriaBuilder object used in the page,
141   *        eventOK : a callback function, called when the OK button is pushed
142   *        id:
143   *      }
144   *
145   *
146   *
147   *
148   * @param String $mode : can take 'admin' or 'public' values, allowing to
149   *                       return different interface if needed
150   * @return String : HTML formatted value
151   */
152  static public function getInterfaceContent($mode='admin')
153  {
154    return(ASE_functions::dialogBoxASERate());
155  }
156
157  /**
158   * this function returns the label displayed in the criterion menu
159   *
160   * @return String : label displayed in the criterions menu
161   */
162  static public function getInterfaceLabel()
163  {
164    return(l10n('ase_add_rate'));
165  }
166
167  /**
168   * this function returns the name of the dialog box class
169   *
170   * @return String : name of the dialogbox class
171   */
172  static public function getInterfaceDBClass()
173  {
174    return('dialogChooseASERateBox');
175  }
176
177}
178
179?>
Note: See TracBrowser for help on using the repository browser.