Mykee fejlesztési naplója
Szerző
Üzenet
Mykee írta:
Viszont valami összefüggés lehet ezek között, mert volt, hogy csak hozzáadtam a usert (a services.yml fájlban is), erre egyszerűen megállt az egész, hibára futott.
Mykee írta:
- az új tábla azért lett hozzáadva, mert az eredeti modban is önálló táblába kerültek a névnapok. Azért követtem a régi utat, hogy a kompatibilitás is megmaradjon, tehát akinek már van ilyen táblája, az megtarthassa, könnyebb legyen a frissítés 3.0.x-ről.
2. Semmi köze nincs a frissítéshez illetve a kompatibilitáshoz, egyszerűen hozzáadtál volna egy tábla eldobást azt kész
3. Képzeld el, ha minden kiterjesztés saját táblát hozna létre, feltelepítek 300 kiterjesztést és kreál nekem 300 új lehívást kicsit gáz.
4. Az az egy tábla nem teszi lehetővé, hogy akár több nyelvet felvegyünk.
Én úgy vélem még mindig a legjobb megoldás itt a nyelvi fájl használata.
ui: Ne azt nézd, hogy úgy is csak magyarok fogják ezt a kiterjesztést használni, úgy állj hozzá hogy minden körülmény közt megállja a helyét.
Biztonság semmi más
Igazad van. Végülis dropolhatom a táblát, ezen tényleg nem múlik. Valójában pont a másik megoldásban hittem, hogy az a tiszta, ha az egy bővítmény saját táblákat használ. Viszont ha nyelvi fájl, akkor tömbbe kell konvertálni, és az alapján lekérni a napi dátumhoz tartozó napot. Viszont egy oldalbetöltésnél állandóan tömböt kérni nem ugyanakkora erőforrás, mintha a táblából kérném? (Vannak még fehér foltok a tudásomban).
A services.yml-ről: tényleg benne volt mindaz, amit átis adtam, mégsem ment. Egyszerűen beírtam pl. a helpert is a protected mode-ba, a construct argumentumba és a deklarációba, majd ezután a servicesbe, mégsem indult el. Háromszor ellenőriztem és semmi. Ha azt kivettem, akkor máris ment.De a userrel is ez volt, szóval ezért is gondolkodtam azon, hogy valamelyik összefügghet egy másikkal. Viszont végzek egy pucolást a napokban, és megnézem, hogy akkor mi történik, és legfeljebb kiadom 1.0.1-ként. A névnapost pedig újraírom úgy, hogy ne csak magyar sablonon jelenjen meg és persze nyelvi tömbből, ha az a jobb megoldás.
A services.yml-ről: tényleg benne volt mindaz, amit átis adtam, mégsem ment. Egyszerűen beírtam pl. a helpert is a protected mode-ba, a construct argumentumba és a deklarációba, majd ezután a servicesbe, mégsem indult el. Háromszor ellenőriztem és semmi. Ha azt kivettem, akkor máris ment.De a userrel is ez volt, szóval ezért is gondolkodtam azon, hogy valamelyik összefügghet egy másikkal. Viszont végzek egy pucolást a napokban, és megnézem, hogy akkor mi történik, és legfeljebb kiadom 1.0.1-ként. A névnapost pedig újraírom úgy, hogy ne csak magyar sablonon jelenjen meg és persze nyelvi tömbből, ha az a jobb megoldás.
Mykee írta:
Viszont egy oldalbetöltésnél állandóan tömböt kérni nem ugyanakkora erőforrás, mintha a táblából kérném? (Vannak még fehér foltok a tudásomban).
A phpBB alap gyorsítótára is fájlokba gyűjti az adatokat és ebből hozza vissza.
Amennyiben lekapcsolod a phpBB gyorsítótárat igen is észrevehető a különbség, a nagy kiterjedésű weboldalaknál ez akár több másodperccel is lassíthatja az oldal betöltésének idejét.
Tehát a szerver a fájlokból jelentősen gyorsabban dolgoznak mint adatbázisból, továbbá így nem növelem az adatbázis méretét.
Figyelembe kell azt is venni, hogy sokan használnak ingyenes tárhelyeket, és az igen is limitálja az adatbázisok méretét, de még számos hátrányt tudnék írni miért is felesleges ennél a kiterjesztésnél az adatbázis használat.
Na most van időm átnézem tüzetesen a kiterjesztéseid
Értem, akkor a Névnapot átdolgozom majd tömbös verzióba. Egy csavar lesz benne, a szökőnap, amit majd megpróbálok megfelelő módon átültetni, bár ha azt nézem, az a rész maradhat benne, max a forrást kell módosítani, a feldolgozót már kevésbé Köszönöm, hogy átnézed az extensionjeim!
Mykee írta:
Értem, akkor a Névnapot átdolgozom majd tömbös verzióba.
Beírom a következő értékeket példaként:
Idézet:
(1, 1, 'Fruzsina, Bazil'),
(1, 2, 'Ábel, Alpár'),
(1, 3, 'Genovéva, Benjámin, Dzsenifer'),
(1, 4, 'Titusz, Leona'),
(1, 5, 'Simon'),
(1, 6, 'Boldizsár'),
Kód:
$lang = array_merge($lang, array(
'MYKEE_NN_12' => array(
0 => 'Ábel',
1 => 'Alpár'
),
'MYKEE_NN_13' => array(
0 => 'Genovéva',
1 => 'Benjámin',
2 => 'Dzsenifer'
),
'MYKEE_NN_14' => array(
0 => 'Titusz',
1 => 'Leona'
),
'MYKEE_NN_15' => array(
0 => 'Simon'
),
'MYKEE_NN_16' => array(
0 => 'Boldizsár'
),
));
Vedd figyelembe, hogy a névnap generálásnál a nyelvi érték használhat további új értékeket!
Köszönöm a mintát, viszont a könnyebb névnapbeillesztés miatt először arra gondoltam, hogy első tömbként a hónapot, második dimenziónak a napot tenném bele, a névnapokat pedig egyszerű szövegként, nem több dimenzióra bontva (már ha így engedi a nyelvi állományban), pl.
De így belegondolva igazad lehet az összevont tömbbel, tehát a kétjegyű megoldással. Hmmm... Tehát erre gondoltam, így talán az egyszerűbb:
No majd kiderül, mert a szökőnap a sarkalatos pont, ahol másképp kell megoldani a napokat, tolva lesznek.
Az utolsó mondatod viszont sajnos nem értem. Milyen további értéke lenne egy nyelvi értéknek?
Kód:
$lang = array_merge($lang, array(
'mykeenn_1' => array (
1 => 'Fruzsina, Bazil',
2 => 'Ábel, Alpár',
3 => 'Genovéva, Benjámin, Dzsenifer',
4 => 'Titusz, Leona',
5 => 'Simon',
6 => 'Boldizsár'
),
),
));
De így belegondolva igazad lehet az összevont tömbbel, tehát a kétjegyű megoldással. Hmmm... Tehát erre gondoltam, így talán az egyszerűbb:
Kód:
$lang = array_merge($lang, array(
'MYKEE_NN_11' => 'Fruzsina, Bazil',
'MYKEE_NN_12' = 'Ábel, Alpár',
'MYKEE_NN_13' => 'Genovéva, Benjámin, Dzsenifer',
'MYKEE_NN_14' =>'Titusz, Leona',
'MYKEE_NN_15' => 'Simon',
'MYKEE_NN_16' => 'Boldizsár',
));
No majd kiderül, mert a szökőnap a sarkalatos pont, ahol másképp kell megoldani a napokat, tolva lesznek.
Az utolsó mondatod viszont sajnos nem értem. Milyen további értéke lenne egy nyelvi értéknek?
Azért írtam al-tömbe a neveket, hogy ha valaki játszani akar a formázással akkor lehetséges legyen, mivel már több oldalon láttam, hogy a különálló neveket más színnel emelték ki.
Ha úgy gondolod, hogy számodra bonyolult a tömb kezelése akkor használd azt amit másodjára írtál be.
Megjegyzés: A nyelvi kulcs mindig nagybetű
A szökőévnek a nyelvi fájlhoz nincs köze az csupán a php-hoz, de szerintem erre van funkció a phpBB-be ha minden igaz.
Az utolsó megjegyzésem amit nem értettél az az hogy pl
Ha ez egyszer módosul erre
akkor a kispistát is kitudja jelezni amúgy a tömb lekezelése egyszerű
elsőnek megnézed, hogy mennyi sorból áll és ez alapján tekered le for ciklussal.
pl:
A hónap és a nap szintén nem nagy cucc a nyelvi kulcsot úgy adod meg pl:
módosul erre például
Ha úgy gondolod, hogy számodra bonyolult a tömb kezelése akkor használd azt amit másodjára írtál be.
Megjegyzés: A nyelvi kulcs mindig nagybetű
A szökőévnek a nyelvi fájlhoz nincs köze az csupán a php-hoz, de szerintem erre van funkció a phpBB-be ha minden igaz.
Az utolsó megjegyzésem amit nem értettél az az hogy pl
Kód:
'MYKEE_NN_15' => array(
0 => 'Simon'
),
Ha ez egyszer módosul erre
Kód:
'MYKEE_NN_15' => array(
0 => 'Simon',
1 => 'kispista'
),
akkor a kispistát is kitudja jelezni amúgy a tömb lekezelése egyszerű
elsőnek megnézed, hogy mennyi sorból áll és ez alapján tekered le for ciklussal.
pl:
Kód:
$kiiras = '';
$nevek = count($user->lang['MYKEE_NN_15']);
for ($i=0; $i<$nevek;$i++)
{
$kiirás .= (($kiiras == '') ? '' : ', ') . $user->lang['MYKEE_NN_15'][$i];
}
A hónap és a nap szintén nem nagy cucc a nyelvi kulcsot úgy adod meg pl:
Kód:
$user->lang['MYKEE_NN_15']
módosul erre például
Kód:
$user->lang["MYKEE_NN_{$honap}{$nap}"]
Köszönöm ismét! A Disqus kódját átrágva ezen is próbálok majd egyszerűsíteni, illetve átírni. Aztán kiteszem a következőt előbb ide, mint a véglegesbe. De a Disqus kódodon sokat tanultam.
Mykee írta:
Köszönöm ismét! A Disqus kódját átrágva ezen is próbálok majd egyszerűsíteni, illetve átírni. Aztán kiteszem a következőt előbb ide, mint a véglegesbe. De a Disqus kódodon sokat tanultam.
Ha fejlődsz az csak jó
Mindjárt megvagyok a Disqus-szal, ide kiteszem a linket és ha azt mondod, oké, akkor kerül ki a topikjába. Igazából a módosításaidhoz nem nyúltam, de amit beszéltünk, azt kiegészítettem.
Hmmm.. közben egy izgalmasabb dologba ütköztem: ha alapból tiltom a pipát a felületen, akkor a felületváltás jQueryvel lett megoldva, szóval még ezt is le kell kezelnem. No egy kör és megvagyok, már ha a jQueryt meg tudom címezni a kód közepén, mert az Includejs szerintem nem illeszthető be eventbe... Legalábbis próbáltam egy másik extensionnél, de akkor ott hibát dobott.
Hmmm.. közben egy izgalmasabb dologba ütköztem: ha alapból tiltom a pipát a felületen, akkor a felületváltás jQueryvel lett megoldva, szóval még ezt is le kell kezelnem. No egy kör és megvagyok, már ha a jQueryt meg tudom címezni a kód közepén, mert az Includejs szerintem nem illeszthető be eventbe... Legalábbis próbáltam egy másik extensionnél, de akkor ott hibát dobott.
No kitettem ide az 1.0.1 verziót, kissé több leírással, plusz az admin oldalon a pipa elrejtésével, ha épp nem fórum van kiválasztva, illetve az adatbázis sem települ már úgy, hogy a kategóriáknál és linkeknél bekapcsolva legyen. Plusz verzióellenőrzés.
Mykee írta:
No kitettem ide az 1.0.1 verziót, kissé több leírással, plusz az admin oldalon a pipa elrejtésével, ha épp nem fórum van kiválasztva, illetve az adatbázis sem települ már úgy, hogy a kategóriáknál és linkeknél bekapcsolva legyen. Plusz verzióellenőrzés.
Viszont így is találtam egy hibát
Kód:
$sql = "UPDATE ".$this->table_prefix."forums SET disqus_enable = 1 WHERE forum_type = 1";
$this->db->sql_query($sql);
cseréld le erre
Kód:
$sql = 'UPDATE ' . $this->table_prefix . 'forums
SET disqus_enable = 1
WHERE forum_type = ' . FORUM_POST;
$this->db->sql_query($sql);
Köszönöm, javítottam és kitettem újra Pl. ilyen dolog az, ami még fehér folt, hogy ne az 1-es típust hívjam be, hanem a rendszerváltozót...
Viszont a névnapos is elvileg működik, de a migration cuccal nem jutok zöldágra. Készítettem egy nevnap_1_0_1.php állományt, aminek ez a tartalma:
Viszont nem akarja törölni a névnapos táblát, pedig a schema részt használom, nem a datát. Másrészt a revert_schema funkcióra már ne lesz szükségem, hiszen az 1.0.1 után nem használok táblát, tehát nekem elég, ha telepítéskor törli, ha van ilyen tábla. Vagy írjak rá külön függvényt?
Előre jelzem: végül maradtam az egyszerűbb tömbös megoldásnál, nem dimenzionáltam ketté. Egyrészt mert egy napon lévő neveket valahogy nem látom értelme agyonszínezni, mert lassan betűnként is megtehetné Másrészt a szökőévet Marcee nagyon jól megoldotta és egyszerűen, a feltételben ezt is vizsgálja. Viszont gondoltam a többnyelvűségre: ahol nincs névnap tömb a nyelvi fájlban, ott nem jelenik meg Feleslegesnek láttam az angol fájlt feltölteni magyar névnapokkal.
Mondjuk a korábbi beírásod alapján az effectively_installed() sem kell...
Próbálkozom ezzel a migrations fájllal, már úgy is, hogy letöröltem az 1.0.0-ást és kivettem a rá utaló sort, de semmi. update_data és update_schema sem segített, pedig úgy szeretném telepíteni a cuccot, hogy az Adatok törlésére ne kelljen kattintani (tehát amikor inaktív a mod), hiszen ha addon adatokat kell betenni, akkor (a régi adatok megtartásával) hogyan lehetne feltenni? Szóval nem fut rá a cucc a táblatörlésre...
Viszont a névnapos is elvileg működik, de a migration cuccal nem jutok zöldágra. Készítettem egy nevnap_1_0_1.php állományt, aminek ez a tartalma:
Kód:
namespace mykee\nevnap\migrations;
class nevnap_1_0_1 extends \phpbb\db\migration\migration
{
public function effectively_installed()
{
return $this->db_tools->sql_table_exists($this->table_prefix . 'nevnapok');
}
static public function depends_on()
{
return array('\mykee\nevnap\migrations\nevnap_1_0_0');
}
public function update_schema()
{
return array(
'drop_tables' => array(
$this->table_prefix . 'nevnapok',
),
);
}
}
Viszont nem akarja törölni a névnapos táblát, pedig a schema részt használom, nem a datát. Másrészt a revert_schema funkcióra már ne lesz szükségem, hiszen az 1.0.1 után nem használok táblát, tehát nekem elég, ha telepítéskor törli, ha van ilyen tábla. Vagy írjak rá külön függvényt?
Előre jelzem: végül maradtam az egyszerűbb tömbös megoldásnál, nem dimenzionáltam ketté. Egyrészt mert egy napon lévő neveket valahogy nem látom értelme agyonszínezni, mert lassan betűnként is megtehetné Másrészt a szökőévet Marcee nagyon jól megoldotta és egyszerűen, a feltételben ezt is vizsgálja. Viszont gondoltam a többnyelvűségre: ahol nincs névnap tömb a nyelvi fájlban, ott nem jelenik meg Feleslegesnek láttam az angol fájlt feltölteni magyar névnapokkal.
Mondjuk a korábbi beírásod alapján az effectively_installed() sem kell...
Próbálkozom ezzel a migrations fájllal, már úgy is, hogy letöröltem az 1.0.0-ást és kivettem a rá utaló sort, de semmi. update_data és update_schema sem segített, pedig úgy szeretném telepíteni a cuccot, hogy az Adatok törlésére ne kelljen kattintani (tehát amikor inaktív a mod), hiszen ha addon adatokat kell betenni, akkor (a régi adatok megtartásával) hogyan lehetne feltenni? Szóval nem fut rá a cucc a táblatörlésre...
Tehát mivel ezt a MOD-ot valószínüleg többen is használhatják ezért amit kiadtál 1.0.0 kiterjesztést abban ez kell
az új verzió pl nevnap_1_0_1 telepítő fájljába meg ez
tehát meg kell adni az első telepítő fájl elérési útját utána felvenni mit is szeretnél
pl:
vagy már átírod az 1.0.0 verziót, hogy ott dobja el a táblát és nem adsz ki újabb verziót, hisz egy kiterjesztést igen egyszerű eltávolítani azt újra telepíteni, főleg egy ilyen kicsi kiterjesztésnél.
A döntés a te kezedben van
Kód:
public function effectively_installed()
{
return $this->db_tools->sql_table_exists($this->table_prefix . 'nevnapok');
}
static public function depends_on()
{
return array('\phpbb\db\migration\data\v310\extensions');
}
az új verzió pl nevnap_1_0_1 telepítő fájljába meg ez
Kód:
static public function depends_on()
{
return array('\mykee\nevnap\migrations\nevnap_1_0_0');
}
tehát meg kell adni az első telepítő fájl elérési útját utána felvenni mit is szeretnél
pl:
Kód:
public function update_schema()
{
return array(
'drop_tables' => array(
$this->table_prefix . 'nevnapok'
)
);
}
vagy már átírod az 1.0.0 verziót, hogy ott dobja el a táblát és nem adsz ki újabb verziót, hisz egy kiterjesztést igen egyszerű eltávolítani azt újra telepíteni, főleg egy ilyen kicsi kiterjesztésnél.
A döntés a te kezedben van
Végül maradtam az 1.0.1-nél, mert beletettem ebbe is a verzióellenőrzést és persze átírtam a belső részét. Viszont majd kiírom, hogy kell az adattörlés is a telepítés előtt, mert máskülönben ott marad a tábla, ha csak a fájl cserét végzi el valaki és úgy telepíti. Ilyenkor úgy látom, nem fut rá a migrations cuccokra a telepítő. Ez azért gubancos lehet, ha valakinél mondjuk egy ilyen tábladobás vagy csere lesz és újra állíthat be mindent...
Kitettem ide a Névnap 1.0.1-et, úgy láttam, hogy ezen talán már nem kell sokat optimalizálni.
Kitettem ide a Névnap 1.0.1-et, úgy láttam, hogy ezen talán már nem kell sokat optimalizálni.
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.
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.