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

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

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

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

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

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

Scroll

hook_permission Drupal 7 մուտքի թույլտվություններ տարբեր դերերի համար

11/05/2025, by Ivan

Նախորդ դասերում մենք արտածում էինք էջեր և բլոկներ տարբեր տեղերում, ինչպես նաև օգտագործում էինք access arguments և access callback հատկությունները՝ էջերին հասանելիությունը սահմանափակելու համար։ Այս դասում մենք կստեղծենք օգտվողների թույլտվությունների ճկուն վերահսկման հնարավորություն՝ օգտագործելով hook_permission() (Drupal 6-ում՝ hook_perm()

hook_permission()

Սահմանում է օգտվողի թույլտվությունները։

Այս hook-ը թույլ է տալիս մոդուլին ավելացնել թույլտվություններ, որոնք կառաջարկվեն կայքի ադմինիստրացիայի «Թույլտվություններ» էջում։

Վերադարձվող արժեք

Ասոցիատիվ զանգված, որի բանալիները թույլտվությունների մեքենայական անուններն են, իսկ արժեքները՝ ենթամասիվներ՝ հետևյալ հատկություններով՝

  • title: Թույլտվության անվանումը (tr-ի մեջ)
  • description: (ըստ ցանկության) Բացատրություն թույլտվության նպատակով (tr-ի մեջ)
  • restrict access: (ըստ ցանկության) TRUE եթե պետք է սահմանափակվի միայն վստահելի օգտվողներով
  • warning: (ըստ ցանկության) Սեփական զգուշացման հաղորդագրություն

Օրինակ կոդ՝

function sitemade_permission() {
  return array(
    'view page example' => array(
      'title' => t('View page example'),
      'description' => t('View simple page example'),
    ),
  );
}

function sitemade_menu() {
  $items = array();

  $items['admin/config/content/page_example'] = array(
    'title' => 'Օրինակ էջ',
    'description' => 'Պարզ էջ',
    'page callback' => '_page_example',
    'access arguments' => array('view page example'),
  );

  return $items;
}

function _page_example($content = NULL) {
  $content = '';
  $query = db_select('node_revision', 'n');
  $query->innerJoin('field_revision_body', 'b', 'b.revision_id = n.vid');
  $query->innerJoin('node', 'd', 'n.nid = d.nid');
  $query->fields('n', array('title', 'nid', 'vid'));
  $query->fields('b', array('body_value'));
  $query->condition('d.type', 'news');
  $query->orderBy('n.timestamp', 'DESC');
  $query->range(0, 10);
  $result = $query->execute();

  while ($nodes = $result->fetch()) {
    $content .= '

' . $nodes->title . '

'; $content .= $nodes->body_value; } return $content; }

Այժմ admin/people/permissions էջում կհայտնվի նոր թույլտվություն՝

Drupal add permission

Ադմինիստրատորի համար նշում ենք թույլտվությունը։ Այժմ admin/config/content/page_example էջը հասանելի կլինի միայն նրանց, ովքեր ունեն այս թույլտվությունը։ Այլ օգտվողները կստանան 403 Access Denied սխալ։

Հաջորդ դասում կստեղծենք ադմինիստրատիվ էջ՝ կայքի կարգավորումների ձևով՝ օգտագործելով Drupal Forms API։