unionco/core

UNION.co 插件

安装数量: 2,319

依赖项: 0

建议者: 0

安全: 0

类型:craft-module


README

UNIONCore

Craft PHP

欢迎使用 UNION Core for CraftCMS 3。

尽管目前仍然处于测试版,但许多插件正在效仿。CraftCMS 3 中的 UNION Core 将非常不同,基本上是完全重写的,但仍然保留了 95% 的功能。

UNION Core 提供了一种使用 Craft 的 $element->attachBehavior() 方法将行为附加到元素上的方法。提供一个全局变量,可以直接从模板中访问您的服务,以及一些内置的行为和 twig 过滤器。

由于 CraftCMS 3 和新的插件安装方式,我们必须找到一种简单的方法,让开发者像以前一样轻松地扩展我们的插件,而无需深入到供应商目录。虽然这是可能的,但我们不愿意让您这样做。相反,一个 unionco.php 配置文件将在初始化时与 plus 核心代码通信,说明如何“扩展”。下面将提供更多相关信息。

安装

要安装 UNION Core,请按照以下步骤操作

  • 进入您的项目目录
  • 运行 `composer require unionco\core`
  • 转到 Craft 控制面板中的设置 > 插件,并启用插件

配置

  • 最后,让我们通过在主 craft 配置目录中创建一个 unionco.php 文件来连接所有内容,它 应该 看起来像这样...
      <?php
      return [
          "remotes" => [
              "environment-name" => [
                  'username' => '',
                  'host' => '',
                  'root' => '',
                  'backupDirectory' => '',
                  'port' => 22,
                  'phpPath' => ''
              ]
          ]
      ];
    

基本用法

  • 默认安装

    • AssetBehavior
      • Craft Twig 标准方式 `{{ entry.assetHandle.one.getUrl() }} `
      • 新方法 `{{ entry._assetUrl('assetHandle') }}`
      • 可选 `{{ entry._assetUrl('assetHandle', 'squareTransformHandle') }}`
      • 预加载资源将使用 `{{ entry._eAssetUrl('assetHandle') }}`
    • 视频 URL 过滤器
      • 目前支持 vimeo 和 youtube URL
      • 用法: `{{ entry.videoUrl | videoEmbedUrl }}`

高级用法

  • 行为

    所有行为都绑定到元素的句柄。

    • 条目:Entry -> Section -> Handle
    • 分类:Category -> Group -> Handle
    • 全局集:Global -> Handle
    • 矩阵块:MatrixBlock -> Field -> Handle

    为相关的元素创建一个文件(将“行为”一词合并)。例如,对于主页(单个)。

      <?php 
      namespace union/behaviors/entries
      use unionco\core\Plugin; //if you need to access the core plugin
      use unionco\core\behaviors\entries\BaseEntryBehavior;
        
      class HomeBehavior extends BaseEntryBehavior
      {
          public function _somethingInteresting()
          {
              return 'something interesting';
          }
      }
    

    我不会详细介绍如何添加行为或为什么这样做,UNION Core 只是一个辅助工具。请参考 CraftCMS 文档或 Yii2 文档以获取有关行为的更多详细信息。

  • 服务

    服务将一一映射到核心插件中的服务,有关这些服务的文档已在 CraftCMS 文档 github 页面上提供 Docs。在这里,Plus 的一个额外好处是 plus 变量及其从模板中访问任何服务的功能,而无需创建新变量和/或 twig 扩展。以下我将给出两个示例...

    服务看起来像这样

      <?php
      namespace union\services;
        
      use Craft;
      use craft\base\Component;
      use unionco\core\Plugin;
        
      class QuoteService extends Component
      {
          public function getRandomQuote()
          {
              // code here
          }
      }
    

    这里您可以使用常规的 php 方法访问您的服务

      <?php 
      namespace union/behaviors/entries
      use unionco\core\Plugin; //if you need to access the core plugin
      use unionco\core\behaviors\entries\BaseEntryBehavior;
        
      class HomeBehavior extends BaseEntryBehavior
      {
          public function _somethingInteresting()
          {
              $quote = Plugin::$plugin->quote->getRandomQuote();
              return $quote;
          }
      }
    

    在 UNION Core 中的 twig

      {{ union('quote').getRandomQuote() }}