Контакти

Правила оформлення PHP-коду. Радіо в бітрікс, недокументированная функція Символьний код

У разі, якщо форматування коду не обумовлено в цьому розділі - код слід форматувати у відповідності з PSR-2

  • Як відступів в коді використовується табуляція.
  • Відкриває фігурна Скобрев знаходиться в тому ж рядку.
  • Закриває фігурна дужка знаходиться на новому рядку.

коментування коду

Коментування коду PHP - його невід'ємна частина!

При коментуванні коду слід використовувати PHPDoc коментарі.

Для однорядкових пояснюючих коментарів в коді можна використовувати звичайні коментарі, що починаються з //.

змінні

Основне правило іменування змінних - ім'я має бути таким, щоб не був потрібен коментар для пояснення призначення змінної.

префікси

В іменах змінних використовуються наступні префікси:

  • ar - для масивів
  • db - для CDBResult
  • b - для булевих змінних, якщо з імені не очевидно. Перфікс обов'язковий, якщо логічне значення використовується там, де зазвичай зберігається строкове Y / N.

$ ArUserList \u003d array (); $ DbRes \u003d CIBlockElement :: GetByID ($ id); $ BActive \u003d false;

Імена змінних не повинні починатися з підкреслення.

Глобальні змінні

Глобальні змінні пишуться ВЕЛИКИМИ літерами з поділом слів знаком підкреслення.

Global $ USER, $ APPLICATION, $ AR_MESSAGES.

Використання глобальних змінних допускається лише там, де це абсолютно необхідно. Використовуйте те, що дає D7, там, де він це дає!

локальні змінні

Локальні для скрипта (функції, методу, класу) змінні починаються завжди з маленької літери, слова поділяються капіталізацією першого символу (camelCase).

Дане правило поширюється на абревіатури.
Тобто станція BBC пишеться $ bbcStation; $ ArBbcStations; .

Виняток тільки одне - ID записується великими.
Тобто $ SectionID, $ arElementIDs.

$ Counter \u003d 0; $ BElementActive \u003d false; $ LastErrorMsg \u003d ""; $ ID \u003d $ _GET [ "ID"];

Допоміжні (тимчасові) змінні

Змінні, що використовуються в конструкціях FOR ... FOREACH, допускається називати скорочено, якщо код блоку, в якому вони використовуються, проглядається без прокрутки сторінки.

For ($ i \u003d 0; $ i< count($arRows); $i++) { // ... } foreach ($arElement as $k => $ V) (// ...) while ($ arr \u003d $ dbRes-\u003e Fetch ()) (// ...)

константи

Імена констант записуються ВЕЛИКИМИ буквами, слова поділяються знаком підкреслення. У зв'язку з глобальною областю видимості константи необхідно випереджати коротким префіксом (по імені модуля, компонента, шаблону).

Символьні коди Бітрікс

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

Іменування класів, методів, функцій

  • Імена класів завжди починаються з великої літери. Слова відокремлюються капіталізацією першої літери. (CamelCase)
  • Імена методів, функцій завжди починаються з маленької літери. Слова відокремлюються капіталізацією першої літери. (CamelCase)

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

Оформлення керуючих структур

Загальна для керуючих структур правило - логічний блок коду виділяється відступом.

Якщо блок не вміщується в один екран, робиться відступ мінімум в два табуляції. Великий блок коду, що відносяться до одного логічного елементу, повинен відділятися двома і більше порожніми рядками і забезпечуватися відкриває і закриває коментарями, що пояснюють логіку елемента.

Інструменти для автоформатирования коду, настройка параметрів

[Модулі для SublimeText]

  • PhpDoc - Власне плагін для підтримки PHPDoc формату.
  • phpfmt - плагін для автоматичного форматування php-коду (вимагає встановленого php).

Конфиг для плагіна phpfmt.

Для сучасного великого проекту, як правило, обов'язково потрібно використовувати чпу для сторінок. Він позитивно впливає на індексацію сайту і видачу в результатах.

ЧПУ - людині зрозумілий урл. Іншими словами це транслітерувати латиницею частина урла. Ми вже розбирали транслітерацію українського алфавіту на пхп. У Бітрікс є така функція, вона використовується, наприклад, коли створюється новий елемент або розділ Інфоблоки, символьний код цього елемента або розділу генерується з його назви. Але що робити, якщо елементи вже створені, а символьні коди не прописані. Давайте розглянемо рішення для цього випадку:

"Inc",); $ ArFilter \u003d array ( "IBLOCK_ID" \u003d\u003e $ arParams [ "IBLOCK_ID"], "IBLOCK_LID" \u003d\u003e "s1" // ім'я сайту // "CODE" \u003d\u003e "", // "CODE" \u003d\u003e false); $ ArTransParams \u003d array (// (максимальна довжина коду, регістр (нижній, верхній, не змінювати), // замінювати пробіл на ..., інші символи міняти на ..., видаляти зайві символи заміни) "max_len" \u003d\u003e 100 , "change_case" \u003d\u003e "L", // "L" - toLower, "U" - toUpper, false - do not change "replace_space" \u003d\u003e "-", "replace_other" \u003d\u003e "-", "delete_repeat_replace" \u003d\u003e true); if ($ arParams [ "TYPE_WORK"] \u003d\u003d "section") (// для розділів $ db_elemens \u003d CIBlockSection :: GetList ($ arOrder, $ arFilter, false); $ db_elemens-\u003e NavStart ($ arParams [ "LIST_CNT"] ); echo "
"; While ($ ar_res \u003d $ db_elemens-\u003e GetNext ()) ($ transName \u003d CUtil :: translit ($ ar_res [" NAME "]," ru ", $ arTransParams); $ arPropArray \u003d Array (" CODE "\u003d\u003e $ transName); $ el \u003d new CIBlockSection; $ res \u003d $ el-\u003e Update ($ ar_res [ "ID"], $ arPropArray); echo "result for ". $ Ar_res [" NAME "]." is ". $ TransName."". ($ Res?" And OK ":" and failed ")." \\ R \\ n ";) echo"
";) Elseif ($ arParams [" TYPE_WORK "] \u003d\u003d" element ") (// для елементів $ db_elemens \u003d CIBlockElement :: GetList ($ arOrder, $ arFilter, false, array (" nTopCount "\u003d\u003e $ arParams [" LIST_CNT "])); echo"
"; // для форматованого виведення результату генерації while ($ obElement \u003d $ db_elemens-\u003e GetNextElement ()) ($ ar_res \u003d $ obElement-\u003e GetFields (); $ transName \u003d CUtil :: translit (trim ($ ar_res [" NAME " ]), "ru", $ arTransParams); // функція генерації сім. коду з імені $ arPropArray \u003d Array ( "CODE" \u003d\u003e $ transName. "-". $ ar_res [ "ID"],); // до готовому коду додаємо "префікс" - "-id" $ el \u003d new CIBlockElement; $ res \u003d $ el-\u003e Update ($ ar_res [ "ID"], $ arPropArray); // записуємо результат, Перезаписуємо код у даного елемента echo $ transName. "-". $ ar_res [ "ID"]. " 
"; // виводимо результат) echo"
"; } ?>

Запускайте кілька разів пхп-скрипт в окремому файлі або в пхп-консолі в адмінці Бітрікс, поки не перестануть виходити повідомлення про успішну генерації символьного коду. У підсумку в поле "Символьний код" з'явиться латинська рядок у вигляді відповідного чпу.

Лижі дитячі: lyzhi-detskie
Іграшка LEGO: igrushka-lego

Дата публікації: 12.12.2011

Знадобилося днями нагенеріровать символьних кодів у розділів і у елементів Інфоблоки "Каталог меблів" в Бітрікс.

Що таке символьний код в розділі або елементі Інфоблоки в Бітрікс?Під символьним кодом елемента (розділу) Інфоблоки в Бітрікс розуміється мнемонічний ідентифікатор, Який представляє собою набір символів (букв і цифр латиниці). Цей мнемонічний ідентифікатор може використовуватися для формування адрес посилань динамічних сторінок на сайті. Наприклад, якщо елемент "Диван Космос" з розділу "М'які меблі" має символьний код "divan-cosmos", то посилання на сайті може мати вигляд - "/ catalog / myagkaya-mebel / divan-cosmos"

Робиться махом, основне питання було в тому, яким методом транслітерувати. Перша думка - невже складати якийсь свій метод. Відкинула відразу. З тієї простої причини, що - адже якось же в CMS генеруються ці символьні коди? Ще як генеруються. Значить, метод є! Так, він є.

Є така проста функція, яка чомусь досі не описана в офіційній документації по API Бітрікс. (На момент написання цієї статті (грудень 2011р.) В документації згадки не було)

CUtil :: translit ($ str, $ lang, $ params \u003d array ())

Функція транслітерує рядок $ str з мови $ lang з параметрами $ params.

Параметри в масиві $ Params:

У нових версіях ядра (я побачила в 11.5.2) з'явився новий параметр "Safe_chars", За замовчуванням дорівнює "", а також закоментувавши "use_google", за замовчуванням false.

ПРИКЛАД використання:

"-", "replace_other" \u003d\u003e "-"); $ Trans \u003d Cutil :: translit ($ name, "ru", $ arParams); echo $ trans; ?\u003e

UPD.У коментарях було поставлено питання:
"А можна по простому куди чого прописати у Бітрікс що б працювала генерувався ЧПУ при імпорті Інфоблоки?"
Питання некоректне, і зрозуміти мені його складно. Але як окремий випадок приведу такий приклад -
задача - генерувати символьні коди у товарів при імпорті торгового каталогу з CSV.

"-", "replace_other" \u003d\u003e "-"); $ Trans \u003d Cutil :: translit ($ name, "ru", $ arParams); $ ArFields [ "CODE"] \u003d $ trans; ))?\u003e

Таким чином, при імпорті з CSV-файлу автоматично буде генеруватися символьний код - транслитом з назви.

Важливий UPD2.

Стали звертатися з питаннями що транслит не працює, див. Коменти. Я вирішила розібратися, але ні на які свої як поточних так і старих проектах проблему відтворити не можу - у мене все ОК. Але у людей-то немає?

РІШЕННЯ!

Проблема з-за кодування. Додайте в.htaccess:

php_value mbstring.func_overload 2
php_value mbstring.internal_encoding UTF-8

Що робити, якщо і це не допомагає? Йдемо в адмінку на сторінку "перевірка сайту", запускаємо перевірку. Якщо в перевірці так і залишилося повідомлення про невірну кодуванні - не турбуйтеся. Або потрібно звернутися до хостера, щоб він виправив ці настройки, або - забути про штатну функції трансліта і написати свою. (А також перестати дивуватися всім іншим глюків через кодування).

Стандартний міжнародний символьний код, в якому кожен символ кодується сім'ю битами. Тематики електрозв'язок, основні поняття EN ISO 7 ...

код ІСО-7 - Стандартний міжнародний символьний код (ISO 646 1973), в якому кожен символ кодується сім'ю розрядами. У США версія цього коду називається ASCII. [Е.С.Алексеев, А.А.Мячев. Англо російський тлумачний словник по системотехніці ЕОМ. Москва 1993] ... ... Довідник технічного перекладача

Код (в ЦВМ) - Код в ЦВМ, умовна система знаків для представлення інформації в ЦВМ. Кожен К. використовує знаки свого алфавіту. Для більшості К. алфавіти Двосимвольні або складаються з літер двохсимвольного алфавіту. Фізична форма К. залежить від характеру ... ...

Код авіакомпанії ІАТА - Код авіакомпанії ІАТА 2 або 3 символьний індивідуальний ідентифікатор, присвоєний авіакомпанії Міжнародною асоціацією повітряного транспорту (ІАТА). Цей код виділяється згідно з резолюцією ІАТА № 762 штаб квартирою асоціації в ... ... Вікіпедія

код - I (франц. Code, від лат. Codex звід законів) система умовних знаків (символів) для передачі, обробки та зберігання (запам'ятовування) різної інформації. Кінцева послідовність кодових знаків називається словом. Число різних символів, ... ... Велика Радянська Енциклопедія

RADIX-50 - символьний код який дозволяє записати в одному 16 бітному слові три символи. Використовувався в основному на мінікомп'ютерах, в першу чергу, сімейства PDP 11 (СМ ЕОМ), для зберігання імен файлів в файлових системах ОС RT 11 і RSX 11, назв модулів ... ... Вікіпедія

ESCON - (Enterprise Systems Connection) волоконний канальний інтерфейс, що забезпечує обмін інформацією між сервером IBM zSeries і периферійними пристроями (або іншим сервером). Вперше застосовувався в серверах архіте ... Вікіпедія

адреса - ім., М., Употр. часто Морфологія: (немає) чого? адреси, чому? адресою, (бачу) що? адреса, чому? адресою, про що? про адресу; мн. що? адреси, (немає) чого? адрес, чому? адресами, (бачу) що? адреси, ніж? адресами, про що? про адреси 1. Чий або адреса ... ... Тлумачний словник Дмитрієва

ідентифікатор завдання - Символьний код, який приписують виконується або готової до виконання завдання. [Домарев В.В. Безпека інформаційні технології. Системний підхід.] Тематики захист інформації EN task identifier ... Довідник технічного перекладача

Паскаль (мова програмування) - Ця стаття або розділ потребує переробки. У Паскалі немає модулів, ООП і інших новомодних віянь. Опис розширень повинне бути присутнім тільки в статтях про відповід ... Вікіпедія

Паскаль (мова) - Pascal Семантика: процедурний Тип виконання: компілятор З'явився в виконання: 1970 г. Автор (и): Ніклаус Вірт Паскаль (англ. Pascal) високорівнева мова програмування загального призначення. Один з найбільш відомих мов програмування, широко ... ... Вікіпедія

книги

  • Лингвокультурологический метод у фразеології. Коди культури, М. Л. Ковшова. Монографія присвячена лінгвокультурологічною дослідженню фразеологізмів - знаків мови, які в образному вигляді зберігають і передають з покоління в покоління ціннісні установки національної ... Купити за +1053 грн (тільки Україна)
  • Лингвокультурологический метод у фразеології Коди культури, Ковшова М .. Монографія присвячена лінгвокультурологічною дослідженню фразеологізмів - знаків мови, які в образному вигляді зберігають і передають з покоління в покоління ціннісні установки національної ...

Машинописний текст складається з друкованих знаків - графічних символів.
Графічні символи - це символи, які мають в тексті видиме відображення.
Всі графічні символи зібрані в наборі єдиної універсальної системи Юнікод.
Вставити графічний символ Юнікод в html-документ
- головне і єдине призначення для цієї таблиці.

Вставити символ в html-документ можна одним із способів:

  1. скопіювати зображення символу з вікна браузера в вікно свого візуального html-редактора
  2. скопіювати html-код символу безпосередньо в код html-документа
Вгамовувався, що це два різні способи:
  1. вставляти візуальне в візуальне
  2. вставляти код в код.

Шрифт для символу, його розмір і колір в HTML можна задати кодом, виду:
КОД_СІМВОЛА
де,
Arial - шрифт,
10px - розмір шрифту в пікселях,
# Ff0000 - код кольору шрифту (червоний)

наприклад:
☎ - розмір шрифту символу 30px,
☎ - розмір шрифту символу 30px, колір - червоний
☎ - розмір шрифту символу 20px,
☎ - розмір шрифту символу 10px.
Прим. Рекомендовані шрифти для вставки спецсимволов - Arial, Verdana і Tahoma. Ці шрифти коректно відображають символи Юнікод і самі, в свою чергу, коректно підтримуються веб-додатками.

  1. «Символ»
    (Видиме відображення символу)
    З цієї графи можна скопіювати зображення символу і вставити його в вікно текстового html-редактора. Символ скопіюється з розміром шрифту 20px. Після завершення копіювання може бути потрібна індивідуальна підгонка розміру шрифту безпосередньо для скопійованого знака.
  2. «Найменування»
    (Тільки для важливих або незрозумілих символів)
    Пояснення призначення символу, його область застосування, приклади ...
  3. «Мнемоніка»
    Мнемоніка - це літерна конструкція виду ", що позначає літерний код символу в HTML. Уставляється безпосередньо в html-код html-документа. Мнемоніки дуже популярні серед професійних верстальників. Вони прекрасно запам'ятовуються людиною і підтримуються всіма html-додатками. Кожна мнемоніка містить буквене ім'я (позначення ) свого символу і службовий знак (&), який служить сигналом до прочитання коду для браузера і не відображається на екрані монітора. Ім'я кожної мнемоніки унікально і легко читаемо, тому що утворено від англомовного слова, що характеризує символ.

    Мнемоніка (грец.) - мистецтво запам'ятовувати що-небудь. Мнемотехника застосовується для полегшення сприйняття труднозапомінаемой інформації, коли об'єкт запам'ятовування наводиться в асоціативне стан з чим-небудь.

  4. «Код»
    Код - числовий десятковий код символу в HTML, виду &. Вставляється безпосередньо в html-код html-документа. Числовий десятковий код складається з числа, що позначає порядковий номер символу в системі Юнікод і декількох службових знаків (& і #), які служать сигналом до прочитання коду для браузера і не відображаються на екрані монітора. Числовий десятковий код має широке поширення і застосування, завдяки своїй універсальності і простоті сприйняття.

Символи управління в HTML (XHTML)

Символи управління в HTML (XHTML) - це службові символи HTML-мови, які використовуються при HTML-верстці веб-сторінки. Ці символи зобов'язаний підтримувати будь-який браузер, оскільки без них неможливо правильне відображення HTML-тексту. Символи керування не видно в тексті і, при прямому введенні з клавіатури - інтерпретуються браузером як знаки пунктуації, що закликають до виконання будь-якого дії при відображенні сторінки на екрані.

Допускається використовувати символи управління в звичайних текстах, де вони символізують загальнолюдські поняття і трактуються браузером як звичайні друкарські знаки. При такому використанні службових символів в HTML-текстах потрібно вводити не значення самого символу, а саме його HTML-код. Бо, повторюю - в іншому випадку браузер буде сприймати службовий символ, як заклик до дії і не буде коректно відображати HTML-текст на екрані монітора.

Символи управління і їх HTML-код знають і розуміють всі браузери без винятку, чого не можна сказати, на жаль - про інші знаки, які можуть відображатися некоректно в різних браузерах або, що ще гірше - не відображатися зовсім.

Синтаксис і пунктуація

пробіл довжини N (звичайний пробіл)
пробіл довжини M (дліннийпробел)
- варіант переносу (Недрукований знак) - ­
дефіс –
- тире довжини N (звичайне тире) -
тире довжини M (довге тире)
. крапка .
, кома ,
три крапки …
: двокрапка :
; крапка з комою ;
! знак оклику !
ǃ
? знак питання ?
@ «Собачка» @
* «Зірочка» *
# «Решітка» #
одиночна верхня ліва лапка ‘
одиночна верхня права лапка ’
одиночна нижня права лапка ‚
подвійна верхня ліва лапка “
подвійна верхня права лапка ”
подвійна нижня права лапка & bdquo „
« подвійна ліва кутова лапка (рус) « «
» подвійна права кутова лапка (рус) » »
́ знак наголоси, приклад: Вася ́
" апостроф, приклад: Вас "я "
´ акут, приклад: Вас'я ´ ´
абзац (Недрукований знак)
§ параграф § §
ˆ акцент (перевернута пташка) ˆ ˆ
ˆ
˜ мала тильда ˜ ˜
˜
¦ вертикальний пунктир ¦ ¦
( кругла дужка вліво (
) кругла дужка вправо )
кутова дужка вліво
кутова дужка вправо
кутова дужка вліво, варіант
кутова дужка вправо, варіант
[ квадратна дужка вліво [
] квадратна дужка вправо ]
/ слеш (slash) - Cимвол косою риси /
\ зворотний слеш (backslash) \
коса подрібнена риса (знак ділення)
ǀ вертикальна риса ǀ
ǁ подвійна вертикальна риса ǁ
надкресленням, приклад: Вася~вася
¯ macron, приклад: Вася¯вася ¯ ¯

Товарні знаки і валюта

+ плюс + +
мінус -
= одно =
± плюс мінус ± ±
× знак множення × ×
÷ знак ділення ÷ ÷
оператор «точка» (середина рядка) ·
оператор «зірочка» (середина рядка)
оператор «тильда»
. маркер списку (середина рядка) . •
¹ верхній індекс «1» ¹ ¹
² верхній індекс «2» ² ²
³ верхній індекс «3» ³ ³
Надрядковий і підрядковий індекс в HTML (XHTML)
можна вставити за допомогою тегів і , Відповідно:
ЧИСЛО Підіндекс → ЧИСЛО Підіндекс
ЧИСЛО підрядковий індекс → ЧИСЛО Надіндекс
½ дріб «одна друга» ½ ½
дріб «одна третина»
¼ дріб «одна четверта» ¼ ¼
¾ дріб «три чверті» ¾ ¾
знак номера
% відсоток %
проміле ‰
° градуси ° °
штрих (хвилини, фути)
подвійний штрих (секунди, дюйми)
Приклад 1: 30 ° 25 '12 "
Приклад 2: 25 '12
µ мікро µ µ
π Пі π π
ƒ знак функції
(Не плутати з «інтеграл»)
ƒ ƒ
ƒ
інтеграл
перекреслений нуль, порожня множина
(Не плутати з «діаметр»)
діаметр (не плутати з перекресленою латинської «о»)
ø латинська "o" діагонально перекреслена ø ø
Ø латинська заголовна "O" діагонально перекреслена Ø Ø
знак твори
знак підсумовування
радикал
(Квадратний корінь або корінь ступеня x)
пропорційно
нескінченність
кут
ортогонально (перпендикулярно)
знак «Cледовательно»
приблизно дорівнює
майже дорівнює
не дорівнює
ідентично
менше або дорівнює
більше чи рівно
логічне І
логічне АБО
знак «плюс в колі»
(Пряма сума)
знак «множення в колі»
(Векторне твір, стріла від спостерігача)
ʘ точка в колі
(Стріла на спостерігача)
ʘ

✵ ✵



Сподобалася стаття? поділіться їй