Changeset 390 in t29-www


Ignore:
Timestamp:
May 9, 2013, 2:37:12 PM (6 years ago)
Author:
sven
Message:
  • Vor/Zurück-Link bei Lernprojekten aktiviert
  • Anzeige fehlender englischer Übersetzungen wieder aktiviert (aufgehübscht; mit Infobox)
Files:
1 added
7 edited

Legend:

Unmodified
Added
Removed
  • en/no-translation.php

    r287 r390  
    1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    2      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
    4 <head><!--#set var="title"        value="No English version available"
    5    --><!--#set var="location"     value=""
    6    --><!--#set var="url_de"       value=""
    7    --><!--#set var="prev"         value=""
    8    --><!--#set var="prev_title"   value=""
    9    --><!--#set var="next"         value=""
    10    --><!--#set var="next_title"   value=""
    11    -->
    12      <title>technikum29 - <!--#echo var="title" --></title>
    13     <!--#include virtual="/en/inc/head.inc.shtm" -->
    14     <meta name="DC.title" content="technikum29 - <!--#echo var="title" -->" />
    15     <meta name="DC.subject" content="Special page for pages that don't have a translation" />
    16     <meta name="t29.germanoriginal" content="no original" />
    17     <meta name="robots" content="noindex" />
    18 </head>
    19 <body>
    20 <!--#echo encoding="none" var="heading" -->
    21 <div id="content">
     1<?php
     2        $seiten_id = 'no-translation'; // befindet sich nicht in navi
     3        $lang = 'en'; // force language
     4        $version = '$Id$';
     5        $titel = 'No English translation available';
     6        $dynamischer_inhalt = true;
     7       
     8        // see usage below
     9        $how = isset($_GET['how']) ? $_GET['how'] : 'no';
     10        $backurl = isset($_GET['backurl']) ? $_GET['backurl'] : null;
     11        $backtitle = isset($_GET['backtitle']) ? $_GET['backtitle'] : null;
     12       
     13        $template_callback = function($template) use($backurl,$backtitle) {
     14                if($backurl) {
     15                        $template->set_page_relation("prev", $backurl, $backtitle ? $backtitle : "German version of page");
     16                        $template->current_link_classes = array('show-rel-prev');
     17                }
     18               
     19                $template->interlang_links = array(
     20                        'de' =>  $backurl ? t29Menu::dom_new_link($backurl, $backtitle) : t29Menu::dom_new_link('#', 'unknown'),
     21                        'en' =>  t29Menu::dom_new_link('#', 'This "no translation available" page'),
     22                );
     23        };
     24
     25        require "../lib/technikum29.php";
     26?>
    2227    <!--
    2328       "Not yet translated"-Page Usage
     
    3237    -->
    3338
     39    <? /*
    3440    <!--#if expr="$QUERY_STRING = /how=([^,&]+)/" --><!--#set var="how" value="$1" --><!--#endif -->
    3541    <!--#if expr="$QUERY_STRING = /backurl=([^,&]+)/" --><!--#set var="url_de" value="$1" --><!--#endif -->
    3642    <!--#if expr="$QUERY_STRING = /backtitle=([^,&]+)/" --><!--#set var="backtitle" value="$1" --><!--#endif -->
     43    */ ?>
    3744
    38     <!--#if expr="$how = yet" -->
    39     <h2>The page <!--#if expr="($backtitle)" -->&raquo;<!--#echo var="backtitle" -->&laquo;<!--#else --><!--#endif --> has not been translated yet</h2>
    40     <!--#else -->
    41     <h2>There is no translation for <!--#if expr="($backtitle)" -->&raquo;<!--#echo var="backtitle" -->&laquo;<!--#else -->the page you requested<!--#endif --> </h2>
    42     <!--#endif -->
     45    <?php
    4346
    44     <!--#if expr="($url_de)" -->
    45     <p>Please <a href="/de/<!--#echo var="url_de" -->">go back to the german page</a>.</p>
    46     <p>You can also use automatically generated translations from <a href="http://www.google.com">Google</a> or <a href="http://babelfish.altavista.com">Altavista Babelfish</a>
    47        (but don't expect too much):</p>
    48     <ul>
    49        <li><a href="http://translate.google.com/translate?hl=en&sl=de&u=http://www.technikum29.de/de/<!--#echo var="url_de" -->&prev=/search%3Fq%3Dtechnikum29%26hl%3Den%26lr%3D%26sa%3DN">Read the google translation</a></li>
    50        <li><a href="http://babelfish.altavista.com/babelfish/tr?doit=done&url=http://www.technikum29.de/de/<!--#echo var="url_de" -->&lp=de_en">Read the Altavista bablefish translation</a>
    51     </ul>
    52     <!--#else -->
    53     <p>There is no english translation for the requested page.</p>
    54     <p><a class="go" href="javascript:history.go();">Back to the german page</a></p>
    55     <!--#endif -->
    56 
    57 </div>
    58 
    59 <!-- end of content -->
    60 <!--#include virtual="/en/inc/menu.inc.shtm" -->
    61 </body>
    62 </html>
     47       
     48        if($how == 'yet')
     49                $h2 = "The page &raquo;$backtitle&laquo; has not been translated yet";
     50        else
     51                $h2 = "There is no translation for ".($backtitle ? " &raquo;$backtitle&laquo" : "the page you requested");
     52   
     53        print "<h2>$h2</h2>";
     54       
     55        //$url_de = "/de/"...
     56        //$backurl = "/de/".$url_de;
     57       
     58        if($backurl)  {
     59                ?><p class="panel-hide">Please <a href="<?=$backurl; ?>">go back to the german page</a>.</p>
     60                <p>You can also use automatically generated translations from <a href="http://www.google.com">Google</a> or <a href="http://babelfish.altavista.com">Altavista Babelfish</a>
     61                (but don't expect too much):</p>
     62                <ul>
     63                <li><a href="http://translate.google.com/translate?hl=en&sl=de&u=http://www.technikum29.de/<?=$backurl; ?>&prev=/search%3Fq%3Dtechnikum29%26hl%3Den%26lr%3D%26sa%3DN">Read the google translation</a></li>
     64                <!--<li><a href="http://babelfish.altavista.com/babelfish/tr?doit=done&url=http://www.technikum29.de/<?=$backurl; ?>&lp=de_en">Read the Altavista bablefish translation</a>-->
     65                <li><a href="http://www.microsofttranslator.com/bv.aspx?from=de&to=en&a=http://www.technikum29.de/<?=$backurl; ?>">Read the Microsoft translator (Babelfish/Bing)</a></li>
     66                </ul><?php
     67        } else {
     68                ?>
     69                <p>There is no english translation for the requested page.</p>
     70                <p><a class="go" href="javascript:history.go();">Back to the german page</a></p>
     71                <?php
     72        }
  • lib/menu.php

    r350 r390  
    158158         * Extracts a list of (CSS) classes the link has,
    159159         * e.g. <a class="foo bar"> gives array("foo","basr").
     160         *
     161         * Caveat: This must be called before this class is destructed
     162         * by print_menu! Otherwise it will return an empty array. This is
     163         * actually bad design, print_menu destroyes the internal structure
     164         * for storage efficiencey.
     165         *
    160166         * @returns array or empty array in case of error
    161167         **/
    162168        function get_link_classes($seiten_id=false) {
    163169                $link = $this->get_link($seiten_id);
    164                 print "link:"; var_dump($this->xml);
     170                //print "link:"; var_dump($this->xml);
    165171                if(!$link) return array();
    166                 var_dump($link); exit;
     172                //var_dump($link); exit;
    167173                return isset($link['class']) ? explode(' ',$link['class']) : array();
    168174        }
  • lib/messages.php

    r347 r390  
    122122                'topnav-interlang-active' => array('Sie betrachten gerade die Seite "%s" auf Deutsch', 'You currently read the page "%s" in English'),
    123123                'topnav-interlang-nonexistent' => array('Diese Seite steht auf Deutsch nicht zur Verfügung', 'This page is not available in English'),
     124                'topnav-interlang-nonexistent-page' => '/en/no-translation.php',
    124125                'topnav-search-label'    => array('Suchen', 'Search'),
    125126                'topnav-search-page'     => array('/suche.php', '/search.php'),
  • lib/technikum29.php

    r357 r390  
    5555$lang_path = $languages[$lang][1]; # shorthand, relative to webroot. use "$webroot$lang_path" for local.
    5656
     57// "AJAX" calls are our meaning for pages without chrome
     58$ajax = isset($_GET['ajax']);
     59if($ajax) {
     60        // print only a minimal chrome, no caching.
     61        require "$lib/ajax-template.php";
     62        $ajax_tmpl = new t29AJAXTemplate($GLOBALS);
     63        $ajax_tmpl->print_page();
     64        // important: do not execute bottom code
     65        return true;
     66}
     67
    5768require "$lib/cache.php";
    5869
  • lib/template.php

    r357 r390  
    112112                $this->page_relations = $this->menu->get_page_relations();
    113113                $this->interlang_links = $this->menu->get_interlanguage_link();
     114                $this->current_link_classes = $this->menu->get_link_classes();
    114115               
    115116                // check and load additional css
     
    157158                // Link is composed as <a href="$href">$label</a>.
    158159                $this->page_relations[$relation] = t29Menu::dom_new_link($href, $label);
    159                 print_r($this->page_relations);
     160                //print_r($this->page_relations);
    160161        }
    161162
     
    228229  <?php
    229230        foreach($this->conf['header_prepend'] as $h) print $h."\n  ";
     231       
     232        if($this->conf['ajax']) print "\n  <meta name='t29.ajax' content='true'>";
    230233 
    231234        if(isset($this->conf['version'])) printf('<meta name="t29.version" content="%s">', $this->conf['version']);
     
    323326                                                if(is_null($a)) {
    324327                                                        // when interlanguage link not present (null) = no translation exists
    325                                                         $a = t29Menu::dom_new_link('#', 'not present');
     328                                                        $backtitle = isset($this->conf['titel']) ? $this->conf['titel'] : null;
     329                                                       
     330                                                        $a = t29Menu::dom_new_link(
     331                                                                $_('topnav-interlang-nonexistent-page') . '?'
     332                                                                   . htmlentities(http_build_query(array(
     333                                                                        'backurl' => $_SERVER['REQUEST_URI'],
     334                                                                        'backtitle' => $backtitle ? $backtitle : null,
     335                                                                     ))),
     336                                                                'not present'
     337                                                        );
    326338                                                        $title = sprintf($_('topnav-interlang-nonexistent', $lang));
    327339                                                        $class = 'nonexistent';
     
    355367                $print_footer_menu = ($this->conf['seite_in_nav'] == 'side') || isset($this->conf['force_footer_menu']);
    356368               
    357                 /*
    358369                // print next or prev entry when the current page has a
    359370                // "show-rel-next" or "show-rel-prev" class entry
    360                 $current_link_classes = $this->menu->get_link_classes();
    361                 print_r($current_link_classes); exit;
    362                 $show_rel_next = in_array('show-rel-next', $current_link_classes);
    363                 $show_rel_prev = in_array('show-rel-prev', $current_link_classes);
    364                 */
     371                $show_rel_next = in_array('show-rel-next', $this->current_link_classes);
     372                $show_rel_prev = in_array('show-rel-prev', $this->current_link_classes);
     373               
    365374        ?>
    366375    <footer class="in-sheet <? if(!$print_footer_menu) print "empty-footer"; ?>">
     
    371380                <ul>
    372381                        <?php
    373                           if($print_footer_menu) //|| $show_rel_prev || $show_rel_next)
     382                          //if($print_footer_menu)
    374383                                foreach($this->page_relations as $rel => $a) {
    375                                         /*
    376384                                        // only show the links wanted to be shown. Only relevant if
    377385                                        // the "show-rel-*"-magic is working.
    378                                         if( $print_footer_menu
     386                                        if( $print_footer_menu ||
    379387                                            (!$print_footer_menu && $rel == "prev" && $show_rel_prev) ||
    380388                                            (!$print_footer_menu && $rel == "next" && $show_rel_next)) {
    381                                         */
     389                                       
    382390                                                printf("\t<li class='%s'><a href='%s' title='%s'>%s <strong>%s</strong></a>\n",
    383391                                                        $rel, $href($a['href']), sprintf($_('head-rel-'.$rel), $this->relational_link_to_string($a)),
    384392                                                        $_('nav-rel-'.$rel), $this->relational_link_to_string($a)
    385393                                                );
    386                                         //} // endif
     394                                        } // endif
    387395                                } // endfor
    388396                        ?>
  • shared/css-v6/modules/18-content.css

    r347 r390  
    7777.messages.panel { margin-bottom: 20px; }
    7878
    79 .messages.panel li {
     79.messages.panel > li {
    8080        margin-bottom: 5px;
    8181        background-color: #FCF8E3;
     
    9292}
    9393
     94.messages.panel .panel-hide { display: none; }
     95
     96.messages.panel h2, #content .messages.panel h2 {
     97        font-size: 120%;
     98        font-weight: bold;
     99        font-family: inherit;
     100        border: none;
     101        border-bottom: 1px solid #aaa;
     102        margin: 0;
     103        margin-bottom: 5px;
     104}
     105
    94106.messages.footer {
    95107        /* sollte eigentlich gar nicht dargestellt werden, sondern von log.js
  • shared/js-v6/modules/interlang.js

    r347 r390  
    55 * Benutzers existiert, falls er extern reinkam, da die Sprachwahl sonst doch
    66 * recht versteckt ist.
     7 *
     8 * Kuemmert sich ausserdem darum, hinzuweisen, dass eine Seite nicht in anderer Sprache existiert
    79 *
    810 **/
     
    2426}
    2527
    26 t29.interlang.setup = function() {
     28t29.interlang.setup_interlang_hint = function() {
    2729        // Noch deaktiviert, da get_prefered_language() nocht nicht implementiert ist
    2830        return;
     
    5254}
    5355
     56t29.interlang.catch_nonexistent_interlang = function() {
     57        $("nav.top li.nonexistent a").click(function() {
     58                // seiteninhalt per ajax kriegen
     59                $.get(this.href + "&ajax", function(data) {
     60                        t29.log.notice({
     61                                //heading: $("h2", content).detach().html(),
     62                                text: data,
     63                                dismissable: true
     64                        });
     65                });
     66               
     67                // link nicht folgen
     68                return false;
     69        });
     70}
     71
     72t29.interlang.setup = function() {
     73        t29.interlang.setup_interlang_hint();
     74        t29.interlang.catch_nonexistent_interlang();
     75}
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