Changeset 649 in t29-www for lib/news.php


Ignore:
Timestamp:
Aug 28, 2014, 3:40:34 PM (5 years ago)
Author:
sven
Message:

RSS-Feed-Probebetrieb ausgeweitet: Internationalisiert, fuer englische Version gibts jetzt auch einen RSS-Feed.

Insbesondere ist in auf englischen Newsseite jetzt testweise ein alternatives Format zum Deutschen geschaltet, auf welches das Deutsche dann auch umgeschaltet werden soll. Es bedarf weniger Pflege und generiert gleichzeitig die Newsseite, das Newsmenü und den abonnierbaren News-Feed. Wenn sich das Format bewährt, kann die deutsche Newsseite darauf auch umgestellt werden.

Ferner wurden die RSS-Feeds auf den News-Seiten textuell erwähnt. Testweise werden auch im englischen Menü wieder Vorschaubilder (Thumbnails) bei den Neuigkeiten eingeblendet, die allerdings derzeit nur auf max 64x64px verkleinerte Einblendungen der entsprechenden News-Bilder sind. Hierfür fehlt noch eine sinnvollere Methode.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • lib/news.php

    r644 r649  
    2323$required_fields = array('titel', 'text', 'link', /*'bild'*/);
    2424
     25# Hack, um die Sprache zu bekommen, von technikum29.php kopiert.
     26require "$lib/host.php";
     27$host = t29Host::detect();
     28$file = $host->slash_filename; # e.g.: "/de/page.php"
     29if(!isset($lang)) $lang = substr($file, 1, 2);
     30if(!in_array($lang, array('de','en'))) $lang = "de"; # check if language exists
     31
     32require $lib.'/messages.php';
     33$msg = new t29Messages($lang);
     34$p = $msg->get_shorthand_printer();
     35
    2536# und hostname davor.
    2637# $this->conf['lang_path'].'/'.self::news_file
    27 $news_url = "http://www.technikum29.de/de/news";
     38$news_url = "http://www.technikum29.de/$lang/news";
    2839# if($host)     $url = $host->rewrite_link($url);
    2940
     
    3546<rss
    3647   xmlns:atom="http://www.w3.org/2005/Atom"
    37    xml:lang="de-DE"
     48   xml:lang="<?php print $lang; ?>"
    3849   version="2.0">
    3950    <channel>
    40         <title>technikum29 Computer Museum - Was gibt es Neues?</title>
     51        <title><?php $p('rss-title'); ?></title>
    4152        <link>http://www.technikum29.de</link>
    42         <description>Neuste Geräte und Erweiterungen im technikum29-Computermuseum</description>
    43         <language>de-DE</language>
    44         <copyright>&#x2117; &amp; &#xA9; 2033-<?=date('Y'); ?> Heribert Müller und das technikum29-Team</copyright>
     53        <description><?php $p('rss-description'); ?></description>
     54        <language><?php print $lang; ?></language>
     55        <copyright>&#x2117; &amp; &#xA9; 2003-<?=date('Y'); ?> <?php $p('rss-copyright'); ?></copyright>
    4556        <pubDate><?=date('r', $pubdate); ?></pubDate>
    4657        <image>
    47                 <url>http://www.technikum29.de/shared/img-v6/banner.de.png</url>
     58                <url>http://www.technikum29.de/shared/img-v6/banner.<?php print $lang; ?>.png</url>
    4859                <title>technikum29 Computermuseum</title>
    4960                <link>http://www.technikum29.de/</link>
     
    5263        <!--<ttl><?=60*12; ?></ttl>--><!-- half a day -->
    5364       
    54         <atom:link href="http://www.technikum29.de/de/news.php?format=rss" rel="self" type="application/rss+xml" />     
     65        <atom:link href="http://www.technikum29.de/<?php print $lang; ?>/news.php?format=rss" rel="self" type="application/rss+xml" /> 
    5566       
    5667        <?php
    5768        foreach($data as $e) {
     69                // Kompatibilitaet im August 2014, Uebergangsphase
     70                if(!isset($e['text']) && isset($e['untertitel'])) $e['text'] = $e['untertitel'];
     71                if(!isset($e['link']) && isset($e['datum'])) $e['link'] = $news_url.'#'.str_replace(' ', '_', $e['datum']);
     72
    5873                if(!array_reduce(array_map(function($x) use ($required_fields,$e){ return isset($e[$x]); }, $required_fields),
    5974                                function($a,$b){ return $a && $b;}, true)) {
     
    6176                        <item>
    6277                                <title>Fehlformatierung</title>
    63                                 <description>Leider ist dieser Eintrag nicht richtig formatiert. Schauen Sie sich die News-Seite direkt an.</description>
     78                                <description><![CDATA[<html><body>
     79                                        <b>Leider ist dieser Eintrag nicht richtig formatiert</b>. Schauen Sie sich die News-Seite direkt an.
     80                                        <p><i>Details:</i></p>
     81                                        Eines der Fehler Felder <?php print implode(", ", $required_fields); ?> fehlt.
     82                                        Details: <pre><?php print var_dump($e); ?></pre>
     83                                </body></html>]]>
     84                                </description>
    6485                                <link>http://www.technikum29.de/de/news</link>
    6586                        </item>
     
    6990                        <item>
    7091                                <title><?=$e['titel']; ?></title>
    71                                 <description><?=$e['text']; ?></description>
     92                                <description><?php
     93                                        // if text contains tags like <em>, mark it as HTML
     94                                        if(strpos($e['text'], '<') !== false) { print '<![CDATA[<html><body>'; }
     95                                        print $e['text'];
     96                                        if(strpos($e['text'], '<') !== false) { print '</body></html>]]>'; } ?>
     97                                </description>
    7298                                <author>Heribert Müller</author>
    7399                                <?php
    74                                         $link =  ($e['link']{0} == '#' ? $news_url : '').$e['link'];
     100                                        if($e['link']{0} == '#') $link = $news_url . $e['link'];
     101                                        else if($e['link']{0} == '/') $link = 'http://www.technikum29.de' . $e['link'];
     102                                        else $link = $e['link'];
    75103                                ?>
    76104                                <link><?=$link; ?></link>
     
    89117// rss ausgegeben, jetzt: exit um nicht noch Seite auszugeben.
    90118exit();
    91 
    92119} else {
     120        // bin eingebunden von news-Seite
    93121        require("$lib/technikum29.php");
     122        // wichtig:
    94123        return true;
    95124}
     125
Note: See TracChangeset for help on using the changeset viewer.
© 2008 - 2013 technikum29 • Sven Köppel • Some rights reserved
Powered by Trac
Expect where otherwise noted, content on this site is licensed under a Creative Commons 3.0 License