Changeset 278 in t29-www for lib


Ignore:
Timestamp:
Jul 18, 2012, 2:55:44 PM (10 years ago)
Author:
sven
Message:

Seitendurchgang mit Heribert zum t29v6-Launch und darauffolgende Arbeiten.

  • Viele Bugfixes in den deutschen Seiten
  • "weisser-rahmen"-Klasse für Bilder mit weißem Hintergrund eingeführt
  • menu.php: Behandlung von Geräte-Seiten, Body-Klassen auf Basis der Navigationszugehörigkeit
  • RessourceLoader-Optimierungen (nur noch JS-Messages laden)
  • Neuer "Mini"-Modus für Navigationsleiste, implementiert durch menu.js, für Geräteseiten.
  • Bugfixes im Footer: Beam Navigation beim ungerader Anzahl Elemente, Opacity vs. Visibility probiert
  • Überschriftenebene 5 eingeführt (Sieht wie bold aus)
  • Tabellenlayout gefixt
  • Bildboxen kleinen Bug gefixt
  • Heading-Links Padding-Top
  • img_license.js: Fix bei Bildern mit Border
  • menu.js gross umgeschrieben: Entzwirbelung von Collapsable und Scrollable-Code (verschoben auf CSS-Anweisung), besserer Umgang mit Konstanten in Collapsable, Mini-Menu implementierung (eher hacky)

Es gibt noch eine grosse TODO-Liste, was alles gemacht werden muss.

Location:
lib
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • lib/menu.php

    r275 r278  
    7171       
    7272        ///////////////////// RETURN INFOS ABOUT SEITEN_ID LINK
    73         function get_link_infos($seiten_id=false) {
     73        function find_link($seiten_id=false) {
    7474                if($this->xml_is_defective()) {
    7575                        return null;
     
    101101                        ));
    102102
    103                         $link = $foreign_menu->get_link_infos($seiten_id);
     103                        $link = $foreign_menu->find_link($seiten_id);
    104104                        $interlinks[$lang] = $link;
    105105                }
     
    118118                return new SimpleXMLElement(sprintf('<a href="%s">%s</a>', $href, $label));
    119119        }
     120
    120121
    121122        ///////////////////// MENU ACTIVE LINK DETECTION
     
    156157                        $adom->removeAttribute('seiten_id');
    157158                }
     159
     160                // Geraete-Seiten entfernen
     161                $geraete_uls = $xml->xpath("//ul[contains(@class, 'geraete')]");
     162                foreach($geraete_uls as $ul) {
     163                        $uld = dom_import_simplexml($ul);
     164                        $uld->parentNode->removeChild($uld);
     165                }
    158166       
    159167                if($xpath_menu_selection == self::horizontal_menu) {
     
    186194                $sidebar = $xml[0];
    187195               
     196               
    188197                $return = array();
    189198                $current_a = $sidebar->xpath("//a[@seiten_id='$seiten_id']");
    190199                if(count($current_a)) {
    191200                        foreach(array(
    192                           "prev" => "preceding::a[@seiten_id][1]",
    193                           "next" => "following::a[@seiten_id][1]") as $rel => $xpath) {
    194                                 $node = $current_a[0]->xpath($xpath);
    195                                 if(count($node))
    196                                         $return[$rel] = $node[0]; # $node[0] = <a href=../> tag
     201                          "prev" => "preceding::a[@seiten_id]",
     202                          "next" => "following::a[@seiten_id]") as $rel => $xpath) {
     203                                $nodes = $current_a[0]->xpath($xpath);
     204                                foreach($rel == "prev" ? array_reverse($nodes) : $nodes as $link) {
     205                                        $is_geraete = count($link->xpath("ancestor::ul[contains(@class, 'geraete')]"));
     206                                        if($is_geraete) continue; // skip geraete links
     207                                        $return[$rel] = $link;
     208                                        break; // just take the first matching element
     209                                }
    197210                        }
    198211                } else {
     
    204217                return $return;
    205218        }
     219       
     220        /**
     221         * Construct link class information as an array, containing:
     222         *  - navigation list membership (in-nav-horizontal, in-nav-side)
     223         *  - parental ul classes (in-u2, in-u3, in-geraete, ...)
     224         * @returns array with individual class names as strings
     225         **/
     226        function get_link_classes($seiten_id=false) {
     227                if($this->xml_is_defective())
     228                        return array();
     229                if(!$seiten_id) $seiten_id = $this->conf['seiten_id'];
     230               
     231                $link = $this->find_link($seiten_id);
     232                if(!$link) return array(); // if not found
     233                $classes = array();
     234               
     235                // navigation list membership
     236                $nav = $link->xpath("ancestor::nav");
     237                $nav_type = $nav[0]['class'];
     238                $classes[] = "in-nav-$nav_type";
     239               
     240                // direct parental ul classes
     241                $ul = $link->xpath("ancestor::ul");
     242                $parent_ul = array_pop($ul);
     243                foreach(explode(' ',$parent_ul['class']) as $c)
     244                        $classes[] = "in-$c";
     245               
     246                return $classes;
     247        }
    206248
    207249} // class
  • lib/messages.php

    r276 r278  
    103103                'opensearch-desc'        => array('technikum29 (de)', 'technikum29 (en)'),
    104104
    105                 'js-menu-collapse-out'   => array('Menü ausklappen', 'Expand menu'),
    106                 'js-menu-collapse-in'    => array('Menü einklappen', 'Fold menu'),
     105                'js-menu-collapse-out'   => array('Mehr Details', 'Expand menu'),
     106                'js-menu-collapse-in'    => array('Weniger Details', 'Fold menu'),
    107107                'js-menu-scroll-show'    => array('Menü einblenden', 'Show menu'),
    108108                'js-menu-scroll-hide'    => array('Menü ausblenden', 'Hide menu'),
  • lib/ressourceloader.php

    r273 r278  
    183183                        require "$lib/messages.php";
    184184                        echo "t29.msg.data=";
    185                         echo t29Messages::create_json();
     185                        echo t29Messages::create_json('/^js-/');
    186186                        echo ";\n";
    187187                }
  • lib/template.php

    r277 r278  
    4343                $this->body_classes[] = "lang-" . $this->conf['lang'];
    4444                $this->body_classes[] = "page-" . $this->conf['seiten_id'];
     45                $this->body_classes = array_merge($this->body_classes, $this->menu->get_link_classes());
    4546               
    4647                // setup javascript configuration
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