2011-12-30 4 views
1

私は現在、カスタムモジュールを開発しています。何らかの理由で、出力するものの前に空白が追加されています。 私のセットアップは、このようなものです:モジュールの前にjoomlaの空白スペース

メインクラスは、ヘルパーの.phpである、 ロジックはMOD_NAMEの.phpの中で、 出力は/ TMPL /デフォルトの.phpで

ある奇妙なことは、私が持っている場合ということです私のクラスでhtmlを返すメソッド。私のテンプレートでこのメソッドを呼び出すと、余分な行は追加されません。 しかし、テンプレートやmod_name.phpにプレーンテキストの出力を書き込もうとすると、この余分な行が得られます。ここで

のスクリーンショットです: enter image description here

私はずっと義務があるだろう、誰もが前に、このようなものに遭遇した場合は私に知らせてください!

答えて

3

は、私は2つのファイルのそれぞれを含めたために問題があったことが判明しましたそれらには別のクラスが含まれていましたインクルードされたファイルには空白がなく、出力も生成されていませんでした。これにはロジックのみが含まれていました。 あなたの時間と答えに感謝します。

EDIT:

最近、再びこの問題につまずいたBOMなしのUTF-8を判明移動するための方法ですが、MVCワイズ、「必ずあなたのコンポーネントがエントリポイントことを確認./com_helloworld/ helloworld.php "はBOMのないUTF-8です!

+0

ええ、私のしばらくの間、私の自己を理解できませんでした...どうにかしてファイルのエンコーディングは二重引用符で囲まれた空白スペースを追加していました "" コンポーネントにも同様に起こります... – petsoukos

0

隠すように設定されている場所は保存されているように見えます。私は少なくとも印刷とrssのアイコンをオフにしてこの時を見つけましたが、コンテナは消えません。ソースを見つけることができれば、全体を削除したり、データベースファイルを修正することができます。何らかの登録モジュールのように見えるので、もしあなたがベルを鳴らしたら、このようなモジュールをソースファイルで見ることができます。申し訳ありませんが正確な答えが、うまくいけば少しの方向性を与える。

+0

を私はあなたが何を言ってるのか知っているが、私はこれらの隠された「div要素」のすべてが削除されているので、私自身のカスタムテンプレートを使用します。 – michaeltintiuc

1

私は今日、同様の問題に遭遇し、「BOMなしUTF-8」にモジュールレイアウトを符号化することによってそれを解決するために管理

2

BOMのないUTF-8が答えです。私は原因を発見する前に、この問題を管理する条件付きCSSを持つ3つの複雑なJoomla Webサイトを作った。 私はこのスクリプトがJoomlaウェブサイトのルートに置かれ、UTF-8のBOM phpファイルを再帰的に自動保存することも発見しました。 それは多くの時間働いて、私を救っ:

<?php 
// Tell me the root folder path. 
// You can also try this one 
// $HOME = $_SERVER["DOCUMENT_ROOT"]; 
// Or this 
// dirname(__FILE__) 
$HOME = dirname(__FILE__); 
// Is this a Windows host ? If it is, change this line to $WIN = 1; 
$WIN = 0; 

// That's all I need 
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>UTF8 BOM FINDER and REMOVER</title> 
<style> 
body { font-size: 10px; font-family: Arial, Helvetica, sans-serif; background: #FFF; color: #000; } 
.FOUND { color: #F30; font-size: 14px; font-weight: bold; } 
</style> 
</head> 
<body> 
<?php 
$BOMBED = array(); 
RecursiveFolder($HOME); 
echo '<h2>These files had UTF8 BOM, but i cleaned them:</h2><p class="FOUND">'; 
foreach ($BOMBED as $utf) { echo $utf ." 
\n"; } 
echo '</p>'; 

// Recursive finder 
function RecursiveFolder($sHOME) { 
    global $BOMBED, $WIN; 

    $win32 = ($WIN == 1) ? "\\" : "/"; 

    $folder = dir($sHOME); 

    $foundfolders = array(); 
    while ($file = $folder->read()) { 
    if($file != "." and $file != "..") { 
     if(filetype($sHOME . $win32 . $file) == "dir"){ 
     $foundfolders[count($foundfolders)] = $sHOME . $win32 . $file; 
     } else { 
     $content = file_get_contents($sHOME . $win32 . $file); 
     $BOM = SearchBOM($content); 
     if ($BOM) { 
      $BOMBED[count($BOMBED)] = $sHOME . $win32 . $file; 

      // Remove first three chars from the file 
      $content = substr($content,3); 
      // Write to file 
      file_put_contents($sHOME . $win32 . $file, $content); 
     } 
     } 
    } 
    } 
    $folder->close(); 

    if(count($foundfolders) > 0) { 
    foreach ($foundfolders as $folder) { 
     RecursiveFolder($folder, $win32); 
    } 
    } 
} 

// Searching for BOM in files 
function SearchBOM($string) { 
    if(substr($string,0,3) == pack("CCC",0xef,0xbb,0xbf)) return true; 
    return false; 
} 
?> 
</body> 
</html> 
関連する問題