Я использую SuiteCRM 7.10.10 и хочу настроить ListView
Однако в свете этого вопроса я действительно хочу понять, как представления и компоненты взаимодействуют друг с другом, поэтомупока, просматривая документацию SuiteCRM, объяснения для представлений довольно редки, без конкретных примеров.
В этом примере я хочу настроить свой ListView для модуля «Компании» таким образом, чтобы описание (поле, которое уже существует) компании представляет только первые 10 символов.
Так что я думал о создании view.list.php в custom / modules / Companies / views, которыйвыглядит так:
<?php
require_once 'include/MVC/View/views/view.list.php';
if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');
class CustomCompaniesViewList extends ViewList
{
public function preDisplay(){
$this->bean->short_description = substr($this->bean->description,0,10);
parent::preDisplay();
}
public function display(){
parent::display();
}
}
?>
(пробовал то же самое только с "$ short_description")
в дополнение к этому я настроил listviewdefs.php в custom / modules / Companies / metadata / listviewdefs.php
...
'SHORT_DESCRIPTION' =>
array (
'type' => 'text',
'studio' => 'visible',
'label' => 'LBL_SHORT_DESCRIPTION',
'sortable' => false,
'width' => '10%',
'default' => true,
),
...
Кроме того, я добавил еще одно поле в компании Vardefs, создав view_short_description_c.php в custom / modules / Companies / Ext / Vardefs
$dictionary['Companies']['fields']['short_description'] = array(
'name' => 'short_descripton',
'vname' => 'LBL_SHORT_DESCRIPTION',
'type' => 'varchar',
'source' => 'non-db',
);
Я также попытался получить краткое описание, проходящее через логические перехватчики (вдохновленные в custom / modules / Companies:
class ListViewLogicHook{
//echo 'this is a test';
public function getListValue(&$bean, $event, $arguments){
if($this->bean->description){
echo "this is a test";
$bean->short_description = substr($bean->description, 0, 10);
}
echo 'this is a test';
}
}
и
в custom / modules / logic_hooks.php:
$hook_array['process_record'] = Array();
$hook_array['process_record'][] = Array(
1,
'Conditional formatting in a listview column',
'custom/modules/Companies/ListViewLogicHook.php',
'ListViewLogicHook',
'getListValue',
);
Я также знаю, что может быть возможность просто использовать smarty php в listviewdefs.php (custom / modules / Companies / metadata /) и вставьте ключ 'customCode', но при вводе
'DESCRIPTION' =>
array (
'type' => 'text',
'studio' => 'visible',
'label' => 'LBL_DESCRIPTION',
'sortable' => false,
'width' => '10%',
'default' => true,
'customCode' : '{$description|substr:0:5}',
),
(пробовал то же самое с "$ short_description") тоже ничего не происходит.
Так что кто-нибудь знает полезный ресурс для обученияо том, как разумно настроить редактирование, детализацию или просмотр списка в соответствии с настраиваемыми полями?