Source for file addrbook_search_html.php

Documentation is available at addrbook_search_html.php

  1. <?php
  2. /**
  3.  * addrbook_search_html.php
  4.  *
  5.  * Handle addressbook searching with pure html.
  6.  *
  7.  * This file is included from compose.php
  8.  *
  9.  * @copyright 1999-2014 The SquirrelMail Project Team
  10.  * @license http://opensource.org/licenses/gpl-license.php GNU Public License
  11.  * @version $Id: addrbook_search_html.php 14420 2014-01-01 20:33:20Z pdontthink $
  12.  * @package squirrelmail
  13.  * @subpackage addressbook
  14.  */
  15.  
  16. /**
  17.  * Include the SquirrelMail initialization file.
  18.  * Because this file can also be included within compose we check for the $bInit
  19.  * var which is set inside ini.php. It's needed because compose already includes
  20.  * init.php.
  21.  */
  22. if (!isset($bInit)) {
  23.     /** This is the addrbook_search_html page */
  24.     define('PAGE_NAME''addrbook_search_html');
  25.  
  26.     include('../include/init.php');
  27. }
  28.  
  29. /** SquirrelMail required files. */
  30. include_once(SM_PATH 'functions/date.php');
  31. include_once(SM_PATH 'functions/addressbook.php');
  32. include_once(SM_PATH 'templates/util_addressbook.php');
  33.  
  34. sqgetGlobalVar('session',   $session,   SQ_POST);
  35. sqgetGlobalVar('mailbox',   $mailbox,   SQ_POST);
  36. if (sqgetGlobalVar('query'$addrquerySQ_POST))
  37.      $addrquery='';
  38. sqgetGlobalVar('listall',   $listall,   SQ_POST);
  39. sqgetGlobalVar('backend',   $backend,   SQ_POST);
  40.  
  41. /**
  42.  * Insert hidden data
  43.  */
  44. function addr_insert_hidden({
  45.     global $body$subject$send_to$send_to_cc$send_to_bcc$mailbox$mailprio,
  46.            $request_mdn$request_dr$identity$session$composeMessage$action;
  47.  
  48. //FIXME Do not echo HTML from the core.  This file already uses templates mostly, so why are we echoing here at all?!?
  49.    if (substr($body01== "\r"{
  50.        echo addHidden('body'"\n".$body);
  51.    else {
  52.        echo addHidden('body'$body);
  53.    }
  54.  
  55.    if (is_object($composeMessage&& $composeMessage->entities)
  56.        echo addHidden('attachments'urlencode(serialize($composeMessage->entities)));
  57.  
  58.    echo addHidden('session'$session).
  59.         addHidden('smaction'$action).
  60.         addHidden('subject'$subject).
  61.         addHidden('send_to'$send_to).
  62.         addHidden('send_to_bcc'$send_to_bcc).
  63.         addHidden('send_to_cc'$send_to_cc).
  64.         addHidden('mailprio'$mailprio).
  65.         addHidden('request_mdn'$request_mdn).
  66.         addHidden('request_dr'$request_dr).
  67.         addHidden('identity'$identity).
  68.         addHidden('mailbox'$mailbox).
  69.         addHidden('from_htmladdr_search''true');
  70. }
  71.  
  72.  
  73. /**
  74.  * List search results
  75.  * @param array $res Array containing results of search
  76.  * @param bool $includesource If true, adds backend column to address listing
  77.  */
  78. function addr_display_result($res$includesource true{
  79.     global $PHP_SELF$oTemplate$oErrorHandler;
  80.     
  81.  
  82. //FIXME: no HTML output from core
  83.     echo addForm($PHP_SELF'post''addressbook'''''array()TRUE).
  84.          addHidden('html_addr_search_done''true');
  85.     
  86.     $oTemplate->assign('compose_addr_pop'false);
  87.     $oTemplate->assign('include_abook_name'$includesource);
  88.     $oTemplate->assign('addresses'formatAddressList($res));
  89.     
  90.     $oTemplate->display('addrbook_search_list.tpl');
  91.     
  92.     echo '</form>';
  93. }
  94.  
  95. /* --- End functions --- */
  96.  
  97. if ($compose_new_win == '1'{
  98.     compose_Header($color$mailbox);
  99. }
  100. else {
  101.     displayPageHeader($color$mailbox);
  102. }
  103.  
  104. /** set correct value of $default_charset */
  105.  
  106. /* Initialize addressbook */
  107. $abook addressbook_init();
  108.  
  109.  
  110. /* Search form */
  111. echo addForm($PHP_SELF.'?html_addr_search=true''post''f');
  112. if (isset($session)) {
  113.     echo addHidden('session'$session);
  114. }
  115.  
  116. $oTemplate->assign('compose_addr_pop'false);
  117. $oTemplate->assign('backends'getBackends());
  118.  
  119. $oTemplate->display('addressbook_search_form.tpl');
  120.  
  121. echo "</form>\n";
  122. do_hook('addrbook_html_search_below'$null);
  123. /* End search form */
  124.  
  125. /* List addresses. Show personal addressbook */
  126. if ($addrquery == '' || empty($listall)) {
  127.     // TODO: recheck all conditions and simplity if statements
  128.     if (isset($backend|| $backend != -|| $addrquery == ''{
  129.         if ($addrquery == '' && empty($listall)) {
  130.             $backend $abook->localbackend;
  131.         }
  132.  
  133.         $res $abook->list_addr($backend);
  134.  
  135.         if (is_array($res)) {
  136.             usort($res,'alistcmp');
  137.             addr_display_result($resfalse);
  138.         else {
  139.             plain_error_message(_("Unable to list addresses from %s")$abook->backends[$backend]->sname);
  140.         }
  141.  
  142.     else {
  143.         $res $abook->list_addr();
  144.         usort($res,'alistcmp');
  145.         addr_display_result($restrue);
  146.     }
  147.     $oTemplate->display('footer.tpl');
  148.     exit;
  149. elseif (!empty($addrquery)) {
  150.     /* Do the search */
  151.     if ($backend == -1{
  152.         $res $abook->s_search($addrquery);
  153.     else {
  154.         $res $abook->s_search($addrquery$backend);
  155.     }
  156.  
  157.     if (!is_array($res)) {
  158.         plain_error_message(_("Your search failed with the following error(s)".':<br />'nl2br(sm_encode_html_special_chars($abook->error)));
  159.     elseif (sizeof($res== 0{
  160.         $oTemplate->assign('note'_("No persons matching your search were found"));
  161.         $oTemplate->display('note.tpl');
  162.     else {
  163.         addr_display_result($res);
  164.     }
  165. else {
  166.     // not first time display, not listall and search is empty
  167.     // TODO: I think, this part of control structure is never reached.
  168.     plain_error_message(_("Nothing to search"));
  169. }
  170.  
  171. if ($addrquery == '' || sizeof($res== 0{
  172. //FIXME don't echo HTML from core -- especially convoluted given that there is template code immediately above AND below this block
  173.     echo '<div style="text-align: center;">'.
  174.         addForm('compose.php','post','k'''''array()TRUE);
  175.     echo '<input type="submit" value="' _("Return"'" name="return" />' "\n" .
  176.          '</form></div></nobr>';
  177. }
  178.  
  179. echo '<hr />';
  180.  
  181. $oTemplate->display('footer.tpl');

Documentation generated on Tue, 29 Jul 2014 04:17:11 +0200 by phpDocumentor 1.4.3