Iskanje v phpBB3 forumu znotraj [code] oznake ne deluje!

Prenovljen forum spletišča Matjazev.NET me vsak dan preseneča. Včeraj sem se ubadal s poslovenjenimi gumbi, danes pa z iskanjem po forumu.

Eden izmed najbolj aktivnih uporabnikov
foruma (hvala!), je ugotovil, da neke tematike, za katero se spomni, da je v forumu bila, ne najde! Ker sem iskan makro res napisal jaz, je tudi mene čudilo, da forum tematike ne najde.

Zagnal sem star forum (verzije phpBB2) in videl, da star forum, glede na ključne besede, najde mnogo več tematik kot nov forum. No, resnici na ljubo tudi v starem forumu originalno iskane tematike ni, saj je bila v prastarem forumu, ki smo ga izgubili v »požaru«…

Dobro, da se vrnem k iskanju. Hitro sem ugotovil, da nov forum (različica phpBB3) ne išče znotraj programske kode, torej znotraj oznake . Zakaj so to izključili ne vem in se mi ni zdelo smiselno, zato sem iskal rešitev. Kot marsikdaj prej, tudi danes rešitve na internetu nisem našel.

Še bolj zanimivo se mi je zdelo, da nikjer v nastavitvah ni nobene opcije, s katero bi indeksiranje po oznakah omogočil. Tako kot včeraj, mi ni preostalo drugega, kot da se zakopljem v programsko kodo phpBB3 foruma, kjer sem našel sledeče:

(datoteka fulltext_native.php, vrstica 1044)

// Do not index code
$match[] = '#\[code(?:=.*?)?(\:?[0-9a-z]{5,})\].*?\[\/code(\:?[0-9a-z]{5,})\]#is';

Omenjeno vrstico sem zakomentiral, ponovno ustvaril iskalni indeks in naš forum išče tudi po programski kodi. 🙂

Problem: phpbb3 doesn't search in tags

Here is an easy solution in English, for international web surfers and web masters. The problem is, that phpBB3 forum doesn’t search inside tags, which is unacceptable for programming oriented forums. The solution is quite simple, but you have to edit phpBB3 source code.

Just open fulltext_native.php file (./includes/search/ fulltext_native.php) and comment out one single line of code in line #1044:

// $match[] = '#\[code(?:=.*?)?(\:?[0-9a-z]{5,})\].*?\[\/code(\:?[0-9a-z]{5,})\]#is';

After that you will have to recreate a search index and that is all. Your phpBB3 forum will search inside tags. 🙂

phpBB3 in slovenščina

Danes sem se ubadal s problemom, na katerega je zagotovo naletel marsikateri spletni mojster, a nihče ni napisal recepta za rešitev. Ker mi je stvar vzela veliko časa jo bom opisal in se siceršnji tematiki (MS Pisarna 2010) vrnil naslednjič.

Problem se je pojavil pri lokalizaciji phpBB3 foruma. Bralci Matjazev.NET-a veste, da sem te dni nadgradil forum in da sem prešel na verzijo phpBB3. Dobro, to je znano okolje in uporabniki so se potrudili, ter ga poslovenili. Vzel sem torej slovensko lokalizacijo in uredil vse potrebno.

Danes pa sem odgovarjal ne enega izmed vprašanj, ter naletel na problem, da nisem našel gumba za citiranje. Malo čudno, da bi tako pomembna akcija preprosto izginila iz foruma… Po iskanju na spletu sem našel nekaj tematik, ki so opisovale izgubo omenjene funkcionalnosti ob lokalizaciji foruma. Ok, kriva je torej naša lokalizacija.

Iskal sem še dalje in našel rešitev. V mapi /styles/prosilver/imageset manjka mapa s slovenskimi gumbi. Ok, rekel sem si, da bom gumbe pač pripravil, ko bom imel čas, a kmalu sem ugotovil, da je forum poln napak, saj ob vsakem dostopu zapiše napako, da mu manjkajo gumbi.

Ker napak in opozoril ne maram, sem situacijo rešil preprosto tako, da sem v omenjeno mapo prekopiral angleške gumbe in stvar je delovala BP, napak ni bilo več, v forumu pa so se pojavili gumbi za citiranje, urejanje… A kaj, ko niso bili v pravem jeziku 🙁.

Gre za 10 gumbov in odločim se, da jih bom poslovenil. S pomočjo Paint.NET programa sem stvar dokaj hitro uredil in imel sem slovenske gumbe, ki pa so bili malce večji od originalov. Nekatere gumbe sem namreč moral povečati zato, ker imamo Slovenci daljše besede, kot Angleži.

In tu se začne moja današnja kalvarija, ki mi je vzela kakšne tri ure časa in upam, da bo ta zapis pripomogel k temu, da ga ne bo po nepotrebnem izgubljal še kdo drug.

Torej lepo po vrsti:

  1. Ko sem na strežnik dal slovenske gumbe so bili slednji v forumu odrezani na širino originalov.
  2. Prebrskal sem izvorno kodo strani in ugotovil, da je širina določena preko CSS-a.
  3. Najdem ustrezen CSS (/styles/prosilver/theme/buttons.css), a tam notri ni zapisana širina gumbov, temveč so zapisane konstante.
  4. Po vsej izvorni kodi iščem definicijo omenjenih konstant, a jih ne najdem – konstante preprosto niso nikjer definirane???
  5. Iščem malo naokoli in najdem datoteko (/styles/prosilver/imageset/sl/imageset.cfg), torej neko nastavitveno datoteko, ki sem jo prekopiral iz angleške verzije. Super!
  6. V omenjeni datoteki so zapisane širine gumbov, jih popravim, a gumbi na forumu so še vedno odrezani.
  7. Da se ne ubadam predlogo, popravim iste stvari še v originalni, torej angleški, različici. Toda brez uspeha! Gumbi so še vedno odrezani.
  8. Ker je forum tako ali tako moj, si mislim, da ne potrebujem nobenih konstant, temveč bom popravil direktno CSS datoteko in stvar mora delovati. Popravim torej datoteko /styles/prosilver/theme/buttons.css. Hm, gumbi so še vedno odrezani.
  9. Preverim, kaj mi vrača strežnik. Strežnik vztrajno vrača napačne širine gumbov!
  10. V tem trenutku pa mi ni bilo nič več jasno. Obsodil sem predpomnilnik in si lagal, da strežnik vrača predpomnjeno CSS datoteko. Pobrišem vse predpomnilnike na katere sem se spomnil a brez uspeha.
  11. Poskusim direktno zahtevati CSS datoteko in dobim pravo datoteko. Poskusim isto preko foruma in dobim napačno.
  12. Torej ni mi preostalo drugega, kot da pogledam izvorno kodo foruma… in tam sem našel, packa… Širine bere iz baze.
  13. Popravim bazo in vse je OK.

Problem je torej v tem, da phpBB samo prvič prebere CFG datoteko in si podatke zapiše v tabelo styles_imageset_data, potem dalje jih vedno bere od tam.

Če želite omenjene gumbe, mi pošljite e-pošto in vam jih bom poslal!

No, ko smo ravno pri lokalizaciji. Tudi z blogom, ki ga pravkar berete ni šlo vse tako kot bi moralo, saj ravno primarna tema ni lokalizirana :)! … A o tem kdaj drugič.