Полезности о input -ах типа file в Битрикс

Обычно народ просто ставит

<input type="file" name="file" value="файлег">

Но это не по нашему! Выглядит стандартно, да и нет никакой валидации по типу файла, если мы, к примеру, хотим загружать только файлы определённого типа.

Итак, для начала давайте подумаем, что мы хотим:

  1. Реализовать в форме input типа file, принимающий только картинки
  2. Около input -а должна быть надпись с названием файла, который мы будем загружать после выбора оного в диалоговом окне
  3. Файл-картинку из этого input-а нужно загружать в инфоблок
  4. Предусмотреть обработку ошибки, когда физический размер картинки больше установленного в php.ini

Давайте для начала реализуем пункт 2.

Как это должно выглядеть в идеале:

Joxi

Пример вёрстки: ТЫК

Листинг кода:

Читать далее

Получение иерархии разделов средствами Битрикс API

Приведу небольшой примерчик как одним запросом и одним циклом получить иерархию разделов в виде:

Array
(
    [ROOT] => Array
        (
            [CHILD] => Array
                (
                    [12] => Array
                        (
                            [ID] => 12
                            [~ID] => 12
                            [NAME] => Раздел с ид 12
                            [~NAME] => Раздел с ид 12 
                            [DEPTH_LEVEL] => 1
                            [~DEPTH_LEVEL] => 1
                            [CHILD] => Array
                                (
                                    [63] => Array
                                        (
                                            [ID] => 63
                                            [~ID] => 63
                                            .............
                                            [CHILD] => Array
                                                (
                                                ........
                                                )
                                        )
                                     .......
                                    [63] => Array
                                        (
                                            [ID] => 63
                                            [~ID] => 63
                                            .............
                                        )
                                     .......
                                )
                        )
                 ..............
                )
        )
)

На мой взгляд, с такой структурой работать в большинстве случаев удобнее, чем со списком, отсортированном по LEFT_MARGIN

Итак код:

Читать далее