private function randomQuotes($number) { require_once CRM_MODULE_INCLUDE_DIRECTORY . 'RandomStringGenerator.php'; $random = new \creamy\RandomStringGenerator(); $quotes = array(); for ($i = 0; $i < $number; $i++) { $rnd = $random->getRandomInteger(1, 10); $author = $this->lh()->translationFor("author_" . $rnd); $quote = $this->lh()->translationFor("quote_" . $rnd); $quotes[] = array("quote" => $quote, "author" => $author, "author_number" => $rnd); } return $quotes; }
protected function mergeHookResultsWithStrategy($results, $mergeStrategy) { switch ($mergeStrategy) { case CRM_MODULE_MERGING_STRATEGY_APPEND: $appended = ""; foreach ($results as $result) { if (is_string($result)) { $appended .= $result; } else { $appended .= var_export($result, true); } } return $appended; break; case CRM_MODULE_MERGING_STRATEGY_SUM: $sum = 0.0; foreach ($results as $result) { $sum += floatval($result); } return $sum; break; case CRM_MODULE_MERGING_STRATEGY_JOIN: $joined = array(); foreach ($results as $result) { $joined = array_merge($joined, $result); } return $joined; break; case CRM_MODULE_MERGING_STRATEGY_AND: $andResult = true; foreach ($results as $result) { $andResult = $andResult and (bool) $result; } return $andResult; break; case CRM_MODULE_MERGING_STRATEGY_OR: $oredResult = true; foreach ($results as $result) { $oredResult = $oredResult or (bool) $result; } return $oredResult; break; case CRM_MODULE_MERGING_STRATEGY_FIRST: if (is_array($results) && count($results) > 0) { return reset($results); } else { return $results; } break; case CRM_MODULE_MERGING_STRATEGY_LAST: if (is_array($results) && count($results) > 0) { return end($results); } else { return $results; } break; case CRM_MODULE_MERGING_STRATEGY_RANDOM: if (is_array($results) && count($results) > 0) { require_once 'RandomStringGenerator.php'; $rnd = new \creamy\RandomStringGenerator(); $nmb = $rnd->getRandomInteger(0, count($results) - 1); return array_values($results)[$nmb]; } else { return $results; } break; } }