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

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

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

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

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

Feb 18, 2025 am 08:42 AM

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

鑰匙要點

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

我們在此處編寫的代碼可以在此存儲庫中找到image_title_caption模塊。但是,讓我們看看我們?nèi)绾芜_到最終結(jié)果。

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

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

image_title_caption.info.yml:

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

插件

在Drupal 8中

>,字段格式(例如字段類型和小部件本身)是插件。核心模塊定義了核心模塊,也可以在Drupalcorefieldpluginfieldfieldformatter名稱空間內(nèi)找到。就像我們在上一篇文章中看到的那樣,我們查看了自定義塊,插件也位于模塊的SRC/插件/文件夾中。對于字段格式,這將是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

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

類看起來很簡單,因為我們正在從核心圖像模塊定義的默認(rèn)ImageFormatter插件延伸。出于我們的目的,我們需要覆蓋的只是負(fù)責(zé)返回字段數(shù)據(jù)渲染數(shù)組的ViewElements()方法。后者可以在$項目列表中找到,可以用于渲染和準(zhǔn)備。

>我們在此方法中要做的第一件事是確保我們在項目上調(diào)用父類方法并將其存儲在變量中。這已經(jīng)準(zhǔn)備好將圖像呈現(xiàn),就像通常一樣。

默認(rèn)情況下,ImageFormatter插件(父)在渲染數(shù)組中使用image_formatter主題來輸出圖像字段值。我們在這里做的是,對于每個項目,我們用自己的主題替換此主題:image_title_caption_formatter。然后,我們像父母一樣返回元素(渲染數(shù)組)。

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

主題

>由于我們在上面指定的image_title_caption_formatter主題到目前為止是虛構(gòu)的,因此我們需要創(chuàng)建它。在我們模塊的.Module文件中,我們需要實現(xiàn)hook_theme:

image_title_caption.module:

>這看起來應(yīng)該熟悉,因為它與Drupal 7非常相似。請注意我們傳遞給此主題的變量。我們打算覆蓋默認(rèn)的image_formatter主題,因此我們也應(yīng)該在此處傳遞相同的變量。此外,由于對Image_formatter主題進行了預(yù)處理,因此我們還需要為我們的主題創(chuàng)建一個預(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í)行兩個動作:
<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ù)處理程序進行預(yù)處理。因此,所有變量都是完全相同的,并且圖像按通常的顯示。
    我們創(chuàng)建了一個稱為字幕的新變量,該變量將包含圖像標(biā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)建一個模板文件:>

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

與Drupal 7相似,該文件的名稱很重要,因為它反映了主題名稱。至于內(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)編寫了代碼,我們需要啟用模塊并清除所有緩存,如果我們在啟用后進行了代碼更改。是時候測試了。

>例如,轉(zhuǎn)到admin/struction/type/manage/acrate/display的文章內(nèi)容類型字段顯示設(shè)置。對于圖像字段,在格式標(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)然,您仍然可以按照自己的意愿進行樣式。

>

結(jié)論

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

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

在Drupal 8

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

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

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

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

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

>

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

>

>我可以在Drupal 8?

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

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

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

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

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

我可以為Drupal 8?

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

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

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

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

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機

Video Face Swap

Video Face Swap

使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

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

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

PHP變量范圍解釋了 PHP變量范圍解釋了 Jul 17, 2025 am 04:16 AM

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

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

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

在PHP中評論代碼 在PHP中評論代碼 Jul 18, 2025 am 04:57 AM

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

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

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

撰寫PHP評論的提示 撰寫PHP評論的提示 Jul 18, 2025 am 04:51 AM

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

快速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

易于效率,啟動啟動tingupalocalserverenverenvirestoolslikexamppandacodeeditorlikevscode.1)installxamppforapache,mysql,andphp.2)uscodeeditorforsyntaxssupport.3)

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

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

See all articles