Skip to content
Extraits de code Groupes Projets
Valider 09d20bcf rédigé par mattab's avatar mattab
Parcourir les fichiers

Merge remote-tracking branch 'origin/master'

parents 36fff3b0 c18171d4
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -14,7 +14,6 @@ use Piwik\Common;
use Piwik\Option;
use Piwik\Piwik;
use Piwik\Plugins\MobileMessaging\SMSProvider;
use Piwik\Plugins\ScheduledReports\API as APIScheduledReports;
/**
* The MobileMessaging API lets you manage and access all the MobileMessaging plugin features including :
......@@ -208,44 +207,21 @@ class API extends \Piwik\Plugin\API
unset($phoneNumbers[$phoneNumber]);
$this->savePhoneNumbers($phoneNumbers);
// remove phone number from reports
$APIScheduledReports = APIScheduledReports::getInstance();
$reports = $APIScheduledReports->getReports(
$idSite = false,
$period = false,
$idReport = false,
$ifSuperUserReturnOnlySuperUserReports = $this->getDelegatedManagement()
);
foreach ($reports as $report) {
if ($report['type'] == MobileMessaging::MOBILE_TYPE) {
$reportParameters = $report['parameters'];
$reportPhoneNumbers = $reportParameters[MobileMessaging::PHONE_NUMBERS_PARAMETER];
$updatedPhoneNumbers = array();
foreach ($reportPhoneNumbers as $reportPhoneNumber) {
if ($reportPhoneNumber != $phoneNumber) {
$updatedPhoneNumbers[] = $reportPhoneNumber;
}
}
if (count($updatedPhoneNumbers) != count($reportPhoneNumbers)) {
$reportParameters[MobileMessaging::PHONE_NUMBERS_PARAMETER] = $updatedPhoneNumbers;
// note: reports can end up without any recipients
$APIScheduledReports->updateReport(
$report['idreport'],
$report['idsite'],
$report['description'],
$report['period'],
$report['hour'],
$report['type'],
$report['format'],
$report['reports'],
$reportParameters
);
}
}
}
/**
* Triggered after a phone number has been deleted. This event should be used to clean up any data that is
* related to the now deleted phone number. The ScheduledReports plugin, for example, uses this event to remove
* the phone number from all reports to make sure no text message will be sent to this phone number.
*
* **Example**
*
* public function deletePhoneNumber($phoneNumber)
* {
* $this->unsubscribePhoneNumberFromScheduledReport($phoneNumber);
* }
*
* @param string $phoneNumber The phone number that was just deleted.
*/
Piwik::postEvent('MobileMessaging.deletePhoneNumber', array($phoneNumber));
return true;
}
......
......@@ -82,6 +82,7 @@ class ScheduledReports extends \Piwik\Plugin
'Menu.Top.addItems' => 'addTopMenu',
'TaskScheduler.getScheduledTasks' => 'getScheduledTasks',
'AssetManager.getJavaScriptFiles' => 'getJsFiles',
'MobileMessaging.deletePhoneNumber' => 'deletePhoneNumber',
'ScheduledReports.getReportParameters' => 'getReportParameters',
'ScheduledReports.validateReportParameters' => 'validateReportParameters',
'ScheduledReports.getReportMetadata' => 'getReportMetadata',
......@@ -381,6 +382,48 @@ class ScheduledReports extends \Piwik\Plugin
}
}
public function deletePhoneNumber($phoneNumber)
{
$api = API::getInstance();
$reports = $api->getReports(
$idSite = false,
$period = false,
$idReport = false,
$ifSuperUserReturnOnlySuperUserReports = APIMobileMessaging::getInstance()->getDelegatedManagement()
);
foreach ($reports as $report) {
if ($report['type'] == MobileMessaging::MOBILE_TYPE) {
$reportParameters = $report['parameters'];
$reportPhoneNumbers = $reportParameters[MobileMessaging::PHONE_NUMBERS_PARAMETER];
$updatedPhoneNumbers = array();
foreach ($reportPhoneNumbers as $reportPhoneNumber) {
if ($reportPhoneNumber != $phoneNumber) {
$updatedPhoneNumbers[] = $reportPhoneNumber;
}
}
if (count($updatedPhoneNumbers) != count($reportPhoneNumbers)) {
$reportParameters[MobileMessaging::PHONE_NUMBERS_PARAMETER] = $updatedPhoneNumbers;
// note: reports can end up without any recipients
$api->updateReport(
$report['idreport'],
$report['idsite'],
$report['description'],
$report['period'],
$report['hour'],
$report['type'],
$report['format'],
$report['reports'],
$reportParameters
);
}
}
}
}
public function getReportRecipients(&$recipients, $reportType, $report)
{
if (self::manageEvent($reportType)) {
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter