ihaaedit: työkaluja tehokkaan www-julkaisuprosessin rakentamiseen
ihaaedit on Unix/Linux, Apache, PostgresQL ja PHP -ympäristössä toimiva www-sivujen luonti ja päivitystyökalu, jolla erilaisten muuttuvien www-saittien julkaisuprosessi on helppo rakentaa juohevaksi ja toimivaksi.
ihaaedit sopii varsinkin sellaisiin ympäristöihin, joissa on jo kokeneita www-palvelujen tekijöitä joilla on osaamista wysiwyg-työkaluohjelmista sekä HTML:stä.
ihaaedit:illä on jo rakennettu useita dynaamisia www-saitteja pilotteina.
Jos haluat lukea ihaaedit:in koko dokumentaation yhdessä pötkössä tai tulostaa sen kokonaan kätevästi, voit käyttää yhdelle sivulle koottua versiota (joka tietenkin automaattisesti luodaan ihaaeditillä ajan tasaisesti).
Kommentit voi lähettää osoitteella haa@ihaa.com.
Tällä sivulla on kaikki ihaaedit:in dokumentaatio yhdellä sivulla, joka on helppo tulostaa tai lukea kerralla.
1. Johdanto
ihaaeditin käyttö on helppoa
Esimerkki siitä, miten helposti ihaaeditillä sivujen muokkaus onnistuu.
Kun tietojen päivittäjä tulee sivuilla ja antaa ylläpitosalasanan, ilmestyy niille sivuille joilla on muokattavia elementtejä edit-nappula, jota klikkaamalla pääsee muokkaamaan tietoja.
Ylläpitäjä voi vapaasti surffailla saitilla eri sivuilla ja kullakin sivulla on helppo pääsy muokkaamaan sivun tietoja edit-nappulaa klikkaamalla.
Koska sivujen rakentaja voi miettiä mitkä kohdat sivuista ovat muokattavissa ja miten, ei tietojen ylläpitäjän tarvitse murehtia itse sivujen toimivuudesta, vain sisällöstä.
Kun Edit-nappulaa klikkaa, ilmestyy sama sivu näkyviin mutta sellaisena, missä muokattavat kohdat ovat tavallisten www-lomakkeiden tapaan helposti muutettavissa.
Kun muokkaus on tehty, Save-nappula tallettaa tiedot, tai Cancel (peru) -toiminnolla pääsee pois ilman että tiedot muuttuvat.
Jos muutetun sivun tietoja on käytetty muualla saitissa, tiedot päivittyvät heti joka paikkaan missä niitä on käytetty. Esimerkiksi jos uutisen otsikkoa muutetaan, muuttuu uutisotsikko heti myös sivulla jossa on lista uutisista.
ihaaeditillä on myös mahdollista tehdä virtuaalisivuja, joissa kaikilla sivuilla on sama ulkoasu mutta sisältö vaihtuu sivujen välillä. Tällöin uusien sivujen lisääminen sekä vanhojen poistaminen jne. onnistuu myös helposti suoraan www-liittymän kautta.
Toimiva julkaisuprosessi www-sivuille
Miten ratkaistaan yksi www-sivujen suurimmista ongelmista: tietojen päivittäminen helposti.
Perinteinen tapa tehdä www-sivuja vaatii, että www-sivut toteuttanut ammattilainen myös suorittaa kaikki ylläpito- ja muutostoimenpiteet. Tällainen julkaisuprosessi, missä tieto kulkee muutaman toimijan kautta ei käytännössä toimi kovin hyvin.
Paras ratkaisu olisikin sellainen, missä www-sivujen toteuttaja rakentaa perusrakenteet ja sivujen ulkoasun, mutta itse tietojen syöttäminen, päivittäminen ja pitäminen ajan tasalla tapahtuu suoraan niiden toimesta, joilla tieto on.
Käytännössä tämä onnistuu niin, että tiedot voi päivittää suoraan www-palveluun omalta www-selaimelta mistä tahansa käsin aina kun päivitystarve syntyy.
ihaaedit:issä on lisäksi se hyvä puoli, että sen käyttö on todella selkeää ja intuitiivista: Kun salasana on annettu, tietoja voi muokata suoraan siellä missä ne ovat, halutulla sivulla juuri siinä kohdassa missä tieto näkyy.
2. Perusteet
Muokattavista elementeistä
käytettävissä on monenlaisia mahdollisuuksia
Ensin esimerkki siitä, miten sivulle saa upotettua muokattavia elementtejä:
<?require('ihaaedit.php')?>
<html>
<head>
<title><?editshow('otsikko')?></title>
</head>
<body bgcolor="#FFFFFF">
<?editstartpage()?>
<H1><?edittext('otsikko')?></H1>
<P>Kotisivuni teksti on <?edittext('teksti',60,5)?>
<P>Sivulla on käyty <%=counter(300)%> kertaa.
<P>Bannerimainos:
<%bannerstart()%>
<%banneritem('http://libplussa.fi/kuvat/plussa75.gif',
'http://www.libplussa.fi',
10)%>
<%banneritem('http://www.iki.fi/iki/iki-logo-16.gif',
'http://www.iki.fi',
20)%>
<%bannerend(468,60)%>
<P><?edittext('pitkateksti',60,10)?>
<?editendpage()?>
</body>
</html>
|
Sivuilla voi olla muokattavia elementtejä mm. seuraavan kaltaisia:
- Muokattava yhden rivin kokoinen teksti
- Muokattava monen rivin kokoinen teksti
- Kuva, jonka voi ladata http-upload -nappulalla ja joka skaalataan www-suunnittelijan määrittelemään kokoon palvelimella automaattisesti (ei tarvitse miettiä tarkkaan kuinka isona skannaa jne)
- Lista bannereita joista valitaan jokin satunnaisesti
-
Elementtien lisäksi sivuille voi rakentaa erilaisia listoja sivujen sisällöistä, mm.
- Lista, missä on halutussa muodossa tietoja halutuilta sivuilta (esim. uutislista ingresseineen, lista sivujen nimistä, tms).
- Kategorioittain jaoteltu lista sivuista, eli sivut lajitellaan jonkin kentän mukaan ensin kategorioihin ja niiden sisällä sitten eri tavalla.
- Haku, joka näyttää hakutuloksena sivut joista löytyy annettu teksti
Yksittäisten sivujen lisäksi on myös helppo rakentaa "kortistohakemistoja", joissa on yksi sivupohja mutta hakemistossa voi olla "monta" käyttäjälle näkyvää sivua joilla kaikilla on sama ulkoasu mutta eri sisältö muokattavissa kentissä.
On myös mahdollista yhdistää sivujen editointi ja tavallinen http-autentikaatio jolloin sivut pääsee katsomaan salasanalla ja voi saman tien muokata niitä sivuja joita käyttäjällä on lupa muokata.
Maksimipituus tekstille missään muokattavassa kentässä on 8000 merkkiä. Kaikissa tulee editoitaessa tekstilaatikon eteen kentän nimi
otsikoksi, niin tietää mikä kenttä on mikäkin.
Käyttämällä näitä toimintoja luovasti, voi saada aikaa kaikenlaista hauskaa ja toimivaa...
Peruskäyttö yksittäisillä www-sivuilla
muokattavia elementtejä www-sivuille
Tämä toimii mille vain sivulle, kunhan ko. saitissa on PHP päällä
.html -tiedostoille.
Tiedoston ihan ekan rivin ihan alussa, siis ennen mitään muuta, pitää
olla:
<%require('ihaaedit.php')%>
Tämä tarvitaan jos käytät mitään tässä dokumentissa mainittuja
toimintoja.
Jos sivulla on editoitavia kenttiä, niin sitten pitää olla
editstartpage ja editendpage, joiden välissä on sitten kaikki
editoitavat kentät. Mieluiten heti BODY-tagin jälkeen (tai ennen
editoitavia kenttiä sopivassa kohdassa, tähän kohtaan tulee Edit /
Save,Cancel,Reset -nappulat):
<%editstartpage()%>
Sivun lopussa viimeisen editoitavan jälkeen ja ennen </BODY>:ä pitää
sitten olla:
<%editendpage()%>
Editoitaessa editstart/endpage:sta tulee formin alku ja loppu, jonka
kautta editointi toimii. Jos sivullasi on muita lomakkeita, tee näin
jolloin editoitaessa lomakkeesi ei näy mutta näkyy tavallisille
käyttäjille:
<%if($editdoedit){%>
(Tässä on lomake, kun et ole editoimassa)
<%}else{%>
...tässä on lomakkeesi koodi, sisältäen <FORM> ja </FORM> -tagit...
<%}%>
Tai parempi on sijoittaa koko lomake HTML:ssä ennen editstartpage:a
tai editendpage:n jälkeen.
Sivujen sisällön muokkaus
ihaaeditillä sivujen muokkaus onnistuu keneltä tahansa
Surffaa sivulle jota haluat editoita. Kirjoita selaimen URL-kentän
loppuun sivun osoitteen perään
?login=1
eli esim. niin että siellä lukee http://jotain/jotain.html?login=1
Sitten selain kysyy tunnusta ja salasanaa, anna ne. Sitten ko. saitin
editoitaville sivuille pitäisi tulla alkuun "Edit" nappula. Voi olla,
että sinulle on annettu oikeudet muokata vain jotain osaa saitista,
silloin Edit-nappula näkyy vain sivuilla joihin sinulla on oikeudet.
Jos haluat muokata jotain, klikkaa ko. Edit-nappulaa, niin saat sivun
muokattavaksi.
Muokkaa sisältöä miten haluat, ja paina sitten Save: muutokset
tallettuvat, Cancel: muutokset ei talletu, Reset: palauta kentät
sellaisiksi kuin ne olivat edit-napin painalluksen jälkeen.
Kun haluat lopettaa muokkauksen ja poistaa selaimestasi
muokkausoikeudet eli "logata ulos", mene sivulle jolla näet
Edit-nappulan ja klikkaa "Logout" -tekstiä. Sivun pitäisi latautua
uudelleen ilman Edit-nappulaa ja varmistuksella joka kertoo, että olet
logannut ulos.
Varsinkin jos käytit jotain yleisöpäätettä, muista AINA logata ulos ja
kokeile vielä että jos menet sitten takaisin sivuille ne eivät ole
enää editoitavissa.
Käyttäjän tunnistus ja sivujen muokkaaminen vaatii, että selaimesi
tukee cookieita eli keksejä, joita käytetään muokkausoikeuden
säilyttämiseen sinä aikana kun yhteys on auki.
Muokkausoikeus poistuu myös automaattisesti kahden tunnin kuluttua
sisäänloggaamisesta, jotta se ei unohtuisi auki pitkäksi aikaa. [TODO:
viimeisestä editistä?]
Sivupohja ja "kortisto"
Käytössä on myös monipuolinen "kortisto"
Jos haluat tehdä hakemiston, missä on sivupohja ja sitten
virtuaalisesti monta sivua (eli hakemisto/jotain.html -> pohja
tiedoilla sivulta "jotain") niin toimi seuraavasti:
Tee hakemisto. Luo sinne tiedosto nimellä .htaccess joka sisältää
(huomaa yksi kohta mihin pitää editoida hakemiston url-osoite)
dokumentin lopussa olevan esimerkin tekstin.
NEW: Luo ko. hakemistoon tiedosto nimellä _pohja.html josta tulee
sivupohja jonka mukaan sivut sitten näytetään. Tämä tiedosto on muuten
samanlainen kuin yhden sivun tapauksessa, mutta alun require-riville
lisätään editmultitemplate() -kutsu, eli:
<?require('ihaaedit.php');editmultitemplate()?>
(Myös vanha systeemi eli editstartpage:en annetaan "multi" lisätieto,
toimii yhteensopivuuden vuoksi <%editstartpage("multi")%>. Uusi
systeemi antaa käyttää muuttujia jo sivun headereissa).
ja mieluiten heti sivun <BODY>-tägin jälkeen. Eli ainoa sivu, jolla
pitää olla multi-määritys, on hakemistossa oleva sivupohja johon sivut
ohjautuvat sopivan .htaccess-määrityksen mukaan.
Jos hakemistossa on jokin tiedosto olemassa, niin se näytetään
sellaisenaan eikä haeta sivupohjan kautta. Ainakin index.html -sivu
kannattaa ehdottomasti tehdä. Muitakin voi tehdä jos haluaa. Muut
hakemisto/jotain.html haut ohjautuu sivupohjaan.
Käytössä on muuten samat muokattavat kentät kuin tavallisillakin
sivuilla ja niiden pitäisi toimia ihan kuin sivut olisivat erillisiä.
Dokumentin lopusta löytyy esimerkeistä myös _pohja.html:n malliesimerkki.
Huomaa, että jos sinulla on multihakemisto /jotain/, niin voit myös
nimetä tiedostot /jotain/virtuaalihakemisto/nimi.html tms, sekin
toimii, eli multihakemiston jälkeinen osa tulee sivun "nimeksi"
kokonaan. Jos haluat, että näillä "alihakemistoilla" on index.html
-sivut, sinun pitää luoda ko. alihakemistot ja tehdä sinne index.html
-tiedostot. Näissä multi-systeemi alihakemistoissa ei pidä olla
_pohja.html:ää tms muuta kuin index.html, ne käyttävät
päämultihakemiston pohjaa ja .htaccessia.
MULTI-YLLÄPITOSIVU: Hakemistossa missä käytät multi-edittiä, voit
helposti päästä editoimaan hakemiston sisältöä käyttämällä maagista
sivunimeä _ihaaedit.html (esim. si.te.dom.ain/news/_ihaaedit.html joka on
systeemin sisäinen automaattinen toiminto. Sivulla on lista sivuista
joista pääsee niitä editoimaan, poistamaan ja voi luoda uusia sivuja.
Note: Eli tämä korvaa vanhan _admin.html -tiedoston.
3. Muokattavat elementit
Bannerit
Vaihtuvat mainosbannerit
Systeemi osaa näyttää joukosta bannereita satunnaisesti
jonkun, ja klikkaamalla banneria joutuu jonnekin. Systeemi toimii
seuraavasti:
Aluksi pitää olla <%bannerstart()%> joka nollaa bannerisysteemin
(samalla sivulla voi olla useita erillisiä bannereita, kunhan jokaista
kohden on oma start-item...-end sarjansa).
Sitten kerrotaan kukin eri mahdollinen banneri yksitellen erillisillä
banneritem-kutsuilla.
<%banneritem('kuvanurl', 'kohdeurl')%>
<%banneritem('kuvanurl', 'kohdeurl', painokerroin)%>
Painokerroin kertoo suhteellisen painotuksen bannerille. Esim.
jos meillä on bannerit painokertoimilla 1,1,1,2 niin
niiden esiintymistodennäköisyys on 20%, 20%, 20% ja 40%.
Oletuspainokerroin on 1.
<%banneritem('kuvanurl', 'kohdeurl', paino, 'yyyymmdd-hhmm')%>
Bannerilla voi olla aika (esim. 20000401-1500" olisi
1.4.2000 klo 15:00) jonka jälkeen sitä ei enää näytetä
eli tällä voi automaattisesti poistaa jonkun bannerin
näkyvistä kun se vanhentuu ja sen voi sitten poistaa
html-koodista ajan kanssa kunhan ehtii. Huomaa, että
päivämäärä ja aika on ''-merkkien sisällä.
Bannerina voi myös olla kuvan sijasta mikä tahansa html-koodin pätkä. Käytä tällöin kutsua banner item html eli:
<%banneritemhtml('htmlkoodia')%>
<%banneritemhtml('htmlkoodia', paino)%>
<%banneritemhtml('htmlkoodia', paino, 'yyyymmdd-hhmm')%>
[html banneri lisätty 1.10.2000]
Lopuksi kerrotaan että näytä banneri tässä sekä bannerin koko (leveys,
korkeus)
<%bannerend(468,60)%>
Huomaa siis, että kaikkien samassa paikassa olevien
bannerikuva-vaihtoehtojen tulee olla saman kokoisia.
Esimerkiksi:
<%bannerstart()%>
<%banneritem('/kuvia/aihe-elaimet.gif','/plussanen/elaimet.html',10)%>
<%banneritem('http://www.cnn.com/logo.gif','http://www.cnn.com',20,
'20000312-1950')%>
<%bannerend(468,60)%>
Banneri ohjautuu uudelle sivulle redirectin kautta, eli www-serverin
lokiin tulee rivi muotoa
... sivu/jolla/banneri/oli.html?bannerjump=koh.de.url&bannerimg=ku.van.url
joita voi sitten jotenkin tilastoida jos haluaa. Eli kullakin rivillä
on millä sivulla on klikattu mitä banneria ja minne jouduttiin.
Bannereiden näyttökertoja systeemi ei laske, rajoita ajan mukaan tai
painokertoimella jos haluat jotenkin rajoittaa bannerin näkymistä.
counter
Laskuri
Sivulle saa laskurin, joka kertoo montako kertaa sivu on
ladattu. Tämä toimii lisäämällä sivulle seuraava kutsu:
<%counter()%>
Näyttää laskurin, aloittaa laskemisen 1:stä
<%counter(10000)%>
Näyttää laskurin. Jos laskurin numero on pienempi
kuin annettu numero (joka on tietty laskettu jostain
aiemmasta lokista tai arviosta jotta laskuri jatkaa
siitä missä oltiin) niin laskuri kasvatetaan siihen
arvoon.
<%counter(10000, 3.141)%>
Voit myös antaa kertoimen, jolla laskuria näytettäessä
numerot kerrotaan (jos haluat arvioida proxyjen yms
vaikutusta asiaan). Tässä tapauksessa eka lataus
antaisi 31410 ja toinen 31413 jne.
Note: Laskurin arvo (siis ei kerrottu kertoimella -arvo) on
sivumuuttujassa jonka nimi on _counter.
editimage
Helposti palvelimelle ladattavat kuvat
Kuvat tallettuvat hakemistoon
/site/lasipalatsi.net/www/editimage ja niihin viitataan vastaavalla
linkillä. Kuvan nimi on "hassu" md5-hash tekstistä
"site/dir/dir/page,name", mutta nimi näkyy kun editoit kuvaa jos se on
määritelty, jos sitä johonkin tarvitsisi. Tuolla md5-sotkulla
varmistetaan, ettei kuvat mene päällekkäin ilman että tiedoston nimi
pitenee liikaa.
<%editimage('nimi')%>
Näyttää ko. kuvan sivulla, ja editoitaessa näyttä file upload
-nappulan.
Esim. <%editimage('kuva')%>
<%editimage('nimi','extraa')%>
... voit antaa jotain extrahöhää, joka tulee IMG-tagin sisään.
Esim. <%editimage('kuva','ALIGN=RIGHT BORDER=0')%>
<%editimage('nimi','extraa',leveys)%>
... tai määrätä, että kuvasta tehdään tietyn levyinen kun se
ladataan palvelimelle. Huomaa, että tämä tuhoaa GIF:fistä
läpinäkyvyyden ja interlace-asetuksen tai voi huonontaa kuvan
laatua skaalauksessa. Kuvan korkeus skaalautuu suhteessa niin
että kuvan muoto ei muutu mutta leveydeksi tulee haluttu.
Esim. <%editimage('naamakuva','',100)%>
<%editimage('nimi','extraa',0,korkeus)%>
... tai määrätä korkeuden, leveys määräytyy tällöin kuvan
skaalaussuhteessa automaattisesti.
Esim. ...<TD><%editimage('sivupylvas','',0,500)%></TD>...
<%editimage('nimi','extraa',leveys,korkeus)%>
... tai määrätä molemmat. Jos kuvan suhteet ovat eri, kuva
venyy tai vääristyy sitten.
Esim. <%editimage('ikoni','ALT="*"',64,64)%>
editlinehidden
EDITLINEHIDDEN: Sama kuin editline, mutta teksti näkyy vain
editoidessa, muulloin sitä ei näytetä lainkaan. Tämä on kätevä
esim. expire-ajan määrittämiseen seuraavalla tavalla:
<%editlinehidden('expire',13)%>
editline(nimi, leveys)
Lyhyt muokattava teksti
EDITLINE: Lyhyt editoitava teksti
<%editline('nimi')%>
Editoitava teksti, editoitaessa yhden rivin laatikko
Esim. <H1><%editline('otsikko')%></H1>
<%editline('nimi',leveys)%>
Sama kuin yllä, mutta voit määrätä halutessasi kuinka monta
merkkiä
Esim. <H1><%editline('pitkaotsikko',50)%></H1>
Jos haluat tallettaa päivämääriä, käytä tällä hetkellä 10 merkkiä
leveää editline -kenttää ja laita sinne päivämäärä 2000-02-20
muodossa, sitten ne tulee lajiteltua oikein tarvittaessa.
Esim. <%editline('paivamaara',10)%>
Katso myös: editsetmenu
editrestfrompage
Tiedon haku näkyviin eri sivuilta
Voit vaihtaa miltä sivulta seuraavat editoitavat
kentät tulee. Näitä voi nyt olla vain useita sivulla ja se vaikuttaa
kaikkiin editoitaviin kenttiin jotka ovat sen jälkeen saman sivun
loppuosassa (ennen ehkä seuraavaa editrestfrompage:a).
Ideana on se, että jos sinulla on vaikka leffainfosivut leffa1.html
leffa2.html leffa3.html joissa on kaikissa samat kentät (otsikko,
esittely, teksti) niin saat kotisivulle helposti yhden/muutamia noista
tällä virityksellä laittamalla sinne otsikko, esittely, teksti
-editoitavat kentät tämän jälkeen, jolloin voit editoitaessa valita
minkä sivun otsikko, esittely, teksti jne -kentät sitten.
Editoitaessa tästä tulee valikko, josta voi valita sivun mistä
kenttien arvot haetaan, tai että ei vaihdeta sitä sivua mistä tiedot
haetaan.
Tämä toimii myös monisivuhakemisto-sivujen kanssa.
Tiedot pitää editoida niiden alkuperäisellä sivulla. Jos haluat jotain
editoitavaa tekstiä samalle sivulle editrestfrompage:n kanssa, niin
laita se ennen ensimmäistä editrestfrompage:a (esim. jos haluat jonkun
tekstikentän johon voi laittaa, että "ei ole mitään tällä hetkellä,
sorry").
<%editrestfrompage('nimi')%>
Maaginen kludgeviritys jolla voi hakea esim. uutisia jostain
läjästä kotisivulle tms.
Esim. jos sulla on moniedithakemisto, jossa on sivut tyyliin:
<%require('ihaaedit.php');editmultitemplate()%>
<%editstartpage()%>
<P>Otsikko: <%editline("otsikko")%>
<%editendpage()%>
Niin voit tehdä vaikkapa index.html -sivun, jossa on valittuna noista
kolme otsikkoa (kenttiä ko. sivulla voisi olla montakin tietty, kunhan
on samat niillä sivuilla joista valitaan tai tulee tyhjää sitten).
<%require('ihaaedit.php')%>
<%editstartpage()%> <!-- Huomaa, tällä sivulla EI "multi" -->
<P>Hieno index.sivu
<P>Seuraavassa valitut kolme juttua:
<P><%editline("mikseimitaan")%> <!-- Tähän voi laittaa jotain t
ekstiä
jota voi käyttää ellei allaolevista mikään ole käytössä -->
<P><%editrestfrompage("eka")%>
<P><%editline("otsikko")%>
<P><%editrestfrompage("toka")%>
<P><%editline("otsikko")%>
<P><%editrestfrompage("kolmas")%>
<P><%editline("otsikko")%>
<%editendpage()%>
Huomaa, että samalla sivulla olevilla editrestfrompage:illa pitää olla
eri nimi, jotta systeemi erottaa ne toisistaan. Jos on vain yksi
editthispage, niin nimeä ei tarvita välttämättä (yhteensopivuus ekan
version kanssa, laita nykyään aina nimi myös).
Jos jostakin editrestfrompage:sta on valittu "(No Change)" -kohta,
niin se tarkoittaa ettei systeemi hyppää sitten sillä kohdalla toisen
sivun tietoihin.
Jos editrestfrompage:sta on valittu "Nothing (empty data)",
silloin sen jälkeen tulevat kentät (mahdolliseen seuraavaan
editrestfrompageen asti) jäävät tyhjiksi, eli millään kentällä ei ole
mitään sisältöä.
<%endeditrestfrompage()%> määritteellä voit lopettaa tämän toiminnon toiminta-alueen ja palata varsinaisen sivun sisältöön.
editsetmenu
Valikko vaihtoehdoista
EDITSETMENU: Valikko, josta voi valita arvon editline-kentälle
olemassaolevista (esim. kategoria jotta tulee samaan kaikki).
<%editline('nimi'); editsetmenu('nimi')%>
Tästä tulee editoidessa tekstikenttä jota voi editoida sekä valikko,
jossa on valmiina kaikki samannimisen tekstikentän eri arvot samassa
hakemistossa olevista tiedostoista. Jos menusta valitsee jotain,
teksti kopioituu editoitavaan kenttään.
Jos haluat hakea kentän 'nimi' arvoja jostain muualta tai koko
saitista, voit antaa lisäargumentin: <% editsetmenu('nimi','/dir') %>,
missä toinen argumentti määrää minkänimisten hakemistojen alta tietoja
etsitään (sivunninem prefix, eli jos sanot /news, se etsisi
ko. nimisen kentän arvoja esim. hakemistoista /news /news/foo
/news/bar jne).
Hakemistonimi "thissubdironly" on alihakemistonimisiä tiedostoja
sisältävän multi-hakemiston tapauksessa vain juuri tämä
"ali"-hakemisto, ei koko multi-hakemisto kaikkineen.
edittag
Yleinen tagi tai linkki
<%edittag('nimi','tag','param')%>
Normaalitilassa tästä tulee HTML:ään teksti muotoa
<tag param="tekstisisältö" extraa>
ja editoitaessa tekstilaatikko, johon voi kirjoittaa jotain.
Jos kentän arvo on tyhjä, silloin ko. tagia ei tule
lainkaan näkyviin (eli se ei tule tyhjällä kentän arvolla
param="" vaan jää kokonaan pois).
Esim. Ime file <%edittag('fileurl','a','href')%>täältä</a>
-> <a href="foo.zip">täältä</a>
<%edittag('nimi','tag','param',leveys)%>
Extraa tulee tagin sisään, voit lisätä jotain muuta vakiohöhää
jos haluat. Samoin kuin image:ssa.
Esim. <%edittag('foo','META','VALUE', 'NAME=keywords')%>
-> <META VALUE="tekstijonkakirjoitat" NAME=keywords>
<%edittag('nimi','tag','param','extraa',leveys)%>
Voit myös määrätä kuinka leveä tekstikenttä on editoitaessa.
Esim. <%edittag('foo','META','VALUE', 'NAME=keywords', 100)%>
edittext
Pidempi muokattava teksti
<%edittext('nimi')%>
Editoitava teksti, editoitaessa textarea.
Esim. <P><I><%edittext('ingressi')%></I>
<%edittext('nimi',leveys,riveja)%>
... voit kertoa montako merkkiä leveä ja korkea textarea:n pitäisi
olla.
Esim. <P><I><%edittext('pitkateksti',60,20)%></I>
EDITSHOW: Näytä teksti jostain, ei editoitavissa.
<%editshow('nimi')%>
Näyttää ko. nimisen kentän sisällön, ei editoitavissa.
Käytä tätä jos haluat jonkun tekstin moneen kertaan.
Esim. Sivun otsikko oli <%editshow('otsikko')%>.
<%editshow('nimi','page')%>
Näyttää ko. nimisen kentän sisällön mainitulta sivulta
saitissa. Käytä johonkin footteriin joka on tietyllä
sivulla ja muualla sitten <%editshow('footer','/index.html')%>
tms.
Esim. Uusin uutisotsikko on <%editshow('newsots','/news/index.html')%>
<%editshow('nimi','page','site')%>
Näyttää ko. kentän ko. sivulta ko. saitista. Älä käytä kuin
erikoistapauksissa (esim. hakea joku uutinen toisesta
saitista toisen saitin sivulla).
Esim. Rexissä menee nyt <%editshow('leffanyt','/index.html','biorex')%>
;
edittextfile(filename, col, row, displaypretty, savepretty)
Muokattava elementti, joka tallettaa tiedon tekstitiedostoon.
Tämä elementti toimii kuten edittext, mutta tallettaa annetun tekstin tavalliseen tekstitiedostoon. Tämä on lähinnä tarkoitettu tapauksiin, missä tietoon halutaan päästä käsiksi myös jossain muualta käsin mistä ei haluta käyttää tietokantaa vaan lukea suoraan tiedostoa.
Tieto talletetaan kahteen tiedostoon eri muodoissa:
- filename
- sisältää tekstin sellaisenaan ilman muutoksia. Kun kenttää näytetään editoitavalla sivulla tai editoidaan, tieto luetaan tästä tiedostosta takaisin. Tekstiä voi siis muuttaa myös muokkaamalla tätä tiedostoa.
- filename.pretty
- (ellei savepretty -arvona ole 0) sisältää tekstin niinkuin ihaaedit sen muokkaa HTML:ksi näyttäessään kenttien sisältöjä. Tätä voi käyttää, jos teksti halutaan esim. Apachen includella lukea html-tiedoston sisään. Oletuksena myös pretty-versio tallennetaan, ellei argumenttina savepretty erikseen anneta 0.
Displaypretty-parametri kertoo, ollessaan 1, että tiedoston teksti näytetään ihaaeditin html-muotoilun läpi (esim. makrot ja automaattinen rivinvaihto-BR/P konversio tehdään) tai ollessaan 0 että tiedoston teksti tulostetaan sellaisenaan.
Molemman nimisiin tiedostoihin pitää olla www-palvelimella kirjoitusoikeus, jotta se voi tallettaa tiedon tiedostoihin.
Erilaiset haut ja listat eivät voi käyttää näitä kenttiä hyväkseen, koska niiden sisältöä ei ole tallennettu tietokantaan.
[Lisätty 4.9.2000]
editvote
Yksinkertainen äänestys
Systeemi tukee simppeleitä äänestyksiä, joissa käyttäjä
valitsee halutuista vaihtoehdoista ja sitten näkee äänestyksen
tulokset samalla sivulla samassa kohdassa painettuaan nappulaa.
<%editvote(nappulan_teksti, valintojen_lukumäärä, sähköpostiosoite, sähköpostikentän_otsikko, muita_kenttiä_lomakkeelle, kiitosteksti)%>
Äänestyssysteemi toimii niin, että sivulle laitetaan kutsu esim.
<%editvote('Äänestä')%>
jonka kohdalle tulee normaalisti lista vaihtoehdoista ja nappula jossa
on annettu teksti (pikku formina), jos äänestää niin samalle kohdalle
tulee äänestyksen tulokset (niiden muotoa voi vielä hieman viilata).
Jos ollaan logattu sisään, näkyy katseltaessa aina tulokset ja
editoitaessa sitten tulee näkyviin editoitava lista kohteiden nimistä
sekä "reset votes" valinta joka tyhjentää äänilaskurit.
Jos kaikki editoitavat nimet ovat tyhjiä, ei äänestys näy ollenkaan
www-sivulla, eli äänestyksen saa pois tyhjäämällä kaikki nimikentät
editoitaessa.
Kutsulle voi myös antaa max. lukumäärän äänestyksen kohteista
(oletuksena 9), eli kutsuun voi lisätä toisen argumentin:
<%editvote('Äänestä', 20)%>
jos haluttuja kohteita on enemmän.
Äänestyksessä voi olla myös sähköpostitoiminto, jolloin käyttäjältä
kysytään sähköpostiosoitetta ja se (sekä muut lomakkeella mahdollisesti olevat mail -alkuisilla nimillä nimetyt lomakkeen kentät) lähetetään tiedoksi haluttuun paikkaan
äänestyksen yhteydessä, esim. arvontaa tms. varten. Tällöin kutsun muoto on
<%editvote(
'Äänestä', // Nappulan teksti
9, // Montako mahdollisuutta max
"aanestys@example.com", // Sähköosoite minne tiedot lähetetään
"Sähköposti:", // Sähköpostikentän otsikko lomakkeella
'Nimesi: <input type=text name=mailnimi>', // lisäyksiä lomakkeen sisältöön html:nä
'Kiitos, tietosi lähetetty' // Kiitosteksti
)%>
eli editvote(nappulan teksti, montako vaihtoehtoa max, osoite minne
äänestäneiden osoitteet lähetetään, osoitekentän otsikkoteksti).
Sähköpostikenttä tulee joka tapauksessa näkyviin, sen jälkeisissä parametreissa voi olla muita form-kenttiä käyttäjän tarpeiden mukaan. Kun ääni lähetetään, näytetään kiitosteksti ja sähköpostiviestiin kerätään kaikki mailjotain (eli mail-alkuiset) kentät lomakkeelta.
Sähköposteista näkyy milloin on äänestetty, millä sivulla ja mikä
annettu sähköpostiosoite oli. Jos sähköpostit ovat Unixissa, on aika helppo grepillä etsiä sieltä annetut äänet jatkokäsittelyä varten, esim. grep '^foo.com/aanestys.html' $MAIL | ...
Yhdellä www-sivulla voi olla vain yksi äänestys. Äänestyksissä ei ole
mitään rajoitusyrityksiä moninkertaiselle äänestämiselle tms.
Note Tämä toiminto tulee muuttumaan joskus selkeämmäksi.
Muokattavien elementtien sisältö ja toiminnot
Elementtien sisällä voidaan käyttää HTML:ää sekä tiettyjä toimintoja, jotka helpottavat tekstin kirjoittamista.
Muokattavissa elementeissä voidaan käyttää mitä tahansa HTML-koodia.
Ole kuitenkin varovainen, että HTML-koodi jota laitat muokattavaan osaan sopii muuhun HTML-koodiin jota on käytetty eri paikoissa muokattavan elementin sisällön ympärillä.
Helpointa on käyttää vain perusmuotoiluja (esim. B, H2, I) muokattavissa elementeissä.
Seuraavat toiminnot ovat kehityksen alla ja niitä varmaan lähiaikoina hieman hienosäädetään ja ne vaihtelevat hieman versioittain (ideat ovat tervetulleita).
Rivinvaihdot mitä tekstissä on käsitellään erityisesti: Yksittäinen rivinvaihto vaihdetaan <BR> -tagiksi, kaksi rivinvaihtoa (eli tyhjä rivi) <P> -tagiksi.
Erikoistoiminnot muodostuvat niin, että editoitaessa yhdelle riville laitetaan rivin alkuun pisteellä (.) alkava toimintosana ja sitten rivin loppu on ko. toiminnon kohde.
- .link url
- .link url linkin sisällä oleva teksti
- Voit tehdä linkin muokattavaan elementtiin kirjoittamalla sinne koko A HREF-HTML määritteen. Linkkejä käytetään kuitenkin usein joten niitä varten on käytettävissä .link -apuri.
Sen muoto on rivinvaihto.link url linkin tekstirivinvaihto.
Esimerkiksi teksti
.link http://www.ihaa.com/english/ ihaa.com Englanniksi
luo linkin ihaa.com Englanniksi
tekstiin. Huomaa miten editoitaessa naputellut rivinvaihdot jäävät pois.
[Toiminto lisätty 26.6.2000]
- .define .nimi jotain tekstiä ja htmlää
- Määrittelee .nimi -nimisen makron, joka laajenee käytettäessä annetuksi tekstiksi.
Esimerkiksi voisit sanoa rivinvaihto.define .td <TD VALIGN=TOP> ja sitten käyttää sitä muodossa rivinvaihto.td solun sisältö jolloin ei tarvitse aina käsin kirjoittaa VALIGN-tekstiä ja voi makron sisältö on helppo muuttaa kerralla.
[Toiminto lisätty 27.6.2000]
4. Haut ja listaukset
editcategorylist
Kategorioittain lajiteltu lista sivuista
Lista kaikista sivuista lajiteltuna
jonkin tietyn kentän mukaan niin, että ko. kentän arvo on "otsikkona"
ja sen alla sitten lista kaikista sivuista halutussa hakemistossa
missä on ko. kentän arvona sama.
Esim: Uutisista lajiteltuna päivitysajan mukaan:
<% editcategorylist(
'/news', // Hakemisto minkä alta listataan sivuja
'kategoria', // Mikä on ryhmittelyn perusteena oleva kenttä
'<H2>4. Haut ja listaukset</H2><P>', // ryhmän otsikon html-pohja
'<A HREF="">editcategorylist</A><BR>', // Sivun html-pohja
'otsikko', // Minkä mukaan saman aiheen sivut lajitellaan
'asc', // Saman aiheen sivut kasvavaan tai kääntäen 'desc'
'asc', // ryhmittelykenttien järjestys, aleneva 'desc'
0 // 1 = näytä kaikki myös expiroituneet sivut, 0 normaali
) %>
Tulostaisi listan, missä on sivuilla olevat kategoria-kenttien
sisällöt kasvavassa aakkosjärjestyksessä H2-otsikoina, ja niiden alla
sitten ne sivut missä on sama kategoria-kentän sisältö otsikko-kentän
mukaan järjestettyinä.
Huomaa, että ryhmän otsikon pohjassa voi esiintyä vain
ryhmän nimi itse, eli jos ryhmittelet kirjoittaja -kentän mukaan, voisi
käyttää vain -muuttujaa.
editpagelinklist
Linkkilista sivuista ylläpidon käyttöön
<%editpagelinklist('hakemistonurl')%>
Tekee simppelin listan ko. hakemiston sivuista linkkeineen sekä
poistolinkin josta kunkin sivun saa poistettua (jos on edit-
logannut sisään). Poistolinkistä "no undo!" -kohdan "!" on ainoastaan
linkkinä, jottei paina vahingossa. Näyttää myös jos sivu on
expiroitunut tai sillä on määritelty expire.
Tarkoitettu lähinnä ylläpitosivuille.
Esim. <%pagelinklist('/uutiset')%>
editpagelist
Automaattinen listaus sivuista
<%editpagelist('hakemistonurl','template','lajittele')%>
Näyttää listan ko. hakemistossa olevista sivuista. Kunkin
sivun tiedot näytetään template:n muodossa, missä
tarkoittaa ko. sivulla olevaa muokattavaa kenttää 'jotain' ja
on url ko. sivulle. 'lajittele' on sen muokattavan kentän
sisältö, jonka mukaan sivut lajitellaan aakkosiin.
Esim.
<UL>
<%editpagelist('/uutiset','<LI><A HREF=">editpagelist</A>',
'otsikko');%>
</UL>
Josta tulee tuloksena HTML-koodia sivulle tyyliin:
<UL>
<LI><A HREF="/uutiset/sivu1.html">Ekan uutisen otsikko</A>
<LI><A HREF="/uutiset/foo.html">Tokan uutisen otsikko</A>
</UL>
<%editpagelist('hakemistonurl','template','lajittele', maxkpl)%>
... kuten yllä, mutta voit määrätä montako ensimmäistä noista
tulee näkyviin.
<%editpagelist('hakemistonurl','template','lajittele', maxkpl, 'desc')%>
... kuten yllä, mutta lajittelee käänteiseen järjestykseen (ajassa
uusin ensin), jos lisäät maxkpl:n jälkeen vielä 'desc' määrityksen.
Jos et halua samalla rajoittaa maxkpl:ää, laita siihen joku 999999.
Esim: seuraava antaa 10 viimeksi editoitua uusin ensin:
<%editpagelist('/hak','','_update',10,'desc')%>
<%editpagelist('hakemistonurl','template','lajittele', maxkpl, 'desc',1)%>
Viimeinen 1 kertoo, että näytetään kaikki sivut, myös ne jotka ovat
ekspiroituneet tai joissa on hideinlists.
editpagesearch
Haku sivujen sisällöstä
<%editpagesearch('hakemistourl','template',$sanat)%>
<%editpagesearch('hakemistourl','template',$sanat, 'sorry')%>
<%editpagesearch('hakemistourl','template',$sanat, 'sorry', maxkpl)%>
<%editpagesearch('hakemistourl','template',$sanat, 'sorry', maxkpl,0)%>
Tekee haun ko. sivuista näyttäen ne sivut, joilla esiintyy
joku annetuista tekstipalasista jossain sivulla olevassa
muokattavassa kentässä.
Sorry-teksti näytetään jos mitään ei löydy. Maxkpl kertoo montako
max. näytetään hakutuloksia. Maxkpl:n jälkeen voi laittaa parametrin
0 (show all = ei) joka kertoo, ettei näytetä expiroituneita ja piilotettuja
sivuja, muuten haku näyttää nekin.
Template toimii samoin kuin listauksessa.
Esim. Tässä esimerkki kokonaisesta hakusivusta:
<FORM ACTION="/haku.html">
<%if (!isset($haku)) { $haku = ""; } %>
Hae sanoilla
<INPUT TYPE=TEXT NAME=haku VALUE="<%=qhtml($haku)%>">
<INPUT TYPE=SUBMIT VALUE="Hae">
</FORM>
<H2>Haun tulokset</H2>
<P><%editpagesearch("/hakemisto",
'<BR><A HREF="">editpagesearch</A>',
$haku)%>
Pelkäksi hakulomakkeeksi riittää sitten esim.
<FORM ACTION="/haku.html">
<INPUT TYPE=TEXT NAME=haku VALUE="" SIZE=15>
<INPUT TYPE=SUBMIT VALUE="Sanahaku">
</FORM>
Kopioi siitä ja muokkaa tarpeisi mukaisiksi. Huomaa, että template:ssa
voi helposti käyttää mitä vain kenttiä joita kaikilla kohdesivuilla on.
Jos haluat hakea saitin kaikista sivuista, anna hakemistoksi "".
editshow
Näytä tietyn kentän sisältö (halutulta sivulta)
<%editshow('nimi')%>
Näyttää ko. nimisen kentän sisällön, ei editoitavissa.
Käytä tätä jos haluat jonkun tekstin moneen kertaan.
Esim. Sivun otsikko oli <%editshow('otsikko')%>.
<%editshow('nimi','page')%>
Näyttää ko. nimisen kentän sisällön mainitulta sivulta
saitissa. Käytä johonkin footteriin joka on tietyllä
sivulla ja muualla sitten <%editshow('footer','/index.html')%>
tms.
Esim. Uusin uutisotsikko on <%editshow('newsots','/news/index.html')%>
<%editshow('nimi','page','site')%>
Näyttää ko. kentän ko. sivulta ko. saitista. Älä käytä kuin
erikoistapauksissa (esim. hakea joku uutinen toisesta
saitista toisen saitin sivulla).
Esim. Rexissä menee nyt <%editshow('leffanyt','/index.html','biorex')%>
Kenttien sisällön muoto listoissa
Voit määrätä, missä muodossa kentän sisältämä teksti näytetään listoissa.
Listapohjissa saadaan näkyviin tietyn kentän sisältö laittamalla pohjaan #kentännimi# -merkintä, joka laajenee käytössä ko. kentän sisällöksi kullakin kohdalla. Kentän sisältö tulee näkyviin samoin muotoiltuna kuin se on www-sivulla missä se on (kts. :pretty alempaa).
Tässä kohdassa voi myös käyttää joitakin operaatioita, jotka kirjoitetaan muodossa #kentännimi:operaatio#.
Tällä hetkellä käytettävissä ovat seuraavat operaatiot:
- #kenttä#
- Sama kuin #kenttä:pretty# [Oletus muutettu 26.6.2000], eli erikoistoiminnot mitä on käytettävissä (katso Muokattavien elementtien sisältö ja toiminnot) toimivat myös listoissa yms.
- #kenttä:htmlquote#
- muuttaa tekstissä olevat >, <, ja & -merkit html entityiksi, jolloin kentän sisältö tulee sellaisenaan näkyviin ilman että siellä olevat html-asiat toimivat html:nä.
- 27.6.2000
- tulostaa sivun päivitysajan Suomalaisen käytännön mukaan muotoiltuna (pp.kk.vvvv).
- #kenttä:pretty#
- Tekee tekstille samat muutokset kuin mitä normaalisti tehdään sivuilla oleville kentille, mm. rivinvaihdot korvataan P ja BR -tageilla.
HUOM Suunnitelmissa on muuttaa tämä niin, että #kenttä# tekisi oletuksena "kauniin tulostuksen" ja ehkä #kenttä:raw# antaisi tekstin sellaisenaan, jotta toiminnot toimisivat joka paikassa. Tämä saattaisi kuitenkin rikkoa olemassaolevia sivuja.
5. Integrointi wysiwyg-työkaluihin
DreamWeaver 2.0, 3.0
ihaaedit toimii hienosti DreamWeaverin kanssa.
Dreamweaver on tällä hetkellä ehkä kehittynein html-sivujen rakentamiseen tarkoitettu wysiwyg-työkalu.
Erityisen hyvin ihaaedit toimii yhteen DreamWeaver-ohjelmiston kanssa, koska se ei muuta HTML-koodissa olevia erilaisia elementtejä. Sillä voi suoraan editoida suoraan www-sivuja joilla on käytetty ihaaedittiä.
Jos sinulla on dreamweaver 3 tai editoit sivuja tekstinä, voit käyttää erotinmerkkeinä myös <? ?>, vanhemmissa versioissa käytä <% %> jolloin Dreamweaver luulee ihaaeditin pätkiä ASP-ohjelmiksi.
6. Edistyneitä toimintoja
?edithtml=1
html-koodin muokkaus
Ihaaedit osaa tarjota itse
html-tiedostot editoitaviksi www:n kautta, jos www-palvelimella on
kirjoitusoikeus kyseessä olevaan www-sivuun. Jos kirjoitusoikeutta ei
ole, siitä tulee varoitus tällä hetkellä vasta kun yrität tallettaa.
Kun olet logannut sisään ja olet haluamallasi sivulla, niin kirjoita
url:in perään ?edithtml=yes ja paina returnia. Esille pitäisi tulla
sivu, jossa on edit-laatikossa haluamasi html-tiedoston sisältö.
Editoi sitä, ja paina Save file -nappulaa kun haluat tallettaa. Näet
viestit, onnistuiko tallennus vai ei. Tallennussivulla on jatkolinkki
josta pääset sitten katsomaan miltä sivu näyttää.
Jos haluat editoida multihakemiston sivupohjaa, niin muuta urliksi
ko. hakemisto/_pohja.html?edithtml=yes ja homma toimii kuten muillakin
sivuilla.
Editointi yrittää tallentaa backupin nimellä tiedosto.bak, joten jos
muutat tiedoston sellaiseksi että www:llä on siihen pääsy, luo samalla
.bak -niminen tiedosto johon myös on oikeudet, tällöin jää
varmuuskopio editoinnista.
editshowupdate
Sivun päivitysaika
Aina kun sivulle tehdään muutoksia ja sivu tallennetaan, sivun
muutosaika tallentuu automaattisesti. Voit tulostaa muutosajan
muodossa p.k.vvvv toiminnolla
<%editshowupdate()%>
Jos haluat käyttää sorttauksessa listoissa apuna tätä
muokkauspäivämäärää, käytä lajittelukentän nimenä '_update'. Se
lajittelee sivut vanhin ensin, tai uusin ensin jos käytät 'desc'
lisämääritystä.
Muutosaika tallentuu oikeasti _update -nimiseen kenttään muodossa
YYYYMMDD-HHMMSS, mutta älä koskaan käytä _update -kenttää itse missään
suoraan.
Expire
Automaattinen sivun piilotus haluttuna aikana
Listat ja haut eivät näytä tuloslistassa sivuja, joilla on 'expire'
-niminen kenttä jolla on annettu joku arvo, jos ko. arvo on
menneisyydessä. Expire-kentän arvo on YYYYMMDD-HHMM -muodossa. Jos
annat vain päivän (esim. 20000328) niin sivu expiroituu ko. päivän
alussa klo 00:00.
Kts. editlinehidden joka on kätevä tapa määrätä expire-kentälle arvo.
hideinlists
Sivun piilottaminen listoista
Sivu ei näy listoissa jos se on
expiroitunut (kts. expire -ajankohdan toiminta toisaalla) tai sivulla
on muuttuja jonka nimi on hideinlists ja arvo on joko y, k tai
1. Käytännössä tällöin www-sivulle voi sijoittaa kohdan
<%editlinehidden('hideinlists',1)%>
johon kirjoittamalla editoidessa sitten tyhjän tai k:n voi määrätä
näkyykö sivu listoissa vai ei. Suorat linkit sivun osoitteella
toimivat kuitenkin aina, vaikka sivu olisi expiroitunutkin (jotta
vanhat linkit pysyisivät toiminnassa), ellei sivut poisteta kokonaan.
if-then-else
Asioiden lisääminen sivulle sen mukaan ollaanko muokkaamassa vai katsomassa
Sivulla on mahdollista tehdä tekstejä tai asioita, jotka tulevat
näkyviin vain editoitaessa (tai vain kun ei olla editoimassa).
Seuraavanlainen koodi esimerkiksi toimii (samalla tavalla voi laittaa
jotain ohjeita vaikka jotka näkyy vain kun ollaan editoimassa),
kannattanee copypasteta, nuo sulut ja %:t ja <>:t voi mennä helposti
sekaisin:
Näytä koodi kun editointisalasana on kerran annettu oikein:
<%if($editauth){%> ... html kamaa mitä vain ... <%}%>
Näytä koodi kun ollaan editointitilassa (eli ne teksti-editkentät näkyy):
<%if($editviewedit){%> ... html kamaa mitä vain ... <%}%>
Näytä koodi vain silloin kun ei olle editoimassa:
<%if(!$editauth){%> ... html kamaa mitä vain ... <%}%>
Eli esim. _ihaaedit.html-sivuun linkki editoitavan hakemiston sivuilla pitäisi
onnistua niin, että ihan editstartpage:n perään laittaisi _pohja:ssa
jotain seuraavankaltaista:
<%if($editauth){%><A HREF="_ihaaedit.html">Hakemistonhallinta</A&
gt;<%}%>
Tuosta tulee sitten siihen edit/save/cancel -nappien perään editoitaessa
linkki Hakemistonhallintaan, joka näkyy kun ollaan editoimassa.
Noiden pitäisi toimia jatkossakin, tuohon osaan systeemia tuskin
tulee muutoksia. Tuon siistimmäksi niitä ei itse asiassa taida
PHP:ssä saada kätevästi.
trustbasicauth()
Editointi voidaan myös sallia niin, että salasanan kyselyn hoitaa www-palvelin notmaalin .htaccess -rajoituksen kautta.
Tämä tarkoittaa sitä, että niillä joilla on oikeus nähdä sivu, on oikeus sitä muokata (olettaen että ihaaeditin taulussa oleva url-rajoitus sen sallii).
Jos laitat kutsun trustbasicauth() mahdollisen editmultitemplate -kutsun jälkeen mutta ennen editstartpage-kutsua sekä laitat ko. sivut missä tämä kutsu on www-palvelimen normaalin Basic-salasanan taakse .htaccess -rajoituksella tms, niin ihaaedit sallii sivujen muokkauksen niille, joiden Basic-autentikoinnin käyttäjätunnus löytyy access-taulusta ja urlprefix-kentän sisältö sallii kyseessä olevan sivun muokkaamisen.
Huomaa, että tällöin ihaaedit ei tarkista salasanaa, vaan olettaa, että www-palvelin on jo tarkistanut salasanan Basic-autentikoinnilla.
Esimerkki: Haluat suojata jonkin hakemiston sisällön salasanalla, mutta ne joilla ko. salasana on saavat myös editoida sivuja. Käyttämällä trustbasicauth -kutsua, ei editointia varten tarvitse erikseen logata sisään. htpasswd-tiedostossa tulee olla sopivat tunnukset ja salasanat sekä ihaaedit:in access-taulussa sitten vastaava tunnus, salasana, ja urlprefix -kentässä voi rajoittaa muokkauksen vain johonkin saitin osaan.
Toiminto on lisätty 16.9.2000 jälkeisiin versioihin.
7. Kehitteillä olevia toimintoja
editdiscussion
Mini-keskustelufoorumi mille tahansa sivulle
EDITDISCUSSION KESKUSTELUFOORUMIESIMERKKI (OTE HTML-SIVUN
KOODISTA). Editdiscussion toimii myös multisivuilla, silloin joka
sivulle tulee oma keskustelufoorumi. Tämä on hieman kesken, kerro
haa:lle jos aiot käyttää tätä, ehkä tätä ei tueta jatkossa ellei sitä
käytetä.
<?editdiscussion(
'<H3>Kommentteja tähän uutiseen</H3><DL>', // top
'<DT><B></B> () ', // header
'<DD>', // body
'</DL>', // bottom
'Otsikko tai sisältö puuttuu, kommenttia ei tallennettu' // no content error
)?>
<H3>Kommentoi tätä uutista</H3>
<FORM ACTION="<%=$myurl%>" METHOD=POST>
<INPUT TYPE=HIDDEN NAME=addcomment VALUE=1>
<TABLE BORDER=0>
<TR><TD>Aihe</TD>
<TD> <INPUT TYPE=TEXT NAME=subject SIZE=45></TD></TR>
<TR><TD>Nimi, sähköposti</TD>
<TD> <INPUT TYPE=TEXT NAME=author SIZE=30> (vapaaehtoinen)</TD></TR>
<TR><TD>Kommentti</TD>
<TD> <TEXTAREA NAME=body ROWS=3 COLS=45 WRAP=AUTO><TEXTAREA></TD></TR>
<TR><TD> </TD>
<TD ALIGN=CENTER><INPUT TYPE=SUBMIT VALUE="Talleta kommentti"></TD></TR>
</TABLE>
</FORM>
8. Esimerkkitiedostoja
multitemplate: index.html kotisivu
Saitin kotisivu jolla on lista uusimmista uutisista.
<?require('ihaaedit.php')?>
<html>
<head>
<title>Kotisivu</title>
</head>
<body bgcolor="#FFFFFF">
<?editstartpage()?>
<P>Kotisivuni teksti on <?edittext('teksti',60,5)?>
<P>Sivulla on käyty <%=counter(300)%> kertaa.
<P>Bannerimainos:
<%bannerstart()%>
<%banneritem('http://libplussa.fi/kuvat/plussa75.gif',
'http://www.libplussa.fi',
10)%>
<%banneritem('http://www.iki.fi/iki/iki-logo-16.gif',
'http://www.iki.fi',
20)%>
<%bannerend(468,60)%>
<H2>Uutta</H2>
<P>Uusimmat 3 kpl uutisia:<BR>
<?editpagelist('/news',
'<P><FONT SIZE="+1"><B>multitemplate: index.html kotisivu</B></FONT><BR>
Saitin kotisivu jolla on lista uusimmista uutisista.
<BR><A HREF="">lue koko juttu</A>
<FONT SIZE="-1">(18.10.2000)</FONT>',
'_update',3,'desc')
?>
<P><A HREF="/news/">Kaikki uutiset...</A>
<?editendpage()?>
</body>
</html>
multitemplate: news/.htaccess
Apache-www-palvelimen määritystiedosto kortistohakemistoon
news/.htaccess eli Apache:n ohjaustiedosto
(huomaa yksi kohta mihin pitää editoida hakemiston url-osoite):
# Rewrite joka ohjaa dir/jotain.html _pohja.php -php-scriptille
RewriteEngine On
# Laita alle hakemiston url-osoite, esim. /uutiset tms.
# Huomaa alku / ja lopussa ei /
RewriteBase /news
RewriteRule ^$ index.html [L]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*)$ $1 [L]
RewriteRule ^(.*)\.html$ _pohja.html
# Loppu
multitemplate: news/index.html
Esimerkkejä sivulistoista kortistosta jossakin alihakemistossa
<?require('ihaaedit.php')?>
<HTML>
<HEAD>
<TITLE>uutisia</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<H1>Uutiset</H1>
<P>Lista aikajärjestyksessä:<BR>
<?editpagelist('/news',
'<P><B>8. Esimerkkitiedostoja: <A HREF="">multitemplate: news/index.html</A></B
><BR>Esimerkkejä sivulistoista kortistosta jossakin alihakemistossa<BR>(9.5.2000)',
'_update',99999,'desc')
?>
<P>Lista kategorioittain:<BR>
<% editcategorylist(
'/news', // Hakemisto minkä alta listataan sivuja
'kategoria', // Mikä on ryhmittelyn perusteena oleva kenttä
'<H2>8. Esimerkkitiedostoja</H2><P>', // ryhmän otsikon htm
l-pohja
'<A HREF="">multitemplate: news/index.html</A><BR>', // Sivun html-pohja
'otsikko', // Minkä mukaan saman aiheen sivut lajitellaan
'asc', // Saman aiheen sivut kasvavaan tai kääntäen 'desc'
'asc' // ryhmittelykenttien järjestys, aleneva 'desc'
) %>
</BODY>
</HTML>
multitemplate: news/_pohja.html
Kortistohakemiston ulkoasupohja
<?require('ihaaedit.php');editmultitemplate()?>
<!-- huom editmultitemplate määritys sivupohjan alussa -->
<HTML>
<HEAD>
<TITLE>uutinen: <?editshow('otsikko')?></TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<?editstartpage()?>
<H1><?editline('otsikko',40)?></H1>
<P>Kategoria: <B><?editline('kategoria'); editsetmenu('kategoria')?></B>
<P><?edittext('ingressi',70,2)?></P>
<P><?edittext('teksti',60,20)?></P>
<HR>
<P ALIGN="CENTER">Päivitetty: <?editshow(':update')?>
<?editendpage()?>
</BODY>
</HTML>
Tavallinen www-sivu jolla muokattavia elementtejä
Yksinkertainen www-sivu jolla olevat tiedot halutaan pitää ajan tasalla helposti.
<?require('ihaaedit.php')?>
<html>
<head>
<title><?editshow('otsikko')?></title>
</head>
<body bgcolor="#FFFFFF">
<?editstartpage()?>
<H1><?edittext('otsikko')?></H1>
<P>Kotisivuni teksti on <?edittext('teksti',60,5)?>
<P>Sivulla on käyty <%=counter(300)%> kertaa.
<P>Bannerimainos:
<%bannerstart()%>
<%banneritem('http://libplussa.fi/kuvat/plussa75.gif',
'http://www.libplussa.fi',
10)%>
<%banneritem('http://www.iki.fi/iki/iki-logo-16.gif',
'http://www.iki.fi',
20)%>
<%bannerend(468,60)%>
<P><?edittext('pitkateksti',60,10)?>
<?editendpage()?>
</body>
</html>