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. * 
  14. * @param string $string 
  15. * @param string $type 
  16. * @return string $requete
  17. */
  18. function SQL_project_search($string, $type)
  19. {
  20.  
  21.     if ($type == 'PUBLIC') {
  22.         $date = 'project_published_date';
  23.         $statut_mask = 'AND project_statut<>\'E\' AND project_statut<>\'AA\' AND project_statut<>\'D\'';
  24.     } 
  25.     if ($type == 'ADMIN') {
  26.         $date = 'project_date_crea';
  27.         $statut_mask = 'AND project_statut<>\'E\'';
  28.     } 
  29.     $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;';
  30.     
  31.     return $requete;
  32. }
  33.  
  34. /**
  35. * SQL_news_search()
  36. * 
  37. * @param string $string 
  38. * @param string $type 
  39. * @return string $requete
  40. */
  41. function SQL_news_search($string, $type)
  42. {
  43.     if ($type == 'PUBLIC') {
  44.         $date = 'news_published_date';
  45.         $statut_mask = 'AND news_statut<>\'E\' AND news_statut<>\'AA\' AND news_statut<>\'D\'';
  46.     } 
  47.     if ($type == 'ADMIN') {
  48.         $date = 'news_date_crea';
  49.         $statut_mask = 'AND news_statut<>\'E\'';
  50.     } 
  51.     $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;';
  52.     
  53.     return $requete;
  54. }
  55.  
  56. /**
  57. * SQL_newsletter_search()
  58. * 
  59. * @param string $string 
  60. * @param string $type 
  61. * @return string $requete
  62. */
  63. function SQL_newsletter_search($string, $type)
  64. {
  65.     if ($type == 'PUBLIC') {
  66.         $date = 'newsletter_published_date';
  67.         $statut_mask = 'AND newsletter_statut<>\'E\' AND newsletter_statut<>\'D\'';
  68.     } 
  69.     if ($type == 'ADMIN') {
  70.         $date = 'newsletter_date_crea';
  71.         $statut_mask = 'AND newsletter_statut<>\'E\'';
  72.     } 
  73.     $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;';
  74.  
  75.     return $requete;
  76. } 
  77.  
  78. /**
  79. * SQL_publication_search()
  80. * 
  81. * @param string $string 
  82. * @param string $type 
  83. * @return string $requete
  84. */
  85. function SQL_publication_search($string, $type)
  86. {
  87.     if ($type == 'PUBLIC') {
  88.         $date = 'publi_published_date';
  89.         $statut_mask = 'AND publi_statut<>\'E\' AND publi_statut<>\'AA\' AND publi_statut<>\'D\'';
  90.     } 
  91.     if ($type == 'ADMIN') {
  92.         $date = 'publi_date_crea';
  93.         $statut_mask = 'AND publi_statut<>\'E\'';
  94.     } 
  95.     $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;';
  96.  
  97.     return $requete;
  98. } 
  99.  
  100. /**
  101. * SQL_publication_content_search()
  102. * 
  103. * @param string $string 
  104. * @param string $type 
  105. * @return string $requete
  106. */
  107. function SQL_publication_content_search($string, $type)
  108. {
  109.     if ($type == 'PUBLIC') {
  110.         $date = 'publi_published_date';
  111.         $statut_mask = 'AND publi_statut<>\'E\' AND publi_statut<>\'AA\' AND publi_statut<>\'D\' AND publicon_validity=\'Y\'';
  112.     } 
  113.     if ($type == 'ADMIN') {
  114.         $date = 'publi_date_crea';
  115.         $statut_mask = 'AND publi_statut<>\'E\' AND publicon_validity=\'Y\'';
  116.     } 
  117.     $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;';
  118.  
  119.     return $requete;
  120. } 
  121.  
  122. /**
  123. * SQL_sdi_search()
  124. * 
  125. * @param string $string 
  126. * @param string $type 
  127. * @return string $requete
  128. */
  129. function SQL_sdi_search($string, $type)
  130. {
  131.     if ($type == 'PUBLIC') {
  132.         $statut_mask = 'AND sdii_statut<>\'D\' AND sdii_statut<>\'E\'';
  133.     } 
  134.     if ($type == 'ADMIN') {
  135.         $statut_mask = 'AND sdii_statut<>\'E\'';
  136.     } 
  137.     $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;';
  138.  
  139.     return $requete;
  140. } 
  141.  
  142. /**
  143. * SQL_workshop_search()
  144. * 
  145. * @param string $string 
  146. * @param string $type 
  147. * @return string $requete
  148. */
  149. function SQL_workshop_search($string, $type)
  150. {
  151.     if ($type == 'PUBLIC') {
  152.         $date = 'workshop_date_crea';
  153.         $statut_mask = 'AND workshop_statut<>\'E\' AND workshop_statut<>\'AA\' AND workshop_statut<>\'D\'';
  154.     } 
  155.     if ($type == 'ADMIN') {
  156.         $date = 'workshop_date_crea';
  157.         $statut_mask = 'AND workshop_statut<>\'E\'';
  158.     } 
  159.     $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;';
  160.  
  161.     return $requete;
  162. } 
  163.  
  164. /**
  165. * SQL_workshop_content_search()
  166. * 
  167. * @param string $string 
  168. * @param string $type 
  169. * @return string $requete
  170. */
  171. function SQL_workrep_search($string, $type)
  172. {
  173.     if ($type == 'PUBLIC') {
  174.         $date = 'workrep_published_date';
  175.         $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\'';
  176.     } 
  177.     if ($type == 'ADMIN') {
  178.         $date = 'workrep_date_crea';
  179.         $statut_mask = 'AND workshop_statut<>\'E\' AND workrep_statut<>\'E\'';
  180.     } 
  181.     $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;';
  182.  
  183.     return $requete;
  184. } 
  185.  
  186. /**
  187. * SQL_workshop_content_search()
  188. * 
  189. * @param string $string 
  190. * @param string $type 
  191. * @return string $requete
  192. */
  193. function SQL_workrep_content_search($string, $type)
  194. {
  195.     if ($type == 'PUBLIC') {
  196.         $date = 'workrep_date_crea';
  197.         $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\'';
  198.     } 
  199.     if ($type == 'ADMIN') {
  200.         $date = 'workrep_date_crea';
  201.         $statut_mask = 'AND workshop_statut<>\'E\' AND workrep_statut<>\'E\' AND workrepcon_validity=\'Y\'';
  202.     } 
  203.     $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;';
  204.  
  205.     return $requete;
  206. } 
  207.  
  208. /**
  209. * SQL_workshop_content_search()
  210. * 
  211. * @param string $string 
  212. * @param string $type 
  213. * @return string $requete
  214. */
  215. function SQL_workshop_calendar_search($string, $type)
  216. {
  217.     if ($type == 'PUBLIC') {
  218.         $statut_mask = 'AND workshop_statut<>\'E\' AND workshop_statut<>\'AA\' AND workshop_statut<>\'D\' AND workcal_validity=\'Y\'';
  219.     } 
  220.     if ($type == 'ADMIN') {
  221.         $statut_mask = 'AND workshop_statut<>\'E\' AND workcal_validity=\'Y\'';
  222.     } 
  223.  
  224.     $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;';
  225.  
  226.     return $requete;
  227. } 
  228.  
  229. /**
  230. * SQL_workshop_content_search()
  231. * 
  232. * @param string $string 
  233. * @param string $type 
  234. * @return string $requete
  235. */
  236. function SQL_workshop_com_search($string, $type)
  237. {
  238.     if ($type == 'PUBLIC') {
  239.         $statut_mask = 'AND workshop_statut<>\'E\' AND workshop_statut<>\'AA\' AND workshop_statut<>\'D\' AND workcom_statut <>\'E\'';
  240.     } 
  241.     if ($type == 'ADMIN') {
  242.         $statut_mask = 'AND workshop_statut<>\'E\' AND workcom_statut <>\'E\'';
  243.     } 
  244.  
  245.     $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;';
  246.  
  247.     return $requete;
  248. } 
  249.  
  250. /**
  251. * SQL_yellowpages_search()
  252. * 
  253. * @param string $string 
  254. * @param string $type 
  255. * @param string $searchtype 
  256. * @return string $requete
  257. */
  258. function SQL_yellowpages_search($string, $type, $searchtype)
  259. {
  260.     if ($type == 'PUBLIC') {
  261.         $statut_mask = 'AND yellowp_statut<>\'E\' AND yellowp_statut<>\'AA\' AND yellowp_statut<>\'D\'';
  262.     } 
  263.     if ($type == 'ADMIN') {
  264.         $statut_mask = 'AND yellowp_statut<>\'E\'';
  265.     } 
  266.     $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;';
  267.  
  268.     return $requete;
  269. } 
  270.  
  271. /**
  272. * SQL_user_search()
  273. * 
  274. * @param string $string 
  275. * @param string $type 
  276. * @param string $searchtype 
  277. * @return string $requete
  278. */
  279. function SQL_user_search($string, $type, $searchtype)
  280. {
  281.     if ($type == 'PUBLIC') {
  282.         $statut_mask = 'AND user_validity<>\'D\' AND user_validity<>\'N\'';
  283.     } 
  284.     if ($type == 'ADMIN') {
  285.         $statut_mask = 'AND user_validity<>\'N\'';
  286.     } 
  287.     $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;';
  288.  
  289.     return $requete;
  290. } 
  291.  
  292. /**
  293. * SQL_theme_search()
  294. * 
  295. * @param string $string 
  296. * @param string $type 
  297. * @param string $searchtype 
  298. * @return string $requete
  299. */
  300. function SQL_theme_search($string, $type, $searchtype)
  301. {
  302.     if ($type == 'PUBLIC') {
  303.         $statut_mask = 'AND theme_statut<>\'D\' AND theme_statut<>\'E\'';
  304.     } 
  305.     if ($type == 'ADMIN') {
  306.         $statut_mask = 'AND theme_statut<>\'E\'';
  307.     } 
  308.     $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;';
  309.  
  310.     return $requete;
  311. } 
  312.  
  313. /**
  314. * SQL_scale_search()
  315. * 
  316. * @param string $string 
  317. * @param string $type 
  318. * @param string $searchtype 
  319. * @return string $requete
  320. */
  321. function SQL_scale_search($string, $type, $searchtype)
  322. {
  323.     if ($type == 'PUBLIC') {
  324.         $statut_mask = 'AND scale_statut<>\'D\' AND scale_statut<>\'E\' AND scale_statut<>\'I\'';
  325.     } 
  326.     if ($type == 'ADMIN') {
  327.         $statut_mask = 'AND scale_statut<>\'I\' AND scale_statut<>\'E\'';
  328.     } 
  329.     $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;';
  330.  
  331.     return $requete;
  332. } 
  333.  
  334. /**
  335. * SQL_level_search()
  336. * 
  337. * @param string $string 
  338. * @param string $type 
  339. * @param string $searchtype 
  340. * @return string $requete
  341. */
  342. function SQL_level_search($string, $type, $searchtype)
  343. {
  344.     if ($type == 'PUBLIC') {
  345.         $statut_mask = 'AND level_statut<>\'D\' AND level_statut<>\'E\'';
  346.     } 
  347.     if ($type == 'ADMIN') {
  348.         $statut_mask = 'AND level_statut<>\'E\'';
  349.     } 
  350.     $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;";
  351.  
  352.     return $requete;
  353. } 
  354.  
  355. /**
  356. * SQL_ConstructorExpression()
  357. * Construit les requĂȘtes simple
  358. * 
  359. * @param string $string 
  360. * @param string $searchtype 
  361. * @param string $field_name 
  362. * @return string $requete
  363. */
  364. function SQL_ConstructorExpression($string, $searchtype, $field_name)
  365. {
  366.     $clause_requete = 'WHERE ';
  367.     $sep = '';
  368.     $string = trim($string);
  369.     $strings = @explode(' ', $string);
  370.     switch ($searchtype) {
  371.         case 'one':
  372.             for($i = 0; $i < count($strings); $i++) {
  373.                 if(strlen($strings[$i])<=3)    $clause_requete .= $sep . $field_name . ' LIKE \'' . $strings[$i] . '%\'';
  374.                 else $clause_requete .= $sep . $field_name . ' LIKE \'%' . $strings[$i] . '%\'';
  375.                 $sep = ' OR ';
  376.             } 
  377.             break;
  378.         case 'all':
  379.             for($i = 0; $i < count($strings); $i++) {
  380.                 if(strlen($strings[$i])<=3) $clause_requete .= $sep . $field_name . ' LIKE \'' . $strings[$i] . '%\'';
  381.                 else $clause_requete .= $sep . $field_name . ' LIKE \'%' . $strings[$i] . '%\'';
  382.                 $sep = ' AND ';
  383.             } 
  384.             break;
  385.         case 'exp':
  386.             $clause_requete .= $field_name . '=\'' . $string . '\'';
  387.             break;
  388.         default:
  389.             $clause_requete .= $field_name . ' LIKE \'%' . $string . '%\'';
  390.             break;
  391.     } 
  392.     return $clause_requete;
  393. } 
  394.  
  395. ?>

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