private function getFormCommon($source_id = 0, $item_id=0, $type='text', $date=false, $edit=false, $tags=false, $lat=false, $long=false, $elev=false) { // Create the basic form $form = new Stuffpress_Form(); // Add the form element details $form->setAction('admin/post/submit'); $form->setMethod('post'); $form->setName("formPost"); // Create and configure tags element: $element = $form->createElement('text', 'tags', array('label' => 'Tags:', 'decorators' => array('ViewHelper', 'Errors'))); $element->addValidator('stringLength', false, array(0, 256)); $element->addFilter('StripTags'); $element->setValue($tags); $element->setRequired(false); $form->addElement($element); // Create and configure latitude element: $element = $form->createElement('hidden', 'latitude', array('label' => 'Latitude:', 'decorators' => array('ViewHelper', 'Errors'))); $element->addValidator('between', false, array(-180.0, 180.0)); $element->setValue($lat); $element->setRequired(false); $form->addElement($element); // Create and configure longitude element: $element = $form->createElement('hidden', 'longitude', array('label' => 'Longitude:', 'decorators' => array('ViewHelper', 'Errors'))); $element->addValidator('between', false, array(-180.0, 180.0)); $element->setValue($long); $element->setRequired(false); $form->addElement($element); // Add a radio button element for the date_type $element = $form->createElement('hidden', 'date_type'); $element->setRequired(false); $element->setDecorators(array('ViewHelper')); $form->addElement($element); if ($date) { $timestamp = $date; $this->view->date_text = Stuffpress_Date::date("F d, Y h:i A", $timestamp, $this->_properties->getProperty('timezone')); $element->setValue('other'); } else { $timestamp = time(); $this->view->date_text = "Now"; $element->setValue('now'); } $form->addElement($element); // Create and configure date element: $element = $form->createElement('hidden', 'date'); $element->setRequired(false); $element->setDecorators(array('ViewHelper')); $element->setValue(Stuffpress_Date::date("F d, Y h:i A", $timestamp, $this->_properties->getProperty('timezone'))); $form->addElement($element); // Add a twitter element if required if ($this->_properties->getProperty('twitter_auth')) { $checked = (!$item_id && in_array($source_id, unserialize($this->_properties->getProperty('twitter_services')))) ? true : false; $element = $form->createElement('checkbox', 'twitter_notify', array('label' => 'Twitter:', 'decorators' => array('ViewHelper', 'Errors'), 'class' => 'css')); $element->setValue($checked); $element->setRequired(true); $form->addElement($element); } // Add a hidden element with the item id $element = $form->createElement('hidden', 'item'); $element->setDecorators(array(array('ViewHelper'))); $element->setValue($item_id); $form->addElement($element); // Add a hidden element with the item id $element = $form->createElement('hidden', 'source'); $element->setDecorators(array(array('ViewHelper'))); $element->setValue($source_id); $form->addElement($element); // Add a hidden element with the type $element = $form->createElement('hidden', 'type'); $element->setDecorators(array(array('ViewHelper'))); $element->setValue($type); $form->addElement($element); // If a bookmarklet, we also need to remember it $element = $form->createElement('hidden', 'bookmarklet'); $element->setDecorators(array(array('ViewHelper'))); $element->setValue($this->_bookmarklet); $form->addElement($element); // Add a hidden element with action $element = $form->createElement('hidden', 'mode'); $element->setDecorators(array(array('ViewHelper'))); $element->setValue($edit ? 'edit' : 'create'); $form->addElement($element); // use addElement() as a factory to create 'Post' button: $form->addElement('button', 'post', array('label' => ($edit ? 'Save' : 'Post'), 'onclick' => "submitFormPost();", 'decorators' => $form->buttonDecorators)); return $form; }