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, 01 Apr 2011 09:33:57 +0200 by phpDocumentor 1.4.1