2016-08-25 11 views
0
私はモジュールのバックエンドでの4つのフィールドを持っているJoomlaの3

PHP状態の場合 - バックエンド

に簡単な質問モジュールを構築しよう

int型のJoomlaモジュールのテキストフィールドからのテキスト出力がある場合のみHTMLをレンダリングします。 "質問1 &回答1" "質問2 &回答2"。

私のPHPとHTMLは次のように構築さ:

<div id="accordion"> 
    <h3 class="question"> <?php echo $params->get('question1'); ?></h3> 
    <div class="question"> 
    <?php echo $params->get('answer1'); ?> 
    </div> 

    <h3 class="question"> <?php echo $params->get('question2'); ?></h3> 
    <div class="question"> 
    <?php echo $params->get('answer2'); ?> 
    </div> 
</div> 

私はバックエンドでのテキストフィールドは、それらがユーザーから記入されている場合場合は、コードブロックのみをレンダリングするように、if文で、いくつかのPHPを追加したいです:

(フィールド "question3" は、任意のテキストを持っている場合は、このコードを表示)

<?php if ($this->params->get('question3')) : ?> //This is the line of code i do not know how to do. 
    <h3 class="question"> <?php echo $params->get('question2'); ?></h3> 
    <div class="question"> 
    <?php echo $params->get('answer2'); ?> 
    </div> 
</div> 

<?php endif; ?> 

これはXMLがどのように見えるかです:

   <!-- Question 1 -->     
       <field 
        label="Question 1" 
        default="" 
        name="question1" 
        description="Fill in the question" 
        type="text" 
        size="60" 
       /> 
       <!-- End of Question 1 --> 

       <!-- Answer 1 -->     
       <field 
        label="Answer1" 
        default="Fill in the answer" 
        name="answer1" 
        description="Fill in the answer" 
        type="editor" 
        width="200" 
        height="100" 
        hide="readmore,pagebreak" 
        filter="safehtml" 
        size="260" 
       /> 
       <!-- End of Answer 1 --> 

       <field type="spacer" name="questionspacer2" label="&lt;b&gt;Question and Answer 2 1&lt;/b&gt;" /> 


        <!-- Question 2 -->     
       <field 
        label="Question 2" 
        default="" 
        name="question2" 
        description="Fill in the question" 
        type="text" 
        size="60" 
       /> 
       <!-- End of Question 2 --> 

<!-- Answer 2 -->     
       <field 
        label="Answer2" 
        default="" 
        name="answer2" 
        description="Fill in the answer" 
        type="editor" 
        width="200" 
        height="100" 
        hide="readmore,pagebreak" 
        filter="safehtml" 
        size="260" 
       /> 
       <!-- End of Answer 2 --> 

ヒントは素晴らしいでしょう!私はすでに一晩中解決策を探しています。満たされていない場合、あなたはこのような出力をチェックする必要があるパラメータを設定する方法に応じて

+0

あなたは 'isset();と' empty(); 'を探しています – Epodax

答えて

1

$answer2 = $params->get('answer2')); 

// (Applies if the not filled data returns NULL etc.) 
if (isset($answer2)) { YOUR CODE } 

// (Applies if the not filled data returns an empty string) 
if (!empty($answer2)) { YOUR CODE } 

がテストされていませんが、それが動作するはずです;)

編集:ただ、この方法それを作りました次のコメントと同様に見えるはずです:)

+0

私がこれをした後: if(isset($ params-> get 'answer2')))){echo $ params-> get( 'answer2'); }エラーが発生する:致命的なエラー:書き込みコンテキストでメソッドの戻り値を使用できません。 – Mat5hias

+0

出力を変数に代入してみましょう: '$ answer2 = $ params-> get( 'answer2);' ... 'if(!empty($ answer2)){...}'または 'if (isset($ answer2)){...} 'となります。私はあなたが '答え'を得ると返されるものを本当に知っていません...私の例では単純な文字列を考えています、それは単にそこにエコーしているからです) – bquarta

+0

isset +変数のバージョンは素晴らしいです!あなたは私の一日を作った、ありがとう! – Mat5hias

関連する問題