function actionDefault()
 {
     // Create the form
     $form = new YDForm('form1');
     $form->registerFilter('reverse', 'strrev');
     $form->setDefaults(array('txt2' => 'First text', 'txt3' => "2\nlines", 'hid1' => 'me hidden', 'chk1' => 'x', 'chk2' => false, 'sel1' => 2));
     $text =& $form->addElement('text', 'txt1', 'Enter text 1:');
     $text->_label = 'new label for txt1';
     $form->addElement('text', 'txt2', 'Enter text 2:', array('class' => 'textInputClass', 'name' => 'x'));
     $form->addElement('textarea', 'txt3', 'Enter text 2:');
     $form->addElement('textareacounter', 'txtcounter_1', 'Textarea counter 1', array(), array('maxlength' => 10, 'before' => ' (', 'after' => ' characters remaining)'));
     $form->addElement('textareacounter', 'txtcounter_2', 'Textarea counter 2');
     $form->addElement('radio', 'rad1', 'Select a value 1:', array(), array(1 => 'een', 2 => 'twee'));
     $form->addElement('radio', 'rad2', 'Select a value 2:', array(), array(1 => 'een<br/>', 2 => 'twee'));
     $form->addElement('hidden', 'hid1', '');
     $form->addElement('hidden', 'hid2', '', array(), 'i am also hidden');
     $form->addElement('image', 'img1', '', array(), 'http://www.scripting.com/images/xml.gif');
     $form->addElement('password', 'pas1', 'Enter your password');
     $form->addElement('bbtextarea', 'bbt1', 'Enter your BBCode');
     $form->addElement('checkbox', 'chk1', 'Select me please');
     $form->addElement('checkbox', 'chk2', 'Select me please');
     $form->addElement('select', 'sel1', 'Select an option:', array(), array(1 => 'een', 2 => 'twee'));
     $form->addElement('span', 'span1', 'This is a span. The next element is an image (img).');
     $form->addElement('img', 'img2', 'http://www.scripting.com/images/xml.gif');
     $form->addElement('file', 'fil1', 'Select an file:');
     $form->addElement('submit', 'cmd1', 'Send');
     $form->addElement('reset', 'res1', 'Reset');
     $form->addFilter('__ALL__', 'upper');
     $form->addFilter('txt1', 'trim');
     $form->addFilter('txt2', 'reverse');
     $form->addRule('txt1', 'required', 'txt1 is required');
     $form->addRule('chk2', 'exact', 'chk2 is required', 1);
     $form->addFormRule(array(&$this, 'formrule'), 'txt1 is required');
     if (YDConfig::get('YD_DEBUG') == 1 || YDConfig::get('YD_DEBUG') == 2) {
         YDDebugUtil::dump($form->_regElements, 'Registered elements');
         YDDebugUtil::dump($form->_regRules, 'Registered rules');
         YDDebugUtil::dump($form->_regFilters, 'Registered filters');
         YDDebugUtil::dump($form->_filters, 'Filters');
         YDDebugUtil::dump($form->_rules, 'Rules');
         YDDebugUtil::dump($form->_formrules, 'Form Rules');
         YDDebugUtil::dump($form->getValue('txt1'), 'txt1');
         YDDebugUtil::dump($form->getValue('txt2'), 'txt2');
         YDDebugUtil::dump($_POST, '$_POST');
         YDDebugUtil::dump($_FILES, '$_FILES');
         YDDebugUtil::dump($form->toArray());
     }
     if ($form->validate()) {
         YDDebugUtil::dump($form->getModifiedValues(), 'Form modified values');
         YDDebugUtil::dump($form->getValues(), 'Form values');
     } else {
         $form->display();
     }
     // Create the form
     $form2 = new YDForm('form2');
     $form2->setDefaults(array('txt1' => 'First text'));
     $form2->addElement('text', 'txt1', 'Enter text 1:');
     $form2->addElement('text', 'txt2', 'Enter text 2:');
     $form2->addElement('submit', 'cmd1', 'Send');
     $form2->display();
 }
 function actionDefault()
 {
     // Create the form
     $form = new YDForm('form1', 'GET', '', '_self', array('class' => 'myform'));
     // Add elements
     $form->addElement('text', 'txt1', 'Enter text 1:');
     $form->addElement('text', 'txt2', 'Enter text 2:');
     $form->addElement('submit', 'cmdSubmit', 'submit');
     $form->addRule('txt1', 'required', 'txt1 is required');
     $form->addRule('txt1', 'maxlength', 'txt1 must be smaller than 15', 15);
     $form->addCompareRule(array('txt1', 'txt2'), 'equal', 'txt1 and txt2 must be equal');
     $form->addFormRule('formrule1');
     $form->addFormRule(array('YDValidateRule', 'formrule2'));
     $form->addFilter('txt1', 'trim');
     $form->addFilter('txt2', 'trim');
     // Convert the form to XML
     $xml = $form->render('xml');
     YDDebugUtil::dump($xml, 'Form as XML data');
     //YDDebugUtil::dump( $form );
     // Recreate a new form from the XML data
     $form2 = new YDForm('form1');
     $form2->import('xml', $xml);
     //YDDebugUtil::dump( $form2 );
     YDDebugUtil::dump(array_diff_assoc($form->toArray(), $form2->toArray()), 'toArray difference');
     YDDebugUtil::dump(array_diff_assoc($form->_attributes, $form2->_attributes), '_attributes difference');
     YDDebugUtil::dump(array_diff_assoc($form->_elements, $form2->_elements), '_elements difference');
     YDDebugUtil::dump(array_diff_assoc($form->_rules, $form2->_rules), '_rules difference');
     YDDebugUtil::dump(array_diff_assoc($form->_filters, $form2->_filters), '_filters difference');
     YDDebugUtil::dump(array_diff_assoc($form->_comparerules, $form2->_comparerules), '_comparerules difference');
     YDDebugUtil::dump(array_diff_assoc($form->_formrules, $form2->_formrules), '_formrules difference');
     YDDebugUtil::dump(array_diff_assoc($form->_regElements, $form2->_regElements), '_regElements difference');
     YDDebugUtil::dump(array_diff_assoc($form->_regRules, $form2->_regRules), '_regRules difference');
     YDDebugUtil::dump(array_diff_assoc($form->_regFilters, $form2->_regFilters), '_regFilters difference');
     YDDebugUtil::dump(array_diff_assoc($form->_regRenderers, $form2->_regRenderers), '_regRenderers difference');
 }
 function actionSearch()
 {
     // retrieve list of forums
     $forumLogic = new ForumsLogic();
     $forums = $forumLogic->retrieveAllByOrderSimple();
     $selectForums = array();
     foreach ($forums as $i => $item) {
         $selectForums["" . $item->id] = $item->name;
     }
     // Create the search form
     $form = new YDForm('searchForm');
     $form->addElement('text', 'searchKeys', t('forums.searchstring'), array("size" => 40));
     $form->addElement('select', 'searchForum', t('forums.searchforum'), array("width" => 60), $selectForums);
     $form->addElement('submit', 'cmdSubmit', t('forums.search'));
     // Add rules
     $form->addFormRule(array(&$this, 'checkSearch'));
     // Process the form
     if ($form->validate()) {
         $this->actionTpl->assign('searched', true);
         // get and show results
         $forum = $forumLogic->retrieveForumById($form->getValue('searchForum'));
         $forum->loadSubjectsMatching($form->getValue('searchKeys'));
         // number of results
         $this->actionTpl->assign('nbposts', count($forum->subjects));
         $this->actionTpl->assign('posts', $forum->subjects);
     }
     // Assign variables to the template
     $this->actionTpl->assign('form', $form->toArray());
     $content = new page($this->actionTpl->fetch('templates/forums.search.tpl'), t('forums.searching'));
     $this->display($content);
 }
 function actionEditPost()
 {
     if (!isset($_GET['idPost'])) {
         $this->errorRequete();
         return;
     }
     if ($this->user->authentificated) {
         $postlogic = new PostsLogic();
         $post = $postlogic->retrievePostById($_GET['idPost']);
         if ($post != null) {
             if ($this->user->rightslevel >= LEVEL_MODERATOR || $this->user->id == $post->idAuthor) {
                 // Create the add post form
                 $form = new YDForm('postEdit');
                 $form->addElement('hidden', 'idPost', $post->id);
                 $form->addElement('text', 'postTitle', t('posts.messagetitle'), array("size" => 60));
                 $form->addElement('textarea', 'postContent', t('posts.message'), array("cols" => 50, "rows" => 8));
                 $form->addElement('submit', 'cmdSubmit', t('posts.editmessage'));
                 // Add rules
                 $form->addFormRule(array(&$this, 'simpleCheckPost'));
                 // Process the form
                 if ($form->validate()) {
                     $post->title = $form->getValue('postTitle');
                     $post->content = $form->getValue('postContent');
                     $post->idEditor = $this->user->id;
                     $post->ipEditor = $this->user->ip;
                     $post->dateEdited = date('Y-m-d H:i:s', mktime());
                     $post->update();
                     // on redirige sur le post parent si il existe
                     if ($post->idPostParent != null) {
                         $postParent = $postlogic->retrievePostById($post->idPostParent);
                         $postParent->dateAnswer = date('Y-m-d H:i:s', mktime());
                         $postParent->update();
                         $this->actionTpl->assign('post', $postParent);
                     } else {
                         $this->actionTpl->assign('post', $post);
                     }
                     $this->actionTpl->assign('editMessage', true);
                     // we are editing the message
                     $content = new page($this->actionTpl->fetch('templates/posts.success.tpl'), t('posts.updsuccess'));
                     $this->display($content);
                     return;
                 }
                 $form->setDefaults(array('postTitle' => $post->title));
                 $form->setDefaults(array('postContent' => $post->content));
                 // Assign variables to the template
                 $this->actionTpl->assign('form', $form->toArray());
                 // forms
                 $this->actionTpl->assign('user', $this->user);
                 // user for rights
                 $this->actionTpl->assign('editMessage', true);
                 // we are editing the message
                 $content = new page($this->actionTpl->fetch('templates/posts.new.tpl'), t('posts.messageupdate'));
                 $this->display($content);
                 return;
             } else {
                 $this->errorRequete(t('posts.notrightupdate'));
                 return;
             }
         } else {
             $this->errorRequete(t('posts.donotexists'));
             return;
         }
     } else {
         $content = new page($this->actionTpl->fetch('templates/user.notAuth.tpl'), t('global.notconnected'));
     }
 }
 function actionSuscribe()
 {
     if (!$this->user->authentificated) {
         // Create the profile form
         $form = new YDForm('suscribeForm');
         $form->addElement('text', 'suscribeLogin', t('user.login'));
         $form->addElement('textarea', 'suscribeDescription', t('user.desc'));
         $form->addElement('password', 'suscribePassUn', t('user.pwd'));
         $form->addElement('password', 'suscribePassDeux', t('user.confirmpwd'));
         $form->addElement('submit', 'cmdSubmit', t('user.valid'));
         // Add rules
         $form->addFormRule(array(&$this, 'checkSuscribe'));
         // Process the form
         if ($form->validate()) {
             // Insert profile
             $this->user->id = '';
             $this->user->login = $form->getValue('suscribeLogin');
             $this->user->description = $form->getValue('suscribeDescription');
             $this->user->password = md5($form->getValue('suscribePassUn'));
             $this->user->insert();
             $this->user->auth();
             $_GET['idUser'] = $this->user->id;
             $_SESSION['s_user'] = YDObjectUtil::serialize($this->user);
             // Redirect sur les forums
             header('location: forums.php');
             return;
         }
         // Assign variables to the template
         $this->actionTpl->assign('form', $form->toArray());
         $content = new page($this->actionTpl->fetch('templates/user.suscribe.tpl'), 'Inscription');
         // Display the action template into the master template
         $this->display($content);
     } else {
         $this->actionMonProfil();
         return;
     }
 }
 function actionLogin()
 {
     // Redirect to default action if already logged in
     if ($this->isAuthenticated() === true) {
         $this->forward('default');
         return;
     }
     // Create the login form
     $form = new YDForm('loginForm');
     $form->addElement('text', 'loginName', t('user.login'));
     $form->addElement('password', 'loginPass', t('user.pwd'));
     $form->addElement('submit', 'cmdSubmit', 'Login');
     $form->setDefaults(array('loginPass' => ''));
     // Add the rules
     $form->addFormRule(array(&$this, 'checkLogin'));
     // Process the form
     if ($form->validate()) {
         // Mark the form as valid
         $this->authenticationSucceeded();
         header('location: forums.php');
         return;
     }
     // Assign variables to the action template
     $this->actionTpl->assign('form', $form->toArray());
     $content = new Page($this->actionTpl->fetch('templates/user.login.tpl'), '');
     // Display the action template into the master template
     $this->display($content);
 }
 function actionManageForums()
 {
     // Create the addForum form
     $form = new YDForm('forumForm');
     $form->addElement('text', 'forumTitle', t('admin.newforumtitle'), array("size" => 40));
     $form->addElement('text', 'forumPoids', t('admin.forumweightorder'), array());
     $form->addElement('submit', 'cmdSubmit', t('admin.forumcreate'));
     // Add rules
     $form->addFormRule(array(&$this, 'checkNewForum'));
     $form->addRule('forumPoids', 'numeric', t('admin.forumweightinteger'));
     // Process the form
     if ($form->validate()) {
         // get and show results
         $forum = new ForumObject($form->getValue('forumTitle'), $form->getValue('forumPoids'));
         $forum->insert();
     }
     // Future defaults values
     $form->setDefaults(array('forumTitle' => ''));
     $form->setDefaults(array('forumPoids' => ''));
     // retrieve existing forums
     $forumLogic = new ForumsLogic();
     $forums = $forumLogic->retrieveAllByOrderSimple();
     // Assign variables to the template
     $this->actionTpl->assign('form', $form->toArray());
     $this->actionTpl->assign('forums', $forums);
     $content = new Page($this->actionTpl->fetch('templates/admin.forums.list.tpl'), t('admin.manageforums'), $this->menusAdmin);
     // Display the action template into the master template
     $this->display($content);
 }