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

Source for file mysql.inc.php

Documentation is available at mysql.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_comment_search()
  13.  *
  14.  * @param string $string 
  15.  * @param string $type 
  16.  * @return string $q
  17.  */
  18. function SQL_comment_search($string$type)
  19. {
  20.  
  21.   if ($type == 'PUBLIC'{
  22.     $status_mask " AND comment_status = 'P' ";
  23.   }
  24.   if ($type == 'ADMIN'{
  25.     $status_mask '';
  26.   }
  27.  
  28.   $q =    "SELECT C.*, U.user_id, U.user_login, ".
  29.         "DATE_FORMAT(C.comment_date_crea, '".toStringSqlDate('long')."') AS date_display, ".
  30.         "MATCH(comment_name, comment_email, comment_body) AGAINST('" $string "') AS pertinence FROM " T_COMM " AS C ".
  31.         "LEFT OUTER JOIN " T_USER " AS U ON C.comment_user_id = U.user_id ".
  32.         "LEFT OUTER JOIN " T_PROFILE " AS P ON P.profile_id = U.user_profile ".
  33.         "WHERE MATCH (comment_name, comment_email, comment_body) AGAINST ('" $string "' IN BOOLEAN MODE)".
  34.         $status_mask "ORDER BY pertinence DESC;";
  35.  
  36.   return $q;
  37. }
  38.  
  39. /**
  40.  * SQL_project_search()
  41.  *
  42.  * @param string $string 
  43.  * @param string $type 
  44.  * @return string $q
  45.  */
  46. function SQL_project_search($string$type)
  47. {
  48.  
  49.   if ($type == 'PUBLIC'{
  50.     $date 'project_published_date';
  51.     $status_mask 'AND project_statut<>\'E\' AND project_statut<>\'AA\' AND project_statut<>\'D\'';
  52.   }
  53.   if ($type == 'ADMIN'{
  54.     $date 'project_date_crea';
  55.     $status_mask 'AND project_statut<>\'E\'';
  56.   }
  57.   $q 'SELECT project_id, project_name, DATE_FORMAT(' $date ', \''.toStringSqlDate().'\') AS date_display, project_statut AS statut, MATCH(project_name, project_description, project_body) AGAINST(\'' $string '\') AS pertinence FROM ' T_PROJECT ' WHERE MATCH (project_name, project_description, project_body) AGAINST (\'' $string '\' IN BOOLEAN MODE) ' $status_mask ' ORDER BY pertinence DESC;';
  58.  
  59.   return $q;
  60. }
  61.  
  62. /**
  63.  * SQL_news_search()
  64.  *
  65.  * @param string $string 
  66.  * @param string $type 
  67.  * @return string $q
  68.  */
  69. function SQL_news_search($string$type)
  70. {
  71.  
  72.   if ($type == 'PUBLIC'{
  73.     $date 'news_published_date';
  74.     $status_mask 'AND news_statut<>\'E\' AND news_statut<>\'AA\' AND news_statut<>\'D\'';
  75.   }
  76.   if ($type == 'ADMIN'{
  77.     $date 'news_date_crea';
  78.     $status_mask 'AND news_statut<>\'E\'';
  79.   }
  80.   $q 'SELECT news_id, news_title, DATE_FORMAT(' $date ', \''.toStringSqlDate().'\') AS date_display, news_statut AS statut, MATCH(news_title, news_header, news_body) AGAINST(\'' $string '\') AS pertinence FROM ' T_NEWS ' WHERE MATCH (news_title, news_header, news_body) AGAINST (\'' $string '\' IN BOOLEAN MODE) ' $status_mask ' ORDER BY pertinence DESC;';
  81.  
  82.   return $q;
  83. }
  84.  
  85. /**
  86.  * SQL_newsletter_search()
  87.  *
  88.  * @param string $string 
  89.  * @param string $type 
  90.  * @return string $q
  91.  */
  92. function SQL_newsletter_search($string$type)
  93. {
  94.   if ($type == 'PUBLIC'{
  95.     $date 'newsletter_published_date';
  96.     $status_mask 'AND newsletter_statut<>\'E\' AND newsletter_statut<>\'D\'';
  97.   }
  98.   if ($type == 'ADMIN'{
  99.     $date 'newsletter_date_crea';
  100.     $status_mask 'AND newsletter_statut<>\'E\'';
  101.   }
  102.   $q 'SELECT newsletter_id, newsletter_title, DATE_FORMAT(' $date ', \''.toStringSqlDate().'\') AS date_display, newsletter_statut AS statut, MATCH(newsletter_title, newsletter_body) AGAINST(\'' $string '\') AS pertinence FROM ' T_NEWSLETTER ' WHERE MATCH (newsletter_title, newsletter_body) AGAINST (\'' $string '\' IN BOOLEAN MODE) ' $status_mask ' ORDER BY pertinence DESC;';
  103.  
  104.   return $q;
  105. }
  106.  
  107. /**
  108.  * SQL_publication_search()
  109.  *
  110.  * @param string $string 
  111.  * @param string $type 
  112.  * @return string $q
  113.  */
  114. function SQL_publication_search($string$type)
  115. {
  116.   if ($type == 'PUBLIC'{
  117.     $date 'publi_published_date';
  118.     $status_mask 'AND publi_statut<>\'E\' AND publi_statut<>\'AA\' AND publi_statut<>\'D\'';
  119.   }
  120.   if ($type == 'ADMIN'{
  121.     $date 'publi_date_crea';
  122.     $status_mask 'AND publi_statut<>\'E\'';
  123.   }
  124.   $q 'SELECT publi_id, publi_title, DATE_FORMAT(' $date ', \''.toStringSqlDate().'\') AS date_display, publi_statut AS statut, MATCH(publi_title, publi_resume) AGAINST(\'' $string '\') AS pertinence FROM ' T_PUBLI ' WHERE MATCH (publi_title, publi_resume) AGAINST (\'' $string '\' IN BOOLEAN MODE) AND publi_statut<>\'E\' ' $status_mask ' ORDER BY pertinence DESC;';
  125.  
  126.   return $q;
  127. }
  128.  
  129. /**
  130.  * SQL_publication_content_search()
  131.  *
  132.  * @param string $string 
  133.  * @param string $type 
  134.  * @return string $q
  135.  */
  136. function SQL_publication_content_search($string$type)
  137. {
  138.   if ($type == 'PUBLIC'{
  139.     $date 'publi_published_date';
  140.     $status_mask 'AND publi_statut<>\'E\' AND publi_statut<>\'AA\' AND publi_statut<>\'D\' AND publicon_validity=\'Y\'';
  141.   }
  142.   if ($type == 'ADMIN'{
  143.     $date 'publi_date_crea';
  144.     $status_mask 'AND publi_statut<>\'E\' AND publicon_validity=\'Y\'';
  145.   }
  146.   $q 'SELECT publi_id, publi_title, publicon_id, publicon_title, DATE_FORMAT(' $date ', \''.toStringSqlDate().'\') AS date_display, publi_statut AS statut, MATCH(publicon_title, publicon_body) AGAINST(\'' $string '\') AS pertinence FROM ' J_PARTS ' LEFT OUTER JOIN ' T_PUBLI_CONT ' ON j_parts_id  =  publicon_id LEFT OUTER JOIN  ' T_PUBLI ' ON  j_root_id= publi_id WHERE MATCH (publicon_title, publicon_body) AGAINST (\'' $string '\' IN BOOLEAN MODE) AND j_type=\'P\' ' $status_mask ' ORDER BY pertinence DESC;';
  147.  
  148.   return $q;
  149. }
  150.  
  151. /**
  152.  * SQL_sdi_search()
  153.  *
  154.  * @param string $string 
  155.  * @param string $type 
  156.  * @return string $q
  157.  */
  158. function SQL_sdi_search($string$type)
  159. {
  160.   if ($type == 'PUBLIC'{
  161.     $status_mask 'AND sdii_statut<>\'D\' AND sdii_statut<>\'E\'';
  162.   }
  163.   if ($type == 'ADMIN'{
  164.     $status_mask 'AND sdii_statut<>\'E\'';
  165.   }
  166.   $q 'SELECT sdii_id, sdii_name, DATE_FORMAT(sdii_date_crea, \''.toStringSqlDate().'\') AS date_display, sdii_statut AS statut, MATCH(sdii_name, sdii_description, sdii_goal, sdii_consulting) AGAINST(\'' $string '\') AS pertinence FROM ' T_SDI_INFO ' WHERE MATCH ( sdii_name, sdii_description, sdii_goal, sdii_consulting) AGAINST (\'' $string '\' IN BOOLEAN MODE) ' $status_mask ' ORDER BY pertinence DESC;';
  167.  
  168.   return $q;
  169. }
  170.  
  171. /**
  172.  * SQL_workshop_search()
  173.  *
  174.  * @param string $string 
  175.  * @param string $type 
  176.  * @return string $q
  177.  */
  178. function SQL_workshop_search($string$type)
  179. {
  180.   if ($type == 'PUBLIC'{
  181.     $date 'workshop_date_crea';
  182.     $status_mask 'AND workshop_statut<>\'E\' AND workshop_statut<>\'AA\' AND workshop_statut<>\'D\'';
  183.   }
  184.   if ($type == 'ADMIN'{
  185.     $date 'workshop_date_crea';
  186.     $status_mask 'AND workshop_statut<>\'E\'';
  187.   }
  188.   $q 'SELECT workshop_id, workshop_denomination, DATE_FORMAT(' $date ', \''.toStringSqlDate().'\') AS date_display, workshop_statut AS statut, MATCH(workshop_denomination, workshop_resume) AGAINST(\'' $string '\') AS pertinence FROM ' T_WORK ' WHERE MATCH ( workshop_denomination, workshop_resume) AGAINST (\'' $string '\' IN BOOLEAN MODE) ' $status_mask ' ORDER BY pertinence DESC;';
  189.  
  190.   return $q;
  191. }
  192.  
  193. /**
  194.  * SQL_workshop_content_search()
  195.  *
  196.  * @param string $string 
  197.  * @param string $type 
  198.  * @return string $q
  199.  */
  200. function SQL_workrep_search($string$type)
  201. {
  202.   if ($type == 'PUBLIC'{
  203.     $date 'workrep_published_date';
  204.     $status_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\'';
  205.   }
  206.   if ($type == 'ADMIN'{
  207.     $date 'workrep_date_crea';
  208.     $status_mask 'AND workshop_statut<>\'E\' AND workrep_statut<>\'E\'';
  209.   }
  210.   $q 'SELECT workrep_id, workrep_title, workshop_id, workshop_denomination, DATE_FORMAT(' $date ', \''.toStringSqlDate().'\') AS date_display, workrep_statut AS statut, MATCH(workrep_title, workrep_resume) AGAINST(\'' $string '\') AS pertinence FROM ' T_WORK_REP ' LEFT OUTER JOIN ' T_WORK ' ON workrep_workshop_id  =  workshop_id WHERE MATCH (workrep_title, workrep_resume) AGAINST (\'' $string '\' IN BOOLEAN MODE) ' $status_mask ' ORDER BY pertinence DESC;';
  211.  
  212.   return $q;
  213. }
  214.  
  215. /**
  216.  * SQL_workshop_content_search()
  217.  *
  218.  * @param string $string 
  219.  * @param string $type 
  220.  * @return string $q
  221.  */
  222. function SQL_workrep_content_search($string$type)
  223. {
  224.   if ($type == 'PUBLIC'{
  225.     $date 'workrep_date_crea';
  226.     $status_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\'';
  227.   }
  228.   if ($type == 'ADMIN'{
  229.     $date 'workrep_date_crea';
  230.     $status_mask 'AND workshop_statut<>\'E\' AND workrep_statut<>\'E\' AND workrepcon_validity=\'Y\'';
  231.   }
  232.   $q 'SELECT workrep_id, workrep_title, workrepcon_id, workrepcon_title, DATE_FORMAT(' $date ', \''.toStringSqlDate().'\') AS date_display, workrep_statut AS statut, MATCH(workrepcon_title, workrepcon_body) AGAINST(\'' $string '\') AS pertinence FROM ' J_PARTS ' LEFT OUTER JOIN ' T_WORK_REP ' ON j_root_id  =  workrep_id LEFT OUTER JOIN ' T_WORK_REP_CONT ' ON  j_parts_id= workrepcon_id LEFT OUTER JOIN ' T_WORK ' ON workrep_workshop_id  =  workshop_id WHERE MATCH (workrepcon_title, workrepcon_body) AGAINST (\'' $string '\' IN BOOLEAN MODE) AND j_type=\'W\' ' $status_mask ' ORDER BY pertinence DESC;';
  233.  
  234.   return $q;
  235. }
  236.  
  237. /**
  238.  * SQL_workshop_content_search()
  239.  *
  240.  * @param string $string 
  241.  * @param string $type 
  242.  * @return string $q
  243.  */
  244. function SQL_workshop_calendar_search($string$type)
  245. {
  246.   if ($type == 'PUBLIC'{
  247.     $status_mask 'AND workshop_statut<>\'E\' AND workshop_statut<>\'AA\' AND workshop_statut<>\'D\' AND workcal_validity=\'Y\'';
  248.   }
  249.   if ($type == 'ADMIN'{
  250.     $status_mask 'AND workshop_statut<>\'E\' AND workcal_validity=\'Y\'';
  251.   }
  252.  
  253.   $q 'SELECT workcal_id, workcal_task, workcal_workshop_id, workshop_denomination, workshop_statut AS statut, MATCH(workcal_task, workcal_task_details) AGAINST(\'' $string '\') AS pertinence FROM ' T_WORK_CAL ' LEFT OUTER JOIN ' T_WORK ' ON  workcal_workshop_id  = workshop_id WHERE MATCH (workcal_task, workcal_task_details) AGAINST (\'' $string '\' IN BOOLEAN MODE) ' $status_mask ' ORDER BY pertinence DESC;';
  254.  
  255.   return $q;
  256. }
  257.  
  258. /**
  259.  * SQL_workshop_content_search()
  260.  *
  261.  * @param string $string 
  262.  * @param string $type 
  263.  * @return string $q
  264.  */
  265. function SQL_workshop_com_search($string$type)
  266. {
  267.   if ($type == 'PUBLIC'{
  268.     $status_mask 'AND workshop_statut<>\'E\' AND workshop_statut<>\'AA\' AND workshop_statut<>\'D\' AND workcom_statut <>\'E\'';
  269.   }
  270.   if ($type == 'ADMIN'{
  271.     $status_mask 'AND workshop_statut<>\'E\' AND workcom_statut <>\'E\'';
  272.   }
  273.  
  274.   $q 'SELECT workcom_id, workcom_parent, workcom_subject, workcom_workshop_id, workshop_denomination, workshop_statut AS statut, MATCH(workcom_subject, workcom_body) AGAINST(\'' $string '\') AS pertinence FROM ' T_WORK_COM ' LEFT OUTER JOIN ' T_WORK ' ON  workcom_workshop_id  = workshop_id WHERE MATCH (workcom_subject, workcom_body) AGAINST (\'' $string '\' IN BOOLEAN MODE) ' $status_mask ' ORDER BY pertinence DESC;';
  275.  
  276.   return $q;
  277. }
  278.  
  279. /**
  280.  * SQL_yellowpages_search()
  281.  *
  282.  * @param string $string 
  283.  * @param string $type 
  284.  * @param string $searchtype 
  285.  * @return string $q
  286.  */
  287. function SQL_yellowpages_search($string$type$searchtype)
  288. {
  289.   if ($type == 'PUBLIC'{
  290.     $status_mask 'AND yellowp_statut<>\'E\' AND yellowp_statut<>\'AA\' AND yellowp_statut<>\'D\'';
  291.   }
  292.   if ($type == 'ADMIN'{
  293.     $status_mask 'AND yellowp_statut<>\'E\'';
  294.   }
  295.   $q 'SELECT yellowp_id, yellowp_name, DATE_FORMAT(yellowp_date_crea, \''.toStringSqlDate().'\') AS date_display, yellowp_statut AS statut FROM ' T_YELLOWPAGES ' ' SQL_ConstructorExpression($string$searchtype'yellowp_name'' ' $status_mask ' ORDER BY yellowp_name ASC;';
  296.  
  297.   return $q;
  298. }
  299.  
  300. /**
  301.  * SQL_user_search()
  302.  *
  303.  * @param string $string 
  304.  * @param string $type 
  305.  * @param string $searchtype 
  306.  * @return string $q
  307.  */
  308. function SQL_user_search($string$type$searchtype)
  309. {
  310.   if ($type == 'PUBLIC'{
  311.     $status_mask 'AND user_validity<>\'D\' AND user_validity<>\'N\'';
  312.   }
  313.   if ($type == 'ADMIN'{
  314.     $status_mask 'AND user_validity<>\'N\'';
  315.   }
  316.   $q 'SELECT user_id, user_login, DATE_FORMAT(user_date_crea, \''.toStringSqlDate().'\') AS date_display, user_validity AS statut FROM ' T_USER ' ' SQL_ConstructorExpression($string$searchtype'user_login'' ' $status_mask ' ORDER BY user_login ASC;';
  317.  
  318.   return $q;
  319. }
  320.  
  321. /**
  322.  * SQL_theme_search()
  323.  *
  324.  * @param string $string 
  325.  * @param string $type 
  326.  * @param string $searchtype 
  327.  * @return string $q
  328.  */
  329. function SQL_theme_search($string$type$searchtype)
  330. {
  331.   if ($type == 'PUBLIC'{
  332.     $status_mask 'AND theme_statut<>\'D\' AND theme_statut<>\'E\'';
  333.   }
  334.   if ($type == 'ADMIN'{
  335.     $status_mask 'AND theme_statut<>\'E\'';
  336.   }
  337.   $q 'SELECT theme_id, theme_name, DATE_FORMAT(theme_date_crea, \''.toStringSqlDate().'\') AS date_display, theme_statut AS statut FROM ' T_THEME ' ' SQL_ConstructorExpression($string$searchtype'theme_name'' ' $status_mask ' ORDER BY theme_name ASC;';
  338.  
  339.   return $q;
  340. }
  341.  
  342. /**
  343.  * SQL_scale_search()
  344.  *
  345.  * @param string $string 
  346.  * @param string $type 
  347.  * @param string $searchtype 
  348.  * @return string $q
  349.  */
  350. function SQL_scale_search($string$type$searchtype)
  351. {
  352.   if ($type == 'PUBLIC'{
  353.     $status_mask 'AND scale_statut<>\'D\' AND scale_statut<>\'E\' AND scale_statut<>\'I\'';
  354.   }
  355.   if ($type == 'ADMIN'{
  356.     $status_mask 'AND scale_statut<>\'I\' AND scale_statut<>\'E\'';
  357.   }
  358.   $q 'SELECT scale_id, scale_denomination, DATE_FORMAT(scale_date_crea, \''.toStringSqlDate().'\') AS date_display, scale_statut AS statut FROM ' T_SCALE ' ' SQL_ConstructorExpression($string$searchtype'scale_denomination'' ' $status_mask ' ORDER BY scale_denomination ASC;';
  359.  
  360.   return $q;
  361. }
  362.  
  363. /**
  364.  * SQL_level_search()
  365.  *
  366.  * @param string $string 
  367.  * @param string $type 
  368.  * @param string $searchtype 
  369.  * @return string $q
  370.  */
  371. function SQL_level_search($string$type$searchtype)
  372. {
  373.   if ($type == 'PUBLIC'{
  374.     $status_mask 'AND level_statut<>\'D\' AND level_statut<>\'E\'';
  375.   }
  376.   if ($type == 'ADMIN'{
  377.     $status_mask 'AND level_statut<>\'E\'';
  378.   }
  379.   $q 'SELECT level_id, level_name, DATE_FORMAT(level_date_crea, \''.toStringSqlDate().'\') AS date_display, level_statut AS statut FROM ' T_LEVEL ' ' SQL_ConstructorExpression($string$searchtype'level_name'' ' $status_mask ' ORDER BY level_name ASC;';
  380.  
  381.   return $q;
  382. }
  383.  
  384. /**
  385.  * SQL_ConstructorExpression()
  386.  * Construit les requĂȘtes simple
  387.  *
  388.  * @param string $string 
  389.  * @param string $searchtype 
  390.  * @param string $field_name 
  391.  * @return string $q
  392.  */
  393. function SQL_ConstructorExpression($string$searchtype$field_name)
  394. {
  395.   $clause_requete 'WHERE ';
  396.   $sep '';
  397.   $string trim($string);
  398.   $strings @explode(' '$string);
  399.   switch ($searchtype{
  400.     case 'one':
  401.       for($i 0$i count($strings)$i++{
  402.         if(strlen($strings[$i])<=3)    $clause_requete .= $sep $field_name ' LIKE \'' $strings[$i'%\'';
  403.         else $clause_requete .= $sep $field_name ' LIKE \'%' $strings[$i'%\'';
  404.         $sep ' OR ';
  405.       }
  406.       break;
  407.     case 'all':
  408.       for($i 0$i count($strings)$i++{
  409.         if(strlen($strings[$i])<=3$clause_requete .= $sep $field_name ' LIKE \'' $strings[$i'%\'';
  410.         else $clause_requete .= $sep $field_name ' LIKE \'%' $strings[$i'%\'';
  411.         $sep ' AND ';
  412.       }
  413.       break;
  414.     case 'exp':
  415.       $clause_requete .= $field_name '=\'' $string '\'';
  416.       break;
  417.     default:
  418.       $clause_requete .= $field_name ' LIKE \'%' $string '%\'';
  419.       break;
  420.   }
  421.   return $clause_requete;
  422. }
  423.  
  424. ?>

Documentation generated on Thu, 03 May 2012 15:06:46 +0200 by phpDocumentor 1.4.1