define('TH_COMMENT_TYPE_GENERAL', 3); $parent= isset ($parent) ? $parent : $modx->documentObject['parent']; $landing= isset ($landing) ? $landing : $modx->documentIdentifier; $output= ''; if (include_once(MODX_BASE_PATH . 'assets/snippets/techhangar/techhangar.class.php')) { $xpdo= new TechHangar(); if (!isset ($_REQUEST['feedback_id']) || !$feedback_id= intval($_REQUEST['feedback_id'])) { die('feedback_id not set!'); } $feedback= $xpdo->getObject('thFeedback', $feedback_id); $required= array ( ); $documentVersion= $feedback->document_version; $objDocumentVersion= $xpdo->getObject('thDocumentVersion', $documentVersion); $objDocumentType= $objDocumentVersion->getOne('thDocumentType'); $modx->setPlaceholder('documentVersion', $objDocumentType->name . ' ' . $objDocumentVersion->version); $review= $feedback->getOne('thReview'); if (!$review) { $review= $xpdo->newObject('thReview'); $review->set('feedback_id', $feedback_id); } if (count($_POST)) { $review->fromArray($_POST); if (isset ($_POST['submit_review'])) { //do validation here $invalid= array (); $modx->setPlaceholder('review-object', $review); $modx->setPlaceholder('review-required', $required); $modx->setPlaceholder('review-invalid', $invalid); $modx->runSnippet('adminreviewform-validation-' . $modx->getPlaceholder('documentVersion')); $modx->runSnippet('adminreviewform-validation'); $required= $modx->getPlaceholder('review-required'); $invalid= $modx->getPlaceholder('review-invalid'); if (empty ($invalid)) { //save review if ($review->save()) { $modx->sendRedirect($modx->makeUrl($landing, '', 'feedback_id=' . $feedback_id)); } else { $output.= '

There was an error saving this review record.

'; } } else { $output.= '

Your submission was rejected for the following reasons:

'; $output.= ''; } } } foreach ($feedback->toArray() as $key => $val) { $modx->setPlaceholder('feedback.' . $key, stripslashes($val)); } $thUserProfile= $xpdo->getObject('thUserProfile', array ('webuser' => $feedback->webuser)); $modxUserProfile= $modx->getWebUserInfo($feedback->webuser); foreach ($thUserProfile as $upKey => $upVal) { $modx->setPlaceholder('user.' . $upKey, $upVal); unset($upKey, $upVal); } foreach ($modxUserProfile as $upKey => $upVal) { $modx->setPlaceholder('user.' . $upKey, $upVal); unset($upKey, $upVal); } $xpdo->loadClass('form.MakeForm', XPDO_CORE_PATH, true, true); $form= new MakeForm($xpdo); //comment type options $optCommentTypes= array ('--- Select One ---'); $commentTypes= $xpdo->getCollectionGraph('thDocumentVersionCommentType', '{"thCommentType":{"id":{}}}', array ('document_version' => $documentVersion)); foreach ($commentTypes as $dvcommentType) { $commentType= $dvcommentType->getOne('thCommentType'); $optCommentTypes[$commentType->id]= $commentType->name; } //topic options $optTopics= array ('--- Select One ---'); $topics= $xpdo->getCollectionGraph('thDocumentVersionTopic', '{"thTopic":{"id":{}}}', array ('document_version' => $documentVersion)); foreach ($topics as $dvtopic) { $topic= $dvtopic->getOne('thTopic'); $optTopics[$topic->id]= $topic->name; } //subtopic options $optSubTopics= array ('--- Select One ---'); $subTopics= $xpdo->getCollectionGraph('thDocumentVersionSubTopic', '{"thSubTopic":{"id":{}}}', array ('document_version' => $documentVersion)); foreach ($subTopics as $dvsubTopic) { $subTopic= $dvsubTopic->getOne('thSubTopic'); $optSubTopics[$subTopic->id]= $subTopic->name; } //disposition options $optDispositions= array ('--- Select One ---'); $dispositions= $xpdo->getCollection('thDisposition'); foreach ($dispositions as $disposition) { $optDispositions[$disposition->id]= $disposition->name; } //assigned_to options $optAssignedTo= array ('--- Select One ---'); $assigned_tos= $xpdo->getCollection('thIPTAssociation'); foreach ($assigned_tos as $assigned_to) { $optAssignedTo[$assigned_to->id]= $assigned_to->name; } //status options $optStatus= array (0 => '--- Select One ---', 1 => 'Open', 2 => 'Closed'); $modx->setPlaceholder('feedback.comment_type.name', $optCommentTypes[$feedback->comment_type]); $modx->setPlaceholder('feedback.topic.name', $optTopics[$feedback->topic]); $modx->setPlaceholder('feedback.subtopic.name', $optSubTopics[$feedback->subtopic]); $requiredSpan= ' *'; $formElements= array ( 'feedback_id' => array ( 'type' => 'hidden', 'name' => 'feedback_id', 'value' => $feedback_id, ), 'comment_type_corrected' => array ( 'type' => 'select', 'name' => 'comment_type_corrected', 'label' => 'Comment:' . (isset ($required['comment_type_corrected']) ? $requiredSpan : ''), 'options' => $form->createOptions($optCommentTypes, $review->comment_type_corrected), ), 'disposition' => array ( 'type' => 'select', 'name' => 'disposition', 'label' => 'Disposition:' . (isset ($required['disposition']) ? $requiredSpan : ''), 'options' => $form->createOptions($optDispositions, $review->disposition), ), 'topic_corrected' => array ( 'type' => 'select', 'name' => 'topic_corrected', 'label' => 'Topic:' . (isset ($required['topic_corrected']) ? $requiredSpan : ''), 'options' => $form->createOptions($optTopics, $review->topic_corrected), ), 'status' => array ( 'type' => 'select', 'name' => 'status', 'label' => 'Status:' . (isset ($required['status']) ? $requiredSpan : ''), 'options' => $form->createOptions($optStatus, $review->status), ), 'subtopic_corrected' => array ( 'type' => 'select', 'name' => 'subtopic_corrected', 'label' => 'Sub-Topic:' . (isset ($required['subtopic_corrected']) ? $requiredSpan : ''), 'options' => $form->createOptions($optSubTopics, $review->subtopic_corrected), ), 'assigned_to' => array ( 'type' => 'select', 'name' => 'assigned_to', 'label' => 'Assigned to:' . (isset ($required['assigned_to']) ? $requiredSpan : ''), 'options' => $form->createOptions($optAssignedTo, $review->assigned_to), ), 'notes' => array ( 'type' => 'textarea', 'name' => 'notes', 'label' => 'Notes:' . (isset ($required['notes']) ? $requiredSpan : ''), 'value' => $review->get('notes'), // 'style' => 'width:420px;height:120px;', 'wrap' => 'virtual', ), 'submit_review' => array ( 'type' => 'submit', 'name' => 'submit_review', 'value' => 'Submit Review', 'extra' => ' or Cancel and close', ), ); $form->setFormElements($formElements); $output.= $form->buildForm(); } return $output;