Az összes lap "tutoriál" jellegû szerkezete át lett alakítva - a kódba égetett
témákat áthelyeztem adatbázisba, így nem az asp lapok cserélgetésével fogom
frissíteni a lapjaim. Fogok készíteni RSS csatorna értesítõket a lapokhoz (és
lesz is ilyen jellegû tutoriál) - rájöttem, hogy nem ezeken a lapokon kell
kialakítanom az RSS elérhetõséget, hanem egy külön lapon... Az oldal
validatálva, és modernizálva lett (hogy érvényes legyen), így lehet eltérés a
mintapéldák, és a magyarázószöveg között (régebbi témák - 2007.10 hó elõtt). A
mintapéldákat a javított lapjaimról szedtem ki, így azok érvényesek, jó html
kódot adnak. (ehhez persze meg kell adni a weblapok tipusát, karakterkódolását,
stb.: xhtml példaa)
Tippek böngészőfüggetlen megjelenítéshez
Kategória:
Html - Hozzáadva:
2007. 10. 20.
Nagyon bosszantó tud lenni, amikor egy jól megtervezett grafikát, vagy html szerkezetet
a különböző böngészők más-más módon jelenítenek meg. Persze lehetne minden böngészőnek
külön stíluslapot készíteni, és egy vizsgálat után a megfelelőt betölteni, de ez
nem feltétlen szükséges. Először is érvényes html kódot kell készíteni, ami azzal
kezdődik, hogy meg kell határozbni lapunk tipusát, és ezt jelezni is kell a kódban
a böngészők részére (mint a bevezetőben említettem). Az érvényesség ellenőrzésére
használjuk a megfelelő oldalakat. Az érvénytelen kódot némelyik böngésző értelmezi,
és a várt módon korrigálja, más böngésző esetleg az érintett tag teljes stílusinformációját
(pl. táblázat formázása) letíltja, és a böngésző alapértelmezéseit használja. A
legtöbb ember törekszik az egyszerű html, és CSS kód létrehozására, de ez sajnos
nem mindig célravezető.
A kezdőoldalam fejléce (menüsor táblázatával) a várt módon néz ki IE, és Opera böngésző
alatt:
A hozzátartozó html kód:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
...
<title>Sümegi Zoltán oldala</title>
<link rel="stylesheet" href="alap.css" type="text/css" />
</head>
<body>
<div class="felso">
<div class="fejlec">
<h2 class="fej">
Sümegi Zoltán személyes oldala
</h2>
<table class="menu" border="0">
<tr>
<td class="bal" ></td>
<td class="menu" ><a href="forras.htm">Html/Javascript tippek</a></td>
<td class="jobb" ></td>
...
</tr>
</table>
</div>
<div class="balfejlec">
</div>
<div class="jobbfejlec">
</div>
</div>
...
és a stíluslap információ:
...
h2.fej{
color: #6A5ACD;
margin-top: 40px; margin-left: 40px;
}
...
table.menu{
margin-top: 40px; width: 100%;
}
Ezzel a kóddal a fejléc kinézete Firefox böngésző alatt:
Ez nem túl kellemes. A tömör kódra történő törekvés itt azt eredményezte, hogy a
Firefox a H2-es fejléc utáni margo értékének (nem volt meghatározva a stíluslapban)
a többi böngészőtől eltérő értéket állított be, így itt a menüsor táblázata egy
nem kívánt pozicíóba került.
A korrigált stíluslapinformáció (meg lett határozva a h2 alsó margó tulajdonsága
is):
...
h2.fej{
color: #6A5ACD;
margin-top: 40px; margin-left: 40px; margin-bottom: 0;
}
...
table.menu{
margin-top: 20px; width: 100%;
}
oldal tetejére
Html és CSS kód érvényességének ellenőrzése
Kategória:
Html - Hozzáadva:
2007. 10. 10.
| Módosítva: 2008. 11. 30.
Az elkészített kódok ellenőrzését érdemes minden módosítás után elvégezni. Nincs
akadálya a korábbi szabványok szerinti html kód használatának (html 3,4), de itt
is a megfelelő dokumentum típus legyen meghatározva a html lap kódjában. (Így esetleg
használhatóak az újabb szabványokban már érvénytelenített tag-ek.)
Érdemes ellenőrizni az idegen helyről kapott kódrészleteket is (pl. Magyar Honlap,
Webkatalógus, Statgép, stb. !!!). Egy kis MS reklámként megjegyzem, hogy a Visual
Studio és az ingyenesen használható Visual Studio Express elég komoly validatálást
végez a html kódban is. Így pl. helyesnek számító, de már idejétmúlt vagy az újabb
szabványokban már érvénytelen tulajdonságok cseréjét is javasolja. (pl. a
tag name tulajdonsága helyett id tulajdonság.)
* PHP lapjaink "POST" alapú paraméterátadása (nem url paraméteres átadása) esetén a vezérlők
name tulajdonsága
alapján érhetők el az átadandó értékek szerveroldalon (pl. input elemek "value" tulajdonságai) - a csak id-vel ellátott vezérlőket
nem tudja azonosítani a PHP.
oldal tetejére
Valós forgalmi adatok
Kategória:
Html - Hozzáadva:
2007. 10. 20.
A statgép forgalmi adatai az oldalaimra valósak, a statisztikából ki van zárva a
saját IP címem, így a saját internetes látogatásaimat nem számlálja. Nem számolja
a lapok szerkesztésénél történő probálkozásaimat se (kizárt helyi címek), amikor
fájlként nyitom meg a lapokat.
- Kizárás a helyi hálózati címek tiltásához (IP címek a hálózatomon ebben a tartományban
vannak meghatározva - minden lehetséges cím tíltva): 192.168.1.*
- Kizárás az internetes címem tiltásához (külső IP cím - ezt időnként cserélni kell
/pl. modem reset/, ha dinamikus a cím/): internetes IP cím
Az internetes IP címünk megtudható többek között a
wigwam lapon balra fent a nagy Wigwam felirat alatt.
oldal tetejére
Az oldalak módosítási dátumainak kijelzése
Kategória:
Javascript - Hozzáadva:
2007. 03. 05.
Automatikus utolsó módósítás idejének kijelzését teszi lehetővé Javascript segítségével
a lapba épített pár soros utasítás:
<script type="text/javascript">
var modIdo = new Date(document.lastModified);
document.write('Utoljára módosítva: ' + modIdo.toLocaleString());
</script>
A modIdo nevű változóba elhelyeztem a document.lastModified függvény által
visszaadott szöveges dátum,- és időértéket. A "dátumosítás" azért szükséges, mert
egyébként nem az általunk megszokott formátumban jelenne meg (pl. 06/03/2007 15:33:27
). Így a toLocaleString() dátum objektum metódussal a helyileg beállított
formátum szerint jelenik meg a módosítás ideje. A Javascript-es változat sajnos
nem működik a Linux Konqueror böngészőjében (Javascript engedélyezett) - módosítottam
az érvényes kód érdekében a scripten, így lehet, hogy Konqueror is megeszi.
oldal tetejére
Képcsere
Kategória:
Javascript - Hozzáadva:
2007. 03. 05.
Javascript kódrészlet (én a
<head> szekcióban helyeztem el):
<script type="text/javascript">
function beallit()
{
document.getElementById("i").style.backgroundImage='url(img/regi.jpg)';
}
function visszaallit()
{
document.getElementById("i").style.backgroundImage='url(img/igazolvany_uj1.gif)';
}
</script>
Az "i" ID-val rendelkező html objektum háttérképét regi.jpg-re állitja a
beallit() függvény, ami meghívásra kerül a kép táblázatcellájának (<TD>)
egérmozgás eseményére, és a visszaallit() függvény pedig az egér elvételekor
a igazolvany_uj.gif képet állítja be.
A táblázat-cella kódrészlete:
<td class="igazolvany" id="i" rowspan="4" onmouseover='beallit()'
onmouseout='visszaallit()'></td>
Ez a táblázatcella egy külön "igazolvany" nevű osztályazonosítót kapott, mivel a
két elhelyezendő kép 123képpont magasságú, és 97, ill. 95 képpont széllességű. A
táblázat-cella a <head> szekció stílus információjában lett a kívánt
méretre állítva (ill. igazítás, stb.), így nem lóg ki, nincs "levágás", stb.
<head>
<style type="text/css">
td.igazolvany{
width: 130px; height: 130px;
background-image: url(img/igazolvany_uj1.gif);
background-position: center;
background-repeat: no-repeat;
}
</style>
td.igazolvány beállítások... Kapott alapértelmezett képet is (amig még nincs
egérmozgásra kiváltott esemény...) A td stílus információ a többi (alap)
táblázat-cella beállítása. És ami miatt függvényhívás lett, nem pedig paraméterezett
stílus-beállítás, az a későbbi felhasználás miatt van (oldalmenü is ezzel a kóddal
fog majd működni, ha csináltam szép nyomogomb képeket hozzá - egy benyomott, és
egy alap), ill. így nem csak az az objektum vezérli amiben a kép elhelyezkedik,
hanem az "Előtte" szövegezésű link is.
<p class="szoveg">Ez a legfrissebb képem.
<br/>Azért törekszem az <a class="link2" href="elotte_utana.html" target="_blank" onmouseover="beallit()" onmouseout="visszaallit()"><b>"előtte"</b></a> állapot elérésére.</p>
A lényeg:
... <a class="link2" href="elotte_utana.html" target="_blank" onmouseover="beallit()" onmouseout="visszaallit()"><b>"előtte"</b></a>
...
Ja, a szöveg meg is nyitja egy új böngésző lapon/ablakban (IE) az elotte_utan.html
fájlt...
target="_blank"
oldal tetejére
Táblázat
Kategória:
Html - Hozzáadva:
2007. 02. 20.
<style type="text/css">
...
table.fent{
background-image: url(img/atmenet1.gif);
background-repeat: repeat-x;
}
td.felsokeret{
height: 150px;
}
td.kozepkeret{
}
td.menukeret{
background-color: #f7fbfd; width: 90px; height: 500px;
text-align: left; vertical-align: top;
background-image: url(img/oldal1.jpg); background-repeat: no-repeat;
}
td.menu{
background-color: #f7fbfd;
}
td.kozep{
margin-right: 40px; width: 550px;
height: 280px; background: #e8f0f9;
border-style: groove; border-color: #b11010;
background-image: url(img/atmenet2.gif);
background-repeat: repeat-x;
}
td.kozep2{
width: 500px; height: 100px; border-width: 0;
}
td.jobb{
width: 100px; height: 300px; background: #eff6fd;
border-style: solid; border-color: #b11010;
background-image: url(img/atmenet2.gif);
background-repeat: repeat-x;
vertical-align: top;
}
td.also{
width: 130px; height: 35px; text-align: center;
border-style: solid; border-color: #b11010;
}
td.igazolvany{
width: 130px; height: 130px;
background-image: url(img/igazolvany_uj1.gif);
background-position: center;
background-repeat: no-repeat;
}
td.eler{
width: 150px; border-width: 0;
}
td.nev{
vertical-align: top;
}
Maga a táblázat (ezt érdemesebb stíluslapokkal megoldani - később...):
<table border="0" cellpadding="5">
<tr>
<td class="menukeret" rowspan="4">
<table class="bal" border="0">
<tr><td class="menu" ><a href="lap2.htm">Filozófia</a></td></tr>
<tr><td class="menu" ><a href="lap4.htm" target="_blank">Fejlesztés</a></td></tr>
<tr><td class="menu" > ... </td></tr>
<tr><td class="menu" > ... </td></tr>
<tr><td class="menu" > ... </td></tr>
<tr><td class="menu" > ... </td></tr>
<tr><td class="menu"> ... </td></tr>
</table>
</td>
<td class="felsokeret" align="center" valign="top" colspan="2">
<table class="fent" border="1">
<tr>
<td class="igazolvany" id="i" rowspan="4" onmouseover='beallit()'
onmouseout='visszaallit()'></td>
<td class="nev" rowspan="4"> ... név ...</td>
<td class="eler"> ... elérhetőség ... </td>
</tr>
<tr>
<td class="eler"> ... </td>
</tr>
<tr>
<td class="eler"> ... </td>
</tr>
<tr>
<td class="eler"> ... </td>
</tr>
</table>
</td>
</tr>
<tr>
<td class="kozepkeret" rowspan="2" colspan="2">
<table class="kozep" border="1">
<tr>
<td class="kozep" colspan="4">
<blockquote>
...
<br/>
...
</blockquote>
</td>
<td class="jobb" rowspan="3">
<div class="oldal">
... oldalra szánt szöveg ...
</div>
</td>
</tr>
<tr><td class="kozep2" colspan="4"></td></tr>
<tr><td class="also"> </td> <td class="also"> </td>
<td class="also">
...
</td>
<td class="also">
...
</td>
</tr>
</table>
</td>
</tr>
</table>
oldal tetejére
A változó méretű linkek
Kategória:
CSS - Hozzáadva:
2007. 02. 20.
A változó méretű linkek (és változó háttér) a :hover segítségével 150%-osak lesznek, ez IE alatt
is alkalmazható az <a> tagra.
<style type="text/css">
a:hover {font-size: 150%; background: #66ff66}
...
És hogy ne ugráljon a lap szerkezete, ill. a hivatkozás alatt elhelyezkedő szöveg,
ezért az <a> tag magasságát 20 pont-ra állítottam (a 150%-os növekedés
ebbe a magasságba még belefér. A főlapon Firefox esetében a <blockquote>
tag-on belül a méretváltoztatás változatlanul "ugrálást" okozott. Ez a 20pont nem
a betűméret - az az alapértelmezett 11pont -, hanem a kitölthető hely mérete.):
<style type="text/css">
a {line-height: 20pt}
...
oldal tetejére
Oldalmenü
Kategória:
CSS - Hozzáadva:
2007. 02. 25.
Az oldal menü linkjeinek háttérszínezése (itt is Javascript kell majd ha képcserés lesz a menü,
mert
<a> tag -hoz nem lehet háttérképet, tábla-cella
:hover
-ja meg IE miatt nem használható / esetleg valami ilyesmi -
CSS képcsere/):
<style type="text/css">
td.menukeret{
background-color: #f7fbfd; width: 90px; height: 500px;
text-align: left; vertical-align: top;
background-image: url(img/oldal1.jpg); background-repeat: no-repeat;}
td.menu{background-color: #f7fbfd;}
a:hover {background-color: #FFFF00}
</style>
És a cellákba rakott linkek:
<table class="bal" border="0">
<tr><td class="menu" > ... </td></tr>
<tr><td class="menu" > ... </td></tr>
...
</table>
...
oldal tetejére
Háttérkép sorozatból
Kategória:
CSS - Hozzáadva:
2007. 02. 25.
Kipróbáltam a Filozófia lap jobb oldali tábla-cellájában a "tapétás" háttérképet.
Egy 100*100 képpont méretű 2kbájt fájlméretű képből áll a háttér. Lehetne akár az
egész lap háttere egy ekkora, vagy kisebb képdarabból álló sorozat (bár az mintha
automatikusan tapétás lenne ilyen esetben):
<style type="text/css">
...
td.mezo {background-image: url('img/szovet2.jpg');
background-repeat: repeat}
...
</style>
A stílusbeállítás "repeat", a cella a minden színnel egybeolvadó mintája
miatt kapott egy belső táblázatot fehér háttérrel:
<td class="mezo">
<table border="0" align="center">
<tr><td><h2>Filozófia</h2></td></tr>
</table>
</td>
A szóban forgó képdarab:

A kezdőlap fejlécének, és láblécének hátterét szintén képismétléssel (viszintes
irányú) oldottam meg, helytakarékosság itt sem árt:
<style type="text/css">
div.fejlec {background-image: url(img/centerhead.jpg);
background-repeat: repeat-x;}
...
A szóban forgó képdarab:
oldal tetejére
Keretek (frame-s lapok)
Kategória:
Html - Hozzáadva:
2007. 03. 10.
| Módosítva: 2008. 01. 20.
<html>
<head>
<meta id="author" content="Sümegi Zoltán">
<title font-family="arial">
Sümegi Zoltán oldala - programozás, dolgozatok</title>
<link rel="shortcut icon" href="favicon.ico" />
</head>
<frameset cols="100,*" frameborder="0" framespacing="0">
<frame src="oldal.htm" scrolling="no">
<frame id="kozep" src="index.html" scrolling="auto">
</frameset>
</html>
A frame-k nélküli, de hasonló hatású CSS alapú megjelenítéshez ad tippeket
Sikos László - Stíluslapok a weben c. könyve.
oldal tetejére
XML lap CSS/XSL stíluslappal formázva
Kategória:
XML - Hozzáadva:
2007. 04. 10.
Adatok egy meghatározott szerkezet szerinti megjelenítési formája az újabb html
ajánlások szerint az XML szerkezet. Vannak formai megkötések, több formázási lehetőség
adódik (bár böngészőnként eltérő lehet - xml + CSS majdnem azonos megjelenítést
tesz lehetővé IE és Mozilla, stb. alatt is). Az xml szerkezete (a minta tartalmazza
a stíluslap, és az adatszerkezet leírását - bonyolultabb adatszerkezet megkötéseket
célszerű külön dtd kiterj. fájlba helyezni). Az IE kivételével CSS lapból
használható a :before és :after metódus, ami az adatok kiírása előtti,
és utáni pozicióba szöveget, vagy más elemet (pl. formázáshoz képet) jelenít meg.
Az XML adatszerkezet ettől függetlenül képes <img> taggal képet adatként
megjeleníteni.
A fájl elég bonyolult szerkezetűnek tünhet, DE az ilyen fájlok nem "kézi" szerkesztésre
szántak, hanem pl. egy dinamikus weblap /pl. PHP/ generálja le SQL, vagy más adatbázis
adatai alapján... (ezt kézzel készítettem :) Az IE eltérő megjelenítése miatt egy
Javascript vizsgálattól függően történik a lap4ie.xml (IE-hez), és lap4.xml (többi
böngésző) megjelenítése. A megnyítási módot Konqueror böngésző előugró ablaknak
tekinti, és alapbeállítással (intelligens blokkolás) blokkolja. A kód a lap4.htm
helyére tölti az xml fájlokat:
<html>
<head>
<script type="text/javascript">
browser=navigator.appVersion;
browser_version= parseInt(navigator.appVersion);
prognev=navigator.appName;
if (browser.indexOf("MSIE")< 0) {
window.open("lap4.xml","_self")
}
else {
window.open("lap4ie.xml","_self")
}
</script>
</head>
<body>
</body>
</html>
A két xml fájl az első soraiban tér el (a stíluslapok meghatározásában). Az IE-hez
tartozó stíluslap info:
<?xml version="1.0" encoding="ISO8859-2" ?>
<?xml-stylesheet href="lap4.xsl" type="text/xsl" title="alap" ?>
A többi böngészőhöz tartozó stíluslap info:
<?xml version="1.0" encoding="ISO8859-2" ?>
<?xml-stylesheet href="lap4.css" type="text/css" title="alap" ?>
Később lehet kipróbálom, hogy a jávascript töltheti-e az xml lap stíluslapját -
ekkor nem kellene két külön xml fájl - bár elvileg az xml fájlt stíluslap info-val
együtt php script fogja legenerálni, így egyébként is csak egy xml fájl fog készülni.
Az xml fájlban kapott helyet az adatszerkezetre vonatkozó előírás (pl. kötelezően
jelenlévő mezők, stb):
<!DOCTYPE FEJLESZT [
<!ELEMENT FEJLESZT (KATEGORIA)* >
<!ELEMENT KATEGORIA (NEV, PROGRAM) >
<!ELEMENT PROGRAM (prog_neve, weblap?, LEIRAS, NET_LEIR?,
JOGALLAS, PLATFORM, KIEGESZITESEK?) >
<!ELEMENT KIEGESZITESEK (kieg_web?, KIEG_ADAT)* >
]>
Az Xlink xml bővítést sajnos csak a Firefox (2.0) használja, a többi részére más
technikát kell keresni. Maga az adatszerkezet az Xlink kiegészítéssel - így
a hivatkozások használhatóak:
<FEJLESZT xmlns:xlink="http://www.w3.org/1999/xlink">
<KATEGORIA>
<NEV>Web</NEV>
<PROGRAM>
<programnev>Bluefish</programnev>
<weblap xlink:type="simple" xlink:href="http://bluefish.openoffice.nl" xlink:show="new"></weblap>
<LEIRAS>webszerkesztő, több programozási nyelvhez használható (Html,PHP, CSS, SQL, stb.), segíti a program írását szintaxis ellenőrzéssel, és kiemeléssel. Sablon nyelvi eszközök beillesztésével segíti a szerkesztést.</LEIRAS>
<NETLEIR xlink:type="simple" xlink:href="http://wiki.hup.hu/index.php/Bluefish" xlink:show="new"></NETLEIR>
<JOGALLAS>Freeware</JOGALLAS>
<PLATFORM>Linux</PLATFORM>
</PROGRAM>
<PROGRAM>
<programnev>Quanta Plus</programnev>
<weblap xlink:type="simple" xlink:href="http://quanta.kdewebdev.org" xlink:show="new"></weblap>
<LEIRAS>webszerkesztő, hasonló mint a Bluefish</LEIRAS>
<JOGALLAS>Freeware</JOGALLAS>
<PLATFORM>Linux - KDE</PLATFORM>
</PROGRAM>
<PROGRAM>
<programnev>KImageMapEditor</programnev>
<LEIRAS>Html térkép</LEIRAS>
<JOGALLAS>Freeware</JOGALLAS>
<PLATFORM>Linux - KDE</PLATFORM>
</PROGRAM>
</KATEGORIA>
<KATEGORIA>
<NEV>Java</NEV>
<PROGRAM>
<programnev>NetBeans 5.5</programnev>
<weblap xlink:type="simple" xlink:href="http://www.netbeans.org" xlink:show="new"></weblap>
<LEIRAS>Java IDE Komplett integrált fejlesztőeszköz konzolos, és grafikus alkalmazások készítéséhez. Több kiegészítés elérhető hozzá a download manager-én (vagy weblapján) keresztül. Hamarosan elérhető lesz a 6.0-ás változat.</LEIRAS>
<JOGALLAS>Freeware</JOGALLAS>
<PLATFORM>Windows, Linux</PLATFORM>
<KIEGESZITESEK>
<KIEGADAT>c++</KIEGADAT>
<KIEGADAT>Mobil eszközök fejlesztése</KIEGADAT>
<KIEGADAT>UML</KIEGADAT>
<KIEGADAT>+ még néhány</KIEGADAT>
</KIEGESZITESEK>
</PROGRAM>
<PROGRAM>
<programnev>Eclipse 3.2</programnev>
<weblap xlink:type="simple" xlink:href="http://www.eclipse.org" xlink:show="new"></weblap>
<LEIRAS>Java IDE. Komplett integrált fejlesztőeszköz konzolos, és grafikus alkalmazások készítéséhez. Számtalan kiegészítés, és plugin elérhető hozzá (kereskedelmi, és freeware is). Fejlett Update Manager funkcióval rendelkezik, számtalan plugin és összetevő (szinte az összes) telepíthető vele.</LEIRAS>
<JOGALLAS>Freeware és kereskedelmi (pluginek is vegyesen)</JOGALLAS>
<PLATFORM>Windows, Linux</PLATFORM>
<KIEGESZITESEK>
<kiegweb xlink:type="simple" xlink:href="http://www.eclipseplugincentral.com" xlink:show="new"></kiegweb>
<KIEGADAT>c++, PHP, stb.</KIEGADAT>
<KIEGADAT>Mobil eszközök fejlesztése</KIEGADAT>
<KIEGADAT>UML (többféle)</KIEGADAT>
</KIEGESZITESEK>
</PROGRAM>
</KATEGORIA>
<KATEGORIA>
<NEV>C/C++</NEV>
<PROGRAM>
<programnev>Qt Designer</programnev>
<weblap xlink:type="simple" xlink:href="http://www.trolltech.com/products/qt/" xlink:show="new"></weblap>
LEIRAS>C/C++ IDE - többplatformos fejlesztéshez</LEIRAS>
<JOGALLAS>freeware és kereskedelmi</JOGALLAS>
<PLATFORM>Linux, Macintosh, Windows (MS VisualStudio-ba integrálható)</PLATFORM>
</PROGRAM>
<PROGRAM>
<programnev>Anjuta</programnev>
<LEIRAS>C/C++ IDE</LEIRAS>
<JOGALLAS>freeware</JOGALLAS>
<PLATFORM>Linux</PLATFORM>
</PROGRAM>
<PROGRAM>
<programnev>Glade</programnev>
<LEIRAS>GUI tervező (Gnome, Gtk, stb. ingyenesen felhasználható grafikai elemekkel)</LEIRAS>
<JOGALLAS>freeware</JOGALLAS>
<PLATFORM>Linux</PLATFORM>
</PROGRAM>
</KATEGORIA>
<KATEGORIA>
<NEV>Grafika</NEV>
<PROGRAM>
<programnev>Gimp 2.0</programnev>
<weblap xlink:type="simple" xlink:href="http://www.gimp.hu" xlink:show="new"></weblap>
<LEIRAS>Kép-, és fotó-szerkesztő, valamint manipulátor eszköz. Alkalmas layerek (rétegek) kezelésére, szinte minden grafikai fájlformátumba tud exportálni. "Photoshopra kihegyezett tutorial" átirata készülőben több nyelven...</LEIRAS>
<NETLEIR xlink:type="simple" xlink:href="http://www.gimp.hu" xlink:show="new"></NETLEIR>
<JOGALLAS>Freeware</JOGALLAS>
<PLATFORM>Linux, Windows /GTK telepítés szükséges - leírás a letöltésnél/</PLATFORM>
</PROGRAM>
<PROGRAM>
<programnev>Album Shaper</programnev>
<weblap xlink:type="simple" xlink:href="http://albumshaper.sourceforge.net/" xlink:show="new"></weblap>
<LEIRAS>Fotóalbum generátor webes megjelenítéshez. Többféle stílus közül lehet választani, könnyen kezelhető.</LEIRAS>
<JOGALLAS>Freeware</JOGALLAS>
<PLATFORM>Linux, Windows</PLATFORM>
</PROGRAM>
</KATEGORIA>
<KATEGORIA>
<NEV>Egyéb</NEV>
<PROGRAM>
<programnev>Cervisia</programnev>
<weblap xlink:type="simple" xlink:href="http://cervisia.kde.org/" xlink:show="new"></weblap>
<LEIRAS>Könnyen használható CVS kliens (Konkurens verziókövető rendszer - több fejlesztő közös fájlokon történő fejlesztésének támogatása). Helyi lemezen történő használatára is alkalmas, nagyon sokféle szolgáltatással támogatja a különböző verziójú fájlok nyilvántartását (korábbi verziók fájljainak megőrzése, összehasonlítás, és változások kiemelése, visszatérés korábbi verziókhoz, stb.).</LEIRAS>
<NETLEIR xlink:type="simple" xlink:href="http://cervisia.sourceforge.net/documentation/index.html" xlink:show="new"></NETLEIR>
<JOGALLAS>Freeware</JOGALLAS>
<PLATFORM>Linux</PLATFORM>
</PROGRAM>
</KATEGORIA>
</FEJLESZT>
Az Xlink paraméterei új ablakban történő megnyitást eredményeznek, és kiegészítő
szöveg a CSS lap szerinti :before -nál megadott szöveg lesz (a hivatkozás
szövege). Lehetne az adattagok jelei között is megadni a hivatkozás szövegét, pl:
<weblap xlink:type="simple" xlink:href="http://bluefish.openoffice.nl" xlink:show="new">Bluefish</weblap>
A stíluslap nélküli megjelenése (böngészőtől függően más lehet):
A stíluslap lap4.css nevű fájl tartalma (javított, kategória elnevezéseket
is tartalmaz - amit IE nem értelmez) :
body {background-color: #f7fbfd}
FEJLESZT {text-align: center}
FEJLESZT:before {content: "Szoftverfejlesztés Linux alatt";
font-size: 32pt; text-align: center; color: black}
NEV {display: block; font-size: 20pt; font-style: oblique;
color: #0000FF; margin-top: 1cm; margin-left: 40%;
background: url(img/gomb01.jpg) repeat-x;
width: 3cm;}
PROGRAM {display: block; text-align: left; background: #FFEFD5;
margin-left: 10%; margin-right: 10%;}
PROGRAM:after {display: block; content: " - "; color: #FFEFD5;
background: url(img/atmenetv4.jpg) no-repeat bottom right;}
programnev {display: block; font-size: 15pt; font-weight: bold; text-align: center;
color: #191970; margin-left: 10%; margin-top: 10px; width: 170px;
background: url(img/gomb02.jpg) repeat-x;}
weblap:before {content: "weblap";}
weblap {display: block; color: #0000FF; margin-left: 15%; text-align: left}
LEIRAS:before {content: "Leírás: "; color: black; font-weight: bold;}
LEIRAS {display: block; color: #124e91; text-align: left;
width: 300px; margin-left: 25%;
background: url(img/atmenetv2.jpg) repeat-y;}
LEIRAS:after {display: block; content: " - ";
color: #FFEFD5;
background: url(img/atmenetv3.jpg) no-repeat bottom right;}
NETLEIR:before {content: "weblap a leíráshoz";}
NETLEIR {display: block; color: #0000FF; margin-left: 25%; text-align: left}
kiegweb:before {content: "kiegészítések weblapja";}
kiegweb {display: block; color: #0000FF; width: 300pt; margin-left: 10%}
KIEGESZITESEK:before {content: "Elérhető fontosabb kiegészítések: ";
color: black; font-weight: bold;}
KIEGESZITESEK {display: block; text-align: left; margin-left: 10%}
KIEGADAT {display: list-item; width: 300px; margin-left: 2cm;
text-align: left}
JOGALLAS:before {content: "Jogállás: "; color: black; font-weight: bold}
JOGALLAS {display: block; margin-left: 15%; text-align: left}
PLATFORM:before {content: "Platform: "; color: black; font-weight: bold}
PLATFORM {display: block; margin-left: 15%; text-align: left}
Az IE xml fájljához tartozó XSL stíluslap tartalma:
<?xml version="1.0" encoding="WINDOWS-1250" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<html>
<head>
<STYLE TYPE="text/css" MEDIA="screen, projection">
@import url(lap4ie.css);
</STYLE>
</head>
<body>
<h1>Szoftverfejlesztés Linux alatt</h1>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
<xsl:template match="FEJLESZT"><xsl:apply-templates/></xsl:template>
<xsl:template match="FEJLESZT/KATEGORIA"><xsl:apply-templates/></xsl:template>
<xsl:template match="FEJLESZT/KATEGORIA/NEV"> <div id="NEV"> <xsl:value-of select="."/> </div> </xsl:template>
<xsl:template match="FEJLESZT/KATEGORIA/PROGRAM"> <div id="PROGRAM" > <xsl:apply-templates/> </div><br/> <div id="prog" ></div> </xsl:template>
<xsl:template match="FEJLESZT/KATEGORIA/PROGRAM/programnev"> <div id="programnev"> <xsl:value-of select="."/> </div></xsl:template>
<xsl:template match="FEJLESZT/KATEGORIA/PROGRAM/weblap"> <div id="weblap"><b>weblap:</b> <xsl:value-of select="."/> </div> </xsl:template>
<xsl:template match="FEJLESZT/KATEGORIA/PROGRAM/LEIRAS"> <div id="LEIRAS"><b>Leírás:</b> <xsl:value-of select="."/> </div> </xsl:template>
<xsl:template match="FEJLESZT/KATEGORIA/PROGRAM/NETLEIR"> <div id="NETLEIR"><b>weblap leíráshoz:</b> <xsl:value-of select="."/> </div> </xsl:template>
<xsl:template match="FEJLESZT/KATEGORIA/PROGRAM/KIEGESZITESEK"> <div id="KIEGESZITESEK"><b>Fontosabb kiegészítések:</b> <xsl:apply-templates/></div> </xsl:template>
<xsl:template match="FEJLESZT/KATEGORIA/PROGRAM/KIEGESZITESEK/KIEGADAT"> <div id="KIEGADAT"> <xsl:value-of select="."/></div> </xsl:template>
<xsl:template match="FEJLESZT/KATEGORIA/PROGRAM/JOGALLAS"> <div id="JOGALLAS"><b>Jogállás:</b> <xsl:value-of select="."/> </div> </xsl:template>
<xsl:template match="FEJLESZT/KATEGORIA/PROGRAM/PLATFORM"> <div id="PLATFORM"><b>Platform:</b> <xsl:value-of select="."/> </div> </xsl:template>
</xsl:stylesheet>
Az XSL lap itt elsődlegesen az adatfeldolgozást, és az adatok előtt, ill. után megjelenítendő
szövegeket, és html elemeket írja le, a tényleges formázást a beimportált CSS stíluslap
végzi.
A lap4ie.css stíluslap nevű fájl tartalma - az xsl lapba is meg lehetett
volna adni (itt az id alapján formáztam - és sajnos nem teljesen olyan a
megjelenés, mint a többi böngésző esetén, a kategória és leírás után tervezett 1-1
díszitő kép helyzetét még nem tudtam beállítani... ) :
body {background-color: #f7fbfd; text-align: center;}
h1 {font-size: 32pt; color: black}
#NEV {display: block; font-size: 20pt; font-style: oblique;
color: #0000FF; margin-top: 1cm;
background: url(img/gomb01.jpg) repeat-x; width: 3cm;}
#PROGRAM {display: block; text-align: left; background: #FFEFD5;
margin-left: 10%; margin-right: 10%;}
#prog { display: block; margin-left: 10%; margin-right: 10%;
background: url(img/atmenetv4.jpg) no-repeat right;}
#programnev {display: block; font-size: 15pt; font-weight: bold; text-align: center;
color: #191970; margin-left: 10%; margin-top: 10px; width: 170px;
background: url(img/gomb02.jpg) repeat-x;}
#weblap {display: block; color: #0000FF; margin-left: 15%; text-align: left}
#LEIRAS {display: block; color: #124e91; text-align: left;
width: 300px; margin-left: 25%;
background: url(img/atmenetv2.jpg) repeat-y;}
#leir {display: block; content: " - ";
color: #FFEFD5;
background: url(img/atmenetv3.jpg) no-repeat bottom right;}
#NETLEIR {display: block; color: #0000FF; margin-left: 25%; text-align: left}
#kiegweb {display: block; color: #0000FF; width: 300pt; margin-left: 10%}
#KIEGESZITESEK {display: block; text-align: left; margin-left: 10%}
#KIEGADAT {display: list-item; width: 300px; margin-left: 2cm;
text-align: left}
#JOGALLAS {display: block; margin-left: 15%; text-align: left}
#PLATFORM {display: block; margin-left: 15%; text-align: left}
(Megvalósításra vár még a hivatkozás jellegű szövegek link-é alakítása IE részére
is. - Ez a feladat az asp-re vár, ott egységes adatkezeléssel lehet xml adatokat
is feldolgozni /SQL adatokhoz hasonlóan/.)
ugrás a lapra
oldal tetejére
Elsötétedő háttér kép megjelenítéskor
Kategória:
Javascript - Hozzáadva:
2007. 04. 15.
| Módosítva: 2009. 01. 31.
Az alapelv az, hogy a tényleges tartalom felé helyezett
transparent id-val
rendelkező
<div> tag által beállított háttér átlátszóságát átállítjuk
Javascript
for... loop ciklusa segítségével 85%-ig (ez már majdnem átlátszatlan
- itt fekete), majd egy eddig kiterjedés nélküli képnek a méreteit beállítjuk a
tényleges méretre. A képen történő kattintásra az elsötétedés fordítja fog végbemenni,
és a kép méreteit visszaállítjuk a korábbi kiterjedés nélküli méretre. Képek "thumbnail"
nézetéhez ennek a második "előbukkanó" nagyobb képnek az
src tulajdonságát
át is állíthatjuk, így mindig a kívánt kép jelenik meg (a betekintő kisméretű képek
paraméterként adnák át a megjelenítendő kép címét). A hivatkozásban leírt
CSS átlátszóság lett kiegészítve Javascript "animációval",
és a
transparent által közrefogott területben elhelyeztem egy
<pre>
tagot, aminek a kiterjedését teljes takarásra állítottam, így az IE-től eltérő böngészők
is teljes lefedéssel jelenítik meg a transparent hátterét. (Több más egyéb tartalom
letakarásához esetleg ezt a tagot is pozicionálni kell, és állítani kell a méretén
is .) A tutorial szerinti több böngésző által ismert tag beállítása történik egyszerre.
A
setTimeout('sotetit()',1) föggvény második paramétere milisecundum, a sötétítés/világosítás
sebességét nem befolyásolja (kis értékeknél). A sebességet az önmagát meghívó függvény,
és utasításainak száma befolyásolja. Lehet esetleg gyorsítani, ha böngészőnként
külön függvény végzi a beállításokat, vagy ha a sötétedés lépésközeit változtatjuk
(túl kevés lépésnél a színátmenet nem olyan látványos). Az "animáció" akkor is működik,
ha a flash tartalmak tiltottak, vagy nincs flash-plugin telepítve. Javascript tiltása
esetén is megjelenik az új kép.
ugrás a mintapéldára
Stíluslapja:
p.mod {
color: #A85400;
}
pre {
width: 1024px; height: 768px;
}
#nagy {
display: block;
height: 1px;
left: -1px;
position: absolute;
top: -1px;
width: 1px;}
.szoveg {
display: block;
position: absolute;
top: 410px;}
#transparent {
background: #000000;
display: block;
width: 1px;
position: absolute; bottom: 1px; right: 1px;
}
html fájl:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
<meta id="author" content="Sümegi Zoltán"/>
<meta http-equiv="pragma" content="no-cache"/>
<meta http-equiv="Expires" content="-1"/>
<title>Sümegi Zoltán oldala - programozás, dolgozatok</title>
<link rel="stylesheet" href="sotetit.css" type="text/css" />
<script type="text/javascript">
<!--
var i=0
var j=0
function setujkep(){
document.getElementById("transparent").style.top="0px";
document.getElementById("transparent").style.left="0px";
document.getElementById("transparent").style.width="1024px";
sotetit()
}
function setregikep(){
vilagosit()
document.getElementById("transparent").style.bottom="1px";
document.getElementById("transparent").style.right="1px";
document.getElementById("transparent").style.width="1px";
}
function sotetit() {
i= i + 8
j= j + 0.08
if (i < 80) {
document.getElementById("transparent").style.filter="alpha(opacity=" + i + ")"
document.getElementById("transparent").style.opacity=j
setTimeout('sotetit()',1)
}
else {
kirak() }
}
function vilagosit() {
i= i - 8
j= j - 0.08
if (i > 0) {
document.getElementById("transparent").style.filter="alpha(opacity=" + i + ")"
document.getElementById("transparent").style.opacity=j
setTimeout('vilagosit()',1)
}
else { elvesz() }
}
function kirak() {
document.getElementById("nagy").style.height="360px";
document.getElementById("nagy").style.left="150px";
document.getElementById("nagy").style.top="60px";
document.getElementById("nagy").style.width="381px";
}
function elvesz() {
document.getElementById("nagy").style.height="1px";
document.getElementById("nagy").style.left="-1px";
document.getElementById("nagy").style.top="-1px";
document.getElementById("nagy").style.width="1px";
}
//-->
</script>
</head>
<body>
<div id="uj_kep">
<div id="transparent" >
<pre>
</pre>
</div>
<a id="kep1" onclick="setujkep()" > <img src="img/lls.png" alt="teszt_kép1" /> </a>
<div class="szoveg">Kattintani kell a képre.
<br/>
...
</div>
<a id="kep2" onclick="setregikep()" > <img id="nagy" src="img/xml_kinezet_nagy.jpg" alt="teszt_kép2" /> </a>
</div>
</body>
</html>
A Javascript deklarációnál fontos, hogy kapjon kezdőértéket a két ciklusváltozó,
var i=0
var j=0
különben a cikluson belül a hozzáadások után is nulla marad az értékük, és a script
letiltásra kerül, ill. nem a várt módon fog működni. Sajnos Linux alatt (nvidia/ati
driver nélkül) az "animáció" rendkívül lassan megy végbe, és csak 3D támogatást
nyújtó meghajtó telepítése után működik az elvárható módon. Megfontolandó a használata,
mivel a linux felhasználók jelentős része nem telepíti a 3D támogatást.
oldal tetejére
ASP.NET alapok (teljesen kezdő)
Kategória:
ASP.NET - Hozzáadva:
2007. 12. 20.
Az ASP.NET alapú fejlesztésekhez MS környezet javasolt (bár Novell jóvoltából Linux
környezetben a mono develop is alkalmas ASP.NET alapú fejlesztésre). Futtatása az
ASP.NET alapú lapoknak Linux kiszolgálón is lehetséges.
ASP.NET 2.0 alapú fejlesztéshez szükség van a következő ingyenesen használható eszközökre
(ha a kiszolgáló, ahova fejlesztünk támogatja az ASP.NET 3.5 verzióját, akkor a
megfelelő újabb verziót érdemes beszerezni):
- MS Visual Studio
2005 Express (esetleg csak a webdevelop összetevő - példák miatt érdemes C#
és Visual Basic összetevő)
- Ugyanitt MS SQL Server 2005 Express (ha MS SQL adatbázist is akarunk használni)
Érdemes még az AJAX technikákra felkészülni (ingyenesen használható összetevők):
AJAX használatához a devportal.hu leírásával érdemes elindulni (project konfig fájljainak
beállítása - CDBolt_AJAX_utmutato.pdf, vagy google htm). A webfejlesztést pedig
érdemes a devportal, vagy a Visual Studio kezdőkészletének tanulmányozásával kezdeni.
Barát még a Google "ASP.NET".
oldal tetejére
ASP.NET kezdő I.
Kategória:
ASP.NET - Hozzáadva:
2007. 12. 22.
| Módosítva: 2008. 01. 25.
Az első ASP.NET alapú weblaprendszerem a Visual Studio kezdőkészletére alapozva
készítettem. (File - New - Web Site - Personal Web Site Starter Kit) Ez lényegében
egy teljesen működő rendszer Témákkal - web.config nevű xml fájlból választható
a használni kívánt téma /oldalakra vonatkozó stíluslapok csoportja, stb./ - , felhasználó
kezeléssel (login, adatbázis a felhasználóknak, admin oldal), képek kezelése és
egyebekkel.
A kezdő rendszerem én nem bonyolítottam agyon, jelenleg nagyrészt statikus html-szerű,
tehát a tutoriáljaim is egyelőre az aspx fájlok törzsébe vannak ágyazva html kódként.
(Még nem döntöttem el, hogy xml, vagy adatbázis alapú legyen.) Az egyszerűsített
kezelés miatt nincs is szükségem a kezdőkészlet fájljainak és mappáinak többségére.
Töröltem őket, ami később kell, azt a Solution Explorer /jobbra fent/ ablakának
gyökérelemén /pl. C:\WebSite1\ / jobb klikk után hozzáadom. Vagy a megfelelő almappán
- pl. App_Themes\White alatt stíluslap hozzáadása.
Maradtak:
- konfig fájlok
-
Global.asax
-
Handler.ashx
-
web.config
-
web.sitemap
- weblapok / master oldalak
-
Default.aspx
-
Default.vb
-
Default.master
-
Default.master.vb
- könyvtárak
-
App_Data - törlés után is létrejön (a helyi - localhost - kiszolgálón történő futtatások
log adatai - feltölteni nem kell)
-
App_Themes - stíluslapok téma könyvtárai (természetesen saját igények szerint módosítva/létrehozva
a megfelelő stíluslap)
-
Images - képek részére, amik nem a stíluslapokhoz tartoznak (azok a képek az App_themes\..\img
könyvtárba kapnak helyet)
Ezeket a könyvtárakat és fájlokat a webhely gyökerébe (wwwroot mappa) feltöltve
használható rendszert kapunk. A starter kit, és más sablonok is a több weblapot
tartalmazó oldalakat a gyökérben létrehozott xxx.aspx fájlokkal valósítja meg, én
mégis a saját mappában létrehozott Default.aspx fájlokkal valósítottam meg.
Így lehet hivatkozni minden aloldalra a domain\könyvtár\ forma szerint. (web.sitemap
fájlban is meghatározható így az oldalszerkezet, és az ASP.NET menu osztálya is
tudja kezelni) Ez azért jó, mert ha nem minden aloldal ASP alapú még, vagy később
változni fog esetleg az oldal fájlneve, akkor is működni fognak az így megadott
külső linkek. (linkgyűjteményeknek megadott hivatkozások, stb.) Pl. a weblapom főoldala
www.sumegi.eu címen érhető el (valójában www.sumegi.eu\Default.aspx), ez az aloldal
pedig a www.sumegi.eu\html\ címen (valójában www.sumegi.eu\html\Default.aspx), de
mindkettő elérhető lesz, a relatív hivatkozással akkor is, ha php alapú, vagy sima
html alapú lesz az oldal (default.php, index.htm). És nem kell átmódosítani esetleg
több száz külső hivatkozást. (Illetve akkor is működni fognak a linkek.) *
* Ezen már változtattam, mert a navigációt segítő asp vezérlők az XmlSiteMapProvider
működéséből adódóan nem mindig működnek megfelelően, ha a web.sitemap url paramétere
csak könyvtár elnevezést tartalmaz (pl. SiteMapPath vezérlő).
Könyvtárszerkezet:
Nem árt tudni, hogy WebSite-ok esetén nem project készül (ezeket a File menü - New
WebSite -al hozhatjuk létre), hanem Solution. A new WebSite esetén a VS automatikusan
készít a website-hoz Solution-t, aminek a könyvtára a Dokumentumok\Visual Studio 2005 (vagy
2008)\Projects helyen lesz egy Solution fájlokat tartalmazó mappában (pl. WebSites2
mappa). Itt kap helyet néhány speciális fájl is, amit esetleg kézzel kell áthelyezni
a Website mappájába, ha egyedi helyre helyeztük a website-unkat (pl. xml fájlhoz
generált xml schema fájl - ha jól emlékszem). (vagy bekonfiguráljuk a projectünket/website-unkat...)
A Visual Studio minden fájlt a Solution részének tekint a website gyökérmappa alatt
(pl. itt c:\WebSite1\). Időnként a mappa tartalmát frissíteni kell a Solution Explorer
ablakban (pl. képek bemásolása esetén az img könyvtár frissítésig a kódszerkesztő
ablakban hibának jelzi a "nem létező" fájlt).
oldal tetejére
XML linkek (főoldal keresztlinkjei)
Kategória:
XML - Hozzáadva:
2007. 12. 27.
Egy kis dinamizmust akartam vinni a főoldal linkjeinek megjelenítésébe, ezek azok
a tartalmak, amelyek jelentősen változnak. A választás xml fájlból történő beolvasásra
esett, ezt akár szövegszerkesztővel tudom szerkeszteni. Ha már adatszerkezetben
tárolom a linkeket, akkor már kap néhány extra adatmezőt, ami segít karbantartani
és megjeleníteni. A plusz adatmezők a linkekre vonatkozóan: leírás, hozzáadva, lejár.
Ezen kívül a linkek csoportokba vannak összefogva (szöveges link, banner, linkcsoport
/partnerek, hivatkozások/). Az xml fájlban a linkek egy-egy CDATA mezőben kaptak
helyet, így nem kell a feldolgozásnál vizsgálni az egyéb paramétereket (pl. img
tag tartalmaz-e id vagy más tulajdonságot - némelyik tag esetén hibát okoz, ha feltétel
nélkül kiírásra kerül a tulajdonság üres sztring adattal). A fájl szerkezet így
alakult:
<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/xsl" href="ref.xsl"?>
<linkSet>
<linkSetGroup title="Partnerek">
<imgGroup>
<link description="linkcsere" added="2007.12.20." expiration="">
<![CDATA[<a href="http://www.startlap.hu">
<img src="img/startlap.gif" alt="Startlap" />
</a>]]>
</link>
<link description="kereső" added="2007.12.20." expiration="">
<![CDATA[<a href="http://www.google.hu/">
<img src="img/google.gif" alt="Google" />
</a>]]>
</link>
...
</imgGroup>
<textGroup>
<link description="linkcsere" added="2007.12.20." expiration="">
<![CDATA[<a href="http://www.hudir.hu">www.hudir.hu</a>]]>
</link>
...
</textGroup>
</linkSetGroup>
<linkSetGroup title="Hivatkozások">
...
</linkSetGroup>
</linkSet>
Az xml fájl önálló megjelenítéséhez készült egy ref.xsl nevű fájl is, amivel minden
böngésző alatt a megtervezett módon jelenik meg a fájl tartalma (pl. h5 tagok között
a csoport neve, stb.). A weblapon történő megjelenítéshez ez a fájl nem szükséges,
ott az ASP.NET feldolgozó rutinja végzi a szükséges tagok megfelelő helyre történő
beillesztését, és a faszerkezet bejárását. (Illetve a megjelenítéshez nem szükséges
adatok kihagyását is.) Ez a fájl nem a CDATA szerinti szerkezetet dolgozza fel,
hanem a CDATA nélkül (a jelenlegi xml fájl megjelenítésére így nem is alkalmas),
annak helyén az a tagot tekinti gyermek ágnak. Az a tagon belüli további tagokkal
pedig nem foglalkozva, a teljes tartalmat megjeleníti. Az xsl fájl kódja:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="linkSet">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="linkSet/linkSetGroup">
<h5>
<xsl:value-of select="@title"/>
</h5>
<xsl:apply-templates select="imgGroup"/>
<br />
<xsl:apply-templates select="textGroup"/>
</xsl:template>
<xsl:template match="linkSet/linkSetGroup/imgGroup">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="linkSet/linkSetGroup/textGroup">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="linkSet/linkSetGroup/imgGroup/link">
<xsl:copy-of select="a" />
</xsl:template>
<xsl:template match="linkSet/linkSetGroup/textGroup/link">
<xsl:copy-of select="a" />
<br />
</xsl:template>
</xsl:stylesheet>
Az xsl fájl feldolgozója nem for-each szerkezetre épülő, hanem az apply-templates
segítségével építi be a gyökértől (/) kezdve a gyermek ágakat, és azok tartalmát.
Egy-egy blokkban az apply-templates csak a közvetlen leszármazott ág olyan tartalmát
jeleníti meg, ami nem tulajdonságként lett megadva. Pl.:
<link description="ez egy tulajdonság, és nem fog megjelenni" added="ez sem jelenik meg" expiration="">
<a>EZ A SZÖVEG FOG MEGJELENNI (AZ IMG TARTALOM MÁR NEM, MERT AZ AZ A TAG GYERMEKE)
<img src="img/startlap.gif" alt="Startlap" />
</a>
</link>
Egy-egy blokkon belül az apply-template előtt és után bármi megadható (szöveg, html
tag, stb.), ez minden az ágra vonatkozó elem előtt/után meg fog jelenni. Ha az adott
ág tulajdonságként megadott értékeit is meg kell jeleníteni, akkor azt a value-of
select segítségével tehetjük meg:
<xsl:template match="linkSet/linkSetGroup">
<h5>
<xsl:value-of select="@title"/>
</h5>
...
</xsl:template>
Ha egy ág minden tartalmát meg akarjuk jeleníteni (pl. a tag, tulajdonságai és a
gyermekének számító img tag szintén tulajdonságaival együtt, akkor azt a copy-of
select segítségével tehetjük meg.
<xsl:template match="linkSet/linkSetGroup/imgGroup/link">
<xsl:copy-of select="a" />
oldal tetejére
A forrás lap forrása
Kategória:
Html - Hozzáadva:
2007. 04. 15.
| Módosítva: 2008. 02. 01.
:) Example miatt, ha valaki nem ismerné... (xmp tag az új xhtml-ben már nem érvényes,
helyette pl. pre tag közötti megadás, a
< és a
> jelek entitáskóddal történő
megadással -
< és
>). Az érvényes html kód érdekében a mintakód
&
jelét is érdemes entitáskódra cserélni (
&) - mint ASP.NET feltételes adatmegjelenítés iif szerkezetén belüli
karakterlánc összefűzésére szolgáló jel.
(bővítve az eltérő IE megjelenítés miatt - Linux lapon szükség volt sortörés nélküli
igen hosszú sorokra is).
Ezt megoldottam a padding-bottom: 20px; stílusinformáció beszúrásával. Erre
azért volt szükség, mert az egysoros , de túl széles előre formázott szövegnél az
IE úgy jelenítette meg a viszintes görgetőt, hogy pont letakarta a mintaszöveget.
Ezért kapott a Javascriptes programmal eltérő formázást, amit azóta kiiktattam,
de itt hagyom a példában, mert lehet olyan formázás, ami miatt szükség lehet rá.
Javascript alapon egy egszerű böngésző detektálás megnézi, hogy IE azonosítóval
történik-e a megjelenítés - ilyent használhat Netscape és Firefox is, a formázás
itt is kellemetlen módon alakulna. Ha IE a megjelenítő, akkor csak a
forras.css
stíluslap töltődik be, ha pedig nem IE, akkor második elsődleges lapként (
title=forras
mindkettő esetén) betöltődik a
forras_scroll.css lap is, ez tartalmaz kiegészítést
az
xmp tag-ra.
(Vagy Javascript helyett
feltételes Stílusinformációk IE és Opera esetén.) A böngésző-detektáláshoz
a Javascript kódja:
<head>
<link rel="stylesheet" href="forras.css" title="forras" />
<script type="text/javascript">
browser=navigator.appVersion;
if (browser.indexOf("MSIE")< 0)
{
document.write('<link rel="stylesheet" href="forras_scroll.css" title="forras" />');
}
</script>
Az eredmény IE esetén az pre tag között leírt szöveg teljes hosszáig tart
a szürke háttérszín (ill. lehet, csak az ablak széléig), ha pedig nem IE a megjelenítő,
akkor a forras_scroll.css kiegészíti a pre formázását 700px szélesre (100% helyett).
(ez már ki lett küszöbölve /azthiszem/, már csak 1 stiluslap van)
forras_scroll.css tartalma:
pre {max-height: 200px; width: 700px; overflow: auto;}
A görgetősávot használja is mindegyik böngésző. És a formázás beállítása:
<style type="text/css">
pre {background: #DCDCDC; width: 700}
...
</style>
</head>
<body bgcolor="#f7fbfd">
<a id="fent"></a>
...
<pre><style type="text/css">
a:hover {font-size: 150%; background: #66ff66}
...</pre>
oldal tetejére
ASP.NET feldolgozóval az XML linkek
Kategória:
ASP.NET - Hozzáadva:
2008. 01. 05.
Az ismertetett xml fájl feldolgozása az ASP oldalra elhelyezett XmlDataSource és
egy Repeater vezérlő segítségével történik. Az XmlDataSource vezérlő az oldalra
helyezhető a baloldali Toolbox - Data - XmlDataSource elemét kiválasztva Source
vagy Design nézet esetén is (kódablak/Designer ablak bal alsó része). A Designer
nézetben a smart menüben (bal klikk a vezérlő jobb felső sarkán a háromszögre )
választható hozzá ki az xml fájl, mint adatforrás, a kód szerkesztése alatt pedig
a tulajdonság beírásával ( DataFile="~/references.xml" ).
Design nézet:

A repeater elhelyezésénél erre az adatforrásra (az XmlDataSource ID tulajdonságában
megadott azonosító) kell hivatkozni annak tulajdonságában.
<asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="~/references.xml"
XPath="linkSet/linkSetGroup"></asp:XmlDataSource>
Az xml adatok feldolgozását áganként egymásba ágyazott repeater vezérlő, és az XPath
segítségével oldottam meg. Tutoriál alap volt az
msdn témábavágó ismertetője.
<div class="oldal" id="Div1">
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="XmlDataSource1">
<ItemTemplate>
<h5>
<%#XPath("@title")%>
</h5>
<asp:Repeater ID="Repeater2" DataSource='<%# XPathSelect ("imgGroup/link") %>' runat="server">
<ItemTemplate>
<%#XPath(".")%>
</ItemTemplate>
</asp:Repeater>
<br />
<asp:Repeater ID="Repeater4" DataSource='<%# XPathSelect ("textGroup/link") %>' runat="server">
<ItemTemplate>
<%#XPath(".")%>
<br />
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
</div>
Az XmlDataSource vezérlő XPath tulajdonsága határozza meg a repeater vezérlővel
bejárandó első ágat. Az ág tulajdonságainak kiírása (több különböző tulajdonság
kiírásához ismételni kell a formát, a megfelelő értékkel):
<%#XPath("@title")%>
Majd ezt követi egy, vagy több gyermek ágának feldolgozása további beágyazott repeater
segítségével, amelyeknél az XPathSelect tulajdonsággal határozzuk meg a feldolgozandó
gyermek ágat. Ez nem feltétlen kell, hogy közvetlen gyermek legyen, így lényegében
bármilyen sorrendben, és formában megjelenhetnek az xml adatforrás adatai.
oldal tetejére
ASP.NET kezdő II.
Kategória:
ASP.NET - Hozzáadva:
2008. 01. 16.
ASP.NET alapú fejlesztéshez néhány gondolattal még rendszerezném az alapokat. Nem
árt valamennyi Html és CSS tapasztalat, ami akár menet közben is pótolható referencia
jellegű áttekintéssel a w3cschool
html és w3cschool css
oldalain. Vagy maga a Visual Studio is támogathat, hiszen a Source nézetben begépelt
html nyitó tag után (< "kacsacsőr") felkínálja a lehetséges tag-eket, és azok
tulajdonságait a lehetséges értékekkel együtt (ha fix érték adandó meg).
Érdemes a master oldalakat használni, mert így bonyolult weblaprendszer is
egységes módon jeleníthető meg. A frame-es szerkezetű oldalakhoz hasonlóan (frame-k
nélkül) - minden lap tetején/oldalán/stb. helyen ott lehet az egységes menü, vagy
más elem, amit csak egyszer kell elkészíteni a master oldalon. (Ez jó, mert böngészők
által regisztrált frame-en belüli oldal nem fog megnyílni a hozzátartozó kellékek
nélkül /menü, lábléc, stb./.) A master oldalak egymásba ágyazását támogatja a Visual
Studio 2008 (Express vált. ingyenesen), így lehet eltérő állandó tartalmú aloldalakat
megjeleníteni (pl. mint az én főoldal/aloldal rendszerem eltérő fejléc/menü az aloldalakon).

Új master oldal VS2008 alatt - Solution Explorer - jobb klikk - Add New Item
A gyakorlatban ez úgy néz ki, hogy van egy master oldal, ami minden oldalon egységesen
megjelenő dolgokat tartalmazza (pl. lábléc, oldalmenü/reklám doboza). Ez az oldal
tartalmazza az ASP deklaráción kívül a html és body nyitó, valamint záró tag-eket.
A body tag-en belül lesz a Content Place holder (ebbe lesz beágyazva a többi master/egyéb
oldal - azok a lapok már nem tartalmazhatnak html és body tag-eket). A többi
oldal létrehozásánál kérjük a master oldal kiválasztását (pipa a select master page
előtti jelölőnégyzetbe), ha az oldalhoz akarjuk a master oldalon megadott elemek
használatát. Ha nem akarjuk, akkor ez az oldalunk is kell, hogy tartalmazza a html
és body tag-eket (nyitó és záró).

Új Web Form VS2008 alatt - Solution Explorer - jobb klikk - Add New Item
A master és egyéb oldalakon lévő html elemek formázása stíluslapokkal történhet.
Stiluslapra történő hivatkozást meg lehet adni a web.config fájlban (system.web -
pages styleSheetTheme tulajdonsága - ez minden lapra érvényes lesz). Meg lehet adni a html
tag-et tartalmazó oldalon (head szekcióban, mintha sima html laphoz adnánk meg /itt
akár több stíluslap is/), ez azokra a lapokra lesz érvényes, amelyek ehhez a master
oldalhoz tartoznak /ha a html és head tag master oldalon van/. Meg lehet adni
a Web Form (vagyis az aspx oldal Theme tulajdonságánál). És persze a html elemekre
is alkalmazható egyéni stílus. A fejlesztő eszköz is tud akár elem szintű formázást
skin fájlok segítségével.
A dinamizmust pedig az ASP.NET vezérlőkkel lehet biztosítani. Adatbázis eszközök,
menük táblázatok xml és egyéb adatokból - az új LINQ segítségével akár tömbök is
kezelhetők adatbázisként (Tervezem egy automatizált fájllista beolvasása révén működő
képgaléria programrész megvalósítását - így még adatbázist se kell feltölteni, csupán
a feltöltést kell megcsinálni a képek weblapos megjelenítéséhez /és akár tiszta
html kóddal a végeredményt/).
Olvasni és nézni való magyarul (én túl vagyok az összes videón, nagyon jók):
oldal tetejére
ASP.NET lapok szerkezete
Kategória:
ASP.NET - Hozzáadva:
2008. 01. 16.
A master oldalak mellett a hagyományos asp lapok (Web Form - aspx fájlok) is összeállíthatóak
részekből. Ezt a Web User Control (ascx fájlok) segítségével tehetjük meg. A Web
User Control lapunk a szükséges html kódot vagy asp vezérlőket tartalmazza, és a
használni kívánt lapunkba a register utasítással beregisztráljuk,
<%@ Page Language="VB" MasterPageFile="~/Default.master" AutoEventWireup="false"
CodeFile="Default.aspx.vb" Inherits="doc_Default" Title="Sümegi Zoltán oldala | Dolgozatok"
Theme="Dolgozat" %>
<%@ Register Src="Filozofia.ascx" TagName="filozofia" TagPrefix="uc1" %>
<%@ Register Src="Humanaspektus.ascx" TagName="humanaspekt" TagPrefix="uc2" %>
<%@ Register Src="Tudomany.ascx" TagName="tudomany" TagPrefix="uc3" %>
<asp:Content ID="Content1" ContentPlaceHolderID="Main" runat="Server">
...
majd a megfelelő helyen (html kódon belül) beszúrjuk a beregisztrált azonosítók
használatával.
...
<uc1:filozofia ID="filozofia" runat="server" />
...
Nálam a dolgozataim kerültek egy-egy külön ascx fájlba, de rakhatunk ilyen fájlba
akár menüt, vagy más vezérlőt (igazából erre lett kitalálva). Stíluslapok, és formázás
szempontjából a beszúrás helyén érvényes formázás lesz mérvadó. Tehát egy ilyen
vezérlőt tartalmazó ascx fájl akár különböző módon nézhet ki ha más stílusinformációval
rendelkező lapon lett beszúrva.
Érdemes átnézni az
msdnkk.hu - Webalkalmazások fejlesztése / CSS alapú HTML szerkesztés című
részét, mert a stílusinformációk hatásköréről egy érdekes előadás látható, ami a
Visual Studio képességeit mutatja be.
oldal tetejére
Beágyazott ASP kódok
Kategória:
ASP.NET - Hozzáadva:
2008. 01. 17.
Nem csak a rendelkezésre álló asp vezérlőkkel biztosítható weblapjaink dinamizmusa,
hanem a html kódba ágyazott asp kódrészletekkel is. Ez az alapértelmezett programozási
nyelven (vagy a lap fejlécében meghatározott nyelven) megírt asp script lehet,
ami akár feltételeket és ciklusokat is tartalmazhat. Megadási módja a hivatkozott
tutoriálok szerinti rövid, vagy teljes formájú jelöléssel a html kódba ágyazva lehetséges.
Az én példám a "startlaphoz ad" nyomógomb dinamikus url és title paraméterezésének
előállítása az asp request és page objektumok tulajdonságainak a lekérdezésével.
Igazából valid hivatkozást akartam az eredeti JavaScript-es hivatkozás helyett, de
időközben megértettem, hogy az ellenőrző oldal kifogása a paraméterek elválasztásának
entitáskódban történő megadásra vonatkozott - a validator szerint nem jó az &
jellel történő elválasztás, helyette a & entitáskóddal történő elválasztást
javasolta. (A pozitív oldala a dolognak, hogy lett egy letiltott JavaScript esetén
is működő dinamikus nyomógomb, negatívum a JavaScriptes változattól sokkal hosszabb
hivatkozó szöveg kiírás.)
A beágyazott asp script (
<% utáni
= jel a response.write... rövidítése)
az aktuális url cím beszúrásához:
<%=Request.Url.ToString()%>
Az aktuális fejlécszövege pedig:
<%=Page.Header.Title%>
A teljes hivatkozás így:
<a href="http://www.startlap.hu/sajat_linkek/addlink.php?url=<%=Request.Url.ToString()%>&title=<%=Page.Header.Title%>" id="add_link" title="www.startlap.hu" target="_blank"><img alt="Add a Startlaphoz" src="../img/bookmark.png" /></a>
Az ilyen asp script-es beszúrások bárhol alkalmazhatóak a html kódon belül, még
a tag-ek paramétereiben, vagy a szöveges adatok közé ékelve is.
A beágyazott ASP kódok tanulmányozásához tutoriálok:
Néhány hivatkozás:
oldal tetejére
ASP.NET authentikáció
Kategória:
ASP.NET - Hozzáadva:
2008. 01. 20.
Weboldalunkon kialakított admin felület létrehozásához, vagy felhasználó-kezelés
esetén szükség lesz az ASP.NET konfigurációjára. Website menü - "ASP.NET Configuration".
Itt lehet beállítani a weblapunk eléréséhez engedélyezett felhasználókat és csoportokat,
valamint lehetőség van a weblaprendszer alkönyvtárainak a korlátozására bizonyos
felhasználók, vagy csoportok esetében (pl. anonim felhasználók).
Beállítás:
- A webes beállító lap Security fülén válasszuk a "Select authentication type" funkciót,
és itt a "From the internet" beállítást,
- A Security fülön hozzunk létre csoportokat (ha akarunk - "Enable Roles", majd "Create
..."), pl. adminisztrator, guest, stb.,
- A Security fülön hozzunk létre felhasználókat - "Create user", és jelöljük a megfelelő
csoportba,
- A Security fülön az "Access Rules" alatt beállíthatjuk a felhasználók és csoportok
hozzáférését a Website különböző könyvtáraihoz (enged, vagy tilt).
Kiszolgálónként eltérő lehet az authentikáció. ->
hostingabc.hu/doc/forum
A beállítás után a Website App_Data könyvtárában létrejövő ASPNETDB.MDF és
web.config fájlokkal állapítja meg alkalmazásunk a létrehozott felhasználók és jogosultságainak
a beállításait. (Ezt a könyvtárat is fel kell tölteni az authentikáció használatához.)
Vagy ha nem ezzel az adatbázissal lehet authentikálni, akkor létre kell hozni a
megfelelő adatbázisban a tábláinkat. (pl. fórum szerint export - import)
oldal tetejére
ASP.NET adatbázis-kezelés
Kategória:
ASP.NET - Hozzáadva:
2008. 01. 20.
Több megoldás is létezik adataink elérésére. Létrehozhatunk SQL Server fájlt valamelyik
könyvtárunkba, vagy használhatjuk SQL Server, vagy más adatbázis-kiszolgáló adatbázisait.
Távoli kiszolgálón előzőleg létre kell hoznunk egy vagy több felhasználót, aki az
adatbázisunkhoz csatlakozhat. Létre kell hozni egy vagy több adatbázist (táblákat
ráérünk később).
Adatok elérése SQL adatbázisból SqlDataSource segítségével:
Az asp lapjainkon (aspx vagy ascx, esetleg a master oldalon) el kell helyeznünk
egy SqlDataSource vezérlőt (Toolbox - Data - SqlDataSource), és be kell állítani
a használni kívánt adatbázishoz. Design nézetben az elhelyezett vezérlő smart menüjében
"Configure Data Source".

"New Connection", vagy a meglévő ConnectionString-ek közül választhatunk.

Új csatlakozás esetén adjuk meg az adatokat - szerver neve (távoli kiszolgáló esetén
-> "szervernév, port"), "SQL Authentication" és azonosítók (adatbázishoz előzőleg
létrehozott felhasználók valamelyike), majd adjuk meg az adatbázisunk nevét. Érdemes
egy "Test Connection"-t csinálni. (Itt nincs értelme a jelszavat tárolni, mert ezt
a weblapból kívánjuk majd használni, tehát a web-szervernek kell majd ismerni.) A
kiválasztott adatokkal lehet tovább lépni, és a következő jelszómentési kérdésre
már válaszolhatunk igennel (ekkor a web.config fájlban létrejön a mentett azonosító
adatokkal egy Connection String).

A következő lépésben össze lehet állítani a megjelenítendő adatok sql lekérdezését.
Adatok elérése SQL adatbázisból DataSet séma fájl segítségével:
Hasonló a Java nyelv entitás alapú adatkezeléséhez (pl. Hibernate,
vagy NetBeans, stb. IDE által szállított megoldás). Ezt még nem próbáltam ki, néhány
tutoriálból látható a használata:
Adatok elérése SQL adatbázisból LINQ segítségével:
www.msdnkk.hu Következő Generációs .NET Nyelvek és Adatkezelés Induló Készlet
www.msdnkk.hu Webalkalmazások fejlesztése
Az egyik lapom SqlDataSource vezérlője (web.config fájlban tárolt ConnectionString
segítségével csatlakozik):
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:dbwebConnectionString %>"
SelectCommand="SELECT * FROM [html]"></asp:SqlDataSource>
A ConnectionString-ben lett meghatározva a kiszolgáló, az adatbázis neve és felhasználói
adatok. A html nevű tábla minden rekordja lekérdezésre kerül.
Az SqlDataSource csak létrehozza a kapcsolatot az adatbázis felé, az adatok megjelenítése
repeater, datalist, vagy más vezérlő segítségével lehetséges. A különböző vezérlők
más html tag-ek között jeleníthetik meg az adatokat, de nagyjából egyforma a megjelenítéshez
szükséges beállításuk. (Xml adatforrás adataihoz az XmlDataSource vezérlőt használhatjuk
- vagy SiteMapDataSource az asp web.sitemap fájljához.)
A megjelenítés egy újabb tutoriálban lesz.
oldal tetejére
ASP.NET feltételes adatmegjelenítés
Kategória:
ASP.NET - Hozzáadva:
2008. 02. 01.
Időnként szükség lehet az adatbázismezők tartalmától függő kiírásra, mint a tutoriáljaim
módosítási idejének kijelzése. Tetszetősebb a végső html tartalom, ha csak akkor
jelenik meg a "módosítás ideje:" szöveg, ha az adatmező tartalma nem üres. Ezt ismét
egy beágyazott ASP kóddal oldottam meg, felhasználva a Visual Basic iif és
IsNullOrEmpty függvényét. Az adatmegjelenítés a korábban ismertetett Repeater
vezérlővel történik, de a kiírás a vizsgálattól függően vagy egy üres karakterlánc
(""), vagy az összefűzött " | Módosítva: " szöveg és az adatmező tartalma.
<asp:Repeater ID="Repeater2" runat="server" DataSourceID="SqlDataSource1">
<ItemTemplate>
...
<%#IIf(String.IsNullOrEmpty(String.Format("{0:d}", Container.DataItem("changed"))), "", " | Módosítva: " & Container.DataItem("changed"))%>
...
</ItemTemplate>
</asp:Repeater>
C# nyelvű megvalósítása az iif-es szerkezetnek a
Netakadémia mintájában látható.
oldal tetejére
ASP.NET - GridView haladó
Kategória:
ASP.NET - Hozzáadva:
2008. 02. 01.
A tartalomjegyzékemet akartam úgy átalakítani, hogy a rendelkezésre álló összes
információ itt is megjelenjen, és rendezni is lehessen az adatokat. Ezeket a GridView
vezérlő alapból tudja, és stíluslappal történő formázása sem nehéz, egy elég egyszerű
html kódot generál (táblázatot). Fogósabb kérdés a táblázat celláiban megjelenítendő
adat html formázása - hivatkozás készítése az adatból, több adatmező felhasználásával.
Ezt úgy oldottam meg, hogy adatmezők közül a linkhez használt két mező (id
és cim) visible tulajdonságát hamisra állítottam (csak az adatkötés miatt
szükségesek, a jelenlegi formában nem kell megjeleníteni), és beszúrtam egy plusz
adatmezőt, amit template-nek állítottam be (cim mezőt ismét, majd "Convert ... TemplateField",
vagy egyből TemplateField beszúrása). A Template mező ItemTemplate részében
állítottam össze a másik két adatmező felhasználásával a hivatkozást.

Adatmezők szerkesztése.

Adatmezők beállítása.
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1"
AllowSorting="True" BorderStyle="Solid">
<RowStyle BackColor="#E2E9ED" />
<Columns>
<asp:BoundField DataField="id" HeaderText="id" InsertVisible="False" SortExpression="id"
Visible="False" />
<asp:BoundField DataField="cim" HeaderText="cim" SortExpression="cim" Visible="False" />
<asp:TemplateField HeaderText="cím" SortExpression="cim">
<ItemTemplate>
<a href='#n<%#Eval("id")%>'>
<%#Eval("cim")%>
</a>
</ItemTemplate>
<ItemStyle CssClass="tj_cim" />
</asp:TemplateField>
...
</Columns>
<HeaderStyle BackColor="#7C8B9B" />
<AlternatingRowStyle BackColor="#BECAD0" />
</asp:GridView>
A GridView vezérlő formázható auto formázással, de egyénileg is megadható az egymás
alatti sorok elkülönülő formázása (RowStyle és AlternatingRowStyle tulajdonságai,
valamint a táblázat fejléc stílusa).
Egy másik megoldás lehet a HyperLinkField adatmező felhasználása, ahol külön megadható
a navigáció alapjául szolgáló adatmező, és a hivatkozás szövegeként megjelenítendő
adatmező, vagy szöveg. Erre látható példa a msconline.maconstate.edu tutorial oldalán.
oldal tetejére
ASP.NET - FormatString, DataFormatString
Kategória:
ASP.NET - Hozzáadva:
2008. 02. 01.
Több vezérlőnél, vagy asp fügvényein belül is adott a lehetőség egy-egy adatmező formázására. Mintapéldákban
is feltűnhet a {0} jel valamilyen formában. Ennek a jelnek a segítségével lehet az adott adatmező
tartalmát (vagy esetleg paramétereket) megfelelő szövegkörnyezetbe illeszteni, vagy formázni.
<%# ... String.Format("{0:d}", Container.DataItem("changed")) ...
A String.Format függvény úgy formázza a
changed adatmezőt, hogy csak a dátum jelenik meg, az
időérték nem. (Különben megjelenne az óra, perc, mp is.) A példában megadott szerkezetben a
{0}
jelöli a paraméter beillesztésének a helyét.
Adatmezők adatának formázása a képen látható DataFormatString tulajdonság kitöltésével is lehetséges.
Itt a {0} használatával egyéb szöveg is az adat köré építhető. Például ha szép kerek mondatot akarunk:
A módosítás ideje {0} napja.
Egy-egy vezérlőhöz, vagy adatmezőhöz általában csak egy paraméter tartozik, erre a paraméterre egy 0-tól kezdődő sorszámozással
lehet hivatkozni (így lett belőle {0} ). Ha több paraméter is elérhető, például url paraméterek esetén, akkor a további paraméterek
a megfelelő számokkal azonosítva illeszthetőek be. (
{0} {1} {2}, stb. ) Használatukhoz található alkalmazási példa az
msdnkk videói között.
oldal tetejére
Előkészületek PHP alapú fejlesztéshez
Kategória:
PHP - Hozzáadva:
2008. 09. 29.
| Módosítva: 2008. 10. 04.
Megkapta az egyik népszerű ingyenesen használható fejlesztőeszköz NetBeans IDE a PHP fejlesztéshez szükséges kiegészítést, így érdemes néhány szót a népszerűsítése érdekében szólni.
A fejlesztőeszköz mellesleg alkalmas az elsődlegesen Java (kliens és szerveroldali) nyelvű fejlesztés mellett C++ alapú fejlesztésre is, és remek eszközeivel támogatja a Html és CSS fejlesztést is. (szintaxis kiemelés, hibák jelzésével, DOM fa Html struktúrához, gyorstipp-szerű súgó gépeléskor /tapasztalatom szerint néha csak a teljes begépelés után/).
A PHP fejlesztéshez teljesen jól használható, a saját osztályaink változóit, és methodusait (vagy függvényeit) a "->" leütése után már felkínálja, így a beszédesebb függvényneveket is bátran használhatjuk, ezt csak egy listából kell kiválasztani. Itt már értelmet kapnak a private és public, stb. hatókör módosítók is, mert a felhasználás helyén a listán így a nekünk szükséges
változók kerülnek felajánlásra.

PHP támogatás

CSS támogatás

Javascript támogatás (változóból azonosított HTML DOM elem, és a használható tulajdonságai/eljárásai )
A használatbavételéhez szükség lesz néhány kiegészítő program telepítésére (hogy kényelmesen tudjuk tesztelni is, ne csak a web-tárhelyre történő feltöltés után).
A fejlesztőeszköz használható Windows, Linux, Mac OS X és Solaris rendszereken is (lényegében a többi szükséges program is).
Én a NetBeans 6.5 béta változatát vettem igénybe, ez már tartalmazza a PHP kiegészítést, így azt nem kell külön telepíteni (a jelenlegi stabil változat a 6.1-es verz.).
A szükséges programok:
- JDK (jelenlegi verz: Java SE 6 Update 10 RC) - ezt a NetBeans (All készlet is) kérni fogja
- NetBeans IDE 6.5 Beta
- Apache webszerver (célszerű a legújabb változatot - ennek a Download (Apache Download) linkjén behozott lapon keressük meg a nekünk megfelelő készletet /Linux-on a csomagkezelőt érdemes használni/ - pl.: Win32 Binary including OpenSSL 0.9.8h (MSI Installer): apache_2.2.9-win32-x86-openssl-0.9.8h-r2.msi ...)
- PHP 5 (itt is a megfelelő telepítő-készlet, pl.: Windows Binaries -> PHP 5.2.6 installer ...)
Az Apache és PHP telepítése a teszteléshez kell (pl. ha NetBeans-ből a Run Project funkciót választjuk...), el is hagyható ha esetleg van más webszerver telepítve (pl. IIS). PHP számtalan egyéb webszerverhez is beállítható (ezek önmagukban nem tudnak értelmezni PHP scripteket, így valószinüleg kell telepíteni).
A telepítés sorrendje: JDK, NetBeans, Apache, PHP.
Apache és PHP telepítése egyszerű (localhost (domain) és localhost (server name)), az esetleges különös beállításokat később a httpd.conf-nál jelzem.
Leírás: Weblabor - Apache és PHP telepítése kezdőknek Windows rendszereken
Szükség lehet az Apache és a PHP beállítására, ezeket érdemes elvégezni. (Ha nem akarjuk az alapértelmezett helyre tesztelés előtt másolgatni a fájljainkat /vagy ha nem akarjuk a NetBeans-t ilyenre konfigurálni.../.)
Apache beállítása:

Ha van más webszerver is telepítve, akkor lehet, hogy nem jó a 80-as port a részére (pl. IIS már lefoglalja, és ő figyeli itt a kéréseket). Ezt korrigálhatjuk ha megkeressük ezt a részt a
httpd.conf nevű fájlban:
# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, instead of the default. See also the <VirtualHost>
# directive.
#
# Change this to Listen on specific IP addresses as shown below to
# prevent Apache from glomming onto all bound IP addresses.
#
#Listen 12.34.56.78:80
Listen 80
A Listen utáni szám a port száma, ahol az Apache fog válaszolni. (Ha a gyári nem jó, akkor állítsunk be pl. 8088-at, vagy hasonlót. Ezek után a böngészőben a helyi webszerverünk gyökere a http://localhost:8088 -ról érhető majd el.)
Én átállítottam a dokument root bejegyzést a projectem szerinti gyökérkönyvtárra, így a NetBeans Run... parancsa után másolgatás nélkül töltődik be a teszt weblap. Megkeressük ezt a részt a
httpd.conf nevű fájlban:
#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
# DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"
DocumentRoot "R:"
Így most nálam a c:\Program Files...\htdocs nevű mappa helyett az R meghajtó gyökere a documentroot (ha itt lenne egy index.htm nevü fájl, akkor annak a tartalma jelenne meg a böngészőben a http://localhost/ beírása után (vagy a fenti példánál a http://localhost:8088 után) ).
Több különböző project-et pedig az R:\project1, R:\project2, stb. ... mappákból a http://localhost/project1 , http://localhost/project2 , stb. címeken érhetjük így el.
A fájlban ennek a mappának az engedélyeinél is át kell írni a bejegyzést (pár sorral lejjebb):
#
# This should be changed to whatever you set DocumentRoot to.
#
#<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs">
<Directory "R:">
.
.
.
Order allow,deny
Allow from all
</Directory>
(Kikommenteztem az eredeti bejegyzést, és az új Directory ... R: bejegyzést írtam ide.)
Apache ezzel kész, a PHP telepítő beírja ide a szükséges bejegyzéseit (extra modulok, elérési utak, stb.). Ha a Listen portját átírtuk, akkor a NetBeans alatt a projectünk tulajdonságainál is állítsuk be a portot - File menü, Project Properties - (pl.: Project Url -> http://localhost:8088/project1 ).
PHP alapértelmezés szerint csak a <?php ... ?> formát értelmezi, a rövid <? ... ?> formát nem. Ha használni akarjuk így is, akkor a php.ini fájlt is állítsuk be. Minden PHP módosítás után (kiegészítő modul hozzáadása, php.ini változtatása, stb.) Apache restart szükséges. (Állapot monitor, vagy linux-on console...)
Ezek után már csak lapozgatni kell a
PHP kézikönyvet (jórészt magyarul).
oldal tetejére
Tippek böngészőfüggetlen megjelenítéshez II.
Kategória:
Html, CSS - Hozzáadva:
2008. 11. 30.
Amikor nem elég a megfelelően megválasztott html és CSS kód, akkor ki kell alakítani az egyedi böngészőhöz címzett
formázást (pl. stíluslapok feltételes betöltésével).
Ilyen néhány formázás és pozicionálás IE7-nél régebbi IE-vel:
Az ilyen jellegű hibák felderítésére használható az IETester nevű program, amelyet ingyenesen lehet letölteni, és
használni. Képes Ie5.5 IE6, IE7 és IE8 alatti megjelenítés tesztelésére Vista és XP alatt.
http://www.my-debugbar.com/wiki/IETester/HomePage
Ha felmerül az igény több böngészőverziónak címzett stíluslap betöltésére, akkor az a html oldal
head
részében elhelyezett feltételes betöltéssel szabályozhatjuk (ha minden IE verzióhoz akarjuk a stíluslapot):
<!--[if IE]>
<link rel="stylesheet" type="text/css" href="css/base_ie.css" />
<![endif]-->
Ha IE7-nél kisebb verziókhoz akarjuk a stíluslapot:
<!--[if lt IE7]>
<link rel="stylesheet" type="text/css" href="css/ie7_lt.css" />
<![endif]-->
Persze több opció is beállítható:
http://www.positioniseverything.net/articles/multiIE.html
A feltételes tartalombetöltés is megvalósítható, így nem csak stíluslapokat vezérelhetünk, hanem esetleg eltérő
html szerkezetet határozhatunk meg a különböző verzióknak: http://www.java2s.com/Code/HTMLCSS/IE-Firefox/ifltIE7.htm
oldal tetejére
ASP.NET adatbázis-kezelés II.
Kategória:
ASP.NET - Hozzáadva:
2008. 01. 20.
Az SqlDataSource adatforrás adatainak a megjelenítését mutatom be a Repeater
vezérlő segítségével. A kedvenc megjelenítőm, mivel semmilyen plussz html tag-et
nem generál az adatok köré, így a saját elképzelésem szerinti környezetbe helyezhetem
az adatokat. (Persze a többi vezérlő is alakítható, pl. táblázat helyett lehet más
html tag a határoló, formázhatóak, stb.)
Repeater beállításai:
A vezérlőt el kell helyezni a megfelelő helyen (később esetleg felépíthetőek a szükséges
html elemek köré), és a korábban elhelyezett DataSource vezérlőt kiválasztjuk adatforrásként.

Az SqlDataSource vezérlőn beállított lekérdezés eredménye fog megjelenni azokkal
az adatmezőkkel, amelyekre a Repeater "ItemTemplate" blokkjában hivatkoztunk. És
több Repeater vezérlő is elhelyezhető ugyanahhoz az adatforráshoz kapcsolva, más
adatmezők visszaadásához beállítva.
Pl. az oldalaimon a tartalomjegyzékhez használt repeater csak a "cim" adatmezőt
jeleníti meg:
<h3>
Tartalomjegyzék</h3>
<ul>
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1">
<ItemTemplate>
<li><a href='#n<%#Container.DataItem("id")%>'>
<%#Container.DataItem("cim")%>
</a></li>
</ItemTemplate>
</asp:Repeater>
</ul>
A lényeg az "ItemTemplate" elemek közötti adatmező hivatkozás:
<%#Container.DataItem("cim")%>
Ezek is beágyazott asp kódok (kacsacsőr+százalék), tehát akár html elemek tulajdonságainak
a szövegébe ágyazva is elhelyezhetőek, mint a href... esetén.
A tutoriálok megjelenítéséhez pedig a második Repeater a többi adatmezőt is megjeleníti
(a megfelelő html tag-ek közé helyezve az adatmezőket):
<asp:Repeater ID="Repeater2" runat="server" DataSourceID="SqlDataSource1">
<ItemTemplate>
<a id='n<%#Container.DataItem("id")%>'></a>
<h3>
<%#Container.DataItem("cim")%>
</h3>
<%#Container.DataItem("leiras")%>
<p class="info">
Hozzáadva:
<%#String.Format("{0:d}", Container.DataItem("added"))%>
</p>
<a href="#fent">oldal tetejére</a> <br />
<hr />
</ItemTemplate>
</asp:Repeater>
Az a tag id tulajdonsága segítségével lehet a tartalomjegyzékről a
leíráshoz navigálni, ezért az adatbázistábla id tulajdonsága lett erre a célra felhasználva.
A tartalomjegyzék linkjeinek href tulajdonsága is dinamikus lett. Ezt nem kell külön
megadni az adatbázis feltöltésekor, mivel ez egy "számláló mező", ami automatikusan
növekszik. Viszont valid html követelmény, hogy nem kezdődhet számmal az a tag id-ja,
tehát kapott egy fix előtét karaktert (n).
Az adatbázis tábla:
Az id mező beállítása számláló mezőre:
oldal tetejére
Előkészületek Flash alapú fejlesztéshez
Kategória:
Flash, Flex, ActionScript - Hozzáadva:
2008. 10. 05.
Szükséges ingyenes fejlesztőeszközök
Telepítés menete: FlashDevelop 3 telepítése, Flex SDK 3 végleges helyre másolása, FlashDevelop 3 beállítása a Flex SDK használatához, JAVA_HOME
környezeti változó ellenőrzése/beállítása a Flex SDK használatához
FlashDevelop 3 telepítése
Különös beavatkozás nem szükséges a fejlesztőeszköz saját installer-el rendelkezik.
Flex SDK 3 végleges helyre másolása
A Flex SDK 3 tömörített (zip) állományként érhető el, a letöltés után ki kell csomagolni, és tetszőleges helyre kell másolni. (Nálam a C:\Program
Files\Flex SDK 3\flex_sdk_3.0.3.2490 könyvtár lett a helye.) Ezt az elérési utat kell majd megadni a FlashDevelop 3 beállításainál.
FlashDevelop 3 beállítása a FlexSDK használatához
Leírás a beállításhoz:
http://www.flashdevelop.org/wikidocs/index.php?title=AS3
A FlashDevelop indítása után Tools menü - Program settings - plugin-ek közül az
AS3Context - Flex SDK Location bejegyzéshez a létrehozott
könyvtár nevét beírjuk.
JAVA_HOME környezeti változó ellenőrzése/beállítása a Flex SDK használatához
(Ez a beállítás elvileg nem szükséges, ha a win. registry tartalmazza az elérési utat...)
Alapbeállítás szerint a JAVA_HOME környezeti változóban keresi a letöltött FlexSDK-nk a Java 1.6-os futtatókörnyezetet (JRE-t). Ha nincs ilyen
környezeti változónk (MS-DOS parancssor "set JAVA_HOME" kiírja, ha be van állítva), akkor vagy létrehozzuk (vezérlőpult, Rendszer, ...)
, vagy beírjuk a FlexSDK bin könyvtárában lévő jvm.config fájl "java.home=" bejegyzéséhez. (Ha több JRE környezet van telepítve, akkor a legalább
1.6-os verziójú elérési útját írjuk ide, ill. adjuk meg a környezeti változóban /az a könyvtár, ami tartalmazza a JRE mappát (JDK esetén), vagy magának
a JRE-nek a mappája - pl. : "C:\Program Files\Java\jdk1.6.0_07\jre" vagy "C:\Program Files\Java\jre1.6.0_07"/).
Hivatkozások és olvasnivalók
http://www.actionscript.org
ActionScript tutoriálok (Flash és Flex különböző nehézségi szintre, szinte minden témában):
http://www.actionscript.org/resources/categories/Tutorials/
www.flashdevelop.org - fórum, leírások, letöltések
www.adobe.com - ActionScript leírások
oldal tetejére
Html szövegméret
Kategória:
Html - Hozzáadva:
2008. 01. 20.
A szöveg betűméretének formázása történhet pixel-es (px) és pontokkal (pt) történő
megadással. A pixel-es megadásnál a szabott mérettel jelenik meg a szöveg (nagyobb
felbontásokon is az adott pixelszámú méret, tehát kisebbnek fog látszani), a pontokkal
történő megadásnál viszont a betűk mérete követi a felbontást (ugyanazzal a mérettel
fog megjelenni - ugyanúgy fogja lényegében kitölteni a képernyőt). Pixel-es megadást
érdemes használni ha egy adott méretű (nem nyújtható) képen kell elférnie a szövegnek
(pl. a menüm szabott magasságai).
Stíluslapon a formázás pontokkal:
body {font-size: 11pt;}
Pixelekkel:
td.menu {font-size: 12px;}
oldal tetejére