function writeRefRows($treeCatID, $dbCatID, $recID) { $treeProvider = ProviderFactory::getTree(); $tblRef = $treeProvider->getTableRef($treeCatID, $dbCatID); if ($tblRef['srcType'] == '') { die; } $provider = ProviderFactory::getTable($tblRef); $provider->writeRefRows($tblRef, $dbCatID, $recID); }
static function getUserPermissions($ticket) { $sessions = ProviderFactory::getSessions('xmlData/'); $userID = $sessions->getAuthorizedUser($ticket); if ($userID == null) { self::writeError('errAuthorizationRequired'); die; } $userProvider = ProviderFactory::getUsers(); return $userProvider->getUserPermissions($userID); }
function writeColumns($treeCatID, $dbCatID, $allMode) { $treeProvider = ProviderFactory::getTree(); $tblRef = $treeProvider->getTableRef($treeCatID, $dbCatID); if ($tblRef['srcType'] == '') { die; } $provider = ProviderFactory::getTable($tblRef); if (Util::checkAccess($ticket, $catRef)) { $provider->writeColumns($tblRef, $allMode); } }
function writeResult($treeCatID, $dbCatID, $rowIDs) { $treeProvider = ProviderFactory::getTree(); $tblRef = $treeProvider->getTableRef($treeCatID, $dbCatID); if ($tblRef['srcType'] == '') { die; } $provider = ProviderFactory::getTable($tblRef); if (Util::checkAccess($ticket, $catRef)) { $provider->deleteRows($tblRef, $rowIDs); } }
function writeResult($treeCatID, $dbCatID, $recID, $data) { $treeProvider = ProviderFactory::getTree(); $tblRef = $treeProvider->getTableRef($treeCatID, $dbCatID); if ($tblRef['srcType'] == '') { die; } $provider = ProviderFactory::getTable($tblRef); if (Util::checkAccess($ticket, $catRef)) { $provider->saveRecordData($tblRef, $dbCatID, $recID, $data); } }
function writeDBTypes($ticket) { if (!Util::checkAccess($ticket, null)) { Util::writeError('errAuthorizationRequired'); die; } $types = ProviderFactory::getDBTypes(); echo '['; echo '{"id":"none","text":"---"}'; foreach (array_keys($types) as $k) { $t = $types[$k]; echo ",{\"id\":\"{$k}\",\"text\":\"{$t}\"}"; } echo ']'; }
function writeCatData($treeCatID, $dbCatID, $ticket) { $treeProvider = ProviderFactory::getTree(); if ($dbCatID == null) { $treeProvider->writeCatData($treeCatID); } else { $tblRef = $treeProvider->getTableRef($treeCatID, $dbCatID); if ($tblRef == null) { Util::writeError("errCatPropertiesNotAvailable"); die; } if ($tblRef['srcType'] == '') { die; } $provider = ProviderFactory::getTable($tblRef); if (Util::checkAccess($ticket, $catRef)) { $provider->writeCatData($tblRef, $dbCatID); } } }
function saveCatalogProperties($catRef, $treeCatID, $dbCatID, $data, $ticket) { // var_dump(array($treeCatID, $dbCatID, $data, $ticket)); if (!Util::checkAccess($ticket, $catRef)) { Util::writeError('errAuthorizationRequired'); die; } $treeProvider = ProviderFactory::getTree(); if ($dbCatID == null) { $treeProvider->saveTreeNode($treeCatID, $data); } else { $tblRef = $treeProvider->getTableRef($treeCatID, $dbCatID); $provider = ProviderFactory::getTable($tblRef); $provider->saveTreeNode($dbCatID, $data); } // $treeProvider = ProviderFactory::getTree(); // $tblRef = $treeProvider->getTableRef($treeCatID, $dbCatID); // if($tblRef['srcType']=='') die(); // $provider = ProviderFactory::getTable($tblRef); // if(Util::checkAccess($ticket, $catRef)){ // $provider->saveRecordData($tblRef, $dbCatID, $recID, $data); // } }
/** * Send a sms * * The most important method form the component. Send a sms. * */ function DoSendSms() { //check global maxsms parameter before sending $sql = " /*com_byjg:dosendsms select global sms litmit */\r\n\t\t\t\tSELECT value FROM #__byjg_config WHERE name='maxsms' LIMIT 1"; $this->db->setQuery($sql); //check result and output a message if ($this->db->query($sql) == false) { $this->errorHandler->Alert(JText::_('BYJG_SQLQUERY_ERROR'), $this->db->getErrorMsg()); } $maxsms = $this->db->loadResult(); if (!is_null($maxsms) && $maxsms > 0) { $limit = $maxsms; $sql = "SELECT COUNT(*) AS COUNTER FROM #__byjg_sendsms"; $this->db->setQuery($sql); //check result and output a message if ($this->db->query($sql) == false) { $this->errorHandler->Alert(JText::_('BYJG_SQLQUERY_ERROR'), $this->db->getErrorMsg()); } $row = $this->db->loadObject(); if ($row->COUNTER >= $limit) { $this->errorHandler->Alert(JText::_('BYJG_GLOBAL_LIMIT_REACHED')); } } $msg = ''; //get input parameters $sms_body = JRequest::getVar('sms_body', ''); //dont check body, if we want to send a empty sms it is ok $sms_send = JRequest::getVar('sms_send', ''); $from = $sms_send; $sms_ddd = JRequest::getVar('sms_ddd', ''); $ad = JRequest::getVar('ad', ''); if (strlen($sms_body) == 0) { $this->errorHandler->Alert(JText::_('BYJG_SMS_BODY_EMPTY')); } /* * check sms sender if( strlen( $sms_send ) < 8 ) { $this->errorHandler->Alert( JText::_( 'BYJG_INVALID_SENDER' ) ); } */ $sms_recv = JRequest::getVar('sms_recv', ''); $this->Filter($sms_recv); //check sms recv if (strlen($sms_recv) < 8) { $this->errorHandler->Alert(JText::_('BYJG_INVALID_RECIPIENT')); die; } //append advertisment to sms if (strlen($ad) > 0) { $bodyLen = strlen($sms_body); $adLen = strlen($ad); $len = $bodyLen + $adLen; if ($len > 160) { $sms_body = substr($sms_body, 0, 159 - strlen($ad)); $sms_body .= "\n" . $ad; } else { $sms_body .= "\n" . $ad; } } //now check if the sms body is not longer that 160 if (strlen($sms_body) > 160) { $sms_body = substr($sms_body, 0, 160); } //get the current sms provider //create provider factory $factory = new ProviderFactory(); $provider = $factory->getActiveInstance(); //check provider here if ($provider === false) { $this->errorHandler->Alert(JText::_('BYJG_NO_ACTIVE_PROVIDER')); die; } $errMsg = ''; $arr = explode(";", $sms_recv); foreach ($arr as $recv) { $recv = trim($recv); //trim whitespaces if (strlen($recv) < 8) { continue; } //check user balance if ($this->user->balance() <= 0) { $this->errorHandler->Alert(JText::_('BYJG_NOT_SUFFICIENT_FUNDS')); } //trigger plugins if available $dispatcher = JDispatcher::getInstance(); JPluginHelper::importPlugin('byjg'); $data = array('message' => $sms_body, 'sender' => $sms_send, 'receiver' => $recv); $result = $dispatcher->trigger('onSendSms', $data); $abort = false; foreach ($result as $code) { if ($code == false) { $abort = true; break; } } //a plugin has returned false, so we cancel the send process if ($abort == true) { ByJGRedirect($this->CreateRedirectUrl(), JText::_('BYJG_PLUGIN_ABORT')); } /* * Chamada da funcao alterada por BYJG para atender ao Gateway ByJG * alterado em 09.10.10 * $ret = $provider->sendSMS( $sms_body, $sms_send, $recv, $msg ); */ $ret = $provider->sendSMS($sms_body, $sms_ddd, $recv, $sms_send, $msg); //sms sending failed if ($ret == false) { $errMsg .= JText::sprintf('BYJG_SEND_SMS_FAILED', $recv); $errMsg = $errMsg . ' (' . $msg . ').'; } else { //dont forget to update the user balance $bal = (int) $this->user->balance(); $bal--; if ($this->user->setBalance($bal) == false) { $this->errorHandler->Alert(JText::_('BYJG_CHANGE_BALANCE_FAILED')); } //sendind was ok, so archive it $to = $sms_ddd . $recv; $text = $sms_body; $provider->archiveSMS($text, $from, $to); $errMsg .= JText::sprintf('BYJG_SEND_SMS_SUCCESSFULLY', $recv); $errMsg = $errMsg . ' (' . $msg . ').'; } } ByJGRedirect($this->CreateRedirectUrl(), $errMsg); }
<?php require 'util.php'; require 'providers/factory.php'; $rootID = $_REQUEST["rootID"]; $depth = $_REQUEST["depth"]; $includeRoot = $_REQUEST["includeRoot"]; $excludeBranch = $_REQUEST["excludeBranch"]; $ticket = $_REQUEST["ticket"]; $thisDBOnly = $_REQUEST["thisDBOnly"] == 'true'; $permissions = Util::getUserPermissions($ticket); $treeProvider = ProviderFactory::getTree(); echo "["; if (strpos($rootID, "/") > 0) { $catRef = explode("/", $rootID); $treeCatID = $catRef[0]; $dbCatID = $catRef[1]; $tblRef = $treeProvider->getTableRef($treeCatID, $dbCatID); $dbProvider = ProviderFactory::getTable($tblRef); //var_dump($tblRef); $dbProvider->writeTableTree($tblRef['tableID'], $treeCatID); } else { $treeProvider->writeTree($rootID, $depth != "1", null, $permissions, false); } echo "]";
/** * Do Edit a specific provider * * Show the edit panel for a provider */ function DoProviderEdit() { //only one provider can be edited if (is_array($this->cid)) { $id = (int) $this->cid[0]; } else { $id = (int) $this->cid; } //set query and execute it, load selected provider $sql = "SELECT * FROM #__byjg_provider WHERE id={$id}"; $this->ExecuteSql($sql); $row = $this->db->loadObject(); $factory = new ProviderFactory(); $provider = $factory->getInstance($row->name); if ($provider === false) { $this->errorHandler->Alert(JText::_('BYJG_PROVIDERFACTORY_NOT_FOUND')); } $provider->_params = $this->crypto->Decode($row->params); $this->html->editProvider($row, $provider); }
$sessionProvider = ProviderFactory::getSessions(null); if ($action == "logoff") { $sessionProvider->closeSession($ticket); $ticket = ''; } else { if ($action = "logon") { $userProvider = new XmlUsersDB(); if ($userProvider->checkUser($usr, $psw)) { $ticket = getUserHash(); $sessionProvider->setSession($usr, $ticket); } } } $_SESSION["ticket"] = $ticket; $authorizedUser = $sessionProvider->getAuthorizedUser($ticket); $userProvider = ProviderFactory::getUsers(); $authorizedUserName = $userProvider->getUserName($authorizedUser); if ($ticket == '') { ?> <div id="authorizationPanel"> <form action="logon.php" method="post"> <div><span class="local" ar-locale-id="login">Логин</span>: <input type="text" name="tbLogin"/></div> <div><span class="local" ar-locale-id="password">Пароль</span>: <input type="password" name="tbPassword"/></div> <input type="hidden" name="hAction" value="logon"/> <div><input class="local" ar-locale-id="logon" ar-locale-target="value" type="submit" value="Вход"/></div> </form> </div> <?php } else { ?>
/** * This function shows a provider selection panel before editing a provider * * @param array $rows **/ function showProviderSelectPanel(&$rows) { $option = JRequest::getCmd('option'); ?> <form action="index.php" method="post" name="adminForm"> <table class="adminheading"> <tr> <th class="edit" rowspan="2" nowrap="nowrap">Administrar Provedor<br /></th> </tr> </table> <table class="adminlist"> <tr> <br /> <div id="alerta" style="width: 85%; text-align: center; margin: 0 auto; border:#0B55C4 dotted 1px; background-color:#F6F6F6; padding: 5px;"> <strong>IMPORTANTE:</strong> Este componente é distribuido gratuitamente. Pedimos apenas que ao criar sua conta nos provedores disponibilizados, siga a <a href="index.php?option=com_byjg&act=about" target="_self">orientação</a> na area da ajuda. Somente dessa maneira conseguiremos enxergar que o seu acesso ocorre pelo componente SMS BYJG e assim propiciar meios para que este componente possa continuar melhorando. </div> <br /> Para adicionar ou substituir novos gateways, veja mais informações na seção: "<a href="index.php?option=com_byjg&act=about" target="_self">AJUDA - Gateways</a>".<br /> </tr> <tr> <th width="5">#</th> <th width="5"> <input type="checkbox" name="toggle" value="" onClick="checkAll(<?php echo count($rows); ?> );" /> </th> <th class="title"><?php echo JText::_('BYJG_PROVIDER'); ?> </th> <th class="title"><?php echo JText::_('BYJG_ACTIV'); ?> </th> </tr> <?php $k = 0; $allow = false; for ($i = 0, $n = count($rows); $i < $n; $i++) { $row =& $rows[$i]; ?> <tr> <td></td> <td><?php echo JHTML::_('grid.id', $i, $row->id); ?> </td> <td> <?php echo $row->name; if ($row->name == 'ByJG') { $factory = new ProviderFactory(); $provider = $factory->getActiveInstance(); $msgBalance = ''; $retornoBalance = $provider->recoverBalance($msgBalance); echo $retornoBalance; } ?> </td> <td> <?php $status_provider = $row->active; if ($status_provider == 1) { ?> <img src="images/tick.png" width="16" height="16" border="0" alt="SMS Gateway Ativo" title="SMS Gateway Ativo"/> <?php } elseif ($status_provider == 0) { ?> <img src="images/publish_x.png" width="16" height="16" border="0" alt="SMS Gateway Inativo" title="SMS Gateway Inativo"/> <?php } ?> </td> </tr> <?php } ?> </table> <input type="hidden" name="option" value="<?php echo $option; ?> " /> <input type="hidden" name="act" value="provider" /> <input type="hidden" name="task" value="configure" /> <input type="hidden" name="boxchecked" value="0" /> <input type="hidden" name="hidemainmenu" value="0" /> </form> <table style="width: 100%;"> <tr> <td style="text-align: center;"> <div id="assinatura"> <div style="float:left; width: 100%; text-align: center;"> <br /><img src="http://www.byjg.com.br/imagens/logo-byjg-joomla.png" alt="SMS BYJG - ByJG Tecnologia e Sistemas" title="SMS BYJG - ByJG Tecnologia e Sistemas" width="250" height="35" /> </div> </div> </td> </tr> </table> <?php }
<?php require 'providers/factory.php'; $clearCache = isset($_REQUEST['clearcache']); $dbProvider = ProviderFactory::getDB(); $dbProvider->writeContent($clearCache);
function writePermissions($grpID) { $provider = ProviderFactory::getUsers(); $provider->writeUserPermissions($grpID); }
<?php session_start(); //require('util.php'); require 'providers/factory.php'; $ticket = $_POST["ticket"]; $userProvider = new XmlUsersDB(); $sessionProvider = ProviderFactory::getSessions(null); $sessionProvider->closeSession($ticket); $_SESSION["ticket"] = ''; $_SESSION["usrName"] = ''; echo "{}";