Ismerkedés a YII-vel
Ugyan több éve sajnos csak hobby szinten Zend Frameworkkel foglalkozom, munkahelyemen ezt alkalmazni azonban nem tudom. A napokban eljutottam a php-developer.org weboldalra, ahol egy összeállítást láttam a legfelkapottabb 7 PHP keretrendszerről itt pillantottam meg először a YII PHP Frameworkot. A neve és a hirtelen felfelé ívelő grafikon ábra miatt felkeltette az érdeklődésem. Megnéztem az első 2 bemutató videót róla, és letöltöttem magamnak a keretrendszert. Első ránézésre szimpatikusnak tűnik.
A Zend Framework-kel az a bajom, hogy a weboldalon a rengeteg leíráson és a quickstart-on kívül szinte semmi elindulási alapot nem, ad csak az objektumok hatalmas sokaságát és annak leírását, aminek megismerése több évbe telik. A keretrendszer sok olyan íratlan és írott szabályt tartalmaz ami miatt elég nehéz megismerni.
Nos letöltöttem a YII-t, a ki letöltött csomagban máris 4 egyszerűbb alkalmazás található a Hello World-től a PHP SOAP technikára épülő telefonkönyv ami ADOBE FLEX 3.0. vál működik. Nem tudom mit szedtem le, de ha időm engedi kicsit jobban beletúrom magam, mivel érdekel. Akit érdekel a YII PHP keretrendszer az a weboldalán tovább ismerkedhet vele.
Zend Framework – Zend_Db_Table_Abstract objektum használata röviden – II.rész
A korábbi részben a Zend_Db_Table_Abstract objektumból örököltettünk egy Model_DbTable_Mynotes saját objektumot, tulajdonképpen minden adatbázis tábla lehet a Zend_Db_Table_Abstract egy példánya. Megmutattuk, hogy lehet elérni egy elemet id alapján. Most megmutatjuk, hogyan lehet könnyedén elvégezni egy insert, update, delete sql utasítást.
SQL INSERT – Zend_Db_Table_Abstract segítsével:
public function addNote($note)
{
$data = array(
‘note’ => $note
);
$this->insert($data);
} Tovább…
Zend Framework – Zend_Db_Table_Abstract objektum használata röviden – I.rész
Egyetemi tanulmányaim nagy részében, tulajdonképpen segítség nélkül, mint utólag kiderült egy bonyolult, robosztus, erős megkötésekkel működő PHP5-ös keretrendszerrel ismerkedtem meg. Egyetemi éveim alatt született a korábban itt elhelyezett, majd a http://newsoft.hu weboldalra átkerülő Zend Framework – Céges Demo Portálos kis irományom is, segítve a keretrendszer megértését. Egyetemi éveimnek már vége, főállásba webfejlesztőként dolgozom, sajnos nem Zend vonalon, így a keretrendszerrel szabadidőmben ismerkedem tovább. Ebben a leckében szeretném bemutatni, a Zend szerintem egyik legfontosabb Objektumának használatát.
A Zend_Db_Table_Abstract objektum segítségével, mint ahogy azt a neve is sejteti, adatbázis műveleteket lehet könnyedén elvégeztetni. Jelenleg 4 ilyen egyszerűbb műveletre gondoljunk: SELECT, INSERT, UPDATE, DELETE. Tovább…
Ha weboldalunkon több blokk található, különböző tartalmakkal, hogyan tudjuk megosztani Facebookon, IWIWen
Ez a bejegyzés azért született, mert a facebook elmondja, hogyan kell felkészíteni az oldalad a tartalom megosztására, az iwiw ugyancsak leírja ezt a példát. Remek, ez akkor jó, ha minden megosztandó tartalmadnak létezik egy egyedi saját nézete, ahol a paramétereket be tudod lőni, de mi van ha erre nincs lehetőséged valamilyen okból kifolyólag.
Facebook megosztás másképp:
Amikor Facebookon osztunk meg valamit, akkor tulajdonképpen a www.facebook.com/sharer/sharer.php URL-t hívjuk meg különféle paraméterekkel. Jelen példában PHP kódot használunk:
$sharetitle = urlencode('Megosztás címe');
$shareurl = urlencode('Megosztás URL elérési utvonala');
$shareimgurl = urlencode('Megosztáskor megjelenő kép elérési útvonala (teljes)');
$sharesummary = urlencode('Megosztáskor megjelenő rövid összefoglaló');
Nincs más dolgunk mint a fenti URL-t a szükséges paraméterekkel meghívnunk: Tovább…
Saját jquery függvényünk elkészítése és meghívása
Weboldal fejlesztés közben, szükségünk lehet egyedi magunk által fejlesztett akár paraméterrel is rendelkező jquery függvényre. Számtalan helyen le van írva, hogy ha egy click esemény történik akkor, hogyan lehet azt elkapni, és ekkor a kért módosításokat elvégezni, ez mind szép és jó, de ha egy weboldalt generálunk, ahol nem tudjuk előre hány elem és milyen id-vel class-al fog szerepelni, és ezt előre meghatározni nehéz szinte lehetetlen, ekkor én paraméterrel rendelkező függvényt szoktam meghívni ami elvégzi azokat a módosításokat ellenőrzéseket amik szükségesek.
Hogyan néz ki egy paraméterrel rendelkező saját magunk által írt jquery függvény?
Az alábbi példa válasz a fenti kérdésre :
jQuery.fn.fShowElement = function(cid){
if($("#elementid_"+String(cid)).is(':hidden')){
var i = 0;
while($("#elementid_"+String(++i)).length > 0){
$("#elementid_"+String(i)).hide();
}
$("#elementid_"+String(cid)).show();
}
};
A fenti kód annyit csinál, hogy végigfut az oldalon és a #elemntid_1-től amíg létezik az összes ilyen div css display tulajdonságát none-ra állatja majd, a paraméterben kapottat megjeleníti.
Most már van egy függvényünk, ami csinál is valamit, nah de mikor hívjuk meg? Mi azt szeretnénk, hogy ha ez a paraméterrel rendelkező függvény egy bizonyos div-en történő kattintáskor hívódjon meg. Egy bizonyos ez kicsit téves megfogalmazás, ugyanis sejtésünk sincs arra vonatkozóan, hogy a jövőben mindig csak a 3. elem esetén fusson le a függvényünk. Viszont azt tudjuk az oldal generáláskor, hogy ha erre a div-re kattint akkor függvényünket milyen paraméterrel kell meghívni. Így az elemnek definiáljuk az onclick eseményét és hogy mit kell meghívni, ezt a HTML tag onlick eseményében az alábbi módon tehetjük:
onclick="$(this).fShowElement(1);"
Ezzel, egy HTML tag onclick eseményénél megadtuk, hogy hogyan kell meghívni a saját paraméterrel rendelkező jquery-s függvényünket.
Egyszerűnek tűnik, én is azt gondoltam de több napomba került mire kisilabizáltam, hogyan is kell ezt megvalósítani, mivel szinte sehol sincs leírva ez a hasznos információ.
960 Grid System – tapasztalatok
Sokszor nagyon fontos, hogy egy weboldal grafikai terve és ennek megvalósíthatósága legyen gyors a rövid határidők miatt. Eme megfontolásból, valahogy gyorsítani akartuk a kivitelezést. Grafikus tervező ismerőseim ekkor ajánlották figyelmembe a 960.gc tervezési és kivitelezési lehetőséget. Weboldalak sablonszerű felépítését, tulajdonképpen template építését segíti, ez a tervezési és megvalósítási lehetőség. Titka annyiból áll, hogy a weboldal tartalmi, képi elemeit valamilyen táblázatos(oszlopos) elrendezés szerint alakíthatjuk ki.
A weboldal kiegészítőkkel látja el a grafikai programok szinte mindegyikét, hogy már a tervezéskor illeszkedjen az elkészítendő weboldal az oszlopokra, tulajdonképpen ez a legfontosabb eleme a 960 Grid System használatának. Eme kiegészítő segítségével grafikus már könnyedén tud olyan weboldal grafikát építeni ami illeszkedik az oszlopokra.
Az oldal lehetőséget biztosít az egyedi grafika által megadott szélesség és a tervezéskor figyelembe vett oszlopszám alapján legenerálni a sitebuilder számára egy css-fájlt, aminek használatával, a weboldal felépítése is gyorsabbá válik.
Én a napokban próbáltam elkészíteni az első ilyen weboldalt. Hát mint mindennek, ennek a technikának is vannak hátrányai. Ha a grafikus szereti a blokkokat függőleges vonalakkal elválasztani, akkor ez a technika szinte használhatatlan, ugyanis ebben az esetben elveszik minden előnye.
Nézzünk egy példát:
Vegyünk: 70px oszlopszélességet
10px eltartást az oszlopon belül, így a weboldal bal jobb oldalán 10px eltartás lesz míg az oszlopok között tehát a belső részeken 20px.
Számoljunk 12 oszloppal.
A technika előnye abban rejlik, hogy a blokkoknak valamilyen háttérszínt adhatunk meg, így különülnek el egymástól könnyedén. Az eltartás az oszlopok között margin css tulajdonsággal adják meg, ennek hátránya, hogy ez a háttérképekre színekre, vonalakra tartalomra, egyszóval mindenre hatással van. Van két css osztály “alpha, omega”, előbbi az oszlop előtti eltartást redukálja 0-ra míg az utóbbi az oszlop utánit. Gondolnánk hoho nincs akkor probléma, de van hiszen az oszlopok szélességei fixek, így az alpha omega css osztály div-hez rendeléssel tulajdonképpen, az eltartást vettük 0-ra de ettől még az oszlop szélessége nem nő meg 10- 10 pixellel. A border tulajdonságnak egy hátránya van, hogy számít a szélessége, így ha két ilyen grid systemes blokkot vonallal szeretnénk elválasztani, ott vagyunk ahol a part szakad, jöhet a fejszámolás a pixelek tologatása és a weboldal kivitelezése is lassul.
Egy szó mint száz, 960 Grid Systemmel csak akkor érdemes weboldalt, vagy weboldal templatet tervezni, ha egy egyszerű a tartalmi blokkokat egymástól nem vonallal elválasztó weboldalt szeretnénk megvalósítani, ugyanis ilyen esetekben a weboldal elkészítése nem gyorsul sőt inkább lassul mert időközben felül kell írni a Grid System által beállított szélességeket.
Minden más esetben optimális lehet használata, főleg ha a megszerkesztett grafika is illeszkedik hozzá. Ha van 12 oszlopunk akkor az egymás után következő 3 divnek a grid_4 css osztályt állítjuk be akkor az nem más mint egymás mellett 3 oszlop 20-20 pixel eltartással és 310px tartalmi szélességgel. A weboldal jobb és bal oldalától pedig 10-10 pixel eltartás.
Nyári frissítő a melegben – Bodzaszörp+Menta+Lime
1 liter frissítő elkészítéséhez, végy kb
0,5 dl bodza szörpöt,
10-12 menta levelet,
fél citromot vagy lime-ot.
A menta leveleket tedd egy pohárba, és önts rá fél dl szénsavas ásványvizet, aminek a legkevésbé van mellékíze ajánlatos azzal dolgozni, törd benne meg a leveleket. Ha ezzel megvagy, fogj egy 1 literes kancsót. Ízlés szerint tölts bele bodza szörpöt, facsard bele a fél citrom vagy lime levét, majd dobod bele a korábban már megmosott gyümölcsöt is. Öntsd hozzá a pohárkában található mentás ásványvíz keveréket, majd öntsd fel az egészet szénsavas ásványvízzel. Gratulálunk, elkészítetted a 2 órára elég folyadék mennyiségedet
Kb. 4 óráig ez így a hűtőben is eláll, ezen idő alatt érdemes ezt elfogyasztani.
PHP str_replace() finomsága
Ez a POST azért született, hogy tudjam mi a hiba akkor ha a PHP-s $valtozo = str_replace(‘/t/n’, ‘<br />’,$valtozo); Nem hajlandó működni, hogy miért nem megy azt nem tudom, nem volt időm utána járni, de már nem először fordult velem elő, a nagy sietségbe, hogy ez így nem működött. Gondoltam írok róla egy blog bejegyzést, hogy valahol meglegyen a megoldás
Valamiért a fenti sor csak így képes végrehajtani azt amit szeretnénk, ha így használjuk: $valtozo = str_replace(“/t/n”, “<br />”,$valtozo);
Google Plus és a +1 ezés
Mostanában egy Zend Framework alapú webshopon dolgozom és közben a jquery-vel ismerkedem, így nincs nagyon időm bejegyzéseket írni, apró kis blogomba. DE hála egy kedves ismerősömnek, sikerült beregisztrálnom magam a Google + rendszerébe.
Ami elmondható róla, hogy egyszerű, letisztult, néha már annyira egyszerű, hogy amit keresel kiböki a szemed, egyenlőre facebookhoz képest nem sok újdonságot találtam benne. Kb. ugyanazt tudja. Nem kell más hozzá mint egy google fiók, ezzel úgy gondolom az emberek nagy része már rendelkezik is. Van lehetőség androidos telefonra letölteni egy Google + alkalmazást is, ezt még nem volt időm kipróbálni.
Reméljük, megbízhatóbb lesz mint a Facebook jobban lehet rá építeni, és talán nem lesznek állandó nagy átalakítások benne. Jelenleg még csak meghívóval lehet bekerülni, de regisztrációkor azt az információt közölték velem, már nem sokáig lesz ez így. Természetesen még csak Béta verzióban, megy és van egy állandó hibabejelentő ablak is, de így legalább érezzük ez még nem a végeleges termék.
Hirdetések, játékok és egyéb kellemes alkalmazások így első ránézésre még nincsenek benne, viszont az már látszik, hogy a Google próbálja belerakni az összes szolgáltatását.
Van ez a +1-ezés, egyre több oldalon jelenik már meg az ikonja, remélem a Google nem bánja, ha megosztom veletek, hogy hol lehet ezt igényelni és mit kell csinálni ahhoz, hogy megjelenjen a weboldalunkon ez a lehetőség, íme a link, ahol eltudjátok olvasni, mire való és hogyan működik.
Egy új keretrendszer megismerése – CodeIgniter – kezdetek
Mint minden, ez is nyögve nyelősen indul… Ellátogattam a CodeIgniter hivatalos weboldalára, letöltöttem a csomagot, kibontottam WAMP szerverem egy könyvtárába és megtallóztam a gyökér könyvtárat. Nagy meglepetésemre, bejött egy kezdő képernyő. Ez meglepett, Zend Framework-os tapasztalatom eddig az volt, hogy kapok egy nagy adag könyvtárat benne apró pici sok kis fájlal, itt azonban egy ablak fogadott már, ami leírt pár alapvető információt. Gyorsan meg is találtam a helpet. Jó sok szöveg, izgatottságomban gyorsan szeretnék valami példát látni, hogyan is kell ezt a keretrendszert használni, annyira kötött-e mint a Zend gondolok itt könyvtár, fájl, osztály elnevezésekre, könyvtárstruktúra felépítésre… és még sorolhatnám. Hát visszakukkantottam az hivatalos oldalra, megláttam Tutorial ez kell nekem, nézz és láss majd alkoss gondoltam, de ehhez egy plugin kell quicktime player, ezzel a programmal nem voltak jó tapasztalataim korábban, és most le kellett töltenem…a 34-Mb-ás telepítőt kicsit nagynak találom, de mindegy a szükség nagy úr…Itt tartok most