0

タンク認証ライブラリ(ネットからダウンロード)を使ってcodeigniterでブログを作っています。

ご存知のように、ブログにはいいね/嫌いボタンが含まれています。いいねボタン (ビュー ページ) をクリックすると、最初にコントロールがコントローラーに転送され、そこでユーザーがログインしているかどうかがチェックされます。ユーザーがログインしている場合は、コントロールが転送されます。メインのブログ ページとブログがいいね! されます (つまり、いいね! カウンターがインクリメントされます) が、ユーザーがログインしていないか、コミュニティのメンバーではない場合、ログイン/登録フォームが表示されます。

これらのすべての機能はタンク認証ライブラリに組み込まれており、正常に動作しています。

問題: ユーザーがログインしていない、またはメンバーでない場合、どのページが表示されていても (ログイン/登録/パスワードを忘れた/メールを再送信)、好き/嫌いボタンをクリックするとポップアップで開く必要があります。

作業完了: アンカー ポップアップ機能を使用しましたが、使用しませんでした。結果:新しいウィンドウにビューが表示されます

ログイン/登録フォームのビューを同じブログページに配置し、jquery (フェードイン、フェードアウト) などの関数を使用してポップアップを表示しました。結果:ポップアップが表示されますが、そのポップアップはコントローラから来ていないので役に立ちません(タンク認証ライブラリ機能が関与していないため)。

可能であれば、ビューを表示するのを手伝ってください(コントローラーからポップアップとして呼び出されます)。可能であれば、適切なリンクまたはデモ プロジェクトを送信してください。jquery-fancy box という機能がありますが、これで動くと思います。jquery+ mvc フローの概念を適用することで問題が解決されることはわかっていますが、php と codeigniter は初めてなので、自分の考えを適切に統合することはできません。

前もって感謝します。

4

1 に答える 1

0

あなたFancyboxの問題は解決されます。[ダウンロード] まずパッケージをダウンロードします。次に、テンプレートにCSSandを含めます。1JS

使用法:

<a href="<?=base_url()?>home/login/" class="fancybox">Login</a>
$(function(){
    $(".fancybox").fancybox({
        type        : 'iframe',
        autoSize : false,
        width    : "60%",
        height   : "56%",
        'scrolling'     : 'no',
        'titleShow'     : false,
        openEffect  : 'fade',
        closeEffect : 'fade'
    });
});

編集
の変更:リンクにクラスを
追加しました。fancybox

<a href="<?php echo base_url()?>index.php/blog/ajax_dislike/?dislikeid=<?php echo $row ->id;?>" class="fancybox">Dislike</a>

<head>インデックス ページのセクションに必須のインクルード:

<script type="text/javascript" src="<?=base_url()?>js/jquery-1.9.1.js"></script>
<link rel="stylesheet" href="<?=base_url()?>css/fancybox/jquery.fancybox.css" />
<script type="text/javascript" src="<?=base_url()?>js/jquery.fancybox.js"></script>

<head>セクションのページに、上記のインクルードの後に​​これをインクルードします。

<script type="text/javascript">
$(function(){
    $(".fancybox").fancybox({
        type        : 'iframe',
        autoSize : false,
        width    : "60%",
        height   : "56%",
        'scrolling'     : 'no',
        'titleShow'     : false,
        openEffect  : 'fade',
        closeEffect : 'fade'
    });
});
</script>
于 2013-09-11T15:29:50.047 に答える