logo

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

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

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

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

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

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

Scroll

Custom մոդուլի համար Twig սեփական կաղապարներ ստեղծելը

19/06/2025, by Ivan

Menu

Ընդհանուր գաղափարն Drupal 8-ում այն է, որ ցանկանում եք խուսափել HTML-ի ուղղակի ստեղծումից ձեր օգտատերային մոդուլի PHP կոդում։ Դուք ուզում եք, որ դա կատարվի Twig կաղապարներով։ Նոր Twig կաղապարներ ստեղծելու համար ձեր մոդուլում, կատարեք հետևյալ քայլերը։

Քայլ № 1՝ Օգտագործեք hook_theme ֆունկցիան .module ֆայլում
Ստեղծեք [module].module ֆայլ, եթե այն դեռ չկա, և ավելացրեք կոդ, որը սահմանում է ձեր Twig կաղապարներից յուրաքանչյուրին։ Մասիվի յուրաքանչյուր տարրի բանալին կլինի այն, ինչ կպահանջվի կաղապարը հետագայում կանչելու համար։ Թողեք անուններում առանց գծանշումների (тире):

function test_twig_theme($existing, $type, $theme, $path) {
  return [
    'my_template' => [
      'variables' => ['test_var' => NULL],
    ],
  ];
}

Տեսեք hook_theme() դոկումենտացիան։

Քայլ № 2՝ Կաղապարի կանչ
Այնտեղ, որտեղ դուք վերադարձնում եք render array (օրինակ՝ ձեր մոդուլի routing.yml ֆայլից կանչվող կոնտրոլլերի մեթոդում), կանչեք Twig կաղապարը։ Ստորև նշված է օրինակ՝ մոդուլի կոնտրոլլեր, որը կանչվում է routing.yml ֆայլից։ (Սա ավելացուցիչ տեղեկություններ է պահանջում)

/**
 * @file
 * Contains \Drupal\test_twig\Controller\TestTwigController.
 */
 
namespace Drupal\test_twig\Controller;
 
use Drupal\Core\Controller\ControllerBase;
 
class TestTwigController extends ControllerBase {
  public function content() {
 
    return [
      '#theme' => 'my_template',
      '#test_var' => $this->t('Test Value'),
    ];
 
  }
}

Դուք նաև կարող եք օգտագործել render մեթոդը արդյունքը ստեղծելու համար, եթե ցանկանում եք դա օգտագործել ձեր կոդի այլ աշխատանքային հոսքի մասով՝

$renderable = [
  '#theme' => 'my_template',
  '#test_var' => 'test variable',
];
$rendered = \Drupal::service('renderer')->renderPlain($renderable);

Կատաղ կետ է, որ սա բազային իրականացում է, որը չի իրականացնի որևէ cache պահպանում։ Render API Overview փաստաթղթում ավելացուցիչ տեղեկություններ կան, թե ինչպես կարելի է ավելացնել cache։ Cache-ի պարագայում, եթե փոփոխեք փոփոխականների անունները (օրինակ՝ «test_var»-ը «my_var»-ի), պետք կլինի թարմացնել cache-ը։

Քայլ № 3՝ Ստեղծել Twig կաղապար
Ձեր մոդուլի ներսում, կաղապարների պանակում ստեղծեք Twig կաղապար։ Ֆայլի անունը պետք է համընկնի hook_theme()-ում սահմանած անունին (փոխարինելով ստորակետերը գծանշումներով)։ Այս դեպքում ֆայլի անունը կլինի my-template.html.twig։
Ահա այն ֆայլը, որը ես օգտագործեցի թեստավորելու համար՝

<p>Test twig template!</p>
 
<p>test_var: {{ test_var }}</p>

Գեղեցկությունն այն է, որ ձեր մոդուլում սահմանված կաղապարի ֆայլը կկիրառվի, եթե այդ նույն անունով ֆայլ չկա ձեր թեմայում։ Պարզապես տեղադրեք ֆայլը ձեր թեմայի կաղապարների պանակում, մաքրեք cache-ը (drush cache-rebuild), և այն կկարդա այդ ֆայլը։

Կարող եք ֆայլը տեղադրել ձեր կայքի թեմայի ցանկացած ենթապանակում՝ կազմակերպված լինելու համար։

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.