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 ... texte
  • pre ... texte mit moeglicher direkter html-code eingabe
  • url ... link
  • anc ... 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&auml;hle%20item%20&itm_id=&lt;item-id&gt;

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&auml;hle%20item%20&itm=&lt;item-id>

beispielseiten

verwendungsbeispiele newsystem use cases

das catbull newsystem wird beispielsweise auf den folgenden seite verwendet:

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 :)