osclassでカスタムフィールドの検索フォームを設置する方法


追加したカスタムフィールドの検索フォームを好きな場所に追加する方法です。

検索画面のサイドバーでカテゴリーを指定すると、カスタムフィールドの検索フォームが表示されます。

これと同じフォームを任意のページで表示する方法です。

前提条件

  • カスタムフィールドを追加する際に"高度なオプション"で検索を許可するにチェックする
  • 識別名称を設定する
  • 下記のような検索フォームの中に追加する

<form action="<?php echo osc_base_url(true); ?>" method="get" class="nocsrf">
      <input type="hidden" name="page" value="search" />
      <input type="hidden" name="sOrder" value="<?php echo osc_esc_html(osc_search_order()); ?>" />
      <input type="hidden" name="sCompany" class="sCompany" id="sCompany" value="<?php echo Params::getParam('sCompany');?>" />
      <input type="hidden" name="iOrderType" value="<?php $allowedTypesForSorting = Search::getAllowedTypesForSorting(); echo osc_esc_html($allowedTypesForSorting[osc_search_order_type()]); ?>" />
<?php foreach(osc_search_user() as $userId) { ?>
      <input type="hidden" name="sUser[]" value="<?php echo osc_esc_html($userId); ?>" />
<?php } ?>

</form>

コード   

<?php

    $field = Field::newInstance()->findBySlug($slug);
    FieldForm::meta($field, true); ?>

</form>

$slugに識別名称を指定して上記のコードをテンプレートに記述するとフォームが表示されます。

 

注意事項

カスタムフィールドはカテゴリに依存しているので、カテゴリーを指定しないと検索されません。

sCategory=カテゴリID, …

formのパラメータにカテゴリーIDをコンマ区切りで追加しておく必要があります。 

Leave a comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です