国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

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

>如何為Drupal 8中的多值字段創(chuàng)建自定義字段格式化?類并實(shí)現(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)建自定義字段格式

鑰匙要點(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)建了一個新主題,image_title_caption_formatter,與默認(rèn)image_formatter主題中的相同變量傳遞。
  • 可以通過內(nèi)容類型的“管理顯示”選項(xiàng)卡應(yīng)用自定義字段格式化器,從“格式”下拉下拉下拉下拉列表中的“管理顯示”選項(xiàng)卡中。
  • >請注意,由于開發(fā)過程Drupal 8在撰寫本文時已經(jīng)進(jìn)行了,因此代碼的某些部分可能已經(jīng)過時。查看此存儲庫,我嘗試更新示例代碼并使其與最新的Drupal 8版本一起使用。
  • >
  • >隨著帶注釋的插件的引入,在Drupal 8中發(fā)生了很多變化。我們有一種更簡化的方法來描述和發(fā)現(xiàn)擴(kuò)展核心的功能。與許多其他組件一起,以前的字段API(較大和合并的實(shí)體API的一部分)現(xiàn)在基于插件。
在本教程中,我們將通過為現(xiàn)有字段定義自定義字段格式(圖像)。我們想要實(shí)現(xiàn)的是使顯示圖像下面的圖像在其下方。如果存在,則該標(biāo)題將是分配給圖像的標(biāo)題值。

我們在此處編寫的代碼可以在此存儲庫中找到image_title_caption模塊。但是,讓我們看看我們?nèi)绾芜_(dá)到最終結(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。

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

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

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

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

主題

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

image_title_caption.module:

>這看起來應(yīng)該熟悉,因?yàn)樗cDrupal 7非常相似。請注意我們傳遞給此主題的變量。我們打算覆蓋默認(rèn)的image_formatter主題,因此我們也應(yīng)該在此處傳遞相同的變量。此外,由于對Image_formatter主題進(jìn)行了預(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ù)處理程序進(jìn)行預(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相似,該文件的名稱很重要,因?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)編寫了代碼,我們需要啟用模塊并清除所有緩存,如果我們在啟用后進(jìn)行了代碼更改。是時候測試了。

>例如,轉(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)然,您仍然可以按照自己的意愿進(jìn)行樣式。

>

結(jié)論

在本文中,我們看到了創(chuàng)建字段格式器并擴(kuò)展drupal 8中的默認(rèn)行為是多么容易。我們僅涉及此插件的覆蓋效果(),但是我們可以做更多的事情來進(jìn)一步自定義事物。您也不需要擴(kuò)展圖像形式。有很多現(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)擴(kuò)展formatterbase類。您將需要實(shí)現(xiàn)多種方法,包括負(fù)責(zé)為字段值生成渲染數(shù)組的ViewElements()。

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

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

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

>

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

>

>我可以在Drupal 8?

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

如何在我的自定義字段格式化中為我的自定義field formatter創(chuàng)建一個在我的自定義字段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()方法來生成圖像字段值的渲染數(shù)組。

我可以為Drupal 8?

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

>如何為Drupal 8中的多值字段創(chuàng)建自定義字段格式化?類并實(shí)現(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ā)貢獻(xiàn),版權(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

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI脫衣機(jī)

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)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

如何在PHP中實(shí)施身份驗(yàn)證和授權(quán)? 如何在PHP中實(shí)施身份驗(yàn)證和授權(quán)? Jun 20, 2025 am 01:03 AM

tosecurelyhandleauthenticationandationallizationInphp,lofterTheSesteps:1.AlwaysHashPasswordSwithPassword_hash()andverifyusingspasspassword_verify(),usepreparedStatatementStopreventsqlineptions,andStoreSeruserDatain usseruserDatain $ _sessiveferterlogin.2.implementrole-2.imaccessccsccccccccccccccccccccccccc.

如何在PHP中安全地處理文件上傳? 如何在PHP中安全地處理文件上傳? Jun 19, 2025 am 01:05 AM

要安全處理PHP中的文件上傳,核心在于驗(yàn)證文件類型、重命名文件并限制權(quán)限。1.使用finfo_file()檢查真實(shí)MIME類型,僅允許特定類型如image/jpeg;2.用uniqid()生成隨機(jī)文件名,存儲至非Web根目錄;3.通過php.ini和HTML表單限制文件大小,設(shè)置目錄權(quán)限為0755;4.使用ClamAV掃描惡意軟件,增強(qiáng)安全性。這些步驟有效防止安全漏洞,確保文件上傳過程安全可靠。

PHP中==(松散比較)和===(嚴(yán)格的比較)之間有什么區(qū)別? PHP中==(松散比較)和===(嚴(yán)格的比較)之間有什么區(qū)別? Jun 19, 2025 am 01:07 AM

在PHP中,==與===的主要區(qū)別在于類型檢查的嚴(yán)格程度。==在比較前會進(jìn)行類型轉(zhuǎn)換,例如5=="5"返回true,而===要求值和類型都相同才會返回true,例如5==="5"返回false。使用場景上,===更安全應(yīng)優(yōu)先使用,==僅在需要類型轉(zhuǎn)換時使用。

如何在PHP( - , *, /,%)中執(zhí)行算術(shù)操作? 如何在PHP( - , *, /,%)中執(zhí)行算術(shù)操作? Jun 19, 2025 pm 05:13 PM

PHP中使用基本數(shù)學(xué)運(yùn)算的方法如下:1.加法用 號,支持整數(shù)和浮點(diǎn)數(shù),也可用于變量,字符串?dāng)?shù)字會自動轉(zhuǎn)換但不推薦依賴;2.減法用-號,變量同理,類型轉(zhuǎn)換同樣適用;3.乘法用*號,適用于數(shù)字及類似字符串;4.除法用/號,需避免除以零,并注意結(jié)果可能是浮點(diǎn)數(shù);5.取模用%號,可用于判斷奇偶數(shù),處理負(fù)數(shù)時余數(shù)符號與被除數(shù)一致。正確使用這些運(yùn)算符的關(guān)鍵在于確保數(shù)據(jù)類型清晰并處理好邊界情況。

如何與PHP的NOSQL數(shù)據(jù)庫(例如MongoDB,Redis)進(jìn)行交互? 如何與PHP的NOSQL數(shù)據(jù)庫(例如MongoDB,Redis)進(jìn)行交互? Jun 19, 2025 am 01:07 AM

是的,PHP可以通過特定擴(kuò)展或庫與MongoDB和Redis等NoSQL數(shù)據(jù)庫交互。首先,使用MongoDBPHP驅(qū)動(通過PECL或Composer安裝)創(chuàng)建客戶端實(shí)例并操作數(shù)據(jù)庫及集合,支持插入、查詢、聚合等操作;其次,使用Predis庫或phpredis擴(kuò)展連接Redis,執(zhí)行鍵值設(shè)置與獲取,推薦phpredis用于高性能場景,Predis則便于快速部署;兩者均適用于生產(chǎn)環(huán)境且文檔完善。

我如何了解最新的PHP開發(fā)和最佳實(shí)踐? 我如何了解最新的PHP開發(fā)和最佳實(shí)踐? Jun 23, 2025 am 12:56 AM

TostaycurrentwithPHPdevelopmentsandbestpractices,followkeynewssourceslikePHP.netandPHPWeekly,engagewithcommunitiesonforumsandconferences,keeptoolingupdatedandgraduallyadoptnewfeatures,andreadorcontributetoopensourceprojects.First,followreliablesource

什么是PHP,為什么它用于Web開發(fā)? 什么是PHP,為什么它用于Web開發(fā)? Jun 23, 2025 am 12:55 AM

PHPbecamepopularforwebdevelopmentduetoitseaseoflearning,seamlessintegrationwithHTML,widespreadhostingsupport,andalargeecosystemincludingframeworkslikeLaravelandCMSplatformslikeWordPress.Itexcelsinhandlingformsubmissions,managingusersessions,interacti

如何設(shè)置PHP時區(qū)? 如何設(shè)置PHP時區(qū)? Jun 25, 2025 am 01:00 AM

tosetTherightTimeZoneInphp,restate_default_timezone_set()functionAtthestArtofyourscriptWithavalIdidentIdentifiersuchas'america/new_york'.1.usedate_default_default_timezone_set_set()

See all articles