]> git.immae.eu Git - github/wallabag/wallabag.git/commitdiff
Implemented rudimental search engine
authortcit <tcit@tcit.fr>
Sat, 22 Mar 2014 10:09:18 +0000 (11:09 +0100)
committertcit <tcit@tcit.fr>
Sat, 22 Mar 2014 10:09:18 +0000 (11:09 +0100)
inc/poche/Database.class.php
inc/poche/Poche.class.php
inc/poche/global.inc.php
themes/default/_menu.twig
themes/default/home.twig

index 5b51b507abb62348fb2f8cfc92e5d528e22a233a..6aad16c11e16d3e0ac6f71d1a110cf42ecdfee45 100755 (executable)
@@ -388,6 +388,14 @@ class Database {
     public function getLastId($column = '') {
         return $this->getHandle()->lastInsertId($column);
     }
+       
+       public function search($term){
+               $search = '%'.$term.'%';
+               $query = $this->getHandle()->prepare("SELECT * FROM entries WHERE content LIKE ?");
+               $query->execute(array($search));
+               $entries = $query->fetchAll();
+               return $entries;
+       }
 
     public function retrieveAllTags($user_id, $term = null) {
         $sql = "SELECT DISTINCT tags.*, count(entries.id) AS entriescount FROM tags
index b1143d0b584a4c1a968fd0352676dafa877e42ca..74a185bd6c2099537968752efc8d5b32003b45c5 100755 (executable)
@@ -603,6 +603,14 @@ class Poche
                     'tags' => $tags,
                 );
                 break;
+                               
+                       case 'search':
+                               if (isset($_POST['search'])){
+                                       $search = $_POST['search'];
+                                       $tpl_vars['entries'] = $this->store->search($search);
+                                       $tpl_vars['nb_results'] = count($tpl_vars['entries']);
+                               }
+                               break;
             case 'view':
                 $entry = $this->store->retrieveOneById($id, $this->user->getId());
                 if ($entry != NULL) {
@@ -772,8 +780,7 @@ class Poche
         $this->emptyCache();
         
         Tools::redirect('?view=config');
-    }
-
+    }  
     /**
      * get credentials from differents sources
      * it redirects the user to the $referer link
index d22b05887e8ea85f86017a763d4ecaeef2a7d940..15091387390e05cc5f3c0a9ad03de26c7976c626 100644 (file)
@@ -38,7 +38,7 @@ if (! file_exists(ROOT . '/vendor/autoload.php')) {
     require_once ROOT . '/vendor/autoload.php';
 }
 
-# system configuration; database credentials et cetera
+# system configuration; database credentials et caetera
 if (! file_exists(INCLUDES . '/poche/config.inc.php')) {
     Poche::$configFileAvailable = false;
 } else {
index 55583b3d1947769864bcdd9ad504a7ba45ea0bc1..e2644b0fa9eb40e3156eedb0dccf831150e7f05d 100644 (file)
@@ -4,6 +4,7 @@
                 <li><a href="./?view=archive" {% if view == 'archive' %}class="current"{% endif %}>{% trans "archive" %}</a></li>
                 <li><a href="./?view=tags" {% if view == 'tags' %}class="current"{% endif %}>{% trans "tags" %}</a></li>
                 <li><a href="javascript: void(null);" id="pocheit">{% trans "save a link" %}</a><span id="pocheit-arrow"></span></li>
+                               <li><a href="javascript: void(null);" id="search">{% trans "search" %}</a><span id="search-arrow"></span></li>
                 <li><a href="./?view=config" {% if view == 'config' %}class="current"{% endif %}>{% trans "config" %}</a></li>
                 <li><a href="./?logout" title="{% trans "logout" %}">{% trans "logout" %}</a></li>
             </ul>
index bd5fc2d6ed1a8749f2a467dc60136f77ac3c359b..e3e8c6afd1e420eb6d7614fe3c2e460236cff57e 100755 (executable)
 {% include '_menu.twig' %}
 {% endblock %}
 {% block precontent %}
-            {% include '_sorting.twig' %}
+<div id="search-form" class="messages info">                   
+<form method="post" action="index.php?view=search">
+    <p>
+        <label>{% trans "Search" %}</label> : <input type="text" placeholder="{% trans "Enter your search here" %}" name="search" />
+               <input type="submit" value="{% trans "Search" %} !"></input>
+    </p>
+</form>
+</div>
+<script type="text/javascript">
+    $(document).ready(function() {
+
+        $("#search-form").hide();
+
+        $("#search").click(function(){
+            $("#search-form").toggle();
+            $("#search").toggleClass("current");
+            $("#search-arrow").toggleClass("arrow-down");
+        });
+
+
+    });
+</script>
+{% include '_sorting.twig' %}
 {% endblock %}
 {% block content %}
             {% if tag %}