Welcome, Guest. Please login or register.
Friday, July 25, 2008 (09:14)
Home Help Search Login Register
News: Feel free to ask and post all questions regarding mwCMS

+  mwCMS
|-+  Deutscher Support
| |-+  Plugins, Layouts und Erweiterungen
| | |-+  Nachrichten-Teaser
« previous next »
Pages: [1] Print
Author Topic: Nachrichten-Teaser  (Read 879 times)
rene_jo
mwCMS player
**
Posts: 25


View Profile
« on: Tuesday, January 08, 2008 (14:06) »

Ich möchte für meinen Webauftritt einen Nachrichten-Teaser bauen.

Ist dies mit mwCMS möglich?
Hat jemand eine Idee zur einfachen Umsetzung meines Vorhabens?
Logged
ClausVB
Administrator
mwCMS player
*****
Posts: 25


View Profile
« Reply #1 on: Monday, January 14, 2008 (16:44) »

Ist dies mit mwCMS möglich?

Ja, natürlich. Du kannst ein externes News-Skript über die Plugins einbinden, aber wenn es nur eine kleine Webseite ist, bietet sich evtl. so etwas an:

Code:
<fieldset>
  <legend>10.01.2008 - Sport</legend>
  <h2>Die Überschrift der Sportnachricht</h2>
  Der Text der Sportnachricht<br />
  <a href="die_url_der_sportnachricht.htm">mehr ...</a>
</fieldset>

Das ist das HTML-Grundgerüst, dass Du dann mit CSS belieben steuern kannst.

Dazu kannst Du dann im MediaWiki eine sogenannte Extension bauen:

Code:
<teaser datum="10.01.2008" rubrik="Sport" [Anmerkung: weitere Attribute sind möglich]>Der Text der Sportnachricht</teaser>

Ein kurzes Beispiel, wie eine sogenannten "Tag Extension" funktioniert kann man bei mediawiki.org nachlesen.

Mach mir bitte mal ein paar Beispiele für Deine Seite, danke!

Gruß
Claus
« Last Edit: Tuesday, July 15, 2008 (12:16) by ClausVB » Logged
rene_jo
mwCMS player
**
Posts: 25


View Profile
« Reply #2 on: Thursday, January 17, 2008 (08:10) »

Hallo Claus,

dein Vorschlag hört sich gut an. Da ich seltener Nachrichten veröffentliche, möchte ich deine Idee aufnehmen und auf ein externes News-Skript verzichten.

Der Teaser sollte wie folgt aufgebaut sein:

Code:
<fieldset>
  <legend>13.01.2008</legend>
  <h2>Neue Ampelanlage an L 158 in Betrieb genommen</h2>
  Die neue Ampelanlage an der Landstraße 158 (Ecke Zukunftsweg / Im Bruch) ist nach langer Planungs- und Bauzeit nun in der vergangenen Woche endlich in Betrieb genommen worden.<br />
  <a href="/Artikel_2008-01-13_ampelanlage_in_betrieb_genommen.htm">mehr ...</a>
</fieldset>

Im CSS habe ich ergänzt:

Code:
   /***** TEASER: eigener DIV-Container *****/

  #teaser fieldset {
    margin-bottom: 20px;
    padding: 10px 10px 10px 10px;
    color: #000;
    border: 1px #1B3A8B solid;
    background:#fff;
  }

  #teaser legend {
    color:#999;}


Für das Plugin benötige ich entsprechend des oben geposteten Beispiels folgende Attribute:
- Datum
- Überschrift
- URL

Auf der Seite http://www.villip.de/02_nachrichten.htm habe ich drei Nachrichten angelegt:

Artikel_2008-01-13_ampelanlage_in_betrieb_genommen
Artikel_2008-01-10_termine_januar
Artikel_2008-01-10_vier_jahre_jiw

Die Artikel beginnen allesamt mit "Artikel_".

Wenn du weitere Angaben benötigst, melde dich bitte.

VIELEN DANK!

Gruß René
Logged
ClausVB
Administrator
mwCMS player
*****
Posts: 25


View Profile
« Reply #3 on: Friday, January 18, 2008 (18:42) »

Zuerst müssen wir das MediaWiki erweitern, danach das mwCMS.

Die Datei "extensions/teaser.php" muss mit folgendem Inhalt erzeugt werden:
Code:
<?php
$wgExtensionFunctions[] = 'teaser';

function teaser()
{
global $wgParser;
$wgParser->setHook('teaser''process_teaser');
}

function process_teaser($input$args$parser)
{
$teaser_with_fieldset_and_legend '<fieldset> <legend>'
$args['date'] . '</legend> <h2>'
$args['caption'] . '</h2> '
htmlspecialchars($input) . '<br /> <a href="'
$args['url'] . '">mehr ...</a>';

return $teaser_with_fieldset_and_legend;
}
?>

Die Datei "LocalSettings.php" mus am Ende folgende Zeile enthalten:

Code:
require_once 'extensions/teaser.php';

Im MediaWiki muss der Teaser eingegeben werden:

Code:
<teaser date="13.01.2008" caption="Neue Ampelanlage an L 158 in
Betrieb genommen" url="Artikel_2008-01-13_ampelanlage_in_betrieb_genommen">Die
neue Ampelanlage an der Landstraße 158 (Ecke Zukunftsweg / Im Bruch) ist nach
langer Planungs- und Bauzeit nun in der vergangenen Woche endlich in Betrieb
genommen worden.</teaser>

Funktioniert dann der Teaser im MediaWiki?

Gruß
Claus
« Last Edit: Friday, January 18, 2008 (22:19) by ClausVB » Logged
rene_jo
mwCMS player
**
Posts: 25


View Profile
« Reply #4 on: Monday, January 28, 2008 (11:20) »

Hallo Claus,

vielen Dank für den nützlichen Tipp. Ich habe deinen Vorschlag inzwischen getestet. Der Teaser wird dargestellt. Allerdings musste in der Datei "extensions/teaser.php" noch "</fieldset>" ergänzt werden:

Code:
<?php
$wgExtensionFunctions[] = 'teaser';

function teaser()
{
global $wgParser;
$wgParser->setHook('teaser''process_teaser');
}

function process_teaser($input$args$parser)
{
$teaser_with_fieldset_and_legend '<fieldset> <legend>'
$args['date'] . '</legend> <h2>'
$args['caption'] . '</h2> '
htmlspecialchars($input) . '<br /> <a href="'
$args['url'] . '">mehr ...</a></fieldset>';

return $teaser_with_fieldset_and_legend;
}
?>

Gruß René
Logged
rene_jo
mwCMS player
**
Posts: 25


View Profile
« Reply #5 on: Friday, February 01, 2008 (14:49) »

Die Erstellung des Teasers hat soweit sehr gut funktioniert. An die Handhabung gewöhnt man sich schnell. Allerdings gibt es entgegen meiner ursprünglichen Erwartung ein Problem mit der Verlinkung. Ich muss den Hyperlink zum Artikel komplett mit "MediaWiki_" und ".htm" eintragen, also

Code:
(...) url="MediaWiki_(Rubrik)_Musterartikel.htm"  (...)


Das hat zur Folge, dass die Seiten innerhalb des MediaWiki nicht mehr über den Hyperlink aufgerufen werden können.

Gibt es eine Lösung für mein Problem?
Logged
ClausVB
Administrator
mwCMS player
*****
Posts: 25


View Profile
« Reply #6 on: Friday, February 01, 2008 (16:08) »

Gibt es eine Lösung für mein Problem?

Ja. Ist gar nicht so schwer, wenn man sich nur mal genug Gedanken gemacht hat Cheesy

Zuerst wollte ich das über den Parser (include/class_parser.php) regeln, aber es geht eigentlich ganz simpel. Der Parser bearbeitet nämlich schon interne Hyperlinks, aber sie müssen mit "/index.php/..." beginnen und ein TITLE-Attribut haben. Das ist bei Deiner Teaser-Extension für das MediaWiki nicht enthalten. So müsste es gehen:

Code:
<?php
// siehe Quelltext oben im Forum

function process_teaser($input$args$parser)
{
$wiki_url str_replace(' ''_'$args['url']);

$teaser_with_fieldset_and_legend '<fieldset> <legend>'
$args['date'] . '</legend> <h2>'
$args['caption'] . '</h2> '
htmlspecialchars($input) . '<br /> <a href="/index.php/'
$wiki_url '" title="' $args['caption'] . '">mehr ...</a></fieldset>';

return $teaser_with_fieldset_and_legend;
}
?>

Den "str_replace()" habe ich eingefügt, damit Du mit Copy&Paste arbeiten kannst und nicht immer alle Leerzeichen durch Unterstrich ersetzen musst.

Gruß
Claus
Logged
Pages: [1] Print 
« previous next »
Jump to:  


Login with username, password and session length

Powered by MySQL Powered by PHP Powered by SMF 1.1.4 | SMF © 2006-2007, Simple Machines LLC Valid XHTML 1.0! Valid CSS!