search improved but not finished
authorCalin Burloiu <calin.burloiu@gmail.com>
Mon, 5 Sep 2011 12:11:51 +0000 (15:11 +0300)
committerCalin Burloiu <calin.burloiu@gmail.com>
Mon, 5 Sep 2011 12:11:51 +0000 (15:11 +0300)
application/config/autoload.php
application/controllers/catalog.php
application/controllers/video.php
application/libraries/Html_head_params.php
application/models/videos_model.php
application/views/header.php
system/core/Controller.php
system/core/Model.php

index 68acde8..bac0142 100644 (file)
@@ -52,7 +52,7 @@ $autoload['packages'] = array(APPPATH.'third_party');
 |      $autoload['libraries'] = array('database', 'session', 'xmlrpc');
 */
 
-$autoload['libraries'] = array();
+$autoload['libraries'] = array('form_validation');
 
 
 /*
@@ -64,7 +64,7 @@ $autoload['libraries'] = array();
 |      $autoload['helper'] = array('url', 'file');
 */
 
-$autoload['helper'] = array();
+$autoload['helper'] = array('url', 'form');
 
 
 /*
index 0248f9e..816be74 100644 (file)
@@ -145,12 +145,14 @@ class Catalog extends CI_Controller {
        public function search($str_search = "")
        {
                // TODO get query string from URL.
-               $str_search = $this->input->post('search', TRUE);
+               if ($str_search === "") 
+                       redirect('catalog/search/'. $this->input->post('search', TRUE));
 
                // **
                // ** LOADING MODEL
                // **
                // Video Category
+               // TODO
                $vs_data['category_name'] = "";
                $vs_data['category_title'] = "Search Results for &laquo;$str_search&raquo;";
 
index 3637f14..4a15ba5 100644 (file)
@@ -31,8 +31,6 @@ class Video extends CI_Controller {
         */
        public function watch($id, $name = NULL, $plugin = NULL)
        {
-               $this->load->helper('url');
-               
                // **
                // ** LOADING MODEL
                // **
index d729d88..08a792d 100644 (file)
@@ -47,7 +47,6 @@ class Html_head_params {
        public function __construct($params)
        {
                $CI =& get_instance();
-               $CI->load->helper('url');
                
                if (isset($this->site_config))
                        $CI->load->config($this->site_config);
index c887b70..0d9fe7b 100644 (file)
@@ -16,8 +16,6 @@ class Videos_model extends CI_Model {
                        $this->load->library('singleton_db');
                        $this->db = $this->singleton_db->connect();
                }
-               
-               $this->load->helper('url');
        }
        
        /**
@@ -208,23 +206,23 @@ class Videos_model extends CI_Model {
                $count = 100;
 
                $str_search = trim($str_search);
-
-               $this->load->helper('text');
                
                $query = $this->db->query(
                        "SELECT id, name, title, duration, user_id, views, thumbs_count,
                                default_thumb
                        FROM `videos`
-                       WHERE title LIKE '%". $str_search . "%'
+                       WHERE MATCH (title, description, tags) AGAINST (?)
                        ORDER BY name
-                       LIMIT ?, ?", // TODO summary order 
-                       array($offset, $count)); 
+                       LIMIT ?, ?",
+                       array($str_search, $offset, $count)); 
                
                if ($query->num_rows() > 0)
                        $videos = $query->result_array();
                else
                        return NULL;
                
+               $this->load->helper('text');
+               
                foreach ($videos as & $video)
                {
                        // P2P-Tube Video URL
index 7659482..d7b616e 100644 (file)
@@ -1,23 +1,40 @@
-<?php if (! isset($selected_menu)): 
-       $selected_menu = ''; 
+<?php if (! isset($selected_menu)):
+$selected_menu = '';
 endif ?>
 
-<ul id="nav-menu">
+<ul
+       id="nav-menu">
        <li class="menu-left"><a href="<?php echo site_url() ?>"
-               <?php echo ($selected_menu == 'home' ? 'class="selected"' : '') ?>><?php echo $this->lang->line('ui_nav_menu_home') ?></a></li>
-       
-       <li class="menu-left"><a href="<?php echo site_url('install-plugins') ?>"
-               <?php echo ($selected_menu == 'install-plugins' ? 'class="selected"' : '') ?>><?php echo $this->lang->line('ui_nav_menu_install_plugins') ?></a></li>
-       
-       <li class="menu-left"><a href="<?php echo site_url('about') ?>" 
-               <?php echo ($selected_menu == 'about' ? 'class="selected"' : '') ?>><?php echo $this->lang->line('ui_nav_menu_about') ?></a></li>
-       
-       <li class="menu-left"><a href="<?php echo site_url('help') ?>" 
-               <?php echo ($selected_menu == 'help' ? 'class="selected"' : '') ?>><?php echo $this->lang->line('ui_nav_menu_help') ?></a></li>
-               
-       <li class="menu-left"><a href="<?php echo site_url('contact') ?>" 
-               <?php echo ($selected_menu == 'contact' ? 'class="selected"' : '') ?>><?php echo $this->lang->line('ui_nav_menu_contact') ?></a></li>
-       
+
+
+       <?php echo ($selected_menu == 'home' ? 'class="selected"' : '') ?>><?php echo $this->lang->line('ui_nav_menu_home') ?>
+       </a></li>
+
+       <li class="menu-left"><a
+               href="<?php echo site_url('install-plugins') ?>"
+
+
+               <?php echo ($selected_menu == 'install-plugins' ? 'class="selected"' : '') ?>><?php echo $this->lang->line('ui_nav_menu_install_plugins') ?>
+       </a></li>
+
+       <li class="menu-left"><a href="<?php echo site_url('about') ?>"
+
+
+       <?php echo ($selected_menu == 'about' ? 'class="selected"' : '') ?>><?php echo $this->lang->line('ui_nav_menu_about') ?>
+       </a></li>
+
+       <li class="menu-left"><a href="<?php echo site_url('help') ?>"
+
+
+       <?php echo ($selected_menu == 'help' ? 'class="selected"' : '') ?>><?php echo $this->lang->line('ui_nav_menu_help') ?>
+       </a></li>
+
+       <li class="menu-left"><a href="<?php echo site_url('contact') ?>"
+
+
+       <?php echo ($selected_menu == 'contact' ? 'class="selected"' : '') ?>><?php echo $this->lang->line('ui_nav_menu_contact') ?>
+       </a></li>
+
        <!--<li class="menu-right"><a href="#<?php //echo site_url('register') ?>"
                <?php echo ($selected_menu == 'register' ? 'class="selected"' : '') ?>><?php echo $this->lang->line('ui_nav_menu_register') ?></a></li>
                
@@ -27,9 +44,69 @@ endif ?>
 
 <div id="header">
        <!-- TODO: resize logo image-->
-       <a href="<?php echo site_url() ?>" id="logo"><img src="<?php echo site_url('img/p2p-next--big.png') ?>" alt="P2P-Next" width="119" height="48" /></a>
-       <form id="quick-search" action="<?php echo site_url('catalog/search') ?>" method="POST">
-               <label for="quick-search-box"><?php echo $this->lang->line('ui_search') . ': ' ?></label>
+       <a href="<?php echo site_url() ?>" id="logo"><img
+               src="<?php echo site_url('img/p2p-next--big.png') ?>" alt="P2P-Next"
+               width="119" height="48" /> </a>
+       
+       
+       
+       
+       <?php echo form_open('catalog/search', array('id'=>'quick-search')); ?>
                <input type="text" id="search" name="search" value="" />
+               <input type="submit" id="button-quick-search" value="<?php echo $this->lang->line('ui_search') ?>" />
+               <a href="#" id="button-js-quick-search" style="display:none">
+                       <?php echo $this->lang->line('ui_search') ?>
+               </a>
        </form>
 </div>
+
+<script type="text/javascript">
+       $(function() {
+               $('#button-quick-search')
+                       .hide();
+
+               // Fake JS submit via CI URI segments
+               var fakeSubmit = function() {
+                       var searchQuery = $('#search').val();
+                       searchQuery = searchQuery.replace(/\+/g, '%2B');        // +
+                       searchQuery = searchQuery.replace(/\s/g, '+');  // <white spaces>
+                       searchQuery = searchQuery.replace(/>/g, '%3E'); // >
+                       searchQuery = searchQuery.replace(/\</g, '%3C');        // <
+                       searchQuery = searchQuery.replace(/\(/g, '%28');        // (
+                       searchQuery = searchQuery.replace(/\)/g, '%29');        // )
+                       searchQuery = searchQuery.replace(/~/g, '%7E'); // ~ 
+                       searchQuery = searchQuery.replace(/\*/g, '%2A');  // *
+                       searchQuery = searchQuery.replace(/"/g, '%22'); // " 
+                       searchQuery = encodeURI(searchQuery);
+
+                       alert(searchQuery);
+                       
+                       //window.location = "<?php echo site_url('catalog/search') ?>" 
+                       //      + searchQuery;
+               };
+               
+               $('#button-js-quick-search')
+                       .show()
+                       .button({
+                               icons: {
+                       primary: "ui-icon-search"
+                   },
+                   text: false
+                       })
+                       .click(function(event) {
+                               fakeSubmit();
+                       });
+
+               $('#search')
+                       .keypress(function(event) {
+                               if (event.which == 13)
+                               {
+                                       fakeSubmit();
+
+                                       event.preventDefault();
+                                       return false;
+                               }
+                       });
+       });
+
+</script>
index 38afc78..0bd2ade 100644 (file)
@@ -78,11 +78,11 @@ class CI_Controller {
 //      * @var CI_Pagination
 //      */
 //     var $pagination;
-//      My declarations
+//     /* My declarations */
 //     /**
 //      * @var Videos_model
 //      */
-//     var $videos_model;
+       //var $videos_model;
 
        private static $instance;
 
index fc7e546..d28063f 100644 (file)
@@ -75,11 +75,11 @@ class CI_Model {
 //      * @var CI_Pagination
 //      */
 //     var $pagination;
-       // My declarations
+//     /* My declarations */
 //     /**
 //      * @var Videos_model
 //      */
-//     var $videos_model;
+       // var $videos_model;
        
        
        /**