logo

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

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

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

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

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

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

Scroll

Կոնֆիգուրացիոն ֆորմաների հետ աշխատանք

19/06/2025, by Ivan

$config-ի օգտագործումը ֆորմայի համատեքստում

Դուք կարող եք օգտագործել կոնֆիգուրացիոն ֆորմաներ՝ հասկանալու համար, թե ինչպես է $config-ը կարողանում ստանալ օգտատիրոջ մուտքագրված տվյալները և փոփոխել տվյալները {module}.settings.yml ֆայլում։ Ստորև ներկայացված է կոդ, որը հայտարարում է $config օբյեկտը ֆորմայում, որը կարող եք գտնել PHP ֆայլում՝ ֆորմայի կարգավորումների համար։

Drupal Core-ի ConfigFactory դասը ընթերցանության և գրառման համար է կոնֆիգուրացիայի տվյալների, և այն օգտագործվում է Config օբյեկտի օրինակ ստեղծելու համար՝ նշված կոնֆիգուրացիոն ֆայլի պարունակությամբ։ Նոր Config օբյեկտը կարող է օգտագործվել տվյալների հետ CRUD գործողություններ կատարելու համար։

Config

Ֆորմայի սահմանման օրինակ (գտնվում է example/src/Form/exampleSettingsForm.php ֆայլում):

namespace Drupal\example\Form;

use Drupal\Core\Form\ConfigFormBase;
use Drupal\Core\Form\FormStateInterface;

/**
 * Կայքի համար example կարգավորումների կոնֆիգուրացիա։
 */
class ExampleSettingsForm extends ConfigFormBase {

  /** 
   * Կարգավորումների անունը։
   *
   * @var string
   */
  const SETTINGS = 'example.settings';

  /** 
   * {@inheritdoc}
   */
  public function getFormId() {
    return 'example_admin_settings';
  }

  /** 
   * {@inheritdoc}
   */
  protected function getEditableConfigNames() {
    return [
      static::SETTINGS,
    ];
  }

  /** 
   * {@inheritdoc}
   */
  public function buildForm(array $form, FormStateInterface $form_state) {
    $config = $this->config(static::SETTINGS);

    $form['example_thing'] = [
      '#type' => 'textfield',
      '#title' => $this->t('Things'),
      '#default_value' => $config->get('example_thing'),
    ];  

    $form['other_things'] = [
      '#type' => 'textfield',
      '#title' => $this->t('Other things'),
      '#default_value' => $config->get('other_things'),
    ];  

    return parent::buildForm($form, $form_state);
  }

  /** 
   * {@inheritdoc}
   */
  public function submitForm(array &$form, FormStateInterface $form_state) {
    // Վերցնել կոնֆիգուրացիան։
    $this->configFactory->getEditable(static::SETTINGS)
      // Կարգավորումների արժեքը սահմանել։
      ->set('example_thing', $form_state->getValue('example_thing'))
      // Կարող եք միանգամից սահմանել բազմաթիվ կարգավորումներ՝
      // set() մեթոդը բազմակի անգամ կանչելով։
      ->set('other_things', $form_state->getValue('other_things'))
      ->save();

    parent::submitForm($form, $form_state);
  }

}

Մարսրուտի ֆայլ (example.routing.yml):

example.settings:
  path: '/admin/config/example/settings'
  defaults:
    _form: '\Drupal\example\Form\ExampleSettingsForm'
    _title: 'example'
  requirements:
    _permission: 'administer site configuration'

Config օբյեկտի միջոցով կարող եք հեշտացնել ֆորմայից ստացված տվյալների պահպանումը։ Վերը նշված կոդը ֆորմայի կարգավորումների ֆայլում թույլ կտա պահել ֆորմայի տվյալները {module}.settings.yml ֆայլում։

Բոլոր դասեր, որոնք ընդլայնում են ConfigFormBase-ը, պետք է իրականացնեն getEditableConfigNames() մեթոդը և վերադարձնեն այն կոնֆիգուրացիոն դաշտերի անունների զանգվածը, որոնք նրանք կխմբագրեն։

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.