4images Forum & Community

4images Modifications / Modifikationen => Mods & Plugins (Releases & Support) => Topic started by: Rembrandt on December 09, 2010, 07:41:35 PM

Title: [MOD] Search by category name
Post by: Rembrandt 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 (http://demo2.vienna-pictures.com/search.php)

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 == 0 || defined("SHOW_RANDOM_CAT_IMAGE") && SHOW_RANDOM_CAT_IMAGE == 0) {
      $random_cat_image_file = "";
    }
    else {
      $random_cat_image_file = get_random_image($category_id, 0, 1);
    }
   
    $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
Title: Re: [Mod ] Search by category name
Post by: mawenzi 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 ...
Title: Re: [Mod ] Search by category name
Post by: Rembrandt 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:
Title: Re: [MOD] Search by category name
Post by: henary 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  :(
Title: Re: [MOD] Search by category name
Post by: x23piracy 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
Title: Re: [MOD] Search by category name
Post by: Rembrandt 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.
Title: Re: [MOD] Search by category name
Post by: henary 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
Title: Re: [MOD] Search by category name
Post by: Jan-Lukas 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
Title: Re: [MOD] Search by category name
Post by: Rembrandt 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
Title: Re: [MOD] Search by category name
Post by: henary 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
Title: Re: [MOD] Search by category name
Post by: Rembrandt 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:
Title: Re: [MOD] Search by category name
Post by: Jan-Lukas 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
Title: Re: [MOD] Search by category name
Post by: Rembrandt 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)
Title: Re: [MOD] Search by category name
Post by: Jan-Lukas 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
Title: Re: [MOD] Search by category name
Post by: x23piracy 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:

(http://www1.xup.in/tn/2010_12/73818871.jpeg) (http://www.xup.in/dl,73818871/temp.jpg/)

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


Gruß Jens
Title: Re: [MOD] Search by category name
Post by: henary on December 13, 2010, 08:20:51 AM
Hallo Jens,

zu meinem besseren Verständnis: Du verwendest Cat-Images und es wird "lediglich" das falsche - respektive immer das identische - dargestellt? Die Cat und die Bilder zur Cat sind aber Treffer?

Muß ich mal bei mir in der anderen Gallerie testen, dort verwende ich jedoch statische Cat-Images.

Bis später,
Henry
Title: Re: [MOD] Search by category name
Post by: x23piracy on December 13, 2010, 08:40:23 AM
Hi,

zu meinem besseren Verständnis: Du verwendest Cat-Images und es wird "lediglich" das falsche - respektive immer das identische - dargestellt? Die Cat und die Bilder zur Cat sind aber Treffer?
.

exakt die Kategorie selbst ist der richtige Treffer nur das Thumb zu ihr ist falsch (immer das selbe falsche) egal welche
Kategorie gesucht wird. Die Bildtreffer sind in Ordnung.


Gruß Jens
Title: Re: [MOD] Search by category name
Post by: Rembrandt on December 13, 2010, 06:06:16 PM
...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.......
du kannst das gerne auf demo2.vienna-pictures.com und test.vienna-pictures.com testen.
warum es bei dir nicht funktioniert b.z.w. ob und welcher mod daran schuld ist kann ich dir nicht sagen.
Title: Re: [MOD] Search by category name
Post by: x23piracy on December 13, 2010, 06:23:27 PM
Hi,

du kannst das gerne auf demo2.vienna-pictures.com und test.vienna-pictures.com testen.
warum es bei dir nicht funktioniert b.z.w. ob und welcher mod daran schuld ist kann ich dir nicht sagen.

Scherzkeks  (whis) du hast auf beiden Seiten keine random cat images aktiv, wie soll ich da sehen
ob das bei dir funktioniert?

Ich rede davon das wenn random cat images aktiv sind diese zwar angezeigt werden aber es sich
immer um das gleiche, falsche Bild handelt. Das hab ich doch genau so geschrieben.

(http://www1.xup.in/tn/2010_12/17327301.jpeg) (http://www.xup.in/dl,17327301/temp.jpg/) (http://www1.xup.in/tn/2010_12/16711145.jpeg) (http://www.xup.in/dl,16711145/temp2.jpg/)

Hast du das:
http://www.4homepages.de/forum/index.php?topic=28587.msg154136#msg154136

und das:
http://www.4homepages.de/forum/index.php?topic=28587.msg154139#msg154139
gelesen?

Ich glaub erst das es ein anderer MOD schuld sein soll wenn das mal jemand mit random cat images
getestet hat, desweiteren sind die Kategorienamen die er findet ja alle korrekt nur der Thumb
ist falsch (nicht irgendwie falsch sondern es wird immer das gleiche falsche Thumb aus der gleichen
falschen Kategorie angezeigt) wenn natürlich jemand zufällig mal genau die Kategorie sucht deren falsches
Thumb angezeigt wird wäre das in dem Fall natürlich richtig... Verstanden?

Nochmal ganz deutlich egal was man in die Kategoriesuche einträgt die Kategoriesuchergebnisse haben
immer den selben falschen Thumb, unabhängig davon ob die Suche 1 oder mehrere Kategorien findet.


Gruß Jens
Title: Re: [MOD] Search by category name
Post by: Rembrandt on December 13, 2010, 06:32:27 PM
...Ich rede davon das wenn random cat images aktiv sind diese zwar angezeigt werden aber es sich
immer um das gleiche, falsche Bild handelt. Das hab ich doch genau so geschrieben.
....
jaja, ich habe mich verlesen ich dachte du redest von den "MOD random cat images"

EDIT:
step 1.6)
suche:
 "cat_id" => $row['cat_id'],
füge darüber ein:
"random_cat_image_file" => get_random_image($row['cat_id'], 0, 1),

meinen ersten post habe ich dahingehend korrigiert.
Title: Re: [MOD] Search by category name
Post by: x23piracy on December 13, 2010, 07:08:26 PM
Hi,

danke für die schnelle Abhilfe  :thumbup:


Gruß Jens
Title: Re: [MOD] Search by category name
Post by: k1lljoy on January 13, 2011, 08:30:05 AM
Hi!
Installed this MOD, but now I get some errors (notices):

On search results page:
Notice: Undefined index: cat_sort in /var/www/razruha/data/www/razruha.ru/search.php on line 337

On search.htm (search.php) page:
Notice: Undefined index: search_catname in /var/www/razruha/data/www/razruha.ru/search.php on line 72
Notice: Undefined variable: countids in /var/www/razruha/data/www/razruha.ru/search.php on line 93
 :roll:
Title: Re: [MOD] Search by category name
Post by: Rembrandt on January 13, 2011, 09:36:25 AM
sorry i have only testet in V.1.7.9
Title: Re: [MOD] Search by category name
Post by: Jan-Lukas on January 13, 2011, 11:31:54 AM
1.7.7 auch OK
Title: Re: [MOD] Search by category name
Post by: Rembrandt on February 17, 2011, 08:53:57 AM
...
On search.htm (search.php) page:
Notice: Undefined index: search_catname in /var/www/razruha/data/www/razruha.ru/search.php on line 72
Notice: Undefined variable: countids in /var/www/razruha/data/www/razruha.ru/search.php on line 93
...

code update, step 1.), 1.2), 1.6)

mfg Andi
Title: Re: [MOD] Search by category name
Post by: alex9193 on February 15, 2012, 01:18:44 PM
Search works ok, but MOD Category Image v1.0.2 (http://www.4homepages.de/forum/index.php?topic=6922.msg30269#msg30269) doesn't work
tag {cat_image} doesn't work, the result is <img src="" />
Title: Re: [MOD] Search by category name
Post by: joloebig on September 12, 2014, 03:11:27 PM
hallo
ich hab die mod heute in 1.7.11 eingebaut
die suche geht leider nicht vollständig oder ich versteh die eingabe * falsch
beispiel:
die kat Amateur Graupner ID18
wird gefunden wenn man den vollständigen namen ein gibt -> ok, aber nicht sinn der suche ;)
bei der eingabe von Amateur, amateur oder *Amateur* wird nix gefunden
Amateur* wird gefunden;
bei der eingabe von Graupner oder Graupner* -> nix
*Graupner* bringt ein ergebniss

meine Frage, gibt es eine möglichkeit die platzhalter bei der suche automatisch zu übergeben?
analog zur schlüsselwort suche (die sucht aber nur in dateinamen)
der suchende weiss ja nicht wo sein "suchwort" steht

gruss und danke
jo
Title: Re: [MOD] Search by category name
Post by: Rembrandt on September 12, 2014, 06:15:07 PM
Hi!
..
wird gefunden wenn man den vollständigen namen ein gibt -> ok, aber nicht sinn der suche ;)
..
Stimmt, und du kannst die Suche gerne auf meiner Testseite (link im ersten Post) ausprobieren.

mfg Andi
Title: Re: [MOD] Search by category name
Post by: joloebig on September 12, 2014, 06:41:28 PM
Hallo Andy
stimmt, deine suche verhält sich genau so.
das verfahren mit den sternen iss seit google und windows 7.8.1 dem geneigten normaluser nicht mehr bekannt ;)

die frage war ob man das mit den platzhaltern ändern kann.
die eingabe und das suchergebiss einfach analog zu schlüsselwort suche, die kommt ohne sterne aus...


gruss
jo
Title: Re: [MOD] Search by category name
Post by: Rembrandt on September 12, 2014, 06:57:33 PM
Sicher kann man das machen, suche im Code step 1.)

$search_catname = str_replace('*', '%', trim($search_catname));

und ersetze es mit:

$search_catname = trim($search_catname."%");


auf der Demo Seite kannst es ausprobieren.

mfg Andi
Title: Re: [MOD] Search by category name
Post by: joloebig on September 12, 2014, 08:02:59 PM
hallo andy
danke das war es
suche macht dienst nach vorschrift ;)

danke und schönes we
jo