3

私はJoomlaの経験があまりありません。だからこそ、あなたのアドバイスが必要です。アイデアは、システム メッセージをポップアップで表示することです。

ソリューション:

1.この div は必要ないため、libraries\joomla\document\html\renderer\message.php ファイルの次の行を削除しました。

$buffer .= "\n<div id=\"system-message-container\">";
$buffer .= "\n</div>";

2. index.php で置き換えました

<jdoc:include type=”message” />

<?php if ($this->getBuffer('message')) : ?>
<?php
    $message = $this->getBuffer('message');
    $script  = '<div id="popup"><div id="popup-inner">'.$message.'</div></div><div id="popup-mask"></div>';
    echo $script;
?>
<?php endif; ?> 

div#popup はポップアップ自体に使用され、div#popup-mask はオーバーレイに使用されます

3. CSS で #popup と #popup-mask のスタイルを設定しました

#popup-mask {position: absolute; top: 0; left: 0; z-index: 9997; background: url(../images/bg-overlay.png);}
#popup {position: fixed; width: 400px; top: 40%; left: 50%; margin-left: -200px; z-index: 9999; background: #e6e6e6; border-radius: 10px; -webkit-border-radius: 10px; -moz-border-radius: 10px;}

4. jQuery を追加

jQuery.fn.showMask = function () {
    var maskHeight = jQuery(document).height();
    var maskWidth = jQuery(window).width();
    jQuery(this).css({'width':maskWidth,'height':maskHeight});
};
jQuery(document).ready(function() {
    if (jQuery('#popup-mask').length){
        jQuery('#popup-mask').showMask();
        jQuery('#popup-mask').click(function () {
            jQuery(this).hide();
            jQuery('#popup').hide();
        });
        jQuery(window).resize (function() {
           jQuery('#popup-mask').showMask();
        });
}
});

それは機能しますが、すでに述べたように、私はJoomlaにまったく慣れていません。

したがって、質問は次のとおりです。

- この解決策は大丈夫ですか?

- どうすれば改善できますか?

4

2 に答える 2

4

何らかの理由で本当に必要でない限り、joomlaのコアファイルを変更しないでください.あなたの状況では、これを試すことができます.

  1. 必要に応じて、デフォルトの Joomla システム メッセージ コードを追加します。これが使用している既存のテンプレートである場合、Joomla のシステム メッセージを表示する場所にシステム メッセージ コードが既に含まれている可能性があります。

コード:

<jdoc:include type=”message” />

まだそこにない場合は、通常、このコードのすぐ上に追加します。

コード:

<jdoc:include type=”component” />
  1. アニメーション化されたポップアップ モーダル メッセージを作成する Mootools をロードします。開始タグの直後に、次のコードを追加します。

JHTML:: ('behavior.mootools'); JHTML:: ('behavior.modal');

注: Mootools のコンフリクト エラーが表示される場合は、サイトですでに Mootools が読み込まれている可能性があります。コードのこのセクションを削除してみてください。

  1. システム メッセージを自動的に「ポップアップ」する JavaScript コードを追加します。CLOSING タグの直前に次のコードを追加します。

脚本:

<script type=”text/javascript”&gt;
window.addEvent(‘domready’, function(){
if( $(‘system-message’) ){
SqueezeBox.initialize();
SqueezeBox.open( $(‘system-message’), {
handler: ‘adopt’,
shadow: true,
overlayOpacity: 0.5,
size: {x: 600, y: 100},
onOpen: function(){
$(‘system-message’).setStyle(‘visibility’, ‘visible’);
}
});
}
});
</script>

JAVASCRIPT必要に応じて、とを変更できますCSS

于 2012-12-01T08:05:55.283 に答える