Jelszóval védett tartalom (esti update) – alternatív szöveg megjelenítése

Az alternatív szöveg megadására tehát két lehetőségünk van: vagy beleírjuk az oldal sablonjának kódjába, vagy minden egyes védett oldalhoz írhatunk testreszabott üzenetet.

Az első lehetőség elég egyszerű: megvizsgáljuk, hogy az adott felhasználó be van-e jelentkezve, ha igen, akkor lefut a postokat megjelenítő Loop, ha nem, egy üzenetet kapunk, hogy tessék bejelentkezni. Ez így fog valahogy kinézni:


<?php get_header(); ?>
<?php if_user_logged_in() : ?> (ha be van jelentkezve, akkor a következő fog történni:)
<?php if (have_posts()) : ?><?php while (have_posts()) : the_post(); ?>
<div class="entry">
<?php the_content(); ?> (és a tartalom csicsázása – cím, dátum stb.)
</div>
<?php endwhile; ?><?php endif; ?> (eddig volt a tartalom megjelenítése)
<?php else : ?> (és ha nincs bejelentkezve)
<p>Jelentkezz be kérlek!</p> (vagy valami ilyesmi)
<?php endif; ?>

A másik lehetőség pedig hogy az egyes tartalmakhoz odaírjuk, hogy mi legyen az alternatív szöveg. Mondjuk egy rövid ismertető az adott tartalomról, és egy buzdítás a regelésre vagy egy határozott “Nekedehhezsajnossemmiközöd” szöveg (amelyet a Megjegyzés kivonatba írjuk bele), persze finomabban:


<?php if_user_logged_in() : ?>
<?php if (have_posts()) : ?><?php while (have_posts()) : the_post(); ?>
<div class="entry">
<?php the_content(); ?>
</div>
<?php endwhile; ?><?php endif; ?>
<?php else : ?>
<?php if (have_posts()) : ?><?php while (have_posts()) : the_post(); ?>
<div class="entry" ><?php the_excerpt(); ?></div>
<?php endwhile; ?><?php else : ?>
<?php endif; ?> (és itt a mese vége)

Arról pedig legközelebb lesz szó, hogy voltaképpen hogyan is kerülnek a megfelelő helyre a tartalmak (azaz, hogy ne az egész portálunkat listázza ki a fenti kód, hanem csak azokat, amiket tényleg kell).

És miért nem szóltatok, hogy az előző bejegyzésben baromságot írtam?…

Integrálj Corvinát WordPress-be!

Az tuti, hogy katalógus kell egy könyvtári honlapra, ha fene fenét eszik is. Nos, ezt meglehet úgy csinálni, hogy csak belinkeljük az OPAC-ot, aztán kész. Na de mi van, ha én azt szeretném, hogy alapból a honlapon lehessen keresni, egy integrált formban, ami kinézetileg is olyan, amilyennek én szeretném? Nos, erre lehet megoldás a következő művelet.

Kell elsőként hozzá a Corvina-rendszer URL-je, ami legtöbbször úgy néz ki, hogy http://corvina.intezmenydomain.hu (ebben azért annyira nem vagyok biztos, nekünk így néz ki). Emellett pedig, hogy megcsináljuk a WordPress HowTo-t, ami után tudjuk, hogyan lehet létrehozni egy statikus WordPress-oldalt (single.php). Mármint úgy kockásan, forráskódilag (annyiban gömbölyded a téma, hogy WordPress “kódilag”). Ha ezzel tisztában vagyunk, akkor már csak annyi van hátra, hogy ennek a leírásnak az alapján létrehozzunk egy oldal-sablont. Ez a következőképpen néz ki:

Hozzunk létre egy szöveges fájlt, mondjuk katalogus.php néven. A fájl elejébe kerüljön egy következőképpen kinéző dolog:

<?php
/*
Template Name: Katalógus
*/
?>

Innen fogja tudni a WordPress, hogy ez egy oldal sablonja. Ezután másoljuk bele a single.php tartalmát, amit gyakorlatilag ki is törlünk rögtön, vagy írjuk bele a következőt:

<?php get_header(); ?> (- hogy meglegyen a fejléc)
<div id="katalogus"> (- hogy kedvünkre formázhassuk)
( – ide jön majd a keresőfelület)
</div> (- a formázó doboz vége)
<?php get_sidebar(); ?> (- az oldalsáv, ami talán jó, ha itt is van, de nem muszály)
<?php get_footer(); ?> (- a lábléc, ez érdemes)
</div>; (- az egész tartalmat formázó doboz vég, a fejlécben kezdődik)
</body>
</html>

Ezek után mentsük el, és nyissuk meg a katalógusunk keresőfelületét. A böngésző menüsorában a Firefoxosok a Nézet > Oldal forrása (ctrl+u), az IExploreresek a Nézet > Forrás pontra kattinta kapják meg a forráskódot. Ebben keressük meg a magára az űrlapra vonatkozó részt (nálunk ez úgy néz ki, hogy egymás után van sok tábla, az első pár a fejlécet és különböző dizájnelemeket tartalmaz, ezek után kell megkeresni azt, amelyben szerepel ez a bűvös sor:

<FORM ACTION=wpac.cgi method=post>

Ha ez megvan, akkor az ezt tartalmazó, és ezt követő táblázatokat másoljuk át egy-az-egyben a katalogus.php vonatkozó részébe (hátom pont helyére). Ezek után már csak pont a kiemelt sot kell buherálni, a wpac.cgi helyére írjuk be a teljes URL-t, azaz esetemben azt, hogy http://corvina.mome.hu/corvina/opac/wpac.cgi.

Már csak annyi maradt hátra, hogy létrehozzunk egy oldalt (Írás > Oldal), amibe nem kell írni semmit, csak jobb oldalt válasszuk ki az Oldal sablon pontban a Katalógust.

Itt tulajdonképpen hátra lehene már dőlni, de azért legyünk kicsit maximalistábbak. Nekem pl. böki a csőrömet az a fene sok tábla, sokkal szebb lenne dobozolva (<div>...</div>) a dolog, valamint eléggé valószínűtlen, hogy egy 800px széles oldalsávos lapot nem vág szét kapásból az űrlap, ezért érdemes a CSS-sel is bajlódni (a fenti tutoriál után már nem lehet ez nehéz dolog…).

Ezt a mintát követve egyébként lehet gyorskeresést is létrehozni az oldalsávban, természetesen redukált opciókkal, mert különben túl nagy lesz.

A baj az, hogy a többi IKR-t nem ismerem, nem használom annyit és olyan szinten, hogy ezt tudjam. Nagyon megköszönném, ha a kommentekbe leírnátok ez irányú tapasztalatotokat, ötleteiteket, tanácsaitokat, hogy minél többet lehessen belőlük tanulni…

És még egy TODO a végére:

  • az OPAC kimenetének módosítása – oldalon belüli listázás

Megjegyzés: persze ez nem azt jelenti, hogy ez annyira WordPress-specifikus lenne, ezt gyakorlatilag bárhol meg lehet csinálni…Ráadásul ez nem is integráció volt, csak egy keresőfelület, mindegy. Azoktól, akik idáig elolvasták, bocsánatot kérek ; )

Tipp: nekem nem tetszik, hogy ott van a Corvina copyrightja, jó vastagon az űrlap alatt, letettem láblécbe, viszont csak akkor jelenik meg, ha a katalógusra vagyunk kíváncsiak. Ezt a következő kódrészlettel értem el:

<?php if(is_page('katalogus')) { ?> (- ha a katalogus nevű oldalsablon van éppen képernyőn – .php kiterjesztés nélkül, kisbetűvel, ékezetmentesen)
Corvina WWW Gateway v3.0 © 1998-2001 <a href="http://www.dataware.hu" target="_blank"> debis IT Services Dataware Kft.</a> (- akkor jön a Corvina copyrightja)
<?php }; ?> (- egy feltételt még PHPban is illik lezárni)

Ennyi. Ezek után teljes lelkinyugalommal töröltem az eredeti copyrightot.

Pofozgatás

Eddig tehát telepítettünk egy WordPress blogot, majd a kész alapra elkezdtünk tervezgetni. Azért ez a sorrend, mert így jobban láthatóak a lehetőségek, meg nekem ilyen az eszem járása. Mielőtt nekifogunk a post olvasásához, játsszunk kicsit a bloggal, írjunk próbabejegyzéseket, próbakommenteket, -kategóriákat stb. Ez még később is hasznunkra lehet, ha látni akarjuk építés közben, hogyan is fogunk kinézni. Természetesen ezeket később törölhetjük.

Most, ha mindezzel megvagyunk, nézzük, mit tudunk tenni egy ilyen blogmotorral. Ide fog kelleni nekünk az angol nyelvtudás, ugyanis van egy zseniáls sorozat, So you want to create WordPress themes huh? címmel. Ez kell nekünk, ugyanis minden utolsó kis pontosvesszőt elmagyaráz az író, így nulla PHP, HTML és CSS tudással is tudunk létrehozni teljesen saját sablont a 25 (igazából 16, több részre felbontva) lecke során (egyik sem tart fél óránál tovább, de inkább 10-15 percesek…).

Ebben a bejegyzésben most gyorsan végigveszem ezt a 16 pontot. Végigkövetése és megcsinálása nem tart tovább egy könnyed esténél.

  1. Először az alap szabályokat sajátítjuk el. Mindent taget le kell zárni, úgy bizony, mert akkor kapunk szép, valid, azaz szabványos kódot. Az, hogy soronként plusz 4-5 karaktert írunk le, nagyon-nagyoion sok olvasónk dolgát könnyít meg. A második alapszabály, hogy minden sablon minimum két fájlból áll: index.php és style.css. Ezen kívül még 12 fájlunk lesz, ha mindent akarunk használni, de ez nem probléma, majd szépen lassan kialakul. A Lingo részben megismerkedünk az alapvető blog-szakszókinccsel (5 darab), ezután pedig a WordPress fájl-hierarchiával.
  2. A második leckében az egyes fájlok konkrét funkciójával ismerkedünk meg.
  3. A harmadik már mélyvíz, elkezdjük építeni az index.php fájlunkat. Mivel a lecke saját gépen működő szervert feltételez (aki biztosra akar menni, az csinálhatja így, de talán nincs most erre szükség), ezért mi hagyjuk figyelmen kívül az XAMPP-pal foglalkozó részeket, de ez persze gusztus dolga. Kreáljunk egy index.php-t és egy style.css-t, és az elsőbe másoljuk be a postban található index.txt tartalmát, ami a fejlécet tartalmazza. Ezek után ennek a metaadatokat tartalmazó fejlécet vesszük sorra, elemenként, hogy mi mit jelent. Ezek után töltsük a helyére (http://blogomcime.hu/wp-content/themes/), és nézzük meg a kezelőfelületen a Megjelenés > Sablonok fülön, hogy jé, hát ott van.
  4. Miután megvannak a metaadatok a helyükön vannak, készítsük el a blogunk fejlécét, avagy címsorát.
  5. Folytatásképpen alakítsuk tovább a fejlécet, linkeljünk, csicsázzunk.
  6. Hatodik lépésként hozzuk létre a WordPress lelkét, a Loop-ot. Szó szerint hurkot jelent, ez jeleníti meg a postokat. Érdemes azt a fejezetet nagyon-nagyon lelkiismereten végigolvasni, ugyanis ennek alapos ismerete szinte korlátlan lehetőségeket ad majd kezünkbe.
  7. Ha megvan a Loop, oldjuk meg, hogy tartalom is legyen benne. Ehhez írjuk be a megfelelő kódokat, és formázzuk meg úgy, hogy később szabadon tudjuk kezelni a kinézetét.
  8. Következőként az egyes bejegyzések metaadatait (dátum, szerző, kategória) is jelenítsük meg.
  9. Így létrehoztuk a bejegyzések megjelenítését, már csak azt kell megadni, hogy mi történjék, ha ne adj isten olyat keres valaki, ami nincs is a blogunkban, valamint aggassunk minden bejegyzésünkre sorszámozott címkéket, így akár egyéni megjelenést is biztosíthatunk az egyes bejegyzéseknek (pl az első kiemelése stb.).
  10. Ezek után az egyes bejegyzések és oldalak közti navigációt (előre-hátra, fel-le, jobbra-balra, kinek mi a szíve vágya) oldjuk meg.
  11. A következő nagy lépés az oldalsáv létrehozása, amiben a tartalmat nem képző, kiegészítő funkciók kaphatnak helyet, illetve a visszakeresést segítő kategóriák listája.
  12. Emellett érdemes kirakni a statikus lapok listáját is, akár hierachikusan is megjelenítve.
  13. Már csak az archívum és a linklista hiányzik (ezt errefelé Blogrollnak hívják, de én speciel nem ragaszkodom az elnevezéshez)…
  14. Kis apróságként még hozzácsapjuk a keresést (alapvető!), valamint a naptárat, ami gyakorlatilag az archívum táblázatos megjelenítése. Saját megunkat pedig azzal segíthetjük meg, ha környezetfüggő admin-menüt is pakolunk bele az oldalsávba (azaz, ha be vagyunk jelentkezve, az Admin-felületre rak ki linket, ha nem, a bejelentkező-oldalhoz).
  15. Hab a tortánt, hogy az oldalsávba válogathatunk a hatalmas fejlesztőtábor által előállított widgetek (eszközök?) közül. Ehhez kell még egy csöpp kis munka.
  16. Leértünk a lap aljára: a láblécet is létrehozzuk.
  17. Ha elértünk idáig, nézzük meg, hogy szabványos-e az, amit csináltunk (azt hiszem, nem lövök le semmit, ha elárulom, hogy ha nem nyúltunk mellé nagyon, akkor szabványos…).
  18. Ezek után a kész vázat, ami lássuk be, csúnyácska, nem is kicsit, bár van aki így is szereti, gyúrjuk meg. Erre való a CSS (Cascading Style Sheet – lépcsős stíluslap). Ne ijedjünk meg, továbbra is el lesz magyarázva, miért nyomunk le minden egyes gombot. Nem lesz nehéz.
  19. Az alapvetés után a színek jelölését sajátíthatjuk el (nem ijesztésképpen mondom, de hexadecimális kódban va, azaz 000000-tól ffffff-ig jelöljük a színeket – feketétől fehérig -, de nem ördöngős, ez is el lesz mondva), valamint a linkek formázását.
  20. Ha már szép színesek vagyunk, terjeszkedjünk, azaz dobáljunk és nyomogassunk dobozokat helyre és méretre.
  21. A fő részek kialakítása után olyan finomságokkal is foglalkozhatunk, mint a bejegyzések és metaadatainak formázása.
  22. Az oldalsáv formázása ezek után már – sajnos – gyerekjáték lesz…
  23. A lábléc sem okozhat különösebb nehézséget. Ugyanebben a lépésben istenül meg az index.php, ugyanis azzal, hogy kiemeljük belőle a különböző modulokat (fejléc, oldalsáv és lábléc), csak a lényeg és a lélek (Loop, emlékszünk?) marad benne.
  24. Ha kieszedtük ezeket a függelék részeket, formázzuk meg őket.
  25. Legutoljára pedig a kommenteket is gyúrjuk át, hogy szépek legyenek.

Kész is. Megvan a pofás blog, ráadásul mire eddig eljutunk, már tisztában is vagyunk a WordPress alapvető nyelvtanával. Ugye nem volt annyira nehéz…?

(Bocsánat az elgépelésekért, késő van, és holnap elhúzok kicsit pihire, folytatás utána, vagy vizsgaidőszak végén. Majd kiderül.)

WP-ből portál

Először is köszönöm a támogatást. Bevallom, nem bírtam ki, és elkezdtem, még mielőtt Ádám válaszolt volna… ; )

Az elvárás valahogy úgy néz ki, hogy a két szinten kategorizált bejegyzések külön-külön, kategóriákként jelenjenek meg, és ez tükröződjön a menürendszerben. Azaz egyrészt vannak a fő kategóriák (pl. menedzsment), ezen belül az alkategóriák (pl. PR). A fejlécben csak a fő kategóriák jelennek meg, amiket választva almenüként jönnek be a childok. Eddig rendben is volnánk, ez valahogy így néz ki, először képernyőn, aztán kódszinten, hogy (kiskép, katt nagykép – miért nem működik itt a kódot jelölő tag?)

prtscrn

code

Eddig tehát megvan csinálva a menü kiírása. A továbbiakban azonban egy kicsit el vagyok akadva. Egyrészt az egyes alkategóriák olvasása közben eltűnik a menüsor, csak a főmenü marad meg, ami önmagában nem probléma, csak valahogy meg kéne oldanom, hogy a header-ben kiírja a path-t, vagy akkor maradjon meg az almenüsor, és környezettől függően színezze meg mondjuk a hátteret vagy húzza alá a szöveget. Van egy megoldás-féleség, de elég hosszú (még belegondolni is rossz, hogy a hat fő kategória további 30 alkategóriára van bontva…):

code2

A kezdőlapnak meg egyelőre beállítottam egy statikus home.php-t (a Static Home Page nevezetű pluginnel, a Filosofo valamiért nem akar működni), még azon is van mit javítani, rá kell jönnöm, hogyan tudom a belsejét kicsit megalakítani ennek a lapnak (mindenféle plusz dobozok beillesztése, úgy mint a kategóriák legfrissebbjei lent szépen külön listázva, esetleg egy random RSS-csatorna stb.).

Szóval kb. itt tartok és ennél a problémánál vagyok leülve. Viszont mégsem panaszkodhatok, ez a sebesség és eredmény tőlem teljesen szokatlan és váratlan, úgyhogy éljen.