Unele trucuri de lucru în Bitrix pe SQL și BASH-1
- 03.03.17 11:42 •
- parserme •
- # 323152
- Habrahabr •
- 9 •
- 1800
- la fel ca Forbes, doar mai bine.
Continuu să scriu despre Bitrix în contextul schimburilor, a lui Mysql și a liniei de comandă Linux.
Articolul se referă la chestiuni mai degrabă private care nu apar zilnic. Desigur, puteți utiliza aceste materiale în scopul propus, însă scopul principal al articolului nu este acesta. Încep să deschidă „cutia neagră“ numit „structura bazei de date Bitrix“, și arată că aceste cunoștințe pot fi utile pentru a crește nivelul de cunoaștere a tehnologiilor atât a sistemului și de bază (SQL, Linux shell), care, desigur, ajuta la rezolvarea noi, activități complexe, interesante și diverse.
Pagina din care puteți face interogări SQL în baza de date sau în browserul bitrix mysql web, este localizată în panoul de control Bitrix sub calea "Setări-> Instrumente-> interogare SQL".
De asemenea, puteți face cereri din linia de comandă a sistemului de operare, pentru care vă pot oferi o operație simplă de extragere a unui login și a parolei direct din setările Bitrix:
- astfel încât să puteți obține login și parola în baza de date Mysql Bitrix din linia de comandă linux pe bash. Modele, desigur, înlocuiți-vă cu propria dvs. În versiunea furnizată de mașina virtuală Bitrix, DOCUMENT_ROOT arată ca / home / bitrix / www /.
1. Configurați simultan "Favorite" pentru toți utilizatorii panoului de control Bitrix.
Când un nou site este introdus, dezvoltatorul nu dorește să explice tuturor celor care adaugă știri sau editează paginile, ce trebuie să faceți pentru a ajunge la știri sau catalog de produse. Este mai bine să afișați legăturile direct pe pagina de pornire a panoului de control Bitrix, mai ales că în Bitrix desktop-ul din panoul de administrare este în acest scop.
Dacă setările așa-numitei "desktop" pot fi extinse la toți cei care intră în zona de administrare Bitrix, atunci coloana "Favorite" este completat doar de utilizator. Acest lucru este logic, dar, de obicei, utilizatorii neglijează o astfel de oportunitate, așa că vom face acest lucru pentru ei.
În plus, nu totul poate fi plasat pe "Desktop", iar în "Favorite" puteți adăuga orice, chiar și un link către o resursă terță parte, de exemplu, la poșta sau la biletele serviciului de suport tehnic al unui alt sistem.
Completați blocul "Favorite" în zona de administrare Bitrix pentru toți administratorii de conținut pe care panoul de control nu le permite: nu există un astfel de buton. Prin urmare, mai întâi adăugați link-urile necesare pentru blocul "Favorite" pentru tine.
Aflați codul dvs. de utilizator. Dacă sunteți administrator (admin) în panoul de control, atunci ID-ul dvs. de utilizator = 1.
Evident, aceste date se referă la utilizator, iar prima privire se îndreaptă spre tabelele care încep cu b_user_, care în baza de date Bitrix sunt de la o duzină. Cu toate acestea, tabelul de care avem nevoie nu are un astfel de prefix și se numește b_favorites.
Acest tabel conține câmpul COMMON, care pentru toate înregistrările are valoarea "N". După cum reiese, funcția de afișare a celor selectați pentru toți utilizatorii este și câmpul COMMON din tabelul b_favorites justifică pe deplin numele acestuia.
Nici nu trebuie să duplicăm înregistrările administratorului pentru toți utilizatorii (și cum ar fi atunci cu noii administratori ai site-ului.) Faceți clic pe mysql trigger. Acum, toți utilizatorii panoului de administrare Bitrix văd același "Favorite" ca și dvs. Problema este rezolvată.
2. Cum se schimbă numele de utilizator și parola utilizatorului Bitrix prin intermediul bazei de date. Cum se resetează parola de administrator Bitrix.
Dacă nu puteți introduce panoul de control Bitrix, dar baza de date este disponibilă, puteți să vă setați propria parolă pentru utilizator sau să o faceți ca și pentru alți utilizatori ale căror parole știți.
Datele principale ale tuturor utilizatorilor sunt stocate în tabelul b_user. Trebuie să cunoașteți ID-ul de utilizator în sistemul Bitrix.
Configurarea propriului login și parolă Bitrix folosind Mysql
Parola este stocată în baza de date ca:
Ei spun că au schimbat altceva, dar dacă faceți acest lucru, va funcționa.
unde
autentificare nouă utilizator
12345678 - sare
id password stupid - parola de utilizator nouă
id = 8 - ID utilizator (dacă admin, apoi = 1)
Bitrix-ul cu parola este resetat, sarcina este rezolvată. În același timp, vă puteți schimba datele de conectare.
Și al doilea mod foarte simplu de a reseta parola în Bitrix.
De data aceasta, trebuie doar să transferăm hash-ul parolei de la un utilizator la altul. Desigur, trebuie să cunoașteți ID-ul ambilor utilizatori în Bitrix, în acest caz utilizatorul cu ID = 36 am setat parola de la utilizator cu ID = 895.
3. Aplicați setarea marjelor la editarea comenzilor în zona de administrare Bitrix pentru toți utilizatorii.
Într-o anumită zonă a domeniului de nivel secundar, la un site în panoul administrativ sistemul de management Bitrix este magazin pagina de editare comanda on-line în antetul tabelului în cazul în care mărfurile au butonul setări sub formă de unelte, iar butonul este apoi albastru, apoi gri ...
Făcând clic pe acest buton, puteți specifica câmpurile de comandă care vor fi afișate în tabel, inclusiv proprietățile comenzii personalizate. Dar, în același timp, acest lucru este setat numai pentru un utilizator.
Pentru a aplica aceste setări pentru toți utilizatorii de pe panoul de control Bitrix, mai degrabă decât pentru a explica tuturor, „faceți clic pe butonul mic din antetul de tabel cu mărfurile, puteți vedea o listă de proprietăți ... Selectați dorit. ", Setați setările prin baza de date.
Aceste setări sunt stocate în tabela b_user_option, care sunt mapate către un anumit utilizator prin câmpul user_id. Dar există o particularitate: dacă user_id = 0, atunci proprietatea este globală și este aplicată tuturor utilizatorilor.
unde user_id = 1 este ID-ul de utilizator sub care ați configurat tabela de produse. Dacă aceasta este admin, atunci ID = 1.
Sarcina este rezolvată: acum setările pentru tabelul de produse funcționează pentru toate odată.
4. Sortați rezultatele căutării în bitrix prin propriul algoritm.
Dacă este o căutare pentru un site, tabela principală pentru modulele de căutare din bitrix este b_search_content.
Categorii interesante din tabela b_search_content:
custom_rank - câmpul prin care sortarea funcționează înainte de toate celelalte câmpuri
param1 - cod bloc de informații
param2 - numărul blocului de informații
module_id - = 'iblock'
item_id - id al unui element sau secțiune
- pentru căutarea în blocurile de informații.
În primul rând, suntem interesați de domeniul custom_rank.
Dacă în cazul anterior am folosit abilitățile furnizate, dar nerealizate ale Bitrix, atunci există o "verificare" specială pentru acest câmp în panoul de control. Dar este setat separat pentru fiecare element și, de obicei, această caracteristică nu este utilizată.
Acest câmp se dovedește a fi numeric, așa că îl vom umple la propria noastră discreție, stabilind astfel propriile reguli pentru sortarea rezultatelor căutării. În mod implicit, pentru toate elementele, valoarea sa este zero.
În cazul meu, atunci când caută articole în magazinul catalog online implementat pe romza decizie Developer, a fost necesar mai întâi să afișeze acele produse care au o bifă specială a fost stabilit, care este „proprietatea“, care corespunde prezenței mărfurilor într-un anumit punct de vânzare. Zboara toate aceste lucruri cu încărcare elementare de 1C, astfel încât interogarea SQL a fost spânzurat la sfârșitul schimbului de evenimente cu 1C.
În configurația blocului de informații, trebuie să specificați "Valorile proprietăților sunt stocate: în tabelul comun (implicit)" și nu într-un tabel separat, altfel interogarea va arăta ușor diferită.
Acum, datorită faptului că cererea merge mai întâi pe masa de b_iblock_element_property, nu b_iblock_element, care este elementele de stocare primare de blocuri de informații, vom selecta doar acele elemente care au proprietatea dorită de orice, și dacă este egală cu valoarea dorită, apoi se ridica custom_rank în caz contrar, acesta este resetat la zero.
În cazul meu, problema este rezolvată și, pentru dvs., există o sferă de aplicare completă pentru implementarea propriei logici pentru a sorta rezultatele căutării. Și dacă nu cunoașteți în totalitate aceste nume de tabele, atunci în articolul următor le voi dezvălui scopul în detaliu.
Cum să curățați rapid cache-ul în Bitrix.
"Și pe footer.php": Ștergerea cache-ului în Bitrix prin panoul de control este foarte lentă. De fapt, este doar ștergerea fișierelor în anumite directoare, este doar făcut prin mijloace lente. Să facem un fișier special pentru curățarea cache-ului în bitrix de pe linia de comandă linux.
Acum puteți rula ./clearcache.sh, iar memoria cache Bitrix va fi eliminată aproape instantaneu.
Acest script ar trebui să fie pe un director mai mare decât DOCUMENT_ROOT de pe site-ul dvs. Deși puteți schimba locația locației și a codului, punctul este că trebuie să ștergem toate fișierele din directoare:
ascunzătoare
managed_cache
stack_cache - a existat anterior acest director, dar în ultimele versiuni nu îl urmăresc, așa că acum fără el.
De fapt, dacă ștergeți directoarele, nu se va întâmpla nimic, ele vor fi recreate. Dar este mai corect să le lași.
Într-o mașină virtuală Bitmax, DOCUMENT_ROOT este egală cu / home / bitrix / www /, dacă aveți un site instalat într-un alt director, corectați scriptul în funcție de căile dvs.
Vă puteți ajuta și puteți transfera niște bani la dezvoltarea site-ului