カスタムhtml/phpフォームを配置したい登録済みのJoomlaユーザーですが、ユーザーが一度だけ送信したいのですが、ユーザーがform、次に開くときフォームページ、彼はフォームを再度表示しない?代わりに、カスタムメッセージを表示する必要があります(あなたがすでにフォームまたはbla bla bla ...を提出したように)これを達成する方法?
「カスタム」と言うときは、Joomlaメソッドに固執し、これをモジュールまたはコンポーネントにすることを意味します;)
これを行うための最良の方法は、すでに使用しているいくつかの方法を使用することです。つまり、ユーザーオブジェクトを取得します。
したがって、ユーザーがフォームを送信すると、入力したデータだけでなく、$user->username
を使用してユーザー名も送信されます。今後は、ユーザー名と送信したデータがデータベースに保存されるようになります。
ここで、テーブルからユーザー名を取得するデータベースクエリを作成し、現在ログインしているユーザーと照合する必要があります。ここに小さな例があります:
$db = JFactory::getDbo();
$user = JFactory::getUser();
$query = $db->getQuery(true);
$query->select($db->quoteName('username'));
->from($db->quoteName('#__myform'));
->where($db->quoteName('username') . ' = '. $db->quote($user->username));
$db->setQuery($query);
$result = $db->loadResult();
if($result) {
// display custom message
}
else {
// display form
}
最初にフォームを機能させてから、ユーザーチェックの統合を開始するのはよい考えだと思います。
お役に立てれば
フォームの生成に使用している拡張機能がわかりません。しかし、それを「Chronoforms」に変更する可能性がある場合は、ここで提案されているように、この拡張機能でこれを行うことができます: http://www.chronoengine.com/forums/posts/t9535/p9535/user -submit-only-once.html
注:クロノフォームを使用しなくても、Joomlaの標準の関数とフレームワークを使用するため、基になるメソッドを使用できます。
これはまさにあなたが探しているものですが、私の見解では、クロノフォームを使用する必要があります。それは、とにかくJoomlaにとって最高のフリーフォーム拡張です。サポートは素晴らしく、よく維持されています。私のサイトでも使用しています。
B2J Contactを使用して、フォームにカスタムフィールドを生成します。これは、Bang2Joomチームによって提供される 無料のJoomlaフォームクリエーター コンポーネントです。素敵で簡単なバックエンド!フレンドリーなサポート!
やってみなよ!
ここからダウンロード: http://www.bang2joom.com/joomla-components/b2j-contact