/** * * @param string $psQuery * - Termo de busca utilizado pelo usuário * @param int $pnResults * - Número de resultados retornados com o termo */ public static function log($psQuery, $pnResults) { $laConfig = Config::getAppOptions(); $laLog = $laConfig['log']['log']['search']; $laDb = $laConfig['db'][APP_ENV]; if (Util::toBoolean($laLog['enable'])) { if ($laLog['output'] == "DB") { $loDb = new Adapter($laDb); $laColumnMap = array('timestamp' => 'dtInsert', 'priority' => 'stPriority', 'message' => 'stQuery', 'extra' => array('numResults' => 'numResults')); $laData = array('numResults' => $pnResults); $loWriter = new Writer\Db($loDb, $laLog['table'], $laColumnMap); $loLogger = new Logger(); $loLogger->addWriter($loWriter); $loLogger->info($psQuery, $laData); } else { $laParamns['userId'] = null; $laParamns['query'] = $psQuery; $laParamns['results'] = $pnResults; Event::log($laParamns, Event::INFO, $laLog['fileName'], "STREAM", true); } } }
/** * */ public function deleteAction() { $lnId = $this->request('id', null); if ($lnId === null) { return $this->redirect()->toRoute($this->_sRoute, array('action' => $this->requestPost('back', 'index'))); } $loEntity = $this->getEntityManager()->find($this->_sEntity, $lnId); if ($loEntity) { if (!$loEntity->isSystem()) { $loEntityOriginal = clone $loEntity; $this->getEntityManager()->remove($loEntity); if ($this->entityFlush()) { $lnUserId = $this->getAuthenticatedUser(); $laChanges = $this->checkChangeEntity($loEntityOriginal, $loEntity); Event::log(array('userId' => $lnUserId, 'module' => $this->_sModule, 'action' => 'delete', 'record' => $loEntity->get('id'), 'changes' => $laChanges), 6); $this->flashMessenger()->addMessage(array('id' => $this->get('_sModule') . '-' . microtime(true), 'hidden' => $this->get('_bHiddenPushMessage'), 'push' => $this->get('_bPushMessage'), 'type' => 'success', 'msg' => Translator::i18n('Registro apagado permanentemente com sucesso!'))); } } else { $this->flashMessenger()->addMessage(array('id' => $this->get('_sModule') . '-' . microtime(true), 'hidden' => $this->get('_bHiddenPushMessage'), 'push' => $this->get('_bPushMessage'), 'type' => 'warning', 'msg' => sprintf(Translator::i18n('Ops! O registro (id=%s) não pode ser apagado, pois é um registro do sistema.'), $lnId))); } } else { $this->flashMessenger()->addMessage(array('id' => $this->get('_sModule') . '-' . microtime(true), 'hidden' => $this->get('_bHiddenPushMessage'), 'push' => $this->get('_bPushMessage'), 'type' => 'warning', 'msg' => sprintf(Translator::i18n('Ops! O registro (id=%s) não foi encontrado para ser apagado!'), $lnId))); } return $this->redirect()->toRoute($this->_sRoute, array('action' => $this->requestPost('back', 'index'))); }
/** * * @param string $psImagem * @param string $psDestino * @param int $pnLarguraMax * @param int $pnAlturaMax * @return boolean */ public static function gravarImagem($psImagem, $psDestino, $pnLarguraMax, $pnAlturaMax) { //Verificando se foi setada uma cor para preenchimento de fundo no config if (defined('IMAGE_BGCOLOR')) { $lsCorFundo = IMAGE_BGCOLOR; } else { $lsCorFundo = self::$csCorFundo; } //Verificando se foi setada a opção de esticar ou encolher imagem no config if (defined('IMAGE_STRETCH')) { $lbEsticarImagem = IMAGE_STRETCH; } else { $lbEsticarImagem = self::$cbEsticarImagem; } //Verificando se foi setada a opção de esticar ou encolher imagem no config if (defined('IMAGE_BORDER')) { $lbBorder = IMAGE_BORDER; } else { $lbBorder = self::$cbBorder; } Debug::debug("Cor de fundo: " . $lsCorFundo); Debug::debug("Esticar: " . $lbEsticarImagem); Debug::debug("Borda: " . $lbBorder); //Extraindo a extensão do nome da imagem $lsTipo = substr($psImagem, -3, 3); $lsTipo = strtolower($lsTipo); //Verificando qual o tipo da imagem e utilizando sua função específica de carregamento if ($lsTipo == "jpg" || $lsTipo == "peg") { $lrImg2 = ImageCreateFromJpeg($psImagem); } else { if ($lsTipo == "gif") { $lrImg2 = ImageCreateFromGif($psImagem); } } if ($lsTipo == "png") { $lrImg2 = ImageCreateFromPng($psImagem); } Debug::debug("Tipo: " . $lsTipo); //Se a imagem tiver sido carregada com sucesso, deve continuar o tratamento if (!empty($lrImg2)) { //Recuperando as dimensões da imagem $lnAlturaReal = ImageSY($lrImg2); $lnLarguraReal = ImageSX($lrImg2); if ($pnLarguraMax == "" || $pnLarguraMax == 0) { $lnLarguraMax = $lnLarguraReal; } else { $lnLarguraMax = $pnLarguraMax; } if ($pnAlturaMax == "" || $pnAlturaMax == 0) { $lnAlturaMax = $lnAlturaReal; } else { $lnAlturaMax = $pnAlturaMax; } //Criando um handle para tratamento da imagem nas dimensões da mesma $lrImg = imagecreatetruecolor($lnLarguraMax, $lnAlturaMax); //Explodindo definições de cor de fundo para pegar separadamente cada camada $laCorFundo = explode(',', $lsCorFundo); //Inicializando novas dimenções da imagem a partir da dimensão atual $lnAlturaNova = $lnAlturaReal; $lnLarguraNova = $lnLarguraReal; if ($lbBorder && !empty($pnAlturaMax) && !empty($pnLarguraMax)) { Debug::debug("com borda"); //Se a imagem puder ser esticada proporcionalmente if ($lbEsticarImagem) { //Se a largura atual ou nova for menor que a largura Máxima ou ideal if ($lnLarguraNova < $lnLarguraMax) { Debug::debug("esticando largura"); //A altura deve aumentar proporcionalmente em relação a largura máxima ou ideal $lnAlturaNova = $lnLarguraMax * ($lnAlturaNova / $lnLarguraNova); $lnLarguraNova = (int) $lnLarguraMax; //Aumenta para a largura máxima $lnAlturaNova = (int) $lnAlturaNova; //Aumenta para a altura máxima } } //Se a altura atual ou nova for maior que altura máxima if ($lnAlturaNova > $lnAlturaMax) { Debug::debug("reduzindo altura"); //A largura deve diminuir proporcionalmente em relação a altura máxima ou ideal $lnLarguraNova = $lnAlturaMax * ($lnLarguraNova / $lnAlturaNova); $lnAlturaNova = (int) $lnAlturaMax; //Diminui para a altura máxima $lnLarguraNova = (int) $lnLarguraNova; //Diminui para nova largura } //Se a largura atual ou nova for maior que a largura máxima if ($lnLarguraNova > $lnLarguraMax) { Debug::debug("reduzindo largura"); //A altura deve diminuir proporcionalmente em relação a largura máxima ou ideal $lnAlturaNova = $lnLarguraMax * ($lnAlturaNova / $lnLarguraNova); $lnLarguraNova = (int) $lnLarguraMax; //Diminui para a largura máxima $lnAlturaNova = (int) $lnAlturaNova; //Diminui para a nova altura } } else { Debug::debug("sem borda"); Debug::debug($lnAlturaNova . ">" . $lnAlturaMax); //Se a altura atual ou nova for maior que altura máxima if ($lnAlturaNova > $lnAlturaMax) { Debug::debug("reduzindo altura"); //A largura deve diminuir proporcionalmente em relação a altura máxima ou ideal $lnLarguraNova = $lnAlturaMax * ($lnLarguraNova / $lnAlturaNova); $lnAlturaNova = (int) $lnAlturaMax; //Diminui para a altura máxima $lnLarguraNova = (int) $lnLarguraNova; //Diminui para nova largura } Debug::debug($lnLarguraNova . ">" . $lnLarguraMax); //Se a largura atual ou nova for maior que a largura máxima if ($lnLarguraNova > $lnLarguraMax) { Debug::debug("reduzindo largura"); //A altura deve diminuir proporcionalmente em relação a largura máxima ou ideal $lnAlturaNova = $lnLarguraMax * ($lnAlturaNova / $lnLarguraNova); $lnLarguraNova = (int) $lnLarguraMax; //Diminui para a largura máxima $lnAlturaNova = (int) $lnAlturaNova; //Diminui para a nova altura } //Se a imagem puder ser esticada proporcionalmente if ($lbEsticarImagem) { //Se a largura atual ou nova for menor que a largura Máxima ou ideal if ($lnLarguraNova < $lnLarguraMax) { Debug::debug("esticando largura"); //A altura deve aumentar proporcionalmente em relação a largura máxima ou ideal $lnAlturaNova = $lnLarguraMax * ($lnAlturaNova / $lnLarguraNova); $lnLarguraNova = (int) $lnLarguraMax; //Aumenta para a largura máxima $lnAlturaNova = (int) $lnAlturaNova; //Aumenta para a altura máxima } //Se a altura atual ou nova for menor que a altura Máxima ou ideal if ($lnAlturaNova < $lnAlturaMax) { Debug::debug("esticando altura"); //A largura deve aumentar proporcionalmente em relação a altura máxima ou ideal $lnLarguraNova = $lnAlturaMax * ($lnLarguraNova / $lnAlturaNova); $lnAlturaNova = (int) $lnAlturaMax; //Aumenta para a altura máxima $lnLarguraNova = (int) $lnLarguraNova; //Aumenta para nova largura } } } //Centralizando imagem dentro do frame $lnPosX = ($lnLarguraMax - $lnLarguraNova) / 2; $lnPosY = ($lnAlturaMax - $lnAlturaNova) / 2; Debug::debug("Dimensão Original: " . $lnLarguraReal . "x" . $lnAlturaReal); Debug::debug("Dimensão Nova: " . $lnLarguraNova . "x" . $lnAlturaNova); if ($lsTipo == "png") { Debug::debug("criando png"); //Ativa a camada de transparência para a imagem imagealphablending($lrImg, true); //Aloca a cor transparente e preenche a nova imagem com isto. //Sem isto a imagem vai ficar com fundo preto ao invés de transparente. $loTransparent = imagecolorallocatealpha($lrImg, 0, 0, 0, 127); imagefill($lrImg, 0, 0, $loTransparent); //copia o frame na imagem final imagecopyresampled($lrImg, $lrImg2, $lnPosX, $lnPosY, 0, 0, $lnLarguraNova, $lnAlturaNova, $lnLarguraReal, $lnAlturaReal); imagealphablending($lrImg, false); //Salva a camada alpha (transparência) imagesavealpha($lrImg, true); } elseif ($lsTipo == "gif") { Debug::debug("criando gif"); //redimencionando a imagem e criando a imagem final imagecopyresized($lrImg, $lrImg2, $lnPosX, $lnPosY, 0, 0, $lnLarguraNova, $lnAlturaNova, $lnLarguraReal, $lnAlturaReal); } else { Debug::debug("criando jpg"); //definindo a cor de fundo da imagem e preenchendo a camada $lrFundo = imagecolorallocate($lrImg, $laCorFundo[0], $laCorFundo[1], $laCorFundo[2]); imagefill($lrImg, 0, 0, $lrFundo); //redimencionando a imagem e criando a imagem final imagecopyresized($lrImg, $lrImg2, $lnPosX, $lnPosY, 0, 0, $lnLarguraNova, $lnAlturaNova, $lnLarguraReal, $lnAlturaReal); } if ($lsTipo == "jpg" || $lsTipo == "peg") { //header("Content-Type: image/jpeg"); if (!imagejpeg($lrImg, $psDestino)) { Event::log(array("userId" => null, "class" => "Image", "method" => "gravarImagem", "msg" => "Create image JPG failed!"), Event::ERR); Debug::debug("Create image JPG failed!"); } } else { if ($lsTipo == "gif") { //header("Content-Type: image/gif"); if (!imagegif($lrImg, $psDestino)) { Event::log(array("userId" => null, "class" => "Image", "method" => "gravarImagem", "msg" => "Create image GIF failed!"), Event::ERR); Debug::debug("Create image GIF failed!"); } } else { if ($lsTipo == "png") { //header("Content-Type: image/png"); if (!imagepng($lrImg, $psDestino)) { Event::log(array("userId" => null, "class" => "Image", "method" => "gravarImagem", "msg" => "Create image PNG failed!"), Event::ERR); Debug::debug("Create image PNG failed!"); } } } } imagedestroy($lrImg); return true; } else { Event::log(array("userId" => null, "class" => "Image", "method" => "gravarImagem", "msg" => "Image truncated!"), Event::ERR); Debug::debug("Image truncated!"); return false; } }
/** * Retorna a Mensagem no padrão da Aplicação * * @param string $psLabel * @param string $psType * @return object encode json */ public static function getMessage($psLabel, $psType, $paParams = null) { try { switch (strtoupper($psType)) { case 'ERROR': case 'SUCCESS': case 'NOTLOGED': case 'FORBIDDEN': if (strtoupper($psType) != 'SUCCESS') { Event::log(array("userId" => null, "class" => "Util", "method" => "getMessage", 'Mensagem' => $psLabel, 'Tipo' => strtoupper($psType)), Event::ERR); } $mensagem = Json::encode(array('mensagem' => array('label' => $psLabel, 'type' => strtoupper($psType), 'params' => $paParams))); break; default: throw new Exception("Tipo de mensagem " . $psType . " não está definido!"); break; } return $mensagem; } catch (Zend_Exception $e) { die($e->__toString()); } }
/** * * @return \Onion\Mvc\Controller\unknown */ public function changePhoneExtensionAction() { $this->_sWindowType = $this->request('w', 'default'); $this->_bPushMessage = true; $lnUserId = $this->getAuthenticatedUser(); if ($lnUserId === null) { return $this->redirect()->toRoute('Access'); } $loEntity = $this->getEntityManager()->find($this->_sEntity, $lnUserId); $loEntity->getObject(); $loForm = Application::factory('User\\Form\\ChangePhoneExtensionForm'); $loForm->setObjectManager($this->getEntityManager()); $loForm->setActionType('edit'); $loForm->setEntity($this->_sEntity); $loForm->setForm(); $loForm->setWindowType($this->_sWindowType); $loForm->setCancelBtnType($this->_sWindowType == 'default' ? 'cancel' : 'close'); $loForm->setBindOnValidate(false); $loForm->bind($loEntity); $lsSecurity = $this->requestPost('security', null); if ($this->requestIsPost() && $lsSecurity !== null) { $loForm->setInputFilter($loForm->getInputFilter()); $loForm->setData($this->requestPost()); $loForm->setEntityData($loEntity); if ($loForm->isValid()) { $loForm->bindValues(); $laPostData = $loForm->getDataForm(); $loEntity->populate($laPostData); if ($this->entityFlush()) { $loSession = new Session(); $loUser = $loSession->getRegister('OnionAuth'); $loUser->setStPhoneExtension($laPostData['stPhoneExtension']); $loSession->setRegister('OnionAuth', $loUser); $this->flashMessenger()->addMessage(array('id' => $this->get('_sModule') . '-' . microtime(true), 'hidden' => $this->get('_bHiddenPushMessage'), 'push' => $this->get('_bPushMessage'), 'type' => 'success', 'msg' => Translator::i18n("The phone extension was successfully changed!"))); Event::log(array('userId' => $lnUserId, 'table' => 'User', 'action' => 'change-phone-extension', 'record' => $lnUserId), Event::INFO); } } } $loView = new ViewModel(array('lsBack' => $this->requestPost('back', 'index'), 'lsTitleS' => $this->_sTitleS, 'lsTitleP' => $this->_sTitleP, 'lsRoute' => $this->_sRoute, 'lsUsername' => $loEntity->getUsername(), 'lnId' => $lnUserId, 'loForm' => $loForm)); return $this->setResponseType($loView, null, true); }
/** * * @param string $psType * @param string $psUrl * @param string $psTable * @param int $pnId */ public static function log($psType, $psUrl, $psTable = null, $pnId = null) { $laConfig = Config::getAppOptions(); $laLog = $laConfig['log']['log'][$psType]; $laDb = $laConfig['db'][APP_ENV]; if (Util::toBoolean($laLog['enable'])) { if ($laLog['output'] == "DB") { $loDb = new Adapter($laDb); $laColumnMap = array('timestamp' => 'dtInsert', 'priority' => 'stPriority', 'message' => 'stUrl', 'extra' => array('numId' => 'numId', 'stTable' => 'stTable')); $laData = array('numId' => $pnId, 'stTable' => $psTable); $loWriter = new Writer\Db($loDb, $laLog['table'], $laColumnMap); $loLogger = new Logger(); $loLogger->addWriter($loWriter); $loLogger->info($psUrl, $laData); } else { $laParamns['userId'] = null; $laParamns['table'] = $psTable; $laParamns['id'] = $pnId; $laParamns['url'] = $psUrl; Event::log($laParamns, Event::INFO, $laLog['fileName'], "STREAM", true); } } }
/** * Shell command * * @param string $psCommand string a ser executada no sistema * @param string $psCommand2 * @return array */ public static function execute($psCommand, $psCommand2 = "") { $laOutput = array(); $lnReturn = 0; $lsReturn = exec($psCommand . " 2>&1 " . $psCommand2, $laOutput, $lnReturn); if ($lnReturn != 0) { Event::log(array("userId" => null, "class" => "System", "method" => "execute", "msg" => "FILESYSTEM: " . $lsReturn), Event::ERR); } return $laOutput; }
/** */ public static function log($poCredentials, $psMsg = "OK") { $laConfig = Config::getAppOptions(); $laLog = $laConfig['log']['log']['access']; $laDb = $laConfig['db'][APP_ENV]; $lnId = null; $lsUsername = null; $lnGroupId = null; if (is_object($poCredentials)) { $lnId = $poCredentials->getId(); $lsUsername = $poCredentials->getUsername(); $lnGroupId = $poCredentials->getUserGroupId(); } else { $lsUsername = $poCredentials; } $lsIp = $_SERVER['REMOTE_ADDR']; $lsSession = session_id(); if (Util::toBoolean($laLog['enable'])) { if ($laLog['output'] == "DB") { $loDb = new Adapter($laDb); $laServer = $_SERVER; $laServer['ACCESS_MSG'] = $psMsg; $lsServer = Json::encode($laServer); $laExtra = array('stSession' => 'stSession', 'stIP' => 'stIP', 'txtServer' => 'txtServer'); $laData = array('stSession' => $lsSession, 'stIP' => $lsIp, 'txtServer' => $lsServer); if ($lnId !== null) { $laExtra['User_id'] = 'User_id'; $laData['User_id'] = $lnId; } $laColumnMap = array('timestamp' => 'dtInsert', 'priority' => 'stPriority', 'message' => 'txtCredentials', 'extra' => $laExtra); $laCredential = array('user' => $lsUsername, 'group' => $lnGroupId); $lsCredential = Json::encode($laCredential); $loWriter = new Writer\Db($loDb, $laLog['table'], $laColumnMap); $loLogger = new Logger(); $loLogger->addWriter($loWriter); $loLogger->info($lsCredential, $laData); } else { $laMessage = array('stIP' => $lsIp, 'stSession' => $lsSession, 'userId' => $lnId, 'user' => $lsUsername, 'group' => $lnGroupId); Event::log($laMessage, Event::INFO, $laLog['fileName'], "STREAM", true); } } }