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

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

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

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

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

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

Scroll

Hook_menu Drupal 7-ում՝ էջերի ստեղծում մոդուլի միջոցով

11/05/2025, by Ivan

Նախորդ դասում մենք ուսումնասիրեցինք, թե ինչպես արտածել տեղեկություն բազայից Drupal API-ի միջոցով՝ մասնավորապես hook_block_info() և hook_block_view() hook-երի միջոցով։ Այս դասում մենք կարտածենք էջեր, ավելի ճիշտ՝ hook_menu()-ի միջոցով կկապենք էջը Drupal-ի այլ մասերի՝ մենյուի, թարգմանությունների մոդուլի, շաբլոնների և այլն։

Սկսենք պարզից՝ կարտածենք վերջին 10 նորությունների վերնագրերն ու նկարագրությունները։ Կօգտագործենք hook_menu():

hook_menu()

Սահմանում է մենյուի տարր և վերադարձնում է էջ։

Այս hook-ը մոդուլի մեջ գրանցում է ճանապարհ, որը կվերաբերվի Drupal-ի կողմից։ Այն կարող է ուղղակի գրանցվել կամ հայտնվել նաև մենյուում։ Արդյունքը պահվում է քեշում, այնպես որ փոփոխություններից հետո անհրաժեշտ է մաքրել քեշը։

hook_menu()-ը վերադարձնում է ասոցիատիվ զանգված, որի բանալիները ճանապարհներն են, իսկ արժեքները՝ հատկությունների զանգվածներ։

Օրինակ՝

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

  $items['page_example'] = array(
    'title' => 'Օրինակ էջ',
    'description' => 'Սովորական էջ',
    'page callback' => '_page_example',
    'access callback' => TRUE,
    'expanded' => TRUE,
  );

  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; }

Հիմա ավելացնենք էջը նաև հիմնական մենյուի մեջ՝ օգտագործելով type և menu_name՝

$items['page_example'] = array(
  'title' => 'Օրինակ էջ',
  'description' => 'Սովորական էջ',
  'page callback' => '_page_example',
  'access callback' => TRUE,
  'expanded' => TRUE,
  'type' => MENU_NORMAL_ITEM,
  'menu_name' => 'main-menu',
);

Add menu

Կարելի է նաև էջը տեղադրել ադմինիստրատիվ մենյուում՝

$items['admin/config/content/page_example'] = array(
  'title' => 'Օրինակ էջ',
  'description' => 'Սովորական էջ',
  'page callback' => '_page_example',
  'access arguments' => array('administer site configuration'),
);

Drupal add menu page

Եթե օգտագործենք admin/config/people/* ճանապարհը, էջը կհայտնվի "Օգտատերեր" բաժնում։

Այժմ մենք արդեն գիտենք ինչպես ստեղծել բլոկներ և էջեր՝ օգտագործելով հիմնական hook-երը։ Դրանք հաճախ են պետք լինում ձեր մոդուլներում։

Հաջորդ դասում կծանոթանանք hook_perm()-ին՝ օգտվողների թույլտվություններ ստեղծելու համար։