Időzóna: (GMT +1 óra) RSS - hozzászólások

Mykee fejlesztési naplója

Szerző
Üzenet
Mykee
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2005.08.29. Hétfő 1:00
Hozzászólások: 814
Hozzászólás Elküldve: 2017.04.04. 07:46    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Jöhet az izgalmasabb rész! :D
Ugyanis egy olyan saját modot kell átírnom extension-né, ami nem egy, hanem két oldalból áll, ráadásul a két oldal hivatkozik egymásra, plusz az egyiket csak paraméterrel lehet meghívni.

Lássuk, hogy miképp fest a dolog:
- 1.php: van egy könyvtár jelenleg a root alatt, amiben három almappa van: egy a HTML, egy a CSS és egy a fájloknak. A HTML mappa arra van, hogy a beletett HTML-ek template-ként szolgálnak, ergo az admin pulton választhatok, épp melyik template-et akarom használni. Ezeknek vannak CSS-eik is, ez külön mappában van, ahogy az előbb írtam. A fájlok mappája azért kell, mert ha oda fel van töltve valami, abból az admin pulton válogathatok. A HTML template-ek tartalmaznak egy linket a 2.php-ra, amit egy ID-val hívnak meg.
- 2. php: tartalommegjelenítésre szolgál. Az 1.php által átadott ID azért kell, hogy az ez alatt lévő tartalmat tegye ki egy sablonba.

Persze van admin felület, ahol létrejön az ID, és a hozzá való tartalom:
- topikra hivatkozás
- fájlválasztó
- templateválasztó az 1.php-hoz
- plusz infók felvitele.


Ami izgalmas az egészben:
- hogyan hozok létre külön könyvtárat, hogy abból legyen template, és ezt ugye át kell adnomn a routernek
- gondoltam arra, hogy univerzális legyen, tehát az 1.php template-jének az admin felületen beírt név alatt legyen a route-ja.
- a legizgalmasabb: hogyan adok át paramétert az egyik oldalról a másikna, tehát az egyik route hogyan hív meg egy másikat paraméterrel? :roll:


Szóval kezdek izgulni, hogy jön ez össze. A MOD esetében igyekeztem a rendszerfájloktól függetlenül dolgozni, ergo: sima custom page-ként is újrahasznosíthatnám, de ugye extensionként jobb lenne :)
Bár tudom, hogy ez nem a stackoverflow, de ha bármi segítség jönne vagy tipp a fenti gondolatmenethez, szívesen veszem! :)

Felhasználó profiljának megtekintése Privát üzenet küldése
Mykee
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2005.08.29. Hétfő 1:00
Hozzászólások: 814
Hozzászólás Elküldve: 2017.04.07. 08:05    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Most tényleg kemény dologba futottam. Ugyanis működik az előbb leírt extension, tehát egy linkkel meghívok egy custom oldalt, amiről meg tudok hívni egy másikat. Pöccre működik.
Viszont hazavágta a többi extensiont! :shock: Pontosabban: azok template-jeit az enyémben keresi.
A poén az, hogy a listenerben és a route-ban is minden rendben az új extensionben és mégis összeakadt a többivel. :shock:
A listenerben négy olyan esemény van, ami hookol:
- core.user_setup - ez ugye a nyelvi betöltést végzi, ezzel nincs baj.
- core.page_header - itt csak egy link betöltése van a fejlécbe. Letiltottam, semmi változás.
- core.page_header_after- itt egy feltételt vizsgálok: van-e megfelelő paraméter vagy nincs? Ha van, akkor lefut egy funkció, különben nem. Ezzel nincs gond, mert megállítottam ott a kódot a feltételben, de nem fut rá, nem lehet ludas.
- core.viewonline_overwrite_location - ez a viewonline (ki van itt) oldalt buherálja, nem futok rá.

És ennyi. Tanácstalan vagyok, hogy a másik extension saját route-ja hogyan futhat rá egy másik extension route-jára? :roll:
Az új extensionben a saját funkciókat még priváttá is tettem, hogy ne kavarjon be, de nem fut rá a cucc...

Ami izgalmas: az app.php/help/faq simán bejön, viszont az app.php/skeleton már nem, vagy a másik extensionöm szintén nem (pl. app.php/topiclist).
Ez utóbbi esetben azt írja:
Unable to find template "skeleton" vagy Unable to find template "topiclist" a másik extensionöm sablonkönyvtárában keresve. De miééééééért? :shock:

Szóval vagy eltökölök ezzel megint, vagy aki ebbe belefutott, annak kérem a segítségét!

Update1: na ez gyanús... ugyanis a routing.yml-ben leget valami gond. Ugyanis ha fixre megadom neki a pathot, akkor máris megjavult a többi extension. Viszont ha változót használok (pl. {name}, ahogy azt a minta is mutatja, de előtag nélkül, szóval /demo/{name} helyett /{name}, akkor hazavágja a többieket. Ki érti ezt? :roll: Vagy ez azt jelentené, hogy nem tudok létrehozni /valami linket? :shock:

Mondjuk gondolkodnom is kellene, ezért némi elmélkedés következik:
- nem lehet valamilyen feltételt szabni, hogy ha nincs paraméter, akkor ne fusson rá az én controllereimre?
- Ha már ráfut, akkor controlleren belül vissza lehet irányítani?

Ugyanis azt csinálja ez a szépséges kód, hogy megnézi: /{name} és mivel a topiclist és a skeleton is első szintű, így behelyettesíti a változót és ráfut a controlleremre. Viszont a bővítményemnek pont az lenne a lényege, hogy egyedi útvonal is beállítható lenne, nem én adnám meg fixen. A user beállítja azt az admin pulton és onnantól az lesz a linkje. Tehát univerzális célokra használható a link. Viszont ha nem adhatok meg neki feltételt, a kő egye meg.
Olyan feltételre gondoltam, hogy átadok egy paramétert (pl. "id=zsemle" és ha ezt megtalálja a routing, akkor fut rá a controllerre). No ennek utánanézek.

Update2: kipróbáltam a Symphony condition funkcióját, ami pont jó lenne, hiszen ott lekérhetem a fejből a paramétert, de erre ezt kapom:
Unable to use expressions as the Symfony ExpressionLanguage component is not installed.

Hát, kezdem feladni, hogy egyedi útvonalam legyen. :(

Update3: maradt a bebetonozás. :( A routing.yml-ben mindenki olyan útvonalat ad meg, amit akar és a main_listenerben is akkor át kell írnia. Ennyi. Vicc, hogy nem tudok olyan feltételt adni, hogy ha van egy paraméter a GET-ben, akkor menjen a controllerre, különben nem. Mindenesetre a kódot nem töröltem, csak kommenteztem, hátha lesz egyszer valami megoldás...

Felhasználó profiljának megtekintése Privát üzenet küldése
Mykee
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2005.08.29. Hétfő 1:00
Hozzászólások: 814
Hozzászólás Elküldve: 2017.04.07. 13:13    Hozzászólás témája:
Hozzászólás az előzmény idézésével
No még egy extension megvan: a vendégeknek más nyitólap jelenjen meg, mint a belépett embereknek. :D Ezt a trükköt azért használtam, hogy rejtsem némileg a fórumot és feladjam a leckét a vizslató szemeknek, na meg főleg azért, hogy egy oldallal megoldjam a belépést és a saját weboldalt (nem kell külön nyitólap).

Most az URL rewrite-tal küzdök Xampp 7.1.1 alatt. Ugyanis ha bekapcsolom, akkor egyből route hibát dob minden extensionre, pl. a skeletonra:
No route found for "GET /phpbb3dev/skeleton"

Ez meg ugye állítólag Symphonyból jön, szóval izgalmas, mert megoldást nem találtam rá... :roll: Viszont URL rewrite nélkül meg hülyén néznek ki a webcímek, hogy /app.php/valami :roll:
Esetleg egy tipp? :)

Felhasználó profiljának megtekintése Privát üzenet küldése
Mykee
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2005.08.29. Hétfő 1:00
Hozzászólások: 814
Hozzászólás Elküldve: 2017.04.09. 19:32    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Amíg arra lesz válasz, hogy a xamppon miért nem megy az url rewrite, két másik kihívás elé nézek:
- az eredeti Blog mod átírása extensionre, amit ráadásul egy phpbb fejlesztő írt anno, de valami miatt extensionre már nem írta át. Viszont a felhasználóim vinnék tovább az írásaikat, szóval muszáj lesz megírni.
- egy olyan custom oldalt hoznék létre, amibe más extensionöket pakolnék a sablonba: chat, ki volt itt, legutóbbi aktív topikok listája. Vajon hogyan tudom megoldani azt, hogy ez az extensionöm meghívja a template-be a többiek cuccait? Érdekes lesz... :roll:

Felhasználó profiljának megtekintése Privát üzenet küldése
Mykee
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2005.08.29. Hétfő 1:00
Hozzászólások: 814
Hozzászólás Elküldve: 2017.04.10. 11:21    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Haladok az egyéni oldalammal, már rájöttem, hogy miként kell betenni másik extension cuccait a saját oldalamba. Az mChat és a Recent Topics már belekerült, viszont vicc, hogy a "Ki van itt" blokkot nem tudom beletenni a template-be! :shock: Elvileg a változók a functions.php-ban vannak, szóval meg kellene jelenjenek automatikusan, de nem látszik semmi.

Ezt a blokkot akartam betenni:

Kód:

<!-- IF S_DISPLAY_ONLINE_LIST -->
   <div class="stat-block online-list">
      <h3><!-- IF U_VIEWONLINE --><a href="{U_VIEWONLINE}">{L_WHO_IS_ONLINE}</a><!-- ELSE -->{L_WHO_IS_ONLINE}<!-- ENDIF --></h3>
      <p>{LOGGED_IN_USER_LIST}</p>
   </div>
<!-- ENDIF -->


Miért nem lehet egyéni oldalba is betenni a Ki van itt-et? :shock:

Update1: úgy néz ki, hogy a function.php-ből át kellett venni az egész blokkot, ami a Ki van itt-re vonatkozott + template változók és akkor máris oké. Ugyanezt eljátszottam a születésnaposokkal is. :)

Viszont ha egy ilyen bedrótozott oldal alól letiltom valamelyik kiegészítőt (pl. mChat vagy Recent Topics), az összes kiegészítő letiltásra kerül, mert közli, hogy olyan service-t akarok betölteni, ami nem létezik.
Nincs ebben a keretrendszerben olyan, hogy ha az adott service nem létezik, akkor figyelmen kívül hagyja? :roll:

Felhasználó profiljának megtekintése Privát üzenet küldése
Mykee
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2005.08.29. Hétfő 1:00
Hozzászólások: 814
Hozzászólás Elküldve: 2017.04.11. 09:32    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Többféle variációt kipróbáltam, de az istennek sem tudom megtenni azt, hogy kikerüljem a service-t. :( Próbáltam úgy, hogy nem írtam bele a yml fájlba a szolgáltatást, de amint a constructnál ott volt az útvonal, leakadt. Akkor próbáltam use módon betölteni, aztán a feltételnél megadni a classt és a funkciót, ott közölte, hogy vár egy paramétert.
Szóval sehogy sem tudom megkerülni a constructot úgy, hogy csak aktív extension esetében legyen betöltve az enyémbe, különben meg ne vegye figyelembe.
Próbáltam úgy is, hogy a template-be event hookot teszek és a másik extensionnél létrehozom a megadott template-et (mint egy overall_header), de hiába tolom oda, nem jelenik meg. :( Pedig még ez is egy jó mód lenne egy olyan oldal összerakásához, ami panelekből építkezik, mint az enyém (pl. egy nyitólap is akár).

A másik a szülinaposok és a Ki van itt lista: hiába teszem be, hogy include functions.php, a funkciót lefuttatom, de a template felé emiatt nem tudok kiszedni belőle semmit, mert nincs return. Maradt a megadott rész kimásolása.

Szóval lefutottam a köröket, de nem lettem előrébb.

Felhasználó profiljának megtekintése Privát üzenet küldése
Ragadozo
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2008.05.08. Csütörtök 18:26
Hozzászólások: 638
Hozzászólás Elküldve: 2017.04.11. 10:37    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Ahogy olvasom, miket írsz, egyre jobban igazolod, amit már az elején írtam, mikor megjelent. :(

Létre hoztak egy nagyon profinak mondható fórum motort, ami önmagában nagyon jó.
De ha szeretnél valami egyénit bele vinni, nagyon ott kell lenni a programozási témában.
Különben:
  1. Vagy vársz arra, hogy MAJD ESETLEG VÉLETLEN valaki készít egy ugyanolyan MOD-ot, amit éppen te szeretnél.
  2. Vagy felejtsed el, hogy bármit is változtassál az alap funkciókon. Feltelepíted, és használod úgy, ahogy kaptad, örökkön-örökké ....

Rohadtul nem felhasználóbarát fórum motor lett belőle! :(

Esetleg ezt nézd meg, hátha találsz benne valamit, ami esetleg segíthet ....

https://www.phpbb.com/customise/db/extension/top_stats/

Ez csak egy tipp, nem mélyedtem bele .... :)

Felhasználó profiljának megtekintése Privát üzenet küldése Email küldése Felhasználó weblapjának megtekintése
Mykee
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2005.08.29. Hétfő 1:00
Hozzászólások: 814
Hozzászólás Elküldve: 2017.04.11. 11:20    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Köszi a tippet!
Most a Who Is Where extensionnel szenvedek, ami ugye ajaxos. Ami izgalmas az egészben, hogy a régi MOD egy sima PHP-t hívott meg, ami legenerálta a tartalmat és csókolom. Na itt most route-okkal kell majd varázsolni, ajaxosat még nem készítettem, plusz az eredeti kódot átültetni a 3.2-re. Érdekes, no. Az mChat kódját túrom, mert az ugye hasonló elvre épül és az egyik legösszetettebb és profibb kód.

Különben át lehet látni egy idő után a dolgokat és tény, hogy több helyre kell beírni kódot, (pontosabban hivatkozásokat), de ez ugye a fórum védelme miatt van. Szerencsére a legtöbb helyen bele lehet nyúlni, ahol kell, és sikerült a fontosabb modjaimat átültetni extensionre. Persze ahogy fejlődöm, úgy nézem át a saját extensiönöket újra, hogy csiszoljam. :) Csak tény, hogy nem sima belenyúlás van, hanem namespace-eket kell kotorni.

Különben a legtöbb egyszerű mod könnyen átírható, mert a hookokat kell figyelni a régi mod leírása alapján. Tehát ha azokat beteszed a listener fájl megfelelő blokkjába, akkor végülis ugyanazt csinálod, mint anno a mod-nál. Az alapkód átírása már izgalmasabb, ezek minden esetben kihívások :D


Update1: lehet, hogy beletörik a bicskám ebbe a kiegészítőbe? Az eredeti MOD-ban három php állományt hívott meg az ajax, paraméterrel. A fő php fájlt már átraktam, de miután az "zárt", így hogyan hívom meg kívülről? :roll: Illetve lehet, hogy az ajaxhívást teljesen át kell hozzá dolgozni? :shock: (sima .load() függvénnyel hívja meg a jQuery most).
Amibe még belefutottam:
- készítettem egy template loopot, mert a html kódokat kigyepáltam a php-ból. Lehet, hogy ezt a loopos részt külön HTML-be kell tennem, majd azt újratöltetni és nem a php-t?
- ha külön teszem a HTML-t, annak akkor új route-ot kell készítsek? És ha azt a route-ot kintről meghívja valaki?
- hiába tettem bele a loop template változókat a fő php-ba, nem küldi át a sablonnak. Hogy adom meg, hogy melyik sablonnak küldje át? :roll:

Szóval kérdések tömkelege és sajnos nem igazán látok ebből még kiutat :(

Felhasználó profiljának megtekintése Privát üzenet küldése
Mykee
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2005.08.29. Hétfő 1:00
Hozzászólások: 814
Hozzászólás Elküldve: 2017.04.12. 19:29    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Puskáztam az ajaxos Ki van itt extensionből, mert ennek a Ki hol vannak is része ez a kiegészítés. Rendesen át kellett gyúrni, most tartok majdnem ott, ahol az eredeti mod volt. Bár az eredeti szerző is elvileg készíti a 3.2 verziót, de nincs kint link. Viszont nagyon sok HTML kódot írt a PHP részéb, amiket kigyomlálni, majd átalakítani HTML looppá, javascriptet szétdobni védett funkcióvá, stb...
És még most is azt csinálja a vacak, hogy hiába zárja be egy vendég a böngészőt, továbbra is ott marad a listában. Plusz az opciókat át kell vezetnem admin felületre is, úgyhogy lesz még mit kalapálni.
Plusz ha már optimalizálok, szerintem kigyomlálom a felesleget (geolocation és böngésző lekérés) és visszatérek a kezdetekhez: csak user és hol van. Mivel sűrűn frissül a html (20 másodperc alapból), nekem túl soknak tűnik, hogy állandóan lekérje ezeket. Oké, saját sütit is használ, de ezt még valahogy nem látom át. Úgyhogy inkább kigyepálom a Ki van itt részt is, ha már van rá más extension és a lite kiadás csak jobb lesz. De a fullos átírást is megtartom... :roll:

Felhasználó profiljának megtekintése Privát üzenet küldése
Mykee
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2005.08.29. Hétfő 1:00
Hozzászólások: 814
Hozzászólás Elküldve: 2017.04.13. 08:08    Hozzászólás témája:
Hozzászólás az előzmény idézésével
No most jön a hatpontos kérdés: oké, hogy a html-t újratöltöm, de az adatok benne nem fognak frissülni, mert a listenerben lévő php nem fut le. Szóval hogyan hívjak meg ajaxszal egy listenert, hogy újrafusson a benne lévő kód? :roll: Kemény dió nekem...

Felhasználó profiljának megtekintése Privát üzenet küldése
Mykee
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2005.08.29. Hétfő 1:00
Hozzászólások: 814
Hozzászólás Elküldve: 2017.04.14. 13:55    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Végül elkészültem ezzel is tegnap, de tuti kigyomlálom a sok felesleges funkciótól. Ugyanis ha már olyan sűrűn fut le a kód, akkor legyen minél kevesebb és gyorsabb, szóval kiszedem belőle a böngészőazonosítást, meg az ország/város azonosítást. Sőt, még talán az egyedi cookie kezelést is, de ezt kell néznem, hogy mit befolyásol.

Mint kiderült, a listener megkapta az adatokat, csak nem frissült a HTML-ben, ezért a sablonkódot át kellett némileg írni és akkor már jó lett. Illetve betettem, hogy ha nincs jogosultság vagy nincs ember, akkor ne frissítgessen annyit. Megírtam hozzá az admin felületet, plusz egy teszt IP-t is betettem, hogy a fullos verzióban a localhost helyett a normális IP-t ellenőrizze. Ez persze ki lesz szedve a Lite verzióból, ott felesleges lesz.
Plusz a sablont hagytam még az eredeti, táblázatos felépítésben, de reszponzívvá alakítom, illetve prosilverhez igazítom a Lite verzióban. A fullos már így marad, ahogy most van, bár CSS-be kellene kitennem a style-okat, de még meglátom.

Még megnézem, milyen extensionök vannak hátra, amiket használtam. A Blog Mod helyett más készített ugyan másikat, de azzal nem vagyok előre, ha nem tudom a régi beírásokat áthozni. De az tényleg nagy falat lenne. :roll: Sajnos az, aki elkezdte írni, nem tette elérhetővé a kódjait, szóval azt is nulláról kellene átírnom. :(

Szóval van még Post Crash protection, ami biztos, hogy kell (data mezőben tárolja a szöveget, időnként menti, hogy ne vesszen el), az előbbi blog (de ezen erősen gondolkodom), egy egyedi print preview, saját fejlesztésű kommentelés (egy plusz gomb, amit megnyomva egy adott csoportban új téma jön létre, címet kitöltve. Bár ezt már nem nagyon használják manapság), a nap kommentje (megadott csoport topikjaiból választ ki egy random bejegyzést a nyitólapra) és még ilyenekből válogathatok :)

Felhasználó profiljának megtekintése Privát üzenet küldése
Mykee
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2005.08.29. Hétfő 1:00
Hozzászólások: 814
Hozzászólás Elküldve: 2017.04.19. 15:11    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Na egy izgalmas dologba futottam... Ugyanis a Who Is Where bővítmény okán leesett, hogy ami a core.page_header_after eseménybe van letöltve az ugye minden oldalon lefut. Ez nem is lenne baj.
A gond ott van, hogy amikor a html-t frissíti a script, akkor ugye ez az esemény fut le. Viszont nem lenne jó, ha minden oldalon lefutna (pl. post vagy viewonline vagy viewtopic, stb.). Viszont ha lekérem a script nevét (SCRIPT_NAME) a template_contextből, hogy csak az indexen vagy xy oldalon fusson le, a html újratöltésekor nem fut rá.
Na mondom, rajtam nem fogsz ki, betettem feltételbe a scriptet is, de akkor meg nem futott le, pedig a script stimmel, hiszen a route útvonal került bele a feltételbe. Úgyhogy ez még megoldásra vár, hogyan fusson le úgy ez a head rész, hogy csak azokon az oldalakon tegye meg, ahol van is ilyen elem... :roll:
Lesz min agyalnom.

Update1:
Már ki is agyaltam :D
Ugyanis hiába hivatkozom a route-ra, az ugye nem a script nevét adja vissza. Ezért direktben kellett beírjam az app scriptútvonalát, pl. így:

Kód:

$rootref['SCRIPT_NAME'] == 'index' || $rootref['SCRIPT_NAME'] == 'app/whoiswhere/whoiswhere' || $rootref['SCRIPT_NAME'] == 'app/whoiswhere/who_is_online_total'

És ha még szeretném felvenni, akkor oda még pluszban a többi útvonalat. :D

Mondjuk egy másik extensionben mivel úgyis a szerver paramétereket kértem le, ott az index.php-t kértem le és nem a scriptet, csak itt ez gubancos lett volna, lévén az extensionöknél az app.php-t kaptam volna vissza, amivel nem vagyok kisegítve.

Már csak az a baj, hogy amikor frissíti a html-t a script, akkor elveszi a fókuszt az újratöltésig... Ezzel vajon mit lehetne tenni? :roll: Magyarul: nem a php-t hívja meg a háttérben, hanem egy html-t tölt mindig újra... :roll: Úgyhogy bár funkcionálisan működik, a gyakorlatban egy html reload megy állandóan, ami megzavarja a böngészést és a programhasználatot.

Update2: Nem értem ez utóbbi bekezdésem gyökerét. Ugyanis a load() egy ajax hívás, tehát elvileg a háttérben kellene meghívnia a html-t. Tehát elméletileg mégis jól csináltam:
- a html-t meghívom x időnként, aminek frissülnie kell.
- ez a meghívott html ráfut a fejléces listenerre, ahol lecsekkolom, hogy ugyanmár, jó url-ről jön-e a kérés?
- miután lecsekkoltam, ráfut a megadott funkcióra, ami frissíti a html-ben lévő paramétereket, tehát a html betöltésével friss adatokat kapok.

De akkor mi a francnak veszi el a fókuszt a Chrome? Tehát másik fülön pötyögök vagy másik alkalmazást használok a Windowsban és amikor frissít az ajax, akkor egyszerűen átadja a fókuszt a Chrome-nak, majd visszakapom. Ez a zavaró.

Tehát: hogyan menjen le a load hívás a html-re, hogy ne vegye át a fókuszt a böngésző? :roll: Tényleg érdekelne, mert ez az egy zavaró dolog maradt és nem akarom totálisan átírni az extensiont!

Update3: a megoldás mondhatni kézenfekvő volt :) Ugyanis a saját PHP-t kell meghívni, mint route (tehát a routing.yml-ben), ahová beteszem a végén a header, a body és a footer részt és így nem kell a controllerre sem mennem (mondhatni ez a php lesz a controller). Igaz, így a javascripten át kell betölteni elsőként a php-t (pedig az oldal inicializálásánál jó lenne lefuttatni, mégiscsak szebb, ezt még lehet, hogy megcsinálom a header betöltéssel) és kész. :) Nem töltöget az oldal nagyon, nincs fókuszelvétel és sorolhatnám. Szebb, jobb. :) Na majd megnézem még, mit csiszolhatok :)

Update4: végül megoldottam: az index headerbe tettem egy változót, amivel megmondom, hogy a blokk megjelenhet, és erre hivatkozva futtatom le oldalbetöltésnél a funkciót (az Update1-ben írt kód helyett, pl. $rootref['SHOW_WIW']). Így az oldal betöltésnél egyből megjelenik, nem kell a script load funkciójára várni először, utána meg frissül majd. :) Persze egy trükköt is alkalmazni kellett: ha a scriptből fut, akkor kell a header és footer, de a headerből meghívva nem. Ez is pipa. :) Még pár csiszolás és kész a fullos Who is where... Aztán jövő héten a kigyomlált verziónak esek neki. :)

Felhasználó profiljának megtekintése Privát üzenet küldése
Mykee
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2005.08.29. Hétfő 1:00
Hozzászólások: 814
Hozzászólás Elküldve: 2017.04.20. 13:59    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Na végül csak kiszenvedtem :D

Három dolgot kellett megoldani, ami nem volt benne az eredetiben:

- a képek betöltése akkor is, ha más oldalon jelenik meg a Ki hol van, nem csak a főoldalon. Egyszerűen a root path az istennek sem akart menni neki. :( Valahogy máshonnan számolta, ha aloldalon vagy főoldalon volt, ami azért volt gond, mert az extension mappáját kellett elérnem. Ha pedig a blokk frissült, akkor egyszerűen elveszett a root path, mintha sosem létezett volna. :shock:
Úgyhogy a constructorban meghívtam a functions.php-t és generáltam egy útvonalat a fórumnak, aztán azt betettem a hivatkozásokhoz, így abszolút útvonalat generálva. Tudom, jobb lett volna relatív útvonal, de a ciklus érdekes volt: első betöltésnél a headben megvolt, aztán a második head töltés már az ajaxos hívás volt, ott meg eltűnt. És sehogy sem tudtam megőrizni az utókornak.
Persze nem tudom, melyik a hatékonyabb: a functions.php-n át generálni vagy template_contextből lehívni a BOARD_URL-t, végül az előbbi mellett döntöttem.

- nem teljes a Ki hol van, ha nem figyelek arra, hogy többfüles böngészők vannak és azokról el lehet váltani. Ugyanis ha nyitottam egy második fület, akkor a legutóbbit írta be sessionbe, ami ugye nem igaz volt. Szóval kellett egy ajaxfigyelés arra, hogy átvált-e az aktív fülre? Ha igen, akkor a session_page értékét frissíteni kellett. Azt persze lekértem jqueryvel, mi az aktuális, mi a BOARD_URL, a kettőt kivontam és a maradékot meg beírtam. Ha meg üres, akkor index.php megy be és csókolom.

- tettem be hookot is, hogy ha valaki szeretné a maga extension oldalát is megjeleníteni benne, akkor az egyszerűen hozzáadhatja a saját extensionében a kódom buherálása nélkül. :)

Szóval most aztán már tényleg majdnem fullos lett, úgyhogy ideje lesz nekiállni gyomlálni jövő héten. Ennyi voltam a héten, remélem, nem bugzik többet. :)

Felhasználó profiljának megtekintése Privát üzenet küldése
Mykee
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2005.08.29. Hétfő 1:00
Hozzászólások: 814
Hozzászólás Elküldve: 2017.04.24. 08:53    Hozzászólás témája:
Hozzászólás az előzmény idézésével
No mivel indul a hét? :shock:
Nekikezdek egy új extensionnek, legenerálom a skeletonból ZIP-et, de azt meg nem tudom megnyitni. Közli, hogy sérült. Több helyre, több néven ugyanaz.
No mondom, legutóbb ez még ment, úgyhogy letiltottam a Ki merre van kiegészítőt. Újra generálom a ZIP-et és jó. :shock:

No akkor azt mondja meg nekem valaki, hogy az én extensionöm mit kavar be a skeleton ZIP generálásába? :roll: :shock:

A két fájl (jó és rossz) hexa összehasonlítás egy ponttal tér el mindössze. Mintha a fejléc generálásánál lenne gond. Úgyhogy ennek még utána kell néznem, mi a franc folyik itt?

Felhasználó profiljának megtekintése Privát üzenet küldése
Mykee
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2005.08.29. Hétfő 1:00
Hozzászólások: 814
Hozzászólás Elküldve: 2017.04.26. 09:31    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Elkészítettem a Ki van itt Reloaded verzióját: kipucoltam a geolocation és böngésző azonosító kódokat, meghagytam a név, hol van és mikor jött részt. A sablont átformáztam prosilverre, de adtam hozzá egyedi CSS-t, hogy aki akarja, buherálja, szóval ALL sablon alá tettem, hogy bárki átszabhassa.

A cucc pöpecül működik, viszont ami fura: ha ez van fent, az előbb említett ZIP generálás hibátlan. Ha a régi, teljes verzióval, akkor hibás lesz a ZIP. :shock: Nem tudok rájönni miért, mert a listenerben szinte ugyanazok a dolgok vannak mindkét extensionben, tehát elvileg nem kéne ráfutnia a ZIP generálásnál sehova. És mégis... :roll: Bár lehet, hogy hagyom ezt örök titoknak, vagy akit érdekel, annak megosztom az extensiont, de én a Reloaded kiadást viszem majd tovább. :)

Már csak a régi Blog MOD-ot kéne valahogy átírni, a többivel nem foglalkozom szerintem. Bár ez meg akkora, hogy ezzel sem hiszem. Eléggé kimerültem a programozásban az elmúlt hetekben. Így is még át kéne nézni a mostani tudásommal az eddig írtakat, de pihi lesz.

A következő bejegyzésemben viszont megosztok pár trükköt, amit a tapasztalataim szerint szedtem össze, aztán ha nem jó valami, javítsatok ki!

Felhasználó profiljának megtekintése Privát üzenet küldése
Hozzászólások megtekintése:  

Időzóna: (GMT +1 óra) RSS - hozzászólások
Nem készíthetsz új témákat ebben a fórumban.
Nem válaszolhatsz egy témára ebben a fórumban.
Nem módosíthatod a hozzászólásaidat a fórumban.
Nem törölheted a hozzászólásaidat a fórumban.
Nem szavazhatsz ebben fórumban.

Hirdetés
Hirdetés