首页 >后端开发 >php教程 >构建OctectCMS插件:Google Analytics(分析)

构建OctectCMS插件:Google Analytics(分析)

Joseph Gordon-Levitt
Joseph Gordon-Levitt原创
2025-02-19 09:59:09162浏览

> coctcms插件开发:Google Analytics(分析)示例

>

Building OctoberCMS Plugins: Google Analytics

密钥概念:

通过插件的>命令行界面简化了插件的创建和管理,补充了CMS中的图形接口(System≫ Updates)。
  • 组件对于用户交互至关重要;它们是通过命令行或手动创建的,需要专用的“组件”文件夹。 可以进行广泛的自定义,包括为用户输入创建设置表单(例如Google Analytics(分析跟踪ID)),并检索这些设置以在组件中使用。
  • >
  • 项目概述:
  • >我们将构建一个使用组件标签集成Google Analytics(分析)跟踪的插件。 在插件设置中配置跟踪ID后,您将插入组件标签(

    插件管理:> 文件夹中。 管理通过:

    {% component 'gaCode' %}

    系统>更新:

    此页面允许附加项目(需要十月cms帐户),添加市场插件并更新您的网站。

    命令行:使用命令行安装插件(尽管在网站上找到插件名称是必需的)。 命令格式(在写作时)通常涉及

    plugins

      插件创建:
    • 创建插件的精简:
      • >手动方法:plugins>目录中创建一个新文件夹。该文件夹名称充当您的唯一名称空间(在OctiotCMS网站上注册您的名称空间以避免冲突)。 在此示例中,我们将使用RAFIE.GoogleAnalyticsCode。 在内部,创建一个Plugin.php文件。
      • >脚手架(命令行):使用命令。这将自动生成必要的文件和文件夹,包括一个包含版本控制的文件的文件夹。 php artisan create:plugin RAFIE.GoogleAnalyticsCode uploadsversion.yaml文件的
      • 方法(覆盖
      )定义插件:>

      Plugin.php如果未出现插件,请单击“检查更新”以刷新列表。pluginDetails()> SystemClassesPluginBase

      使用组件:
      <code class="language-php">public function pluginDetails() {
          return [
              'name'        => 'Google Analytics Code',
              'description' => 'Insert Google Analytics tracking code into your pages',
              'author'      => 'RAFIE Younes',
              'icon'        => 'icon-bar-chart-o'
          ];
      }</code>

      >组件启用与页面的交互。 手动创建它们(在

      文件夹中)或通过命令行:

      >

      components

      方法(覆盖
      <code class="language-bash">php artisan create:component RAFIE.GoogleAnalyticsCode GoogleAnalytics</code>
      )定义了管理仪表板的组件详细信息。 将组件注册在

      >'s Building OctoberCMS Plugins: Google Analytics 方法中:

      componentDetails()组件最初渲染CmsClassesComponentBasePlugin.php registerComponents()

      >用Google Analytics(分析)跟踪代码替换此信息:
      <code class="language-php">public function registerComponents() {
          return [
              'RAFIE\GoogleAnalyticsCode\Components\GoogleAnalytics' => 'gaCode'
          ];
      }</code>

      default.htm请记住,理想情况下应将脚本放在页面末尾,具体取决于您的主题。

      <code class="language-html"><p>></p>This is the default markup for component GoogleAnalytics>
      <small>></small>You can delete this file if you want></code>

      组件属性和设置:

      <code class="language-html">(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
              m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
      })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
      
      ga('create', '{{ code }}', 'auto');
      ga('send', 'pageview');</code>
      >

      而不是硬编码跟踪ID,而是使用组件属性:>

      使用来定义属性:

      >使用

      将值传递到页面:
      <code class="language-twig">{% component 'gaCode' code='UA-12345678-1' %}</code>

      defineProperties()对于更易于用户友好的方法,请使用插件设置:>

      <code class="language-php">public function defineProperties() {
          return [
              'code' => [
                  'title'             => 'Google Analytics tracking code',
                  'description'       => 'Your Google Analytics tracking code',
                  'default'           => '',
                  'type'              => 'string',
                  'validationPattern' => '^UA-\d{4,9}-\d{1,4}$',
                  'validationMessage' => 'Invalid tracking code',
                  'placeholder'       => 'UA-XXXXXXX'
              ]
          ];
      }</code>

      onRender()创建

      <code class="language-php">public function onRender() {
          $this->page['code'] = $this->property('code');
      }</code>

      创建

      Building OctoberCMS Plugins: Google Analytics

      models/GoogleAnalyticsSettings.php中的注册设置:

      <code class="language-php">class GoogleAnalyticsSettings extends Model {
          public $implement = ['System.Behaviors.SettingsModel'];
          public $settingsCode = 'rafie_google_analytics_code';
          public $settingsFields = 'fields.yaml';
      }</code>

      models/fields.yaml

      <code class="language-yaml">fields:
        code:
          label: Your Google Analytics ID
          placeholder: UA-XXXXXXXX-X</code>

      中检索设置:Plugin.php

      <code class="language-php">public function registerSettings() {
          return [
              'settings' => [
                  'label'       => 'Google Analytics Code',
                  'description' => 'Manage Google Analytics Settings',
                  'icon'        => 'icon-bar-chart-o',
                  'class'       => 'RAFIE\GoogleAnalyticsCode\Models\GoogleAnalyticsSettings',
                  'order'       => 1
              ]
          ];
      }</code>

      结论: Building OctoberCMS Plugins: Google Analytics >

      >经常询问问题(常见问题解答):(所提供的常见问题解答已经结构良好。

  • 以上是构建OctectCMS插件:Google Analytics(分析)的详细内容。更多信息请关注PHP中文网其他相关文章!

    声明:
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn