Ссылка с html кодом в анкоре
В семёрке в функцию l можно было передать третьим аргументом 'html' => TRUE
В восьмёрке этого нет. Вместо этого анкор ссылки надо превратить в Markup.
Простой пример:
//не забываем 'style_name' => 'thumbnail', 'uri' => $file->getFileUri(), ); $image = \Drupal::service('image.factory')->get($variables['uri']); if ($image->isValid()) { $variables['width'] = $image->getWidth(); $variables['height'] = $image->getHeight(); } else { $variables['width'] = $variables['height'] = NULL; } $preset = [ '#theme' => 'image_style', '#width' => $variables['width'],
//с обёрткой return [ '#type' => 'markup', '#markup' => $this->t('Content of page') ]; //без обёртки(аналог MENU_CALLBACK) return new Response('Content of page'); //тоже самое, только будет жёстко кэшироваться. return new HtmlResponse('Content of page'); //Не забываем use Symfony\Component\HttpFoundation\Response;
//было variable_set('key','value') //стало \Drupal::state()->set('key','value'); //было variable_get('key','value') //стало $val = \Drupal::state()->get('key'); //было variable_del('key') //стало $val = \Drupal::state()->delete('key'); //и даже так ещё стало $values = [ 'key' => 'value', 'key2' => 'value2' ]; \Drupal::state()->setMultiple($values); $keys = [ 'key', 'key2' ]; $pairs = \Drupal::state()->getMultiple($keys); //было watchdog('type', 'message'); //стало
//например конфиг block.block.bartik_tools //вытянет всё $conf = \Drupal::config('block.block.bartik_tools')->get(); //покажет только элемент 'region' $conf = \Drupal::config('block.block.bartik_tools')->get('region'); //посмотреть kint($conf);
//id блока. Например system_powered_by_block,shortcuts или search_form_block $bid = 'system_powered_by_block'; $block_manager = \Drupal::service('plugin.manager.block');