X-Git-Url: https://vcs.fsf.org/?p=squirrelmail.git;a=blobdiff_plain;f=src%2Faddrbook_search_html.php;h=7f4d7e5c23b49d4076e11bc96283c0f58ec1999d;hp=9862ced6c3e38c0ec2e83c83b7d77a96528269c1;hb=353d074afac6827c90f4bb03e846c5e453d3b5b1;hpb=47ccfad452e8d345542d09e59112cac317cffed8 diff --git a/src/addrbook_search_html.php b/src/addrbook_search_html.php index 9862ced6..7f4d7e5c 100644 --- a/src/addrbook_search_html.php +++ b/src/addrbook_search_html.php @@ -6,7 +6,7 @@ * * This file is included from compose.php * - * @copyright © 1999-2006 The SquirrelMail Project Team + * @copyright 1999-2018 The SquirrelMail Project Team * @license http://opensource.org/licenses/gpl-license.php GNU Public License * @version $Id$ * @package squirrelmail @@ -14,26 +14,26 @@ */ /** - * Path for SquirrelMail required files. - * @ignore + * Include the SquirrelMail initialization file. + * Because this file can also be included within compose we check for the $bInit + * var which is set inside ini.php. It's needed because compose already includes + * init.php. */ -if (! defined('SM_PATH') ) { - define('SM_PATH','../'); +if (!isset($bInit)) { + /** This is the addrbook_search_html page */ + define('PAGE_NAME', 'addrbook_search_html'); + + include('../include/init.php'); } /** SquirrelMail required files. */ -require_once(SM_PATH . 'include/validate.php'); -include_once(SM_PATH . 'functions/global.php'); include_once(SM_PATH . 'functions/date.php'); -include_once(SM_PATH . 'functions/display_messages.php'); include_once(SM_PATH . 'functions/addressbook.php'); -include_once(SM_PATH . 'functions/plugin.php'); -include_once(SM_PATH . 'functions/strings.php'); -include_once(SM_PATH . 'functions/html.php'); +include_once(SM_PATH . 'templates/util_addressbook.php'); sqgetGlobalVar('session', $session, SQ_POST); sqgetGlobalVar('mailbox', $mailbox, SQ_POST); -if (! sqgetGlobalVar('addrquery', $addrquery, SQ_POST)) +if (! sqgetGlobalVar('query', $addrquery, SQ_POST)) $addrquery=''; sqgetGlobalVar('listall', $listall, SQ_POST); sqgetGlobalVar('backend', $backend, SQ_POST); @@ -42,20 +42,29 @@ sqgetGlobalVar('backend', $backend, SQ_POST); * Insert hidden data */ function addr_insert_hidden() { - global $body, $subject, $send_to, $send_to_cc, $send_to_bcc, $mailbox, - $identity, $session; - - if (substr($body, 0, 1) == "\r") { - echo addHidden('body', "\n".$body); - } else { + global $body, $subject, $send_to, $send_to_cc, $send_to_bcc, $mailbox, $mailprio, + $request_mdn, $request_dr, $identity, $session, $composeMessage, $action; + +//FIXME Do not echo HTML from the core. This file already uses templates mostly, so why are we echoing here at all?!? + // someone tell me why this is needed and if so, why it isn't something like replace \r\n with \n + // if (substr($body, 0, 1) == "\r") { + // echo addHidden('body', "\n".$body); + // } else { echo addHidden('body', $body); - } + // } + + if (is_object($composeMessage) && $composeMessage->entities) + echo addHidden('attachments', urlencode(serialize($composeMessage->entities))); echo addHidden('session', $session). + addHidden('smaction', $action). addHidden('subject', $subject). addHidden('send_to', $send_to). addHidden('send_to_bcc', $send_to_bcc). addHidden('send_to_cc', $send_to_cc). + addHidden('mailprio', $mailprio). + addHidden('request_mdn', $request_mdn). + addHidden('request_dr', $request_dr). addHidden('identity', $identity). addHidden('mailbox', $mailbox). addHidden('from_htmladdr_search', 'true'); @@ -68,105 +77,21 @@ function addr_insert_hidden() { * @param bool $includesource If true, adds backend column to address listing */ function addr_display_result($res, $includesource = true) { - global $color, $javascript_on, $PHP_SELF, $squirrelmail_language; - - if (sizeof($res) <= 0) return; + global $PHP_SELF, $oTemplate, $oErrorHandler; + - echo addForm($PHP_SELF, 'post', 'addrbook'). +//FIXME: no HTML output from core + echo addForm($PHP_SELF, 'post', 'addressbook', '', '', array(), TRUE). addHidden('html_addr_search_done', 'true'); addr_insert_hidden(); - $line = 0; - - if ($javascript_on) { - print - '\n"; - $chk_all = ''._("All").' '._("To").''. - '  '. - '' . _("All") . ' '._("Cc").''. - '  '. - '' . _("All") . ''; - } else { - // check_all links are used only in JavaScript. disable links in js=off environment. - $chk_all = ''; - } - echo html_tag( 'table', '', 'center', '', 'border="0" width="98%"' ) . - html_tag( 'tr', '', '', $color[9] ) . - html_tag( 'th', ' ' . $chk_all, 'left' ) . - html_tag( 'th', ' ' . _("Name"), 'left' ) . - html_tag( 'th', ' ' . _("E-mail"), 'left' ) . - html_tag( 'th', ' ' . _("Info"), 'left' ); - - if ($includesource) { - echo html_tag( 'th', ' ' . _("Source"), 'left', '', 'width="10%"' ); - } - - echo "\n"; - - foreach ($res as $row) { - $email = AddressBook::full_address($row); - if ($line % 2) { - $tr_bgcolor = $color[12]; - } else { - $tr_bgcolor = $color[4]; - } - if ($squirrelmail_language == 'ja_JP') - { - echo html_tag( 'tr', '', '', $tr_bgcolor, 'style="white-space: nowrap;"' ) . - html_tag( 'td', - ' ' . _("To") . ' ' . - ' ' . _("Cc") . ' ' . - ' ' . _("Bcc") . ' ' , - 'center', '', 'width="5%" style="white-space: nowrap;"' ) . - html_tag( 'td', ' ' . htmlspecialchars($row['lastname']) . ' ' . htmlspecialchars($row['firstname']) . ' ', 'left', '', 'style="white-space: nowrap;"' ) . - html_tag( 'td', ' ' . htmlspecialchars($row['email']) . ' ', 'left', '', 'style="white-space: nowrap;"' ) . - html_tag( 'td', ' ' . htmlspecialchars($row['label']) . ' ', 'left', '', 'style="white-space: nowrap;"' ); - } else { - echo html_tag( 'tr', '', '', $tr_bgcolor, 'style="white-space: nowrap;"' ) . - html_tag( 'td', - addCheckBox('send_to_search[T'.$line.']', FALSE, $email). - ' ' . _("To") . ' ' . - addCheckBox('send_to_search[C'.$line.']', FALSE, $email). - ' ' . _("Cc") . ' ' . - addCheckBox('send_to_search[B'.$line.']', FALSE, $email). - ' ' . _("Bcc") . ' ' , - 'center', '', 'width="5%" style="white-space: nowrap;"' ) . - html_tag( 'td', ' ' . htmlspecialchars($row['name']) . ' ', 'left', '', 'style="white-space: nowrap;"' ) . - html_tag( 'td', ' ' . htmlspecialchars($row['email']) . ' ', 'left', '', 'style="white-space: nowrap;"' ) . - html_tag( 'td', ' ' . htmlspecialchars($row['label']) . ' ', 'left', '', 'style="white-space: nowrap;"' ); - } - - if ($includesource) { - echo html_tag( 'td', ' ' . $row['source'] . ' ', 'left', '', 'style="white-space: nowrap;"' ); - } - echo "\n"; - $line ++; - } - if ($includesource) { $td_colspan = '5'; } else { $td_colspan = '4'; } - echo html_tag( 'tr', - html_tag( 'td', - ' ' . - '', - 'center', '', 'colspan="'. $td_colspan .'"' ) - ) . - '' . - addHidden('html_addr_search_done', '1'). - ''; + + $oTemplate->assign('compose_addr_pop', false); + $oTemplate->assign('include_abook_name', $includesource); + $oTemplate->assign('addresses', formatAddressList($res)); + + $oTemplate->display('addrbook_search_list.tpl'); + + echo ''; } /* --- End functions --- */ @@ -179,57 +104,26 @@ else { } /** set correct value of $default_charset */ -global $default_charset; set_my_charset(); /* Initialize addressbook */ $abook = addressbook_init(); -echo '
' . -html_tag( 'table', - html_tag( 'tr', - html_tag( 'td', '' . _("Address Book Search") . '', 'center', $color[0] ) - ) , -'center', '', 'width="95%" cellpadding="2" cellspacing="2" border="0"' ); - - /* Search form */ -echo '
' . - html_tag( 'table', '', 'center', '', 'border="0"' ) . - html_tag( 'tr' ) . - html_tag( 'td', '', 'left', '', 'style="white-space: nowrap;" valign="middle"' ) . "\n" . - addForm($PHP_SELF.'?html_addr_search=true', 'post', 'f'). - "\n
\n" . - ' ' . _("Search for") . "\n"; +echo addForm($PHP_SELF.'?html_addr_search=true', 'post', 'f'); addr_insert_hidden(); -echo addInput('addrquery', $addrquery, 26); - -/* List all backends to allow the user to choose where to search */ -if (!isset($backend)) { $backend = ''; } -if ($abook->numbackends > 1) { - echo '' . _("in") . ' '; - - $selopts['-1'] = _("All address books"); - $ret = $abook->get_backend_list(); - - while (list($undef,$v) = each($ret)) { - $selopts[$v->bnum] = $v->sname; - } - echo addSelect('backend', $selopts, $backend, TRUE); -} else { - echo addHidden('backend', '-1'); -} if (isset($session)) { echo addHidden('session', $session); } -echo '' . - ' | ' . "\n" . - '
' . "\n"; -echo '
'; -do_hook('addrbook_html_search_below'); +$oTemplate->assign('compose_addr_pop', false); +$oTemplate->assign('backends', getBackends()); + +$oTemplate->display('addressbook_search_form.tpl'); + +echo "\n"; +do_hook('addrbook_html_search_below', $null); /* End search form */ /* List addresses. Show personal addressbook */ @@ -240,18 +134,13 @@ if ($addrquery == '' || ! empty($listall)) { $backend = $abook->localbackend; } - /* echo '

' . $abook->backends[$backend]->sname) . "

\n"; */ - $res = $abook->list_addr($backend); if (is_array($res)) { usort($res,'alistcmp'); addr_display_result($res, false); } else { - echo html_tag( 'p', '
' . - sprintf(_("Unable to list addresses from %s"), - $abook->backends[$backend]->sname) . "
\n" , - 'center' ); + plain_error_message(_("Unable to list addresses from %s"), $abook->backends[$backend]->sname); } } else { @@ -259,7 +148,7 @@ if ($addrquery == '' || ! empty($listall)) { usort($res,'alistcmp'); addr_display_result($res, true); } - echo "\n"; + $oTemplate->display('footer.tpl'); exit; } elseif (!empty($addrquery)) { /* Do the search */ @@ -270,36 +159,28 @@ if ($addrquery == '' || ! empty($listall)) { } if (!is_array($res)) { - echo html_tag( 'p', '
' . - _("Your search failed with the following error(s)") . - ':
' . $abook->error . "
\n" , - 'center' ) . - "\n\n"; + plain_error_message(_("Your search failed with the following error(s)") .':
'. nl2br(sm_encode_html_special_chars($abook->error))); + } elseif (sizeof($res) == 0) { + $oTemplate->assign('note', _("No persons matching your search were found")); + $oTemplate->display('note.tpl'); } else { - if (sizeof($res) == 0) { - echo html_tag( 'p', '
' . - _("No persons matching your search were found") . "\n" , - 'center' ) . - "\n\n"; - } else { - addr_display_result($res); - } + addr_display_result($res); } } else { // not first time display, not listall and search is empty // TODO: I think, this part of control structure is never reached. - echo html_tag( 'p', '
' . - _("Nothing to search") . "\n" , - 'center' ); + plain_error_message(_("Nothing to search")); } if ($addrquery == '' || sizeof($res) == 0) { - echo '
'. - addForm('compose.php','post','k'); +//FIXME don't echo HTML from core -- especially convoluted given that there is template code immediately above AND below this block + echo '
'. + addForm('compose.php','post','k', '', '', array(), TRUE); addr_insert_hidden(); echo '' . "\n" . - '
'; + ''; } -?> - \ No newline at end of file +echo '
'; + +$oTemplate->display('footer.tpl');