Flag 、 Views 、セッション、および小さなカスタムコードを使用して、コマースサイトの「サンプルリクエスト」の実装に取り組んでいます。
アイコンまたはシンボルを追加して、表示しているアイテムにフラグが付けられたことをユーザーに通知します。
私はこれにどのように取り組むか正確にわかりません、おそらく Rules またはajaxによって変更される画像またはチェックボックスを表示する条件付きフィールドを追加すること、またはおそらくJavaScriptでより複雑なことを想像できますか?
フラグリンクがクリックされたときにチェックされるか、またはチェックされないチェックボックスを追加するか、クリックされたcss/htmlを変更してマークされていると識別されるようにするのと同じくらい簡単です。
とにかく、ここでのアドバイスに感謝しています。
CSSを使用して、テキストの左側にパディングを追加し、その中に背景画像を表示できます。これは、コミュニティドキュメントの テキストの横に画像を表示する方法 にも示されています。以下はその抜粋です(「ブックマーク」をフラグのマシン名に置き換えます)。
.flag-bookmarks a {
padding-left: 20px;
}
.flag-bookmarks a.flag-action {
background: url(images/i-dont-like-it.png) no-repeat left center;
}
.flag-bookmarks a.unflag-action {
background: url(images/i-like-it.png) no-repeat left center;
}
(方法)詳細については フラグテーマガイド を参照してください。
flag.tpl.php
ファイルの使用方法を説明し、フラグのHTMLを生成するために使用されます。リンク。また、フラグ固有のflag--FLAGNAME.tpl.php
ファイル(FLAGNAME
はフラグのマシン名)を使用して、さまざまなフラグに異なるテーマを設定する方法についても説明します。次のCSS(そのリンクからの引用)を追加することにより、 フラグリンクをボタンに変換 できます。
.flag-wrapper.{flag-name} a.flag-action {
background-image: url('path to the button image');
display:block;
text-indent:-9999em;
}
.flag-wrapper.{flag-name} a.unflag-action {
background-image: url('path to the button image');
display:block;
text-indent:-9999em;
}
メモ:
text-indent:-9999em
は、要素を非表示にします(画面から外して配置します)。.{flag-name}
をフラグのマシン名に置き換えます。フラグリンクのレンダリングに Flag モジュールを使用している場合は、リンクテキストの代わりに次のコードを使用して画像を表示できます。
function theme_preprocess_flag(&$vars){
$state = ($vars['action'] == 'flag' ? 'off' : 'on');
$image_file = $vars['directory'] . '/images/flag-' . $vars['flag']->name . '-' . $state . '.png';
if (file_exists($image_file)) {
$vars['link_text'] = theme_image(array('path' => $image_file, 'attributes' =>
array('class' => array('flag-' . $vars['flag']->name . '-' . $state))));
}
}
このコードをtemplate.php
で使用した後、flag-flag_machine_name>-off|on.png
のような名前のテーマディレクトリに画像を配置します。
このコードをtemplate.phpに貼り付けます
function Your_theme_preprocess_flag(&$vars) {
$class = ($vars['action'] == 'flag') ? '<i class="fa fa-heart-o"> </i>' : '<i class="fa fa-heart"></i>';
$vars['link_text'] = $class;
$title_wishlist = ($vars['action'] == 'flag') ? 'Add to wishlist' : 'Remove from wishlist';
$vars['link_title'] = $title_wishlist;
}
sites/all/modules/your_flag_module_name/flag_tpl_file
のtplファイルをsites/all/themes/your_theme_name/templates/paste tpl file
にコピーした後、選択に応じてtplデザインを変更できます。
フラグのステータスなど、このtplですべての変数を使用できます。
Bootstrap theme(glyphicons built-in))を使用すると、フラグのテキストフィールド(通常はフラグリンクのテキストを入力する)にアイコンを直接追加することもできます。テキストを書く代わりに次のように入力します。
<span class="glyphicon glyphicon-arrow-up" aria-hidden="true"></span>
私はこれが古い投稿であることを知っていますが、FontawesomeモジュールとFlagsモジュールを使用して簡単な解決策を追加したいと思いました。
フラグを作成するときに、「フラグリンクテキスト」と「フラグ解除リンクテキスト」の両方でフラグに入力するテキストを尋ねました
これらのボックスにfontawesmeコードを貼り付けると、ページにfontawesomeアイコンが表示されます。これはビューでも機能します。したがって、次のようなものを追加します
<i class="far fa-bookmark"></i>
それらの設定ボックスで、それは動作します。