/** * * @param mixed $config * @param array $replacement * @param array $attachment * @param bool $log * @param integer $vsprintfTimes * @param callback $filter * @return bool */ public function send($config = null, $replacement = array(), $attachment = array(), $log = false, $vsprintfTimes = 1, $filter = null) { if (is_scalar($config)) { $config = $this->getConfig($config); } if (isset($config['mail'])) { $config = $config['mail']; } //TODO if (count($config) > 0 && count($attachment) > 0) { foreach ($attachment as $att) { if ($att->filename) { $extension = strtolower(pathinfo(strval($att->filename), PATHINFO_EXTENSION)); if (isset(EhrlichAndreas_Util_Mime::$MIME_TYPE[$extension])) { $att->type = EhrlichAndreas_Util_Mime::$MIME_TYPE[$extension]; } } } } if (!is_null($filter)) { if ($config[0]['zfversion'] == 1) { $tmp = Zend_Json::encode($replacement); } elseif ($config[0]['zfversion'] == 2) { $callback = array('Zend\\Json\\Json', 'encode'); $param_arr = array($tmp); $tmp = call_user_func_array($callback, $param_arr); } $tmp = base64_encode($tmp); $tmp = ' replacement=\'' . $tmp . '\''; } $send = true; foreach ($config as $conf) { $fromEmail = EhrlichAndreas_Util_Vsprintf::vsprintf($conf['from']['email'], $replacement, $vsprintfTimes); $fromName = null; $replytoEmail = null; $replytoName = null; $toEmail = array(); $toName = array(); $ccEmail = array(); $ccName = array(); $bccEmail = array(); $bccName = array(); $header = array(); $subject = null; $bodyHtml = null; $bodyText = null; if (isset($conf['from']['name'])) { $fromName = EhrlichAndreas_Util_Vsprintf::vsprintf($conf['from']['name'], $replacement, $vsprintfTimes); } if (isset($conf['replyto']['email'])) { $replytoEmail = EhrlichAndreas_Util_Vsprintf::vsprintf($conf['replyto']['email'], $replacement, $vsprintfTimes); } if (isset($conf['replyto']['name'])) { $replytoName = EhrlichAndreas_Util_Vsprintf::vsprintf($conf['replyto']['name'], $replacement, $vsprintfTimes); } if (count($conf['to']) > 0) { foreach ($conf['to'] as $key => $value) { $email = EhrlichAndreas_Util_Vsprintf::vsprintf($value['email'], $replacement, $vsprintfTimes); $name = ''; if (isset($value['name'])) { $name = EhrlichAndreas_Util_Vsprintf::vsprintf($value['name'], $replacement, $vsprintfTimes); } //TODO /* if (isset($value['name']) && $value['name'] === $name) { $name = null; } */ $toEmail[$key] = $email; $toName[$key] = $name; } } if (count($conf['cc']) > 0) { foreach ($conf['cc'] as $key => $value) { $email = EhrlichAndreas_Util_Vsprintf::vsprintf($value['email'], $replacement, $vsprintfTimes); $name = ''; if (isset($value['name'])) { $name = EhrlichAndreas_Util_Vsprintf::vsprintf($value['name'], $replacement, $vsprintfTimes); } $ccEmail[$key] = $email; $ccName[$key] = $name; } } if (count($conf['bcc']) > 0) { foreach ($conf['bcc'] as $key => $value) { $email = EhrlichAndreas_Util_Vsprintf::vsprintf($value['email'], $replacement, $vsprintfTimes); $name = ''; if (isset($value['name'])) { $name = EhrlichAndreas_Util_Vsprintf::vsprintf($value['name'], $replacement, $vsprintfTimes); } $bccEmail[$key] = $email; $bccName[$key] = $name; } } if (count($conf['header']) > 0) { foreach ($conf['header'] as $key => $value) { if (!isset($value['append'])) { $value['append'] = false; } $header[] = $value; } } /* if (isset($conf['subject']) && strlen($conf['subject']) > 0) { $subject = $conf['subject']; if (!is_null($filter)) { $subject = str_replace(' replacement=\'%replacement%\'', $tmp, $subject); } else { $subject = preg_replace('#\\[base64.*\\[\\/base64\\]#ui', '', $subject); } if (!is_null($filter)) { $subject = str_replace(' replacement=\'%replacement%\'', $tmp, $subject); $subject = EhrlichAndreas_Util_Vsprintf::vsprintf($subject, $replacement, $vsprintfTimes); } else { $subject = EhrlichAndreas_Util_Vsprintf::vsprintf($subject, $replacement, 1); $subject = preg_replace('#\\[base64.*\\[\\/base64\\]#ui', '', $subject); $subject = EhrlichAndreas_Util_Vsprintf::vsprintf($subject, $replacement, $vsprintfTimes - 1); } } * */ if (isset($conf['subject']) && strlen($conf['subject']) > 0) { $subject = $conf['subject']; if (!is_null($filter)) { $subject = str_replace(' replacement=\'%replacement%\'', $tmp, $subject); $subject = EhrlichAndreas_Util_Vsprintf::vsprintf($subject, $replacement, $vsprintfTimes); } else { for ($vsprintfTime = 0; $vsprintfTime < $vsprintfTimes; $vsprintfTime++) { $subject = preg_replace('#\\[base64.*\\[\\/base64\\]#si', '', $subject); $subject = str_replace(' replacement=\'%replacement%\'', '', $subject); $subject = str_replace(' replacement=\'\'', '', $subject); $subject = EhrlichAndreas_Util_Vsprintf::vsprintf($subject, $replacement); } } } if (!is_null($subject) && !is_null($filter)) { $subject = call_user_func_array($filter, array($subject)); } /* if (isset($conf['body']['html']) && strlen($conf['body']['html']) > 0) { $bodyHtml = $conf['body']['html']; if (!is_null($filter)) { $bodyHtml = str_replace(' replacement=\'%replacement%\'', $tmp, $bodyHtml); $bodyHtml = EhrlichAndreas_Util_Vsprintf::vsprintf($bodyHtml, $replacement, $vsprintfTimes); } else { $bodyHtml = EhrlichAndreas_Util_Vsprintf::vsprintf($bodyHtml, $replacement, 1); $bodyHtml = preg_replace('#\\[base64.*\\[\\/base64\\]#ui', '', $bodyHtml); $bodyHtml = EhrlichAndreas_Util_Vsprintf::vsprintf($bodyHtml, $replacement, $vsprintfTimes - 1); } } * */ if (isset($conf['body']['html']) && strlen($conf['body']['html']) > 0) { $bodyHtml = $conf['body']['html']; if (!is_null($filter)) { $bodyHtml = str_replace(' replacement=\'%replacement%\'', $tmp, $bodyHtml); $bodyHtml = EhrlichAndreas_Util_Vsprintf::vsprintf($bodyHtml, $replacement, $vsprintfTimes); } else { for ($vsprintfTime = 0; $vsprintfTime < $vsprintfTimes; $vsprintfTime++) { $bodyHtml = preg_replace('#\\[base64.*\\[\\/base64\\]#si', '', $bodyHtml); $bodyHtml = str_replace(' replacement=\'%replacement%\'', '', $bodyHtml); $bodyHtml = str_replace(' replacement=\'\'', '', $bodyHtml); $bodyHtml = EhrlichAndreas_Util_Vsprintf::vsprintf($bodyHtml, $replacement); } } } if (!is_null($bodyHtml) && !is_null($filter)) { $bodyHtml = call_user_func_array($filter, array($bodyHtml)); } if (!is_null($bodyHtml)) { $bodyHtml = preg_replace('#\\r?\\n|\\r\\n?#', $conf['eol'], $bodyHtml); } /* if (isset($conf['body']['text']) && strlen($conf['body']['text']) > 0) { $bodyText = $conf['body']['text']; if (!is_null($filter)) { $bodyText = str_replace(' replacement=\'%replacement%\'', $tmp, $bodyText); $bodyText = EhrlichAndreas_Util_Vsprintf::vsprintf($bodyText, $replacement, $vsprintfTimes); } else { $bodyText = EhrlichAndreas_Util_Vsprintf::vsprintf($bodyText, $replacement, 1); $bodyText = preg_replace('#\\[base64.*\\[\\/base64\\]#ui', '', $bodyText); $bodyText = EhrlichAndreas_Util_Vsprintf::vsprintf($bodyText, $replacement, $vsprintfTimes - 1); } $bodyText = EhrlichAndreas_Util_Vsprintf::vsprintf($bodyText, $replacement, $vsprintfTimes); } * */ if (isset($conf['body']['text']) && strlen($conf['body']['text']) > 0) { $bodyText = $conf['body']['text']; if (!is_null($filter)) { $bodyText = str_replace(' replacement=\'%replacement%\'', $tmp, $bodyText); $bodyText = EhrlichAndreas_Util_Vsprintf::vsprintf($bodyText, $replacement, $vsprintfTimes); } else { for ($vsprintfTime = 0; $vsprintfTime < $vsprintfTimes; $vsprintfTime++) { $bodyText = preg_replace('#\\[base64.*\\[/base64\\]#si', '', $bodyText); $bodyText = str_replace(' replacement=\'%replacement%\'', '', $bodyText); $bodyText = str_replace(' replacement=\'\'', '', $bodyText); $bodyText = EhrlichAndreas_Util_Vsprintf::vsprintf($bodyText, $replacement); } } } if (!is_null($bodyText) && !is_null($filter)) { $bodyText = call_user_func_array($filter, array($bodyText)); } if (!is_null($bodyText)) { $bodyText = preg_replace('#\\r?\\n|\\r\\n?#', $conf['eol'], $bodyText); } if ($conf['zfversion'] == 1) { //require_once 'Zend/Mail.php'; $message = new Zend_Mail($conf['charset']); $message->setHeaderEncoding($conf['encoding']); } elseif ($conf['zfversion'] == 2) { $classMailMessage = 'Zend\\Mail\\Message'; $message = new $classMailMessage(); $message->setEncoding($conf['charset']); $classMimeMessage = 'Zend\\Mime\\Message'; $mimeBody = new $classMimeMessage(); $message->setBody($mimeBody); $headers = $message->getHeaders(); $headers->setEncoding('ASCII'); } $message->setFrom($fromEmail, $fromName); if (!is_null($replytoEmail)) { $message->setReplyTo($replytoEmail, $replytoName); } foreach ($toEmail as $key => $email) { $name = $toName[$key]; $message->addTo($email, $name); } foreach ($ccEmail as $key => $email) { $name = $ccName[$key]; $message->addCc($email, $name); } foreach ($bccEmail as $key => $email) { $name = $bccName[$key]; $message->addBcc($email, $name); } if ($conf['zfversion'] == 1) { foreach ($header as $key => $value) { $message->addHeader($value['name'], $value['value'], $value['append']); } } elseif ($conf['zfversion'] == 2) { $headers = $message->getHeaders(); //$headers->setEncoding($conf['charset']); foreach ($header as $key => $value) { $classGenericMultiHeader = 'Zend\\Mail\\Header\\GenericMultiHeader'; $headerTmp = new $classGenericMultiHeader($value['name'], $value['value']); $headerTmp->setEncoding($conf['charset']); $headers->addHeader($headerTmp); } } if (!is_null($subject)) { $message->setSubject($subject); } if ($conf['zfversion'] == 1) { if (!is_null($bodyHtml)) { $message->setBodyHtml($bodyHtml, $conf['charset'], $conf['encoding']); } if (!is_null($bodyText)) { $message->setBodyText($bodyText, $conf['charset'], $conf['encoding']); } } elseif ($conf['zfversion'] == 2) { $htmlPart = null; $textPart = null; //$mimeMessage = null; if (!is_null($bodyText)) { $classMimePart = 'Zend\\Mime\\Part'; $textPart = new $classMimePart($bodyText); $textPart->type = 'text/plain'; $textPart->charset = $conf['charset']; $textPart->encoding = $conf['encoding']; $message->getBody()->addPart($textPart); $classGenericMultiHeader = 'Zend\\Mail\\Header\\GenericMultiHeader'; $headerTmp = new $classGenericMultiHeader('content-type', 'text/plain; charset=' . $conf['charset']); $headerTmp->setEncoding('ASCII'); $headers->removeHeader('content-type'); $headers->addHeader($headerTmp); } if (!is_null($bodyHtml)) { $classMimePart = 'Zend\\Mime\\Part'; $htmlPart = new $classMimePart($bodyHtml); $htmlPart->type = 'text/html'; $htmlPart->charset = $conf['charset']; $htmlPart->encoding = $conf['encoding']; $message->getBody()->addPart($htmlPart); $classGenericMultiHeader = 'Zend\\Mail\\Header\\GenericMultiHeader'; $headerTmp = new $classGenericMultiHeader('content-type', 'text/html; charset=' . $conf['charset']); $headerTmp->setEncoding('ASCII'); $headers->removeHeader('content-type'); $headers->addHeader($headerTmp); } /* if (!is_null($htmlPart) || !is_null($textPart)) { $mimeMessage = new Zend\Mime\Message(); } if (!is_null($htmlPart)) { $mimeMessage->addPart($htmlPart); } if (!is_null($textPart)) { $mimeMessage->addPart($textPart); } if (!is_null($mimeMessage)) { $alternativePart = new Zend\Mime\Part($mimeMessage->generateMessage()); $alternativePart->type = 'multipart/alternative'; $alternativePart->boundary = $mimeMessage->getMime()->boundary(); $alternativePart->charset = $conf['charset']; //$alternativePart->encoding = $conf['encoding']; $message->getBody()->addPart($alternativePart); } * */ } if ($conf['zfversion'] == 1) { if (isset($conf['attachment']) && strlen($conf['attachment']) > 0 && $conf['attachment']) { foreach ($attachment as $att) { $message->addAttachment($att); } } } elseif ($conf['zfversion'] == 2) { //TODO add attachements } /* * * TODO add attachements * if (count($config)>0&&count($attachment)>0) { foreach ($attachment as $att) { if ($att->filename) { $extension = strtolower(pathinfo(strval($att->filename),PATHINFO_EXTENSION)); if (isset(EhrlichAndreas_Util_Mime::$MIME_TYPE[$extension])) { $att->type = EhrlichAndreas_Util_Mime::$MIME_TYPE[$extension]; } } } } if (isset($conf['attachment'])&&strlen($conf['attachment'])>0&&$conf['attachment']) { foreach ($attachment as $att) { $mail->addAttachment($att); } } * */ if ($conf['zfversion'] == 1) { } elseif ($conf['zfversion'] == 2) { $headers = $message->getHeaders(); //$headers->setEncoding('ASCII'); $classGenericMultiHeader = 'Zend\\Mail\\Header\\GenericMultiHeader'; $headerTmp = new $classGenericMultiHeader('Content-Transfer-Encoding', $conf['encoding']); $headerTmp->setEncoding('ASCII'); $headers->addHeader($headerTmp); if (!is_null($bodyText) && !is_null($bodyHtml)) { $headers->removeHeader('Content-Transfer-Encoding'); $headers->removeHeader('content-type'); $boundary = $message->getBody()->getMime()->boundary(); $classGenericMultiHeader = 'Zend\\Mail\\Header\\GenericMultiHeader'; $headerTmp = new $classGenericMultiHeader('content-type', 'multipart/alternative; boundary="' . $boundary . '"'); $headerTmp->setEncoding('ASCII'); $headers->addHeader($headerTmp); } if (false && $message->getBody()->isMultiPart()) { $classGenericMultiHeader = 'Zend\\Mail\\Header\\GenericMultiHeader'; $headerTmp = new $classGenericMultiHeader('content-type', 'multipart/alternative; charset=' . $conf['charset']); $headerTmp->setEncoding('ASCII'); $headers->addHeader($headerTmp); } } /* * echo '<pre>'; var_dump ( $fromEmail, $fromName, $replytoEmail, $replytoName, $toEmail, $toName, $ccEmail, $ccName, $bccEmail, $bccName, $header, $subject, $bodyHtml, $bodyText ); //print_r($replacement); //die(); /* */ if ($conf['zfversion'] == 1) { $defaultTranslator = Zend_Validate_Abstract::getDefaultTranslator(); if (is_object($defaultTranslator)) { Zend_Validate_Abstract::setDefaultTranslator(null); $defaultTranslatorOptions = $defaultTranslator->getOptions(); $defaultTranslator->setOptions(array('logUntranslated' => false)); } } else { } $messageTransport = $conf['transport']; try { $messageTransport->send($message); $sendTmp = true; } catch (Exception $e) { $sendTmp = false; } $send = $send && $sendTmp; if ($conf['zfversion'] == 1) { if (is_object($defaultTranslator)) { $defaultTranslator->setOptions($defaultTranslatorOptions); Zend_Validate_Abstract::setDefaultTranslator($defaultTranslator); } } else { } } return $send; }
/** * Assembles a URL path defined by this route * * @param array $data An array of name (or index) and value pairs used as parameters * @return string Route path with user submitted parameters */ public function assemble($data = array(), $reset = false, $encode = false, $partial = false) { if ($this->_reverse === null) { throw new EhrlichAndreas_Mvc_Exception('Cannot assemble. Reversed route is not specified.'); } $callbacks = $this->_callbacks; $defaultValuesMapped = $this->_defaults; $matchedValuesMapped = $this->_values; $dataValuesMapped = $data; $defaultValuesMapped = $this->_getMappedValues($defaultValuesMapped, true, false); $matchedValuesMapped = $this->_getMappedValues($matchedValuesMapped, true, false); $dataValuesMapped = $this->_getMappedValues($dataValuesMapped, true, false); $resetKeys = array_search(null, $dataValuesMapped, true); // handle resets, if so requested (By null value) to do so if ($resetKeys !== false) { foreach ((array) $resetKeys as $resetKey) { if (isset($matchedValuesMapped[$resetKey])) { unset($matchedValuesMapped[$resetKey]); unset($dataValuesMapped[$resetKey]); } } } // merge all the data together, first defaults, then values matched, then supplied $mergedData = $defaultValuesMapped; $mergedData = $this->_arrayMergeNumericKeys($mergedData, $matchedValuesMapped); $mergedData = $this->_arrayMergeNumericKeys($mergedData, $dataValuesMapped); $mergedData = $this->_getMappedValues($mergedData, false, true); foreach ($mergedData as $k => $d) { if (isset($callbacks[$k]) && is_array($callbacks[$k]) && count($callbacks[$k]) > 0) { foreach ($callbacks[$k] as $callback) { if (is_array($callback)) { //$callbacks [$k] = implode('::', $callbacks [$k]); $d = call_user_func_array($callback, array($d, $mergedData)); } else { $d = call_user_func($callback, $d); } } $mergedData[$k] = $d; } } $mergedData = $this->_getMappedValues($mergedData, true, false); if ($encode) { foreach ($mergedData as $key => $value) { $value = urlencode($value); $mergedData[$key] = $value; } } ksort($mergedData); $return = EhrlichAndreas_Util_Vsprintf::vsprintf($this->_reverse, $mergedData); if ($return === false) { $mergedData = print_r($mergedData, true); $mergedData = '$mergedData = ' . $mergedData . "\n<br>"; $reverse = print_r($this->_reverse, true); $reverse = '$reverse = ' . $reverse . "\n<br>"; throw new EhrlichAndreas_Mvc_Exception('Cannot assemble. Too few arguments?'); } return $return; }
public function parse($limitDrawList = 5) { $parser = new EhrlichAndreas_LotteryCms_Parser_LottoDe(); $provider = $parser->getProvider(); $provider_id = 0; $lottery_name = array('spiel77' => 'spiel77', 'super6' => 'super6', 'lotto' => 'lotto'); $provider_lottery_name = array('spiel77' => 'Spiel 77', 'super6' => 'Super 6', 'lotto' => 'Lotto'); $provider_lottery_id = array('spiel77' => 'spiel77', 'super6' => 'super6', 'lotto' => 'lotto'); $lottery_text = array('lottery_draw_title_digits' => '%provider_territory_name% :: %provider_lottery_name% :: digits', 'lottery_draw_title_digits_additional' => '%provider_territory_name% :: %provider_lottery_name% :: digits_additional', 'lottery_draw_title_digits_bonus' => '%provider_territory_name% :: %provider_lottery_name% :: digits_bonus', 'lottery_info_text_information' => '%provider_territory_name% :: %provider_lottery_name% :: information', 'lottery_info_text_rules' => '%provider_territory_name% :: %provider_lottery_name% :: rules'); $locales = array('de', 'en'); $lotteryList = array(); $lotteryTextList = array(); $provider_ids = $this->addReturnProvider($provider); $provider_id = array_shift($provider_ids); $lotteryIds = $this->addReturnLottery($provider, $lottery_name); foreach ($lottery_name as $value) { $param = array('provider_id' => $provider_id, 'lottery_name' => $value, 'provider_lottery_id' => $provider_lottery_id[$value], 'provider_lottery_name' => $provider_lottery_name[$value], 'provider_territory_name' => 'Deutschland', 'iso_3166_1_alpha_2' => 'DE', 'iso_3166_1_alpha_3' => 'DEU', 'iso_3166_1_numeric' => '276', 'provider_hosted_in' => 'Deutschland', 'where' => array('provider_id' => $provider_id, 'lottery_name' => $value)); $lottery_id = $this->editLottery($param); } $param = array('provider_id' => $provider_id, 'lottery_name' => $lottery_name); $rowset = $this->getLotteryList($param); foreach ($rowset as $row) { $lotteryList[$row['lottery_name']] = $row; } $param = array('provider_id' => $provider_id, 'lottery_id' => $lotteryIds, 'locale' => $locales, 'field_name' => array_keys($lottery_text)); $rowset = $this->getLotteryTextList($param); foreach ($rowset as $row) { $key = ''; $key .= $row['provider_id']; $key .= '::'; $key .= $row['lottery_id']; $key .= '::'; $key .= $row['locale']; $key .= '::'; $key .= $row['field_name']; $lotteryTextList[$key] = $row; } foreach ($lotteryList as $lottery) { foreach ($lottery_text as $field_name => $comment) { foreach ($locales as $locale) { $key = ''; $key .= $provider_id; $key .= '::'; $key .= $lottery['lottery_id']; $key .= '::'; $key .= $locale; $key .= '::'; $key .= $field_name; if (!isset($lotteryTextList[$key])) { $comment = EhrlichAndreas_Util_Vsprintf::vsprintf($comment, $lottery); $param = array('lottery_id' => $lottery['lottery_id'], 'provider_id' => $provider_id, 'provider' => $provider, 'provider_lottery_id' => $lottery['provider_lottery_id'], 'locale' => $locale, 'field_name' => $field_name, 'comment ' => $comment); $lottery_text_id = $this->addLotteryText($param); $lotteryTextList[$key] = $param; $lotteryTextList[$value]['lottery_text_id'] = $lottery_text_id; } } } } $link = array(); $drawResults = $parser->getLotteryResults($link); $years = $drawResults['additional']['years']; $days = $drawResults['additional']['drawdays']; $viewstate = $drawResults['additional']['viewstate']; $drawsCount = 0; foreach ($years as $year) { if ($limitDrawList > 0 && $drawsCount >= $limitDrawList) { break; } $day = '0001-01-01'; if (count($days) > 0) { $day = array_values($days); $day = $day[0]; } $year = strval($year); if (stripos($day, $year) !== 0) { $link = array('query' => array('year' => $year)); $drawResults = $parser->getLotteryResults($link); $days = $drawResults['additional']['drawdays']; #$viewstate = $drawResults['additional']['viewstate']; } foreach ($days as $day) { $link = array('query' => array('year' => $year, 'drawday' => $day)); $drawResults = $parser->getLotteryResults($link); #$viewstate = $drawResults['additional']['viewstate']; $lotteryDraws = $drawResults['lottery']; foreach ($lotteryDraws as $lotteryDraw) { if (strlen($lotteryDraw['digits']) <= 0) { continue; } $lottery_id = $lotteryList[$lotteryDraw['lottery_name']]['lottery_id']; $provider_lottery_id = $lotteryList[$lotteryDraw['lottery_name']]['provider_lottery_id']; $where = array('lottery_id' => $lottery_id, 'provider_draw_id' => $day); $param = array('lottery_id' => $lottery_id, 'provider_id' => $provider_id, 'provider' => $provider, 'provider_lottery_id' => $provider_lottery_id, 'provider_draw_id' => $day, 'date_draw' => $day, 'year_8601' => $year, 'digits' => $lotteryDraw['digits'], 'digits_additional' => $lotteryDraw['digits_additional'], 'digits_bonus' => $lotteryDraw['digits_bonus'], 'currency' => $lotteryDraw['currency'], 'amount' => $lotteryDraw['amount']); $rowset = $this->getDrawList($where); if (count($rowset) <= 0) { $paramInsert = $param; $this->addDraw($paramInsert); } else { $paramEdit = $param; $paramEdit['where'] = $where; $this->editDraw($paramEdit); } $rowset = $this->getDrawList($where); $param['draw_id'] = $rowset[0]['draw_id']; $param['provider_game_id'] = $rowset[0]['provider_game_id']; foreach ($lotteryDraw['payout'] as $payout) { $paramSelect = array('lottery_id' => $lottery_id, 'draw_id' => $param['draw_id'], 'rank' => $payout['rank']); $rowset = $this->getPayoutList($paramSelect); $param = array_merge($param, $payout); if (count($rowset) <= 0) { $paramInsert = $param; $this->addPayout($paramInsert); } else { $paramEdit = $param; $paramEdit['where'] = $paramSelect; unset($paramEdit['where']['cols']); $this->editPayout($paramEdit); } } } $drawsCount++; if ($limitDrawList > 0 && $drawsCount >= $limitDrawList) { break; } } } }