Доброго времени суток господа форумчане.
Итак. Инфоблоки. Есть компонент формы элемента списка iblock.element.add.form и компонент списка iblock.element.add.list
В форме списка описана обработка удаления элемента списка:
1) iblock.element.add.list
component.php
В темплэйте списка описан соответственно вызов:
template.php
Я пытаюсь понять каким образом в компоненте формы описать ссылку на обработчик удаления элемента списка (список уже другой), чтобы в темплейте Формы iblock.element.add.form можно было его вызвать, дабы не переписывать его по новой (с этим пожалуй еще больше возни насколько могу судить) и удалить элемент.
Вот темплэйт формы
2) iblock.element.add.form
template.php
<a href="?delete=Y&CODE=<?=$arElement["ID"]?>&<?=bitrix_sessid_get()?>" - ссылка вызова. Вот теперь думаю каким образом описать ссыль в компоненте формы.
Буду рад любым советам. Заранее благодарен =/
Итак. Инфоблоки. Есть компонент формы элемента списка iblock.element.add.form и компонент списка iblock.element.add.list
В форме списка описана обработка удаления элемента списка:
1) iblock.element.add.list
component.php
| Код |
|---|
if (check_bitrix_sessid() && $_REQUEST["delete"] == "Y" && $arResult["CAN_DELETE"])
{
$arParams["ID"] = intval($_REQUEST["CODE"]);
// try to get element with id, for user and for iblock
$rsElement = CIBLockElement::GetList(array(), array_merge($arFilter, array("ID" => $arParams["ID"])));
if ($arElement = $rsElement->GetNext())
{
// delete one
$DB->StartTransaction();
if(!CIBlockElement::Delete($arElement["ID"]))
{
$DB->Rollback();
}
else
{
$DB->Commit();
}
}
}
|
template.php
| Код |
|---|
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
<div class="catalog-compare-list">
<a name="compare_list"></a>
<?if(count($arResult)>0):?>
<fo rm action="<?=$arParams["COMPARE_URL"]?>" method="get">
<table class="data-table" cellspacing="0" cellpadding="0" border="0">
<thead>
<tr>
<td align="center" colspan="2"><?=GetMessage("CATALOG_COMPARE_ELEMENTS")?></td>
</tr>
</thead>
<?foreach($arResult as $arElement):?>
<tr>
<td>
<input type="hidden" name="ID[]" value="<?=$arElement["ID"]?>" />
<a href="<?=$arElement["DETAIL_PAGE_URL"]?>"><?=$arElement["NAME"]?></a>
</td>
<td>
<noindex><a href="<?=$arElement["DELETE_URL"]?>" rel="nofollow"><?=GetMessage("CATALOG_DELETE")?></a></noindex>
</td>
</tr>
<?endforeach?>
</table>
<?if(count($arResult)>=2):?>
<br /><input type="s ubmit" value="<?=GetMessage("CATALOG_COMPARE")?>" />
<input type="hidden" name="action" value="COMPARE" />
<input type="hidden" name="IBLOCK_ID" value="<?=$arParams["IBLOCK_ID"]?>" />
<?endif;?>
</form>
<?endif;?>
</div>
|
Вот темплэйт формы
2) iblock.element.add.form
template.php
| Код |
|---|
<?
$res = CIBlockProperty::GetByID($propertyID, false, false);
if($ar_res = $res->GetNext())
$LINK_IBLOCK_ID = $ar_res['LINK_IBLOCK_ID'];
$value = $arResult['ELEMENT_PROPERTIES'][$propertyID][0]['VALUE'];
$arSelect = Array("ID", "NAME");
$arFilter = Array("IBLOCK_ID"=> $LINK_IBLOCK_ID, "ACTIVE"=>"Y",'PROPERTY_MODERATOR' => $USER->GetID());
$res = CIBlockElement::GetList(Array(), $arFilter, false, false, $arSelect);
while($ob = $res->GetNextElement()){
$arFields = $ob->GetFields();
if($value == $arFields["ID"])
{
if($propertyID == '21')
{
?>
<?foreach($arResult as $arElement):?>
<tr>
<td>
<a href="?delete=Y&CODE=<?=$arElement["ID"]?>&<?=bitrix_sessid_get()?>"
</td>
</tr>
<?endforeach?>
<?
}
}
}
?> |
Буду рад любым советам. Заранее благодарен =/