Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: TEMPLATE: Bootstrap - freies responsive Template

    Karl1

    • Experte
    • Beiträge: 1.879
    Re: TEMPLATE: Bootstrap - freies responsive Template
    Antwort #105 am: 03. Februar 2014, 23:28:15
    Hi Mike,
    schön, dass du dich meldest.

    Mit Javascript bin ich leider nicht sehr bewandert, aber vielleicht hat google uns weitergeholfen.

    Kannst du mal folgendes probieren?

    /templates/bootstrap/source/inc/xtc_show_category_superfish.inc.php Zeile 319 ändern (den data-toggle="dropdown" wieder entfernen - führt zu Problemen bei Desktop):
    Code: PHP  [Auswählen]
            '<li'.$ListID.$DropdownClass.'><a '.$linkhref.' class="dropdown-toggle">'.$foo[$cid]['name'].' '.$caret.'</a>'."\n".str_repeat("\t",$level+2).'<ul class="dropdown-menu">'."\n";

    /templates/bootstrap/javascript/general.js.php (da hab ich mich verschrieben) Abschnitt //Superfishmenu ändern in:
    Code: Javascript  [Auswählen]
    if ($WindowWidth < 979){
    $('.nav-collapse .dropdown-toggle').attr('data-toggle', 'dropdown');
     $('.nav-collapse .nav').on('click', '[data-toggle="dropdown"]' ,function(){
    //if this link has 'open' (second click) class or when we are in collapsed menu and have always-show
    if($(this).parent().hasClass('open') && this.href && this.href != '#' ){
    window.location.href = this.href;
    }else{this.addClass('open')}
    });}else{
     $('.nav-collapse .nav').on('click', '[data-toggle="dropdown"]' ,function(){
    if(this.href && this.href != '#' ){
    window.location.href = this.href;
    }else{this.addClass('open')}
    });}

    Der Code soll bewirken, dass beim 1. Touch die Klasse "open" hinzugefügt wird und beim 2. Klick der href ausgeführt wird.

    Danke für Testen! Gruß Karl

    miheha

    • Fördermitglied
    • Beiträge: 122
    Re: TEMPLATE: Bootstrap - freies responsive Template
    Antwort #106 am: 04. Februar 2014, 00:18:22
    Hallo Karl,

    ich habe das jetzt wieder zurück gebaut und in die

    /templates/bootstrap/javascript/general.js.php

    den code gepackt.

    Leider klappt das wieder nicht auf dem Android mit Chrome und Firefox.

    Noch mal zum Verständnis der Dateien. Du schreibst immer ich soll das in den Bereich  Abschnitt //Superfishmenu packen.

    Den finde ich so nicht!!! Der ist nicht in deinem original Bottstrap Paket mit drin. Habe ich mit grepWin durchsucht.

    Zurück zum Problem:

    Die class="open" wird beim hover auf dem Desktop durch diese Funktion erzeugt.

    general.js.hp  Zeile30

    Code: Javascript  [Auswählen]
    $('.dropdown.men').hover(function() { $(this).addClass('open');}, function() {$(this).removeClass('open');});

    Dein Code ändert nichts am Verhalten. Auch wenn ich den Viepoint vom Browser auf unter 900px setze kommt zwar das eingeklappte Menü, aber die class="open" wird durch die oben genannte Zeile gesetzt.
    (Habe ich getestet indem ich die Zeile gelöscht hatte und somit deine zuschlagen müsste :-) Dann war open aber nicht mehr da beim :hover)

    Ich habe ja auch schon geschaut was die Bootstrap Community dazu sagt. Sollte ja eigentlich mit dem FIX aus #92 gelöst sein.

    Ich probiere es morgen noch mal mit einem frischem Template. Nicht das ich da meinen eigenen Fehler teste ;-)

    Gruß
    Mike

    Karl1

    • Experte
    • Beiträge: 1.879
    Re: TEMPLATE: Bootstrap - freies responsive Template
    Antwort #107 am: 04. Februar 2014, 09:02:58
    Guten Morgen Mike!

    Sorry, den Eintrag //Superfishmenu in der general.js.php konntest du nicht finden. Ich probiere schon soviele vermeintliche Fixes diesbezüglich, dass ich mir diesen Kommentar eingefügt habe, um die Stelle leichter zu finden.

    Du hast Recht, was die Zeile
    Code: Javascript  [Auswählen]
    $('.dropdown.men').hover(function() { $(this).addClass('open');}, function() {$(this).removeClass('open');});
    betrifft. Die braucht man aber nicht mehr, das übernimmt bei Bildschirmegrößen ab 979px jetzt der CSS-Eintrag den ich dir geschickt habe. Die Zeile solltest du auskommentieren mit // oder löschen.

    Der Fix aus Antwort #92 betrifft nur Bootstrap 3.
    Bootstrap sieht eigentlich nicht vor, das die 1. Ebene einen href hat, sondern nur ein data-toggle zum Öffnen der 2. Ebene. Die von mir gebaute Variante wird aber in einigen Foren besprochen. Warum das Problem nicht gelöst scheint ist mir ein Rätsel. Vielleicht haben die alle kein Andriod.

    Ich hab da gestern noch viel probiert, und auch noch festgestellt, dass jquery bei der Berechung der Bildschirmgröße die Scrollbar an der Seite nicht mitberechnet, deshalb muss im Javascript noch was geändert werden.

    Deine Dateien sollten zum Testen so ausschauen - sollte das nicht funktionieren muss ich wohl die hier http://www.themesandco.com/snippet/menu-hover-dropdowns-parent-links-mobile-friendly/ aufgezeigte Variante einbauen.

    /templates/bootstrap/javascript/general.js.php
    Code: Javascript  [Auswählen]
    //$('.dropdown.men').hover(function() { $(this).addClass('open');}, function() {$(this).removeClass('open');});
    function getWindowWidth() {
      var div, body, W = window.browserScrollbarWidth;
      if (W === undefined) {
        body = document.body, div = document.createElement('div');
        div.innerHTML = '<div style="width: 50px; height: 50px; position: absolute; left: -100px; top: -100px; overflow: auto;"><div style="width: 1px; height: 100px;"></div></div>';
        div = div.firstChild;
        body.appendChild(div);
        W = window.browserScrollbarWidth = div.offsetWidth - div.clientWidth;
        body.removeChild(div);
      }
      return($( document ).width() +W);
    };
    var $WindowWidth = getWindowWidth();
    if ($WindowWidth < 979){
    $('.nav-collapse .dropdown-toggle').attr('data-toggle', 'dropdown');
     $('.nav-collapse .nav').on('click', '[data-toggle="dropdown"]' ,function(){
    //if this link has 'open' (second click) class or when we are in collapsed menu and have always-show
    if($(this).parent().hasClass('open') && this.href && this.href != '#' ){
    window.location.href = this.href;
    }else{this.addClass('open')}
    });}else{
     $('.nav-collapse .nav').on('click', '[data-toggle="dropdown"]' ,function(){
    if(this.href && this.href != '#' ){
    window.location.href = this.href;
    }else{this.addClass('open')}
    });}

    /templates/bootstrap/source/inc/xtc_show_category_superfish.inc.php Zeile 319 ohne den Eintrag data-toggle
    Code: PHP  [Auswählen]
            '<li'.$ListID.$DropdownClass.'><a '.$linkhref.' class="dropdown-toggle">'.$foo[$cid]['name'].' '.$caret.'</a>'."\n".str_repeat("\t",$level+2).'<ul class="dropdown-menu">'."\n";

    /templates/bootstrap/stylesheet.css (setzt hover bei Desktop's)
    Code: CSS  [Auswählen]
        @media (min-width: 979px) {
                      ul.nav li.dropdown:hover > ul.dropdown-menu {
                            display: block;
                            margin-top:0px;
        }
        }

    Gruß Karl

    Karl1

    • Experte
    • Beiträge: 1.879
    Re: TEMPLATE: Bootstrap - freies responsive Template
    Antwort #108 am: 04. Februar 2014, 11:26:13
    Hallo Mike,
    bevor du das oben probierst, teste bitte nochmal eine Variante, die ich im Netz aufgestöbert habe.

    Bitte entferne alle Javascript- und CSS-Einträge, die ich dir bisher gegeben habe.

    Füge in die stylesheet.css folgendes ein
    Code: CSS  [Auswählen]
    @media (min-width: 979px) {
                  ul.nav li.dropdown:hover > ul.dropdown-menu {
                        display: block;
                        margin-top:0px;
    }
    }
    @media (max-width: 979px) {
        ul.nav li.dropdown:hover ul.dropdown-menu, ul.nav li.dropdown ul.dropdown-menu .dropdown-submenu ul.dropdown-menu {
            background-color: white;
            box-shadow: inset 0 1px 4px rgba(0,0,0,.27);
            display: block;
            position: relative;
            margin-right: 8px;
            margin-left: 8px;
            bottom: 2px;
            }
    }
    a.menu:after, .dropdown-toggle:after {
      content: none;
    }

    Sollte auf dem Handy das mit dem Öffnen der 2. Ebene nicht funktionieren, dann entferne bitte in Zeile 8 das :hover. Die Zeile 8 sollte dann so aussehen
    Code: CSS  [Auswählen]
        ul.nav li.dropdown ul.dropdown-menu, ul.nav li.dropdown ul.dropdown-menu .dropdown-submenu ul.dropdown-menu {

    Bin schon gespannt, hab ich hier http://www.brianjosephstudios.com/php-tutorials/web-design-tip-how-to-make-the-parent-link-item-clickable-in-twitter-bootstrap/ zufällig gelesen.

    Bis dann! Karl

    Liezeu

    • Mitglied
    • Beiträge: 218
    • Geschlecht:
    Re: TEMPLATE: Bootstrap - freies responsive Template
    Antwort #109 am: 04. Februar 2014, 18:48:32
    Hallo Karl1,

    ich steh grad irgendwie auf dem Schlauch. Du schreibst in der Anleitung zwegs Änderung des Templatenamens:

    Zitat
    Wenn der Templatename "bootstrap" geändert werden soll sind folgende Dateien anzupassen.

    im Verzeichnis /templates den Ordner /bootstrap umbenennen in z.B. /mein_templatename

    dann in den Dateien

    /includes/header.php
    /includes/classes/breadcrumb.php
    /includes/modules/metatags.php
    /inc/xtc_image_button.inc.php
    /inc/xtc_image_submit.inc.php
    popup_coupon_help.php
    popup_search_help.php

    den Code:

    Code: PHP  [Auswählen]
    if (CURRENT_TEMPLATE == "bootstrap")

    ändern in

    Code: PHP  [Auswählen]
    if (CURRENT_TEMPLATE == "mein_templatename")

    hab ich alles gemacht.
    Allerdings steht in der /includes/classes/breadcrumb.php folgendes:

    Code: PHP  [Auswählen]
       XT-Commerce - community made shopping
       http://www.(( Wir dulden keine kommerziellen Werbelinks - Bitte Forenregeln beachten! ))

       Copyright (c) 2003 XT-Commerce
       -----------------------------------------------------------------------------------------
       based on:
       (c) 2000-2001 The Exchange Project  (earlier name of osCommerce)
       (c) 2002-2003 osCommerce(breadcrumb.php,v 1.3 2003/02/11); www.oscommerce.com
       (c) 2003      nextcommerce (breadcrumb.php,v 1.5 2003/08/13); www.nextcommerce.org

       Released under the GNU General Public License
       ---------------------------------------------------------------------------------------*/

      class breadcrumb {
        var $_trail;

        function breadcrumb() {
          $this->reset();
        }

        function reset() {
          $this->_trail = array();
        }

        function add($title, $link = '') {
          $this->_trail[] = array('title' => $title, 'link' => $link);
        }

        function trail($separator = ' - ') {
          $trail_string = '';

          for ($i=0, $n=sizeof($this->_trail); $i<$n; $i++) {
            if (isset($this->_trail[$i]['link']) && xtc_not_null($this->_trail[$i]['link'])) {
              if (($i+1) < $n) $trail_string .= '<li><a href="' . $this->_trail[$i]['link'] . '">' . $this->_trail[$i]['title'] . '</a>';
              if (($i+1) == $n) $trail_string .= '<li class="active">' . $this->_trail[$i]['title'];
            } else {
              $trail_string .= '<li class="active">' . $this->_trail[$i]['title'];
            }

    //        if (($i+1) < $n) $trail_string .= $separator;
            if (($i+1) < $n) {$trail_string .= '<span class="divider"> &raquo; </span></li>';} else {$trail_string .= '</li>';}
          }

          return $trail_string;
        }
       
            // Begin Econda-Monitor

        function econda() { // for drill-down

          $econda_string = '';

          for ($i=1, $n=sizeof($this->_trail); $i<$n; $i++) {

            $econda_string .= $this->_trail[$i]['title'];

            if (($i+1) < $n) $econda_string .= '/';

          }

          return $econda_string;

        }

        // End Econda-Monitor
       
      }
    ?>

    was soll hier geändert werden?

    Gruß Daniel

    Karl1

    • Experte
    • Beiträge: 1.879
    Re: TEMPLATE: Bootstrap - freies responsive Template
    Antwort #110 am: 04. Februar 2014, 19:08:05
    Hi Daniel,
    diesen Fehler habe ich für die Aufmerksamen eingebaut.

    Du musst nichts ändern - sorry.

    Gruß Karl

    wolkenkrieger

    • Mitglied
    • Beiträge: 181
    Re: TEMPLATE: Bootstrap - freies responsive Template
    Antwort #111 am: 05. Februar 2014, 19:19:57
    Hi Karl,

    hast du eine Idee, wie man ein Backgroundimage so eingebunden bekommt, dass es auf .visible-desktop reagiert und auf mobiles eben nicht angezeigt wird?

    Es geht nicht um ein Resize oder so, sondern darum, dass ich bei einem mobilde so wenig wie möglich Traffic haben will und da gerne auch Schnickschnack aka Hintergrundimages und dicke Headergrafiken unterbinden will.

    Danke dir :)

    Und: je mehr ich mich mit dem Template beschäftige, desto interessanter wird diese ganze responsive-Geschichte. Haste prima gemacht! :)

    Nachtrag:

    Lösung selbst gefunden :)

    Wen es interessiert:

    In der index.html wird vor

    Code: PHP  [Auswählen]
    <div class="container">
        <ol class="breadcrumb well">{$navtrail}</ol>

    eingefügt

    Code: PHP  [Auswählen]
    <img class="bg hidden-phone hidden-print" src="{$tpl_path}img/bg_desktop.jpg" />

    in die Template CSS kommt folgendes rein

    Code: CSS  [Auswählen]
    img.bg {
        min-height: 100%;
        min-width: 1024px;
        width: 100%;
        height: auto;
        position: fixed;
        top: 0;
        left: 0;
        z-index: -9999999;
    }

    @media screen and (max-width: 1024px) {
        img.bg {
            left: 50%;
            margin-left: -512px;
        }
    }

    bg_desktop.jpg sollte dabei mindestens 1024 Pixel breit sein (größer ist ok, macht aber keinen Sinn).

    Das Bild wird dann entsprechend der Auflösung des Viewports skaliert und auf einem Phone gar nicht angezeigt.

    Karl1

    • Experte
    • Beiträge: 1.879
    Re: TEMPLATE: Bootstrap - freies responsive Template
    Antwort #112 am: 05. Februar 2014, 20:45:24
    Hi Wolkenkrieger,
    setzt da wo du das Bild haben willst folgenden Code ein.

    Code: PHP  [Auswählen]
    <div class="hidden-phone hidden-print"><img src="{$tpl_pathimg/bg_desktop.jpg" class="img-responsive center-block" alt="{$store_name}" /></div>

    Der "div" wird für Bildschirme kleiner als 768px nicht mehr sichtbar sein, "img-responsive" verkleinert das Bild wenn nötig, "center-block" ein Style der von mir hinzugefügt wurde zentriert den Block.

    Gruß Karl

    wolkenkrieger

    • Mitglied
    • Beiträge: 181
    Re: TEMPLATE: Bootstrap - freies responsive Template
    Antwort #113 am: 05. Februar 2014, 21:27:21
    Hi Karl,

    nö, funktioniert nicht :)

    Jedenfalls nicht, ohne diverse Styles anzulegen. Dein div liegt nicht im Background und wird auch nicht gezoomt (jedenfalls nicht gestreckt) - das heisst, dass ich an der Stelle, an der ich dein Snippet eingefügt habe, einfach nur ein großes Bild angezeigt bekomme.

    Meine Lösung funktioniert 1a ... habs grad sogar auf dem Smartphone getestet. Und: reines HTML und CSS - kein JavaScript nötig :)

    Oder haben wir aneinander vorbei geredet? Ich meinte einen Background vom body - also von der gesamten Seite :)

    miheha

    • Fördermitglied
    • Beiträge: 122
    Re: TEMPLATE: Bootstrap - freies responsive Template
    Antwort #114 am: 05. Februar 2014, 22:19:38
    Hallo Karl,

    ES HAT GEKLAPPT!!! #107 hat geklappt  :-B

    Getestet mit Android 4.4.2 Chrome und FF

    Ich freu mich!

    Kann das noch mal jemand einbauen und mit einem anderen Android testen.

    DANKE
    Mike

    Karl1

    • Experte
    • Beiträge: 1.879
    Re: TEMPLATE: Bootstrap - freies responsive Template
    Antwort #115 am: 06. Februar 2014, 08:31:58
    Guten Morgen Wolkenkrieger und Mike!

    @ Wolkenkrieger:
    Dachte du möchtest nur eine Headergrafik einfügen. Mein Fehler!

    @ Mike:
    Super, danke für den Test. Hast du die #108 aus ausprobiert? Wäre die einfachste Variante.

    Gruß Karl

    wolkenkrieger

    • Mitglied
    • Beiträge: 181
    Re: TEMPLATE: Bootstrap - freies responsive Template
    Antwort #116 am: 06. Februar 2014, 13:28:11
    Moin Karl,

    kleiner Fehler in der xtc_img_button.inc.php

    Anstelle

    Code: PHP  [Auswählen]
    if ($buttons[$name]['Class']) {
              $html .= ' '.$buttons[$name]['Class'].'"';
            }

    muss es lauten

    Code: PHP  [Auswählen]
    if ($buttons[$name]['Class']) {
              $html .= ' '.$buttons[$name]['Class'];
            }

    sonst hast du bei Übergabe einer Klasse ein Gänsefüsschen zuviel im HTML :)

    Gruß

    Karl1

    • Experte
    • Beiträge: 1.879
    Re: TEMPLATE: Bootstrap - freies responsive Template
    Antwort #117 am: 06. Februar 2014, 17:18:13
    Hi Wolkenkrieger,
    du hast vollkommen Recht.

    Gruß Karl

    Liezeu

    • Mitglied
    • Beiträge: 218
    • Geschlecht:
    Re: TEMPLATE: Bootstrap - freies responsive Template
    Antwort #118 am: 08. Februar 2014, 15:54:12
    Hallo Karl1,

    ich will hinter dem Shop ein Hintergrundbild einfügen. Hab das mal so probiert,
    aber in Firebug heißt es immer, "die angegebene URL konnte nicht geladen werden".

    So wird es in Firebug angezeigt:
    Code: CSS  [Auswählen]
    body {
        background: url("img/body_bg.jpg") repeat fixed 0 0 #F3F3F3;
        color: #333333;
        font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
        font-size: 14px;
        line-height: 20px;
        margin: 0;

    und so hab ich es in die bootstrap.css eingetragen:
    Code: CSS  [Auswählen]
    font-size:14px;line-height:20px;color:#333;background:url ("img/body_bg.jpg") repeat fixed 0 0 #F3F3F3;}a{color:#08c;text-decoration:none}

    Was mache ich da falsch?

    Pfeiffer

    • Neu im Forum
    • Beiträge: 45
    Re: TEMPLATE: Bootstrap - freies responsive Template
    Antwort #119 am: 08. Februar 2014, 16:08:33
    Die bootstrap.css liegt im Ordner "CSS", ändere den Pfad mal in "../img/body_bg.jpg"
    Dann sollte das klappen.
    1266 Antworten
    427169 Aufrufe
    12. Dezember 2023, 07:46:30 von Karl1
    2034 Antworten
    363953 Aufrufe
    25. August 2024, 21:21:54 von noRiddle (revilonetz)
    179 Antworten
    12699 Aufrufe
    14. September 2024, 10:13:46 von kotzbrocken
    6 Antworten
    2113 Aufrufe
    07. Oktober 2019, 16:35:52 von sEdeMi
               
    anything