- OneSport OT05 - finomhangolás
- iPhone topik
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Fotók, videók mobillal
- Google Pixel topik
- Redmi Note 13 Pro 5G - nem százas, kétszázas!
- Google Pixel 8 Pro - mestersége(s) az intelligencia
- Apple Watch Sport - ez is csak egy okosóra
- Okosóra és okoskiegészítő topik
- Android alkalmazások - szoftver kibeszélő topik
Hirdetés
-
Z Fold6 imitátor árulkodik a fogyókúrázó igaziról
ma Több lesz kívül a változás, mint belül.
-
Elden Ring: Shadow of The Erdtree - Íme a végső gépigény
gp A kiegészítő érkezése már nincs messze, alig egy hetet kell már csak várnunk a DLC-re.
-
Olcsó USB WiFi AC adapter
lo Egy olcsó WiFi AC USB adapter jó szolgálatot jelenthet, ha az új router csak elvileg támogatja a 2,4 GHz-es átvitelt.
Új hozzászólás Aktív témák
-
Sk8erPeter
nagyúr
válasz
pvt.peter #11049 üzenetére
Csak azt mondom, ami hirtelen eszembe jutott, lehet, hogy lehetne még ezerszer jobb megoldással (pl. template-ezéssel).
Esetleg gyűjthetnéd egy private $tabs = array(); tömbbe a füleket (privát osztályon belüli változó), ahol a tömb kulcsai maguk a fül azonosítói lennének. Kiegészíthetnéd az addNewTabet úgy, hogy egyből a HTML-tartalmat is hozzáadod:
public function addNewTab(tabId, tabLabel, htmlContentOfTab)
Aztán lenne egy renderTabs() metódus, ami legenerálná az összes fület ciklusokkal, úgy, hogy létrehozná a megfelelő linkeket (ez egy ciklus), meg hozzácsapná az azonosítókkal ellátott diveket (ez még egy ciklus).
Az osztályon belül a private $tabs = array(); tömbbe valahogy így gyűjthetnéd ki (ami az osztályon belül így lenne elérhető: $this->tabs):
$tabs = array(
'fragment-1' => array(
'label' => 'One',
'content' => '<p>tartalom egy.............</p>'
),
'fragment-2' => array(
'label' => 'Two',
'content' => '<p>tartalom kettő.............</p>'
),
'fragment-3' => array(
'label' => 'Three',
'content' => '<p>tartalom három.............</p>'
),
);Ez csak első megközelítés, de ezt így nagyon egyszerű lenne megvalósítani. Persze gondolni kell az XSS elkerülésére is biztonsági okokból, ha WYSIWYG-jellegű admin-felület lenne a tartalom belepakolására.
[ Szerkesztve ]
Sk8erPeter
-
Soak
veterán
válasz
pvt.peter #11049 üzenetére
Szia !
http://ideone.com/nUwsA ez megcsinálja azt kódot amit szeretnél (mármint a mellékelt kódrészletet) , egy osztály tulajdonságainak megfelelő számút, majd azok értékét beteszi magába a tabsba .
Szerk : A fül neve pedig a tulajdonság neve.
[ Szerkesztve ]
-
Peter Kiss
senior tag
válasz
pvt.peter #11049 üzenetére
Valami ilyesmire gondoltam, ehhez hasonló irányt nagyobb versenyzők is követtek, nem véletlenül. Hiba lehet benne, nem próbáltam ki, igazából egy sornyi megvalósítást se akartam írni, de így talán egyértelműbb.
---
#11050, Sk8erPeter, ezt hívják ocsmány megoldásnak, no offense.
---
#11051, Soak, az OO-val még nem kerültél közelebbi barátságba, de nagy pirospont a külön header és tab-ok legyártásáért, innen már csak egy lépés a NVI (non virtual interface, én is ezt használtam).
-
Peter Kiss
senior tag
válasz
pvt.peter #11093 üzenetére
Lehetne, hogy egybe rakd őket, csak akkor rugalmatlanabb a kód. Ha mondjuk most megcsinálod, amit szeretnél, és később az alkalmazásod egy másik részén is szeretnél hasonlót, de mégis kicsit más lenne pl. a body rész (akár teljesen üres, bár ennek most nem sok értelme lenne), akkor az új leszármazott osztályodban csak a _renderBody() metódust kell újraírni, minden más maradhat a helyén, feltéve, hogy nem szükséges még valami plusz hozzáadása.
Ha egybe raknád (mondjuk a Render()-be), akkor a bővítés úgy történne nagy valószínűséggel, hogy az új osztályodba bemásolnád a régi Render() kódját, és módosítgatnád pár ponton, ez nagy méretű duplikáció.
Ettől nagyobb fokú rugalmasságot pedig úgy érheted el, ha megoldod azt, amit a Render()-hez írtam a kommentbe.
-
Peter Kiss
senior tag
-
Sk8erPeter
nagyúr
válasz
pvt.peter #11150 üzenetére
JS-kódra, HTML-kódra:
http://jsbeautifier.org/PHP-kódra:
http://beta.phpformatter.com/Sk8erPeter
-
Sk8erPeter
nagyúr
válasz
pvt.peter #11153 üzenetére
Szívesen! Tényleg nagyon hasznos, a PHP-s kódformázó a szintaktikai hibákat is kidobja egyből.
(#11159) Speeedfire :
utólag is lehet formázni kimenetet NetBeans-szel.Úgyhogy PazsitZ jól mondta, NetBeans ugyanúgy alkalmas kódformázásra, mint az előbbiek. Pl. létrehozol egy új (akár PHP-s) fájlt, bedobod a kimeneti HTML-kódot, és megnyomod a formázást, aztán megvan.
(#11157) Speeedfire :
azért lehet jobb a PHP_EOL, mert az adott platformnak megfelelő sorvége-jelet fogja kimenetként adni, pl. \n-t vagy a Windows-os \r\n-t.[ Szerkesztve ]
Sk8erPeter
-
19.Norbika
csendes tag
válasz
pvt.peter #11049 üzenetére
Javítsatok ki ha tévedek, de nem erre találták ki a DOMDocument php lib-et?
Teljes osztályspecifikáció:
[link]Új elem létrehozás:
[link]Sok php,html és programozási oktató anyag, tutorial és fórum itt:
[link]Nightvis | www.nethq.hu - html,php,js,jquery,c#,sql programozás
-
-
CSorBA
őstag
válasz
pvt.peter #11215 üzenetére
<input type="reset" name="torol1" id="torol1" value="Töröl" onclick="torol('input1')"/>
Ez nem anomália, hanem a kód azt csinálja amit kell
A hiba az, hogy reset az input típusa, amire a torol() eseményt kötöd. Mivel formban van, speciális dolgot csinál, vagyis alapból is resetel. Épp ezért nem szerencsés ehhez még pluszban ilyen eseményt rendelni, mert tök mindegy, hogy ellenőrzöd js-el, a reset ki fogja resetelni, mivel erre való
Így jó lesz:
<input type="button" name="torol1" id="torol1" value="Töröl" onclick="torol('input1')"/>szerk.: Offba raktam, mert ez nem a Javascript hanem a PHP topic.
[ Szerkesztve ]
-
Sk8erPeter
nagyúr
válasz
pvt.peter #11381 üzenetére
Használd az "u" modifiert, úgy már nem cseréli le kettőre. A patternben meg ez is elég:
/(?:[^A-z\d\.-])/Példa:
$pattern = '/(?:[^A-z\d\.-])/u';
$replacement = '_';
$subject = 'teniszütő akármi lálálá ÁRVÍZTŰRŐ TÜKÖRFÚRÓGÉP';
echo preg_replace($pattern, $replacement, $subject, -1);Eredmény:
tenisz_t__ak_rmi_l_l_l___RV_ZT_R__T_K_RF_R_G_PSzerk.: magyarázat:
Itt vannak a modifierek: [link]
az említett modifier:
"u (PCRE_UTF8)
This modifier turns on additional functionality of PCRE that is incompatible with Perl. Pattern strings are treated as UTF-8. This modifier is available from PHP 4.1.0 or greater on Unix and from PHP 4.2.3 on win32. UTF-8 validity of the pattern is checked since PHP 4.3.5."[ Szerkesztve ]
Sk8erPeter
-
sztanozs
veterán
válasz
pvt.peter #11584 üzenetére
XSS ellen nem vééééd, de ... paraméterezett lekérdezés - és nem kell semmit ellenőrizni, escapelni és trükközni.
[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
Peter Kiss
senior tag
válasz
pvt.peter #11767 üzenetére
Alapötletként ezt tudnám javasolni:
<?php
class View {
private $_file;
public $Data;
public function __construct($viewFile, array $data) {
$this->_file = $viewFile();
$this->Data = $data;
}
public function Render() {
require $this->_file;
}
}Ebben az esetben, a view fájljában hozzáférsz a $this-hez, így eléred a $Data-t is benne:
<ul>
<?php
foreach ($this->Data["rows"] as $object) {
echo "<li>";
echo $object->Name;
echo "</li>";
}
?>
</ul>Nehogy sima query result-ot adj a view-nak! Csak sima bejárható kollekciókkal szabad dolgoznia, amelyekben objektumok vannak.
Ne használd a mysql_ cuccokat. Válaszd a mysqli_-t vagy inkább PDO-t.[ Szerkesztve ]
-
Sk8erPeter
nagyúr
válasz
pvt.peter #11778 üzenetére
"Amennyiben hozzáadtunk új beviteli mezőket akkor bizony az oszlopok nem fognak megegyezni. Tehát vmilyen módon bővíteni kellene a meglevő struktúrát"
Ez nem túl jó ötlet. Ha valaki rosszindulatúan, vagy csak szórakozottságból hozzáad még 30 textfieldet, akkor annyival több meződ lesz az adatbázisban, ahol meg ezek nincsenek kitöltve, ott mind NULL érték lesz, tök feleslegesen?
Vagy nem értem, mi a cél ezzel, mi benne a ráció, szerintem ez rossz tervezés.
Nehéz általános receptet adni, sztem jobb lenne, ha a konkrét célt írnád le (milyen célra kell nyilvántartani az adatokat, stb.), úgy könnyebben tudnánk konkrét ötletet is írni.(#11771) blacee :
ez az elérési út létrehozására vonatkozó instrukció elég furcsa "megoldásnak" tűnik valóban, kétlem, hogy ez lenne a helyes út.
Nem tudom, OpenWrt-s cuccra nem raktam még fel webszervert és PHP-t, nem próbáltam, de itt konkrét leírások vannak:
http://wiki.openwrt.org/doc/howto/php
ez konkrétan Lighttpd-re:
http://wiki.openwrt.org/doc/howto/http.lighttpd#configuring.lighttpd.and.php5
Ez alapján sem sikerül?[ Szerkesztve ]
Sk8erPeter
-
oleslie
aktív tag
válasz
pvt.peter #11780 üzenetére
Én ha nem akarnám indexelni/keresni az újonnan felvett oszlopokat (csak tárolni az adatokat), akkor az ilyen bővíthető adatokat egy `TEXT` cellában tárolnám, az adatokat pedig serialize/unserialize. És nem piszkálnám a tábla szerkezetét.
[ Szerkesztve ]
Egyszerű életet élek. Ami üres megtöltöm, ami tele van kiűritem
-
cucka
addikt
válasz
pvt.peter #11780 üzenetére
Nem szeretném, hogy úgy tűnjön, leugatok a magas lóról, de ez az elképzelés úgy szar, ahogy van. Egyszerűen felejtsd el, nem lesz jó, nem fog működni, sz*pni fogsz vele.
Ezt a feladatot úgy oldod meg, hogy 1 helyett 2 táblád van: az egyikben vannak a személyek, a másikban meg a személyek extra mezői. Így tetszőleges számú extra mezőt felvihetsz tetszőleges számú személyhez.[ Szerkesztve ]
-
Peter Kiss
senior tag
-
sztanozs
veterán
válasz
pvt.peter #12042 üzenetére
google, első találat...
[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
DNReNTi
őstag
válasz
pvt.peter #13428 üzenetére
Szia,
Ez is sima php mysql_ parancsokat használ, csak létrehoz egy "Database" osztályt benne függvényekkel, amelyekkel a későbbiekben könnyebben lehet boldogulni. Ezzel tehát nem kerülöd ki a mysql_ parancsok használatát.but without you, my life is incomplete, my days are absolutely gray
-
Sk8erPeter
nagyúr
válasz
pvt.peter #13428 üzenetére
Igazából azt pötyögted be, ami kommentekben is megtalálható, túl sok új nincs benne. Ez a query1(), query2() elég mágikus név, mit akarsz vele megvalósítani? Mindenesetre már az elnevezés is rossz. De legfőképp az, hogy fel akarod fedezni a spanyolviaszt: ne akarj n+1-edik adatbázis-kommunikációs wrapper osztályt csinálni, ott a mysqli és a PDO, valamint remek ORM-ek vannak. Írtad, hogy a mysql_ függvények használatára vagy kényszerítve, de ezt az érvet sajnos nem tudjuk elfogadni.
Tehát minimum mysqli vagy PDO, a mysql_ kezdetű függvények használatáról 2013-ban már nincs is értelme beszélni.
Volt már korábban itt egy (v. több) hitvita a topicban, hogy Singleton-minta jó-e vagy sem, a vége az lett, hogy több érv szól a nem mellett (itt olvashatsz róla többek közt: [link], meg persze a topicban, a Singleton szóra rákeresve).Sk8erPeter
-
Peter Kiss
senior tag
válasz
pvt.peter #13428 üzenetére
Semennyire. A csatlakozáshoz szükséges adatok tárolói mind private-ok, hol lehet őket beállítani? Konstruktorban csatlakozik a szerverhez (miért is?), de be lehet zárni menet közben a kódban, így a későbbi részek meg is haltak, ha használni akarják. Állapotot tartalmazó cuccok nem lehetnek static változóban sosem. Ennél durvább már csak az lehetne, ha ehhez hasonló kóddal perzisztens kapcsolatokat használna valaki.
Ha jól emlékszem, a mysql nem is tud SQL tranzakciókat kezelni.
@Sk8erPeter
Van értelme wrapper-t csinálni, mert a mysqli és a PDO még nem az, illetve mind a kettő ocsmányul néz ki, plusz sosem tudhatod, mikor mondják azt, hogy PDO nincs, csak mysqli, akkor cserélhetsz mindenhol mindent, emellett meg tudja könnyíteni a tranzakciókezelést, be tudsz szúrni pl. PDO driver-specifikus beállításokat, ilyesmi.
Új hozzászólás Aktív témák
- OneSport OT05 - finomhangolás
- Apple asztali gépek
- EA Sports WRC '23
- Kerékpárosok, bringások ide!
- iPhone topik
- TCL LCD és LED TV-k
- CASIO órák kedvelők topicja!
- Politika
- A kánikula elviseléséhez hardverek is kellhetnek a napernyő mellé
- Kávé kezdőknek - amatőr koffeinisták anonim klubja
- További aktív témák...