Призначені для користувача форми редагування елементів

Призначені для користувача форми редагування елементів

Форма додавання / зміни елементів інформаційних блоків є однією з найбільш часто використовуваних, а в інтернет-магазинах або інформаційних виданнях ця форма однозначно є найпопулярнішою в адміністративному розділі. І незважаючи на те, що зовнішній вигляд і поля форми змінюються в залежності від налаштувань інформаційного блоку, а також можна налаштувати вигляд форми редагування елементів допомогою звичайних методів тестування, для специфічних завдань, іноді цього недостатньо.

В цьому випадку в / bitrix / php_interface / include / слід створити один або два (в залежності від завдання) додаткових файлу:

Потім в налаштуваннях Інфоблоки задати шляху до цих файлів:

Призначені для користувача форми редагування елементів

Файл з формою редагування елемента

Створимо в папці / bitrix / php_interface / include /. наприклад, файл iblock_element_edit_my.php. потім скопіюємо в нього код з файлу /bitrix/modules/iblock/admin/iblock_element_edit.php від рядка:

Тепер можна приступати до редагування файлу, тобто до зміни зовнішнього вигляду форми редагування елемента Інфоблоки під власні потреби. (Перед процедурою необхідно скасувати налаштування форми, якщо такі раніше були зроблені.)

  • Ви можете видалити непотрібні вам поля Інфоблоки. Для відображення полів форми використовуються конструкції такого вигляду:
  • Для відображення в формі властивостей елементів Інфоблоки використовується функція _ShowPropertyField ().

    При використанні власної форми на сторінці редагування елемента пропадає кнопка Налаштувати. що дозволяє впорядкувати і налаштувати відображення полів форми елемента.

    Щоб не додавати механізм сортування полів в iblock_element_edit_my.php і не відмовлятися від стандартної функції, необхідно додати наступний код в файл:

    Важливо! Не забудьте вказати шлях до даного файлу в настройках Інфоблоки.

    Файл, що відповідає за обробку полів елемента перед його збереженням

    Щоб змінити збережені поля, необхідно модифікувати однойменні поля в масивах $ _POST і $ _FILES. значення всіх властивостей необхідно модифікувати в масиві $ PROP.

    Створимо в / bitrix / php_interface / include /. наприклад, файл iblock_element_edit_before_save.php.

    Для перевірки, що детальний текст елемента введений, використовуємо таку умову:

    Конструктор об'єкта _CIBlockError приймає три параметри: ступінь серйозності помилки, довільний ідентифікатор і текст помилки. Якщо на сторінці редагування визначити змінну $ error зі значенням цього об'єкта, то збереження внесених змін не відбудеться. Для того щоб значення, що прийшли з форми, не загубилися, після ініціалізації змінної $ error також Ініціалізуйте змінну $ bVarsFromForm = true. Змінна $ bVarsFromForm якраз вказує, що значення в полях необхідно показувати ті, які прийшли з форми.

    Для автоматичного створення маленької картинки на основі великої скористаємося функцією BXIBlockAfterSave. Якщо її визначити до збереження елемента, то вона автоматично буде викликана після успішного збереження елемента. Визначимо її на початку файлу /bitrix/php_interface/include/iblock_element_edit_before_save.php:

    Примітка: у вищенаведеному скрипті на основі великої картинки буде створена маленька і ця картинка буде підставлена ​​у поле для маленької картинки. Приклад працює тільки з картинками в форматі JPG.

    Наведемо повний код сторінки /bitrix/php_interface/include/iblock_element_edit_before_save.php.

    Важливо! Не забудьте вказати шлях до даного файлу в настройках Інфоблоки.

    Іноді буває необхідно виконати зміни зовсім іншого характеру, наприклад, форма визначати й змінювати одночасно кілька картинок, в цьому випадку необхідно просто створити свою нову сторінку і додати її в адміністративне меню.

    Додаткові матеріали