web-dev-qa-db-ja.com

コンテンツの表示-com_contentテンプレートの投票フォームのオーバーライド

Joomla記事の特定の位置にコンテンツ投票フォームを表示したいので、記事の本文の前に表示されるように設定されているため、コンテンツ-投票標準プラグインを使用できません(もっと柔軟なものが必要です)。

そこで、Content-voteプラグインからフォームコードを取得して、テンプレートcom_content/article overrideに配置することにしました。

ここにコードがあります:

<?php $uri = JUri::getInstance();
$uri->setQuery($uri->getQuery() . '&hitcount=0');?>

<form method="post" action="<?php echo htmlspecialchars($uri->toString()); ?>" class="form-inline">
    <select name="user_rating">
        <option value="1">Vote 1</option>
        <option value="2">Vote 2</option>
        <option value="3">Vote 3</option>
        <option value="4">Vote 4</option>
        <option value="5" selected="selected">Vote 5</option>
    </select>
    <input class="btn btn-primary" type="submit" name="submit_vote" value="Vote Now" />
    <input type="hidden" name="task" value="article.vote" />
    <input type="hidden" name="hitcount" value="0" />
    <input type="hidden" name="url" value="<?php echo htmlspecialchars($uri->toString()); ?>" />
    <?php echo JHtml::_('form.token') ?>
</form>

上記のコードはうまく機能していますが、私の質問ですが、そのフォームをcom_contentオーバーライドに直接埋め込むことは良い習慣ですか?または、私の記事に対する柔軟なコンテンツ-投票機能の位置に関する他の解決策はありますか?ありがとう

1
webchun

コンテンツ-投票に基づいて別のプラグインを作成する方が良いと思います。これは、{VOTEFORM}のようないくつかの疑似変数を使用して、フォームの記事の文字列を置き換えるだけです。次に、この{VOTEFORM}を記事内の必要な場所に追加するだけです。これは、更新に対して安全であるため、テンプレートのオーバーライドは必要なく、デフォルトの投票プラグインはそのまま残ります。もちろん、このプラグインを使用するときは、デフォルトのプラグイン(コンテンツ-投票)を無効にする必要があります。

1
Artur Stępień