在Piwik中创建子表

时间:2010-05-07 18:28:32

标签: plugins matomo

我是piwik的新手。请在我的问题上帮助我。

问题:我必须创建4个子表。目前我可以创建第二级,我的意思是每行有一个子表。 基本上如果我点击一个表行我会得到子表。如果我再次单击子表行,它应该显示内部子表。 我需要创建Table-> subtable-> subtable->子表。

我的代码:

function getpageViewsLevel1($idSite, $date, $period)
        {

         $query = "select * from....";

                $result = Piwik_FetchAll($query, array($idSite, $dateStart, $dateEnd));

                // convert this array to a DataTable object
                $dataTable = new Piwik_DataTable();

                //Add subtable to each result
                foreach ($result as $arr){
                        $piwik_row = new Piwik_DataTable_Row;
                        $piwik_row->setColumns($arr);
                        $subDataTable = new Piwik_DataTable();
                        $piwik_row->addSubTable($subDataTable);
                        $dataTable->addRow($piwik_row);
                }
                return $dataTable;
        }

function getpageViewsLevel2($idSite, $date, $period, $idSubtable)
        {

                // Find selected parent row and retrieve data

                $dataTable_old = $this->getpageViewsLevel1($idSite, $date, $period);
                $row_old = new Piwik_DataTable_Row;
                $row_old=$dataTable_old->getRowFromIdSubDataTable($idSubtable+1);

                $tmp=$row_old->getColumns();
                //Using $actionName in DB Query
                $actionName=$tmp['pageTitle'].'%';

                //db query
                $query = "select * ....";

                $result = Piwik_FetchAll($query, array($idSite, $dateStart, $dateEnd, $actionName));

                // convert this array to a DataTable object
                //$dataTable = new Piwik_DataTable();
                foreach ($result as $arr){
                        $piwik_row = new Piwik_DataTable_Row;
                        $piwik_row->setColumns($arr);
                    $subDataTable = new Piwik_DataTable();
                        $piwik_row->addSubTable($subDataTable);
                        $dataTable->addRow($piwik_row);
                }
                return $dataTable;
        }

直到这里工作正常。对于第3级,我无法应用相同的逻辑,因为我没有2ng级别的表ID。

function getpageViewsLevel3($idSite, $date, $period, $idSubtable)
        {

                // Find selected parent row and retrieve data

                $dataTable_old = $this->getpageViewsLevel2($idSite, $date, $period, ___???????????????);

请帮助我如何处理这个问题。请让我知道有没有其他解决方案可以做到这一点。 虽然如果我传递一些像“1”这样的数字进行测试,

$dataTable_old = $this->getpageViewsLevel2($idSite, $date, $period, 1);----->this is not working.

我需要在数据库查询中使用父行信息。

提前感谢您的帮助。

0 个答案:

没有答案