Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

iblock.element.add.form

00 голосов
7
добавил в iblock.element.add.form следущий код
Код
<tr><?
$arSelect = Array("ID", "NAME"); 
 $usid = $USER->GetID();
$arFilter = Array("IBLOCK_ID"=>8, "ACTIVE_DATE"=>"Y", "ACTIVE"=>"Y", "CREATED_BY"=>$usid); 
$resk = CIBlockElement::GetList(Array(), $arFilter, false, false, false, false, $arSelect); 

if (intval($resk->SelectedRowsCount())>0){
echo '<td>Автор<span class="starrequired">*</span>:</td><td><select name="PROPERTY[30][0]" size="1">'; 
while($arGroup=$resk->GetNext()){ 
    echo '<option value="'.$arGroup["ID"].'">'.$arGroup["NAME"].'</option>';

}
echo '</select></td>'; 

}
else
{
echo "<td colspan='2'><div class='errortext'><b>Перед добавлением товара заполните <a href='/personal/profile/my/'>карточку компании</a>, внесите туда все необходимые данные по вашей компании. После того, как карточка компании будет активирована вы сможете добавлять товары в каталог.</b></div><td>";
}
?></tr>


как сохранить данный парамер $arGroup["ID"] который передает айди элемента в свойство?????
[/CODE]
спросил 14 Июль, 13 от shaiba (300 баллов)

7 Ответы

00 голосов
так все выводися норамально а воткак сохранить данное значение ума не приложу вот весь код компонента
iblock.element.add.form
Код
<?
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();
?>
<?
//echo "<pre>Template arParams: "; print_r($arParams); echo "</pre>";
//echo "<pre>Template arResult: "; print_r($arResult); echo "</pre>";
//exit();
?>

<?if (count($arResult["ERRORS"])):?>
   <?=ShowError(implode("<br />", $arResult["ERRORS"]))?>
<?endif?>
<?if (strlen($arResult["MESSAGE"]) > 0):?>
   <?=ShowNote($arResult["MESSAGE"])?>
<?endif?>
<form name="iblock_add" action="<?=POST_FORM_ACTION_URI?>" method="post" enctype="multipart/form-data">

   <?=bitrix_sessid_post()?>

   <?if ($arParams["MAX_FILE_SIZE"] > 0):?><input type="hidden" name="MAX_FILE_SIZE" value="<?=$arParams["MAX_FILE_SIZE"]?>" /><?endif?>

   <table class="data-table">
      <thead>
         <tr>
            <td colspan="2">&nbsp;</td>
         </tr>
      </thead>
      <?if (is_array($arResult["PROPERTY_LIST"]) && count($arResult["PROPERTY_LIST"] > 0)):?>
      <tbody>
         <?foreach ($arResult["PROPERTY_LIST"] as $propertyID):?>
            <tr>
               <td><?if (intval($propertyID) > 0):?><?=$arResult["PROPERTY_LIST_FULL"][$propertyID]["NAME"]?><?else:?><?=!empty($arParams["CUSTOM_TITLE_".$propertyID]) ? $arParams["CUSTOM_TITLE_".$propertyID] : GetMessage("IBLOCK_FIELD_".$propertyID)?><?endif?><?if(in_array($propertyID, $arResult["PROPERTY_REQUIRED"])):?><span class="starrequired">*</span><?endif?></td>
               <td>
                  <?
                  //echo "<pre>"; print_r($arResult["PROPERTY_LIST_FULL"]); echo "</pre>";
                  if (intval($propertyID) > 0)
                  {
                     if (
                        $arResult["PROPERTY_LIST_FULL"][$propertyID]["PROPERTY_TYPE"] == "T"
                        &&
                        $arResult["PROPERTY_LIST_FULL"][$propertyID]["ROW_COUNT"] == "1"
                     )
                        $arResult["PROPERTY_LIST_FULL"][$propertyID]["PROPERTY_TYPE"] = "S";
                     elseif (
                        (
                           $arResult["PROPERTY_LIST_FULL"][$propertyID]["PROPERTY_TYPE"] == "S"
                           ||
                           $arResult["PROPERTY_LIST_FULL"][$propertyID]["PROPERTY_TYPE"] == "N"
                        )
                        &&
                        $arResult["PROPERTY_LIST_FULL"][$propertyID]["ROW_COUNT"] > "1"
                     )
                        $arResult["PROPERTY_LIST_FULL"][$propertyID]["PROPERTY_TYPE"] = "T";
                  }
                  elseif (($propertyID == "TAGS") && CModule::IncludeModule('search'))
                     $arResult["PROPERTY_LIST_FULL"][$propertyID]["PROPERTY_TYPE"] = "TAGS";

                  if ($arResult["PROPERTY_LIST_FULL"][$propertyID]["MULTIPLE"] == "Y")
                  {
                     $inputNum = ($arParams["ID"] > 0 || count($arResult["ERRO
ответил 14 Июль, 13 от shaiba (300 баллов)
00 голосов
решил этот вопрос? он еще актуален, если решил то прошу написать что было. сам пока эту же проблему решаю
ответил 02 Сен, 13 от hipiro (280 баллов)
00 голосов
узнал что через переменную $arResult сохраняются данные. написал такую строчку
$arResult["PROPERTY"]["10"]=$arGroup["ID"]
но результата нет. не могу пока найти описания действия этой переменной, чтобы узнать что прописывать в ее свойства.
может кто подскажет как мне отправить данные $arGroup в свойство 10 моего элемента
ответил 30 Ноя, 13 от hipiro (280 баллов)
00 голосов
вот код объявление компонента, я тут оставил только то что касается нужного мне свойства "OTRASL" ID в настройках у нее 10

Код
<?$APPLICATION->IncludeComponent("bitrix:news", "works", Array(
   "IBLOCK_TYPE"   =>   "works",
   "IBLOCK_ID"   =>   "works",
   "NEWS_COUNT"   =>   "10",
   "FILTER_FIELD_CODE"   =>   array(
      0   =>   "",
      1   =>   "",
   ),
   "FILTER_PROPERTY_CODE"   =>   array(
      0   =>   "OTRASL",
      1   =>   "PLATFORM",
   ),
   "LIST_FIELD_CODE"   =>   array(
      0   =>   "",
      1   =>   "",
   ),
   "LIST_PROPERTY_CODE"   =>   array(
      0   =>   "VERSION",
      1   =>   "VERSION_2",
      2   =>   "CLIENT",
      3   =>   "PRODUCT",
      4   =>   "DATE",
      5   =>   "OTRASL",
      6   =>   "COMPAT",

   ),
   "DETAIL_FIELD_CODE"   =>   array(
      0   =>   "",
      1   =>   "",
   ),
   "DETAIL_PROPERTY_CODE"   =>   array(
      0   =>   "VERSION",
      1   =>   "VERSION_2",
      2   =>   "CLIENT",
      3   =>   "PRODUCT",
      4   =>   "DATE",
      5   =>   "OTRASL",
      6   =>   "COMPAT",
      7   =>   "DESCR",
      8   =>   "PLACE",
      9   =>   "COUNT",
   ),
   )
   );
ответил 13 Март, 14 от hipiro (280 баллов)
00 голосов
теперь думаю надо понять что писать в параметрах $arResult что бы в нужную часть массива отправил полученный данные
ответил 03 Июль, 14 от hipiro (280 баллов)
00 голосов
и куда вставить код. component.php и template.php выполняются при загрузке страницы, то есть если в них после нажатия кнопки сохранить думаю выполнятся ничего не будет, (кроме скрипта кнопки сохранить, которую я еще не нашел где она) а будут каким то другим скриптом (из другого файла) обрабатываться и записываться. вот в него и надо вставить этот параметр $arResult.
ответил 03 Ноя, 14 от hipiro (280 баллов)
00 голосов
Сергей, почитайте документацию, в частности учебный курс "Компоненты 2.0".
Узнаете как работают component.php и template.php.

Или вы пытаетесь зафиксировать свои размышления с помощью форума?
ответил 03 Март, 15 от smileplz (8,020 баллов)

Похожие вопросы

0 голосов
2 ответов
спросил 29 Апр, 14 от Kiriel (2,010 баллов)
0 голосов
2 ответов
спросил 06 Апр, 14 от PANKELA (100 баллов)
0 голосов
1 ответ
0 голосов
4 ответов
0 голосов
10 ответов