/** * Set refresh token */ private function setRefreshToken() { $token = new AccessToken(Helper::decamelize($this->repository->getTokens())); $tokens = $this->provider->getAccessToken('refresh_token', ['refresh_token' => $token->refreshToken]); $token = array('access_token' => $tokens->accessToken, 'refresh_token' => $tokens->refreshToken, 'expires' => $tokens->expires, 'uid' => $tokens->uid); $this->repository->setTokens(json_encode($token)); $this->redirect("{$this->paths['admin_url']}addonmodules.php?module=bulutfon&code={$this->request->get('code')}}"); }
function bulutfon_output($vars) { require_once "init.php"; $repository = new Repository(); $request = Request::createFromGlobals(); $provider = new Bulutfon($repository->getKeys()); $tokens = $repository->getTokens(); $smarty = bulutfon_smarty(); if ($tokens) { $token = new AccessToken(Helper::decamelize($tokens)); } else { Helper::outputIfAjax("<a href='{$provider->getAuthorizationUrl()}' class='button'>Yetkilendir.</a>"); Helper::redirect($provider->getAuthorizationUrl()); } switch ($request->get('tab', 'default')) { case 'delete': $phone = (int) $request->get('number', false); if ($repository->deleteNumber($phone)) { Helper::json('deleted'); } Helper::json('failed'); break; case 'addtouser': $smarty->assign('number', $request->get('number')); if ($request->get('clientid')) { $validator = new Valitron\Validator($_POST); $rules = array('required' => array(array('telefon-numarasi'), array('clientid'), array('value')), 'integer' => array(array('telefon-numarasi'), array('clientid')), 'lengthMin' => array(array('telefon-numarasi', 10)), 'lengthMax' => array(array('telefon-numarasi', 20))); $validator->rules($rules); function show_errors($array, $value, $smarty) { $errors = "<div style='color: #a94442;background-color: #f2dede;border:1px solid #ebccd1;padding:5px'><ul style='padding:0'>"; if (isset($array)) { foreach ($array as $e) { $errors .= "<li>{$e}</li>"; } $smarty->assign($value, "{$errors}</ul></div>"); } } if ($validator->validate()) { $add = $repository->addNumber($request->get('clientid'), $request->get('telefon-numarasi')); if ($add) { $smarty->assign('success', 'Kayıt başarıyla eklenmiştir.'); } else { $errors = array(); $errors['telefon-numarasi'] = array('Bu telefon numarası zaten kayıtlı.'); show_errors($errors['telefon-numarasi'], 'telefon', $smarty); $smarty->assign('number', $request->get('telefon-numarasi')); } } else { // really hate smarty and i am a bit lazy. $errors = $validator->errors(); // it must be handled by smarty but i cant figure out show_errors($errors['telefon-numarasi'], 'telefon', $smarty); show_errors($errors['clientid'], 'user', $smarty); show_errors($errors['value'], 'user', $smarty); } } $smarty->display('adduser.tpl'); break; default: $page = $request->get('page', 1); $userid = $request->get('userid'); // 100 results a bit overkill setted to 10. $filters = array('limit' => (int) $request->get('limit', 10)); $fields = true; if ($userid) { $smarty->assign('userid', $userid); $numbers = $repository->getUserNumbers($userid); if (!$numbers) { Helper::json("<p>Kayıtlı telefon numarası bulunamadı.</p>"); } $smarty->assign('userNumbers', $numbers); foreach ($numbers as $number) { if (strlen($number) > 9 && strlen($number) < 12) { array_push($numbers, '90' . ltrim($number, '0')); } } $numbers = Helper::imp($numbers); $filters['caller_or_callee'] = $numbers; } $smarty->assign('cdrs', $provider->getCdrs($token, $filters, $page)->cdrs); $smarty->assign('fields', $fields); $smarty->assign('page', $page); $smarty->assign('limit', (int) $request->get('limit', 10)); Helper::outputIfAjax($smarty->fetch('cdr.tpl')); $smarty->display('cdr.tpl'); break; } }