2014-04-11 63 views
1

我是Joomla的初學者! 我必須將Joomla 2.5.x版本網站升級到最新版本的Joomla。 我已經檢查了所有現有的2.5.19版本的組件/模塊/插件的兼容性,並且它們在Joomla 3.x中都是兼容的。 唯一的問題是模板。 我只是不知道如何取得成功,從哪裏開始修改它。如何將現有的Joomla模板修改爲Joomla 3.x模板?

這是我的一些templateDetails.xml的線路:

<extension version="2.5" type="template" client="site"> 
    <name>Harpo</name> 
    <version>1.0.0</version> 
... 
<files> 
     <filename>index.php</filename> 
     <folder>css/</folder> 
     <folder>images/</folder> 
     <filename>templateDetails.xml</filename> 
     <filename>error.php</filename> 
    </files> 
    <images> 
     <filename>template_thumbnail.png</filename> 
    </images> 
... 
<positions> 
     <position>newsflash</position> 
     <position>hornav</position> 
     <position>breadcrumbs</position> 
     <position>banner</position> 
     <position>left</position> 
     <position>right</position> 
     <position>top</position> 
     <position>user1</position> 
     <position>user2</position> 
     <position>user3</position> 
     <position>user4</position> 
     <position>user5</position> 
     <position>footer</position> 
     <position>syndicate</position> 
     <position>debug</position> 
    </positions> 

</extension> 

這是我的一些index.php文件的行:

<head> 
<link rel="shortcut icon" href="<?php echo $app->getCfg('live_site'); ?>templates/<?php echo $this->template ?>/images/favicon.ico"/> 
<meta http-equiv="Content-Type" content="text/html;" /> 
<link href="<?php echo $app->getCfg('live_site'); ?>templates/<?php echo $this->template ?>/css/template_css.css" rel="stylesheet" type="text/css" media="all"/> 
<!-- <link href="css/template_css.css" rel="stylesheet" type="text/css" media="all"/> --> 
<jdoc:include type="head" /> 
<meta name="verify-v1" content="PynT0gVSXBh484xuIjQakd0YZS+sHAYmOK+CRTa1aJI=" /> 
<script type="text/javascript" src="<?php echo $app->getCfg('live_site'); ?>templates/<?php echo $this->template ?>/flashobject.js"></script> 
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script> 
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.min.js"></script> 
<script type="text/javascript"> 
    var _gaq = _gaq || []; 
    _gaq.push(['_setAccount', 'UA-32944659-1']); 
    _gaq.push(['_trackPageview']); 

    (function() { 
     var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; 
     ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; 
     var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); 
    })(); 

    jQuery.noConflict(); 
... 
... 
... 
<body> 
<div class="out"> 
    <div class="main"> 
    <!--Toparea Start--> 
     <div class="top"> 
      <div class="logo_space"> 
       <div class="boxlogin"><jdoc:include type="modules" name="user2" /></div> 
      </div> 
      <div class="header"> 
      <img src="<?php echo $app->getCfg('live_site'); ?>templates/<?php echo $this->template ?>/images/img_header.jpg" alt="sfondo_header" align="top" style="float:left;" /> 
      <div id="flash" style="float:right; width:550px; height:132px;"></div> 
      <script type="text/javascript"> 
       var fo = new FlashObject("<?php 
        $flashPath = $app->getCfg('live_site')."templates/".$this->template."/flash/animazione.swf"; 
        echo $flashPath; 
       ?>", "Menu", "550", "132", "8", "#FFFFFF", "transparent"); 
       fo.write("flash"); 
      </script> 

      <!-- <img src="<?php echo $app->getCfg('live_site'); ?>templates/<?php echo $this->template ?>/images/img_headerright.jpg" alt="sfondo_header" align="top" style="float:right;" width="550" height="132" /> --> 
      <!-- <div class="boxlogin"></div> --> 
     </div> 

     <div class="topmenu"> 
      <?php if ($this->countModules("top")) { ?> 
       <jdoc:include type="modules" name="top" /> 
      <?php } ?> 
     </div> 
    </div> 
... 
... 
... 

任何建議都歡迎!

+1

你需要在模板中更新什麼?很難說,不知道任何具體情況。可能有多個代碼片段需要更改或者什麼都不做 – Lodder

+0

@Lodder說,可能有多個代碼片段需要更改或者什麼都不做。幾個星期前我更新了一個Joomla網站,並且我對某些組件有問題,但是模板的工作方式就像一個魅力。所以,你應該做的是更新網站(如果你願意的話,可以在測試環境中),並且你可以得到任何具體的錯誤地址(如果有的話)。 –

+0

我已經編輯我的問題......正如我所說我只是不知道從哪裏開始,先檢查什麼......我也嘗試升級網站,後端部分沒問題,但前端顯示錯誤 –

回答

0

好吧,看了你的代碼,這裏有一些東西。

首先,你的XML文件很好,不需要改變。

要導入的jQuery在noConflict模式,並確保其只進行一次,則應更換此:

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script> 

與此:

JHtml::_('jquery.framework'); // this is PHP so wrap it in PHP tags 

一旦這樣做,你可以刪除這些代碼:jQuery.noConflict();

要從configuration.php文件獲取值,請不要使用$app->getCfg(),因爲它已被棄用。相反使用,$app->get()。與此

$app->get('live_site'); 

除此之外

$app->getCfg('live_site') 

,我沒有看到代碼的任何其他問題:所以你的情況,更換此。

+0

我只是做了你所建議的改變,但我得到一個「500 - JHtmlBehavior :: mootools找不到」 –

+0

啊,我沒有看到你的問題中的代碼,用'JHtml :: _('行爲。框架')' – Lodder

+0

好了解決了這個問題,通過替換JHtmlBehavior :: mootools();與JHtml :: _('behavior.framework'); –