Itcs - кілька слів про бітрікс і доопрацювання сайтів на його базі

Itcs - кілька слів про бітрікс і доопрацювання сайтів на його базі

Документації та матеріалів в інтернеті багато. Але варто відзначити і деякі відмінності. Серед веб-розробників під Бітрікс можна виділити дві групи, а саме:

  • Люди, які стартували свою кар'єру з його вивчення і мислять суто уявленнями Бітрікс.
  • Досвідчені програмісти / веб-розробники, які перейшли на Бітрікс в якийсь час.

Природно, і дивляться вони на все, що відбувається по-різному, і поради щодо вирішення завдань також іноді відрізняються.

Якщо досвідчений програміст знає п'ять і більше варіантів вирішення якої-небудь типовий ситуації (або як мінімум два :)), вузькоспеціалізований Бітрікс-фахівець намагається вирішити всі в рамках того, що пропонує система, описує документація, або шукає готові рішення / модулі / компоненти на Marketplace (каталог рішень для Бітрікс). Погодьтеся, що це специфічно не тільки для Бітрікс, а, взагалі, в рамках будь-яких вузьких спеціалізацій по CMS, тим же Drupal, Wordpress, Joomla і т.п.

Бітрікс. Плюси і мінуси

В принципі, багатьом знайомі такі терміни як «візуальне програмування» або «модульно-орієнтоване програмування» або ж «компонент-орієнтоване програмування». Бітрікс досить сильно нагадує візуальні конструктори для створення мультимедійних презентацій і казуальних ігор. Для веб-розробників початкового рівня, звичайних користувачів, які хочуть навчитися, контент-менеджерів і частини адміністраторів робота з Бітрікс грунтується на візуальному проектуванні. Тому для них є важливим вибір конкретної версії продукту, для того, щоб вона була максимально наближена до того сайту, який вони хочуть зробити. Це актуально і для складних ресурсів, тому як в спеціалізованих версіях є добре зроблені унікальні рішення, проста технологія яких зайняла б багато людино-годин досвідчених програмістів.

Стандартні «прошиті» блоки мають і свої мінуси, тому як при візуальному проектуванні мають мало альтернатив. Наприклад, в Бітрікс використовується тільки один варіант CAPTCHA, який за сучасних умов досить легко обійти роботом. У деяких випадках певні елементи не можна видалити (наприклад, ті ж групи користувачів, які не потрібні), і вони тільки захаращують адміністраторську частина.

Але, в цілому, це незначні мінуси, які можна виправити, обійти або ігнорувати.

Доопрацювання Бітрікс з точки зору програмування

З точки зору програмування сайти на Бітрікс можна допрацьовувати досить вільно.

Сам «движок» Бітрікс досить важкий, в ньому застосовується відразу кілька власних технологій для прискорення роботи. Це і кешування, і внутрішня оптимізація запитів, і т.п. В ці питання слід впроваджуватися тільки зі знанням справи.

До речі, в Бітрікс і своя власна внутрішня альтернатива cron'у, а саме, агенти, які швидко створюються в панелі налаштувань (закладка «Інструменти»). Агенти застосовні для НЕ ресурсномістких операцій.

Тепер перейдемо до невеликого наприклад, який повинен розвіяти міфи про те, що «робота з Бітрікс - це як їзда на танку по вузьких вуличках».

Простий приклад програмування

В принципі, багатьом цілком достатньо того, що пропонує Бітрікс, але нерідко доводиться допілівать сайт доступними засобами. Програмістам іноді простіше просто виходити на PHP-код і використовувати можливості конкретно PHP. Є кілька типових ситуацій, в яких зручніше так і робити.

Припустимо нам потрібно розширити функціонал для кожного зареєстрованого відвідувача. Наприклад, відстежувати / фіксувати його останні дії, вибрати, чи потрібно відображати для нього певні блоки коду всередині сторінки, змінювати класи CSS і т.п.

Мені недавно попалася цікава задачка схожої тематики. Було потрібно для кожного зареєстрованого користувача завести окрему папку, в яку він може завантажити свої файли (будь-які). Тобто не "документообіг з розподіленими правами доступу», а тупо кнопка «Завантажити файл» внизу сторінки. PHP-скрипт безпосередньо аплоуда файлів на сервер досить стандартний, його без зусиль можна знайти в інтернеті. Потрібно було прив'язатися до унікальній властивості користувача (це може бути ID, логін), при спробі завантаження файлу створити для нього однойменну папку де-небудь на сервері, якщо її немає, наприклад, в якій-небудь власний спеціальний каталог (user_uploads) і завантажити туди файл.

$ ArFilter = array ( "ID" => $ USER-> GetID ());

Тепер маючи в арсеналі унікальну властивість користувача, і створивши для нього окрему однойменну папку, наповнення якої ми можемо реконфигурировать на свій розсуд, можна проводити будь-які дії в PHP-коді, пов'язані безпосередньо з конкретним користувачем. Аж до того, щоб реалізовувати просту БД на текстових файлах в його папці, замість того, щоб городити безліч «Додаткових властивостей» для нього ж в панелі адміністрування (Настройки> Учасники ...). І так далі.

Робота з CMS Бітрікс залишає хороші враження. Для фахівців початкового рівня я б рекомендував стартувати зі стандартного програмування, а вже потім включати Бітрікс в свої бонуси.