首页
学习
活动
专区
圈层
工具
发布

Piwik插件
EN

Stack Overflow用户
提问于 2009-06-15 20:52:33
回答 1查看 1.9K关注 0票数 1

我正在构建一个插件,我想要有一个子表,这样我的用户就可以点击概览数据,并从那里显示数据。

下面是我收集到的代码:

代码语言:javascript
复制
public function getCompanyList($idSite, $period, $date )
{
    $dataTable = new Piwik_DataTable();

    $query = Piwik_Query("SELECT cl.id, cl.company_name name, sf.id sf_id FROM sitedb.company_lookup cl INNER JOIN sitedb.storefronts sf ON cl.id = sf.company_id");
    while ($row = $query->fetch()) {
        $piwik_row = new Piwik_DataTable_Row;
        $piwik_row->setSubTable( $this->getProductsForCompany($idSite, $period, $date, $row['id']) );
        $piwik_row->setColumns( array('id' => $row['id'], 'Company Name' => $row['name']) );
        $dataTable->addRow($piwik_row);

    }
    return $dataTable;
}

public function getProductsForCompany($idSite, $period, $date, $company_id )
{
    if (!defined('PIWIK_ENABLE_DISPATCH')) define('PIWIK_ENABLE_DISPATCH', false);
    if (!defined('PIWIK_ENABLE_ERROR_HANDLER')) define('PIWIK_ENABLE_ERROR_HANDLER', false);
    require_once PIWIK_INCLUDE_PATH . "/index.php";
    require_once PIWIK_INCLUDE_PATH . "/core/API/Request.php";
    Piwik_FrontController::getInstance()->init();
    $request = new Piwik_API_Request('
            method=Actions.getActions
            &idSite=' . $idSite . '
            &date=' . $date . '
            &period=' . $period . '
            &format=PHP
            &filter_column=label
            &filter_pattern=product.php
            &filter_sort_column=nb_visits
            &filter_sort_order=desc
            &token_auth=anonymous
            ');
    $result = $request->process();

    // contains an array of visits to storefront.php
    $result = unserialize($result);

    $query = Piwik_Query("SELECT sp.product_id id, sp.name, sp.storefront_id sf_id, cl.company_name FROM sitedb.storefront_products sp INNER JOIN sitedb.storefronts sf ON sp.storefront_id = sf.id INNER JOIN sitedb.company_lookup cl ON sf.company_id = cl.id WHERE cl.id = {$company_id}");
    $dataTable = new Piwik_DataTable();

    while ($row = $query->fetch()) {
        // piwik returns & escaped to & -- make sure that's what you use to search!
        $this->array_search_in_level("/product.php?id=" . $row['id'] . "&sf_id=" . $row['sf_id'], $result, 'label', $storefront_array, 1);

        if (is_array($storefront_array) && array_key_exists('nb_visits', $storefront_array)) {
            $piwik_row = new Piwik_DataTable_Row;
            $piwik_row->setColumns( array('id' => $row['id'], 'Product Name' => $row['name'], 'Page Views' => $storefront_array['nb_visits']) );
            $dataTable->addRow($piwik_row);
        }
    }
    return $dataTable;
}

但是,subTable从来没有出现过。我做错了什么吗?

EN

回答 1

Stack Overflow用户

发布于 2011-01-12 10:10:00

也许您需要将'expanded=1‘参数添加到您的API请求中?

http://piwik.org/docs/analytics-api/reference/#toc-optional-api-parameters

如果您正在寻找如何使用piwik框架来绘制插件中的自定义数据的示例代码,那么它们看起来有点像是doc:Piwik plugins docs

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/998328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档