DevProTalk

Forumi IT profesionalaca
web development, web design, e-business, SEO


Idite nazad   DevProTalk > Web development i web aplikacije > PHP
Želite da se reklamirate ekskluzivno na ovoj poziciji? Javite se

PHP PHP aplikacije, Smarty, PEAR

Odgovori
 
Alati teme Način prikaza
Staro 12. 11. 2005.   #1
Ilija Studen
Direktor Kombinata
Invented the damn thing
 
Avatar Ilija Studen
 
Datum učlanjenja: 07.06.2005
Poruke: 2.669
Hvala: 44
119 "Hvala" u 64 poruka
Ilija Studen će postati "faca" uskoroIlija Studen će postati "faca" uskoro
Default

<dpt><edit user="bluesman">Ovo je "presečen" thread koji je otišao off topic pa je dinke pokušao da od haosa napravi 2 smislena thread-a, a da bi bilo jasnije onima koji se kasnije uključuju morao sam da dodam ovaj komentar jer ovako izlgeda kao da počinje iz sredine. Obrisane su neke poruke u kojima se direktno obraćamo jedni drugima koje nemaju veze sa temom. Obrisao sam i ja neke svoje poruke tako da je tema pročišćena od privatnosti koliko god je moguće. Hvala dinke </edit></dpt>

Citat:
Originalno napisao Petar Marić
Što se tiče primera koje si dao, na stranu što nije realan, pre bih izabrao prvi: čitljiviji je, ako ništa drugo.
PHP kôd:
<?php for($i 0$i 10$i++) { ?>
<?= $i ?>
.<br />
<?php ?>
Najbolji primeri mešanja HTMLa i PHPa su primeri gde IMA HTMLa, ne ovo. Nije ni čudo što izgleda nečitko kad nema šta da se pokaže.

Primer iz života (stranica koja prikazuje sadržaš carta):

PHP kôd:
<h2>Cart</h2>
<p>There are total of <strong><?= CartService::instance()->countProducts() ?></strong> products in the cart with the total order value of <strong><?= CartService::instance()->totalPrice() ?>$</strong>.</p>
<?php if(CartService::instance()->countProducts()) { ?>
<form action="<?= get_url('shopping''update_cart'?>" method="POST">
<table>
  <tr>
    <th width="15%">Quantity</th>
    <th width="65%">Product</th>
    <th width="30%">Price</th>
  </tr>
<?php foreach(CartService::instance()->getOrder()->getOrderedProducts() as $ordered_product) { ?>
  <tr>
    <td><input type="text" name="product_<?= $ordered_product->getProductId() ?>" style="width: 30px; text-align: right;" value="<?= $ordered_product->getQuantity() ?>"/></td>
    <td><?= clean($ordered_product->getProduct()->getName()) ?></td>
    <td style="text-align: right"><?= $ordered_product->getQuantity() ?> x <?= $ordered_product->getPrice() ?>$ = <strong><?= $ordered_product->getTotalPrice() ?>$</strong></td>
  </tr>
<?php // foreach ?>
  <tr>
    <td colspan="2"><div class="formButtons"><input type="submit" value="Update order" /></div></td>
    <td style="text-align: right;"><strong>Total: <?= CartService::instance()->totalPrice() ?>$</strong></td>
  </tr>
</table>
</form>
<?php // if ?>
PS: Pogledajte ovaj kod u nekom normalnom editoru, ovako prelomeljen i sa blago rečeno konfuznim highlightom izgleda odvratno

Poslednja izmena od bluesman : 17. 11. 2005. u 19:11.
Ilija Studen je offline   Odgovorite uz citat
Staro 12. 11. 2005.   #2
Petar Marić
Python Ambassador
Master
 
Avatar Petar Marić
 
Datum učlanjenja: 06.06.2005
Lokacija: Novi Sad
Poruke: 602
Hvala: 28
27 "Hvala" u 17 poruka
Petar Marić će postati "faca" uskoro
Pošaljite ICQ poruku za Petar Marić
Default

Ilija, mislim da si upoznat sa mojim mišljenjem o ekstenzivnom mešanju php-a i html-a, kao i korišćenju php-a kao template jezika za sam php:
loša ideja IMHCO.
__________________
Python Ambassador of Serbia
Petar Marić je offline   Odgovorite uz citat
Staro 12. 11. 2005.   #3
Ilija Studen
Direktor Kombinata
Invented the damn thing
 
Avatar Ilija Studen
 
Datum učlanjenja: 07.06.2005
Poruke: 2.669
Hvala: 44
119 "Hvala" u 64 poruka
Ilija Studen će postati "faca" uskoroIlija Studen će postati "faca" uskoro
Default

PHP je templating jezik i nekako mi ideja pravljanje posebnog template jezika za templatate jezik nije baš naj naj. Doduše, više o tome na jednoj starijoj temi. Moje mišljenje o ovoj temi je poznato svima, a iz mog iskustva (nešto obilnije od tvog ) znam da ti Smarty nije potreban u 99% slučajeva.
Ilija Studen je offline   Odgovorite uz citat
Staro 12. 11. 2005.   #4
bluesman
Goran Pilipović
Sir Write-a-Lot
 
Avatar bluesman
 
Datum učlanjenja: 18.05.2005
Lokacija: Beograd
Poruke: 5.450
Hvala: 288
1.247 "Hvala" u 446 poruka
bluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušati
Pošaljite ICQ poruku za bluesman
Default

Iz mog iskustva ( nesto obilnije od tvog ) upotreba PHP na nacin na koji ti to radis je najblaze receno radikalna.

Ja još ni u jednoj poznatijoj aplikaciju, uključujući i ovaj forum, nisam video bilo šta slično onome što ti radiš. Nije da sam se nešto nagledao tih aplikacija, možda par takvih, ali siguran sam da mnogi odavde mogu da potvrde ovo što pričam.

Meni je neshvatljivo zasto ti pises:
<?= $ordered_product->getProductId() ?>
umesto:
<?= $ordered_product['productId]; ?>

Imaš tendenciju (a to sam ti već rekao) da komplikuješ stvari. Ako mi objasniš kao da imam 6 godina šta ti dobijaš ovakvim kodom, koje su tu prednosti, mogu da ti obećam da ću i ja da počnem da pišem na isti način.

90% funckija u tvom kodu vracaju varijablu koja se zatim echo-uje. Ti znaš da svaka funkcija pri kompajliranju rezerviše određene resurse i mislim da tvoj kod po pitanju resursa uopšte nije optimalan. Neću da grešim dušu jer nisam 100% siguran u ovo što ću ti reći ali mislim da ćeš, pošto nisi do sada radio ništa baš veliko, imati veliki problem po pitanju resursa jednom kada budeš napravio neki veliki web projekat.

Osim to je problem sto covek treba da nagadja sta se dešava iza ->getProductId(); totalno mi je nejasan koncept zasto tako radis za ovakve trivijalne stvari?

Sada ja uzmem da pogledam tvoj kod, ili ne daj Bože nesto izmenim, kao sto sam imao priliku "jedared", i kada vidim
<?= $ordered_product->getProductId() ?>

razmisljam da li on u toj funkciji čita iz baze, sa diska, ko zna šta radi. Zatim moram da otvorim 4 klase da vidim gde je getProductId(), i onda pravo razočarenje, funkcija getProductId () samo vraća nešto tipa:

return $this->product_id;

I onda tako imaš po jednu funkciju za svako polje u bazi (doduše ti si malo elegantnije to rešio ali je i dalje smor.).

Ili recimo:
CartService::instance()->getOrder()->getOrderedProducts()
umesto
$CartService->order->products;
ili
$CartService->order['products'];

Što kažu "pričaj srpski da te ceo svet razume" ja bih rekao "pričaj programerski da svaki programer razume tvoj kod".

Iskreno, to sam ti već jednom rekao, ne znam gde, kako ili od koga si učio programiranje ali ovakvim načinom jedino postižeš to što si "radikalan". Samo nemoj sada da mi daš neki link na neki blog

Nije ni čudo da imaš takvo mišljenje o Smarty kada tebi jedan smarty template izgleda ovako:

PHP kôd:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="sr">
<head>
  <title>{$site_name} - {$__document->getTitle()}</title>
{if $__document->getMeta()}
  {foreach item="meta" from=$__document->getMeta()}
    {$meta}
  {/foreach}
{/if}
{if $__document->getLinks()}
  {foreach item="link" from=$__document->getLinks()}
    {$link}
  {/foreach}
{/if}
{if $__document->getScripts()}
  {foreach item="script" from=$__document->getScripts()}
    {$script}
  {/foreach} 
{/if}
{if $__document->getInlineStyles()}
  {foreach item="style" from=$__document->getInlineStyles()}
    {$style}
  {/foreach}
{/if}
</head>
<body>{$__document->getBody()}</body>
</html>
Kada ti ovako template igleda onda si sigurno better-off bez smarty jer ga ionako ne upotrebljavaš. U stvari, tebi ovde smarty samo smeta u tvom konceptu.

Mislim, nisam hteo da (ponovo) pričam o ovome, naročito zato što smo već pričali i privatno i javno, međutim ti i dalje u svojim postovima insistiraš da ceo svet ne zna šta radi, pa rekoh daj da to rešimo već jednom.
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman
I don't always know what I'm talking about but I know I'm right!
bluesman je offline   Odgovorite uz citat
Staro 12. 11. 2005.   #5
Ilija Studen
Direktor Kombinata
Invented the damn thing
 
Avatar Ilija Studen
 
Datum učlanjenja: 07.06.2005
Poruke: 2.669
Hvala: 44
119 "Hvala" u 64 poruka
Ilija Studen će postati "faca" uskoroIlija Studen će postati "faca" uskoro
Default

Ajmo opet redom:

1. <?= $ordered_product->getProductId() ?> - <?= $ordered_product['productId]; ?>

Koristim Propel, najbolji persistance layer za PHP (PHP port Torque projektu). Ideja je prilično jednostavna: na osnovu XML šeme se automatiski generišu sve potrebne klase i DDL. Dakle, sve te klase i relacije među njima za mene pravi skripta (potrebno vreme od 4 - 7 sekundi). Ja ih samo koristim. Za ručno pravljenje istih bilo bi mi potrebno par sati.

Pošto PHP5 ima podršku za enkapsulaciju ne mogu da pozivam $product->id; iz templatea jer je ID protected polje (kakvo i treba po OO konceptima). To je samo primer dobrog programiranja. Praktičnost je malo narušena, ali kad te metode dobiješ "džabe" (generisane su za tebe) onda nema šta da se brineš.

Persistance layeri (ORM) kao koncept je prilično jednostavni i normalni u svim "jačim" programskim jezicima, posebno u Javi. Mislim da bi trebalo da pročitaš malo više o njima... Meni sam Propel štedi 50% vremena koje sam ranije ulagao u razvoj (bez preuveličavanja).

Probaj, olakšava život.

2. Imaš tendenciju (a to sam ti već rekao) da komplikuješ stvari.

Moguće. Ali danas nešto za šta mi je ranije trebalo 2 nedelje radim za 2, 3 dana (opet bez preuveličavanja). Meni je bilo bitno da povećam sopstvenu produktivnost, u čemu sam uspeo.

Biraš alat prema svojim potrebama. Moje potrebe danas nisu da napravim nešto što će svaki hakeran koji bar malo zna PHP razumeti "iz prve". Bitno mi je da radim brže i da to bude jednostavno za održavanje (što jeste!).

3. 90% funckija u tvom kodu vracaju varijablu koja se zatim echo-uje.

Sasvim normalno. Navedeni primer je template koji služi za prezentovanje informacija. Tu je sasvim normalno da se podaci "u 90% slučajeva echuju" Kontroler koji pokazuje ovaj template izgleda ovako:

PHP kôd:
/**
* Show cart content
*
* @access public
* @param void
* @return null
*/
function cart() {
  
  
// Empty cart?
  
if(CartService::instance()->countProducts() < 1) {
    
flash_error('Your cart is empty');
    
$this->redirectTo('shopping''index');
  } 
// if
  
// cart 
To je sva potrebna ligika + template da bi prikazao cart (Controler + View). Model je malo bogatiji, ali to te opet ne zanima jer je to generisao Propel a ti sa dve funkcije povezao

Da opet ponovim, jer ovo je bitno da biste razumeli šta i kako radim, funkcija gore i template na prethodnoj stranici je sve što programer treba da uradi da bi prikazao cart. Nema prenošenje mase promenljivih, rogobatnih funkcija i koječega sličnog. Najteži deo je generisan za njega od strane persistance layera i uvezan od strane frameworka. Fizikalisanje je zastarelo...

4. <?= $ordered_product->getProductId() ?> ... razmisljam da li on u toj funkciji čita iz baze, sa diska, ko zna šta radi.

Da li tebe kao dizajnera to zanima? Ne. Imaš API dokumentaciju i radiš po njoj... Ako voliš da gledaš u bazu onda koristiš sledeći metod:

polje - id, funkcija - getId()
polje - name, funkcija - getName()
polje - first_name, funkcija - getFirstName()

...

Pattern je оčigledan

5. I onda tako imaš po jednu funkciju za svako polje u bazi

Tačnije, dve... Getter i setter (tkz. akcesori). Zbog enkapsulacije koja ti ne dozvolja da vidiš konkretno polje van trenutne klase ili klase naslednice Propel ti generiše getPolje() i setPolje($value) funkcije.

Naravno, te funkcije si dobio džabe, nisi ih ručno pisao.

6. CartService::instance()->getOrder()->getOrderedProducts() umesto $CartService->order->products;

Singleton je jedan od osnovnih patterna i omogućava ti da izbegneš prenošenje gomile promenljivih na sve strane. Izuzetno korisno i štedi vreme (zna ko je probao).

CartService je Singleton klasa.

7. Navedeni template...

Navedeni template je loš. To sam uvideo odmah... Eksperiment koji je pokazao da je nepraktičan. Sad koristim drugačiji pristup gde se templatei i layouti automatski mapiraju sa parom kontroler - akcija (takav pristup koristi Rails) osim ako nije navedeno drugačije.




PS: Da bi stvarno video koliko ovaj "komplikovani" pristup olakšava život i smanjuje količinu fizikalisanja treba da ga probaš. Sva ova objašnjenja što sam naveo će ti se najverovatnije učiniti neubedljiva, ali slobodno tvrdim, iz iskustva: nikad u životu nisam brže i lakše radio.


Dodatak:

Citat:
Iz mog iskustva (nesto obilnije od tvog) upotreba PHP na nacin na koji ti to radis je najblaze receno radikalna.
Pogledaj o čemu se ovde diskutuje (ne samo skorije diskusije već kopaj imalo dublje). OOP modelovanje aplikacija je starije od PHPa, a PHP5 napokon pruža bolje okruženje za OO razvoj što pokušavam da iskoristim. Ništa u mojim pristupima nije radikalno... Čak naprotiv, većina stvari je prilično stara.
Ilija Studen je offline   Odgovorite uz citat
Staro 12. 11. 2005.   #6
Petar Marić
Python Ambassador
Master
 
Avatar Petar Marić
 
Datum učlanjenja: 06.06.2005
Lokacija: Novi Sad
Poruke: 602
Hvala: 28
27 "Hvala" u 17 poruka
Petar Marić će postati "faca" uskoro
Pošaljite ICQ poruku za Petar Marić
Thumbs down

Ilija, tvoj osnovni problem, je, koliko mi se čini, to što ne želiš/možeš da prihvatiš da poneki put ti nisi u pravu. Prilično mi otežavaju diskusiju osobe koje odjedanput počnu da ubacuju emocije i čisto subjektivna mišljenja bez iole dokaza.

Citat:
Originalno napisao Ilija Studen
Pa dobro, s obzirom na to da si koristio Smarty za projekat koji je imao max 10kb "ostalog" koda razumem tvoj stav. Spavaš sa njim isto? I na putovanja ga nosiš?
Argumenti koje si ovde izneo su u najmanju ruku diskutabilni, da ne upotrebim teže reči. Mislim da nisi svestan šta reč projekat u stvari znači - koristiš je kao jedan od svojih mnogih buzzword-a.
Moraćeš da me podsetiš za dotični slučaj (pošto ga se očigledno bolje sećaš od mene) jer, za razliku od tebe, ne znam da izvlačim argumente "iz uveta".

Citat:
Originalno napisao Ilija Studen
PHP je templating jezik i nekako mi ideja pravljanje posebnog template jezika za templatate jezik nije baš naj naj.
Sa php.net:
Citat:
What is PHP?
PHP is a widely-used general-purpose scripting language that is especially suited for Web development and can be embedded into HTML.
Imaš čudan običaj da budeš veći katolik od pape - ne znam možeš li mi pomoći da nađem termin "template" ovde ili ovde? Probaj da pogodiš koja su prva 3 rezultata za ovu pretragu.
No, pošto izgleda imaš problema da shvatiš celokupnu ideju iza šablona (ili template-a, kako ih Englezi zovu) preporučio bih ti 2 wikipedia unosa za početak:
1. Template
2. Template engine


Citat:
Originalno napisao Ilija Studen
Doduše, više o tome na jednoj starijoj temi. Moje mišljenje o ovoj temi je poznato svima, a iz mog iskustva (nešto obilnije od tvog ) znam da ti Smarty nije potreban u 99% slučajeva.
Mene interesuje odakle ti više izvlačiš te silne brojke? Nisam imao prilike da vidim ijednu studiju vezanu za spomenutu temu koja iznosi datu cifru. Ako je moguće, molio bih te da me prosvetliš, uvek sam voljan da naučim nešto novo, ako je korisno.
__________________
Python Ambassador of Serbia
Petar Marić je offline   Odgovorite uz citat
Staro 12. 11. 2005.   #7
Ilija Studen
Direktor Kombinata
Invented the damn thing
 
Avatar Ilija Studen
 
Datum učlanjenja: 07.06.2005
Poruke: 2.669
Hvala: 44
119 "Hvala" u 64 poruka
Ilija Studen će postati "faca" uskoroIlija Studen će postati "faca" uskoro
Default

[edit by dinke]Izbacene licne poruke upucene Petru[/edit]

2. Svi dobro znamo kako je PHP nastao i da svoje osnovne koncepte vuče i dan danas. Ne moraš citirati PHP5 manual, bar ne meni. PHP = PHP Hypertext Preprocessor. Šta ti to govori?

3. Da opet ne linkujem na verbalno terorisanje: jedan od osnovnih načina da skreneš razgovor sa određene teme ili izbegneš suštinu je da se uhvatiš za sitnice, što ti radiš u svojoj poruci nakon trećeg citata. Nemoj to da radiš, bar ne kad sam ja u pitanju...

4. Brojke su odokativne i služe da oslikaju ideju / stav. Ne treba ti naučna studija da bi znao da ti sutra treba hleb ili da bi znao da je dizel 66 din. Opet se hvataš za jefine verbalne trikove kako bi skrenuo sa teme / izbegao poentu

Citat:
Ilija, tvoj osnovni problem, je, koliko mi se čini, to što ne želiš/možeš da prihvatiš da poneki put ti nisi u pravu.
Meni se čini da se varaš. Uvek sam spreman da kažem da sam pogrešio i/ili da se izvinim kad uvidim da nisam u pravu. Seti se teme gde sam lupio za ASP.NET recimo. Rekao da sam nešto pogrešio, zamolio ljude da mi bolje objasne i sad sam bogatiji za jedno znanje / iskustvo.

No, ova tema se ne bavi mojom malenkošću već nekim drugim stvarima.

Što se priče kojom se na ovoj temi bavimo uveren sam da sam u pravu i tako se ponašam (iznosim svoja mišljenja i stavove, branim se kad su isti napadnuti, odobravam kad mislim da je neko u pravu itd... klasičan forumski život).
Ilija Studen je offline   Odgovorite uz citat
Staro 12. 11. 2005.   #8
Petar Marić
Python Ambassador
Master
 
Avatar Petar Marić
 
Datum učlanjenja: 06.06.2005
Lokacija: Novi Sad
Poruke: 602
Hvala: 28
27 "Hvala" u 17 poruka
Petar Marić će postati "faca" uskoro
Pošaljite ICQ poruku za Petar Marić
Default

Citat:
Originalno napisao Ilija Studen
Koristim [ulr=http://propel.phpdb.org/]Propel[/url], najbolji persistance layer za PHP (PHP port Torque projektu).
IMHO izrazito je loš, jer te ne obavezuje da izvršiš rukovanje grešaka.

Citat:
Originalno napisao Ilija Studen
Pošto PHP5 ima podršku za enkapsulaciju ne mogu da pozivam $product->id; iz template jer je ID protected polje (kakvo i treba po svim normalnim OO konceptima). To je samo primer dobrog programiranja. Praktičnost je malo narušena, ali kad te metode dobiješ "džabe" onda nema šta da se brineš.
Tehnički "id" bi u programskim jezicima koji se pridržavaju OOP principa bio property sa prekopljenim operacijama "set" i "get" - jedan od razloga zbog kojeg mi se Python i C# dopadaju.
__________________
Python Ambassador of Serbia
Petar Marić je offline   Odgovorite uz citat
Staro 12. 11. 2005.   #9
Ilija Studen
Direktor Kombinata
Invented the damn thing
 
Avatar Ilija Studen
 
Datum učlanjenja: 07.06.2005
Poruke: 2.669
Hvala: 44
119 "Hvala" u 64 poruka
Ilija Studen će postati "faca" uskoroIlija Studen će postati "faca" uskoro
Default

Citat:
Originalno napisao Petar Marić
IMHO izrazito je loš, jer te ne obavezuje da izvršiš rukovanje grešaka.
PHP5 te ne forsira da obradiš greške da bi se očuvala kompatibilnost sa starim kodom. Doduše, imaš set_exception_handler(), ali to nije ono o čemu pričamo.

BTW: Od kad je rukovanje greškama presudno pri izboru ORMa? Ne, ne sviđa mi se BMW jer su mu papučice metalne.

Citat:
Originalno napisao Petar Marić
Ilija je definitivno ubeđen da je izumeo "the best thing since sliced bread" tako da je svaka diskusija uzaludna.
Ne bih se složio. Svaki sistem ima svoje prednosti i mane. Mane ovog sistema su:

1. PHP5 only
2. Ne scaleuje dobro - tj. nije pogodan za male skripte
3. Propel bi mogao da bude bolje uvezan, a proces generisanja klasa automatizovan. Sad moraš ručno da pozoveš Phing da generiše klase i da ih kopiraš (nešto što se radi jako retko).
4. Definitivno nije speed king

Najverovatnije ima još, ali to su stvari koje mi padaju na pamet. Napravio sam nešto što radio posao i omogućava mi da radim brzo zadržavajući clean dizajn aplikacije i sam kod. Šta je tu loše?
Ilija Studen je offline   Odgovorite uz citat
Staro 13. 11. 2005.   #10
bluesman
Goran Pilipović
Sir Write-a-Lot
 
Avatar bluesman
 
Datum učlanjenja: 18.05.2005
Lokacija: Beograd
Poruke: 5.450
Hvala: 288
1.247 "Hvala" u 446 poruka
bluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušati
Pošaljite ICQ poruku za bluesman
Default

Pročitah... i poučen prethodnim iskustvom u diskusijama sa Ilijom nemam ništa pametno da dodam... ili nemam ništa da dodam što bi se izrodilo u nešto pametno.

Jedino što moram da primetim, Ilija, je da nas olako "gađaš" subjetkivnim zaključcima, zatim kažeš nešto kao "najbolji persistance layer za PHP" a onda u dodatnom objašnjenju napišeš

Citat:
1. PHP5 only
2. Ne scaleuje dobro - tj. nije pogodan za male skripte
3. Propel bi mogao da bude bolje uvezan, a proces generisanja klasa automatizovan. Sad moraš ručno da pozoveš Phing da generiše klase i da ih kopiraš (nešto što se radi jako retko).
4. Definitivno nije speed king
Sorry, meni bi 1, 2 i 4 bilo sasvim dovoljno da nikada ne pogledam to, a kamoli da ga hvalim i koristim. Ali, svako ima svoje, ja sam navikao da pišem sve svoje ručno, ti si navikao na razne gadgetse koje ne znam ni da nabrojim, možda sam lood što trošim vreme na pisanje svega lično, možda sam paranoičan jer verujem samo sebi i svom kodu... ali to je moj loodilo... tako sam navikao i so far so good.
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman
I don't always know what I'm talking about but I know I'm right!
bluesman je offline   Odgovorite uz citat
Odgovori


Alati teme
Način prikaza

Pravila pisanja
Možete ne započinjati nove teme
Možete ne slati odgovore
Možete ne slati priloge
Možete ne izmeniti svoje poruke
vB kôd je Uključen
Smajliji su Uključen
[IMG] kod je Uključen
HTML kôd je Isključen
Pogledajte forum

Slične teme
Tema Početna poruka teme Forum Odgovori Poslednja poruka
JavaScript Templates, u Smarty fazonu... Ilija Studen (X)HTML, JavaScript, DHTML, XML, CSS 5 11. 03. 2007. 13:56


Vreme je GMT +2. Trenutno vreme je 00:05.


Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.
Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.