ugrás a tartalomhoz

Archívum - Május 2011

május 9

CMS, Framework vagy saját fejlesztés?

ggabor · 2011. Május. 9. (H), 11.09
Már egy ideje aktuális lenne egy saját oldal létrehozása.
Az oldal egy olyan portál lenne, ahol alapvetően egy hatalmas katalógusból lehet rendelni felhasználók által feltöltött dolgokat (apróhirdetés+webshop. mint pl.: e-bay, vatera), de kiemelt fontosságú különböző témába vágó cikkek, hírek, események magazin szerű megjelenítése is, továbbá különböző közösségi funkciók is lennének, mint például az egyes termékek, vagy eladók/vevők értékelése, egyéb párbeszédek, illetve nyílt fórum további kérdésekről nyitott eszmecserékhez.

A feladat elméleti háttere már ki van dolgozva. Ide értve az adatbázis szerkezetet, a különböző funkciók működését, a fő- és almenüpontokat és egyéb működési kérdéseket. Elkészült továbbá a komplett template is, amely szinte minden oldal részletes megjelenítését tartalmazza.

A problémát jelenleg a php kód jelenti. Lassan két hónapja próbálom megtalálni az ideális megoldást, amely megfelelő sebességet és biztonságot jelent akár többezer látogató esetén is.

Próbáltam több framework-öt is (yii, symfony, codeigniter) de ezek számomra nem tűntek túl hatékonynak. A kódjukat nézve arra jutottam, hogy ezek a programozó dolgát tényleg egyszerűsítik, cserébe viszont rengeteg ponton lassítják az oldalt.

Gondoltam arra is, hogy valamely CMS-t érdemes lenne felhasználni. Megnéztem a drupal-t kicsit közelebbről és úgy tűnik ez sem nyújt szinte semmi olyat, amivel a feladatot könnyedén megoldhatnám. Ilyen-olyan modulokat kellene letölteni, majd továbbfejleszteni és rávenni bizonyos funkciókra. Akkor inkább már framework vagy saját fejlesztés.

A fentiek alapján nekiálltam egy saját fejlesztésnek. Ezen a ponton szinte csak az MVC/OOP megoldást preferálja mindenki. Nagyjából értem, hogy ez miért jó, de itt is azt gondolom, hogy sokkal inkább a fejlesztő dolgát könnyíti meg a teljesítémény rovására.

OO programozás lényege

stan · 2011. Május. 9. (H), 09.33
Kb. 2 éve programozok php-ben, és már elég jól ismerem a működését és szinte valamennyi lényeges alkotóelemével tisztában vagyok. Már az elejétől fogva egy saját készítésű CMS rendszeren dolgozom, felhasználva azokat a módszereket, amelyek általában javallottak ilyenkor. Most szeretném egy magasabb szintre emelni a tudásomat az OO programozás elsajátításával.

Már el is kezdtem olvasni egy erről szóló könyvet, meg több különböző oldalon is elkezdtem a kapcsolódó leckéket, de még mindig nem értek egy valamit. Jelenleg nagyon sok saját függvényt írtam, amelyek megkönnyítik a programozást. Eddig ezekkel a függvényekkel mindent meg tudtam oldani, amit csak kellett, beleértve olyan eseteket is, amikor egyes függvények egymást hívják meg több különböző módon, így is kevesebbet ismételve önmagam.

De egy valamit még mindig nem értek. Mi az, amiért az objektum orientált programozás a CMS rendszerek fejlesztésében többet tud nyújtani, mintha csak szimplán használom a saját függvény táramat? Mi az, amit a függvények használatával NEM lehet megcsinálni, az OO programozással pedig IGEN?

Lehet, hogy elég láma a kérdés, de még mindig nem tudom, hogy miért kellene ezt a programozási technikát használnom.
 

május 8

OOP Interface

Numcsi · 2011. Május. 8. (V), 19.00
Help pls. Átolvastam 2 könyvet, php manuált nézegettem, de ennek az interfacenek nem látom a lényegét. Ha valaki eltudná magyarázni, és példával illusztrálni, hogy hogyan megköszönném.

Nézegettem néhány példát. Íme:

<?php 
interface water 
{ 
    public function makeItWet(); 
} 

abstract class weather implements water                    
{ 
   private $cloudy; 
   public function makeItWet(){} 
   abstract public function start(); 
   abstract public function getCloudy(); 
   abstract public function setCloudy(); 
} 

class rain extends weather 
{ 
    private $cloudy;    
    public function start() 
    { 
        return "Here's some weather. "; 
    }    
    public function makeItWet() 
    { 
        return 'it is raining cats and dogs today.'; 
    }
    public function getCloudy() 
    { 
        return $this->cloudy; 
    } 
    public function setCloudy($bln=false) 
    { 
        $this->cloudy = $bln; 
    } 
} 

$a = new rain(); 
echo $a->start(); 
$a->setCloudy(true); 
if ($a->getCloudy()) { 
    echo 'It is a cloudy day and '; 
} 
echo $a->makeItWet(); 
?>
De ahogy néztem ez tökéletesen működik ígyis:

<?php 
class rain 
{ 
    private $cloudy;    
    public function start() 
    { 
        return "Here's some weather. "; 
    } 
    
    public function makeItWet() 
    { 
        return 'it is raining cats and dogs today.'; 
    } 
    public function getCloudy() 
    { 
        return $this->cloudy; 
    } 
    public function setCloudy($bln=false) 
    { 
        $this->cloudy = $bln; 
    } 
} 

$a = new rain(); 
echo $a->start(); 
$a->setCloudy(true); 
if ($a->getCloudy()) { 
    echo 'It is a cloudy day and '; 
} 
echo $a->makeItWet(); 
?>
 

Weblabor tagok GitHub accountjai

janoszen · 2011. Május. 8. (V), 15.37
Sziasztok!

Miután nemrég privát SVN szerverről váltottam GitHubra, felmerült bennem az ötlet, hogy kíváncsi lennék a WL tagok GitHub accountjaira, projektjeire. Tehát aki szeretné megosztani, dobja be a linket.

Kezdem a sort: https://github.com/janoszen
 

Firefox 4 párbeszédablakok

blacus · 2011. Május. 8. (V), 10.13
Sziasztok!

Tegnap töltöttem le a firefox 4-et és egy fura dolog jött elő benne.

A 3.6-os verzióban eddig működő kódra (pl törlésnél beleegyezés kérése és jóváhagyás esetén törlés végrehajtása, majd visszajelzés)

if(!confirm('Valóban törölni akarod ezt a fotót?')) return;
$.post(path, function(xml){
     if($(xml).find('error').length)
     {
        alert('Hiba történt');
     }
     else
     {
         alert('Sikeres törlés.');
     }
});


Sikeres törlés esetén a visszajelző alert ilyen szöveggel jön:

--------------------
Sikeres törlés.
[checkbox] Az oldal nem hozhat létre további párbeszédablakokat.
-------------------

Ez mi lehet? Mit nyitottam rá mire? A FF 3.6-ban ez tökéletesen működött.
 

május 7

bookmarklet szöveg kijelölés

jeti · 2011. Május. 7. (Szo), 12.33
Sziasztok!

Van a bookmarletem.
javascript:close(); window.open('http://localhost/link.php?cim='+encodeURIComponent(document.title)+'&link='+encodeURIComponent(window.location.href)+'&leiras='+encodeURIComponent(document.getSelection()));
Ami nagyon jól működik, ha nem jelölök ki vele szöveget.

Opera böngészőt használok és ott szeretném megoldani ezt a problémát.
Ha szöveget jelölök ki vele, akkor a következő üzenetet kapom:
(opera:crossnetworkwarning)
Figyelmeztetés
http://localhost/link.php?cim=Weblabor%20%C2%B7%20A%20fejleszt%C5%91i%20forr%C3%A1s&link=http%3A%2F%2Fweblabor.hu%2F&leiras=HTML5%20Konferencia%20m%C3%A1jusban

Egy internetes lap adatokat kér a számítógépéről. Biztonsági okokból az automatikus hozzáférés blokkoltuk, de folytathatja.

Folytatás

Mindig folytassa, amikor az adatokat a számítógépemről kérik

Utóbbi kettő egy-egy link. Eddig mindig a Folytatásra kattintottam és megkapta a programom a paramétereket.
De egy újabb Opera verziótól kezdve az Opera tönkre teszi a linket. Ez lesz belőle:
http://localhost//link.php?%E6%8D%A9%E6%B4%BD%E5%9D%A5%E6%89%AC%E6%85%A2%E6%BD%B2%E2%83%82%EB%9C%A0%E4%84%A0%E6%99%A5%E6%A9%AC%E6%95%B3%E7%A9%B4%EC%96%91%E6%A4%A0%E6%99%AF%E7%89%B2%EC%8E%A1&%E6%B1%A9%E6%B9%AB%E3%B5%A8%E7%91%B4%E7%80%BA%E2%BC%AF%E7%9D%A5%E6%89%AC%E6%85%A2%E6%BD%B2%E2%B9%A8%E7%94%AF&%E6%B1%A5%E6%A5%B2%E6%85%B3%E3%B5%88%E5%91%8D%E4%B0%B5%E2%81%8B%E6%BD%AE%E6%99%A5%E7%89%A5%E6%B9%A3%E6%A5%A1%E2%81%AD%EC%8E%A1%E6%A9%B5%E7%8D%A2%E6%85%AE

Hogyan lehetne szerintetek megoldani, hogy simán átmenjen jól a cím.

Már próbálkoztam opera kiterjesztés írással is, de sajnos sikertelenül. (Most ismerkedek a javascripttel.)
A sok verzió közöl kettőt kiemelek:

május 5

PHP Mysql Hírkezelő backslash hiba

aky22 · 2011. Május. 5. (Cs), 18.33
Hali! Lenne egy olyan kérdésem hogy hogy lehet azt megcsinálni hogy kiíratásnál ne rakja bele a \ jelet a kódba mer a hír létrehozásakor az adatbázisba sajna bele kell rakni. Előre is kössz.
 

More Meaningful Typography

Joó Ádám · 2011. Május. 5. (Cs), 17.48
A betűméretre felépített látvány
 

Innovative Techniques To Simplify Sign-Ups and Log-Ins

Joó Ádám · 2011. Május. 5. (Cs), 17.24
Hogyan könnyíthetjük meg a felhasználó dolgát
 

float, overflow, margin

Burnee · 2011. Május. 5. (Cs), 17.14
Sziasztok!

Adottak olyan div-ek (.wrapDiv), melyekben a tartalom csupán float-olt elemekből (.floatDiv) áll. A wrapDiv-nek kénytelenek vagyunk "overflow: visible"-t adni, mert kerülhet bele olyan tooltip, aminek ki kell lógnia. Emellett megkötés még, hogy a div-ek tartalma dinamikus, azaz nem adhatunk nekik fix szélességet, illetve magasságot.

Ilyenkor ugye a wrapDiv-nek nem lesz magassága ("overflow: hidden" mellett lenne csak).

A kérdésem az, hogy miképp lehet megoldani (.js nélkül), hogy a .wrapDiv-ek közt vertikális távtartás legyen?
(Olyasmi hatást szeretnék, mintha a wrapDivnek "overflow:hidden; margin: 10px 0;" tulajdonságokat adnék)

Ötlet?

A példa:

<div class="wrapDiv">
    <div class="floatDiv"></div>
    <div class="floatDiv"></div>
    <div class="floatDiv"></div>
</div>
<div class="wrapDiv">
    <div class="floatDiv"></div>
    <div class="floatDiv"></div>
    <div class="floatDiv"></div>
</div>
<div class="wrapDiv">
    <div class="floatDiv"></div>
    <div class="floatDiv"></div>
    <div class="floatDiv"></div>
</div>

.wrapDiv {
    overflow: visible; /* ez adott, nem lehet más */
    /* a div szélessége és magassága a tartalomtól függ */
    background: #36C;  /* a látszat kedvéért */
}
.floatDiv {
    float: left;
    /* szintén dinamikus méretek */
    background: #C36; /* a látszat kedvéért */
}