Contacte

Reguli de formatare a codului PHP. Transliterare Bitrix, funcție nedocumentată Cod simbol

Dacă formatarea codului nu este specificată în această secțiune - codul trebuie formatat în conformitate cu PSR-2

  • Filele sunt utilizate ca indentări în cod.
  • Dispozitivul de deschidere este pe aceeași linie.
  • Parantezele de închidere se află pe o nouă linie.

Comentarea codului

Comentariile de cod PHP sunt o parte integrantă a acestuia!

Când comentați cod, utilizați comentarii PHPDoc.

Pentru comentarii explicative cu o singură linie în codul dvs., puteți utiliza comentarii regulate începând cu //.

Variabile

Regula de bază pentru denumirea variabilelor este că numele ar trebui să fie astfel încât să nu fie necesar un comentariu pentru a explica scopul variabilei.

Prefixe

Numele variabilelor utilizează următoarele prefixe:

  • ar- pentru matrice
  • db- pentru CDBResult
  • b- pentru variabilele booleene, dacă nu este evident din nume. Perfixul este necesar dacă se utilizează o valoare booleană unde șirul este de obicei stocat Da / N.

$ arUserList = array (); $ dbRes = CIBlockElement :: GetByID ($ id); $ bActiv = fals;

Numele variabilelor nu trebuie să înceapă cu un subliniat.

Variabile globale

Variabilele globale sunt scrise cu litere majuscule, separate printr-o subliniere.

Global $ USER, $ APLICARE, $ AR_MESSAGES.

Utilizarea variabilelor globale este permisă numai acolo unde este absolut necesar. Folosește ceea ce face D7 acolo unde face!

Variabile locale

Variabilele locale pentru script (funcție, metodă, clasă) încep întotdeauna cu litere mici, cuvintele sunt separate prin scrierea cu majuscule a primului caracter (camelCase).

Această regulă se aplică abrevierilor.
Acestea. Postul BBC scria $ bbcStation; $ arBbcStations; ...

Există o singură excepție - ID-ul este scris cu majuscule.
Acestea. $ sectionID, $ arElementIDs.

$ contor = 0; $ bElementActive = false; $ lastErrorMsg = ""; $ ID = $ _GET ["ID"];

Variabile auxiliare (temporare)

Variabilele utilizate în construcțiile FOR ... FOREACH pot fi denumite pe scurt dacă codul blocului în care sunt utilizate este vizualizat fără a derula pagina.

Pentru ($ i = 0; $ i< count($arRows); $i++) { // ... } foreach ($arElement as $k =>$ v) (// ...) while ($ arr = $ dbRes-> Fetch ()) (// ...)

Constante

Numele constante sunt scrise cu majuscule, cuvintele sunt separate printr-un subliniat. Datorită sferei globale, constantele trebuie să fie precedate de un prefix scurt (de numele modulului, componentei, șablonului).

Coduri de caractere Bitrix

Codurile personalizate în bitrix sunt necesare pentru multe lucruri și, prin urmare, ar trebui să adere la denumirea lor uniformă. Codul simbolic trebuie să fie scris cu litere latine, fără cifre și caractere speciale și trebuie să reflecte esența infoblocului, secțiunii sau elementului.

Denumirea de clase, metode, funcții

  • Numele claselor încep întotdeauna cu o literă mare. Cuvintele sunt separate prin scrierea cu majusculă a primei litere. (CamelCase)
  • Numele metodelor și funcțiilor încep întotdeauna cu litere mici. Cuvintele sunt separate prin scrierea cu majusculă a primei litere. (camelCase)

Datorită sferei globale de funcții, numele acestora ar trebui să înceapă cu un prefix scurt (după numele modulului, componentei, șablonului).

Înregistrarea structurilor de guvernare

O regulă comună pentru structurile de control este că un bloc logic de cod este indentat.

Dacă blocul nu se potrivește într-un singur ecran, cel puțin două file sunt indentate. Un bloc mare de cod legat de un element logic ar trebui să fie separat de două sau mai multe linii goale și furnizat cu comentarii de deschidere și închidere care să explice logica elementului.

Instrumente pentru formatarea automată a codului, setarea parametrilor

[Pluginuri pentru SublimeText]

  • PhpDoc - De fapt un plugin pentru suportarea formatului PHPDoc.
  • phpfmt - plugin pentru formatarea automată a codului php (necesită instalarea php-ului).

Configurare plugin phpfmt.

Pentru un proiect modern de mari dimensiuni, de regulă, este imperativ să folosiți cnc pentru pagini. Are un efect pozitiv asupra indexării site-ului și asupra problemei rezultatelor.

CNC - adresa URL de înțeles de o persoană. Cu alte cuvinte, aceasta este partea transliterată latină a adresei URL. Am analizat deja transliterarea alfabetului rus pe pkhp. Bitrix are o astfel de funcție, este utilizat, de exemplu, atunci când este creat un element nou sau o secțiune a unui bloc de informații, codul simbolic al acestui element sau secțiune este generat din numele său. Dar dacă elementele au fost deja create, iar codurile simbolice nu sunt scrise. Să analizăm o soluție pentru acest caz:

„inc”,); $ arFilter = array ("IBLOCK_ID" => $ arParams ["IBLOCK_ID"], "IBLOCK_LID" => "s1" // numele site-ului // "CODE" => "", // "CODE" => false); $ arTransParams = matrice (// (lungimea maximă a codului, majuscule (minuscule, superioare, nu se schimbă), // înlocuiește spațiul cu ..., înlocuiește alte caractere cu ..., elimină caracterele de înlocuire inutile) "max_len" => 100, "change_case" => "L", // "L" - toLower, "U" - toUpper, false - nu modificați "replace_space" => "-", "replace_other" => "-", "delete_repeat_replace "=> adevărat); if ($ arParams ["TYPE_WORK"] == "secțiune") (// pentru secțiunile $ db_elemens = CIBlockSection :: GetList ($ arOrder, $ arFilter, false); $ db_elemens-> NavStart ($ arParams ["LIST_CNT"] ); ecou "
"; while ($ ar_res = $ db_elemens-> GetNext ()) ($ transName = CUtil :: translit ($ ar_res [" NAME "]," ru ", $ arTransParams); $ arPropArray = Array (" CODE "=> $ transName); $ el = new CIBlockSection; $ res = $ el-> Update ($ ar_res ["ID"], $ arPropArray); echo "rezultat pentru ". $ ar_res [" NAME "]." este ". $ transName."". ($ res?" și OK ":" și nu a reușit ")." \ r \ n ";) ecou"
";) elseif ($ arParams [" TYPE_WORK "] ==" element ") (// pentru elementele $ db_elemens = CIBlockElement :: GetList ($ arOrder, $ arFilter, false, array (" nTopCount "=> $ arParams [" LIST_CNT "])); ecou"
"; // pentru ieșirea formatată a rezultatului generației while ($ obElement = $ db_elemens-> GetNextElement ()) ($ ar_res = $ obElement-> GetFields (); $ transName = CUtil :: translit (trim ($ ar_res [") NAME "])," ru ", $ arTransParams); // funcție pentru generarea codului sim. Din numele $ arPropArray = Array (" CODE "=> $ transName." - ". $ Ar_res [" ID "],) ; // к adăugați un „prefix” - „-id” la codul finalizat $ el = new CIBlockElement; $ res = $ el-> Update ($ ar_res ["ID"], $ arPropArray); // scrieți rezultatul , rescrieți codul pentru acest element echo $ transName. "-". $ ar_res ["ID"]. " 
"; // print rezultatul) ecou"
"; } ?>

Rulați scriptul php de mai multe ori în fișier separat sau în consola pkhp din panoul de administrare Bitrix până când mesajele despre generarea cu succes a codului simbolic încetează să mai apară. Ca rezultat, un șir latin va apărea în câmpul „Cod simbol” sub forma controlului numeric corespunzător.

Schiuri pentru copii: lyzhi-detskie
Jucărie LEGO: igrushka-lego

Data publicării: 12.12.2011

A fost nevoie de câteva zile în urmă pentru a genera coduri de simbol pentru secțiuni și pentru elemente din blocul de informații „Catalogul mobilierului” din Bitrix.

Ce cod de caractereîn secțiunea sau elementul infoblocului în Bitrix? Codul simbolic al unui element de blocare (secțiune) din Bitrix înseamnă identificator mnemonic, care este un set de caractere (litere și cifre latine). Acest identificator mnemonic poate fi utilizat pentru a forma adresele URL ale linkurilor de pagini dinamice de pe site. De exemplu, dacă elementul "Spațiu canapea" din secțiunea "Mobilier tapițat" are codul simbolic "divan-cosmos", atunci link-ul de pe site poate arăta ca - "/ catalog / myagkaya-mebel / divan-cosmos"

Făcută într-o plimbare, întrebarea principală a fost ce metodă să transliterați. Primul gând este să compui într-adevăr un fel de metodă proprie. Se îndepărtă imediat. Din simplul motiv că - la urma urmei, cum sunt generate aceste coduri simbolice în CMS? Cum sunt generate? Deci există o metodă! Da el este.

Există o funcție atât de simplă încât, dintr-un anumit motiv, nu este încă descrisă în documentația oficială de pe API-ul Bitrix. (la momentul redactării acestui document (decembrie 2011) nu exista nicio mențiune în documentație)

CUtil :: translit ($ str, $ lang, $ params = array ())

Funcția transliterează șirul $ str din limbă $ lang cu parametri $ params.

Parametrii matricei $ params:

În versiunile noi ale nucleului (am văzut în 11.5.2), exista parametru nou „safe_chars”, implicit la "", a comentat și "use_google", implicit la false.

EXEMPLU de utilizare:

"-", "replace_other" => "-"); $ trans = Cutil :: translit ($ nume, "ru", $ arParams); echo $ trans; ?>

UPD. O întrebare a fost adresată în comentarii:
„Și poți pur și simplu unde să înregistrezi ceva în Bitrix, astfel încât CNC-ul generat la importarea infoblocurilor să funcționeze?”
Întrebarea este incorectă și îmi este greu să o înțeleg. Dar, ca un caz special, voi da un astfel de exemplu -
sarcina este de a genera coduri simbol pentru produse la importul unui catalog comercial din CSV.

"-", "replace_other" => "-"); $ trans = Cutil :: translit ($ nume, "ru", $ arParams); $ arFields ["CODE"] = $ trans; ))?>

Astfel, la importul dintr-un fișier CSV, va fi generat automat un cod simbolic - o transliterare din nume.

UPD2 important.

Am început să pun întrebări că transliterarea nu funcționează, vezi comentariile. Am decis să-mi dau seama, dar nu pot reproduce problema pe niciunul dintre proiectele mele actuale și vechi - totul este în regulă cu mine. Dar oamenii nu?

SOLUŢIE!

Problema se datorează codării. Adăugați la .htaccess:

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

Ce se întâmplă dacă asta nu ajută? Mergem la panoul de administrare de pe pagina „verificare site”, executăm verificarea. Dacă rămâne în verificare un mesaj despre o codificare incorectă, nu vă descurajați. Fie trebuie să contactați gazda pentru a remedia aceste setări, fie să uitați de funcția de transliterare standard și să scrieți propria dvs. (Și, de asemenea, nu mai fi surprins de toate celelalte erori datorită codificării).

Un cod standard de caractere internaționale în care fiecare caracter este codificat în șapte biți. Subiecte de telecomunicații, concepte de bază EN ISO 7 ...

Cod ISO-7- Codul standard de caractere internaționale (ISO 646 1973), în care fiecare caracter este codificat în șapte biți. În Statele Unite, se numește versiunea ASCII a acestui cod. [E.S. Alekseev, A.A. Myachev. Dicționarul explicativ englez rus de inginerie a sistemelor informatice. Moscova 1993] ... ... Ghidul traducătorului tehnic

Cod (în computer digital)- Cod într-un computer digital, un sistem convențional de caractere pentru reprezentarea informațiilor într-un computer digital. Fiecare K. folosește semnele alfabetului său. Pentru majoritatea K., alfabetele au două caractere sau constau din litere din alfabetul cu două caractere. Forma fizică a lui K. depinde de personaj ... ...

Codul IATA al companiei aeriene- codul IATA al liniei aeriene 2 sau 3 caractere identificator individual atribuit companiei aeriene de către Asociația Internațională a Transportului Aerian (IATA). Acest cod este alocat conform Rezoluției IATA nr. 762 de către sediul asociației din ... ... Wikipedia

Cod- I (cod francez, din latinesc codex un set de legi) este un sistem de semne convenționale (simboluri) pentru transmiterea, prelucrarea și stocarea (memorarea) diverselor informații. Secvența finală a punctelor de cod se numește cuvânt. Numărul de caractere diferite, ... ... Marea Enciclopedie Sovietică

RADIX-50- un cod de caractere care vă permite să scrieți trei caractere într-un singur cuvânt de 16 biți. A fost utilizat în principal pe minicomputere, în principal din familia PDP 11 (computer SM), pentru a stoca numele fișierelor în sisteme de fișiere OS RT 11 și RSX 11, nume de module ... ... Wikipedia

ESCON- Interfață cu canal de fibră (Enterprise Systems Connection) care oferă schimb de informații între serverul IBM zSeries și dispozitivele periferice (sau alt server). Folosit pentru prima dată în serverele Archite ... Wikipedia

adresa- substantiv, m., uptr. adesea Morfologie: (nu) ce? adrese, de ce? adresa, (vezi) ce? adresa, ce? adresa, despre ce? despre adresa; pl. ce? adrese, (nu) ce? adrese, ce? adrese, (vezi) ce? adrese, ce? adrese, despre ce? despre adrese 1. Adresa oricui ... ... Dicționarul explicativ al lui Dmitriev

ID-ul sarcinii- Un cod simbolic atribuit unei sarcini în curs sau gata de executat. [Domarev V.V. Siguranță tehnologia Informatiei... Abordare sistematică.] Subiecte securitate informație EN identificator sarcină ... Ghidul traducătorului tehnic

Pascal (limbaj de programare)- Acest articol sau secțiune necesită revizuire. În Pascal, nu există module, OOP și alte tendințe noi. Descrierile extensiilor ar trebui să fie prezente numai în articolele despre ... Wikipedia corespunzătoare

Pascal (limba)- Semnalul Pascal: procedural Tip de execuție: compilator Introdus în: 1970 Autor (i): Niklaus Wirth Pascal este un limbaj de programare de nivel înalt de uz general. Unul dintre cele mai cunoscute limbaje de programare, pe scară largă ... ... Wikipedia

Cărți

  • Metoda linguoculturologică în frazeologie. Coduri culturale, M. L. Kovshova. Monografia este dedicată studiului lingoculturologic al unităților frazeologice - semne lingvistice, care într-o formă figurativă stochează și transmit din generație în generație atitudinile valorice ale naționalului ... Cumpărați pentru 1053 UAH (numai Ucraina)
  • Metoda lingoculturologică în frazeologie Coduri de cultură, M. Kovshova. Monografia este dedicată studiului lingoculturologic al unităților frazeologice - semne lingvistice, care într-o formă figurativă stochează și transmit din generație în generație valorile naționale ...

Textul scris este format din caractere tipărite - simboluri grafice.
Simbolurile grafice sunt simboluri care au un afișaj vizibil în text.
Toate simbolurile grafice sunt colectate într-un singur set sistem universal Unicode.
Introduceți un caracter grafic Unicode într-un document html
este principalul și singurul scop pentru acest tabel.

Puteți insera un simbol într-un document html într-unul din următoarele moduri:

  1. copiați imaginea simbolului din fereastra browserului în fereastra vizuală a editorului HTML
  2. copiați codul html al caracterului direct în codul documentului html
Să presupunem că acestea sunt două moduri diferite:
  1. introduceți vizual în vizual
  2. încorporați codul în cod.

Fontul simbolului, dimensiunea și culoarea acestuia în HTML pot fi setate cu un cod, cum ar fi:
CODUL CARACTERULUI
Unde,
Arial - font,
10 px - dimensiunea fontului în pixeli,
# ff0000 - codul culorii fontului (roșu)

De exemplu:
☎ - dimensiunea fontului simbolului este de 30 px,
☎ - dimensiunea fontului simbolului este de 30 px, culoare - roșu
☎ - dimensiunea fontului simbolului este de 20 px,
☎ - dimensiunea fontului simbolului este de 10 px.
Aproximativ. Fonturile recomandate pentru inserarea de caractere speciale sunt Arial, Verdana și Tahoma. Aceste fonturi afișează corect caracterele Unicode și, la rândul lor, sunt acceptate corect de aplicațiile web.

  1. "Simbol"
    (afișare simbol vizibilă)
    Din această coloană, puteți copia imaginea simbolului și o puteți lipi în fereastra editorului de text html. Caracterul va fi copiat cu o dimensiune a fontului de 20 px. După finalizarea copierii, poate fi necesar să personalizați dimensiunea fontului direct pentru caracterul copiat.
  2. "Nume"
    (numai pentru personaje importante sau de neînțeles)
    Explicația scopului simbolului, scopul său, exemple ...
  3. „Mnemonică”
    O mnemonică este o construcție literală a formei ", denotând codul alfabetic al unui caracter în HTML. Este inserat direct în codul html al unui document html. Mnemonica este foarte populară printre designerii de machete profesioniști. Sunt perfect amintiți de oameni și sunt acceptate de toate aplicațiile html. Fiecare mnemonic conține un nume alfabetic (denumirea) simbolului său și un semn de serviciu (&), care servește ca semnal pentru citirea codului pentru browser și nu este afișat pe ecranul monitorului. din fiecare mnemonică este unic și ușor de citit, deoarece este derivat din cuvântul englezesc care caracterizează simbolul.

    Mnemonică (greacă) - arta de a-ți aminti ceva. Mnemonica este utilizată pentru a facilita percepția informațiilor greu de reținut atunci când obiectul de stocare este adus într-o stare asociativă cu ceva.

  4. "Cod"
    Codul este un cod zecimal numeric al unui caracter în HTML, cum ar fi &. Inserat direct în codul html al documentului html. Codul zecimal numeric constă dintr-un număr care indică numărul ordinal al unui caracter din sistemul Unicode și mai multe caractere de serviciu (& și #), care servesc drept semnal pentru citirea codului pentru browser și nu sunt afișate pe ecranul monitorului. Codul zecimal numeric este răspândit și utilizat pe scară largă datorită versatilității și ușurinței de percepție.

Controlați caracterele în HTML (XHTML)

Caracterele de control în HTML (XHTML) sunt caractere de serviciu în limbaj HTML care sunt utilizate în aspectul HTML al unei pagini web. Aceste caractere trebuie să fie acceptate de orice browser, deoarece fără ele este imposibil afișare corectă Text HTML. Caracterele de control nu sunt afișate în text și, atunci când sunt introduse direct de la tastatură, sunt interpretate de browser ca semne de punctuație care necesită executarea oricărei acțiuni atunci când pagina este desenată pe ecran.

Este permisă utilizarea simbolurilor de control în textele obișnuite, unde simbolizează concepte umane comune și sunt interpretate de browser ca caractere tipografice obișnuite. Cu această utilizare a simbolurilor de serviciu în textele HTML, este necesar să introduceți nu valoarea simbolului în sine, ci codul HTML al acestuia. Căci, repet, altfel browserul va percepe simbolul serviciului ca un îndemn și nu va afișa corect textul HTML pe ecranul monitorului.

Simbolurile de control și codul lor HTML sunt cunoscute și înțelese de toate browserele fără excepție, ceea ce nu se poate spune, din păcate, despre alte semne care pot fi afișate incorect în diferite browsere sau, și mai rău, nu se afișează deloc.

Sintaxă și punctuație

spațiu de lungime N (spațiu regulat)
spațiu de lungime M (spațiu lung)
- soft carry (caracter neprimabil) - ­
cratim㠖
- lungimea liniei N (liniuță regulată) -
lungimea liniei M (liniuță)
. punct .
, virgulă ,
elipsă …
: colon :
; punct şi virgulă ;
! Semnul exclamarii !
ǃ
? semnul întrebării ?
@ "câine" @
* "stea" *
# "zăbrele" #
ghilimelele din stânga sus ‘
ghilimele unice sus dreapta ’
ghilimele unice din dreapta jos ‚
ghilimele duble sus stânga “
ghilimele duble sus dreapta ”
ghilimele duble în dreapta jos & bdquo „
« ghilimele cu unghi stânga dublu (rus) « «
» ghilimele cu unghi drept dublu (rus) » »
́ semn de accent, exemplu: Vasya ́
" apostrof, exemplu: tu "i "
´ acut, exemplu: Vas'ya ´ ´
paragraf (marca neprimabilă)
§ paragraf § §
ˆ accent (pasăre inversată) ˆ ˆ
ˆ
˜ tilde mici ˜ ˜
˜
¦ linie punctată verticală ¦ ¦
( paranteză rămasă (
) paranteză dreaptă )
paranteză unghiulară stângă
paranteză cu unghi drept
paranteză unghiular stâng, opțiune
paranteză unghiulară dreapta, opțiune
[ paranteză pătrată în stânga [
] paranteză pătrată în dreapta ]
/ slash - caracter slash /
\ backslash \
bară (semn de diviziune)
ǀ bara verticală ǀ
ǁ bara verticală dublă ǁ
overline, exemplu: Vasya‾vasya
¯ macron, exemplu: Vasya¯vasya ¯ ¯

Mărci comerciale și valute

+ un plus + +
minus -
= egal =
± plus sau minus ± ±
× semn de multiplicare × ×
÷ semnul diviziunii ÷ ÷
operator punct (linie mijlocie) ·
operator asterisc (mijlocul liniei)
operator tilde
. marcator listă (mijlocul liniei) . •
¹ supercript "1" ¹ ¹
² supercript "2" ² ²
³ supercript "3" ³ ³
Superscript și subscript în HTML (XHTML)
poate fi inserat folosind etichete și , respectiv:
NUMĂR Superscript→ NUMER Superscript
NUMĂR Indice→ NUMĂR Indice
½ fracțiunea „o secundă” ½ ½
fracțiunea „o treime”
¼ fracțiunea "o pătrime" ¼ ¼
¾ fracțiunea „trei sferturi” ¾ ¾
semn de număr
% la sută %
ppm ‰
° grade ° °
accident vascular cerebral (minute, picioare)
prim dublu (secunde, inci)
Exemplul 1: 30 ° 25 ′ 12 ″
Exemplul 2: 25 ′ 12
µ micro µ µ
π Pi π π
ƒ semnul funcției
(nu trebuie confundat cu „integral”)
ƒ ƒ
ƒ
integral
tăiat zero, set gol
(nu trebuie confundat cu „diametrul”)
diametru (nu trebuie confundat cu latina "o" tăiată)
ø „O” latină în diagonală ø ø
Ø majusculă latină „O” în linie diagonală Ø Ø
marca de lucru
semn de însumare
radical
(rădăcină pătrată sau rădăcină a puterii x)
proporțional
Infinit
injecţie
ortogonal (perpendicular)
semnează în consecință
aproximativ egală
aproape egală
nu este egal
identic
mai puțin sau egal
mai mult sau egal
logic ȘI
OR logic
semnează plus într-un cerc
(suma directa)
multiplicarea în cerc
(produs încrucișat, săgeată de la observator)
ʘ punct într-un cerc
(săgeată către observator)
ʘ

✵ ✵



Ți-a plăcut articolul? Împărtășește-l