本文整理汇总了PHP中Piwik\WidgetsList::getWidgetUniqueId方法的典型用法代码示例。如果您正苦于以下问题:PHP WidgetsList::getWidgetUniqueId方法的具体用法?PHP WidgetsList::getWidgetUniqueId怎么用?PHP WidgetsList::getWidgetUniqueId使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Piwik\WidgetsList
的用法示例。
在下文中一共展示了WidgetsList::getWidgetUniqueId方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: replaceDashboardWidgets
/**
* Replaces widgets on the given dashboard layout with other ones
*
* It uses the given widget definitions to find the old and to create the new widgets
* Each widget is defined with an array containing the following information
* array (
* 'module' => string
* 'action' => string
* 'params' => array()
* )
*
* if $newWidget does not contain a widget definition at the current position,
* the old widget will simply be removed
*
* @param array $oldWidgets array containing widget definitions
* @param array $newWidgets array containing widget definitions
*/
public static function replaceDashboardWidgets($dashboardLayout, $oldWidgets, $newWidgets)
{
if (empty($dashboardLayout) || !isset($dashboardLayout->columns)) {
return $dashboardLayout;
}
$newColumns = array();
foreach ($dashboardLayout->columns as $id => $column) {
$newColumn = array();
foreach ($column as $widget) {
foreach ($oldWidgets as $pos => $oldWidgetData) {
$oldWidgetId = WidgetsList::getWidgetUniqueId($oldWidgetData['module'], $oldWidgetData['action'], $oldWidgetData['params']);
if (empty($newWidgets[$pos])) {
continue 2;
}
$newWidget = $newWidgets[$pos];
if ($widget->uniqueId == $oldWidgetId) {
$newWidgetId = WidgetsList::getWidgetUniqueId($newWidget['module'], $newWidget['action'], $newWidget['params']);
// is new widget already is on dashboard just remove the old one
if (self::layoutContainsWidget($dashboardLayout, $newWidgetId)) {
continue 2;
}
$widget->uniqueId = $newWidgetId;
$widget->parameters->module = $newWidget['module'];
$widget->parameters->action = $newWidget['action'];
foreach ($newWidget['params'] as $key => $value) {
$widget->parameters->{$key} = $value;
}
}
}
$newColumn[] = $widget;
}
$newColumns[] = $newColumn;
}
$dashboardLayout->columns = $newColumns;
return $dashboardLayout;
}