Edukira salto egin | Salto egin nabigazioara

Tresna pertsonalak

Eibarko peoria, San Blasa baino hobia
Hemen zaude: Hasiera / Blogak / e-gorblog / Nola hobetu zure COREBlog bloga III: Kolaboratzaileei gure blogean artikuluak idazteko aukera eman

Nola hobetu zure COREBlog bloga III: Kolaboratzaileei gure blogean artikuluak idazteko aukera eman

e-gor 2005/03/03 00:26

COREBlog-ekin egindako blogek (eibar.org-en daudenak adibidez) ez daukate artikuluak gehitzeko pantailarik, ez bada kudeatzailearen pasahitzarekin kudeatze-pantailetan sartuta. Eta gure blogean hainbat kolaboratzaileri artikuluak idazteko aukera eman nahi badiegu, ez dugu kudeatzaile baimenak eman beste aukerarik. Baina hau kolaboratzaile batentzat konplikatuegia izan daiteke eta gure blogarentzat arriskutsua. Ikusi hemen nola egin dezakegun artikuluak idazteko pantaila bat, argazkiak gehitzeko aukera eta guzti, eta nola eman baimenak horretarako soilik.

Hasteko, blogaren erroan DTMLMethod bat sortu, "addEntryForm" izenarekin, eta eduki honekin:

<dtml-var blog_header>
<dtml-var blog_banner>
<div id="content">
<div class="blog">
<h3 class="title">Artikulua gehitu</h3>
<div class="comments-head">Bete artikuluaren eremuak. Batzuk aukerakoak dira.</div>
<div class="comments-body">
<form ACTION="manage_addEntry2" METHOD="POST" enctype="multipart/form-data">
<table cellspacing="1" cellpadding="0" border="0">
    <tr>
        <td align="left" valign="top" class="list-header">
        <div class="form-label">Egilea</div>
        </td>
        <td align="left" valign="top">
        <input type="text" name="author" size="40" value="<dtml-var "AUTHENTICATED_USER.getUserName()">" />
        </td>
    </tr>
    <tr>
        <td align="left" valign="top" class="list-header">
        <div class="form-label">Izenburua</div>
        </td>
        <td align="left" valign="top">
        <input type="text" name="thetitle" size="80" value=""/>        </td>
    </tr>
    <tr>
        <td align="left" valign="top" class="list-header">
        <div class="form-optional">Azpititulua</div>
        </td>
        <td align="left" valign="top">
        <input type="text" name="subtitle" size="80" value=""/>
        </td>
    </tr>
    <tr>
        <td align="left" valign="top" class="list-header">
        <div class="form-optional">Noiz</div>
        </td>
        <td align="left" valign="top">
        <input type="text" name="entry_date" size="40" value=""/>
        </td>
    </tr>
    <tr>
        <td align="left" valign="top" class="list-header">
        <div class="form-label">Atala</div>
        </td>
        <td align="left" valign="top">
        <select name="main_category:int">
        <dtml-in category_list>
        <option value="<dtml-var id>"><dtml-var name missing="category name is missing"></option>
        </dtml-in>
        </select>
        </td>
    </tr>
    <tr>
        <td align="left" valign="top" class="list-header">
        <div class="form-optional">Azpiatalak</div>
        </td>
        <td align="left" valign="top">
        <dtml-in category_list>
        <input type="checkbox" name="sub_category:list" value="<dtml-var id>" /><dtml-var name missing="category name is missing">
        </dtml-in>
        </td>
    </tr>
    <input type="hidden" name="format:int" value="1">
    <tr>
        <td align="left" valign="top" class="list-header">
        <div class="form-label">Sarrera</div>
        </td>
        <td align="left" valign="top">
        <textarea name="thebody:text" style="width: 500px; height: 250px; border: 1px solid #000000;"></textarea>
        </td>
    </tr>
    <tr>
        <td align="left" valign="top" class="list-header">
        <div class="form-optional">Gorputza</div>
        </td>
        <td align="left" valign="top">
        <textarea name="extend:text" cols="60" rows="6"></textarea>
        </td>
    </tr>
    <tr>
        <td align="left" valign="top" class="list-header">
        <div class="form-optional">Laburpena</div>
        </td>
        <td align="left" valign="top">
        <textarea name="excerpt:text" cols="60" rows="6"></textarea>
        </td>
    </tr>
    <tr>
        <td align="left" valign="top" class="list-header">
        <div class="form-label">Erantzunak</div>
        </td>
        <td align="left" valign="top">
        <select name="allow_comment:int">
        <option value="0" >Ezer ez (ezin gehitu, ezkutatuta)</option>
        <option value="1" selected>Irekita (gehitu daiteke, agerian)</option>
        <option value="2" >Itxita (ezin gehitu, agerian)</option>
        </select>
        </td>
    </tr>
    <tr>
        <td align="left" valign="top" class="list-header">
        <div class="form-label">Trackback-ak</div>
        </td>
        <td align="left" valign="top">
        <select name="receive_trackback:int">
        <option value="0" >Ezer ez (ezin gehitu, ezkutatuta)</option>
        <option value="1" selected>Irekita (gehitu daiteke, agerian)</option>
        <option value="2" >Itxita (ezin gehitu, agerian)</option>
        </select>
        </td>
    </tr>
    <tr>
        <td align="left" valign="top" class="list-header">
        <div class="form-label">Egoera</div>
        </td>
        <td align="left" valign="top">
        <select name="moderated:int">
        <option value="0" >Itxita</option>
        <option value="1" selected>Irekita</option>
        </select>
        </td>
    </tr>
    <tr>
        <td align="left" valign="top" class="list-header">
        <div class="form-optional">Argazkia</div>
        </td>
        <td align="left" valign="top">
        <input type="file" name="photo">
        </td>
    </tr>
    <tr>
        <td align="left" valign="top" class="list-header" rowspan="2">
        <div class="form-optional">Trackback helbidea(k)</div>
        </td>
        <td align="left" valign="top">
        <textarea name="trackback_url:text" cols="60" rows="4"></textarea>
        </td>
    </tr>
    <tr>
        <td align="left" valign="top">
        <input type="checkbox" name="sendnow" checked />Bidali trackback eskaera(k) orain
        </td>
    </tr>
    <tr>
        <td align="left" valign="top">
        </td>
        <td align="left" valign="top">
        <div class="form-element">
        <input class="form-element" type="submit" name="submit" value="Artikulua gehitu" />
        </div>
        </td>
    </tr>
</table>
</form>
</div>
</div>
</div>
<dtml-var blog_footer>

Metodo honek "manage_addEntry2" izeneko beste bati deitzen dio, honek hainbat gauza egin ditzan (irudia gehitu irudien karpetan, sarreraren hasieran lerro bat gehitu irudia sartzeko, aurrebista erakutsi) COREBlog-en jatorrizko "manage_addEntry" metodoari deitu aurretik. Hau da "manage_addEntry2" metodoaren edukia:

<dtml-var blog_header>
<dtml-var blog_banner>
<dtml-if photo>
    <dtml-call "REQUEST.set('numblist',[])">
    <dtml-in "images.objectIds()">
        <dtml-if "_.getitem('sequence-item')[:4]=='img_'">
            <dtml-call "numblist.append(_.int(_.getitem('sequence-item')[4:]))">
        </dtml-if>
    </dtml-in>
    <dtml-if "_.len(numblist)==0">
        <dtml-call "REQUEST.set('imgnumber',0)">
    <dtml-else>
        <dtml-call "REQUEST.set('imgnumber',_.max(numblist)+1)">
    </dtml-if>
    <dtml-call "images.manage_addImage('img_'+_.str(imgnumber),photo)">
    <dtml-call "REQUEST.set('thebody2','<img src="./images/img_'+_.str(imgnumber)+'" border="0"><br>\n')">
<dtml-else>
    <dtml-call "REQUEST.set('thebody2','')">
</dtml-if>
<dtml-call "REQUEST.set('thebody2',thebody2+thebody)">
<h3 class="title">Confirm</h3>
<div id="content">
<div class="blog">
<div class="entry">
<div class="blogbody">
<h3 class="title"><dtml-var thetitle></h3>
<dtml-if "_.len(subtitle)>0"><div class="subtitle"><dtml-var subtitle></div></dtml-if>
<dtml-in category_list>
<dtml-if "_.int(id)==main_category">
<dtml-call "REQUEST.set('catname',name)">
</dtml-if>
</dtml-in>
<div class="category">
<a href="<dtml-var blogurl missing="">/categorylist_html?cat_id=<dtml-var main_category>">[<dtml-var catname missing="category name is missing">]</a>
</div>
<p>
<dtml-call "REQUEST.set('thebody3',_.string.replace(_.string.replace(_.string.replace(thebody2,'&lt;','<'),'&gt;','>'),'&quot;',_.chr(34)))">
<dtml-in "_.string.split(thebody3,'\n')">
    <dtml-let bodyline="_.getitem('sequence-item')">
    <dtml-if "_.getitem('sequence-index')==0">
        <dtml-call "REQUEST.set('bodylist',[])">
    <dtml-if "bodyline[0:4]=='<img'">
        <dtml-let entry_image="bodyline[_.string.find(bodyline,'src=')+5:_.string.find(bodyline,_.chr(34),_.string.find(bodyline,'src=')+5)]">
        <dtml-let theheight="images[entry_image[_.string.rfind(entry_image,'/')+1:_.len(entry_image)]].height">
        <dtml-let thewidth="images[entry_image[_.string.rfind(entry_image,'/')+1:_.len(entry_image)]].width">
        <dtml-if "thewidth>theheight">
            <dtml-if "thewidth<300">
                <dtml-call "REQUEST.set('imagewidth',thewidth)">
            <dtml-else>
                <dtml-call "REQUEST.set('imagewidth',300)">
            </dtml-if>
        <dtml-else>
            <dtml-if "theheight<300">
                <dtml-call "REQUEST.set('imagewidth',thewidth)">
            <dtml-else>
                <dtml-call "REQUEST.set('imagewidth',300*thewidth/theheight)">
            </dtml-if>
        </dtml-if>
        </dtml-let>
        </dtml-let>
        <a href="<dtml-var entry_image>"><dtml-var "bodyline[:_.string.index(bodyline,'>')]"> width="<dtml-var imagewidth>"></a><br>
        </dtml-let>
    <dtml-else>         <dtml-call "bodylist.append(bodyline)">
    </dtml-if>
<dtml-else>     <dtml-call "bodylist.append(bodyline)">
</dtml-if>
</dtml-let>
</dtml-in>
<dtml-call "REQUEST.set('changedbody',_.string.join(bodylist,'\n'))">
<dtml-if "format == 0">
<dtml-var changedbody newline_to_br>
<dtml-elif "format == 1">
<dtml-var changedbody fmt=structured-text>
<dtml-elif "format == 2">
<dtml-var changedbody>
</dtml-if>
</p>
<br clear="all" />
<p>
<a name="more"></a>
<dtml-if "format == 0">
<dtml-var extend newline_to_br>
<dtml-elif "format == 1">
<dtml-var extend fmt=structured-text>
<dtml-elif "format == 2">
<dtml-var extend>
</dtml-if>
</p>
<dtml-if entry_date>
<dtml-call "REQUEST.set('thedate',entry_date)">
<dtml-else>
<dtml-call "REQUEST.set('thedate',_.DateTime())">
</dtml-if>
<div class="posted">Posted by: <b><dtml-var author></b> Time: <dtml-var thedate></div>
<div class="comments-body">
<form ACTION="manage_addEntry" METHOD="POST">
    <input type="hidden" name="author" value="<dtml-var author>" />
    <input type="hidden" name="title" value="<dtml-var thetitle>" />
    <input type="hidden" name="subtitle" value="<dtml-var subtitle>" />
    <input type="hidden" name="entry_date" value="<dtml-var thedate>" />
    <input type="hidden" name="main_category:int" value="<dtml-var main_category>" />
<dtml-if sub_category>
<dtml-if "objecttype(sub_category)=='list'">
<dtml-in sub_category>
    <input type="hidden" name="sub_category:list" value="<dtml-var sequence-item>" />
</dtml-in>
<dtml-elif "objecttype(sub_category)=='string'">
    <input type="hidden" name="sub_category:list" value="<dtml-var sub_category>" />
</dtml-if>
</dtml-if>
    <input type="hidden" name="format:int" value="<dtml-var format>">
    <input type="hidden" name="body" value="<dtml-var "_.string.replace(_.string.replace(_.string.replace(thebody2,'<','&lt;'),'>','&gt;'),_.chr(34),'&quot;')">">
    <input type="hidden" name="extend" value="<dtml-var "_.string.replace(_.string.replace(_.string.replace(extend,'<','&lt;'),'>','&gt;'),_.chr(34),'&quot;')">">
    <input type="hidden" name="excerpt" value="<dtml-var "_.string.replace(_.string.replace(_.string.replace(excerpt,'<','&lt;'),'>','&gt;'),_.chr(34),'&quot;')">">
    <input type="hidden" name="allow_comment:int" value="<dtml-var allow_comment>">
    <input type="hidden" name="receive_trackback:int" value="<dtml-var receive_trackback>">
    <input type="hidden" name="moderated:int" value="<dtml-var moderated>">
    <input type="hidden" name="trackback_url:text" value="<dtml-var trackback_url>">
    <input type="hidden" name="sendnow" value="<dtml-var sendnow>">    <input type="submit" name="submit" value="Add Entry" />
</form>
</div>
</div>
</div>
</div>
</div>
<dtml-var blog_footer>

Gero "objecttype" izeneko python script bat gehitu behar da, "object" izeneko parametroa hartzen duena eta eduki hau duena:

if object is None:
    return 'None'
s = str(object)
if object==s:
    return 'string'
try:
    t = object.meta_type
    return t
except:
    pass
try:
    l = len(object)
    if s[0]=='[':
        return 'list'
    if s[0]=='(':
        return 'tuple'
    if s[0]=='{':
        return 'dict'
    return 'sequence'
except:
    pass
try:
    t = object.timeTime()
    return 'DateTime'
except:
    pass
try:
    val = int(object)
    if val is object:
        return 'integer'
    return 'number'
except:
    return 'unknown'

Bukatzeko, baimen batzuk aldatu behar dira. "Manager" eta "owner" erabiltzaileei "View" baimena emango diegu hasieran aipatutako "addEntryForm" formularioan, eta "Add COREBlog entries" eta "Add documents, images and files" COREBlog objektuan.

Eta kitto! Orain kolaboratzaile berri bati artikuluak gehitzeko aukera eman nahi diogun bakoitzean, "acl_users" karpetan erabiltzaile berri bat gehituko dugu, "owner" motakoa. Hauek beren pasahitzarekin "addEntryForm" formularioa erabil dezakete artikuluak gehitzeko, hasieran irudi bat ere sartzeko aukerarekin, baina ezin dituzte kudeaketako beste pantailak ikusi.

Bi limitazio ditu oraingoz: gehitutako artikuluak testu egituratua formatuan egon behar dira eta ezin da EPOZ edizio zerbitzua erabili.

Aurreko artikuluak:

etiketak: ,
Iruzkina gehitu

Erantzuna formulario hau betez utzi dezakezu. Formatua testu arruntarena da. Web eta e-posta helbideak automatikoki klikagarri agertuko dira.

Galdera: Zenbat dira hiru ken lau (idatzi zenbakiz) ?
Erantzuna:
e-gorblog

e-gorblog

Egunez, Igor Leturia Azkarate pertsona arrunta da. Errenterian bizi den arrasatearra, 8etatik 17etara Elhuyarren lan egiten du eta arratsaldeak neskalagunarekin eta bere bi umeekin pasatzen ditu.

Baina gaua iritsi eta umeak lotara joaten direnean, e-gor bihurtzen da, interneteko bere alter-egoa, ziberespazioko informatikaririk komikizaleena eta komikizalerik informatikariena! Bere superbotereekin (interneteko kable-konexioa, bloglines, informatika aldizkariak, gadget-ak, komiki-bilduma, Errenteriko liburutegiko komikien atala eta batez ere bere jakinmin aseezina) eta bere superlaguntzaileak ondoan dituela (Patxi Lurra, DabilenHarria...), euskaldunon teknofobiaren eta komikiei buruzko aurreiritzien aurka burrukatzen du etengabe! Hemen duzu bere bloga: e-gorblog!

Bai, hor goiko aurkezpena superheroi batena da (ezin aproposagoa honelako blog batentzat, ezta?). Superheroia banintz zein izango nintzatekeen jakiteko the Superhero Personality Test egin nuen eta hona emaitzak:

You are Spider-Man
You are intelligent, witty, a bit geeky and have great power and responsibility.

Spider-Man
80%
Superman
70%
Green Lantern
65%
Robin
65%
The Flash
60%
Supergirl
55%
Hulk
55%
Iron Man
45%
Wonder Woman
35%
Catwoman
25%
Batman
0%
Lizentzia

Creative Commons-en baimena
Blog honetako edukia, Igor Leturiak eta beste kolaboratzaile batzuek egiten dutena, Creative Commons Aitortu-PartekatuBerdin 3.0 Unported baimen baten mende dago (irudiak salbu).

Harpidetza
Erantzunen harpidetza
Artxiboa
2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019
Artikulu aipagarriak

MythTV sorta
2004/11

"Pololoak" sorta
2004/11-12 - 2006/10-12 - 2007/02-03

Monoblogoa
2005/01/11

"Persepolis", xalotasunaren sakontasuna
2005/01/25

Elgetako Blogs&Beers 2005: nire inpresioa eta moblogging kontuak
2005/04/18

Firefox eta bere plugin zoragarriak
2005/05/11

"El País"-en komiki bilduma
2005/05/15

Euskarazko bi blog berri (bai, beste bi, baina hauek bereziak dira!)
2005/05/25

"Watchmen" sorta
2005/09-11 - 2006/10 - 2007/10 - 2008/07

"La cárcel de papel"-eko "Mis tebeos favoritos" saila I: 1etik 20ra
2005/11/08

"Goienkaria"-n agertu naiz
2005/12/08

Komikiak eta euskal rock-a
2005/12/14

Ruben Arozena "Ruben" komikigilea hil da
2006/01/02

Zope-rako DTML Calendar Tag produktua, euskaraz
2006/02/01

"Joyas Literarias Juveniles" bilduma, osorik eMule-n
2006/08/05

Argazkigintza eta DRM-a
2006/10/09

Paul Auster eta Euskararen Herria
2006/10/29

Angoulême sorta
2007/01-02

Gaur duela 25 urte nire bizitza aldatu zen
2007/04/23

Hergé-ren defentsan
2007/05/22

Ubuntu-ren bertsio berria, hobekuntza askorekin
2007/07/02

OLPC sorta
2007/12 - 2008/01

Guillermo Zubiaga, Marvel-eko komikilari euskalduna
2008/02/05

Asus EEE PC, ordenagailu txiki eta merkeen hurrengo sorta
2008/03/11

Agur, Ipurbeltz, agur... :-(
2008/08/04

"Café Budapest", gizatasuna eta bizikidetzaren aldeko aldarria
2008/08/25

"Arturo Erregea" serie mitikoa, Euskal Encodings-en! (beste askorekin batera)
2008/09/17

"Gazteak", beste serie mitiko bat euskaraz eskuragai!
2008/10/14

Pottokiek 50 urte!
2008/10/22

Europan ere OLPC-ren XO ordenagailuak erosteko aukera!
2008/11/12

Microsoft-en web zerbitzuetako gehienak, euskaraz!
2008/12/04

"Heroes"-en 2. denboraldia: ETB kirtenkeria errepikatzera, eta Euskal Encodings konpontzera
2009/01/23

I. Euskal OLPC Party-a, apirilaren 23an Donostiako Doka kafe antzokian
2009/04/16

Elkarrizketa egin didate 7K-n
2009/06/03

Azpiriren Spectrum-entzako jokoen azalak liburu batean
2009/10/06

Asterix, heroi garaitua
2009/10/29

"Ihes ederra", euskarazko komikigintzaren heldutasunaren konfirmazioa
2009/11/13

Pololoak 3: The making of
2009/11/22

5 urte 5!
2009/12/15

Nobela grafikoa, komikien prestigiorako ala mespretxurako?
2009/12/20

"Pololoak 3 - Atxeritoko balada", trilogiaren amaiera borobila
2010/01/13

Sinclair ZX Spectrum bat oparitu didate!
2010/01/19

Zergatik ez dudan liburu elektronikorik erosiko (gauzak aldatzen ez diren artean)
2010/01/27

Errealitate areagotua: munduaren pertzepzioa aberasten
2010/02/09

e-gorblog, "Nick dut nik" telebista saioan
2010/05/20

Sarearen neutraltasunari erasoak: Interneten izaera arriskuan
2010/06/02

"Avatar, azken aire maisua" osoa eta "Heroiak"-en lehen bi denboraldiak, Euskal Encodings-en
2010/07/22

Sistema eragileen guda berria
2010/12/14

Anubis 3.0 albumarentzat 3D animazio ederra
2010/12/27

Telebistaren benetako iraultza hemen da, eta ez da LTDa
2011/01/10

"Asterix galiarra" eta "Urrezko igitaia" berrargitaratu ditu Salvatek
2011/01/13

Euskarazko komikigintza digitalizazioaren aurrean
2011/01/27

"Ihes ederra"ren gaztelaniazko eta katalanezko bertsioak eta "Alokairuan", kalean
2011/02/20

Star Wars jatorrizko trilogia, euskaraz
2011/03/21

Sare sozialetan preso
2011/04/06

Zer dudan Steve Jobsen, edo Appleren, aurka
2011/10/14

Gaur 100 urte Adèle Blanc-Sec-en abenturak hasi zirela
2011/11/04

Euskarazko 8 komiki berri
2011/12/02

Social networks killed the RSS star?
2012/06/10