美文网首页
matomo piwik 创建新插件,新增页面

matomo piwik 创建新插件,新增页面

作者: 王乐城愚人云端 | 来源:发表于2018-11-27 08:49 被阅读0次

数据库到达50G时会比较卡,如果预计流量大的网站,统计数据可以选择部署多个matomo服务器

1.先开启开发模式

./console development:enable

2.创建插件并激活插件

./console generate:plugin --name="MyPlugin"
./console plugin:activate MyPlugin

3.生成菜单

./console generate:menu

可以绑定到已经有的菜单或者新的菜单

默认的action是index

现在我们改成showList,点击菜单就会触发Controller.php中的showList方法

   public function configureAdminMenu(MenuAdmin $menu)
    {
        // or create a custom category
        $menu->addItem('菜单栏名', '菜单名', $this->urlForAction('showList'));
    }

4.创建新的页面

一般一个页面是View的实例

但页面一般都会继承一些基础页面

所以我们在目录下创建templates目录,并从其他插件中复制一个

xxx.twig文件

{% extends "admin.twig" %}
{% import '@CorePluginsAdmin/macros.twig' as pluginsMacro %}

{% set title %}{{ 'Marketplace_Marketplace'|translate }}{% endset %}

{% block content %}
    这里放你自己的页面内容
{% endblock %}

5.设置View的实例的基础变量

基础页面中有一些基础变量

 public static function displayWarningIfConfigFileNotWritable()
    {
        $isConfigFileWritable = PiwikConfig::getInstance()->isFileWritable();

        if (!$isConfigFileWritable) {
            $exception = PiwikConfig::getInstance()->getConfigNotWritableException();
            $message = $exception->getMessage();

            $notification = new Notification($message);
            $notification->raw     = true;
            $notification->context = Notification::CONTEXT_WARNING;
            Notification\Manager::notify('ControllerAdmin_ConfigNotWriteable', $notification);
        }
    }
    protected function configureViewAndCheckPermission($template)
    {
        Piwik::checkUserIsNotAnonymous();
        $view = new View($template);
        $this->setBasicVariablesView($view);
        $this->displayWarningIfConfigFileNotWritable();
        $view->topMenu  = MenuTop::getInstance()->getMenu();
        $view->adminMenu = MenuAdmin::getInstance()->getMenu();
        $view->notifications = NotificationManager::getAllNotificationsToDisplay();
        $view->errorMessage = '';
        return $view;
    }

6.创建css,js文件

每个插件下都有一个和插件名同名的类文件

在这个类文件中定义js,css文件路径,或引用其他插件中的js,css

  public function registerEvents()
    {
        return array(
            'AssetManager.getJavaScriptFiles' => 'getJsFiles',
            'AssetManager.getStylesheetFiles' => 'getStylesheetFiles',
        );
    }

    public function getStylesheetFiles(&$stylesheets)
    {
        $stylesheets[] = "plugins/TianjiService/css/main.less";
    }

    public function getJsFiles(&$jsFiles)
    {
        $jsFiles[] = "plugins/TianjiService/js/tianji.js";
    }

    /**
     * @return Plugin\Manager
     */
    private static function getPluginManager()
    {
        return Plugin\Manager::getInstance();
    }
 

7.API中可以从参数中直接获取http请求的参数

请求规则,返回json /index.php?module=API&method=TianjiService.findAllRules&format=JSON
module为API,方法是:插件名.API方法,默认返回XML,可以添加format=JSON返回json

在该请求后继续添加get参数,或是post参数,都会传递到API方法的参数中

例如 say(name="默认名字",age="默认年龄")

http请求的参数会直接赋值给方法的参数

8.在Controller.php控制器中获取http请求参数

控制器不能像API那样直接从方法的参数中获取http请求参数

但可以获取

$name = Common::getRequestVar('name');

相关文章

  • matomo piwik 创建新插件,新增页面

    数据库到达50G时会比较卡,如果预计流量大的网站,统计数据可以选择部署多个matomo服务器 1.先开启开发模式 ...

  • matomo的安装使用和体验

    概述 matomo的前身是piwik,是一个强大的网站流量分析网站,我使用它的原因就是因为我的网站原先使用的是百度...

  • matomo环境搭建

    本文介绍matomo(前身Pwiki)的本地搭建过程。matomo作为前端页面的日志统计工具,对一些网站的监控还是...

  • Component

    创建一个新插件 在page.json中使用"usingComponents":{"ele":"path"} 在页面...

  • ionic2实现扫描二维码功能

    注意使用该插件不能使用 1. 安装插件 2.使用插件 1.创建扫描二维码的页面 2.页面跳转到扫码页面 跳转方法 ...

  • jenkins构建docker镜像

    解锁jenkins 选择安装推荐的插件即可,也可以选择自定义 插件安装界面 耐心等待 创建用户 打开插件管理页面 ...

  • 路由

    路由(VueRouter) 1.vue的核心插件 根据不同的url访问不同的页面 创建单页面SPA(SINGLE ...

  • Flutter 学习笔记

    使用命令行创建 Flutter 风格区分 重点部件 页面保持 插件 库

  • 全新的 flow.ci Dashboard UI 上线

    全新的 flow.ci Dashboard 页面上线了,更快捷地创建项目,构建列表页面新增分支,Pull Requ...

  • 路由

    vue的核心插件 1,根据不同的url访问不同的页面 2, 创建单页面SPA(SINGLE PAGE APPLI...

网友评论

      本文标题:matomo piwik 创建新插件,新增页面

      本文链接:https://www.haomeiwen.com/subject/wtpwqqtx.html