JS Library / Java Script (jquery)

Hallo zusammen,

hab das problem, dass ich nicht weiss wie ich die jquery library in den oxid shop integrieren kann.

In ner regulären html seite sieht es ja so aus

		<link type="text/css" href="css/ui-lightness/jquery-ui-1.7.2.custom.css" rel="stylesheet" />	
		<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
		<script type="text/javascript" src="js/jquery-ui-1.7.2.custom.min.js"></script>
		<script type="text/javascript">

In diesem thread (http://www.oxid-esales.com/forum/showthread.php?t=664)heisst es, dass ich es in der “_header.tpl” in den " Bereich integrieren muss. Oder ist “header.tpl” im “admin/tpl/” gemeint?

In den Head soll folgendes:

getResourceUrl() }]jquery-ui/theme/ui.all.css" rel="Stylesheet" />
getResourceUrl() }]jquery-ui/jquery-1.2.6.js">
getResourceUrl() }]jquery-ui/jquery-ui-personalized-1.5.3.js">

Das kommt mir spanisch vor ? Da fehlt doch an den Satzanfängen was, oder?

Welchen Syntax muss und welche Datei muss ich verwenden, dass es funktioniert?

Vielen Dank. Racoon.

Hi,

das JS muss in “_head” im was auf folgendem Pfad liegt:
SHOPVERZEICHNIS\out\basic pl_header.tpl

und achtung JA da hat es den code zerlegt, diese Forum wurde vor kurzem migriert und das alte Forum, naja, da konnte man niocht so gut code posten. Aber schau mal unter: http://code.google.com/p/oxid-jquery-powered-template/
da habe ich das als Paket hinterlegt, und da iss dann auch das Tag komplett :slight_smile:
(Achtung, die Version auf der ich das gemacht hatte ist nimmer aktuell)

Gruß
Magnus

Ok. Super, vielen Dank. Somit hab ich mal die _header.tpl angepasst.
Wie kann ich denn prüfen, ob die Librarys richtig eingebunden sind?

Denn es tut sich gar nichts!
Hab die neuen .js-Namen eingegeben.

Auf der Seite sieht das Ergebnis dann so aus - als Liste. Warum, keine Ahnung. Hab nun schon unzählige Beispiele versucht zu integrieren. es scheint, als ob das jquery nicht verwendet wird.

Ich bin absolut gefrustet. So sieht es aus:

*  Send a message
* Share a file
* Arrange a meetup

Lorem ipsum dolor sit amet.

Sed do eiusmod tempor incididunt.

Ut enim ad minim veniam

Hat mir jmd eine Lösung…biiiiieteee.

ich bin jetzt echt ein wrack. kein plan, warum das nicht geht.

hab zum testen sogar alles doppelt abgesichert. Nicht mal das beispiel von der jquery seite geht nicht, wenn ich es hartcodiert einbinde:

		 <link type="text/css" href="http://jqueryui.com/latest/themes/base/ui.all.css" rel="stylesheet" />
  <script type="text/javascript" src="http://jqueryui.com/latest/jquery-1.3.2.js"></script>
  <script type="text/javascript" src="http://jqueryui.com/latest/ui/ui.core.js"></script>
  <script type="text/javascript" src="http://jqueryui.com/latest/ui/ui.tabs.js"></script>
  
<div id="tabs">
    <ul>
        <li><a href="#fragment-1"><span>One</span></a></li>
        <li><a href="#fragment-2"><span>Two</span></a></li>
        <li><a href="#fragment-3"><span>Three</span></a></li>
    </ul>
    <div id="fragment-1">
        <p>First tab is active by default:</p>
        <pre><code>$('#example').tabs();</code></pre>
    </div>
    <div id="fragment-2">
        Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
        Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
    </div>
    <div id="fragment-3">
        Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
        Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
        Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
    </div>
</div>

 

  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js" type="text/javascript">
  $(document).ready(function(){
    $("#tabs").tabs();
  });
  
  </script>

Doch die Liste wird wie in word aufgelistet. Nix mit tabs. Kein ansatz.
Das jquery funktioniert mit anderen methoden. Das hab ich getestet.

Hab auch "div class=“tabs” geschrieben. Geht auch nicht.

Ich geb jetzt auf…

Also es ist folgendermaßen: Es geht nun, aber natürlich mit nem ganz üblen css. Kommt aus der jquery-css datei. egal. ist schon ein erfolgserlebnis, auch wenn es echt übel aussieht. aktuell noch alles hard-gecodet.

Ich muss in der _details.tpl dies stehen haben:

<div id="tabs">
    <ul>
        <li><a href="#fragment-1"><span>One</span></a></li>
        <li><a href="#fragment-2"><span>Two</span></a></li>
        <li><a href="#fragment-3"><span>Three</span></a></li>
    </ul>
    <div id="fragment-1">
        <p>First tab is active by default:</p>
        <pre><code>$('#example').tabs();</code></pre>
    </div>
    <div id="fragment-2">
        Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
        Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
    </div>
    <div id="fragment-3">
        Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
        Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
        Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
    </div>
</div>

 

  <link type="text/css" href="http://jqueryui.com/latest/themes/base/ui.all.css" rel="stylesheet" />
  <script type="text/javascript" src="http://jqueryui.com/latest/jquery-1.3.2.js"></script>
  <script type="text/javascript" src="http://jqueryui.com/latest/ui/ui.core.js"></script>
  <script type="text/javascript" src="http://jqueryui.com/latest/ui/ui.tabs.js"></script>

in der _header.tpl muss jedoch auch die funktion drin stehen. Es funktioniert nicht, dass sie in der oxid.js steht. Obwohl es ja so sein sollte.

_header.tpl

  <link type="text/css" href="http://jqueryui.com/latest/themes/base/ui.all.css" rel="stylesheet" />
  <script type="text/javascript" src="http://jqueryui.com/latest/jquery-1.3.2.js"></script>
  <script type="text/javascript" src="http://jqueryui.com/latest/ui/ui.core.js"></script>
  <script type="text/javascript" src="http://jqueryui.com/latest/ui/ui.tabs.js"></script>
  <script type="text/javascript">
  $(document).ready(function(){
    $("#tabs").tabs();
  });
  </script>

Das ganze ist natürlich absolut überladen und es dauert ewig bis alles geladen ist.
Werde die tage rausfinden, was ich tatsächlich brauche und warum ich die funktionen nicht in die oxid.js auslagern kann.

genauso wenig funktioniert es in der _header.tpl die script-librarys zu laden. dies wird im body benötigt. Ich versteh das wirlich nicht!!!

Kann jmd von oxid mal was dazu sagen…wäre sehr dankbar. Natürlich ist morgen der große Event es reicht ja auch noch am Montag :wink:

Mein ganz übles Problem ist nun, dass nur absolute und externe JS Integrationen funktionieren

z.B.

<script type=“text/javascript” src=“jQuery CDN”></script>

Wenn ich das jquery-1.3.2.js in den src ordner lege und per folgendes integrieren möchte, geht es nicht:

<script type=“text/javascript” src=“jquery-1.3.2.js”></script>

auch das geht nicht

<script type=“text/javascript” src=“[{ $oViewConf->getResourceUrl() }]jquery-1.3.2.js”></script>

Warum? Muss die .js in einen bestimmten ordner? darf es nicht im src ordner sein?
Und warum geht es dann mit absoluten und externer Verlinkung?

Kann mir jmd weiterhelfen? Ich verstehs wirklich nicht…

ich hab zwar grad nichts zum testen da, aber probier mal folgendes:

<script type="text/javascript" src="/out/basic/src/jquery-1.3.2.js"></script>  

funktioniert aber nur wenn dein shop nicht in einem unterverzeichnis liegt. getResourceUrl gibt nur nur den pfad des tpl ordners zurück.

Hallo csimon,

hab deinen einwurf gestern umgesetzt. hatte nicht viel zeit und deshalb werde ich es die tage noch mal versuchen. “auf die schnelle” ging das leider auch nicht.

Was mich wundert ist, was du über .getResourceUrl gemeint hast. Wenn ich es als Text ausgebe. Wird der Pfad bis “src” angezeigt.

Wo kann ich denn die ganzen funtkionen von oxid einsehen? (z.b. getResourceUrl usw)

Danke für Dein Feedback. Sonst hat da wohl niemand damit Probleme außer mir. Wundert mich, dass ich das nicht hinbekomme!

[QUOTE=racoon;10430]Also es ist folgendermaßen: Es geht nun, aber natürlich mit nem ganz üblen css. Kommt aus der jquery-css datei. egal. ist schon ein erfolgserlebnis, auch wenn es echt übel aussieht. aktuell noch alles hard-gecodet.

Ich muss in der _details.tpl dies stehen haben:

<div id="tabs">
    <ul>
        <li><a href="#fragment-1"><span>One</span></a></li>
        <li><a href="#fragment-2"><span>Two</span></a></li>
        <li><a href="#fragment-3"><span>Three</span></a></li>
    </ul>
    <div id="fragment-1">
        <p>First tab is active by default:</p>
        <pre><code>$('#example').tabs();</code></pre>
    </div>
    <div id="fragment-2">
        Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
        Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
    </div>
    <div id="fragment-3">
        Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
        Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
        Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
    </div>
</div>

 

  <link type="text/css" href="http://jqueryui.com/latest/themes/base/ui.all.css" rel="stylesheet" />
  <script type="text/javascript" src="http://jqueryui.com/latest/jquery-1.3.2.js"></script>
  <script type="text/javascript" src="http://jqueryui.com/latest/ui/ui.core.js"></script>
  <script type="text/javascript" src="http://jqueryui.com/latest/ui/ui.tabs.js"></script>

in der _header.tpl muss jedoch auch die funktion drin stehen. Es funktioniert nicht, dass sie in der oxid.js steht. Obwohl es ja so sein sollte.

_header.tpl

  <link type="text/css" href="http://jqueryui.com/latest/themes/base/ui.all.css" rel="stylesheet" />
  <script type="text/javascript" src="http://jqueryui.com/latest/jquery-1.3.2.js"></script>
  <script type="text/javascript" src="http://jqueryui.com/latest/ui/ui.core.js"></script>
  <script type="text/javascript" src="http://jqueryui.com/latest/ui/ui.tabs.js"></script>
  <script type="text/javascript">
  $(document).ready(function(){
    $("#tabs").tabs();
  });
  </script>

Das ganze ist natürlich absolut überladen und es dauert ewig bis alles geladen ist.
Werde die tage rausfinden, was ich tatsächlich brauche und warum ich die funktionen nicht in die oxid.js auslagern kann.

genauso wenig funktioniert es in der _header.tpl die script-librarys zu laden. dies wird im body benötigt. Ich versteh das wirlich nicht!!!

Kann jmd von oxid mal was dazu sagen…wäre sehr dankbar. Natürlich ist morgen der große Event es reicht ja auch noch am Montag ;)[/QUOTE]
Für so ein paar lausige Tabs JQUERY zu verwenden ist der [B]totale [/B]Overkill.

Mit minimalstem “handgeklöppeltem” Javascript machst Du das auch…

In obigem Besipiel:

Die “

  • One
  • ” bekommen ein “onclick” verpasst.

  • One
  • usw…

    Dann ein wenig Javascript:

    
    var active_tab=1;
    
    function switch_tabs(tab_nr)
    {
        //Hide active tab
        var element=document.getElementById('fragment-'+active_tab);
        if (element)
        {
            element.style.display='none';
        }
        //Show new tab
        active_tab=tab_nr;
        element=document.getElementById('fragment-'+tab_nr);
        if (element)
        {
            element.style.display='block';
        }
    }
    
    

    Dann ein wenig CSS:

    
    #fragment-2,
    #fragment-3 {
           display:none;
    }
    
    

    und schon ist das Grundgerüst fertig.

    Man kann natürlich die Tabs mit Grafiken für aktiv/inaktiv hinterlegen, die man beim “hovern” oder nach der Auswahl auf den aktiven Zustand setzt, bzw. auf den inaktiven zurück setzt.

    Sind auch nur ein paar Zeilen Javascript und CSS mehr…

    [QUOTE=racoon;10581]Hallo csimon,

    hab deinen einwurf gestern umgesetzt. hatte nicht viel zeit und deshalb werde ich es die tage noch mal versuchen. “auf die schnelle” ging das leider auch nicht.

    Was mich wundert ist, was du über .getResourceUrl gemeint hast. Wenn ich es als Text ausgebe. Wird der Pfad bis “src” angezeigt.

    Wo kann ich denn die ganzen funtkionen von oxid einsehen? (z.b. getResourceUrl usw)

    Danke für Dein Feedback. Sonst hat da wohl niemand damit Probleme außer mir. Wundert mich, dass ich das nicht hinbekomme![/QUOTE]

    wenn er das mit src ausgibt wird das wohl stimmen.

    hallo avenger, aktuell nutze ich den tabber.js ( http://www.barelyfitz.com/projects/tabber/). Mit 15kb jedoch auch nicht gerade ein leichtgewicht. Muss mir da noch was schlankers einfallen lassen. da haste auf jeden falll recht. Hab jedoch gerade keine Zeit selber zu coden. Später :wink:

    Mein Hauptproblem ist jedoch, dass ich keine .js Libraries einbinden kann!
    Keine Ahnung na was das liegt.

    Werde zum WE wieder rumprobieren. Bis dahin. Gruß

    Hi,

    ich kann dir nur empfehlen Firebug oder ähnliches zu nutzen.
    Dort bekommst du dann Javafehler angezeigt.
    hat mir bei TinyMce auch schon geholfen herrauszufinden warum es nicht funktioniert hat.

    Gruß,
    Marcel

    Hi Marcel. Verwende Firebug für das CSS. Aber hab noch nicht rausgefunden, wie es mich bei javascript-angelegenheiten unterstützt. werde ich mal nachschauen. Danke.
    …ansonten frag ich dich mal :wink: