smarty->assign($param['sort'],$param['direction']); else { $param['sort'] = ""; $param['direction'] = ""; } if(isset($param['sort2']) && isset($param['direction2'])) $this->smarty->assign($param['sort2'],$param['direction2']); else { $param['sort2'] = ""; $param['direction2'] = ""; } $this->smarty->assign('userList', AdminDAL::GetResult(array(),array(),null,$param['sort'] . " " . $param['direction'])); $this->smarty->assign('archiveUserList', AdminDAL::GetResult(array('archive' => 1),array(),null,$param['sort2'] . " " . $param['direction2'])); } public function JoinAction($param) { if(isset($param['sort']) && isset($param['direction'])) $this->smarty->assign($param['sort'],$param['direction']); else { $param['sort'] = ""; $param['direction'] = ""; } $this->smarty->assign('type',$param['type']); $this->smarty->assign('ids',Request::Get($param['type'])); $this->smarty->assign('UserList', AdminDAL::GetResult(array(),array(),null,$param['sort'] . " " . $param['direction'])); } public function AjaxJoinAction($param) { foreach(Request::Get($param['type']) as $key2 => $value2) { MfLinkDAL::DeleteFromLink($value2, $param['type'], null , 'mf_admin'); $i = 0; foreach(Request::Get('admin') as $key => $value) { //przypisujemy łączenia $mfLinkObj = new MfLink(); $mfLinkObj->SetIdSource($value2); $mfLinkObj->SetSourceType($param['type']); $mfLinkObj->SetIdDestination($value); $mfLinkObj->SetDestinationType('mf_admin'); MfLinkDAL::Insert($mfLinkObj); $i++; } $className = str_replace('mf_','',$param['type']); $className = ucfirst($className); $obj = new $className(); $obj->setId($value2); $obj->setAdminCount($i); eval($className . 'DAL::Update($obj);'); } $this->SetAjaxRender(); $param['hide']=false; $this->content=$this->FormatAjaxOutput(array(),$param); } public function AjaxDeleteAction($param) { foreach(Request::Get($param['type']) as $key2 => $value2) { MfLinkDAL::DeleteFromLink($value2, $param['type'], $param['mf_admin'] , 'mf_admin'); $this->user->SetForumCount($this->user->GetForumCount()-1); AdminDAL::Update($this->user); $className = str_replace('mf_','',$param['type']); $className = ucfirst($className); $obj = null; eval('$obj =' .$className . 'DAL::GetById($value2);'); $obj->SetAdminCount($obj->GetAdminCount() - 1); eval($className . 'DAL::Update($obj);'); } $this->SetAjaxRender(); $param['hide']=false; $this->content=$this->FormatAjaxOutput(array(),$param); } /** * Edycja uzytkownika * * @param array $param */ public function EditAction($param) { $url = Router::GenerateUrl('UserList',array('User' => 'Index')); if(Request::IsPost()) { // [login] => // [password] => // [passwordconf] => // [firstName] => // [lastName] => // [email] => // [description] => // [role] => admin $postData = Request::GetAllPost(false); $user = AdminDAL::GetById($postData['id']); $user->SetLogin(Request::RemoveXss($postData['login'])); $user->SetEmail(Request::RemoveXss($postData['email'])); $user->SetFirstName($postData['firstName']); $user->SetLastName($postData['lastName']); $user->SetRole($postData['role']); $user->SetDescription($postData['description']); $pass = trim($postData['password']); //if(Request::GetPost('action') == 'submit' ) { $validator = new Validator($postData); $validator->IsEmpty('login','To pole nie może być puste'); // $validator->IsEmpty('firstName','To pole nie może być puste'); // $validator->IsEmpty('lastName', 'To pole nie może być puste'); //$validator->IsEmpty('email', 'To pole nie może być puste'); //$validator->IsEmpty('role', 'To pole nie może być puste'); if ($pass && md5($pass) != $user->GetPassword()) { $validator->IsEmpty('password','To pole nie może być puste'); $validator->IsEmpty('passwordconf','To pole nie może być puste'); if(Request::GetPost('passwordconf') !== Request::GetPost('password')) { $validator -> AddError('passwordconfDif', 'Hasła są różne'); } } $out = $validator->GetErrorList(); $user->SetPassword(md5($pass)); if(empty($out)) { $postData = Request::GetAllPost(false); $userId = AdminDAL::Save($user); $this->AddRedirectInfo('Edycja przebiegła pomyślnie.'); Utils::Redirect($url); }else { //Utils::ArrayDisplay($out); $this->smarty->assign('userData',$user); foreach ($out as $item) { $error[$item['field']] = $item['msg']; } $this->smarty->assign('error',$error); } } if(isset($param['id']) && is_numeric($param['id']) ) { $user = AdminDAL::GetById($param['id']); } else { $user = new Admin(); } $this->smarty->assign('userData', $user ); $this->smarty->assign('userRole', AdminDAL::GetArrayObjRoles()); } public function AjaxEditFormAction($param) { $this -> SetAjaxRender(true); if(isset($param['id'])) { $id = $param['id']; SessionProxy::SetValue('editedUser', AdminDAL::GetById($id)); } else { return; } $url = Router::GenerateUrl(array('_value' => 'user')); if(Request::IsPost()) { if(isset($param['field'])) { $out = $this->ValidateEdit($param); $param['msg'] = 'Pole zostało zwalidowane'; $this->content=$this->FormatAjaxOutput($out,$param); return; } if(Request::GetPost('action') == 'submit' ) { $out = $this -> ValidateEdit($param); $param['msg'] = 'Twoje zgłoszenie zostało przyjęte'; if(empty($out) && Request::GetPost('action') == 'submit' ) { $postData = Request::GetAllPost(false); $mail = Request::RemoveXss($postData['email']); $editedUser = AdminDAL::GetById($id); $editedUser->SetEmail(Request::RemoveXss($postData['email'])); $editedUser->SetFirstName($postData['firstName']); $editedUser->SetLastName($postData['lastName']); $editedUser->SetRole($postData['role']); $editedUser->SetDescription($postData['description']); $photo = SessionProxy::GetValue(self::PHOTO_SESSION_ID); if($photo) { $obj->SetPhotoSrc($photo); SessionProxy::ClearValue(self::PHOTO_SESSION_ID); } if(trim(Request::GetPost('password')) != '' && $editedUser->GetPassword() != md5(trim(Request::GetPost('password'))) ) { $pass = trim($postData['password']); $editedUser->SetPassword(md5($pass)); } $userId = AdminDAL::Save($editedUser); // $mailer = new Mailer(); // $mailer->SendEmail($this->smarty->fetch('partial/Mail/RegisterMail.tpl'), '', 'Rejestracja konta',$postData['email']); $this->AddRedirectInfo('Dodawanie użytkownika przebiegło pomyślnie.'); $param['redirect'] = $url; $this->content=$this->FormatAjaxOutput($out,$param); }else { $this->content=$this->FormatAjaxOutput($out,$param); } } } } private function ValidateEdit($param) { $validator = new Validator(Request::GetAllPost()); $user = SessionProxy::GetValue('editedUser'); if(isset($param['field']) && !Request::Check(ereg_replace('((\[)(.*)(\]))','',urldecode($param['field'])))) { $validator -> AddError($param['field'], $this->GetDictionary('validator_field')); } //e-mail if((isset($param['field']) && $param['field'] == 'email') || !isset($param['field']) ) { if($user->GetEmail() != Request::GetPost('email') ) $validator -> IsNotInDatabase('email', $this->GetDictionary('validator_email_exist'), 'email'); $validator -> IsEmailAddress('email', $this->GetDictionary('validator_email_error')); $validator -> IsEmpty('email',$this->GetDictionary('validator_email_empty')); } if((isset($param['field']) && $param['field'] == 'password') || !isset($param['field']) ) { if(trim(Request::GetPost('password')) != '' ) { SessionProxy::SetValue('password',Request::GetPost('password')); $validator -> IsEmpty('password',$this->GetDictionary('validator_password_empty')); } } //potwierdzenie hasła if((isset($param['field']) && $param['field'] == 'passwordconf') || !isset($param['field']) ) { if(trim(Request::GetPost('passwordconf')) != '' ) { $password = SessionProxy::GetValue('password'); if(!is_null($password) && Request::GetPost('passwordconf') !== $password && strlen(Request::GetPost('passwordconf')) > 0) { $validator -> AddError('passwordconf',$this->GetDictionary('validator_password_different')); } $validator -> IsEmpty('passwordconf',$this->GetDictionary('validator_password_empty')); } } // if((isset($param['field']) && $param['field'] == 'education') || !isset($param['field']) ) { // $validator -> IsEmpty('education','Nie wybrano wykształcenia','education'); // } // $param['submitForm'] = 'walidacja'; return $validator->GetErrorList(); } /** * Dodawanie uzytkownika * * @param array $param */ public function AddAction($param) { $url = Router::GenerateUrl('UserList',array('User' => 'Index')); //Utils::ArrayDisplay($_POST); if(Request::IsPost()) { // [login] => // [password] => // [passwordconf] => // [firstName] => // [lastName] => // [email] => // [description] => // [role] => admin $postData = Request::GetAllPost(false); //if(Request::GetPost('action') == 'submit' ) { $validator = new Validator($postData); $validator->IsEmpty('login','To pole nie może być puste'); $validator->IsEmpty('password','To pole nie może być puste'); $validator->IsEmpty('passwordconf','To pole nie może być puste'); $validator->IsEmpty('firstName','To pole nie może być puste'); $validator->IsEmpty('lastName', 'To pole nie może być puste'); $validator->IsEmpty('email', 'To pole nie może być puste'); $validator->IsEmpty('role', 'To pole nie może być puste'); if(Request::GetPost('passwordconf') !== Request::GetPost('password')) { $validator -> AddError('passwordconfDif', 'Hasła są róne'); } $out = $validator->GetErrorList(); if(empty($out)) { $postData = Request::GetAllPost(false); $mail = Request::RemoveXss($postData['email']); $newuser = new Admin(); $newuser->SetId(-1); $newuser->SetLogin(Request::RemoveXss($postData['login'])); $newuser->SetEmail(Request::RemoveXss($postData['email'])); $newuser->SetFirstName($postData['firstName']); $newuser->SetLastName($postData['lastName']); $newuser->SetRole($postData['role']); $newuser->SetDescription($postData['description']); $pass = trim($postData['password']); $newuser->SetPassword(md5($pass)); $userId = AdminDAL::Save($newuser); $this->AddRedirectInfo('Dodawanie użytkownika przebiegło pomyślnie.'); Utils::Redirect($url); }else { //Utils::ArrayDisplay($out); $this->smarty->assign('user',$postData); foreach ($out as $item) { $error[$item['field']] = $item['msg']; } $this->smarty->assign('error',$error); } //} } $this->smarty->assign('userRole', AdminDAL::GetArrayObjRoles()); } public function AjaxAddFormAction($param) { $this -> SetAjaxRender(true); } private function ValidateAdd($param) { $validator = new Validator(Request::GetAllPost()); if(isset($param['field']) && !Request::Check(ereg_replace('((\[)(.*)(\]))','',urldecode($param['field'])))) { $validator -> AddError($param['field'], $this->GetDictionary('validator_field')); } //e-mail if((isset($param['field']) && $param['field'] == 'email') || !isset($param['field']) ) { $validator -> IsNotInDatabase('email', $this->GetDictionary('validator_email_exist'), 'email'); $validator -> IsEmailAddress('email', $this->GetDictionary('validator_email_error')); $validator -> IsEmpty('email',$this->GetDictionary('validator_email_empty')); } if((isset($param['field']) && $param['field'] == 'password') || !isset($param['field']) ) { SessionProxy::SetValue('password',Request::GetPost('password')); $validator -> IsEmpty('password',$this->GetDictionary('validator_password_empty')); } //potwierdzenie hasła if((isset($param['field']) && $param['field'] == 'passwordconf') || !isset($param['field']) ) { $password = SessionProxy::GetValue('password'); if(!is_null($password) && Request::GetPost('passwordconf') !== $password && strlen(Request::GetPost('passwordconf')) > 0) { $validator -> AddError('passwordconf',$this->GetDictionary('validator_password_different')); } $validator -> IsEmpty('passwordconf',$this->GetDictionary('validator_password_empty')); } // if((isset($param['field']) && $param['field'] == 'education') || !isset($param['field']) ) { // $validator -> IsEmpty('education','Nie wybrano wykształcenia','education'); // } // $param['submitForm'] = 'walidacja'; return $validator->GetErrorList(); } /** * Usuwanie uzytkownika * * @param array $param */ public function DeleteAction($param) { $this->SetAjaxRender(true); if(isset($param['ok'])) { $res = null; if(isset($param['id'])) { $res = AdminDAL::GetById($param['id']); } else { return; } if(is_object($res)) { AdminDAL::Delete($res); } $this->AddRedirectInfo('Użytkownik został usunięty'); $this->AddRedirect(Router::GenerateUrl('userIndex', array('User'=>'Index')), 0); } else { $buttons = new HtmlButton(); $buttons->AddButton('popoverAbort', 'button anuluj lbAction', 'Anuluj', null, 'deactivate'); $buttons->AddButton('popoverOk', 'button zapisz', 'Ok', 'document.location.href=\''.Router::GenerateUrl(array('User'=>'Delete', 'id'=>$param['id'], 'ok'=>'1')).'\';', null); $this->content = $this->GeneratePopover('Usuwanie użytkownika', 'usun.gif', 'Czy na pewno chcesz usunąć tego użytkownika?', $buttons->GetElements()); } } /** * Zmiana hasla * */ public function ChangePasswordAction() { $this->AddScript('prototype.js'); $this->AddScript('scriptaculous.js'); $this->partialTemplate = 'Password.tpl'; $this->smarty->assign('msg', ''); if(isset($_POST['oldPassword']) && isset($_POST['newPassword']) && isset($_POST['confirmPassword'])) { $admin = AuthDAL::GetAdmin(); if(AdminDAL::CheckPassword($admin->GetId(), $_POST['oldPassword'])) { AdminDAL::UpdatePassword($admin->GetId(), $_POST['newPassword'], $_POST['oldPassword']); $this->smarty->assign('msg', 'Hasło zostało zmienione'); } else { $this->smarty->assign('msg', 'Podano nieprawidłowe hasło. Spróbuj ponownie.'); } } } /** * Wspolna metoda * */ public function preDispatch($param) { $this->RunShared('Auth', $param); $this->Run($param); $admin = AuthDAL::GetAdmin(); $this->user = $admin; $this->smarty->assign('titleAdmin', 'Administracja'); $panelMenu = ARRAY_PANEL_MENU; $struct = $panelMenu['admin']; $this->smarty->assign('structure',$this->renderStruct($struct)); } private function renderStruct($struct){ $return = ''; foreach($struct AS $k => $row){ $return .= '
  • '.$k.'
  • '; } $html = ''; return $html; } public function postDispatch($param) { } // cropper // cropper // public function AjaxPhotoCropperAction($param) { $this->SetAjaxRender(); $photoPath = Request::GetPost('photoPath'); $photoHeight = Request::GetPost('photoHeight'); $photoWidth = Request::GetPost('photoWidth'); $this->smarty->assign('photoWidth', $photoWidth); $this->smarty->assign('photoHeight', $photoHeight); $this->smarty->assign('minPhotoWidth', self::CROPPER_MIN_SIZE); $this->smarty->assign('minPhotoHeight', self::CROPPER_MIN_SIZE); $this->smarty->assign('noPhotoImgBig', URL_STATIC_CONTENT . URL_DELIMITER . self::NO_PHOTO_IMG_BIG); $this->smarty->assign('noPhotoImgSmall', URL_STATIC_CONTENT . URL_DELIMITER . self::NO_PHOTO_IMG_SMALL); $this->smarty->assign('photoPath', Request::GetPost('photoPath')); if (isset($param['id'])) { $this->smarty->assign('cutUrl', array('user' => 'AjaxPhotoCropped', 'id' => $param['id'])); } else { $this->smarty->assign('cutUrl', array('user' => 'AjaxPhotoCropped')); } $this->smarty->assign('fields', array( 0 => array('name'=>'colSize', 'type'=>'radio', 'value'=>1, 'label'=>'pół kolumny', 'options'=>'checked="checked"'), 1 => array('name'=>'colSize', 'type'=>'radio', 'value'=>2, 'label'=>'cała kolumna', 'options'=>''), 2 => array('name'=>'colSize', 'type'=>'radio', 'value'=>3, 'label'=>'bez skalowania', 'options'=>''), ) ); $this->smarty->assign('uploadUrl', array('user' => 'AjaxPhotoUpload')); } public function AjaxPhotoCroppedAction($param) { $upload = true; $oldPhoto = null; $redirect = 'self'; $this->SetAjaxRender(); $photoFile = SessionProxy::GetValue(self::PHOTO_SESSION_NAME); SessionProxy::ClearValue(self::PHOTO_SESSION_NAME); $tmpPhotoArray = array(); $tmpPhotoArray['name'] = $photoFile . '.' . PhotoDAL::PHOTO_NEW_EXT; $tmpPhotoArray['tmp_name'] = Config::Get('PATH_STATIC_CONTENT') . self::GALLERY_TEMP_DIR . DIRECTORY_SEPARATOR . $tmpPhotoArray['name']; $croppSize = SessionProxy::GetValue(self::SIZE_SESSION_NAME); SessionProxy::ClearValue(self::SIZE_SESSION_NAME); $orgSize = getimagesize($tmpPhotoArray['tmp_name']); $sc = 1; if($upload) { if($orgSize[0] != $croppSize['w']) { $sc = $orgSize[0]/$croppSize['w']; } } else { $cs = getimagesize(Config::Get('PATH_STATIC_CONTENT') . self::GALLERY_TEMP_DIR . DIRECTORY_SEPARATOR . $oldPhoto[0]->GetPhoto('temp') . '.' . PhotoDAL::PHOTO_NEW_EXT); if($orgSize[0] != $cs[0]) { $sc = $orgSize[0] / $cs[0]; } } $croppArray = array( 'x' => Request::Get('x') * $sc, 'y' => Request::Get('y') * $sc, 'w' => Request::Get('w') * $sc, 'h' => Request::Get('h') * $sc ); $destDir = self::GALLERY_DEST_DIR; $photo = PhotoDAL::ExtSimplePhotoUpload($tmpPhotoArray, $destDir, 'user', null, null, $croppArray); $id = null; // $objPhoto = new Picture(); // $objPhoto->SetLink($photoFile); // $idPhoto = PictureDAL::Insert($objPhoto); if (isset($param['id'])) { $admin = AdminDAL::GetById($param['id']); $admin->SetPhotoSrc($photoFile); AdminDAL::Save($admin); // $articleObj = MfArticleDAL::GetById($param['id']); // $articleObj->SetIdPicture($idPhoto); // MfArticleDAL::Save($articleObj); } else { SessionProxy::SetValue(self::PHOTO_SESSION_ID, $photoFile); } if(isset($param['id'])) { $redirect = Router::GenerateUrl(array('user'=>'Edit', 'id'=>$param['id'])); } else { $redirect = Router::GenerateUrl(array('user'=>'Edit')); } $this->smarty->assign('photoPath', $photoFile); $this->smarty->assign('redirect', null); } public function AjaxPhotoUploadAction($param) { $this->SetAjaxRender(); $photoFile = $_FILES['photo']['tmp_name']; $photoSize = getimagesize($photoFile); if ($photoSize[0] < self::PHOTO_ORG_SMALL_SIZE) { $error = "Szerokość zdjęcia jest zbyt mała."; } else if($photoSize[1] < self::PHOTO_ORG_SMALL_SIZE) { $error = "Wysokość zdjęcia jest zbyt mała."; } else if (filesize($photoFile) > (self::MAX_PHOTO_ORG_FILE_SIZE*1048576)) { $error = "Przekroczony rozmiar zdjęcia(max: " . self::MAX_PHOTO_ORG_FILE_SIZE . "MB)."; } if (!MimeType::IsImage($_FILES['photo'])) { $error = "Podany przez ciebie plik ma niepoprawny format."; } if (isset($error)) { $this->smarty->assign('error', $error); } else { $photoProp = $photoSize[0] / $photoSize[1]; $photoWidth = $photoSize[0]; $photoHeight = $photoSize[1]; if ($photoWidth > self::CROPPER_MAX_SIZE) { $photoHeight = self::CROPPER_MAX_SIZE / $photoProp; $photoWidth = self::CROPPER_MAX_SIZE; } if ($photoHeight > self::CROPPER_MAX_SIZE) { $photoWidth = self::CROPPER_MAX_SIZE * $photoProp; $photoHeight = self::CROPPER_MAX_SIZE; } $newName = md5(time()); SessionProxy::SetValue(self::PHOTO_SESSION_NAME, $newName); SessionProxy::SetValue(self::SIZE_SESSION_NAME, array('w' => $photoWidth, 'h' => $photoHeight)); $photoFile = PhotoDAL::ExtSimplePhotoUpload($_FILES['photo'], self::GALLERY_TEMP_DIR , 'gallery_cropp_temporary', $newName, 'temp'); $photoFile = self::GALLERY_TEMP_DIR . URL_DELIMITER . $photoFile; $this->smarty->assign('page2load', Router::GenerateUrl(array('zdjecia' => 'edycja'))); $this->smarty->assign('photoFile', $photoFile); $this->smarty->assign('photoWidth', (int)$photoWidth); $this->smarty->assign('photoHeight', (int)$photoHeight); $this->smarty->assign('onFly', (Request::Check('onFly') ? 'true' : 'false')); $this->smarty->assign('cropPrefix', Request::GetPost('cropPrefix')); } } } ?>