From c99a10307d4be1f21e51ad56c80c1455b192ef8b Mon Sep 17 00:00:00 2001 From: Jan Schneider Date: Thu, 10 Jun 2010 00:48:17 +0200 Subject: [PATCH] Convert search templates to Horde_View. --- turba/search.php | 66 +++++++++++++++++++++++++++----- turba/templates/search/advanced.html.php | 30 +++++++-------- turba/templates/search/basic.html.php | 25 ++++++++++++ turba/templates/search/basic.inc | 20 ---------- turba/templates/search/header.html.php | 6 +++ turba/templates/search/header.inc | 50 ------------------------ turba/templates/search/vbook.html.php | 17 ++++++++ turba/templates/search/vbook.inc | 17 -------- 8 files changed, 119 insertions(+), 112 deletions(-) create mode 100644 turba/templates/search/basic.html.php delete mode 100644 turba/templates/search/basic.inc create mode 100644 turba/templates/search/header.html.php delete mode 100644 turba/templates/search/header.inc create mode 100644 turba/templates/search/vbook.html.php delete mode 100644 turba/templates/search/vbook.inc diff --git a/turba/search.php b/turba/search.php index ba6f41492..1c2bd417d 100644 --- a/turba/search.php +++ b/turba/search.php @@ -109,11 +109,11 @@ if (is_a($driver, 'PEAR_Error')) { $map = $driver->getCriteria(); if ($_SESSION['turba']['search_mode'] == 'advanced') { $criteria = array(); - foreach ($map as $key => $value) { + foreach (array_keys($map) as $key) { if ($key != '__key') { - $val = Horde_Util::getFormData($key); - if (strlen($val)) { - $criteria[$key] = $val; + $value = Horde_Util::getFormData($key); + if (strlen($value)) { + $criteria[$key] = $value; } } } @@ -177,12 +177,59 @@ if (is_a($driver, 'PEAR_Error')) { } } -if ($_SESSION['turba']['search_mode'] == 'basic') { +/* Build all available search criteria. */ +$addressBooks = Turba::getAddressBooks(); +$allCriteria = $shareSources = array(); +foreach ($addressBooks as $key => $entry) { + $allCriteria[$key] = array(); + foreach ($entry['search'] as $field) { + $allCriteria[$key][$field] = $GLOBALS['attributes'][$field]['label']; + } + + /* Remember vbooks and sources that are using shares. */ + $shareSources[$key] = $entry['type'] != 'vbook'; +} + +/* Build search mode tabs. */ +$sUrl = Horde::applicationUrl('search.php'); +$vars = Horde_Variables::getDefaultVariables(); +$tabs = new Horde_Ui_Tabs('search_mode', $vars); +$tabs->addTab(_("Basic Search"), $sUrl, 'basic'); +$tabs->addTab(_("Advanced Search"), $sUrl, 'advanced'); + +/* The form header. */ +$headerView = new Horde_View(array('templatePath' => TURBA_TEMPLATES . '/search')); +if (count($addressBooks) == 1) { + $headerView->uniqueSource = key($addressBooks); +} + +/* The search forms. */ +$searchView = new Horde_View(array('templatePath' => TURBA_TEMPLATES . '/search')); +new Horde_View_Helper_Text($searchView); +$searchView->addressBooks = $addressBooks; +$searchView->shareSources = $shareSources; +$searchView->attributes = $GLOBALS['attributes']; +$searchView->allCriteria = $allCriteria; +$searchView->map = $map; +$searchView->source = $source; +$searchView->criteria = $criteria; +$searchView->value = $val; + +/* The form footer and vbook section. */ +$vbookView = new Horde_View(array('templatePath' => TURBA_TEMPLATES . '/search')); +$vbookView->hasShare = !empty($_SESSION['turba']['has_share']); +$vbookView->shareSources = $shareSources; +$vbookView->source = $source; + +switch ($_SESSION['turba']['search_mode']) { +case 'basic': $title = _("Basic Search"); $notification->push('document.directory_search.val.focus();', 'javascript'); -} else { + break; +case 'advanced': $title = _("Advanced Search"); $notification->push('document.directory_search.name.focus();', 'javascript'); + break; } Horde::addScriptFile('quickfinder.js', 'horde'); @@ -191,9 +238,10 @@ Horde::addScriptFile('redbox.js', 'horde'); Horde::addScriptFile('search.js', 'turba'); require TURBA_TEMPLATES . '/common-header.inc'; require TURBA_TEMPLATES . '/menu.inc'; -require TURBA_TEMPLATES . '/search/header.inc'; -require TURBA_TEMPLATES . '/search/' . $_SESSION['turba']['search_mode'] . '.inc'; -require TURBA_TEMPLATES . '/search/vbook.inc'; +echo $tabs->render($_SESSION['turba']['search_mode']); +echo $headerView->render('header'); +echo $searchView->render($_SESSION['turba']['search_mode']); +echo $vbookView->render('vbook'); if (isset($view) && is_object($view)) { require TURBA_TEMPLATES . '/browse/javascript.inc'; require TURBA_TEMPLATES . '/browse/header.inc'; diff --git a/turba/templates/search/advanced.html.php b/turba/templates/search/advanced.html.php index b173e3344..c3538f1e3 100644 --- a/turba/templates/search/advanced.html.php +++ b/turba/templates/search/advanced.html.php @@ -2,30 +2,28 @@   - " /> - " /> + " /> + " /> - 1): ?> + addressBooks) > 1): ?> - + - - $v) { - if (substr($name, 0, 2) != '__') { -?> + +map as $name => $v): ?> + - - + + - + + diff --git a/turba/templates/search/basic.html.php b/turba/templates/search/basic.html.php new file mode 100644 index 000000000..f4e87f47f --- /dev/null +++ b/turba/templates/search/basic.html.php @@ -0,0 +1,25 @@ + + +addressBooks) > 1): ?> + + + + + + + + + +" /> diff --git a/turba/templates/search/basic.inc b/turba/templates/search/basic.inc deleted file mode 100644 index f39e68ccc..000000000 --- a/turba/templates/search/basic.inc +++ /dev/null @@ -1,20 +0,0 @@ - - - 1): ?> - - - - - - - - - - " /> diff --git a/turba/templates/search/header.html.php b/turba/templates/search/header.html.php new file mode 100644 index 000000000..709118af8 --- /dev/null +++ b/turba/templates/search/header.html.php @@ -0,0 +1,6 @@ +
+
+ +uniqueSource): ?> + + diff --git a/turba/templates/search/header.inc b/turba/templates/search/header.inc deleted file mode 100644 index 7862d84f2..000000000 --- a/turba/templates/search/header.inc +++ /dev/null @@ -1,50 +0,0 @@ - $entry) { - $criteria[$key] = array(); - - /* Build the criteria select widget. */ - $field_count = 1; - foreach ($entry['search'] as $field) { - if ($key == $source) { - $selected = ($criteria == $field) ? ' selected="selected"' : ''; - $criteria_options .= "\n"; - } - $field_count++; - $criteria[$key][$field] = $GLOBALS['attributes'][$field]['label']; - } - - $selected = ($key == $source) ? ' selected="selected"' : ''; - $source_options .= "\n"; - - $unique_source = $key; - $source_count++; - - /* Remember vbooks and sources that are using shares. */ - $shareSources[$key] = $entry['type'] != 'vbook'; -} - -/* Build search mode tabs. */ -$sUrl = Horde::applicationUrl('search.php'); -$vars = Horde_Variables::getDefaultVariables(); -$tabs = new Horde_Ui_Tabs('search_mode', $vars); -$tabs->addTab(_("Basic Search"), $sUrl, 'basic'); -$tabs->addTab(_("Advanced Search"), $sUrl, 'advanced'); -echo $tabs->render($_SESSION['turba']['search_mode']); - -?> -
- - - - - diff --git a/turba/templates/search/vbook.html.php b/turba/templates/search/vbook.html.php new file mode 100644 index 000000000..44b2fc830 --- /dev/null +++ b/turba/templates/search/vbook.html.php @@ -0,0 +1,17 @@ +hasShare): ?> +
shareSources[$this->source] ? '' : ' style="display:none"' ?>> + + + + + + +
+ + +
+
diff --git a/turba/templates/search/vbook.inc b/turba/templates/search/vbook.inc deleted file mode 100644 index 087fdcbed..000000000 --- a/turba/templates/search/vbook.inc +++ /dev/null @@ -1,17 +0,0 @@ - - - - -
-
-- 2.11.0