亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄
鑰匙要點(diǎn)
>這裡沒有什麼與眾不同的。如果需要,我們甚至可以啟用模塊。
模板
在Drupal 8
>在Drupal 8中@FieldFormatter註釋的目的是什麼?它包括諸如ID,標(biāo)籤和field_types之類的屬性。 ID是用於格式化器的唯一標(biāo)識(shí)符,標(biāo)籤是人類可讀名稱,而field_types是格式化器支持的字段類型計(jì)算機(jī)名稱的數(shù)組。
>在Drupal 8中將您的自定義字段格式化應(yīng)用於字段,您需要轉(zhuǎn)到內(nèi)容類型,分類學(xué)術(shù)語(yǔ)或其他具有具有該類型的實(shí)體類型的“管理顯示”選項(xiàng)卡場(chǎng)地。在列表中找到字段,然後從“格式”下拉列表中選擇您的自定義格式化器。然後單擊“更新”按鈕並保存更改。
的自定義字段類型創(chuàng)建自定義字段formatter ,您可以為Drupal 8中的自定義字段類型創(chuàng)建自定義字段格式。我可以使用自定義字段格式格式在Drupal 8中顯示鏈接?您需要實(shí)現(xiàn)viewElements()方法來(lái)生成鏈接字段值的渲染數(shù)組。

>如何為Drupal 8中的多值字段創(chuàng)建自定義字段格式化?類並實(shí)現(xiàn)ViewElements()方法。該方法應(yīng)考慮到該字段可能具有多個(gè)值的字段值返回渲染數(shù)組。

首頁(yè) 後端開發(fā) php教程 在Drupal 8中創(chuàng)建自定義字段格式

在Drupal 8中創(chuàng)建自定義字段格式

Feb 18, 2025 am 08:42 AM

在Drupal 8中創(chuàng)建自定義字段格式

鑰匙要點(diǎn)

  • 在Drupal 8中創(chuàng)建自定義字段格式化格式涉及定義自定義模塊的SRC/plugin/field/fieldformatter目錄中的新格式化類別,並從默認(rèn)的ImageFormatter插件延伸。
  • 新的格式類別應(yīng)該覆蓋返回字段數(shù)據(jù)渲染數(shù)組的ViewElements()方法,用自定義替換默認(rèn)的Image_Formatter主題。 在模塊的.module文件中創(chuàng)建了一個(gè)新主題,image_title_caption_formatter,與默認(rèn)image_formatter主題中的相同變量傳遞。
  • 可以通過內(nèi)容類型的“管理顯示”選項(xiàng)卡應(yīng)用自定義字段格式化器,從“格式”下拉下拉下拉下拉列表中的“管理顯示”選項(xiàng)卡中。
  • >請(qǐng)注意,由於開發(fā)過程Drupal 8在撰寫本文時(shí)已經(jīng)進(jìn)行了,因此代碼的某些部分可能已經(jīng)過時(shí)。查看此存儲(chǔ)庫(kù),我嘗試更新示例代碼並使其與最新的Drupal 8版本一起使用。
  • >
  • >隨著帶註釋的插件的引入,在Drupal 8中發(fā)生了很多變化。我們有一種更簡(jiǎn)化的方法來(lái)描述和發(fā)現(xiàn)擴(kuò)展核心的功能。與許多其他組件一起,以前的字段API(較大和合併的實(shí)體API的一部分)現(xiàn)在基於插件。
在本教程中,我們將通過為現(xiàn)有字段定義自定義字段格式(圖像)。我們想要實(shí)現(xiàn)的是使顯示圖像下面的圖像在其下方。如果存在,則該標(biāo)題將是分配給圖像的標(biāo)題值。

我們?cè)诖颂幘帉懙拇a可以在此存儲(chǔ)庫(kù)中找到image_title_caption模塊。但是,讓我們看看我們?nèi)绾芜_(dá)到最終結(jié)果。

> 在Drupal 8中創(chuàng)建自定義字段格式drupal模塊

>讓我們首先創(chuàng)建一個(gè)新的自定義模塊(image_title_caption),只有一個(gè)文件:

image_title_caption.info.yml:

>這裡沒有什麼與眾不同的。如果需要,我們甚至可以啟用模塊。

插件

在Drupal 8中

>,字段格式(例如字段類型和小部件本身)是插件。核心模塊定義了核心模塊,也可以在Drupalcorefieldpluginfieldfieldformatter名稱空間內(nèi)找到。就像我們?cè)谏弦黄恼轮锌吹降哪菢?,我們查看了自定義塊,插件也位於模塊的SRC/插件/文件夾中。對(duì)於字段格式,這將是SRC/Plugin/field/fieldformatter目錄。

name: Image title caption
type: module
description: Uses the image title field as a caption
core: 8.x
dependencies:
  - image
>您可以看到我們自己的格式化類別:

> src/plugin/field/fieldformatter/imageTitleCaption.php:

name: Image title caption
type: module
description: Uses the image title field as a caption
core: 8.x
dependencies:
  - image

這是我們的插件。別無(wú)其他。在類聲明上方,我們有@fieldformatter的註釋,可以通過該註釋找到插件。我們指定插件ID(image_title_caption),標(biāo)籤和一系列字段類型,可以與此格式使用。在我們的情況下,後者僅包含默認(rèn)圖像字段類型,但是如果願(yuàn)意,我們可以支持更多的自定義字段類型。該數(shù)組中的值是插件ID,因此,如果您查看圖像字段類型插件,您會(huì)發(fā)現(xiàn)其ID是Image。

類看起來(lái)很簡(jiǎn)單,因?yàn)槲覀冋趶暮诵膱D像模塊定義的默認(rèn)ImageFormatter插件延伸。出於我們的目的,我們需要覆蓋的只是負(fù)責(zé)返回字段數(shù)據(jù)渲染數(shù)組的ViewElements()方法。後者可以在$項(xiàng)目列表中找到,可以用於渲染和準(zhǔn)備。

>我們?cè)诖朔椒ㄖ幸龅牡谝患率谴_保我們?cè)陧?xiàng)目上調(diào)用父類方法並將其存儲(chǔ)在變量中。這已經(jīng)準(zhǔn)備好將圖像呈現(xiàn),就像通常一樣。

默認(rèn)情況下,ImageFormatter插件(父)在渲染數(shù)組中使用image_formatter主題來(lái)輸出圖像字段值。我們?cè)谶@裡做的是,對(duì)於每個(gè)項(xiàng)目,我們用自己的主題替換此主題:image_title_caption_formatter。然後,我們像父母一樣返回元素(渲染數(shù)組)。

>您會(huì)在Drupal 8中註意到很多:我們可以很好地指出我們需要擴(kuò)展的父級(jí)課程需要做什麼。而且,如果您問我,這比弄清楚某些魔術(shù)鉤或功能的功能要好得多。

主題

>由於我們?cè)谏厦嬷付ǖ膇mage_title_caption_formatter主題到目前為止是虛構(gòu)的,因此我們需要?jiǎng)?chuàng)建它。在我們模塊的.Module文件中,我們需要實(shí)現(xiàn)hook_theme:

image_title_caption.module:

>這看起來(lái)應(yīng)該熟悉,因?yàn)樗cDrupal 7非常相似。請(qǐng)注意我們傳遞給此主題的變量。我們打算覆蓋默認(rèn)的image_formatter主題,因此我們也應(yīng)該在此處傳遞相同的變量。此外,由於對(duì)Image_formatter主題進(jìn)行了預(yù)處理,因此我們還需要為我們的主題創(chuàng)建一個(gè)預(yù)處理程序:
<span><span><?php
</span></span><span>
</span><span><span>/**
</span></span><span><span> * <span>@file
</span></span></span><span><span> * Contains \Drupal\image_title_caption\Plugin\Field\FieldFormatter\ImageTitleCaption.
</span></span><span><span> */
</span></span><span>
</span><span><span>namespace Drupal<span>\image_title_caption\Plugin\Field\FieldFormatter</span>;
</span></span><span>
</span><span><span>use Drupal<span>\Core\Field\FieldItemListInterface</span>;
</span></span><span><span>use Drupal<span>\image\Plugin\Field\FieldFormatter\ImageFormatter</span>;
</span></span><span>
</span><span><span>/**
</span></span><span><span> * Plugin implementation of the 'image_title_caption' formatter.
</span></span><span><span> *
</span></span><span><span> * @FieldFormatter(
</span></span><span><span> *   id = "image_title_caption",
</span></span><span><span> *   label = @Translation("Image with caption from title"),
</span></span><span><span> *   field_types = <span>{
</span></span></span><span><span> *     "image"
</span></span><span><span> *   <span>}
</span></span></span><span><span> * )
</span></span><span><span> */
</span></span><span><span>class ImageTitleCaption extends ImageFormatter {
</span></span><span>
</span><span>  <span>/**
</span></span><span><span>   * <span>{@inheritdoc}
</span></span></span><span><span>   */
</span></span><span>  <span>public function viewElements(FieldItemListInterface $items) {
</span></span><span>    <span>$elements = <span>parent::</span>viewElements($items);
</span></span><span>    <span>foreach ($elements as &$element) {
</span></span><span>      <span>$element['#theme'] = 'image_title_caption_formatter';
</span></span><span>    <span>}
</span></span><span>
</span><span>    <span>return $elements;
</span></span><span>  <span>}
</span></span><span>
</span><span><span>}</span></span>

在此預(yù)處理器中,我們執(zhí)行兩個(gè)動(dòng)作:
<span>/**
</span><span> * Implements hook_theme().
</span><span> */
</span><span>function image_title_caption_theme() {
</span>  <span>return array(
</span>    <span>'image_title_caption_formatter' => array(
</span>      <span>'variables' => array('item' => NULL, 'item_attributes' => NULL, 'url' => NULL, 'image_style' => NULL),
</span>    <span>),
</span>  <span>);
</span><span>}</span>

>我們確保將傳遞給模板文件的變量首先由默認(rèn)的Image_Formatter主題預(yù)處理程序進(jìn)行預(yù)處理。因此,所有變量都是完全相同的,並且圖像按通常的顯示。
    我們創(chuàng)建了一個(gè)稱為字幕的新變量,該變量將包含圖像標(biāo)題的消毒值。
  • 用於固定化,我們?cè)陟o態(tài)上使用輔助弦類。我們?nèi)栽?module文件內(nèi)部,因此我們不能注入它,但是我們需要
  • >使用
>在文件的頂部:

>

name: Image title caption
type: module
description: Uses the image title field as a caption
core: 8.x
dependencies:
  - image

模板

最後,我們需要為我們的新主題創(chuàng)建一個(gè)模板文件:>

>模板/圖像標(biāo)準(zhǔn)caption-formatter.html.twig:

與Drupal 7相似,該文件的名稱很重要,因?yàn)樗从沉酥黝}名稱。至於內(nèi)容,它們幾乎與image_formatter主題使用的模板相同,除了打印在底部的字幕。

<span><span><?php
</span></span><span>
</span><span><span>/**
</span></span><span><span> * <span>@file
</span></span></span><span><span> * Contains \Drupal\image_title_caption\Plugin\Field\FieldFormatter\ImageTitleCaption.
</span></span><span><span> */
</span></span><span>
</span><span><span>namespace Drupal<span>\image_title_caption\Plugin\Field\FieldFormatter</span>;
</span></span><span>
</span><span><span>use Drupal<span>\Core\Field\FieldItemListInterface</span>;
</span></span><span><span>use Drupal<span>\image\Plugin\Field\FieldFormatter\ImageFormatter</span>;
</span></span><span>
</span><span><span>/**
</span></span><span><span> * Plugin implementation of the 'image_title_caption' formatter.
</span></span><span><span> *
</span></span><span><span> * @FieldFormatter(
</span></span><span><span> *   id = "image_title_caption",
</span></span><span><span> *   label = @Translation("Image with caption from title"),
</span></span><span><span> *   field_types = <span>{
</span></span></span><span><span> *     "image"
</span></span><span><span> *   <span>}
</span></span></span><span><span> * )
</span></span><span><span> */
</span></span><span><span>class ImageTitleCaption extends ImageFormatter {
</span></span><span>
</span><span>  <span>/**
</span></span><span><span>   * <span>{@inheritdoc}
</span></span></span><span><span>   */
</span></span><span>  <span>public function viewElements(FieldItemListInterface $items) {
</span></span><span>    <span>$elements = <span>parent::</span>viewElements($items);
</span></span><span>    <span>foreach ($elements as &$element) {
</span></span><span>      <span>$element['#theme'] = 'image_title_caption_formatter';
</span></span><span>    <span>}
</span></span><span>
</span><span>    <span>return $elements;
</span></span><span>  <span>}
</span></span><span>
</span><span><span>}</span></span>
>它可以嗎?

>現(xiàn)在我們已經(jīng)編寫了代碼,我們需要啟用模塊並清除所有緩存,如果我們?cè)趩⒂冕徇M(jìn)行了代碼更改。是時(shí)候測(cè)試了。

>例如,轉(zhuǎn)到admin/struction/type/manage/acrate/display的文章內(nèi)容類型字段顯示設(shè)置。對(duì)於圖像字段,在格式標(biāo)題下,您應(yīng)該能夠從標(biāo)題格式中選擇帶有標(biāo)題的圖像。保存表單,然後轉(zhuǎn)到admin/struction/type/manage/acrate/fields/node.field_image,並確保啟用圖像字段標(biāo)題。

最後,您可以編輯文章,上傳圖像並指定標(biāo)題。該標(biāo)題將繼續(xù)以這種方式行為,但此外,它將以標(biāo)題顯示在圖像下方。當(dāng)然,您仍然可以按照自己的意願(yuàn)進(jìn)行樣式。

>

結(jié)論

在本文中,我們看到了創(chuàng)建字段格式器並擴(kuò)展drupal 8中的默認(rèn)行為是多麼容易。我們僅涉及此插件的覆蓋效果(),但是我們可以做更多的事情來(lái)進(jìn)一步自定義事物。您也不需要擴(kuò)展圖像形式。有很多現(xiàn)有的插件可以從示例中延伸或使用。

> 此外,您還可以輕鬆地創(chuàng)建新的字段類型和小部件。這是一個(gè)類似的過程,但是您需要考慮一些架構(gòu)信息,使用不同的註釋類並編寫更多代碼。但是關(guān)鍵是您這樣做非常靈活。

在Drupal 8

中創(chuàng)建自定義字段格式化的經(jīng)常詢問的問題

如何在Drupal 8中創(chuàng)建自定義字段格式化?首先,如果還沒有一個(gè)自定義模塊,則需要?jiǎng)?chuàng)建一個(gè)自定義模塊。然後,在您的自定義模塊中,在src/plugin/field/fieldformatter目錄中創(chuàng)建一個(gè)新文件。該文件應(yīng)根據(jù)其將要包含的類命名。在此文件中,您將定義您的自定義字段格式類別類,該類應(yīng)擴(kuò)展formatterbase類。您將需要實(shí)現(xiàn)多種方法,包括負(fù)責(zé)為字段值生成渲染數(shù)組的ViewElements()。

>在Drupal 8中@FieldFormatter註釋的目的是什麼?它包括諸如ID,標(biāo)籤和field_types之類的屬性。 ID是用於格式化器的唯一標(biāo)識(shí)符,標(biāo)籤是人類可讀名稱,而field_types是格式化器支持的字段類型計(jì)算機(jī)名稱的數(shù)組。

我如何將我的自定義字段格式化應(yīng)用於Drupal 8?

>在Drupal 8中將您的自定義字段格式化應(yīng)用於字段,您需要轉(zhuǎn)到內(nèi)容類型,分類學(xué)術(shù)語(yǔ)或其他具有具有該類型的實(shí)體類型的“管理顯示”選項(xiàng)卡場(chǎng)地。在列表中找到字段,然後從“格式”下拉列表中選擇您的自定義格式化器。然後單擊“更新”按鈕並保存更改。

>

如何控制Drupal 8中的自定義字段格式化的輸出?由格式類別類別的ViewElement()方法控制。此方法應(yīng)返回字段值的渲染數(shù)組。您可以使用Drupal的主題系統(tǒng)進(jìn)一步自定義輸出。

>

>我可以在Drupal 8?

中使用自定義字段格式用於多個(gè)字段類型drupal 8。中的字段類型。在格式化類的@fieldformatter註釋中,您可以在field_types屬性中指定字段類型的機(jī)器名稱的數(shù)組。

如何在我的自定義字段格式化中為我的自定義field formatter創(chuàng)建一個(gè)在我的自定義字段formatter in In In In Drupal 8?

>要為Drupal 8中的自定義字段格式化創(chuàng)建設(shè)置表單,您需要在格式類別中實(shí)現(xiàn)settingsform()和settingssummary()方法。 settingsform()方法應(yīng)返回設(shè)置的表單陣列,並且settingssummary()方法應(yīng)返回設(shè)置的摘要行的數(shù)組。

我如何使用自定義字段格式在drupal中顯示圖像8?

>要使用自定義字段格式格式在Drupal 8中顯示圖像,您的格式化類別應(yīng)擴(kuò)展ImageFormatterBase類而不是FormatterBase。您將需要實(shí)現(xiàn)viewElements()方法來(lái)生成圖像字段值的渲染數(shù)組。

我可以為Drupal 8?

的自定義字段類型創(chuàng)建自定義字段formatter ,您可以為Drupal 8中的自定義字段類型創(chuàng)建自定義字段格式。我可以使用自定義字段格式格式在Drupal 8中顯示鏈接?您需要實(shí)現(xiàn)viewElements()方法來(lái)生成鏈接字段值的渲染數(shù)組。

>如何為Drupal 8中的多值字段創(chuàng)建自定義字段格式化?類並實(shí)現(xiàn)ViewElements()方法。該方法應(yīng)考慮到該字段可能具有多個(gè)值的字段值返回渲染數(shù)組。

以上是在Drupal 8中創(chuàng)建自定義字段格式的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁(yè)開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

PHP變量範(fàn)圍解釋了 PHP變量範(fàn)圍解釋了 Jul 17, 2025 am 04:16 AM

PHP變量作用域常見問題及解決方法包括:1.函數(shù)內(nèi)部無(wú)法訪問全局變量,需使用global關(guān)鍵字或參數(shù)傳入;2.靜態(tài)變量用static聲明,只初始化一次並在多次調(diào)用間保持值;3.超全局變量如$_GET、$_POST可在任何作用域直接使用,但需注意安全過濾;4.匿名函數(shù)需通過use關(guān)鍵字引入父作用域變量,修改外部變量則需傳遞引用。掌握這些規(guī)則有助於避免錯(cuò)誤並提升代碼穩(wěn)定性。

如何在PHP中牢固地處理文件上傳? 如何在PHP中牢固地處理文件上傳? Jul 08, 2025 am 02:37 AM

要安全處理PHP文件上傳需驗(yàn)證來(lái)源與類型、控製文件名與路徑、設(shè)置服務(wù)器限制並二次處理媒體文件。 1.驗(yàn)證上傳來(lái)源通過token防止CSRF並通過finfo_file檢測(cè)真實(shí)MIME類型使用白名單控制;2.重命名文件為隨機(jī)字符串並根據(jù)檢測(cè)類型決定擴(kuò)展名存儲(chǔ)至非Web目錄;3.PHP配置限制上傳大小及臨時(shí)目錄Nginx/Apache禁止訪問上傳目錄;4.GD庫(kù)重新保存圖片清除潛在惡意數(shù)據(jù)。

在PHP中評(píng)論代碼 在PHP中評(píng)論代碼 Jul 18, 2025 am 04:57 AM

PHP註釋代碼常用方法有三種:1.單行註釋用//或#屏蔽一行代碼,推薦使用//;2.多行註釋用/.../包裹代碼塊,不可嵌套但可跨行;3.組合技巧註釋如用/if(){}/控制邏輯塊,或配合編輯器快捷鍵提升效率,使用時(shí)需注意閉合符號(hào)和避免嵌套。

發(fā)電機(jī)如何在PHP中工作? 發(fā)電機(jī)如何在PHP中工作? Jul 11, 2025 am 03:12 AM

AgeneratorinPHPisamemory-efficientwaytoiterateoverlargedatasetsbyyieldingvaluesoneatatimeinsteadofreturningthemallatonce.1.Generatorsusetheyieldkeywordtoproducevaluesondemand,reducingmemoryusage.2.Theyareusefulforhandlingbigloops,readinglargefiles,or

撰寫PHP評(píng)論的提示 撰寫PHP評(píng)論的提示 Jul 18, 2025 am 04:51 AM

寫好PHP註釋的關(guān)鍵在於明確目的與規(guī)範(fàn),註釋應(yīng)解釋“為什麼”而非“做了什麼”,避免冗餘或過於簡(jiǎn)單。 1.使用統(tǒng)一格式,如docblock(/*/)用於類、方法說(shuō)明,提升可讀性與工具兼容性;2.強(qiáng)調(diào)邏輯背後的原因,如說(shuō)明為何需手動(dòng)輸出JS跳轉(zhuǎn);3.在復(fù)雜代碼前添加總覽性說(shuō)明,分步驟描述流程,幫助理解整體思路;4.合理使用TODO和FIXME標(biāo)記待辦事項(xiàng)與問題,便於後續(xù)追蹤與協(xié)作。好的註釋能降低溝通成本,提升代碼維護(hù)效率。

快速PHP安裝教程 快速PHP安裝教程 Jul 18, 2025 am 04:52 AM

ToinstallPHPquickly,useXAMPPonWindowsorHomebrewonmacOS.1.OnWindows,downloadandinstallXAMPP,selectcomponents,startApache,andplacefilesinhtdocs.2.Alternatively,manuallyinstallPHPfromphp.netandsetupaserverlikeApache.3.OnmacOS,installHomebrew,thenrun'bre

學(xué)習(xí)PHP:初學(xué)者指南 學(xué)習(xí)PHP:初學(xué)者指南 Jul 18, 2025 am 04:54 AM

易於效率,啟動(dòng)啟動(dòng)tingupalocalserverenverenvirestoolslikexamppandacodeeditorlikevscode.1)installxamppforapache,mysql,andphp.2)uscodeeditorforsyntaxssupport.3)

如何通過php中的索引訪問字符串中的字符 如何通過php中的索引訪問字符串中的字符 Jul 12, 2025 am 03:15 AM

在PHP中獲取字符串特定索引字符可用方括號(hào)或花括號(hào),但推薦方括號(hào);索引從0開始,超出範(fàn)圍訪問返回空值,不可賦值;處理多字節(jié)字符需用mb_substr。例如:$str="hello";echo$str[0];輸出h;而中文等字符需用mb_substr($str,1,1)獲取正確結(jié)果;實(shí)際應(yīng)用中循環(huán)訪問前應(yīng)檢查字符串長(zhǎng)度,動(dòng)態(tài)字符串需驗(yàn)證有效性,多語(yǔ)言項(xiàng)目建議統(tǒng)一使用多字節(jié)安全函數(shù)。

See all articles