読者です 読者をやめる 読者になる 読者になる

Snapshot原田

備忘録

f-Revo カスタマイズ①

新しいフィルターを登録したい

f:id:machikoikenouchi:20170414103749j:plain

このセレクトボタンの中身は下記です。

[layouts]-[vlayouts]-[Vtiger]-ListViewHeader.tpl

{foreach key=GROUP_LABEL item=GROUP_CUSTOM_VIEWS from=$CUSTOM_VIEWS}
<optgroup label=' {if $GROUP_LABEL eq 'Mine'} &nbsp; {else if} {vtranslate($GROUP_LABEL)} {/if}' >
    {foreach item="CUSTOM_VIEW" from=$GROUP_CUSTOM_VIEWS}[f:id:machikoikenouchi:20170414171455j:plain]
    <option  
        data-editurl="{$CUSTOM_VIEW->getEditUrl()}"
        data-deleteurl="{$CUSTOM_VIEW->getDeleteUrl()}"
        data-approveurl="{$CUSTOM_VIEW->getApproveUrl()}"
        data-denyurl="{$CUSTOM_VIEW->getDenyUrl()}"
        data-editable="{$CUSTOM_VIEW->isEditable()}"
        data-deletable="{$CUSTOM_VIEW->isDeletable()}"
        data-pending="{$CUSTOM_VIEW->isPending()}"
        data-public="{$CUSTOM_VIEW->isPublic() && $CURRENT_USER_MODEL->isAdminUser()}"
        id="filterOptionId_{$CUSTOM_VIEW->get('cvid')}" value="{$CUSTOM_VIEW->get('cvid')}"
        data-id="{$CUSTOM_VIEW->get('cvid')}"
        {if $VIEWID neq '' && $VIEWID neq '0'  && $VIEWID == $CUSTOM_VIEW->getId()}
        selected="selected"
        {elseif ($VIEWID == '' or $VIEWID == '0')&& $CUSTOM_VIEW->isDefault() eq 'true'}
        selected="selected" {/if}
        class="filterOptionId_{$CUSTOM_VIEW->get('cvid')}" >
     {*optionの中に仕込まれているもので中のフィルター名になっている気がする*}

     {if $CUSTOM_VIEW->get('viewname') eq 'All'}{vtranslate($CUSTOM_VIEW->get('viewname'), $MODULE)}
     {vtranslate($MODULE, $MODULE)}{else}{vtranslate($CUSTOM_VIEW->get('viewname'), $MODULE)}{/if}
     {if $GROUP_LABEL neq 'Mine'} [ {$CUSTOM_VIEW->getOwnerName()} ]  {/if}
    </option>
{/foreach}
</optgroup>
{/foreach}

ということで、Smarty(というHTMLテンプレートエンジン)が出てきます。
記法は以下に詳しく書いてあります。

http://www.smarty.net/

  • foreachとか、elseififはわかりました。
  • vtranslate()は見たことないです。公式にも乗ってないのでどこかで 定義されていそうです。

まずはこのやたら使われている$CUSTOM_VIEW

f:id:machikoikenouchi:20170414171617p:plain

  • Smarty特有のグローバル関数か?と思って検索してもすぐにはヒットしませんでしたので、たぶんこれもどこかで定義済みかと思って 調べました。CUSTOM_VIEWSじゃだめだったのでCUSTOMVIEWでいきました。
<?php$viewer->assign('CUSTOM_VIEWS', CustomView_Record_Model::getAllByGroup($moduleName));?>
  • assign(第一引数、第二引数) で括弧内のもの同士を結びつけ、代入することができます。 なのでこの場合、

  • Custom_View_Record_Model

広告を非表示にする