2012-12-07 25 views
5

Trong Joomla 2.5, các tập lệnh bên dưới được tải tự động.Dừng tải các kịch bản tự động trong Joomla 2.5

<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/caption.js" type="text/javascript"></script> 
<script src="/media/system/js/mootools-more.js" type="text/javascript"></script> 
<script src="/templates/pswedge/js/jquery.min.js" type="text/javascript" defer="defer"></script> 

Tôi không muốn tải các tệp này. Làm thế nào tôi có thể loại bỏ các liên kết này?

+0

Mẫu nào bạn đang sử dụng bất kỳ mẫu tùy chỉnh nào hoặc mẫu miễn phí nào? – Toretto

+1

Tôi đã tự tạo mẫu. Tôi thực sự cần phải biết mã của được tạo ra ở đâu –

+0

Sau đó kiểm tra phần đầu của bạn trong mẫu của bạn, Các kịch bản đó sẽ chèn nó vào đó để nhận xét nó. – Toretto

Trả lời

8

tôi sẽ không khuyên bạn nên thay đổi các tập tin cốt lõi của Joomla.But nếu bạn thực sự cần phải mà sau đó bạn có thể thử này:

Bước để vô hiệu hóa các tập tin kịch bản cài đặt sẵn trong joomla template.

Bước một: Sử dụng biên tập tập tin yêu thích của bạn, mở cho chỉnh sửa:

/libraries/joomla/document/html/renderer/head.php

Bước một: Tìm mã này tại dòng 151 và cập nhật nó để bao gồm mã với điều này:

// Generate script file links 
foreach ($document->_scripts as $strSrc => $strAttr) 
{ 
    // Code to disable mootools for your site (still loads it for your admin) 

    $ex_src = explode("/",$strSrc); 
    $js_file_name = $ex_src[count($ex_src)-1]; 
    $js_to_ignore = array("mootools-core.js","mootools-more.js","core.js","caption.js"); 
    if(in_array($js_file_name,$js_to_ignore) AND substr_count($document->baseurl,"/administrator") < 1 AND $_GET['view'] != 'form') 
     continue; 

    $buffer .= $tab . '<script src="' . $strSrc . '"'; 
    if (!is_null($strAttr['mime'])) 
    { 
     $buffer .= ' type="' . $strAttr['mime'] . '"'; 
    } 
    if ($strAttr['defer']) 
    { 
     $buffer .= ' defer="defer"'; 
    } 
    if ($strAttr['async']) 
    { 
     $buffer .= ' async="async"'; 
    } 
    $buffer .= '</script>' . $lnEnd; 
} 

Sau khi lưu các thay đổi ở trên, xóa bộ nhớ cache mà bạn đã thiết lập và kiểm tra trang web Joomla và Bảng điều khiển quản trị Joomla của bạn. Nếu bạn xem mã nguồn, tất cả các tệp định trước không có ở đó.

Hoặc

Bạn có thể thử như thế này để che giấu nó khỏi index.php trong mẫu. Chỉ cần đặt dòng này trước <jdoc:include type="head" /> và thực hiện các thay đổi cần thiết khi cần thiết cho tập lệnh.

<?php 
    $search = array('mootools-more.js', 'caption.js'); 
    // remove the js files 
    foreach($this->_scripts as $key => $script) { 
     foreach($search as $findme) { 
      if(stristr($key, $findme) !== false) { 
       unset($this->_scripts[$key]); 
      } 
     } 
    } 
?> 
3

Tháng một trong những phương pháp work-

Phương pháp 1: Đặt Trước <jdoc:include type="head" />

$search = array('mootools', 'caption.js'); 
    // remove the js files 
    foreach($this->_scripts as $key => $script) { 
     foreach($search as $findme) { 
      if(stristr($key, $findme) !== false) { 
       unset($this->_scripts[$key]); 
      } 
     } 
    } 

// Phương pháp 2

trong index.php của template

$parameter_script = 'scripts'; 
$headerstuff=$document->getHeadData(); 
reset($headerstuff[$parameter_script]); 
foreach($headerstuff[$parameter_script] as $key=>$value){ 
unset($headerstuff[$parameter_script][$key]);  
} 
$document->setHeadData($headerstuff); 

// Phương pháp 3

Trong thư mục tập tin /plugins/system tạo một file mới có tên gọi “removemootools.php” và chèn đoạn mã sau (bạn sẽ cần phải đăng ký các plugin trong cơ sở dữ liệu, quá).

class plgSystemRemoveMooTools extends JPlugin 
{ 
public function onAfterDispatch() 
{ 
$app = JFactory::getApplication(); 
if($app->isSite()) //Only ever remove MooTools from the client-side, never the admin side 
{ 
//Repeat these three line for all js you want to exclude 
$mootools = JURI::root(true).DS.'media'.DS.'system'.DS.'js'.DS.'mootools.js'; 
$document = JFactory::getDocument(); 
unset($document->_scripts[$mootools]); 
} 
} 
} 
0

Tôi đã sử dụng mã này để xóa các tệp jquery khỏi đầu (Joomla! 3.3.1)

<?php 

//Remove jquery 
$search = array('jquery', 'jquery.min.js'); 
    // remove the js files 
    foreach($this->_scripts as $key => $script) { 
     foreach($search as $findme) { 
      if(stristr($key, $findme) !== false) { 
       unset($this->_scripts[$key]); 
      } 
     } 
    } 
?> 

<jdoc:include type="head" /> 
0

Có hai cách mà tôi biết:

1) nhận được một ví dụ nếu đối tượng tài liệu và loại bỏ các tập tin js (bạn có thể làm điều đó trong một plugin):

<?php 
     //get the array containing all the script declarations 
     $document = JFactory::getDocument(); 
     $headData = $document->getHeadData(); 
     $scripts = $headData['scripts']; 

     //remove your script, i.e. mootools 
     unset($scripts['/media/system/js/mootools-core.js']); 
     unset($scripts['/media/system/js/mootools-more.js']); 
     $headData['scripts'] = $scripts; 
     $document->setHeadData($headData); 
?> 

2) loại bỏ các file js trực tiếp từ mẫu index.php của bạn:

<?php unset($this->_scripts['/media/system/js/mootools-core.js']); ?> 
Các vấn đề liên quan