Լրացուցիչ Բլոկների Տեսակներ (EBT) - Դասավորության Կառուցողի նոր փորձառություն❗

Լրացուցիչ Բլոկների Տեսակներ (EBT) - ձևավորված, կարգավորելի բլոկների տեսակներ՝ սլայդշոուներ, ներդիրներ, քարտեր, բացվող ցանկեր և շատ ուրիշներ։ Ներառված կարգավորումներ՝ ֆոնի, DOM տուփի, JavaScript փլագինների համար։ Փորձեք դասավորությունների կառուցման ապագան արդեն այսօր։

EBT մոդուլների ցուցադրական տարբերակներ Ներբեռնել EBT մոդուլները

❗Լրացուցիչ Պարբերությունների Տեսակներ (EPT) - Պարբերությունների նոր փորձառություն

Լրացուցիչ պարբերության տեսակներ (EPT) - անալոգիական պարբերության վրա հիմնված մոդուլների հավաքակազմ։

EPT մոդուլների ցուցադրական տարբերակներ Ներբեռնել EPT մոդուլները

Scroll

Աշխատանք տվյալների բազայի հետ Drupal 7-ում - Դաս 12 - Հարցման պայմաններ (WHERE, HAVING, LIKE)

12/05/2025, by Ivan

Հարցման պայմանները թույլ են տալիս ընտրել միայն այն գրառումները, որոնք համապատասխանում են որոշակի սահմանափակումներին, օրինակ՝ երկու շաբաթից ավելի վաղ չստեղծված նոդերը, կամ տերմինները, որոնցում կա "դրուպալ" բառը։ SQL-ում մենք օգտագործում ենք WHERE և HAVING՝ սահմանափակումներ կիրառելու համար SELECT, UPDATE, DELETE հարցումների վրա։ Դինամիկ հարցումներում ևս իրականացված է պայմանների հետ աշխատելու մեխանիզմ։ Այս մեխանիզմը նույն կերպ է աշխատում բոլոր երեք տեսակի հարցումների համար՝ SELECT, UPDATE, DELETE։

Պայմանական արտահայտությունների հայեցակարգ

Պայմանը պարունակվում է հատուկ արտահայտության մեջ, որը սահմանում է սահմանափակումը։

Միավորում (AND, OR)

Յուրաքանչյուր պայման կարող է բաղկացած լինել մի քանի արտահայտություններից, որոնք միացվում են միմյանց հետ։ Պայմանները միացվում են AND (ԵՎ) և OR (ԿԱՄ) օպերատորների միջոցով։

Պայմանի օբյեկտ

Drupal-ը ներկայացնում է յուրաքանչյուր պայման որպես QueryConditional դասի օրինակ։ Պայմանի օբյեկտը այս դասի օրինակ է։

Օրինակ SQL հարցում․

SELECT FROM {mytable} WHERE (a = 1 AND b = 'foo' OR (c = 'bar'))

Պայմանի արտահայտություն․

WHERE (a = 1 AND b = 'foo' OR (c = 'bar'))

Պայմանի մասեր․

(a = 1 AND b = 'foo' OR (c = 'bar'))
(c = 'bar')

Միացման օպերատորներ՝

AND, OR

SELECT, UPDATE, DELETE հարցումների օբյեկտները իրականցվում են QueryConditionalInterface դասի միջոցով, որը տրամադրում է պայմանների հետ աշխատելու միջերես։

API

Երկու հիմնական մեթոդ կա՝

$query->condition($field, $value = NULL, $operator = '=')

condition() մեթոդը թույլ է տալիս սահմանել դաշտը, արժեքը և համեմատման օպերատորը։ Օրինակ՝ =, <, >=, LIKE և այլն։ Լռելյայն օգտագործվում է =։

$query->where($snippet, $args = array())

where() մեթոդը թույլ է տալիս գրել ուղղակի SQL արտահայտություն և փոխարինման արժեքներ։

Ցանկալի է condition() օգտագործել where()-ի փոխարեն։

Պայմաններ զանգվածներով

$query->condition('myfield', array(1, 2, 3), 'IN');

Ստեղծում է՝ myfield IN (:placeholder_1, :placeholder_2, :placeholder_3)

$query->condition('myfield', array(5, 10), 'BETWEEN');

Ստեղծում է՝ myfield BETWEEN :placeholder_1 AND :placeholder_2

Բովանդակված (nested) պայմաններ

condition() կարող է ընդունել այլ պայմանների օբյեկտներ։ Օրինակ՝

$query
  ->condition('field1', array(1, 2), 'IN')
  ->condition(db_or()->condition('field2', 5)->condition('field3', 6));

Կստացվի՝

(field1 IN (...) AND (field2 = ... OR field3 = ...))

NULL արժեքներ

$query->isNull('myfield');
$query->isNotNull('myfield');

Ուշադրություն․ condition('myfield', NULL) այլևս չի օգտագործվում, փոխարենը օգտագործեք isNull() կամ isNotNull()։

Ենթահարցում (Subquery)

db_delete('sessions')
  ->condition('timestamp', REQUEST_TIME - $lifetime, '')
  ->execute();
db_update('sessions')
  ->fields(['sid' => session_id()])
  ->condition('sid', $old_session_id)
  ->execute();
$or = db_or()->condition('tid1', 5)->condition('tid2', 6);
db_delete('term_relation')->condition($or)->execute();