Catbull Newsystem
das catbull newsystem ist ein kleines selbst entwickeltes system zur wartung von einfach veränderbaren inhalten für web-seiten.
das system basiert auf sogenannten templates welche von den entwicklerinnen der seite in das newsystem hoch geladen und hinterher in die webseite eingebunden werden können. danach können diese templates/seiten von den betreuerinnen der seite mit inhalten befüllt werden.
zugriff
es gibt separate login und passworte für dieses system.
verfügbare variablen
eine gruppe von variablen wird verwendet um später mit daten befüllt zu werden - texte, bilder etc. - eine andere entsteht im system durch das anlegen von instanzen / befüllen von templates mit daten - etwa temporale daten, url bezogene etc.: verwendbare/befüllbare variablen
einfache typen
pic
... bilder (als img tag fuer html)act
... bilder (nur als url zur beliebigen weiterverwendung)txt
... textepre
... texte mit moeglicher direkter html-code eingabeurl
... linkanc
... html-anchor - fuer ansprung zb. aus einem sub-template
und die dateibezogenen
fil
... datei (funktioniert; speziell fuer PDFs mit eigenem icon)med
... mediale inhalte - videos, musik (musik, videos)img
... bildergalerien (pre-alpha) ohne lightbox viewer
container variable für mehrere dateien vom typ fil
bag
... mehrere dateien kombiniert (pre-alpha)
variablen werde in den templates in der folgenden form angegeben und vom system ausgelesen
@<typ der variable>:<name der variable>@
zusätzlich verwendbar variablen sind
temporale vars
_-_bdate_-_
... bearbeitungsdatum_-_termin_-
_ ... termin/ablaufdatum_-_erscheinen_-_
... erscheinungsdatum_-_cdate_-_
... erstellungsdatum (creation)
sowie
_-_baseurl_-_
... url der referenzierenden seite_-_selfid_-_
... ItemId - interne id der aktuellen instanz
für verschiedene newsys-interne daten
_-_ititle_-_
... interner titel_-_kategorie_-_
... kategorie des eintrags_-_kategorie2_-_
... zweite kategorie_-_language_-_
... sprache - falls spezifiziert
html-anchor quelle
_-_anchor_-_
... anchor
template beispiel
hier ein einfaches beispiel, weitere beispiele findet ihr in den SCM-repositories des catbull-servers — zugriff auf anfrage:
<!-- das-ist-ein-test.templ -->
@anc:muo@
<div class="item">
<div class="center">
@pic:bild@<br />
@url:url1@<br />
@txt:text@<br />
@pre:object1@
</div>
_-_bdate_-_ <b>@txt:reinstellerin@</b> <br />
</div>
- bemerkung: ein html5 konformer html-anchor schaut folgendermassen aus - id in einem html element, etwa einem div-tag -, in obigem beispiel etwa:
<div class="item" id="muo__-_anchor_-_" >
nun eine ,,schritt für schritt" erklärung des templates oben:
@anc:muo@
... definiert eine html-anchor um später in der html-seite die einzelnen einträge referenzieren zu können@pic:bilder@
... platzhalter für ein bild - mit optional hinterlegtem link auf eine url@url:url1@
... platzhalter für eine url@txt:text@
... platzhalter für einen text@pre:object1@
... platzhalter für ein beliebiges html-object: etwa ein eingebettetes youtube-video oder ähnliches_-_bdate_-_
... wird mit dem datum der bearbeitung des eintrags befüllt@txt:reinstellerin@
... nochmal ein textfeld
template hochladen/benennen
um daten für dieses template eingeben zu können muss das template in einer datei gespeichert werden und im admin-bereich des newsystems als template für den/die benutzerin hinterlegt werden. dabei muss ein systemweit eindeutiger (!) name für das template angegeben werden ... zur vermeidung von namenskollisionen bitte immer einen vom benutzerinnennamen abgeleiteten prefix in den templatenamen verwenden ... als wenn zb. der/die benutzerin ,,user" heisst - und sagen wir die kurzform ,,usr" als prefix - folgendes format für templatenamen verwenden:
usr-<name des templates>
template verwenden
einbetten der ausgabe in eine vorhandene html-seite zum beispiel per php-include:
$incContent = file_get_contents("https://catbull.com/news/out.php?alpha=usr-<name des templates>");
echo $incContent;
anwendungsbeispiele
ausgabe item
abfrage einer bestimmten nachricht mit:
out.php?itm=<item-id>
aller vorhandenen nachrichten zu einem template die noch nicht abgelaufen sind mit:
out.php?alpha=<template-name>
aller Nachrichten die nach dem datum 2010-07-16 ablaufen:
out.php?alpha=<template-name>&time=2010-07-16
aller Nachrichten die nach dem datum 2010-07-16 ablaufen; darstellung im ersten sub-template:
out.php?alpha=<template-name>&time=2010-07-16&sub=true
aller Nachrichten die nach dem datum 2010-07-16 ablaufen; darstellung im zweiten sub-template:
out.php?alpha=<template-name>&time=2010-07-16&sub=2nd
aller Nachrichten die im monat mai 2010 ablaufen:
out.php?alpha=<template-name>&month=2010-05
aller Nachrichten die im jahr 2010 ablaufen:
out.php?alpha=<template-name>&year=2010
individueller zeitraum: alle nachrichten des templates, die nach dem datum 2009-01-01 und vor 2011-12-28 ablaufen:
out.php?alpha=<template-name>&time=2009-01-01&end=2011-12-28
alle nachrichten des templates, die nach dem datum 1999-01-01 ablaufen - also alle einträge:
out.php?alpha=<template-name>&time=1999-01-01
alle aktuellen nachrichten des templates die der kategorie ,,test-kategorie" angehören:
out.php?alpha=<template-name>&kat=test-kategorie
alle aktuellen nachrichten des templates die der kategorie2 ,,test-kategorie" angehören:
out.php?alpha=<template-name>&kat2=test-kategorie2
alle aktuellen nachrichten des templates die der sprache ,,deutsch angehören:
out.php?alpha=<template-name>&lang=de
alle aktuellen nachrichten des templates in umgekehrter reihenfolge bezüglich des ablaufdatums:
out.php?alpha=<template-name>&rev=true
alle aktuellen nachrichten des templates in alphabetischer reihenfolge bezüglich ihres internen titels:
out.php?alpha=<template-name>&abc=true
out.php?alpha=<template-name>&abc=true&rev=true
navigation
navigations-menu in form einer html-ul der kategorien:
nav.php?alpha=<template-name>
nav.php?alpha=<template-name>&order=rev
navigations-menu in form einer html-ul der zweiten kategorien:
nav.php?alpha=<template-name>&kat2=true
nav.php?alpha=<template-name>&kat2=true&order=rev
navigations-menu in form einer html-ul der zweiten kategorien die der kategorie ,,test" angehören:
nav.php?alpha=<template-name>&kat=test&kat2=true
nav.php?alpha=<template-name>&kat=test&kat2=true&order=rev
navigations-menu in form einer html-ul der internen titels der items des templates:
nav.php?alpha=<template-name>&order=rev
nav.php?alpha=<template-name>&toc=true&rev=true
navigations menue in form einer html-ul der variable ,,titel":
nav.php?alpha=<template-name>&toc=titel
nav.php?alpha=<template-name>&toc=titel&order=rev
navigations menue als form-sel der items einer kat ,,test":
nav.php?alpha=<template-name>&kat=test&text=wähle%20item%20&itm_id=<item-id>
image gallery
verwendet image viewer lightbox2: siehe auch http://www.lokeshdhakar.com/projects/lightbox2/
einbinden der notwendigen javascript- und css-dateien
<!-- include necessary script files -->
<script type="text/javascript" src="js/prototype.js"></script>
<script type="text/javascript" src="js/scriptaculous.js?load=effects,builder"></script>
<script type="text/javascript" src="js/lightbox.js"></script>
<!-- include lightbox2 stylesheet -->
<link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" />
einfaches beispiel template für eine gallerie
<!-- example usage of the lightbox2 image viewer with my newsys templ system -->
<a href="@act:view_this_crap_with_lightbox2@" rel="lightbox">@pic:thumbnail@</a>
und verwendung:
gallerie-menu in form einer html-ul der kategorien:
view.php?alpha=<template-name>&url=view.php?alpha=pic%26
view.php?alpha=<template-name>&order=rev&url=view.php?alpha=pic%26
gallerie-menu in form einer html-ul der internen titels der items des templates:
view.php?alpha=<template-name>&order=rev&url=pic.php
view.php?alpha=<template-name>&toc=true&rev=true&url=pic.php
gallerie-menue in form einer html-ul der variable ,,titel":
view.php?alpha=<template-name>&toc=titel
view.php?alpha=<template-name>&toc=titel&order=rev
gallerie-menue als form-sel der items einer kat ,,test":
view.php?alpha=<template-name>&kat=test&text=wähle%20item%20&itm=<item-id>
beispielseiten
verwendungsbeispiele newsystem use cases
das catbull newsystem wird beispielsweise auf den folgenden seite verwendet:
- http://badspin.at
- http://bernhardschneider.at
- http://diy-ibk.at
- http://shirt24.at
- http://kooio.net
- http://mostlyuseless.org
- http://vakuum.at
- ...
und auch noch in verschiedenen anderen webprästentationen.
bekannte Probleme
mit umlauten/sonderzeichen -- zum administrieren bitte unbedingt einen aktuellen browser verwenden
- wo: im automatisch generierten CRUD-bereich zum anlegen und editieren von inhalten.
- was: speziell beim editieren von einträgen "verschwinden" sonderzeichen oder "wandeln" sich umlaute in unleserliche zeichen/fragezeichen um.
-
lösung: bitte verwendet einen halbwegs aktuellen webbrowser, speziell aeltere firefox versionen scheinen dieses problem zu haben.
-
hintergrund: umlaute werden automatisch in ihre html-entitäten umgewandelt und es sollte problemlos möglich sein, im newsystem in textbereichen - in denen dies auch technisch sinn macht - utf-8 zeichen zu verwenden.
diese werden automatisch in ihren zahlencode in der form &#yyyy; umgewandelt, in dieser form in der datenbank abgelegt und wieder ausgegeben. aufgrund des alters des systems ist die datenbank selbst nicht im utf-8 format, aber das system kann mit utf-8 zeichen umgehen.
TODO
// FIXME enhance docu :)