Zur Navigation

Templateproblem mit Joomla und Virturemart

1 ShadowLupina

Hallo

Ich hatte für Joomla selbst ein Template erstellt und dabei diese Anleitung befolgt http://joomla-templates-erstellen.de/joomla-template-installation.htm

Klappt auch so weit...nur wenn ich beim Shopplugin Virturemart etwas in den Warenkorb legen möchte, dann funktioniert das bei meinem Template nicht..aber bei dem aus dem Tut schon

Mir ist dabei aufgefallen, dass bei dem aus dem Tutorial sich ein kleines Popup öffnet...welches anzeigt, dass das Produkt in den Warenkorb gelegt worden ist...dieses popup kommt bei meinem Template ebenfalls nicht.

Hast du eine Idee was das Problem sein könnte?

Wenn du magst könnte ich dir die beiden Templates mal genauer zeigen?

Gruß

Lupi

11.02.2014 16:26

2 Jörg

Popups werden per JavaScript geöffnet, also würde ich schauen, ob die JavaScript-Konsole des Browsers Fehler ausgibt.

11.02.2014 16:48

3 ShadowLupina

Ok habe ich...beim funktionierenden Template bekomme ich

17:14:33.031 Mutations-Ereignisse sollten nicht mehr verwendet werden. Verwenden Sie MutationObserver stattdessen. orion.js:3408
17:14:44.456 TypeError: unsafeWin is null

unsafeWin wird hier verwendet

 options_listener: function(e) {
        var unsafeWin, href;
        (new XPCNativeWrapper(window)).mUntrustedObject ? (unsafeWin = (new XPCNativeWrapper((new XPCNativeWrapper(e, "target")).target, "defaultView")).defaultView, href = (new XPCNativeWrapper((new XPCNativeWrapper(unsafeWin, "location")).location, "href")).href) : (unsafeWin = e.target.defaultView, unsafeWin.wrappedJSObject && (unsafeWin = unsafeWin.wrappedJSObject), href = e.target.location.href);
        if (!/^http:\/\/www\.getforecastfox\.com\/customize\/([#]{0,1}(.*))$/i.test(href)) return;
        this._logger.debug("options_listener matched href: " + href), this.inject_content_script(unsafeWin);
    },

----

bei dem nicht funktionierenden Template

TypeError: jQuery(...).fancybox is not a function

jQuery("a[rel=vm-additional-images]").fancybox({
		"titlePosition" 	: "inside",
		"transitionIn"	:	"elastic",
		"transitionOut"	:	"elastic"
	});

könnt das Ursache sein?

11.02.2014 17:21

4 ShadowLupina

ach und wenn ich auf den in den Warenkorb button beim nicht funktionierenden Template klicke bekomme ich noch die Fehler

TypeError: $.fancybox is undefined

cartEffect : function(form) {

                var $ = jQuery ;
                $.ajaxSetup({ cache: false });
                var datas = form.serialize();

                if(usefancy){
                    $.fancybox.showActivity();
                }

und

TypeError: $(...).chosen is not a function

die funktion gibt es aber auch gar nicht...zumindest nicht wenn ich dem gezeigten link folge

11.02.2014 17:30

5 Jörg

Sind jquery und fancybox im head Bereich korrekt eingebunden?

11.02.2014 17:33

6 ShadowLupina

Hm...ich denke schon....

meine index.php sieht so aus

<?php
// No direct access.
defined('_JEXEC') or die;

JHTML::_('behavior.framework', true);
// Instantiate the application.
$app = JFactory::getApplication('site');

$menu =  $app->getMenu(); 
$lang = JFactory::getLanguage();
if ($menu->getActive() == $menu->getDefault($lang->getTag())); 
?>

<!--<?php echo '<!DOCTYPE html>'; ?>-->

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
	<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>" >
<head>
		<jdoc:include type="head" />
		<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/system/css/system.css" type="text/css" />
		<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/template.css" type="text/css" />
	
		
</head>
<body>
	
<?php if ($this->getBuffer('message')) : ?>
<div class="messages">
<jdoc:include type="message" />
</div>
<?php endif; ?>

<!--Wrapper umschließt gesamtes Design und zentriert es hinterher auf den Browserviewport-->
<div id="wrapper">

<!--Header - Bereich der Seite...beinhaltet Logo, How it works, Suche, Flaggen und Anmeldenbutton-->
    <div id="head">
		<!--einfügen des Logos mit allen gestaltungsbefehlen-->
		
		<a href="http://www.******.com"><img src="templates/templatevopix/images/******.png" alt="******" width="200px" height="auto" style="float:left; margin: 40px 40px 0 40px; display:block; "></a>
	   
	  <div id="header">
	 
              
		  
		    <div id = "works" title="Hier werden sie mal mehr Infos finden"> How it works? </div>
			<div id = "search"><jdoc:include type="module" name="search" style="xhtml" /></div>
			<ul id ="header_rightnav">
		        <!--   <ul><li> <jdoc:include type="module" name="sprachauswahl" style="xhtml" /> </li>
	        </ul>-->
				<li><ul id="sprachauswahl">
					<li id ="de_flag"><a href="http://www.******.com/index.php/de">de</a></li>
                       <li id = "en_flag"><a href="http://www.******.com/index.php/en">en</a></li>
                       <!--<li id= "fr_flag"><a href="#">fr</a></li>-->
			    </ul></li>
				
		  <li><jdoc:include type="module" name="login" style="xhtml" /> </li>
	        </ul>
		  
		  
		</div>  <!--#header-->
    
    </div><!--#head-->
   
   <div id="menubar"> <!--Menü-->
     <jdoc:include type="modules" name="menubar" style="xhtml" />
   
</div> <!-- ende menü -->
	<!-- beinhaltet den Hauptteil der Seiten sowie alles was unter right zusammengefasst ist...außerdem werden die Joomla Komponenten hier eingebunden-->
    <div id="content">

        <div id="component"><jdoc:include type="component" style="xhtml"/>
		<!--brotkrumennavigation-->
		<jdoc:include type="modules" name="breadcrumb" style="xhtml" />
		
         <div id="right_area">
		 <jdoc:include type="modules" name="right" style="xhtml" />
		        
	     </div><!--#right_nav-->
    </div><!--#content-->
    
    <div id="footer"><jdoc:include type="modules" name="footer" style="xhtml" />
	 
   
   </div>
    
</div><!--#wrapper-->

</body>
</html>




und wenn ich mir die Seite im Browser anschaue sieht die der head so aus
und da wird ja dann von plugin selbst die fancybox eingebunden..oder ist es ratsam..dass ich das lieber auch noch mal einbinde?

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
	<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de-de" lang="de-de" dir="ltr" >
<head>
		  <base href="http://www.******.com/index.php/shop" />
  <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  <meta name="title" content="Bild Upload" />
  <meta name="generator" content="Joomla! - Open Source Content Management" />
  <title>Bild Upload</title>
  <link href="/index.php/shop******temp" rel="canonical" />
  <link href="http://www.******.com/index.php/component/search/?Itemid=210&amp;showall=1&amp;format=opensearch" rel="search" title="Suchen Meine Homepage" type="application/opensearchdescription+xml" />
  <link rel="stylesheet" href="/components/com_virtuemart/assets/css/vmsite-ltr.css" type="text/css" />
  <link rel="stylesheet" href="/components/com_virtuemart/assets/css/jquery.fancybox-1.3.4.css" type="text/css" />
  <link rel="stylesheet" href="/media/system/css/modal.css" type="text/css" />
  <link rel="stylesheet" href="/modules/mod_count_down_big/count_down_big.css" type="text/css" />
  <style type="text/css">
.cdub_color99{color:#000000;}

  </style>
  <script src="/components/com_virtuemart/assets/js/jquery.min.js" type="text/javascript"></script>
  <script src="/components/com_virtuemart/assets/js/jquery.noConflict.js" type="text/javascript"></script>
  <script src="/components/com_virtuemart/assets/js/fancybox/jquery.fancybox-1.3.4.pack.js" type="text/javascript"></script>
  <script src="/components/com_virtuemart/assets/js/vmprices.js" type="text/javascript"></script>
  <script src="/media/system/js/mootools-core.js" type="text/javascript"></script>
  <script src="/media/system/js/core.js" type="text/javascript"></script>
  <script src="/media/system/js/modal.js" type="text/javascript"></script>
  <script src="/media/system/js/mootools-more.js" type="text/javascript"></script>
  <script src="http://www.******.com/modules/mod_rizlogin/js/jquery.min.js" type="text/javascript"></script>
  <script src="http://www.******.com/modules/mod_rizlogin/js/jquery-ui.min.js" type="text/javascript"></script>
  <script src="http://www.******.com/modules/mod_rizlogin/js/side-bar.js" type="text/javascript"></script>
  <script type="text/javascript">
//<![CDATA[ 
vmSiteurl = 'http://www.******.com/' ;
vmLang = "";
Virtuemart.addtocart_popup = '1' ; 
usefancy = true;
//]]>

		window.addEvent('domready', function() {

			SqueezeBox.initialize({});
			SqueezeBox.assign($$('a.modal'), {
				parse: 'rel'
			});
		});

//<![CDATA[
	jQuery(document).ready(function($) {
		jQuery('a.recommened-to-friend').click( function(){
					jQuery.fancybox({
				href: 'index.php?option=com_virtuemart&view=productdetails&task=recommend&virtuemart_product_id=1&virtuemart_category_id=&tmpl=component',
				type: 'iframe',
				height: '550'
			});
			return false ;
		});
		
	/*	$('.additional-images a').mouseover(function() {
			var himg = this.href ;
			var extension=himg.substring(himg.lastIndexOf('.')+1);
			if (extension =='png' || extension =='jpg' || extension =='gif') {
				$('.main-image img').attr('src',himg );
			}
			console.log(extension)
		});*/
	});
//]]>


jQuery(document).ready(function() {
	jQuery("a[rel=vm-additional-images]").fancybox({
		"titlePosition" 	: "inside",
		"transitionIn"	:	"elastic",
		"transitionOut"	:	"elastic"
	});
	jQuery(".additional-images .product-image").click(function() {
		jQuery(".main-image img").attr("src",this.src );
		jQuery(".main-image img").attr("alt",this.alt );
		jQuery(".main-image a").attr("href",this.src );
		jQuery(".main-image a").attr("title",this.alt );
	}); 
});


//<![CDATA[
			function check_reviewform() {
				var form = document.getElementById('reviewform');

				var ausgewaehlt = false;

				// for (var i=0; i<form.vote.length; i++) {
					// if (form.vote[i].checked) {
						// ausgewaehlt = true;
					// }
				// }
					// if (!ausgewaehlt)  {
						// alert('Bitte bewerten Sie das Produkt, um Ihre Rezension zu vervollständigen');
						// return false;
					// }
					//else
					if (form.comment.value.length < 100) {
						alert('Bitte schreiben Sie noch ein paar mehr Worte in Ihre Rezension. Es sind mindestens 100 Zeichen erforderlich.');
						return false;
					}
					else if (form.comment.value.length > 2000) {
						alert('Bitte kürzen Sie Ihre Rezension. Maximal sind 2000 Zeichen erlaubt.');
						return false;
					}
					else {
						return true;
					}
				}

				function refresh_counter() {
					var form = document.getElementById('reviewform');
					form.counter.value= form.comment.value.length;
				}
				jQuery(function($) {
					var steps = 5;
					var parentPos= $('.write-reviews .ratingbox').position();
					var boxWidth = $('.write-reviews .ratingbox').width();// nbr of total pixels
					var starSize = (boxWidth/steps);
					var ratingboxPos= $('.write-reviews .ratingbox').offset();

					$('.write-reviews .ratingbox').mousemove( function(e){
						var span = $(this).children();
						var dif = e.pageX-ratingboxPos.left; // nbr of pixels
						difRatio = Math.floor(dif/boxWidth* steps )+1; //step
						span.width(difRatio*starSize);
						$('#vote').val(difRatio);
						//console.log('note = ', difRatio);
					});
				});


//]]>
				
function keepAlive() {	var myAjax = new Request({method: "get", url: "index.php"}).send();} window.addEvent("domready", function(){ keepAlive.periodical(840000); });
  </script>

		<link rel="stylesheet" href="/templates/system/css/system.css" type="text/css" />
		<link rel="stylesheet" href="/templates/templatevopix/css/template.css" type="text/css" />
	
		
</head>

11.02.2014 17:54

7 Jörg

und da wird ja dann von plugin selbst die fancybox eingebunden

Lässt es sich denn unter dieser URL auch aufrufen?

Was noch auffällt ist, dass du jquery.min.js zweimal aus verschiedenen Quellen eingebunden hast - das könnte hier auch Probleme bereiten, z.B. wegen unterschiedlicher Versionen oder weil das noConflict.js so nicht mehr zum Zuge kommt.

11.02.2014 18:38 | geändert: 11.02.2014 18:40

8 ShadowLupina

Zitat von Jörg
und da wird ja dann von plugin selbst die fancybox eingebunden

Lässt es sich denn unter dieser URL auch aufrufen?

Was noch auffällt ist, dass du jquery.min.js zweimal aus verschiedenen Quellen eingebunden hast - das könnte hier auch Probleme bereiten, z.B. wegen unterschiedlicher Versionen oder weil das noConflict.js so nicht mehr zum Zuge kommt.

Ok..das zweite jquery.min.js kommt von nem Login in Plugin, dass ich eingebaut habe...und ich hab das mal deaktiviert und jetzt werden Produkte hinzugefügt

müsste es dann nicht reichen, wenn ich bei dem login plugin die Einbindung des jquery.min.js rausnehme...weil das kommt ja von ner anderen Quelle noch mal?

12.02.2014 09:22

9 ShadowLupina

Naja ich hab das mal gemacht und bei den Login - Plugin die Einbindung rausgenommen.

Es funktionieren danach sowohl das Login - Plugin, als auch der Warenkorb...nur bekomm ich die Meldung:

TypeError: $.noConflict is not a function

welche Konsequenzen kann das haben? Aktuell merk ich keine

12.02.2014 09:29

10 Jörg

noConflict() wird benötigt, um Konfilkte mit anderen JS-Frameworks zu vermeiden, siehe Beschreibung in der jquery Dokumentation:

https://api.jquery.com/jQuery.noConflict/

Auf deiner Seite sind als weiteres Framework noch MooTools eingebunden:

  <script src="/media/system/js/mootools-core.js" type="text/javascript"></script>

12.02.2014 11:40