linea21-core
[ class tree: linea21-core ] [ index: linea21-core ] [ all elements ]

Source for file pgsql.inc.php

Documentation is available at pgsql.inc.php

  1. <?php
  2. /**
  3.  * @package linea21.core
  4.  * @subpackage search
  5.  * @author linea21 <info@linea21.com>
  6.  * @version $id SVN
  7.  * @access public
  8.  * @license http://opensource.org/licenses/gpl-3.0.html
  9.  */
  10.  
  11. /**
  12. * SQL_project_search()
  13. @param string $string 
  14. @param string $type 
  15. @return string $requete
  16. */
  17. function SQL_project_search($string$type)
  18. {
  19.  
  20.     if ($type == 'PUBLIC'{
  21.         $date 'project_published_date';
  22.         $statut_mask 'AND project_statut<>\'E\' AND project_statut<>\'AA\' AND project_statut<>\'D\'';
  23.     
  24.     if ($type == 'ADMIN'{
  25.         $date 'project_date_crea';
  26.         $statut_mask 'AND project_statut<>\'E\'';
  27.     
  28.     $requete 'SELECT project_id, project_name, to_char(' $date ', \''.toStringSqlDate().'\') AS date_display, project_statut AS statut, to_char(rank(idxfti, q)*100, \'99.99\') AS pertinence FROM ' T_PROJECT ', to_tsquery(\'default\', \''.$string.'\') as q WHERE idxfti @@ q '$statut_mask ' ORDER BY rank(idxfti, q) DESC;';
  29.     
  30.     return $requete;
  31. }
  32.  
  33. /**
  34. * SQL_news_search()
  35. @param string $string 
  36. @param string $type 
  37. @return string $requete
  38. */
  39. function SQL_news_search($string$type)
  40. {
  41.     if ($type == 'PUBLIC'{
  42.         $date 'news_published_date';
  43.         $statut_mask 'AND news_statut<>\'E\' AND news_statut<>\'AA\' AND news_statut<>\'D\'';
  44.     
  45.     if ($type == 'ADMIN'{
  46.         $date 'news_date_crea';
  47.         $statut_mask 'AND news_statut<>\'E\'';
  48.     
  49.     $requete 'SELECT news_id, news_title, to_char(' $date ', \''.toStringSqlDate().'\') AS date_display, news_statut AS statut, to_char(rank(idxfti, q)*100, \'99.99\') AS pertinence FROM ' T_NEWS ', to_tsquery(\'default\', \''.$string.'\') as q WHERE idxfti @@ q '$statut_mask ' ORDER BY rank(idxfti, q) DESC;';
  50.     
  51.     return $requete;
  52. }
  53.  
  54. /**
  55. * SQL_newsletter_search()
  56. @param string $string 
  57. @param string $type 
  58. @return string $requete
  59. */
  60. function SQL_newsletter_search($string$type)
  61. {
  62.     if ($type == 'PUBLIC'{
  63.         $date 'newsletter_published_date';
  64.         $statut_mask 'AND newsletter_statut<>\'E\' AND newsletter_statut<>\'D\'';
  65.     
  66.     if ($type == 'ADMIN'{
  67.         $date 'newsletter_date_crea';
  68.         $statut_mask 'AND newsletter_statut<>\'E\'';
  69.     
  70.     $requete 'SELECT newsletter_id, newsletter_title, to_char(' $date ', \''.toStringSqlDate().'\') AS date_display, newsletter_statut AS statut, to_char(rank(idxfti, q)*100, \'99.99\') AS pertinence FROM ' T_NEWSLETTER ', to_tsquery(\'default\', \''.$string.'\') as q WHERE idxfti @@ q '$statut_mask ' ORDER BY rank(idxfti, q) DESC;';
  71.  
  72.     return $requete;
  73.  
  74. /**
  75. * SQL_publication_search()
  76. @param string $string 
  77. @param string $type 
  78. @return string $requete
  79. */
  80. function SQL_publication_search($string$type)
  81. {
  82.     if ($type == 'PUBLIC'{
  83.         $date 'publi_published_date';
  84.         $statut_mask 'AND publi_statut<>\'E\' AND publi_statut<>\'AA\' AND publi_statut<>\'D\'';
  85.     
  86.     if ($type == 'ADMIN'{
  87.         $date 'publi_date_crea';
  88.         $statut_mask 'AND publi_statut<>\'E\'';
  89.     
  90.     $requete 'SELECT publi_id, publi_title, to_char(' $date ', \''.toStringSqlDate().'\') AS date_display, publi_statut AS statut, to_char(rank(idxfti, q)*100, \'99.99\') AS pertinence FROM ' T_PUBLI ', to_tsquery(\'default\', \''.$string.'\') as q WHERE idxfti @@ q AND publi_statut<>\'E\' ' $statut_mask ' ORDER BY rank(idxfti, q) DESC;';
  91.  
  92.     return $requete;
  93.  
  94. /**
  95. * SQL_publication_content_search()
  96. @param string $string 
  97. @param string $type 
  98. @return string $requete
  99. */
  100. function SQL_publication_content_search($string$type)
  101. {
  102.     if ($type == 'PUBLIC'{
  103.         $date 'publi_published_date';
  104.         $statut_mask 'AND publi_statut<>\'E\' AND publi_statut<>\'AA\' AND publi_statut<>\'D\' AND publicon_validity=\'Y\'';
  105.     
  106.     if ($type == 'ADMIN'{
  107.         $date 'publi_date_crea';
  108.         $statut_mask 'AND publi_statut<>\'E\' AND publicon_validity=\'Y\'';
  109.     
  110.     $requete 'SELECT publi_id, publi_title, publicon_id, publicon_title, to_char(' $date ', \''.toStringSqlDate().'\') AS date_display, publi_statut AS statut, to_char(rank(pc.idxfti, q)*100, \'99.99\') AS pertinence FROM to_tsquery(\'default\', \''.$string.'\') as q, ' J_PARTS ' LEFT OUTER JOIN ' T_PUBLI_CONT ' AS pc ON j_parts_id  =  publicon_id LEFT OUTER JOIN  ' T_PUBLI ' AS p ON  j_root_id= publi_id WHERE pc.idxfti @@ q AND j_type=\'P\' ' $statut_mask ' ORDER BY rank(pc.idxfti, q) DESC;';
  111.  
  112.     return $requete;
  113.  
  114. /**
  115. * SQL_sdi_search()
  116. @param string $string 
  117. @param string $type 
  118. @return string $requete
  119. */
  120. function SQL_sdi_search($string$type)
  121. {
  122.     if ($type == 'PUBLIC'{
  123.         $statut_mask 'AND sdii_statut<>\'D\' AND sdii_statut<>\'E\'';
  124.     
  125.     if ($type == 'ADMIN'{
  126.         $statut_mask 'AND sdii_statut<>\'E\'';
  127.     
  128.     $requete 'SELECT sdii_id, sdii_name, to_char(sdii_date_crea, \''.toStringSqlDate().'\') AS date_display, sdii_statut AS statut, to_char(rank(idxfti, q)*100, \'99.99\') AS pertinence FROM ' T_SDI_INFO ', to_tsquery(\'default\', \''.$string.'\') as q  WHERE idxfti @@ q ' $statut_mask ' ORDER BY rank(idxfti, q) DESC;';
  129.  
  130.     return $requete;
  131.  
  132. /**
  133. * SQL_workshop_search()
  134. @param string $string 
  135. @param string $type 
  136. @return string $requete
  137. */
  138. function SQL_workshop_search($string$type)
  139. {
  140.     if ($type == 'PUBLIC'{
  141.         $date 'workshop_date_crea';
  142.         $statut_mask 'AND workshop_statut<>\'E\' AND workshop_statut<>\'AA\' AND workshop_statut<>\'D\'';
  143.     
  144.     if ($type == 'ADMIN'{
  145.         $date 'workshop_date_crea';
  146.         $statut_mask 'AND workshop_statut<>\'E\'';
  147.     
  148.     $requete 'SELECT workshop_id, workshop_denomination, to_char(' $date ', \''.toStringSqlDate().'\') AS date_display, workshop_statut AS statut, to_char(rank(idxfti, q)*100, \'99.99\') AS pertinence FROM ' T_WORK ', to_tsquery(\'default\', \''.$string.'\') as q WHERE idxfti @@ q ' $statut_mask ' ORDER BY rank(idxfti, q) DESC;';
  149.  
  150.     return $requete;
  151.  
  152. /**
  153. * SQL_workshop_content_search()
  154. @param string $string 
  155. @param string $type 
  156. @return string $requete
  157. */
  158. function SQL_workrep_search($string$type)
  159. {
  160.     if ($type == 'PUBLIC'{
  161.         $date 'workrep_published_date';
  162.         $statut_mask 'AND workshop_statut<>\'E\' AND workshop_statut<>\'AA\' AND workshop_statut<>\'D\' AND workrep_statut<>\'E\' AND workrep_statut<>\'AA\' AND workrep_statut<>\'D\'';
  163.     
  164.     if ($type == 'ADMIN'{
  165.         $date 'workrep_date_crea';
  166.         $statut_mask 'AND workshop_statut<>\'E\' AND workrep_statut<>\'E\'';
  167.     
  168.     $requete 'SELECT workrep_id, workrep_title, workshop_id, workshop_denomination, to_char(' $date ', \''.toStringSqlDate().'\') AS date_display, workrep_statut AS statut, to_char(rank(wr.idxfti, q)*100, \'99.99\') AS pertinence FROM to_tsquery(\'default\', \''.$string.'\') as q, ' T_WORK_REP ' AS wr LEFT OUTER JOIN ' T_WORK ' AS w ON workrep_workshop_id  =  workshop_id WHERE wr.idxfti @@ q ' $statut_mask ' ORDER BY rank(wr.idxfti, q) DESC;';
  169.  
  170.     return $requete;
  171.  
  172. /**
  173. * SQL_workshop_content_search()
  174. @param string $string 
  175. @param string $type 
  176. @return string $requete
  177. */
  178. function SQL_workrep_content_search($string$type)
  179. {
  180.     if ($type == 'PUBLIC'{
  181.         $date 'workrep_date_crea';
  182.         $statut_mask 'AND workshop_statut<>\'E\' AND workshop_statut<>\'AA\' AND workshop_statut<>\'D\' AND workrep_statut<>\'E\' AND workrep_statut<>\'AA\' AND workrep_statut<>\'D\' AND workrepcon_validity=\'Y\'';
  183.     
  184.     if ($type == 'ADMIN'{
  185.         $date 'workrep_date_crea';
  186.         $statut_mask 'AND workshop_statut<>\'E\' AND workrep_statut<>\'E\' AND workrepcon_validity=\'Y\'';
  187.     
  188.     $requete 'SELECT workrep_id, workrep_title, workrepcon_id, workrepcon_title, to_char(' $date ', \''.toStringSqlDate().'\') AS date_display, workrep_statut AS statut, to_char(rank(wrc.idxfti, q)*100, \'99.99\') AS pertinence FROM to_tsquery(\'default\', \''.$string.'\') as q, ' J_PARTS ' LEFT OUTER JOIN ' T_WORK_REP '  AS wr ON j_root_id  =  workrep_id LEFT OUTER JOIN ' T_WORK_REP_CONT ' AS wrc ON  j_parts_id= workrepcon_id LEFT OUTER JOIN ' T_WORK ' ON workrep_workshop_id  =  workshop_id WHERE wrc.idxfti @@ q  AND j_type=\'W\' ' $statut_mask ' ORDER BY rank(wrc.idxfti, q) DESC;';
  189.  
  190.     return $requete;
  191.  
  192. /**
  193. * SQL_workshop_content_search()
  194. @param string $string 
  195. @param string $type 
  196. @return string $requete
  197. */
  198. function SQL_workshop_calendar_search($string$type)
  199. {
  200.     if ($type == 'PUBLIC'{
  201.         $statut_mask 'AND workshop_statut<>\'E\' AND workshop_statut<>\'AA\' AND workshop_statut<>\'D\' AND workcal_validity=\'Y\'';
  202.     
  203.     if ($type == 'ADMIN'{
  204.         $statut_mask 'AND workshop_statut<>\'E\' AND workcal_validity=\'Y\'';
  205.     
  206.  
  207.     $requete 'SELECT workcal_id, workcal_task, workcal_workshop_id, workshop_denomination, workshop_statut AS statut, to_char(rank(wc.idxfti, q)*100, \'99.99\') AS pertinence FROM to_tsquery(\'default\', \''.$string.'\') as q, ' T_WORK_CAL ' AS wc LEFT OUTER JOIN ' T_WORK ' AS w ON  workcal_workshop_id  = workshop_id WHERE wc.idxfti @@ q ' $statut_mask ' ORDER BY rank(wc.idxfti, q) DESC;';
  208.  
  209.     return $requete;
  210.  
  211. /**
  212. * SQL_workshop_content_search()
  213. @param string $string 
  214. @param string $type 
  215. @return string $requete
  216. */
  217. function SQL_workshop_com_search($string$type)
  218. {
  219.     if ($type == 'PUBLIC'{
  220.         $statut_mask 'AND workshop_statut<>\'E\' AND workshop_statut<>\'AA\' AND workshop_statut<>\'D\' AND workcom_statut <>\'E\'';
  221.     
  222.     if ($type == 'ADMIN'{
  223.         $statut_mask 'AND workshop_statut<>\'E\' AND workcom_statut <>\'E\'';
  224.     
  225.  
  226.     $requete 'SELECT workcom_id, workcom_parent, workcom_subject, workcom_workshop_id, workshop_denomination, workshop_statut AS statut, to_char(rank(wc.idxfti, q)*100, \'99.99\') AS pertinence FROM to_tsquery(\'default\', \''.$string.'\') as q, ' T_WORK_COM '  AS wc LEFT OUTER JOIN ' T_WORK ' AS w ON  workcom_workshop_id  = workshop_id WHERE wc.idxfti @@ q ' $statut_mask ' ORDER BY rank(wc.idxfti, q) DESC;';
  227.  
  228.     return $requete;
  229.  
  230. /**
  231. * SQL_yellowpages_search()
  232. @param string $string 
  233. @param string $type 
  234. @param string $searchtype 
  235. @return string $requete
  236. */
  237. function SQL_yellowpages_search($string$type$searchtype)
  238. {
  239.     if ($type == 'PUBLIC'{
  240.         $statut_mask 'AND yellowp_statut<>\'E\' AND yellowp_statut<>\'AA\' AND yellowp_statut<>\'D\'';
  241.     
  242.     if ($type == 'ADMIN'{
  243.         $statut_mask 'AND yellowp_statut<>\'E\'';
  244.     
  245.     $requete 'SELECT yellowp_id, yellowp_name, to_char(yellowp_date_crea, \''.toStringSqlDate().'\') AS date_display, yellowp_statut AS statut FROM ' T_YELLOWPAGES ' ' SQL_ConstructorExpression($string$searchtype'yellowp_name'' ' $statut_mask ' ORDER BY yellowp_name ASC;';
  246.  
  247.     return $requete;
  248.  
  249. /**
  250. * SQL_user_search()
  251. @param string $string 
  252. @param string $type 
  253. @param string $searchtype 
  254. @return string $requete
  255. */
  256. function SQL_user_search($string$type$searchtype)
  257. {
  258.     if ($type == 'PUBLIC'{
  259.         $statut_mask 'AND user_validity<>\'D\' AND user_validity<>\'N\'';
  260.     
  261.     if ($type == 'ADMIN'{
  262.         $statut_mask 'AND user_validity<>\'N\'';
  263.     
  264.     $requete 'SELECT user_id, user_login, to_char(user_date_crea, \''.toStringSqlDate().'\') AS date_display, user_validity AS statut FROM ' T_USER ' ' SQL_ConstructorExpression($string$searchtype'user_login'' ' $statut_mask ' ORDER BY user_login ASC;';
  265.  
  266.     return $requete;
  267.  
  268. /**
  269. * SQL_theme_search()
  270. @param string $string 
  271. @param string $type 
  272. @param string $searchtype 
  273. @return string $requete
  274. */
  275. function SQL_theme_search($string$type$searchtype)
  276. {
  277.     if ($type == 'PUBLIC'{
  278.         $statut_mask 'AND theme_statut<>\'D\' AND theme_statut<>\'E\'';
  279.     
  280.     if ($type == 'ADMIN'{
  281.         $statut_mask 'AND theme_statut<>\'E\'';
  282.     
  283.     $requete 'SELECT theme_id, theme_name, to_char(theme_date_crea, \''.toStringSqlDate().'\') AS date_display, theme_statut AS statut FROM ' T_THEME ' ' SQL_ConstructorExpression($string$searchtype'theme_name'' ' $statut_mask ' ORDER BY theme_name ASC;';
  284.  
  285.     return $requete;
  286.  
  287. /**
  288. * SQL_scale_search()
  289. @param string $string 
  290. @param string $type 
  291. @param string $searchtype 
  292. @return string $requete
  293. */
  294. function SQL_scale_search($string$type$searchtype)
  295. {
  296.     if ($type == 'PUBLIC'{
  297.         $statut_mask 'AND scale_statut<>\'D\' AND scale_statut<>\'E\' AND scale_statut<>\'I\'';
  298.     
  299.     if ($type == 'ADMIN'{
  300.         $statut_mask 'AND scale_statut<>\'I\' AND scale_statut<>\'E\'';
  301.     
  302.     $requete 'SELECT scale_id, scale_denomination, to_char(scale_date_crea, \''.toStringSqlDate().'\') AS date_display, scale_statut AS statut FROM ' T_SCALE ' ' SQL_ConstructorExpression($string$searchtype'scale_denomination'' ' $statut_mask ' ORDER BY scale_denomination ASC;';
  303.  
  304.     return $requete;
  305.  
  306. /**
  307. * SQL_level_search()
  308. @param string $string 
  309. @param string $type 
  310. @param string $searchtype 
  311. @return string $requete
  312. */
  313. function SQL_level_search($string$type$searchtype)
  314. {
  315.     if ($type == 'PUBLIC'{
  316.         $statut_mask 'AND level_statut<>\'D\' AND level_statut<>\'E\'';
  317.     
  318.     if ($type == 'ADMIN'{
  319.         $statut_mask 'AND level_statut<>\'E\'';
  320.     
  321.     $requete "SELECT level_id, level_name, to_char(level_date_crea, '".toStringSqlDate()."') AS date_display, level_statut AS statut FROM " T_LEVEL " " SQL_ConstructorExpression($string$searchtype'level_name'' ' $statut_mask " ORDER BY level_name ASC;";
  322.  
  323.     return $requete;
  324.  
  325. /**
  326. * SQL_ConstructorExpression()
  327. * Construit les requĂȘtes simple
  328. @param string $string 
  329. @param string $searchtype 
  330. @param string $field_name 
  331. @return string $requete
  332. */
  333. function SQL_ConstructorExpression($string$searchtype$field_name)
  334. {
  335.     $clause_requete 'WHERE ';
  336.     $sep '';
  337.     $string trim($string);
  338.     $strings @explode(' '$string);
  339.     switch ($searchtype{
  340.         case 'one':
  341.             for($i 0$i count($strings)$i++{
  342.                 if(strlen($strings[$i])<=3)    $clause_requete .= $sep $field_name ' LIKE \'' $strings[$i'%\'';
  343.                 else $clause_requete .= $sep $field_name ' LIKE \'%' $strings[$i'%\'';
  344.                 $sep ' OR ';
  345.             
  346.             break;
  347.         case 'all':
  348.             for($i 0$i count($strings)$i++{
  349.                 if(strlen($strings[$i])<=3$clause_requete .= $sep $field_name ' LIKE \'' $strings[$i'%\'';
  350.                 else $clause_requete .= $sep $field_name ' LIKE \'%' $strings[$i'%\'';
  351.                 $sep ' AND ';
  352.             
  353.             break;
  354.         case 'exp':
  355.             $clause_requete .= $field_name '=\'' $string '\'';
  356.             break;
  357.         default:
  358.             $clause_requete .= $field_name ' LIKE \'%' $string '%\'';
  359.             break;
  360.     
  361.     return $clause_requete;
  362.  
  363. ?>

Documentation generated on Fri, 16 Oct 2009 09:38:08 +0200 by phpDocumentor 1.4.1