Author Topic: [MOD]AutoComplete  (Read 26006 times)

0 Members and 1 Guest are viewing this topic.

Rembrandt

  • Guest
[MOD]AutoComplete
« on: December 08, 2009, 01:50:06 PM »
Mit dieser Modifikation werden Inputfelder beim Schreiben automatisch mit vorgegeben Wörter ausgefüllt.
Hier stelle ich euch zwei Einbauvarianten vor.

 Variante A wenn man wenige wörter hat.
 Variante B wenn man ein ganzes Datenbankfeld verwenden möchte.
 
Demo : DEMO
 
 
Als Beispiel habe ich die Inputfelder der search_form.html genommen.

Neue Datei:
autocomplete.js
tage.js //optional
usernamen.js //optional

Geänderte Dateien:
search_form.html
search.php //optional



1.) FÜR BEIDE VARIANTEN: Ladet euch die Datei moautocomplete.zip von hier herrunter.
entpackt die datei autocomplete.js und speichtert sie auf euren webserver in root/js/autocomplete/ ab.


Variante A wenn man wenige wörter hat

2.) erstellt die beiden nachfolgenden Dateien und speichtert sie auf euren webserver in root/js/autocomplete/  ab.
Die beiden Dateien sollen nur als Beispiel dienen, ihr könnt sie natürlich auch anders benennen und mit euren eigenen Inhalten füllen.

monate.js:

var monate = new Array( 
'January',
'February'
'March',
'April',
'May',
'June',
'July',
'August',
'September',
'October',
'November',
'December')


usernamen.js:

var usernamen = new Array(
'Mickey',
'Mouse',
'Fix',
'Foxi',
'Lupo',
'Daisy',
'Donald',
'Dagobert')



3.) suche in templates/YourTemplates search_form.html:
Code: [Select]
<form method="post"  action="{url_search}">
fügt darüber ein:
Code: [Select]
<SCRIPT type="text/javascript" src="./js/autocomplete/autocomplete.js"></SCRIPT>
<SCRIPT type="text/javascript" src="./js/autocomplete/monate.js"></SCRIPT>
<SCRIPT type="text/javascript" src="./js/autocomplete/tage.js"></SCRIPT>

suche:
Code: [Select]
<input type="text" name="search_keywords" size="40" value="{search_keywords}" class="input" />
und ersetzt es mit:
Code: [Select]
<input type="text" name="search_keywords" size="40" value="{search_keywords}" class="input" autocomplete="array:monate"/>
suche:
Code: [Select]
<input type="text" name="search_user" size="40" value="{search_user}" class="input" />und ersetzt es mit:
Code: [Select]
<input type="text" name="search_user" size="40" value="{search_user}" class="input"  autocomplete="array:usernamen"/>

Variante B wenn man ein ganzes Datenbankfeld verwenden möchte.

2.) suche in templates/YourTemplates search_form.html:
Code: [Select]
<form method="post"  action="{url_search}">
fügt darüber ein:
Code: [Select]
<SCRIPT type="text/javascript" src="./js/autocomplete/autocomplete.js"></SCRIPT>

suche:
Code: [Select]
<input type="text" name="search_keywords" size="40" value="{search_keywords}" class="input" />und ersetzt es mit:
Code: [Select]
<input type="text" name="search_keywords" size="40" value="{search_keywords}" class="input"  autocomplete="list:{sword_text}"/>
suche:
Code: [Select]
<input type="text" name="search_user" size="40" value="{search_user}" class="input" />und ersetzt es mit:
Code: [Select]
<input type="text" name="search_user" size="40" value="{search_user}" class="input" autocomplete="list:{suser_name}"/>
3.) suche in root/search.php:
$org_search_user $search_user;
füge darunter ein:

//#################################### Start Mod AutoComplete #################################################
$suser_name "";
$sword_text "";
$sql "SELECT u.user_name, w.word_text 
          FROM ("
.USERS_TABLE." u, ".WORDLIST_TABLE." w)
          WHERE word_text < 1 AND LENGTH(word_text) > 2 "
;
  
$result $site_db->query($sql);
  while (
$row $site_db->fetch_array($result)) {
	
    
$suser_name[]= $row['user_name'];      
      
$sword_text[]= $row['word_text'];
  }
	

    
$suser_name implode("|", (array_unique($suser_name)));
    
$sword_text implode("|", (array_unique($sword_text)));
//#################################### End Mod AutoComplete #################################################
	



suche:

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

füge darüber ein:

//#################################### Start Mod AutoComplete #################################################
	
"suser_name" => $suser_name,
	
"sword_text" => $sword_text,
//#################################### END Mod AutoComplete #################################################


Variante B sollte Bitte jemand einmal testen mit wirklich vielen "keywords" und "usernamen" bei mir gab es keine Probleme, aber in ermangelung von usern :)
auf meiner Demo Seite konne ich das nicht wirklich testen, Danke.

Viel Spass!

mfg Andi

« Last Edit: December 08, 2009, 06:59:25 PM by Rembrandt »

Offline Jan-Lukas

  • Addicted member
  • ******
  • Posts: 1.289
    • View Profile
    • Discover the New World of Kindersurprise
Re: [MOD]Auto Complete
« Reply #1 on: December 08, 2009, 06:21:52 PM »
bei Variante "B" bekomme ich folgende Fehlermeldung

Fatal error: Call to a member function on a non-object in /srv/www/vhosts/ue-ei-portal-sammlerkatalog.de/httpdocs/search.php on line 59

das ist diese Zeile

 $result $site_db->query($sql);

Version 1.7.6

LG Harald
Danke Harald




Rembrandt

  • Guest
Re: [MOD]Auto Complete
« Reply #2 on: December 08, 2009, 06:34:13 PM »
Hi!

hm.. kann ich ehrlich gesagt nicht nach vollziehen auf meiner demo seite läuft 1.7.7 und auf meiner vienna 1.7.6

mfg Andi

Offline Jan-Lukas

  • Addicted member
  • ******
  • Posts: 1.289
    • View Profile
    • Discover the New World of Kindersurprise
Re: [MOD]AutoComplete
« Reply #3 on: December 08, 2009, 10:02:59 PM »
ich schaue es mir morgen noch mal an, evtl. was falsch gemacht

LG
Danke Harald




rinaldos

  • Guest
Re: [MOD]AutoComplete
« Reply #4 on: December 08, 2009, 11:24:15 PM »
@Rembrandt,
ist ein schönes ADDON für die Suche. Wenn man nur viele Keywords in der Datenbank hat, dauert es ein wenig bis die Suchseite geöffnet ist :-) Aber es funktioniert einwandfrei :-)
Ist ähnlich diesem MOD, nur das dieser auf AJAX basiert und dir eine Dropdown Liste erstellt.
http://www.4homepages.de/forum/index.php?topic=15290.0

Mir persönlich gefällt Deine Version besser :-) Danke fürs veröffentlichen......

Gruß

Rembrandt

  • Guest
Re: [MOD]AutoComplete
« Reply #5 on: December 09, 2009, 04:13:38 AM »
Hi!
...
Mir persönlich gefällt Deine Version besser :-) Danke fürs veröffentlichen...
Ich Danke dir ! :) den anderen mod kannte ich gar nicht, ich habe eine woche lang nach einen brauchbaren script mit dropdown gesucht aber nicht gefunden.
die meisten scripte mit dropdown sind viel zu aufgeblasen, 40k code für eine dropdownliste extra php und was weis ich was noch alles.
vom einbau ganz zu schweigen..
Wegen der geschwindigkeit, im moment werden wörter mit weniger als 2 buchstaben rausgefilter, vielleicht sollte man das noch erhöhen.

mfg Andi

Offline kubiczek

  • Full Member
  • ***
  • Posts: 211
    • View Profile
    • Gross Peterwitz
Re: [MOD]AutoComplete
« Reply #6 on: February 02, 2010, 08:26:47 PM »
hi   eingebaut in 1.7.4   und in 1.7.6

jeweils der folgende fehler

Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 19 bytes) in ****************/gp/includes/db_mysql.php on line 92


Rembrandt

  • Guest
Re: [MOD]AutoComplete
« Reply #7 on: February 02, 2010, 08:33:18 PM »
hi   eingebaut in 1.7.4   und in 1.7.6

jeweils der folgende fehler

Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 19 bytes) in ****************/gp/includes/db_mysql.php on line 92



was auch immer bei dir den fehler jetzt auslöst, er besagt das du um 19bytes zuviel in den speicher ladest als erlaubt ist.

setze mal in der slq abfrage die wortlänge höher : AND LENGTH(word_text) > 3

Offline kubiczek

  • Full Member
  • ***
  • Posts: 211
    • View Profile
    • Gross Peterwitz
Re: [MOD]AutoComplete
« Reply #8 on: February 03, 2010, 06:23:46 PM »
habe es auf 3 , 4 und 5 geändert,  aber das selbe kommt dabei raus.   immer zwischen 24kb und 71kb

 :( :( :( :( :( :(egal das leben geht weiter

Rembrandt

  • Guest
Re: [MOD]AutoComplete
« Reply #9 on: February 03, 2010, 06:27:33 PM »
da frage ich mich was du für eine datenbank hast, das die suchwörter 68mb ausmachen.

Offline Sunny C.

  • Addicted member
  • ******
  • Posts: 1.806
  • I ♥ 4I
    • View Profile
Re: [MOD]AutoComplete
« Reply #10 on: March 01, 2010, 12:23:30 PM »
Wirklich sehr tolle Mod.
Funktioniert bestens und wir weisen 15.000 User auf. Läuft dennoch wunderbar schnell und sauber.

Eine Frage aber:

Wie bekommen das das in die Quick-Search?

http://s5b.directupload.net/images/100301/wbnciyjf.png

Edit://
Würde mich auf jeden Fall noch interessieren!  :) :D
« Last Edit: March 02, 2010, 09:41:34 PM by Sumale.nin »

Offline x23piracy

  • Sr. Member
  • ****
  • Posts: 420
    • View Profile
    • FHG
Re: [MOD]AutoComplete
« Reply #11 on: October 04, 2010, 12:32:04 AM »
da frage ich mich was du für eine datenbank hast, das die suchwörter 68mb ausmachen.

Hi,

Variante B mit 1.7.8:

ich wäre dann der zweite, ich kann da allerdings einen drauflegen ;) ~135MB.
In meiner Galerie sind insgesamt >17000 Bilder.

Code: [Select]
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 35 bytes) in /home/www/web0/html/4images/search.php on line 57
Ich hab mein PHP memory Limit auf das max. angehoben 68MB, oder ist das die falsche Schraube?
Ist das der Datenbank Speicher?


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!

--(◔̯◔)--

Rembrandt

  • Guest
Re: [MOD]AutoComplete
« Reply #12 on: October 04, 2010, 04:33:05 AM »
....Ich hab mein PHP memory Limit auf das max. angehoben 68MB, oder ist das die falsche Schraube?
...
stimmt schon, nur bist du um 35bytes drüber.
was du machen kannst, in der wordlist_table ein par suchbegriffe rauslöschen, da sind sicher viele fragmente von alten bilder drinnen.

Offline x23piracy

  • Sr. Member
  • ****
  • Posts: 420
    • View Profile
    • FHG
Re: [MOD]AutoComplete
« Reply #13 on: October 04, 2010, 05:00:27 AM »
....Ich hab mein PHP memory Limit auf das max. angehoben 68MB, oder ist das die falsche Schraube?
...
stimmt schon, nur bist du um 35bytes drüber.
was du machen kannst, in der wordlist_table ein par suchbegriffe rauslöschen, da sind sicher viele fragmente von alten bilder drinnen.

Hi,

unwahrscheinlich, die Galerie ist mit der Menge gestartet und da wurde bisher nix gelöscht sondern nur hinzugefügt.
Oder ich verstehe dich falsch du schreibst ja was von alten Bildern...

Oder geht es um Suchbegriffe die durch User eingegeben wurden?


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!

--(◔̯◔)--

Rembrandt

  • Guest
Re: [MOD]AutoComplete
« Reply #14 on: October 04, 2010, 05:04:49 AM »
ok die galerie wurde so gestartet, aber hast du die datenbank mit der V1.7.8 neu gemacht?