%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/components/bitrix/landing.site_edit/templates/.default/ |
| Current File : //home/bitrix/www/bitrix/components/bitrix/landing.site_edit/templates/.default/template_class.php |
<?php
namespace Bitrix\Landing\Components\LandingEdit;
class Template
{
/**
* Result of template.
* @var array
*/
private $result = array();
/**
* Constructor.
* @param array $result Result of template.
*/
public function __construct($result)
{
$this->result = $result;
}
/**
* Display simple hook.
* @param string $code Code of hook.
* @return void
*/
public function showSimple($code)
{
$code = strtoupper($code);
$hooks = isset($this->result['HOOKS'])
? $this->result['HOOKS']
: array();
if (isset($hooks[$code]))
{
$pageFields = $hooks[$code]->getPageFields();
?><div class="ui-checkbox-hidden-input"><?
// use-checkbox
if (isset($pageFields[$code . '_USE']))
{
$pageFields[$code . '_USE']->viewForm(array(
'class' => 'ui-checkbox',
'id' => 'checkbox-' . strtolower($code) . '-use',
'name_format' => 'fields[ADDITIONAL_FIELDS][#field_code#]'
));
}
?><div class="ui-checkbox-hidden-input-inner"><?
// use-label
if (isset($pageFields[$code . '_USE']))
{
?>
<label class="ui-checkbox-label" for="<?= 'checkbox-' . strtolower($code) . '-use';?>">
<?= $pageFields[$code . '_USE']->getLabel();?>
</label>
<?
unset($pageFields[$code . '_USE']);
}
// display field
foreach ($pageFields as $key => $field)
{
$type = $field->getType();
echo '<div class="ui-checkbox-hidden-input-metrika">';
echo $field->viewForm(array(
'id' => 'field-' . strtolower($key) . '-use',
'class' => ($type == 'checkbox') ? 'ui-checkbox' : 'ui-input',
'name_format' => 'fields[ADDITIONAL_FIELDS][#field_code#]'
));
if ($help = $field->getHelpValue())
{
echo $help;
}
if ($type == 'checkbox')
{
echo '<label for="field-' . strtolower($key) . '-use">' .
$field->getLabel() .
'</label>';
}
echo '</div>';
}
?></div><?
?></div><?
}
}
/**
* Display picture.
* @param \Bitrix\Landing\Field $field Picture field for display.
* @param string $imgPath Path to img by default.
* @param array $params Some params.
* @return void
*/
public function showPictureJS(\Bitrix\Landing\Field $field, $imgPath = '', $params = array())
{
if (!isset($params['imgId']))
{
return;
}
$imgId = $field->getValue();
$code = strtolower($field->getCode());
$code = preg_replace('/[^a-z]+/', '', $code);
?>
<script type="text/javascript">
BX.ready(function()
{
var imageFieldWrapper = BX('<?= $params['imgId']?>');
var imageFieldInput = BX('landing-form-<?= $code?>-input');
if (imageFieldWrapper)
{
var imageField = new BX.Landing.UI.Field.Image({
id: 'page_settings_<?= $code?>',
disableLink: true,
disableAltField: true
<?if ($imgId):?>
,content: {
src: '<?= \CUtil::jsEscape(str_replace(' ', '%20', \htmlspecialcharsbx((int) $imgId > 0 ? \CFile::getPath($imgId) : $imgId)));?>',
id : <?= $imgId ? intval($imgId) : -1?>,
alt : ''
}
<?else:?>
,content: {
src: '<?= \CUtil::jsEscape(str_replace(' ', '%20', \htmlspecialcharsbx($imgPath)));?>',
id : -1,
alt : ''
}
<?endif;?>
<?if (isset($params['width']) && isset($params['height'])):?>
,dimensions: {
width: <?= (int)$params['width']?>,
height: <?= (int)$params['height']?>
}
<?endif;?>
<?if (isset($params['uploadParams']) && !empty($params['uploadParams'])):?>
,uploadParams: <?= \CUtil::phpToJsObject($params['uploadParams']);?>
<?endif;?>
});
if (imageFieldWrapper)
{
imageFieldWrapper.appendChild(imageField.layout);
if (imageFieldInput)
{
imageField.layout.addEventListener('input', function()
{
var img = imageField.getValue();
imageFieldInput.value = parseInt(img.id) > 0 ? img.id : '';
});
}
<?if (isset($params['imgEditId'])):?>
BX.bind(BX('<?= $params['imgEditId']?>'), 'click', function (event)
{
imageField.onUploadClick(event);
});
<?endif;?>
}
}
});
</script>
<?
$field->viewForm(array(
'id' => 'landing-form-' . $code . '-input',
'name_format' => 'fields[ADDITIONAL_FIELDS][#field_code#]'
));
}
/**
* Get css-class by field type.
* @param $type
* @return string
*/
public function getCssByType($type)
{
$css = '';
switch ($type)
{
case 'select':
{
$css = 'ui-select';
break;
}
case 'text':
{
$css = 'ui-input';
break;
}
case 'checkbox':
{
$css = 'ui-checkbox';
break;
}
}
return $css;
}
}