第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Grav CMS:在頁面選擇列表中隱藏模塊化頁面

Grav CMS:在頁面選擇列表中隱藏模塊化頁面

PHP
慕標琳琳 2022-07-29 12:35:55
我正在開發(fā)一個使用大量模塊化頁面的項目。所以很自然,列出所有頁面的下拉列表(例如,在創(chuàng)建新頁面時選擇父頁面時)會因您不真正使用的選項而變得非常臃腫。我進行了編輯/user/plugins/admin/themes/grav/templates/forms/fields/pages/pages.html.twig以防止模塊化頁面呈現(xiàn)。原始代碼(第 12 行):{% for page_route, option in pages_list %}    <option {% if page_route == value or (field.multiple and page_route in value) %}selected="selected"{% endif %} value="{{ page_route }}">{{ option|raw }}</option>{% endfor %}我的代碼:{% for page_route, option in pages_list %}    {% if page_route|split('/')|last matches '/^(?!_).*/' %}         <option {% if page_route == value or (field.multiple and page_route in value) %}selected="selected"{% endif %} value="{{ page_route }}">{{ option|raw }}</option>    {% endif %}{% endfor %}所以這很好用,并且隱藏了下拉列表中的所有模塊化頁面。不幸的是,我擔心這可能會被下一次管理插件更新覆蓋。我很想創(chuàng)建一個插件,強制管理插件使用我的模板,而不是亂用原始模板,但我不知道該怎么做。甚至可能嗎?
查看完整描述

1 回答

?
寶慕林4294392

TA貢獻2021條經(jīng)驗 獲得超8個贊

我發(fā)現(xiàn)了一些東西:https

://github.com/OleVik/grav-plugin-adminidenticons 它覆蓋了部分管理插件。


第 1 步:創(chuàng)建插件

有很多教程如何做到這一點。

我的插件文件夾中有以下文件結(jié)構(gòu):


user/plugins

-- myplugin

---- blueprints.yaml

---- myplugin.php

---- myplugin.yaml

第 2 步:復(fù)制文件

/user/plugins/admin/themes/grav/templates/forms/fields/pages/pages.html.twig 至/user/plugins/myplugin/admin/themes/grav/templates/forms/fields/pages/pages.html.twig


/user/plugins/admin/themes/grav/templates/partials/blueprints-new.html.twig 至/user/plugins/myplugin/admin/themes/grav/templates/partials/blueprints-new.html.twig


不要忘記將我上面發(fā)布的片段添加到復(fù)制的pages.html.twig. 您可以保留blueprints-new.html.twig未編輯的內(nèi)容,但您需要插件文件夾中的部分內(nèi)容才能讓 Twig 加載本地pages.html.twig.


第 3 步:PHP

編輯myplugin.php


<?php

namespace Grav\Plugin;


use Grav\Common\Grav;

use Grav\Common\Plugin;

use Grav\Common\Page\Page;

use RocketTheme\Toolbox\Event\Event;


class MyPluginPlugin extends Plugin

{

    public static function getSubscribedEvents() {

        return [

            'onPluginsInitialized' => ['onPluginsInitialized', 0],

        ];

    }


    public function onPluginsInitialized()

    {

        /** @var Uri $uri */

        $uri = $this->grav['uri'];

        $route = $this->config->get('plugins.admin.route');


        if ($route && preg_match('#' . $route . '#', $uri->path())) {

            $this->enable([

                'onPageInitialized' => ['onPageInitialized', 0],

                'onAdminTwigTemplatePaths' => ['onAdminTwigTemplatePaths', 0]

            ]);

        }

    }


    /**

     * Load custom CSS into backend

     *

     */

    public function onPageInitialized()

    {

        $assets = $this->grav['assets'];

        $assets->addCss('user/plugins/myplugin/style/custom-backend.css', 1);

    }


    /**

     * Register templates and page

     *

     * @param RocketTheme\Toolbox\Event\Event $event Event handler

     *

     * @return array

     */

    public function onAdminTwigTemplatePaths($event)

    {

        $event['paths'] = array_merge(

            $event['paths'],

            [__DIR__ . '/admin/themes/grav/templates']

        );

        return $event;

    }

}

獎勵:隱藏獨特的頁面模板

有時,您創(chuàng)建的頁面模板應(yīng)該只在一個頁面上使用一次。就像 Grav 的工作方式一樣,在創(chuàng)建新頁面時它們?nèi)詴霈F(xiàn)在列表中。當然,您不希望您的編輯對頁面模板進行創(chuàng)意,因此最好將它們隱藏起來。


如果您實際上也在閱讀您正在復(fù)制粘貼的代碼,您會注意到有一個函數(shù)onPageInitialized(),它將 CSS 文件加載到后端。


更新您的文件:


user/plugins

-- myplugin

---- style

------ custom-backend.scss

------ custom-backend.css

---- blueprints.yaml

---- myplugin.php

---- myplugin.yaml

編輯custom-backend.scss


// hide unique templates

.selectize-dropdown-content {

    .option {

        $hide_values: "this-template", "home", "that-template";


        @each $current_value in $hide_values {

            &[data-value="#{$current_value}"] {

                display: none;

            }

        }

    }

}

將 設(shè)置為$hide_values要在后端隱藏的頁面模板。我使用 CSS,這樣您可以在需要時使用瀏覽器檢查器重新啟用它們。當然,不要忘記編譯你的 SCSS。


我知道這變成了一個成熟的教程,但是讓模塊化頁面亂扔頁面列表實際上是我現(xiàn)在在多個項目中遇到的一個問題,我從來沒有在網(wǎng)上找到過任何東西。不幸的是,我真的沒有辦法正確地發(fā)布這個,所以我希望有一天有人會偶然發(fā)現(xiàn)這個問答并將它放在它所屬的某個網(wǎng)絡(luò)博客上。


查看完整回答
反對 回復(fù) 2022-07-29
  • 1 回答
  • 0 關(guān)注
  • 121 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號