/** * Authentication action before install sample data * * @return void */ public function confirmAction() { $target = $this->request->getString('target'); if ($target == 'framework') { // Check if template has update also $this->checkUpdateAction(); $result = $this->getResponse(); $this->render('framework_confirm', array('manifest' => JSNTplHelper::getManifestCache('jsntplframework'), 'template' => $this->template['name'], 'templateHasUpdate' => $result['template']['hasUpdate'])); return; } // Process posted back data that sent from client if ($this->request->getMethod() == 'POST') { // Checking customer information $input = JFactory::getApplication()->input; $username = $input->getString('username', ''); $password = $input->getString('password', ''); // Try retrieve ordered editions to check customer information try { JSNTplApiLightcart::getOrderedEditions($this->template['id'], $username, $password); } catch (Exception $e) { throw $e; } return; } // Retrieve version data try { $versionData = JSNTplHelper::getVersionData(); } catch (Exception $e) { throw $e; } // Find template information by identify name foreach ($versionData['items'] as $item) { if ($item['identified_name'] == $this->template['id']) { if (isset($item['edition']) and !empty($item['edition']) or @is_array($item['editions']) and count($item['editions']) == 1) { $template = @is_array($item['editions']) ? $item['editions'][0] : $item; // Render login view $this->render('confirm', array('template' => $this->template, 'authenticate' => $template['authentication'])); } else { foreach ($item['editions'] as $template) { $edition = trim($template['edition']); if (str_replace('PRO ', '', $this->template['edition']) == str_replace('PRO ', '', $edition)) { // Render login view $this->render('confirm', array('template' => $this->template, 'authenticate' => $template['authentication'])); break; } } } break; } } }
/** * Render login form * * @return void */ public function loginAction() { // Retrieve version data try { $versionData = JSNTplHelper::getVersionData(); } catch (Exception $e) { throw $e; } // Find template information by identify name foreach ($versionData['items'] as $item) { if ($item['identified_name'] == $this->template['id']) { $templateInfo = $item; break; } } if (isset($templateInfo)) { if (isset($templateInfo['editions']) and is_array($templateInfo['editions'])) { foreach ($templateInfo['editions'] as $info) { $edition = trim($info['edition']); if (str_replace('PRO ', '', $this->template['edition']) == str_replace('PRO ', '', $edition)) { break; } } } elseif (isset($templateInfo['edition']) and !empty($templateInfo['edition'])) { $edition = trim($templateInfo['edition']); if (str_replace('PRO ', '', $this->template['edition']) == str_replace('PRO ', '', $edition)) { $info = $templateInfo; } } if (!isset($info) or $info['authentication'] == false) { $this->setResponse(array('auth' => false, 'id' => $this->template['id'], 'edition' => $info['edition'], 'joomlaVersion' => JSNTplHelper::getJoomlaVersion(2))); } else { // Render login view $this->render('login', array('template' => $this->template)); } } }
/** * Authentication action before install sample data * * @return void */ public function confirmAction() { $target = $this->request->getString('target'); if ($target == 'framework') { // Check if template has update also $this->checkUpdateAction(); $result = $this->getResponse(); $this->render('framework_confirm', array('manifest' => JSNTplHelper::getManifestCache('jsntplframework'), 'template' => $this->template['name'], 'templateHasUpdate' => $result['template']['hasUpdate'])); return; } // Check if user account was stored before $db = JFactory::getDbo(); $q = $db->getQuery(true); $q->select('params'); $q->from('#__extensions'); $q->where('`type` = ' . $q->quote('template')); $q->where('`element` = ' . $q->quote($this->template['name'])); $db->setQuery($q); $account = json_decode($db->loadResult()); $account = $account && isset($account->username) && isset($account->password) ? $account : false; // Process posted back data that sent from client if ($account || $this->request->getMethod() == 'POST') { // Checking customer information $input = JFactory::getApplication()->input; $username = $this->request->getMethod() == 'POST' ? $input->getString('username', '') : $account->username; $password = $this->request->getMethod() == 'POST' ? $input->getString('password', '') : $account->password; // Try retrieve ordered editions to check customer information try { JSNTplApiLightcart::getOrderedEditions($this->template['id'], $username, $password); // Store user account for later reference if ($this->request->getMethod() == 'POST') { $q = $db->getQuery(true); $q->update('#__extensions'); $q->set("`params` = '" . json_encode(array('username' => $input->getString('username'), 'password' => $input->getString('password'))) . "'"); $q->where('`type` = ' . $q->quote('template')); $q->where('`element` = ' . $q->quote($this->template['name'])); $db->setQuery($q); if (method_exists($db, 'execute')) { $db->execute(); } else { $db->query(); } } return; } catch (Exception $e) { if ($this->request->getMethod() == 'POST') { throw $e; } } } // Retrieve version data try { $versionData = JSNTplHelper::getVersionData(); } catch (Exception $e) { throw $e; } // Find template information by identify name foreach ($versionData['items'] as $item) { if ($item['identified_name'] == $this->template['id']) { if (isset($item['edition']) and !empty($item['edition']) or @is_array($item['editions']) and count($item['editions']) == 1) { $template = @is_array($item['editions']) ? $item['editions'][0] : $item; // Render login view $this->render('confirm', array('template' => $this->template, 'authenticate' => $template['authentication'])); } else { foreach ($item['editions'] as $template) { $edition = trim($template['edition']); if (str_replace('PRO ', '', $this->template['edition']) == str_replace('PRO ', '', $edition)) { // Render login view $this->render('confirm', array('template' => $this->template, 'authenticate' => $template['authentication'])); break; } } } break; } } }