Notele mele sunt concepute în primul rând pentru webmasterii începători. În ciuda acestui fapt, dezvoltatorii experimentați vor găsi aici și ceva interesant pentru ei înșiși.
În blogul meu, voi publica articole despre tehnologiile web moderne (HTML5, CSS3 și altele). Dacă în timp ce lucrează la un proiect Descopăr soluție „proaspete“ la o problemă, eu scriu aici despre acest lucru care mă permite, dacă este necesar, să aplice aceste cunoștințe în viitor.
Sper că informațiile vor fi utile vizitatorilor.
Mai întâi, voi adăuga un nou câmp personalizat la secțiunea blocului de informații. Tipul de câmp este șir. Sistemul acceptă diferite tipuri de câmpuri de utilizare. De exemplu, un număr întreg, dată / oră, fișier, listă și altele. Pentru experimentele mele, am ales blocul de știri. În câmpul adăugat, voi stoca o anumită valoare, câmpul pe care îl voi numi "UF_MY_FIELD".
În general, puteți adăuga un nou câmp personalizat în secțiunea de setări a părții administrative a site-ului: Setări → Setări produs → Câmpuri personalizate. dar va fi mai corect să faceți acest lucru pe fila "Adăugați. proprietăți "ale oricărei secțiuni a unui bloc de informații specific, dacă câmpul este adăugat la secțiune.
Acum umple unul dintre câmpurile la interfața cu un ID de 5 - „Expoziții“ (bloc de informații „News“). Valoarea acestui câmp este "Test". În continuare, vă voi arăta cum să obțineți valoarea acestui câmp de pe pagina de web, de exemplu, în lista de componente partițiile directoare »(bitrix: catalog.section.list).
Mai întâi, creați o nouă pagină în rădăcina site-ului numită test.php. Am plasat pe el componentul bitrix: catalog.section.list și facem setările.
Apoi, copiem șablonul de componente în dosarul șablonului nostru de site. Apelați noul șablon "test_fields". Creați fișierul result_modifier.php în folderul șablon "nou". În acesta vom "ocoli" arrayul $ arResult și vom adăuga date din câmpurile secțiunii utilizatorului, dacă acestea nu sunt goale. Fișierul va conține următorul cod:
Pentru testare, puteți imprima matricea modificată folosind print_r ().
Codul folosește funcția CAllUserTypeManager :: GetUserFields (). returnează o matrice cu informații despre valoarea câmpului personalizat.
CAllUserTypeManager :: GetUserFields (
cod entityID,
int ElemID,
string fieldName)
Acum că valoarea câmpului personalizat este în array $ arResult. îl puteți afișa în șablonul de componente. De exemplu, voi scoate valoarea elementului matrice $ arSection ["UF_MY_FIELD"] după numele partiției. Pentru a face acest lucru, modificați codul în șablonul de componente:
Și obținem rezultatul:
Deși exemplul prezentat în articol nu este deosebit de util, acesta arată cum puteți accesa valoarea câmpurilor personalizate din șablonul de componente.