コード例 #1
0
ファイル: User.php プロジェクト: ramonornela/trilhas
 /**
  * (non-PHPdoc)
  * @see Zend_Form#init()
  */
 public function init()
 {
     $this->addElementPrefixPath('Tri_Filter', 'Tri/Filter', 'FILTER');
     $this->addElementPrefixPath('Tri_Validate', 'Tri/Validate', 'VALIDATE');
     $user = new Tri_Db_Table('user');
     $validators = $user->getValidators();
     $filters = $user->getFilters();
     $statusOptions = $user->fetchPairs('status', 'status');
     $roles = $user->fetchPairs('role', 'role');
     $uploadDir = str_replace('APPLICATION_PATH', APPLICATION_PATH, Tri_Config::get('tri_upload_dir'));
     $this->setAction('user/save')->setMethod('post')->setAttrib('enctype', 'multipart/form-data');
     $id = new Zend_Form_Element_Hidden('id');
     $id->addValidators($validators['id'])->addFilters($filters['id'])->removeDecorator('Label')->removeDecorator('HtmlTag');
     $filters['name'][] = 'StripTags';
     $name = new Zend_Form_Element_Text('name');
     $name->setLabel('Name')->addValidators($validators['name'])->addFilters($filters['name'])->setAllowEmpty(false);
     $email = new Zend_Form_Element_Text('email');
     $email->setLabel('Email')->addValidators($validators['email'])->addFilters($filters['email'])->setAllowEmpty(false);
     $filters['password'][] = 'Md5';
     $validators['password'][] = 'PasswordConfirmation';
     $password = new Zend_Form_Element_Password('password');
     $password->setLabel('Password')->addValidators($validators['password'])->addFilters($filters['password']);
     $passwordConfirmation = new Zend_Form_Element_Password('password_confirm');
     $passwordConfirmation->setLabel('Password confirmation')->addFilter('Md5');
     $sex = new Zend_Form_Element_Select('sex');
     $sex->setLabel('Sex')->addValidators($validators['sex'])->addFilters($filters['sex'])->addMultiOptions(array('' => '[select]', 'M' => 'Male', 'F' => 'Female'));
     $born = new Zend_Form_Element_Text('born');
     $born->setLabel('Born')->setAttrib('class', 'date')->addFilters($filters['born'])->addValidators($validators['born']);
     $filters['description'][] = 'StripTags';
     $description = new Zend_Form_Element_Textarea('description');
     $description->setLabel('Description')->addValidators($validators['description'])->addFilters($filters['description'])->setAllowEmpty(false);
     $file = new Zend_Form_Element_File('image');
     $file->setLabel('Image')->setDestination($uploadDir)->setMaxFileSize(2097152)->setValueDisabled(true)->addFilter('Rename', uniqid())->addValidator('Count', false, 1)->addValidator('Size', false, 2097152)->addValidator('Extension', false, 'jpg,png,gif');
     if (!$roles || isset($roles[''])) {
         $role = new Zend_Form_Element_Text('role');
     } else {
         $rolea = array_unique($roles);
         $role = new Zend_Form_Element_Select('role');
         $role->addMultiOptions(array('' => '[select]') + $roles)->setRegisterInArrayValidator(false);
     }
     $role->setLabel('Role')->addValidators($validators['role'])->addFilters($filters['role']);
     if (!$statusOptions || isset($statusOptions[''])) {
         $status = new Zend_Form_Element_Text('status');
     } else {
         $statusOptions = array_unique($statusOptions);
         $status = new Zend_Form_Element_Select('status');
         $status->addMultiOptions(array('' => '[select]') + $statusOptions)->setRegisterInArrayValidator(false);
     }
     $status->setLabel('Status')->addValidators($validators['status'])->addFilters($filters['status']);
     $this->addElement($id)->addElement($name)->addElement($email)->addElement($password)->addElement($passwordConfirmation)->addElement($description)->addElement($sex)->addElement($born)->addElement($file);
     $identity = Zend_Auth::getInstance()->getIdentity();
     if ($identity && $identity->role == 'institution') {
         $this->addElement($status)->addElement($role);
     }
     $this->addElement('submit', 'Save');
 }
コード例 #2
0
ファイル: Thumbnail.php プロジェクト: ramonornela/trilhas
 public function thumbnail($path, $type)
 {
     $uploadDir = str_replace('APPLICATION_PATH', APPLICATION_PATH, Tri_Config::get('tri_upload_dir'));
     $thumb = $uploadDir . $path . $type . '.png';
     if (!file_exists($thumb)) {
         $this->_open($uploadDir . $path);
         $this->_resize($this->_type[$type]['width'], $this->_type[$type]['height']);
         imagepng($this->_image, $thumb, 0);
     }
     return $path . $type . '.png';
 }
コード例 #3
0
ファイル: Layout.php プロジェクト: ramonornela/trilhas
 public function preDispatch(Zend_Controller_Request_Abstract $request)
 {
     $layout = Zend_Controller_Action_HelperBroker::getStaticHelper('Layout');
     $view = Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer')->view;
     $layout->setLayout('solo');
     if ($request->isXmlHttpRequest()) {
         $layout->disableLayout();
     }
     if ($request->getParam('layout')) {
         $layout->setLayout($request->getParam('layout'));
     }
     $view->theme = Tri_Config::get('tri_theme');
     $view->appCharset = Tri_Config::get('tri_app_charset');
 }
コード例 #4
0
ファイル: AclController.php プロジェクト: ramonornela/trilhas
 public function addAction()
 {
     $url = explode('/', trim($this->_getParam('url')));
     $role = trim($this->_getParam('role'));
     if (count($url) != 3 || !$role) {
         $this->_helper->flashMessenger->addMessage('Error');
         $this->_redirect('admin/acl');
     }
     $resources = Tri_Config::get('tri_resources', true);
     $resources[$url[0]][$url[1]][$url[2]] = $role;
     Tri_Config::set('tri_resources', $resources, true);
     $this->_helper->flashMessenger->addMessage('Success');
     $this->_redirect('admin/acl');
 }
コード例 #5
0
 /**
  * Action index.
  *
  * @return void
  */
 public function indexAction()
 {
     $course = new Tri_Db_Table('course');
     $calendar = new Tri_Db_Table('calendar');
     $page = Zend_Filter::filterStatic($this->_getParam('page'), 'int');
     $form = new Application_Form_Login();
     $select = $course->select()->where('status = ?', 'active')->order(array('name', 'category'));
     $where = array('classroom_id IS NULL', 'end IS NULL OR end > ?' => date('Y-m-d'));
     $this->view->calendar = $calendar->fetchAll($where, 'begin', 10);
     $this->view->form = $form;
     $this->view->user = Zend_Auth::getInstance()->getIdentity();
     $paginator = new Tri_Paginator($select, $page);
     $this->view->courses = $paginator->getResult();
     $this->view->newUserToGuest = Tri_Config::get('tri_new_user_to_guest');
     $this->_helper->layout->setLayout('layout');
 }
コード例 #6
0
ファイル: Course.php プロジェクト: ramonornela/trilhas
 /**
  * (non-PHPdoc)
  * @see Zend_Form#init()
  */
 public function init()
 {
     $course = new Tri_Db_Table('course');
     $user = new Tri_Db_Table('user');
     $uploadDir = str_replace('APPLICATION_PATH', APPLICATION_PATH, Tri_Config::get('tri_upload_dir'));
     $validators = $course->getValidators();
     $filters = $course->getFilters();
     $where = array("role = 'institution' OR role = 'Teacher' OR role = 'Creator'");
     $users = $user->fetchPairs('id', 'name', $where, 'name');
     $statusOptions = array('active' => 'active', 'inactive' => 'inactive');
     $categories = $course->fetchPairs('category', 'category');
     $this->setAction('admin/course/save')->setMethod('post')->setAttrib('enctype', 'multipart/form-data');
     $id = new Zend_Form_Element_Hidden('id');
     $id->addValidators($validators['id'])->addFilters($filters['id'])->removeDecorator('Label')->removeDecorator('HtmlTag');
     $filters['name'][] = 'StripTags';
     $name = new Zend_Form_Element_Text('name');
     $name->setLabel('Name')->addValidators($validators['name'])->addFilters($filters['name']);
     $responsible = new Zend_Form_Element_Select('responsible');
     $responsible->setLabel('Responsible')->addValidators($validators['responsible'])->addFilters($filters['responsible'])->addMultiOptions(array('' => '[select]') + $users);
     $filters['description'][] = 'StripTags';
     $description = new Zend_Form_Element_Textarea('description');
     $description->setLabel('Description')->addValidators($validators['description'])->addFilters($filters['description'])->setAttrib('id', 'course-description-text')->setAllowEmpty(false);
     $filters['hours'][] = 'StripTags';
     $hours = new Zend_Form_Element_Text('hours');
     $hours->setLabel('Hours')->addValidators($validators['hours'])->addFilters($filters['hours']);
     if (!$categories || isset($categories[''])) {
         $category = new Zend_Form_Element_Text('category');
     } else {
         $categories = array_unique($categories);
         $category = new Zend_Form_Element_Select('category');
         $category->addMultiOptions(array('' => '[select]') + $categories)->setRegisterInArrayValidator(false);
     }
     $category->setLabel('Category')->addValidators($validators['category'])->addFilters($filters['category']);
     $file = new Zend_Form_Element_File('image');
     $file->setLabel('Image')->setDestination($uploadDir)->setMaxFileSize(2097152)->setValueDisabled(true)->addFilter('Rename', uniqid())->addValidator('Count', false, 1)->addValidator('Size', false, 2097152)->addValidator('Extension', false, 'jpg,png,gif');
     $status = new Zend_Form_Element_Select('status');
     $status->addMultiOptions($statusOptions)->setRegisterInArrayValidator(false)->setLabel('Status')->addValidators($validators['status'])->addFilters($filters['status']);
     $this->addElement($id)->addElement($name)->addElement($description)->addElement($responsible)->addElement($hours)->addElement($category)->addElement($file)->addElement($status)->addElement('submit', 'Save');
 }
コード例 #7
0
 public function viewAction()
 {
     $classroom = new Zend_Db_Table('classroom');
     $id = Zend_Filter::filterStatic($this->_getParam('id'), 'int');
     $rowset = $classroom->find($id);
     if (!count($rowset)) {
         $this->_redirect('/dashboard');
     }
     $row = $rowset->current();
     $session = new Zend_Session_Namespace('data');
     $session->classroom_id = $row->id;
     $session->course_id = $row->course_id;
     if (in_array('content', Tri_Config::get('tri_plugins', true))) {
         $data = Application_Model_Content::fetchAllOrganize($row->course_id);
         if (!$data) {
             Application_Model_Content::createInitialContent($row->course_id);
             $data = Application_Model_Content::fetchAllOrganize($row->course_id);
         }
         $this->view->current = Application_Model_Content::getLastAccess($id, $data);
         $this->view->data = Zend_Json::encode($data);
         $session->contents = $this->view->data;
     }
     $this->_helper->layout->setLayout('layout');
 }
コード例 #8
0
 public function indexAction()
 {
     $iterator = new DirectoryIterator($this->pluginsPath);
     $this->view->data = $iterator;
     $this->view->activated = Tri_Config::get('tri_plugins', true);
 }
コード例 #9
0
ファイル: Bootstrap.php プロジェクト: ramonornela/trilhas
 protected function _initTranslate()
 {
     $options = Zend_Json::decode(Tri_Config::get('translate'));
     $resource = new Zend_Application_Resource_Translate($options);
     $resource->init();
 }
コード例 #10
0
ファイル: Abstract.php プロジェクト: ramonornela/trilhas
 public function _desactivate()
 {
     $this->desactivate();
     $activedPlugins = Tri_Config::get('tri_plugins', true);
     foreach ($activedPlugins as $key => $value) {
         if ($value == $this->_name) {
             unset($activedPlugins[$key]);
         }
     }
     Tri_Config::set('tri_plugins', $activedPlugins, true);
 }