Author Topic: [MOD] Search by category name  (Read 42636 times)

0 Members and 1 Guest are viewing this topic.

Rembrandt

  • Guest
[MOD] Search by category name
« on: December 09, 2010, 07:41:35 PM »
Hi!

This Modification enable it search by category name.
The idea comes from here:  http://www.4homepages.de/forum/index.php?topic=13675.0

and this is my version...

Modified files:
root/search.php
your Template/ search_form.html
your lang/main.php

Demo

1.) search in search.php:

if ($search_keywords != "" && $show_result == 1) {

insert above:

//########################## Start Mod Search by Cat name ###############################
if(isset($HTTP_POST_VARS['search_catname']) || isset($HTTP_GET_VARS['search_catname'])){
  
$search_catname = isset($HTTP_POST_VARS['search_catname']) ? trim($HTTP_POST_VARS['search_catname']) : trim($HTTP_GET_VARS['search_catname']);
  
$search_catname un_htmlspecialchars(stripslashes(trim($search_catname)));
  if (isset(
$search_catname)) {
    
$search_catname str_replace('*''%'trim($search_catname));
    
$sql "SELECT cat_id,cat_name
            FROM "
.CATEGORIES_TABLE."
            WHERE cat_name LIKE '
$search_catname'";
    
$result $site_db->query($sql);
    
$search_id['cat_ids'] = "";
    
$countids"";
    if (
$result) {
      while (
$row $site_db->fetch_array($result)) {
        
$search_id['cat_ids'] .= (($search_id['cat_ids'] != "") ? ", " "").$row['cat_id'];
        
$countids++;
      }
      
$site_db->free_result($result);
    }
    
$site_template->register_vars(array(
    
"countids" => $countids)); 
    
$show_result =1;
  }
}else{
  
$search_catname ="";
}
//########################## End Mod Search by Cat name ##################################

1.1) search:

if (!empty($search_id['image_ids'])) {

insert above:

//########################## Start Mod Search by Cat name ##################################
if (!empty($search_id['cat_ids'])) {
    
$sql_where_query .= "AND i.cat_id IN (".$search_id['cat_ids'].") ";
    
$sql_where_query_cat " cat_id IN (".$search_id['cat_ids'].") ";
  }
//########################## End Mod Search by Cat name ##################################

1.2) search:

if (!$num_rows_all && $show_result == 1)  {
  
$msg =  preg_replace("/".$site_template->start."search_keywords".$site_template->end."/"$search_keywords$lang['search_no_results']);
}

replace:

//########################## Start Mod Search by Cat name ################################
/* if (!$num_rows_all && $show_result == 1)  {
  $msg =  preg_replace("/".$site_template->start."search_keywords".$site_template->end."/", $search_keywords, $lang['search_no_results']);
} */
if ((!$num_rows_all && $show_result == 1) && (empty($search_id['cat_ids']))){
  
$msg =  preg_replace("/".$site_template->start."search_keywords".$site_template->end."/"$search_keywords$lang['search_no_results']);
}
if ((!
$num_rows_all && $show_result == 1) && (empty($search_id['cat_ids'])&&(!empty($search_catname)))){
  
$msg =  preg_replace("/".$site_template->start."search_keywords".$site_template->end."/"$search_keywords$lang['search_no_results']);
}
if((
$show_result == 1) && (!empty($search_id['cat_ids']))){
 
$msg2 $lang['search_found_cats'];
}else{
$msg2 ="";
}
//########################## End Mod Search by Cat name ##################################

1.3) search:

if ($num_rows_all && $show_result == 1)  {

replace:

if (($num_rows_all && $show_result == 1) || (!empty($search_id['cat_ids']))) {

1.4) search:

"paging_stats" => $getpaging->get_paging_stats()

replace:

"paging_stats" => $getpaging->get_paging_stats().$msg2

1.5) search:

$thumbnails 
"<table width=\"".$config['image_table_width']."\" border=\"0\" cellpadding=\"".$config['image_table_cellpadding']."\" cellspacing=\"".$config['image_table_cellspacing']."\">\n";

insert below:

//########################## Start Mod Search by Cat name ###############################
 
if($num_rows_all){
  
$thumbnails .= "<tr>\n";
  
$thumbnails .= "<td class=\"head1\">".$lang['images']."</td>\n";
  
$thumbnails .= "</tr>\n";
  }
//########################## End Mod Search by Cat name ##################################

1.6) search:

unset($thumbnails);

insert below:

//########################## Start Mod Search by Cat name ###############################
if((!empty($search_id['cat_ids'])) && (!empty($search_catname))){
  
$search_categories "";
  
$sql "SELECT  cat_id,cat_name
          FROM  "
.CATEGORIES_TABLE."
          WHERE 
$sql_where_query_cat
          ORDER BY cat_name "
.$config['cat_sort']."
         "
;
  
$result $site_db->query($sql);

  
$cattable_width ceil((intval($config['cat_table_width'])) / $config['cat_cells']);
  if ((
substr($config['cat_table_width'],-1)) == "%") {
    
$cattable_width .= "%";
  }
  
$categories "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"1\">\n";
  
$categories .= "<tr>\n";
  
$categories .= "<td class=\"head1\">\n";
  
$categories .= "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"3\">\n";
  
$categories .= "<tr>\n";
  
$categories .= "<td class=\"head1\" valign=\"top\">".$lang['categories']."</td>\n";
  
$categories .= "</tr>\n";
  
$categories .= "<tr>\n";
  
$categories .= "<td class=\"row2\" valign=\"top\">\n";
  
$categories .= "\n<table width=\"".$config['cat_table_width']."\" border=\"0\" cellpadding=\"".$config['cat_table_cellpadding']."\" cellspacing=\"".$config['cat_table_cellspacing']."\">\n";

  
$count 0;
  while (
$row $site_db->fetch_array($result)) {

    if (
$count == 0) {
      
$categories  .= "<tr>\n";
    }
    
$categories .= "<td valign=\"top\" width=\"".$cattable_width."\" class=\"catbgcolor\">\n";

    if (
defined("SHOW_RANDOM_IMAGE") && SHOW_RANDOM_IMAGE == || defined("SHOW_RANDOM_CAT_IMAGE") && SHOW_RANDOM_CAT_IMAGE == 0) {
      
$random_cat_image_file "";
    }
    else {
      
$random_cat_image_file get_random_image($category_id01);
    }
    
    
$site_template->register_vars(array(
      
"random_cat_image_file" => $random_cat_image_file,
      
"cat_id" => $row['cat_id'],
      
"cat_name" => format_text($row['cat_name'], 2),
      
"cat_url" => $site_sess->url(ROOT_PATH."categories.php?".URL_CAT_ID."=".$row['cat_id']),
      
"cat_is_new" => "",
      
"num_images" => $cat_cache[$row['cat_id']]['num_images']
     ));

    
$categories .= $site_template->parse_template("category_bit");
    
$categories .= "</td>\n";

    
$count++;
    if (
$count == $config['cat_cells']) {
      
$categories .= "</tr>\n";
      
$count 0;
    }
  }

  if (
$count 0)  {
    
$leftover = ($config['cat_cells'] - $count);
    if (
$leftover >= 1) {
      for (
$i 0$i $leftover$i++) {
        
$categories .= "<td width=\"".$cattable_width."\">\n&nbsp;\n</td>\n";
      }
      
$categories .= "</tr>\n";
    }
  }
  
$categories .= "</table>\n";
  
$categories .= "</td>\n</tr>\n</table>\n</td>\n</tr>\n</table>";

  
$content $categories.$content;
   unset(
$categories);
}
//########################## End Mod Search by Cat name ############################

1.7) search:

"search_keywords" => format_text(stripslashes($org_search_keywords), 2),

insert above:

//########################## Start Mod Search by Cat name #############################
    
"lang_search_found_cats "=> $lang['search_found_cats'],
    
"lang_search_by_catname" => $lang['search_by_catname'],
//########################## End Mod Search by Cat name ###############################



2.) search in your lang/main.php:

//-----------------------------------------------------
//--- New Images --------------------------------------
//-----------------------------------------------------

insert above:
(Deutsch)

//########################## Start Mod Search by Cat name #############################
$lang['search_by_catname']="Suche nach Kategorienamen:<br /><span class=\"smalltext\">Benutzen Sie * als Platzhalter.</span>";
$lang['search_found_cats']=" &nbsp; in <span class=\"new\">{countids}</span> Kategorie(n).";
$lang['images'] = "Bilder";
//########################## End Mod Search by Cat name ###############################

(english)

//########################## Start Mod Search by Cat name #############################
$lang['search_by_catname']="Search by category name:<br /><span class=\"smalltext\">Use asterisks (*) as a wildcard for partial matches.</span>";
$lang['search_found_cats']=" &nbsp; in <span class=\"new\">{countids}</span> Categories.";
$lang['images'] = "Images";
//########################## End Mod Search by Cat name ###############################


3.) search in your Template/search_form.html:

            
<td colspan="2" valign="top" class="head1">{lang_search}</td>
          </
tr>

insert below:

          
<tr>
            <
td valign="top" class="row2"><b>{lang_search_by_catname}</b></td>
            <
td class="row2" valign="top">
              <
input type="text" name="search_catname" size="40" value="{search_catname}" class="input" />
            </
td>
          </
tr>



i hope thats all...

mfg Andi
« Last Edit: February 17, 2011, 08:49:37 AM by Rembrandt »

Offline mawenzi

  • Moderator
  • 4images Guru
  • *****
  • Posts: 4.500
    • View Profile
Re: [Mod ] Search by category name
« Reply #1 on: December 09, 2010, 08:02:41 PM »
@ Andi ...
... auf deiner Seite scheint die Kategorie-Suche perfekt zu laufen ... Klasse ... und danke für's posten ...
Your first three "must do" before you ask a question ! ( © by V@no )
- please read the Forum Rules ...
- please study the FAQ ...
- please try to Search for your answer ...

You are on search for top 4images MOD's ?
- then please search here ... Mawenzi's Top 100+ MOD List (unsorted sorted) ...

Rembrandt

  • Guest
Re: [Mod ] Search by category name
« Reply #2 on: December 09, 2010, 08:16:21 PM »
...... auf deiner Seite scheint die Kategorie-Suche perfekt zu laufen ... Klasse ... und danke für's posten ...
Danke! wenns irgendwo nicht klappt kommen eh die beschwerden.  :mrgreen:

Offline henary

  • Jr. Member
  • **
  • Posts: 73
    • View Profile
Re: [MOD] Search by category name
« Reply #3 on: December 10, 2010, 08:40:12 AM »
Hallo Andi,

funzt bei mir nicht (keine Beschwerde  :wink: )

Ggf. liegt es daran, daß ich auch die Suche deutlcih erweitert habe (Datumszeitraum, Sucherweiterung EXIF, IPTC sowie Suchergebnisse nach Kategorie (category results) ). Wobei das Austauschen des Codes 1:1 möglich war und ich insofern keine Ursache im ersten Anlauf sehen kann. Fummle mich nun durch den Code.

Suche mit * bringt bspw. auch nix.

Bis später,
Henry

EDIT: Habe eben die frische 1.7.9er search.php genommen und um obigen Code ergänzt. Leider auch keine Sucherbnisse  :(
« Last Edit: December 10, 2010, 09:11:49 AM by henary »

Offline x23piracy

  • Sr. Member
  • ****
  • Posts: 420
    • View Profile
    • FHG
Re: [MOD] Search by category name
« Reply #4 on: December 10, 2010, 11:36:33 AM »
Hi,

ging bei mir auch nicht, die categorie suche hat nichts gefunden, bzw.
das formular wurde erneut geladen.

Ich hab extra noch einen zweiten Versuch unternommen um sicher zu gehen
das ich nicht wieder ein "rvalue" hatte (Andi weiß was ich meine ;) ).


Gruß Jens
« Last Edit: December 10, 2010, 11:48:55 AM by x23piracy »

Don't trust in md5 it's unsafe change your 4i galerys password hash algorythm! second pw db field, create new hashes over some time, deny old hash. Help members that cry, send informationen mail to the rest. Camouflage new pw hash in cookie. Done!

--(◔̯◔)--

Rembrandt

  • Guest
Re: [MOD] Search by category name
« Reply #5 on: December 10, 2010, 01:17:52 PM »
hm.. ich habe mir das nochmals angeschaut, ich denke das ich vielleicht etwas vergessen habe zu posten, finden tue ich nichts.
aber ihr könnt euch die originale einmal ansehn (attach)


Edit: ersten Post editiert.
« Last Edit: December 12, 2010, 04:51:39 PM by Rembrandt »

Offline henary

  • Jr. Member
  • **
  • Posts: 73
    • View Profile
Re: [MOD] Search by category name
« Reply #6 on: December 10, 2010, 02:11:27 PM »
Hallo Andi,

klappt leider auch durch *Austausch* mit Deiner Datei nicht  :?
Mit WinMerge sehe ich auch nix auffälliges.

Hast Du ggf. doch noch andererorts etwas geändert? Wobei das IMO nicht zum Tragen kommt, ist ja nur ein bischen SQL-Code...

Hmm, unklar.

Bis später,
Henry

Offline Jan-Lukas

  • Addicted member
  • ******
  • Posts: 1.288
    • View Profile
    • Discover the New World of Kindersurprise
Re: [MOD] Search by category name
« Reply #7 on: December 10, 2010, 05:54:25 PM »
muss leider auch sagen, das nichts gefunden wird, aber werde am WE die Daten noch mal abarbeiten

LG
Danke Harald




Rembrandt

  • Guest
Re: [MOD] Search by category name
« Reply #8 on: December 12, 2010, 06:28:24 AM »
sorry für den schmarn, ich habe mich schon bei den erstellen des mods gewundert warum das überhaupt funktioniert.
step.1 habe ich korrigiert, diese zeile müsst ihr noch einfügen:
suche:$search_catname un_htmlspecialchars(stripslashes(trim($search_catname)));

oberhalb einfügen:
$search_catname = isset($HTTP_POST_VARS['search_catname']) ? trim($HTTP_POST_VARS['search_catname']) : trim($HTTP_GET_VARS['search_catname']);


mfg Andi

Offline henary

  • Jr. Member
  • **
  • Posts: 73
    • View Profile
Re: [MOD] Search by category name
« Reply #9 on: December 12, 2010, 11:30:48 AM »
Hallo Andi,

funzt, Dankeschön!

Und *sehr* cool: Kombination aus Kategorienamen und Schlüsselwörtern klappt auch  :mrgreen:

Viele Grüße,
Henry

Rembrandt

  • Guest
Re: [MOD] Search by category name
« Reply #10 on: December 12, 2010, 11:42:12 AM »
...!

Und *sehr* cool: Kombination aus Kategorienamen und Schlüsselwörtern klappt auch  :mrgreen:
....
das war kein absicht...  :mrgreen:

Offline Jan-Lukas

  • Addicted member
  • ******
  • Posts: 1.288
    • View Profile
    • Discover the New World of Kindersurprise
Re: [MOD] Search by category name
« Reply #11 on: December 12, 2010, 04:39:21 PM »
jetzt klappt es "fast" perfekt  :wink:
Andy, kannst da noch mal schauen?
gebe mal nutella bei Kategorie Suche ein
http://www.ue-ei-portal-sammlerkatalog.de/search.php

die erste Kategorie 0 Bilder (aber noch jede Menge Unterordner) da sollte also statt 0 Bilder die komplette Anzahl Bilder inkl. Unterordner stehen.
Kann man das machen ?

LG Harald
Danke Harald




Rembrandt

  • Guest
Re: [MOD] Search by category name
« Reply #12 on: December 12, 2010, 04:50:34 PM »
...die erste Kategorie 0 Bilder (aber noch jede Menge Unterordner) da sollte also statt 0 Bilder die komplette Anzahl Bilder inkl. Unterordner stehen.
...
hm.. die kategorie "Nutella" enthält ja kein bilder daher ist ja die suche richtig.

Quote
Kann man das machen ?
das müßte ich mir mal durch den kopf gehen lassen, wie das zu lösen wäre (hatte am freitag weihnachtsfeier,  ich bin heute noch krank  8O)

Offline Jan-Lukas

  • Addicted member
  • ******
  • Posts: 1.288
    • View Profile
    • Discover the New World of Kindersurprise
Re: [MOD] Search by category name
« Reply #13 on: December 12, 2010, 05:10:11 PM »
(hatte am freitag weihnachtsfeier,  ich bin heute noch krank  8O)

kann ich verstehen ;)

mit * werden ja alle angezeigt, nur Du kennst ja die suchenden  :?

Danke
Danke Harald




Offline x23piracy

  • Sr. Member
  • ****
  • Posts: 420
    • View Profile
    • FHG
Re: [MOD] Search by category name
« Reply #14 on: December 13, 2010, 08:04:23 AM »
Hi,

ich habe den MOD gerade auch nochmal getestet.
Mir ist aufgefallen das die Thumbnails der gefundenen Kategorien immer
die gleichen sind, ich habe mal nach "*" gesucht und jedes Kategorie
Thumb war gleich.

Suche ich konkreter also z.B. "Jen*" wird eine passende Kategorie gefunden
aber wird mit dem falschen Thumb dargestellt (nicht aus der Kategorie).

Kann es sein das der MOD mit random cat images Probleme hat?

Hier mal ein Screenshot:



Also der Hund hat mit Jenny's Cocktail Abend nichts zu tun ;)


Gruß Jens

Don't trust in md5 it's unsafe change your 4i galerys password hash algorythm! second pw db field, create new hashes over some time, deny old hash. Help members that cry, send informationen mail to the rest. Camouflage new pw hash in cookie. Done!

--(◔̯◔)--