From a4e28e55611fed6c5f58c53ec1b604f6605af7aa Mon Sep 17 00:00:00 2001 From: Manuel Raynaud Date: Thu, 5 Jun 2014 13:24:53 +0200 Subject: [PATCH] implement search on content loop. --- .../lib/Thelia/Core/Template/Loop/Content.php | 20 ++++++++- templates/backOffice/default/search.html | 45 ++++++++++++++++++- 2 files changed, 63 insertions(+), 2 deletions(-) diff --git a/core/lib/Thelia/Core/Template/Loop/Content.php b/core/lib/Thelia/Core/Template/Loop/Content.php index 5a24377fa..5bae9f739 100644 --- a/core/lib/Thelia/Core/Template/Loop/Content.php +++ b/core/lib/Thelia/Core/Template/Loop/Content.php @@ -18,6 +18,7 @@ use Thelia\Core\Template\Element\LoopResult; use Thelia\Core\Template\Element\LoopResultRow; use Thelia\Core\Template\Element\PropelSearchLoopInterface; +use Thelia\Core\Template\Element\SearchLoopInterface; use Thelia\Core\Template\Loop\Argument\ArgumentCollection; use Thelia\Core\Template\Loop\Argument\Argument; @@ -37,7 +38,7 @@ use Thelia\Type\BooleanOrBothType; * @package Thelia\Core\Template\Loop * @author Etienne Roudeix */ -class Content extends BaseI18nLoop implements PropelSearchLoopInterface +class Content extends BaseI18nLoop implements PropelSearchLoopInterface, SearchLoopInterface { protected $timestampable = true; protected $versionable = true; @@ -82,6 +83,23 @@ class Content extends BaseI18nLoop implements PropelSearchLoopInterface ); } + /** + * @return array of available field to search in + */ + public function getSearchIn() + { + return [ + "title" + ]; + } + + public function doSearch(&$search, $searchTerm, $searchIn, $searchCriteria) + { + $search->_and(); + + $search->where("CASE WHEN NOT ISNULL(`requested_locale_i18n`.ID) THEN `requested_locale_i18n`.`TITLE` ELSE `default_locale_i18n`.`TITLE` END ".$searchCriteria." ?", $searchTerm, \PDO::PARAM_STR); + } + public function buildModelCriteria() { diff --git a/templates/backOffice/default/search.html b/templates/backOffice/default/search.html index 626a0a771..46bab028e 100644 --- a/templates/backOffice/default/search.html +++ b/templates/backOffice/default/search.html @@ -290,7 +290,7 @@
{loop type="auth" name="can_change" role="ADMIN" resource="admin.folder" access="UPDATE"} - + {/loop}
@@ -303,6 +303,49 @@ {* end folder search *} + {* content search *} +
+
+ + + + + + + + + + + + + + {loop type="content" name="content-search" visible="*" search_mode="sentence" search_term=trim($smarty.get.search_term) search_in="title"} + + + + + + + + + + + + {/loop} + +
+ {intl l='Content'} +
{intl l="ID"}{intl l="Content title"}{intl l="Actions"}
{$ID}{$TITLE} +
+ {loop type="auth" name="can_change" role="ADMIN" resource="admin.content" access="UPDATE"} + + {/loop} +
+
+
+
+ {* end content search *} +