本文整理匯總了PHP中Bitrix\Highloadblock\HighloadBlockTable::getUtmEntityClassName方法的典型用法代碼示例。如果您正苦於以下問題:PHP HighloadBlockTable::getUtmEntityClassName方法的具體用法?PHP HighloadBlockTable::getUtmEntityClassName怎麽用?PHP HighloadBlockTable::getUtmEntityClassName使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類Bitrix\Highloadblock\HighloadBlockTable
的用法示例。
在下文中一共展示了HighloadBlockTable::getUtmEntityClassName方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: onAfterUserTypeAdd
public static function onAfterUserTypeAdd($field)
{
global $APPLICATION, $USER_FIELD_MANAGER;
if (preg_match('/^HLBLOCK_(\\d+)$/', $field['ENTITY_ID'], $matches)) {
$field['USER_TYPE'] = $USER_FIELD_MANAGER->getUserType($field['USER_TYPE_ID']);
// get entity info
$hlblock_id = $matches[1];
$hlblock = HighloadBlockTable::getById($hlblock_id)->fetch();
if (empty($hlblock)) {
$APPLICATION->throwException(sprintf('Entity "HLBLOCK_%s" wasn\'t found.', $hlblock_id));
return false;
}
// get usertype info
$sql_column_type = $USER_FIELD_MANAGER->getUtsDBColumnType($field);
// create field in db
$connection = Application::getConnection();
$sqlHelper = $connection->getSqlHelper();
$connection->query(sprintf('ALTER TABLE %s ADD %s %s', $sqlHelper->quote($hlblock['TABLE_NAME']), $sqlHelper->quote($field['FIELD_NAME']), $sql_column_type));
if ($field['MULTIPLE'] == 'Y') {
// create table for this relation
$hlentity = static::compileEntity($hlblock);
$utmEntity = Entity\Base::getInstance(HighloadBlockTable::getUtmEntityClassName($hlentity, $field));
$utmEntity->createDbTable();
// add indexes
$connection->query(sprintf('CREATE INDEX %s ON %s (%s)', $sqlHelper->quote('IX_UTM_HL' . $hlblock['ID'] . '_' . $field['ID'] . '_ID'), $sqlHelper->quote($utmEntity->getDBTableName()), $sqlHelper->quote('ID')));
$connection->query(sprintf('CREATE INDEX %s ON %s (%s)', $sqlHelper->quote('IX_UTM_HL' . $hlblock['ID'] . '_' . $field['ID'] . '_VALUE'), $sqlHelper->quote($utmEntity->getDBTableName()), $sqlHelper->quote('VALUE')));
}
return array('PROVIDE_STORAGE' => false);
}
return true;
}