%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/components/bitrix/main.interface.form/templates/mobile/ |
| Current File : //home/bitrix/www/bitrix/components/bitrix/main.interface.form/templates/mobile/template.php |
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();
/**
* Bitrix Framework
* @package bitrix
* @subpackage mobile
* @copyright 2001-2016 Bitrix
*
* Bitrix vars
*
* @var array $arParams
* @var array $arResult
* @var CBitrixComponentTemplate $this
* @var CBitrixComponent $component
* @var string $templateFolder
* @global CMain $APPLICATION
* @global CUser $USER
* @global CDataBase $DB
*
TABS unused yet
SHOW_FORM_TAG true|false
FORM_ID
THEME_GRID_ID
~DATA - obsolete
MAX_FILE_SIZE unused yet
RESTRICTED_MODE true|false
BUTTONS
DATE_TIME_FORMAT - for datetimePicker
DATE_FORMAT - for datetimePicker
TIME_FORMAT - for datetimePicker
*/
if (empty($arParams["DATE_TIME_FORMAT"]) || $arParams["DATE_TIME_FORMAT"] == "FULL")
$arParams["DATE_TIME_FORMAT"]= $DB->DateFormatToPHP(FORMAT_DATETIME);
$arParams["DATE_TIME_FORMAT"] = preg_replace('/[\/.,\s:][s]/', '', $arParams["DATE_TIME_FORMAT"]);
if (!$arParams["TIME_FORMAT"])
$arParams["TIME_FORMAT"] = preg_replace(array('/[dDjlFmMnYyo]/', '/^[\/.,\s]+/', '/[\/.,\s]+$/'), "", $arParams["DATE_TIME_FORMAT"]);
if (!$arParams["DATE_FORMAT"])
$arParams["DATE_FORMAT"] = trim(str_replace($arParams["TIME_FORMAT"], "", $arParams["DATE_TIME_FORMAT"]));
$uploadedFile = <<<HTML
<div class="mobile-grid-field-file-item mobile-grid-field-file-#class#" id="file-#id#">
<div class="mobile-grid-field-file-item-inner">
<del></del>
<span class="mobile-grid-field-file-preview">
<span class="files-preview-border"><span class="files-preview-alignment">
<img class="files-preview" src="#preview_url#" />
</span></span>
</span>
<span class="mobile-grid-field-file-icon icon icon-#ext#"></span>
<span class="mobile-grid-field-file-name">#name#</span>
<span class="mobile-grid-field-file-size">#size#</span>
<input type="hidden" name="#control_name#" value="#id#" />
</div>
</div>
HTML;
$m = GetMessage("MPF_ERROR1");
$thumb = <<<HTML
<div class="mobile-grid-field-file-item-inner">
<i class="mobile-grid-wait"></i>
<del></del>
<span class="mobile-grid-field-file-preview">
<span class="files-preview-border"><span class="files-preview-alignment">
#preview#
</span></span>
</span>
<span class="mobile-grid-field-file-icon icon icon-#ext#"></span>
<span class="mobile-grid-field-file-name">#name#</span>
<span class="mobile-grid-field-file-size">#size#</span>
<span class="mobile-grid-field-file-error-text">$m</span>
</div>
HTML;
$arParams["DATE_TIME_FORMAT"] = array(
"tomorrow" => "tomorrow, ".$arParams["TIME_FORMAT"],
"today" => "today, ".$arParams["TIME_FORMAT"],
"yesterday" => "yesterday, ".$arParams["TIME_FORMAT"],
"" => $arParams["DATE_TIME_FORMAT"]
);
$arParams["DATE_FORMAT"] = array(
"tomorrow" => "tomorrow",
"today" => "today",
"yesterday" => "yesterday",
"" => $arParams["DATE_FORMAT"]
);
CJSCore::GetCoreMessages();
global $APPLICATION;
$APPLICATION->SetPageProperty('BodyClass', 'mobile-grid-field-form');
$APPLICATION->SetAdditionalCSS($templateFolder."/style_add.css");
CUtil::InitJSCore(array('ajax', 'date', "mobile_fastclick", "uploader"));
$userUrl = str_replace("//", "/", "/".SITE_DIR."mobile/users/?user_id=#ID#");
$groupUrl = str_replace("//", "/", "/".SITE_DIR."mobile/log/?group_id=#ID#");
?>
<div class="mobile-grid mobile-grid-entity <?if ($arParams["RESTRICTED_MODE"]) echo "mobile-grid-restricted";?> ">
<?if($arParams["SHOW_FORM_TAG"]):?>
<form name="<?=$arParams["FORM_ID"]?>" id="<?=$arParams["FORM_ID"]?>" action="<?=POST_FORM_ACTION_URI?>" method="POST" enctype="multipart/form-data">
<?=bitrix_sessid_post();?>
<input type="hidden" id="<?=$arParams["FORM_ID"]?>_active_tab" name="<?=$arParams["FORM_ID"]?>_active_tab" value="<?=htmlspecialcharsbx($arResult["SELECTED_TAB"])?>">
<?endif;
?><div class="bx-tabs"><?
$i = 0;
$jsObjects = array();
foreach($arResult["TABS"] as $tab)
{
// $bSelected = ($tab["id"] == $arResult["SELECTED_TAB"]);
$bWasRequired = false;
$sections = array();
?>
<div id="tab_<?=$tab["id"]?>">
<div
id="inner_tab_<?=$tab["id"]?>"
class="bx-edit-tab-inner"<?if($tab["id"] <> $arResult["SELECTED_TAB"]) echo ' style="display:none;"'?>>
<? if($tab["icon"] <> ""): ?> <div class="bx-icon <?=htmlspecialcharsbx($tab["icon"])?>"></div> <? endif; ?>
<?/*?><div class="bx-form-title"><?=htmlspecialcharsbx($tab["title"])?></div><?*/ // Our design is not support this 13.11.2015 ?>
<div style="height: 100%;">
<div class="bx-edit-table <?=(isset($tab["class"]) ? $tab['class'] : '')?>" id="<?=$tab["id"]?>_edit_table"><?
/**
* File
array_unshift($tab["fields"], array(
"type" => "image", // image||file
"required" => true,
"id" => "data[FILE][]",
"maxCount" => 1,
"name" => "File Title",
"value" => array(
"1", "2", "3", "4" // File id from b_file or array of files
),
// "url" => "/url to upload file /", // not finished and not tested
));
*/
foreach($tab["fields"] as $field)
{
if(!is_array($field))
continue;
if ($arParams["RESTRICTED_MODE"] && empty($field["value"]) && $field["value"] !== "0")
continue;
$style = '';
if(isset($field["show"]))
{
if($field["show"] == "N")
{
$style = "display:none;";
}
}
if ($field["type"] == 'section')
{
if (!empty($field["id"]))
{
$expanded = ($field["expanded"] == "Y" || $field["expanded"] == true);
?><div class="mobile-grid-field" id="<?=$field["id"]?>" <?if(!empty($style)): ?> style="<?= $style ?>"<? endif ?>><?
if(array_key_exists("name", $field))
{
?><div class="mobile-grid-title"><?=htmlspecialcharsEx($field["name"])?></div><?
}
?><input id="checkbox_<?=$field["id"]?>" type="checkbox" <?=($expanded ? "checked" : "")?> value="section" /><?
?><label for="checkbox_<?=$field["id"]?>" class="mobile-grid-field-switcher"><?=htmlspecialcharsbx($field["value"])?></label><?
?><div class="mobile-grid-body" id="section_<?=$field["id"]?>_body"<?if(!empty($style)): ?> style="<?= $style ?>"<? endif ?>><?
}
else
{
?><div class="mobile-grid-field<?if(array_key_exists("class", $field)): ?> <?= htmlspecialcharsbx($field['class']) ?><? endif ?>"<?
if(!empty($style)): ?> style="<?= $style ?>"<? endif ?>><?
?><span class="mobile-grid-field-head"><?= htmlspecialcharsbx($field["name"]) ?></span><?
}
$sections[] = $field["id"];
}
else
{
if (!empty($sections))
{
while (($section = end($sections)) && $section)
{
if ($field["section"] == $section)
{
break;
}
else
{
?></div>
</div><?
array_pop($sections);
}
}
}
$val = (isset($field["value"]) ? $field["value"] : $arParams["~DATA"][$field["id"]]);
//default attributes
if(!is_array($field["params"]))
$field["params"] = array();
if($field["type"] == '' || $field["type"] == 'text')
{
if($field["params"]["size"] == '')
$field["params"]["size"] = "30";
}
elseif($field["type"] == 'textarea')
{
if($field["params"]["cols"] == '')
$field["params"]["cols"] = "40";
if($field["params"]["rows"] == '')
$field["params"]["rows"] = "3";
}
elseif($field["type"] == 'date')
{
if($field["params"]["size"] == '')
$field["params"]["size"] = "10";
}
$params = '';
if(is_array($field["params"]) && $field["type"] <> 'file')
{
foreach($field["params"] as $p => $v)
$params .= ' ' . $p . '="' . $v . '"';
}
$field["~id"] = "bx_".preg_replace("/[^a-z0-9_-]/i", "_", $field["id"]);
$bWasRequired = ($bWasRequired ? : $field["required"]);
$className = "";
$html = "";
switch($field["type"])
{
case 'custom':
case 'label':
//html allowed
$className = $field["type"];
$html = $val;
break;
case 'label':
$className = "label";
$html = $val;
break;
case 'text':
$placeholder = htmlspecialcharsbx($field["placeholder"] ?: $field["name"]);
$val = htmlspecialcharsbx($val);
$className = "text";
if ($arParams["RESTRICTED_MODE"])
{
$html = "<input type=\"hidden\" data-bx-type=\"text\" placeholder=\"{$placeholder}\" name=\"{$field["id"]}\" id=\"{$field["~id"]}\" $params value=\"$val\" />".
"<span id=\"{$field["~id"]}_target\" class=\"text\">".($val==""?"<span class=\"placeholder\">".$placeholder."</span>" : $val)."</span>";
}
else
{
$html = "<input class=\"mobile-grid-data-text\" type=\"text\" placeholder=\"{$placeholder}\" name=\"{$field["id"]}\" id=\"{$field["~id"]}\" $params value=\"$val\" />";
}
$jsObjects[] = $field["~id"];
break;
case 'number':
$className = "number";
$valFrom = $field["item"]["from"];
$valTo = $field["item"]["to"];
$html = "<input type=\"text\" class=\"mobile-grid-data-text\" name=\"".$field["id"]."_from\" id=\"{$field["~id"]}\" value=\"".htmlspecialcharsbx($valFrom)."\" style=\"border-bottom: 1px solid #dee0e3;\" placeholder=\"".GetMessage("interface_form_from")."\">
<input type=\"text\" class=\"mobile-grid-data-text\" name=\"".$field["id"]."_to\" value=\"".htmlspecialcharsbx($valTo)."\" placeholder=\"".GetMessage("interface_form_to")."\">";
break;
case 'textarea':
$placeholder = htmlspecialcharsbx($field["placeholder"] ?: $field["name"]);
$val = htmlspecialcharsbx($val);
$className = "textarea";
if ($arParams["RESTRICTED_MODE"])
{
$html = "<input type='hidden' data-bx-type='textarea' placeholder=\"{$placeholder}\" name=\"{$field["id"]}\" id=\"{$field["~id"]}\" $params value=\"$val\" />".
"<span id=\"{$field["~id"]}_target\">".($val==""?"<span class='placeholder'>".$placeholder."</span>" : $val)."</span>";
}
else
{
$html = "<textarea class=\"mobile-grid-data-textarea\" name=\"{$field["id"]}\" id=\"{$field["~id"]}\" placeholder=\"$placeholder\" $params>$val</textarea>";
}
$jsObjects[] = $field["~id"];
break;
case 'select-group':
case 'select-user':
$url = ($field["type"] == 'select-user' ? $userUrl : $groupUrl);
$className = "user";
$jsObjects[] = $field["~id"];
ob_start();
$html = '';
if (is_array($field["item"]))
{
$item = array_change_key_case($field["item"], CASE_LOWER);
$html .= "<option value=\"{$item["id"]}\" selected>{$item["id"]}</option>";
?><div class="mobile-grid-field-select-user-item"><?
if ($field["canDrop"] !== false):
?><del id="<?=$field["~id"]?>_del_<?=$item["id"]?>"></del><?
endif;
?>
<div class="avatar"<?if(!empty($item["avatar"])):?> style="background-image:url('<?=htmlspecialcharsbx($item["avatar"])?>')"<?endif;?>></div>
<span onclick="BXMobileApp.PageManager.loadPageBlank({url: '<?=str_replace("#ID#", $item["id"], $url)?>',bx24ModernStyle : true});"><?=htmlspecialcharsbx($item["name"])?></span>
</div><?
}
$users = ob_get_clean();
$html = "<select class=\"mobile-grid-data-select\" name=\"{$field["id"]}\" data-bx-type=\"{$field["type"]}\" bx-can-drop=\"".($field["canDrop"] === false ? "false" : "")."\" id=\"{$field["~id"]}\"{$params}>".$html."</select>".
"<div id=\"{$field["~id"]}_target\" class=\"mobile-grid-field-select-user-container\">".$users."</div>".
"<a class=\"mobile-grid-button select-user add\" id=\"{$field["~id"]}_select\" href=\"#\">".($users == ''? GetMessage("interface_form_select") : GetMessage("interface_form_change"))."</a>";
break;
case 'group':
case 'user':
$url = ($field["type"] == 'user' ? $userUrl : $groupUrl);
$className = "user";
ob_start();
if (is_array($field["item"]))
{
$item = array_change_key_case($field["item"], CASE_LOWER);
?><div class="mobile-grid-field-select-user-item">
<div class="avatar"<?if(!empty($item["avatar"])):?> style="background-image:url('<?=htmlspecialcharsbx($item["avatar"])?>')"<?endif;?>></div>
<span onclick="BXMobileApp.PageManager.loadPageBlank({url: '<?=str_replace("#ID#", $item["id"], $url)?>',bx24ModernStyle : true});"><?=htmlspecialcharsbx($item["name"])?></span>
</div><?
}
$users = ob_get_clean();
$html = "<div class=\"mobile-grid-field-select-user-container\">".$users."</div>";
break;
case 'select-groups':
case 'select-users':
$field["type"] = ($field["type"] == "select-users" ? "select-user" : "select-group");
$url = ($field["type"] == 'select-user' ? $userUrl : $groupUrl);
$className = "user";
$jsObjects[] = $field["~id"];
$html = '';
$u = 0;
ob_start();
if ($field["items"])
{
$val = is_array($val) ? $val : array($val);
foreach($field["items"] as $item)
{
$item = array_change_key_case($item, CASE_LOWER);
if (!in_array($item["id"], $val))
continue;
$u++;
$html .= "<option value=\"{$item["id"]}\" selected>{$item["id"]}</option>";
?><div class="mobile-grid-field-select-user-item"><?
if ($field["canDrop"] !== false):
?><del id="<?=$field["~id"]?>_del_<?=$item["id"]?>"></del><?
elseif (is_array($field["menu"])):
?><i class="mobile-grid-menu" id="<?=$field["~id"]?>_menu_<?=$item["id"]?>"></i><?
endif;
?>
<div class="avatar"<?if (!empty($item["avatar"])): ?> style="background-image:url('<?=htmlspecialcharsbx($item["avatar"])?>')"<? endif; ?>></div>
<span onclick="BXMobileApp.PageManager.loadPageBlank({url: '<?=str_replace("#ID#", $item["id"], $url)?>',bx24ModernStyle:true});"><?=htmlspecialcharsbx($item["name"])?></span>
</div><?
}
}
$users = ob_get_clean();
$html = "<select class=\"mobile-grid-data-select\" name=\"{$field["id"]}\" data-bx-type=\"{$field["type"]}\" bx-can-drop=\"".($field["canDrop"] === false ? "false" : "")."\" id=\"{$field["~id"]}\" multiple {$params}>".$html."</select>".
"<div class=\"mobile-grid-field-select-user-wrap\">".
"<input value=\"$u\" type=\"checkbox\" id=\"expand_{$field["~id"]}\" />".
"<div class=\"mobile-grid-field-select-user-container\" id=\"{$field["~id"]}_target\">".$users."</div>".
"<label class=\"mobile-grid-field-select-user-more\" for=\"expand_{$field["~id"]}\">".
"<span class=\"unchecked\">".GetMessage("interface_form_show_more")." (<span id=\"count_{$field["~id"]}\">".($u-3)."</span>)</span>".
"<span class=\"checked\">".GetMessage("interface_form_hide")."</span>".
"</label>".
"</div>".
"<a class=\"mobile-grid-button select-user add\" id=\"{$field["~id"]}_select\" href=\"#\">".GetMessage("interface_form_add")."</a>";
break;
case 'groups':
case 'users':
$field["type"] = ($field["type"] == "users" ? "user" : "group");
$url = ($field["type"] == 'user' ? $userUrl : $groupUrl);
$className = "user";
$u = 0;
$i++;
ob_start();
if ($field["items"])
{
foreach($field["items"] as $item)
{
$u++;
$item = array_change_key_case($item, CASE_LOWER);
?><div class="mobile-grid-field-select-user-item">
<div class="avatar"<?if (!empty($item["avatar"])): ?> style="background-image:url('<?=htmlspecialcharsbx($item["avatar"])?>')"<? endif; ?>></div>
<span onclick="BXMobileApp.PageManager.loadPageBlank({url: '<?=str_replace("#ID#", $item["id"], $url)?>',bx24ModernStyle:true});"><?=htmlspecialcharsbx($item["name"])?></span>
</div><?
}
}
$users = ob_get_clean();
$html =
"<div class=\"mobile-grid-field-select-user-wrap\">".
"<input value=\"$u\" type=\"checkbox\" id=\"expand_$i\" />".
"<div class=\"mobile-grid-field-select-user-container\">".$users."</div>".
"<label class=\"mobile-grid-field-select-user-more\" for=\"expand_$i\">".
"<span class=\"unchecked\">".GetMessage("interface_form_show_more")." (<span>".($u-3)."</span>)</span>".
"<span class=\"checked\">".GetMessage("interface_form_hide")."</span>".
"</label>".
"</div>";
break;
case 'list':
case 'select':
$className = "select";
if (is_array($field["items"]))
{
if(!is_array($val))
$val = array($val);
$items = array();
$selected = array_intersect(array_keys($field["items"]), $val);
if (empty($selected) && !(is_array($field["params"]) && array_key_exists("multiple", $field["params"])))
{
$selected = array(reset(array_keys($field["items"])));
}
$html = "<select class=\"mobile-grid-data-select\" name=\"{$field["id"]}\" id=\"{$field["~id"]}\"{$params}>";
foreach($field["items"] as $k => $v):
$items[$k] = $v;
$s = (in_array($k, $selected) ? " selected" : "");
$k = htmlspecialcharsbx($k);
$v = htmlspecialcharsbx($v);
$html .= "<option value=\"{$k}\" {$s}>$v</option>";
endforeach;
$html .= "</select>";
if (is_array($field["params"]) && array_key_exists("multiple", $field["params"]))
{
$html .= "<span id=\"{$field["~id"]}_target\">";
foreach ($selected as $k)
{
$v = htmlspecialcharsbx($items[$k]);
$html .= "<a href=\"javascript:void();\">$v</a>"; // TODO we need to decide how should it looks
}
$html .= "</span>".
"<a class=\"mobile-grid-button select-change\" href=\"#\" id=\"{$field["~id"]}_select\">".GetMessage("interface_form_change")."</a>";
}
else if (empty($selected))
{
continue;
}
else
{
$k = reset($selected);
$v = htmlspecialcharsbx($items[$k]);
$html .= "<a href='#' id=\"{$field["~id"]}_select\">$v</a>";
}
$jsObjects[] = $field["~id"];
}
break;
case 'checkbox':
$className = "checkbox";
$items = (is_array($field["items"]) ? $field["items"] : array("Y" => "Y"));
$val = (is_array($val) ? $val : array($val));
foreach($items as $k => $v)
{
$i++;
$k = htmlspecialcharsbx($k);
$v = htmlspecialcharsbx($v);
$checked = (in_array($k, $val) ? ' checked' : '');
$html .= "<label for=\"{$field["~id"]}{$i}\">".
"<input type=\"checkbox\" id=\"{$field["~id"]}{$i}\" name=\"{$field["id"]}\" value=\"{$k}\" {$checked}{$params} />".
"<span>{$v}</span>".
"</label>";
$jsObjects[] = $field["~id"].$i;
}
break;
case 'radio':
$className = "radio";
$items = (is_array($field["items"]) ? $field["items"] : array("Y" => "Y"));
$val = (is_array($val) ? $val : array($val));
foreach($items as $k => $v)
{
$i++;
$k = htmlspecialcharsbx($k);
$v = htmlspecialcharsbx($v);
$checked = (in_array($k, $val) ? ' checked' : '');
$html .= "<label for=\"{$field["~id"]}{$i}\">".
"<input type=\"radio\" id=\"{$field["~id"]}{$i}\" name=\"{$field["id"]}\" value=\"{$k}\" {$checked}{$params} />".
"<span>{$v}</span>".
"</label>";
$jsObjects[] = $field["~id"].$i;
}
break;
case 'diskview':
case 'disk_fileview':
case 'crmview':
$field["type"] = ($field["type"] == "diskview" ? "disk_fileview" : $field["type"]);
$field["type"] = substr($field["type"], 0, -4);
if ($field["type"] == "crm" && !\Bitrix\Main\ModuleManager::isModuleInstalled("crm") ||
$field["type"] == "disk_file" && !\Bitrix\Main\ModuleManager::isModuleInstalled("disk"))
continue;
$val = is_array($val) ? $val : array();
$className = ($field["type"] == "disk_file" ? "file" : $field["type"]);
ob_start();
$APPLICATION->IncludeComponent("bitrix:system.field.view", $field["type"],
array(
"arUserField" => $val,
"MOBILE" => "Y",
"CAN_EDIT" => false,
"formId" => $arParams["FORM_ID"]
),
$component,
array("HIDE_ICONS" => "Y")
);
$html = ob_get_clean();
if ($html == '')
continue;
break;
case 'crm':
case 'disk_file':
case 'disk':
$field["type"] = ($field["type"] == "disk" ? "disk_file" : $field["type"]);
if ($field["type"] == "crm" && !\Bitrix\Main\ModuleManager::isModuleInstalled("crm") ||
$field["type"] == "disk_file" && !\Bitrix\Main\ModuleManager::isModuleInstalled("disk"))
continue;
$val = is_array($val) ? $val : array();
$className = ($field["type"] == "disk_file" ? "file" : $field["type"]);
ob_start();
$APPLICATION->IncludeComponent("bitrix:system.field.edit", $field["type"],
array(
"arUserField" => $val,
"MOBILE" => "Y",
"CAN_EDIT" => true,
"formId" => $arParams["FORM_ID"]
),
$component,
array("HIDE_ICONS" => "Y")
);
$html = ob_get_clean();
if ($html == '')
continue;
$html .= '<input type="hidden" id="'.$field["~id"].'" value="'.$val["FIELD_NAME"].'" data-bx-type="'.$field["type"].'" />';
$jsObjects[] = $field["~id"];
break;
case 'file':
case 'image':
$className = "file";
$val = (is_array($val) ? $val : array($val));
$uploadedFile = preg_replace("/[\n\t]+/", "", $uploadedFile);
ob_start();
?><input type="hidden" <?
?>name="<?=$field["id"]?>" <?
?>value="0" <?
?>id="<?=$field["~id"]?>" <?
?>data-bx-type="<?=$field["type"]?>" <?
?>data-bx-extension="<?=$field["ext"]?>" <?
?>data-bx-url="<?=$field["url"]?>" <?
?>data-bx-name="<?=$field["id"]?>" <?
?>data-bx-max="<?=$field["maxCount"]?>" <?
?> /><?
?><div id="file-placeholder-<?=$field["~id"]?>"><?
foreach ($val as $f)
{
$f = (is_array($f) ? $f : CFile::GetFileArray($f));
if (is_array($f))
{
?><?=str_replace(
array(
"#id#",
"#name#",
"#size#",
"#preview_url#",
"#class#",
"#control_name#"
),
array(
$f["ID"],
$f["FILE_NAME"],
CFile::FormatSize($f["FILE_SIZE"]),
(empty($f["SRC"]) ? "javascript:void(0);" : $f["SRC"]),
(empty($f["SRC"]) ? "file" : "image"),
$field["id"]
),
$uploadedFile
)?><?
}
}
?></div>
<div class="mobile-grid-button file" id="file-eventnode-<?=$field["~id"]?>"><?
?><?=($field["maxCount"] != 1 ? GetMessage("interface_form_add") : GetMessage("interface_form_change"))?><?
?><input class="mobile-grid-button-file" type="file" id="<?=$field["~id"]?>_file" size="1" <?if ($field["maxCount"] != 1){?>multiple="multiple" <?}?>/></div>
<?
$html = ob_get_clean();
$jsObjects[] = $field["~id"];
break;
case 'datetime':
case 'date':
case 'time':
$className = "date";
$placeholder = htmlspecialcharsbx($field["placeholder"] ?: $field["name"]);
$html = "<input type='hidden' data-bx-type=\"{$field["type"]}\" id=\"{$field["~id"]}\" name=\"{$field["id"]}\" {$params} value=\"{$val}\" />";
$format = ($field["type"] == "datetime" ? $arParams["DATE_TIME_FORMAT"] : ($field["type"] == "date" ? $arParams["DATE_FORMAT"] : $arParams["TIME_FORMAT"]));
if ($val)
$val = FormatDate($format, MakeTimeStamp($val));
$html .= "<div placeholder=\"{$placeholder}\" id=\"{$field["~id"]}_container\">".($val? $val : $placeholder)."</div>";
if ($field["canDrop"] !== false)
$html .= '<del id="'.$field["~id"].'_del" '.($val ? '' :'style="display:none"').'></del>';
$jsObjects[] = $field["~id"];
break;
default:
$className = "text";
$html = htmlspecialcharsbx($val);
break;
}
if ($html === '')
continue;
?><div class="mobile-grid-section<?=(!empty($sections) ? "-child" : "")?> <?= htmlspecialcharsbx($field['class']) ?>"<?if(!empty($style)): ?> style="<?= $style ?>"<? endif;
if(!empty($field['fieldId'])): ?> id="<?= $field['fieldId'] ?>"<? endif ?>><?
if(array_key_exists("name", $field))
{
?><div class="mobile-grid-title <?= ($field["required"] ? " mobile-grid-title-required" : "") ?>" <?
if($field["title"] <> '') echo ' title="' . htmlspecialcharsEx($field["title"]) . '"'?>><?
?><?if(strlen($field["name"])):?><?=htmlspecialcharsEx($field["name"])?><? endif ?>
</div><?
}
?><div class="mobile-grid-block mobile-grid-data-<?=$className?>-container"><?=preg_replace("/[\t\n]+/i", "", $html)?></div><?
?></div><?
}
}
?>
</div>
</div>
</div>
</div>
<?
}
?></div><?
if (isset($arParams["BUTTONS"]) && is_string($arParams["BUTTONS"]) && strtolower($arParams["BUTTONS"]) == "app")
{
}
else if (isset($arParams["BUTTONS"]))
{
?>
<div class="mobile-grid-button-panel" id="buttons_<?=$arParams["FORM_ID"]?>">
<?if($arParams["~BUTTONS"]["standard_buttons"] !== false):?>
<a href="#" id="submit_<?=$arParams["FORM_ID"]?>"><?=GetMessage("interface_form_save")?></a>
<a href="#" id="cancel_<?=$arParams["FORM_ID"]?>"><?=GetMessage("interface_form_cancel")?></a>
<?endif?>
<?=$arParams["~BUTTONS"]["custom_html"]?>
</div>
<?
}
if($arParams["SHOW_FORM_TAG"]):?>
</form>
<?endif;?>
<script>
BX.message({
interface_form_select : '<?=GetMessageJS("interface_form_select")?>',
interface_form_change : '<?=GetMessageJS("interface_form_change")?>',
interface_form_save : '<?=GetMessageJS("interface_form_save")?>',
interface_form_cancel : '<?=GetMessageJS("interface_form_cancel")?>',
interface_form_user_url : '<?=CUtil::JSEscape($userUrl)?>',
interface_form_group_url : '<?=CUtil::JSEscape($groupUrl)?>',
MPF_CANCEL : '<?=GetMessageJS("MPF_CANCEL")?>',
MPF_PHOTO_CAMERA : '<?=GetMessageJS("MPF_PHOTO_CAMERA")?>',
MPF_PHOTO_GALLERY : '<?=GetMessageJS("MPF_PHOTO_GALLERY")?>',
FILE_NODE : '<?=CUtil::JSEscape($thumb)?>'
});
BX.ready(function() {
new BX.Mobile.Grid.Form(<?=CUtil::PhpToJSObject(array(
"gridId" => $arParams["THEME_GRID_ID"],
"formId" => $arParams["FORM_ID"],
"restrictedMode" => $arParams["RESTRICTED_MODE"],
"customElements" => $jsObjects,
"buttons" => (isset($arParams["BUTTONS"]) && is_string($arParams["BUTTONS"]) ? strtolower($arParams["BUTTONS"]) : "none"),
"format" => (isset($arParams["~DATE_TIME_FORMAT"]) ? array("datetime" => $arParams["~DATE_TIME_FORMAT"]) : array()) +
(isset($arParams["~DATE_FORMAT"]) ? array("date" => $arParams["~DATE_FORMAT"]) : array()) +
(isset($arParams["~TIME_FORMAT"]) ? array("time" => $arParams["~TIME_FORMAT"]) : array())
))?>);
});
</script>
</div>