Script-solution.de » Community » Support-Board » Foren » Boardsolution » Boardsolution v1.4x » Fragen zu Änderungen » Hab noch ein zwei Fragen
  • Willkommen, Gast!
  • Freitag, 10. Februar 2012, 06:09:59
 
Thema: "Hab noch ein zwei Fragen" [ Seite 1 2 ]

Kein neuer Beitrag langer , 23.03.2010, 14:20
Beitrag #1   

IP: n/a
Rang: * * * * * * O
Registrierung: 05.04.2005, 08:05
Wohnort: Karlsruhe
 

Forum-Beherrscher mit 584 Punkte, 440 Beiträge
Hallo Nils,

Bin jetzt schon ziemlich weit gekommen mit meinem Projektchen habe aber wieder ein zwei Fragen.

1. Links im Forum
Im Forum werden die Links ja so zusammengebaut z.b index.php?action=posts&fid=25&tid=522&site=39
Wo wird das festgelegt? Kann ich ohne Problem noch eine zusätzliche Struktur hinzufügen z.b
index.php?action=downloads&cat=25&fil=28&site=39
Und wie sieht es dann mit den SEF Urls aus? Wäre es dann auch möglich diese umzuwandeln?

2. Positionsanzeige
Wie funktioniert die Positionsleiste im Board also die Anzeige der aktuellen Position?
Wo kann ich dann auch die nötige Änderung (1.) machen?

3. Was mach ich falsch?
Ich versuche von einer Kategorie alle ids der Unterkategorien und deren Unterunterkategorien…
auszulesen und dann die Anzahl der Dateien in diesen Kategorien darzustellen.
Die Ids bekomme ich alle zusammen aber dann bei dem versuch die Anzahl der Dateien zu zählen
bekomme ich ein Fehler. Der Fehler bezieht sich darauf wie ich die ids in mysql abfrage übergebe.
Kann ich das ganze noch anders machen? (Den Code muss ich natürlich nochmal überarbeiten)

Hier hol ich mir die ids und trenne alle durch ein Komma. Dann hänge ich noch die Hauptkategorie an:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  private function _get_ucatid($parent,$catid)
  {      
            if (!isset($ucatid))
            $ucatid = '';
            
            $qry = mysql_query ("SELECT id FROM bs_downloadscat WHERE parent_id='$parent' ORDER BY sortierung");
            while ($verwandter=mysql_fetch_assoc($qry)) 
            {
      $ucatid .= $verwandter['id'].',';
            $ucatid .= $this->_get_ucatid($verwandter['id'],'');
            }
                       
        return $this->_get_downloads($ucatid.$catid);
  }

Ergebnis:
56,41,40,63,31,39,42,28

Das übergebe ich in die nächste funktion
PHP:
1
2
3
4
5
6
7
8
9
10
  private function _get_downloads($ucatid)
  { 
            $db = FWS_Props::get()->db();
            
            $ids = $ucatid;
            //$ids = '31,40,63,41,39,42,56,28';// so bekomme ich die richtige Anzahl
            $downloads = $db->get_row_count(BS_TB_DOWNLOADS,'id','WHERE cat_id IN ('.$ids.')'); 
                        
        return $downloads;
  }


Wie gesagt hier bekomme ich ein Fehler. Wenn ich die ids die oben im Code stehen nehme (//) bekomme
ich die richtige Ausgabe.

Sorry schon mal das gleich ein paar Fragen stelle, hoffe ist nciht zu viel verlangt...
Danke =)


Gruß
Langer

 
Kein neuer Beitrag Nils , 24.03.2010, 09:50
Beitrag #2   

IP: n/a
Rang: * * * * * * *
Registrierung: 01.07.2003, 18:55
Homepage: http://www.script-solution.de
Wohnort: Marburg
 

Forum-Gott mit 7594 Punkte, 7360 Beiträge
Hallo,

langer hat folgendes geschrieben:
1. Links im Forum
Im Forum werden die Links ja so zusammengebaut z.b index.php?action=posts&fid=25&tid=522&site=39
Wo wird das festgelegt? Kann ich ohne Problem noch eine zusätzliche Struktur hinzufügen z.b index.php?action=downloads&cat=25&fil=28&site=39

Für den Zusammenbau der URLs ist die Klasse BS_URL (src/url.php) zuständig. Die bietet diverse
statische Methoden um die am häufigsten benötigten Parameter anzuhängen. Den Rest muss man manuell
setzen. In deinem Fall wäre folgendes wohl am sinnvollsten:
PHP:
1
2
3
4
$url = BS_URL::get_mod_url('downloads');
$url->set(BS_URL_CAT,25);
$url->set(BS_URL_FIL,28); // hoffentlich angelegt und in BS_URL::is_intern() zu den "bekannten" hinzugefügt? :)
$url->set(BS_URL_PAGE,39);


langer hat folgendes geschrieben:
Und wie sieht es dann mit den SEF Urls aus? Wäre es dann auch möglich diese umzuwandeln?

SEF-URLs sind nur für die Seiten vorgesehen, für die das Sinn macht, d.h. Portal, Foren, Themen und
Beiträge. Wobei es natürlich möglich ist andere auch zuzulassen. Generell funktioniert das so, dass
man nur bei der BS_URL-Instanz mit set_sef() angeben muss ob es eine ist oder nicht. Wenn es eine
ist, wird die URL anders generiert. Dafür ist die Methode to_url() in der src/url.php zuständig.
Für jede der genannten Seiten wird dort die entsprechende URL generiert. Dort könntest du das also
für deine Seite hinzufügen.

langer hat folgendes geschrieben:
2. Positionsanzeige
Wie funktioniert die Positionsleiste im Board also die Anzeige der aktuellen Position?

Wie die Positionsanzeige aussieht sagt man dem Renderer in der init-Methode des Moduls. Hier ein
Beispiel aus der Mitgliederliste:
PHP:
1
2
$renderer = $doc->use_default_renderer();
$renderer->add_breadcrumb($locale->lang('memberlist'),BS_URL::build_mod_url('memberlist'));

Um alles Weitere kümmert sich der Renderer.

langer hat folgendes geschrieben:
Wo kann ich dann auch die nötige Änderung (1.) machen?

Ich versteh die Frage nicht so richtig, aber du müsstest nur der Methode add_breadcrumb() die
URL-Instanz geben. D.h. nicht die URL als String, sondern die Instanz von BS_URL (alle Methoden
namens "get_*" geben die Instanz zurück, alle Methoden namens "build_*" geben die URL als String
zurück).

langer hat folgendes geschrieben:
3. Was mach ich falsch?
Ich versuche von einer Kategorie alle ids der Unterkategorien und deren Unterunterkategorien…
auszulesen und dann die Anzahl der Dateien in diesen Kategorien darzustellen.
Die Ids bekomme ich alle zusammen aber dann bei dem versuch die Anzahl der Dateien zu zählen
bekomme ich ein Fehler. Der Fehler bezieht sich darauf wie ich die ids in mysql abfrage übergebe.
Kann ich das ganze noch anders machen? (Den Code muss ich natürlich nochmal überarbeiten)

Hier hol ich mir die ids und trenne alle durch ein Komma. Dann hänge ich noch die Hauptkategorie an:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  private function _get_ucatid($parent,$catid)
  {      
            if (!isset($ucatid))
            $ucatid = '';
            
            $qry = mysql_query ("SELECT id FROM bs_downloadscat WHERE parent_id='$parent' ORDER BY sortierung");
            while ($verwandter=mysql_fetch_assoc($qry)) 
            {
      $ucatid .= $verwandter['id'].',';
            $ucatid .= $this->_get_ucatid($verwandter['id'],'');
            }
                       
        return $this->_get_downloads($ucatid.$catid);
  }

Ergebnis:
56,41,40,63,31,39,42,28

Das übergebe ich in die nächste funktion
PHP:
1
2
3
4
5
6
7
8
9
10
  private function _get_downloads($ucatid)
  { 
            $db = FWS_Props::get()->db();
            
            $ids = $ucatid;
            //$ids = '31,40,63,41,39,42,56,28';// so bekomme ich die richtige Anzahl
            $downloads = $db->get_row_count(BS_TB_DOWNLOADS,'id','WHERE cat_id IN ('.$ids.')'); 
                        
        return $downloads;
  }


Wie gesagt hier bekomme ich ein Fehler. Wenn ich die ids die oben im Code stehen nehme (//) bekomme
ich die richtige Ausgabe.

Mal abgesehen davon, dass du lieber die DB-Klasse von BS und eine Konstante für den Tabellennamen
benutzen solltest, fällt mir folgendes auf:

  • Du brauchst am Anfang nicht zu prüfen ob $ucatid existiert. Das tut es nie, also einfach mit ''
    initialisieren :)
  • Der Grund für den Fehler ist wohl, dass am Ende bei rekursiven Aufrufen (dort ist $catid leer) ein
    Komma steht. D.h. du bekommst nicht "12,13,14" sondern "12,13,14,". Das mag SQL natürlich nich :)
  • Dann ist es keine gute Idee am Ende von _get_ucatid() überhaupt die Funktion _get_downloads()
    aufzurufen, weil _get_ucatid() ja rekursiv ist. D.h. du würdest das ja in jedem rekursiven Aufruf
    machen und nicht bloß einmal am Ende. Du müsstest also erst nur die IDs sammeln und nach dem
    "kompletten" Aufruf die andere:
    PHP:
    1
    2
    $ids = _get_ucatids(...);
    $downloads = _get_downloads($ids);

  • Vor allem müsste _get_ucatid() natürlich am Ende die ids zurückgeben (siehe rek. Aufruf) und nicht
    die Anzahl der Downloads...


langer hat folgendes geschrieben:
Sorry schon mal das gleich ein paar Fragen stelle, hoffe ist nciht zu viel verlangt...
Danke =)

Nein, schon ok :)

mfg Nils
Dieser Beitrag wurde insgesamt 2 mal editiert. Das letzte mal 24.03.2010, 09:54 von Nils.

 
Kein neuer Beitrag langer , 24.03.2010, 14:33
Beitrag #3   

IP: n/a
Rang: * * * * * * O
Registrierung: 05.04.2005, 08:05
Wohnort: Karlsruhe
 

Forum-Beherrscher mit 584 Punkte, 440 Beiträge
Danke für deine Antwort =)

Zu 1. und 2. werde ich die Tage mal testen.

3.
Zitat:
Mal abgesehen davon, dass du lieber die DB-Klasse von BS und eine Konstante für den Tabellennamen
benutzen solltest, fällt mir folgendes auf:

Habe ich schon gemacht danke.
Habe durch die rekursive 38DB Zugriffe ist schon ne Menge...

Wie löst du das denn im Forum?
Vom Prinzip will ich ja nichts anderes auslesen wie Foren Unterforen, Anzahl der Themen, letzter
Beitrag...
Zitat:
* Du brauchst am Anfang nicht zu prüfen ob $ucatid existiert. Das tut es nie, also einfach mit
''
initialisieren :)

Danke ;-)
Zitat:
* Der Grund für den Fehler ist wohl, dass am Ende bei rekursiven Aufrufen (dort ist $catid
leer) ein
Komma steht. D.h. du bekommst nicht "12,13,14" sondern "12,13,14,". Das mag SQL natürlich
nich :)

Das hatte ich am Anfang auch schon gedacht und habe am ende noch die $catid hinzugefügt also die
Hauptid in meinem Beispiel bekomme ich 31,40,63,41,39,42,56, durch die rekursive dann hänge ich
noch die 28 an aber bekomme trotzdem den Fehler...
Zitat:
* Dann ist es keine gute Idee am Ende von _get_ucatid() überhaupt die Funktion _get_downloads()
aufzurufen, weil _get_ucatid() ja rekursiv ist. D.h. du würdest das ja in jedem rekursiven
Aufruf
machen und nicht bloß einmal am Ende. Du müsstest also erst nur die IDs sammeln und nach dem
"kompletten" Aufruf die andere:

Danke. Macht Sinn...

Dieser Beitrag wurde insgesamt 1 mal editiert. Das letzte mal 24.03.2010, 14:34 von langer.

 
Kein neuer Beitrag Nils , 24.03.2010, 16:35
Beitrag #4   

IP: n/a
Rang: * * * * * * *
Registrierung: 01.07.2003, 18:55
Homepage: http://www.script-solution.de
Wohnort: Marburg
 

Forum-Gott mit 7594 Punkte, 7360 Beiträge
langer hat folgendes geschrieben:
Habe durch die rekursive 38DB Zugriffe ist schon ne Menge...

Wie löst du das denn im Forum?
Vom Prinzip will ich ja nichts anderes auslesen wie Foren Unterforen, Anzahl der Themen, letzter Beitrag...

Ich lese alle Foren mit einem DB-Query und bau das dann mit PHP in eine Baumstruktur um. So brauch
ich dann für solche Dinge keine Queries mehr, sondern geh nur den Baum durch.

langer hat folgendes geschrieben:
Das hatte ich am Anfang auch schon gedacht und habe am ende noch die $catid hinzugefügt also die
Hauptid in meinem Beispiel bekomme ich 31,40,63,41,39,42,56, durch die rekursive dann hänge ich
noch die 28 an aber bekomme trotzdem den Fehler...

hm...welche Fehlermeldung bekommst du denn?

mfg Nils

 
Kein neuer Beitrag langer , 24.03.2010, 17:11
Beitrag #5   

IP: n/a
Rang: * * * * * * O
Registrierung: 05.04.2005, 08:05
Wohnort: Karlsruhe
 

Forum-Beherrscher mit 584 Punkte, 440 Beiträge
Zitat:
Ich lese alle Foren mit einem DB-Query und bau das dann mit PHP in eine Baumstruktur um. So brauch
ich dann für solche Dinge keine Queries mehr, sondern geh nur den Baum durch.


Ist aber bestimmt wesentlich komplizierter oder?

Die Fehlermeldung:
Code:
1
2
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in ../test.php on line 182
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1

Ist aber außerhalb von BS zum testen wenn ich es intern mache kommt die gleiche Meldung. Das
komische ist aber das das richtige Ergebnis außerhalb von BS angezeigt wird und die Fehler kommen.
Dieser Beitrag wurde insgesamt 1 mal editiert. Das letzte mal 24.03.2010, 17:11 von langer.

 
Kein neuer Beitrag Nils , 24.03.2010, 18:15
Beitrag #6   

IP: n/a
Rang: * * * * * * *
Registrierung: 01.07.2003, 18:55
Homepage: http://www.script-solution.de
Wohnort: Marburg
 

Forum-Gott mit 7594 Punkte, 7360 Beiträge
langer hat folgendes geschrieben:
Zitat:
Ich lese alle Foren mit einem DB-Query und bau das dann mit PHP in eine Baumstruktur um. So brauch
ich dann für solche Dinge keine Queries mehr, sondern geh nur den Baum durch.


Ist aber bestimmt wesentlich komplizierter oder?

Ein bisschen auf jeden Fall, ja. Musst du beurteilen ob es den Aufwand wert ist. Wenn es nur einige
wenige Einträge in der DB sind, gehts ja noch auf die einfache Weise :)

langer hat folgendes geschrieben:
Die Fehlermeldung:
Code:
1
2
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in ../test.php on line 182
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1

Ist aber außerhalb von BS zum testen wenn ich es intern mache kommt die gleiche Meldung. Das
komische ist aber das das richtige Ergebnis außerhalb von BS angezeigt wird und die Fehler kommen.

Ok, sieht aber nach dem Problem mit dem "," am Ende aus. Lass dir mal den fertigen Query ausgeben.

mfg Nils

 
Kein neuer Beitrag langer , 25.03.2010, 13:31
Beitrag #7   

IP: n/a
Rang: * * * * * * O
Registrierung: 05.04.2005, 08:05
Wohnort: Karlsruhe
 

Forum-Beherrscher mit 584 Punkte, 440 Beiträge
ICh versuche gerade so ein kleines Download modul zu machen. werden wahrscheinlich so ca 15-20
Kategorien und ca 100 Dateien...

Ich habe es jetzt mal so gemacht:
PHP:
1
2
'ucatid' => $cat_ids = $this->_get_ucatid($row['id'], $row['id']),
'files' => $this->_get_files($cat_ids),


PHP:
1
2
3
4
5
6
7
8
9
10
11
  private function _get_files($ucatid)
  { 
  
            $db = FWS_Props::get()->db();

            $ids = $ucatid;
            $files = $db->get_row_count(BS_TB_DOWNLOADS,'id','WHERE cat_id IN ('.$ids.')'); 
                        
        return $files;

  }

und so funktioniert es wäre das so ok?

Danke für deine Mühe...

Edit:
PHP:
1
2
3
4
$url = BS_URL::get_mod_url('downloads');
$url->set(BS_URL_CAT,25);
$url->set(BS_URL_FIL,28); // hoffentlich angelegt und in BS_URL::is_intern() zu den "bekannten" hinzugefügt? :)
$url->set(BS_URL_PAGE,39);

Wo kann ich das zu den bekannten hinzufügen?
Die Url ist vom prinzip her auch gleich stats fid nehme ich cat statt tid nehme ich file.
Dieser Beitrag wurde insgesamt 2 mal editiert. Das letzte mal 25.03.2010, 19:40 von langer.

 
Kein neuer Beitrag Rafioso , 25.03.2010, 17:30
Beitrag #8   

IP: n/a
Rang: * * * * * * *
Registrierung: 30.08.2006, 22:31
Homepage: http://HomepageStarter.de
Wohnort: O-BW
 

Forum-Gott mit 1463 Punkte, 1295 Beiträge
Hi langer,

langer hat folgendes geschrieben:

Edit:
Zitat:
$url = BS_URL::get_mod_url('downloads');
$url->set(BS_URL_CAT,25);
$url->set(BS_URL_FIL,28); // hoffentlich angelegt und in BS_URL::is_intern() zu den "bekannten"
hinzugefügt? :)
$url->set(BS_URL_PAGE,39);

Wo kann ich das zu den bekannten hinzufügen?
Die Url ist vom prinzip her auch gleich stats fid nehme ich cat statt tid nehme ich file.


Dies kannst du in der Methode is_intern der Datei src/url.php in Zeile 576 hinzufügen.
Zudem musst du die Konstante noch definieren. Dies geschieht in der config/userdef.php ab Zeile 482.


PS: Und nächstes Mal bitte den schönen php-Code-Tag verwenden. Dann kommt da auch kein Smiley rein :)

MfG
Rafioso

 
Kein neuer Beitrag langer , 25.03.2010, 19:39
Beitrag #9   

IP: n/a
Rang: * * * * * * O
Registrierung: 05.04.2005, 08:05
Wohnort: Karlsruhe
 

Forum-Beherrscher mit 584 Punkte, 440 Beiträge
Hi Rafioso

Danke dir hat alles geklappt :-)

oh hab ich gar nicht bemerkt hab es ausversehen in quote tags gesteckt :D

gruß
langer

 
Kein neuer Beitrag Nils , 25.03.2010, 21:30
Beitrag #10   

IP: n/a
Rang: * * * * * * *
Registrierung: 01.07.2003, 18:55
Homepage: http://www.script-solution.de
Wohnort: Marburg
 

Forum-Gott mit 7594 Punkte, 7360 Beiträge
langer hat folgendes geschrieben:
und so funktioniert es wäre das so ok?

Ja, ist denke ich ok so. Wobei man vllt., sofern du _get_files ohnehin nur dafür brauchst, in
_get_files den Aufruf von _get_ucatid unterbringen sollte. So ist es von der Benutzung her einfacher.

mfg Nils

 
Kein neuer Beitrag langer , 05.08.2010, 11:24
Beitrag #11   

IP: n/a
Rang: * * * * * * O
Registrierung: 05.04.2005, 08:05
Wohnort: Karlsruhe
 

Forum-Beherrscher mit 584 Punkte, 440 Beiträge
Hallo Nils

Ich schreib einfach hier noch mal weiter, hoffe ist ok.

Das Modul läuft jetzt. Danke noch mal für die Hilfe. =)
Jetzt habe ich wieder ein zwei Fragen...

1. Wer ist wo?
Ist es möglich das neue Modul dort aufzunehmen? Wo wird das denn geregelt?

2. Boardjump
Hier würde ich auch noch gerne ein paar Links hinzufügen.

3. Suche
Wäre es auch möglich das neue Modul auch zu durchsuchen? Wo wird denn die suche geregelt?


Danke schon mal für deine Mühe

Gruß
Langer

 
Kein neuer Beitrag Nils , 05.08.2010, 11:53
Beitrag #12   

IP: n/a
Rang: * * * * * * *
Registrierung: 01.07.2003, 18:55
Homepage: http://www.script-solution.de
Wohnort: Marburg
 

Forum-Gott mit 7594 Punkte, 7360 Beiträge
Hallo,

langer hat folgendes geschrieben:
1. Wer ist wo?
Ist es möglich das neue Modul dort aufzunehmen? Wo wird das denn geregelt?

Das wird in der src/location.php geregelt. Um dein Modul mit "aufzunehmen" musst du nur in die
Sprachdateien einen Eintrag namens "loc_<action>" einfügen, wobei <action> der Wert des
action-Parameters in der URL für dein Modul ist.

langer hat folgendes geschrieben:
2. Boardjump
Hier würde ich auch noch gerne ein paar Links hinzufügen.

Wenn die immer für alle sichtbar sein sollen, ist es recht einfach. Dann brauchst du die nur im
Template inc_bottom.htm hinzufügen. Ganz unten findest du die Combobox mit den Einträgen. Die
meisten werden mit der Schleife dort eingefügt, weil sie nicht immer sichtbar sind. Du kannst deine
dann einfach so (außerhalb der Schleife) hinzufügen. Du musst dann nur noch in der
Javascript-Funktion darüber den entsprechenden Code für deine Links einbauen (ich denke mal, du
kannst dich einfach an den bestehenden orientieren).
Wenn sie nicht immer sichtbar sein sollen, musst du in der front/src/renderer/html.php schauen. Ab
Zeile 540 werden dort die sichtbaren Links festgelegt. Dann würde deiner also, je nach dem wo du es
einbaust, in der Schleife mit dabei sein.

langer hat folgendes geschrieben:
3. Suche
Wäre es auch möglich das neue Modul auch zu durchsuchen? Wo wird denn die suche geregelt?

Puh, das könnte schwierig werden. Zumindest je nach dem wie du das vor hast. Das Suche-Modul ist
nur für Posts ausgerichtet. Der Mechanismus, der dahinter steht, ist jedoch recht allgemein
gehalten. In front/src/search findest du das Ganze. Das wichtigste sind die Interfaces
BS_Front_Search_Request und BS_Front_Search_Result und der Manager in der manager.php. In den
Unterordnern sind dann die Implementierungen der beiden Interfaces.
Du kannst es dir ja mal anschauen, wenn du Lust hast, aber ich fürchte das wird nicht ganz einfach
das zu durchschauen :) Leider wäre es deshalb auch sehr aufwendig zu erklären...
Edit: Der Mechanismus wird z.B. in front/module/search/module.php und
front/module/userprofile/sub_pmsearch.php verwendet.

mfg Nils
Dieser Beitrag wurde insgesamt 1 mal editiert. Das letzte mal 05.08.2010, 11:56 von Nils.

 
Kein neuer Beitrag langer , 05.08.2010, 13:33
Beitrag #13   

IP: n/a
Rang: * * * * * * O
Registrierung: 05.04.2005, 08:05
Wohnort: Karlsruhe
 

Forum-Beherrscher mit 584 Punkte, 440 Beiträge
Danke Nils für die schnelle Antwort :D

1. Ich hab mir noch gedacht so einfach kann das nicht gehen ;-)

2. Hatte beide Fälle gebraucht aber hat gut funktioniert.

3. Werde ich die Tage mal testen. Hört sich etwas aufwendiger an...

Edit:

3. Habe ich jetzt mal hinbekommen... danke für die Tipps. =)
Nur das mit dem "Highlither" noch nicht :-/
Also das die gesuchten keywords hevorgehoben werden...

und noch was ;-)
Ich habe ja das Modul, wie du dich wahrscheinlich erinnern kannst, mit einer rekursiven Funktion
versehen um z.b an den Pfad einer Datei zu kommen. Beim Suchergebnis gibt er ja auch unteranderem
die Position an wenn ich nun z.b nur nach dem user suche also z.b "langer" bekomme ich 74 Dateien
angezeigt was natürlich durch die Funktion eine ziemlich belastung für die Datenbank ist. Kann ich
das irgendwie umgehen? Wie würdest du das lösen? Kann ich mir das irgenwo mal anschauen?

Gruß
Langer
Dieser Beitrag wurde insgesamt 3 mal editiert. Das letzte mal 12.08.2010, 07:34 von langer.

 
Kein neuer Beitrag Nils , 13.08.2010, 09:33
Beitrag #14   

IP: n/a
Rang: * * * * * * *
Registrierung: 01.07.2003, 18:55
Homepage: http://www.script-solution.de
Wohnort: Marburg
 

Forum-Gott mit 7594 Punkte, 7360 Beiträge
Hallo,

langer hat folgendes geschrieben:
3. Habe ich jetzt mal hinbekommen... danke für die Tipps. =)

Supi :) Wie hast du das denn gelöst?

langer hat folgendes geschrieben:
Nur das mit dem "Highlither" noch nicht :-/
Also das die gesuchten keywords hevorgehoben werden...

Kommt jetzt drauf an wie du das gemacht hast. Aber wenn du den Post-Container benutzt (siehe
front/src/search/result/posts.php) kannst du dem einfach die keywords geben und er highlighted die
dann. Um das an anderen Stellen selbst zu machen, kannst du den "keyword-highlighter" nehmen:
PHP:
1
2
$hl = new FWS_KeywordHighlighter($keywords,'<span class="bs_highlight">');
$text = $hl->highlight($text);


langer hat folgendes geschrieben:
und noch was ;-)
Ich habe ja das Modul, wie du dich wahrscheinlich erinnern kannst, mit einer rekursiven Funktion
versehen um z.b an den Pfad einer Datei zu kommen. Beim Suchergebnis gibt er ja auch unteranderem
die Position an wenn ich nun z.b nur nach dem user suche also z.b "langer" bekomme ich 74 Dateien
angezeigt was natürlich durch die Funktion eine ziemlich belastung für die Datenbank ist. Kann ich
das irgendwie umgehen? Wie würdest du das lösen? Kann ich mir das irgenwo mal anschauen?

Besser wäre alle Download-Kategorien (darum gehts, oder? :)) auf einmal aus der Datenbank zu laden
und den Rest mit PHP zu erledigen. D.h. du müsstest dir irgendeine Datenstruktur (am Besten wäre
wohl ein Baum) aufbauen, mit der du dann die Sachen, die du damit vor hast, lösen kannst. In 1.41
läuft das bei den Foren zwar so, aber das ist mittlerweile sehr auseinandergezogen, so dass man da
glaube ich nicht mehr so gut erkennt, was da eigentlich abläuft. Aber du kannst mal bei 1.36
gucken. Und zwar in der src/forums.php. Im Constructor (BS_Forums()) wird das aus der DB geladen
und dann in eine Datenstruktur gepackt. Obwohl die vllt. von der Usability nicht unbedingt ideal
ist, aber es funktioniert :)

mfg Nils

 
Kein neuer Beitrag langer , 13.08.2010, 10:15
Beitrag #15   

IP: n/a
Rang: * * * * * * O
Registrierung: 05.04.2005, 08:05
Wohnort: Karlsruhe
 

Forum-Beherrscher mit 584 Punkte, 440 Beiträge
Hallo Nils,

Ich habe "einfach"eine neue klasse angelegt in front/src/search/request und result wobei ich mich
sehr an den posts orientiert habe...
In dem Suchformular habe ich eine checkbox für "in den downloads" suchen damit wird dann die
funktion aktiviert und er findet tatsächlich alles :-)

PHP:
1
2
3
case 'downloads':
$request = new BS_Front_Search_Request_Downloads();
break;


Das mit den Highlits habe ich mir auch schon angeschaut nur irgendwie kein Ansatz gesehen... werde
ich nochmal drüber schauen. Danke.

Edit:
Funktioniert war ja ziemlich einfach :-)
Danke nochmal


Das ist ein guter Tipp ich schau mir mal die 1.36 Version an... Danke

p.s wenn du willst kannst du dir ja mal noch die Ausgabe anschauen Downloads / Suche/ Downloads im
Adminbereich... war für mich ein hartes stück arbeit ;-)
Sei aber nicht ganz so hart mit deinem Urteil :-)
Dieser Beitrag wurde insgesamt 1 mal editiert. Das letzte mal 13.08.2010, 11:50 von langer.

n/a n/a 1 2     ( Anzeige: 1 - 15 , Gesamt: 28 ) Weiter Letzte Seite
User in diesem Thema: 0 Registrierte, 0 Versteckte, 1 Gast, 0 Bots
Keine
Thema-Aktionen:

Toggle Ähnliche Themen zu "Hab noch ein zwei Fragen"
  Antworten Aufrufe Themeneröffnung Letzter Beitrag
Keine neuen Beiträge, nicht wichtig Keine neuen Beiträge, 'heißes Thema'
Keine neuen Beiträge, offen Keine neuen Beiträge, nicht verschoben
  in tabelle jede zweite zeile mit css einfärbe ...   Seiten 1 2 ] 22 10871 27.11.2008, 23:33
Von: RommY
05.12.2008, 15:31
Von: Nils Zum letzten Beitrag
Keine neuen Beiträge, nicht wichtig Keine neuen Beiträge, kein 'heißes Thema'
Keine neuen Beiträge, offen Keine neuen Beiträge, nicht verschoben
  Zweites Logo oben rechts 9 1316 08.02.2008, 10:58
Von: Gido
09.02.2008, 23:13
Von: Nils Zum letzten Beitrag
Keine neuen Beiträge, nicht wichtig Keine neuen Beiträge, 'heißes Thema'
Keine neuen Beiträge, offen Keine neuen Beiträge, nicht verschoben
Thema Korrekturen bei zwei Anleitungen 0 23725 31.08.2007, 17:39
Von: Nils
31.08.2007, 17:39
Von: Nils Zum letzten Beitrag
Keine neuen Beiträge, nicht wichtig Keine neuen Beiträge, 'heißes Thema'
Keine neuen Beiträge, offen Keine neuen Beiträge, nicht verschoben
  Zweite Beta-Version von BS 1.30 0 16554 13.08.2007, 17:24
Von: Nils
13.08.2007, 17:24
Von: Nils Zum letzten Beitrag
Keine neuen Beiträge, nicht wichtig Keine neuen Beiträge, 'heißes Thema'
Keine neuen Beiträge, offen Keine neuen Beiträge, nicht verschoben
  Board mit aktuellem Inhalt auf zweitem Server ...   Seiten 1 2 ] 19 8029 09.07.2007, 08:21
Von: chilly112
10.07.2007, 21:17
Von: Nils Zum letzten Beitrag
  • 0.1406 Sek., 10 DB-Zugriffe, 6.562 MiB
  • Boardsolution v1.43 | © Nils Asmussen 2003-2009
Valid XHTML and CSS © 2003 - 2009 script-solution.de, Powered by Joomla!