Overview

Packages

  • alpha::controller
  • alpha::controller::front
  • alpha::exceptions
  • alpha::model
  • alpha::model::types
  • alpha::tasks
  • alpha::tests
  • alpha::util
  • alpha::util::cache
  • alpha::util::codehighlight
  • alpha::util::convertors
  • alpha::util::feeds
  • alpha::util::filters
  • alpha::util::graphs
  • alpha::util::helpers
  • alpha::util::metrics
  • alpha::util::search
  • alpha::view
  • alpha::view::renderers
  • alpha::view::widgets

Classes

  • AlphaView
  • ArticleCommentView
  • ArticleView
  • DEnumView
  • PersonView
  • SequenceView
  • ViewState
  • Overview
  • Package
  • Class
  • Tree
  • Deprecated
  1: <?php
  2: 
  3: /**
  4:  *
  5:  * The rendering class for the ArticleCommentObject class
  6:  *
  7:  * @package alpha::view
  8:  * @since 1.0
  9:  * @author John Collins <dev@alphaframework.org>
 10:  * @version $Id: ArticleCommentView.inc 1693 2013-12-09 23:33:24Z alphadevx $
 11:  * @license http://www.opensource.org/licenses/bsd-license.php The BSD License
 12:  * @copyright Copyright (c) 2012, John Collins (founder of Alpha Framework).
 13:  * All rights reserved.
 14:  *
 15:  * <pre>
 16:  * Redistribution and use in source and binary forms, with or
 17:  * without modification, are permitted provided that the
 18:  * following conditions are met:
 19:  *
 20:  * * Redistributions of source code must retain the above
 21:  *   copyright notice, this list of conditions and the
 22:  *   following disclaimer.
 23:  * * Redistributions in binary form must reproduce the above
 24:  *   copyright notice, this list of conditions and the
 25:  *   following disclaimer in the documentation and/or other
 26:  *   materials provided with the distribution.
 27:  * * Neither the name of the Alpha Framework nor the names
 28:  *   of its contributors may be used to endorse or promote
 29:  *   products derived from this software without specific
 30:  *   prior written permission.
 31:  *
 32:  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
 33:  * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
 34:  * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 35:  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 36:  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
 37:  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 38:  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 39:  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 40:  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 41:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 42:  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
 43:  * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 44:  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 45:  * </pre>
 46:  *
 47:  */
 48: class ArticleCommentView extends AlphaView {
 49:     /**
 50:      * Method to generate the markdown HTML render of the ArticleComment content
 51:      *
 52:      * @since 1.0
 53:      */
 54:     public function markdownView() {
 55:         global $config;
 56: 
 57:         $markdown = new MarkdownFacade($this->BO);
 58:         $author = new PersonObject();
 59:         $id = $this->BO->getCreatorID();
 60:         $author->load($id->getValue());
 61: 
 62:         echo '<blockquote class="usercomment">';
 63: 
 64:         $createTS = $this->BO->getCreateTS();
 65:         $updateTS = $this->BO->getUpdateTS();
 66: 
 67:         echo '<p>Posted by '.($author->get('URL') == ''? $author->get('displayname') : '<a href="'.$author->get('URL').'" target="new window">'.$author->get('displayname').'</a>').' at '.$createTS->getValue().'.';
 68:         echo '&nbsp;'.$author->get('displayname').' has posted ['.$author->getCommentCount().'] comments on articles since joining.';
 69:         echo '</p>';
 70:         if($config->get('cms.comments.allowed') && isset($_SESSION['currentUser']) && $_SESSION['currentUser']->getID() == $author->getID())
 71:             $this->editView();
 72:         else
 73:             echo $markdown->getContent();
 74: 
 75:         if($createTS->getValue() != $updateTS->getValue()) {
 76:             $updator = new PersonObject();
 77:             $id = $this->BO->getCreatorID();
 78:             $updator->load($id->getValue());
 79:             echo '<p>Updated by '.($updator->get('URL') == ''? $updator->get('displayname') : '<a href="'.$updator->get('URL').'" target="new window">'.$updator->get('displayname').'</a>').' at '.$updateTS->getValue().'.</p>';
 80:         }
 81:         echo '</blockquote>';
 82:     }
 83: 
 84:     /**
 85:      * Renders the custom create view
 86:      *
 87:      * @param array $fields hash array of HTML fields to pass to the template
 88:      * @since 1.0
 89:      */
 90:     public function createView($fields=array()) {
 91:         echo '<h2>Post a new comment:</h2>';
 92: 
 93:         echo '<table cols="2" class="create_view">';
 94:         echo '<form action="'.$_SERVER['REQUEST_URI'].'" method="POST" accept-charset="UTF-8">';
 95: 
 96:         $textBox = new TextBox($this->BO->getPropObject('content'), $this->BO->getDataLabel('content'), 'content', '', 10);
 97:         echo $textBox->render();
 98: 
 99:         echo '<input type="hidden" name="articleOID" value="'.$this->BO->get('articleOID').'"/>';
100:         echo '<tr><td colspan="2">';
101: 
102:         $button = new Button('submit', 'Post Comment', 'createBut');
103:         echo $button->render();
104: 
105:         echo '</td></tr>';
106: 
107:         echo AlphaView::renderSecurityFields();
108: 
109:         echo '</form></table>';
110:         echo '<p class="warning">Please note that any comment you post may be moderated for spam or offensive material.</p>';
111:     }
112: 
113:     /**
114:      * Custom edit view
115:      *
116:      * @param array $fields Hash array of HTML fields to pass to the template.
117:      * @since 1.0
118:      */
119:     public function editView($fields=array()) {
120:         global $config;
121: 
122:         echo '<table cols="2" class="edit_view" style="width:100%; margin:0px">';
123:         echo '<form action="'.$_SERVER['REQUEST_URI'].'" method="POST" accept-charset="UTF-8">';
124: 
125:         $textBox = new TextBox($this->BO->getPropObject('content'), $this->BO->getDataLabel('content'), 'content', '', 5, $this->BO->getID());
126:         echo $textBox->render();
127: 
128:         $fieldname = ($config->get('security.encrypt.http.fieldnames') ? base64_encode(AlphaSecurityUtils::encrypt('version_num')) : 'version_num');
129:         echo '<input type="hidden" name="'.$fieldname.'" value="'.$this->BO->getVersion().'"/>';
130:         $fieldname = ($config->get('security.encrypt.http.fieldnames') ? base64_encode(AlphaSecurityUtils::encrypt('article_comment_id')) : 'article_comment_id');
131:         echo '<input type="hidden" name="'.$fieldname.'" value="'.$this->BO->getID().'"/>';
132: 
133:         // render special buttons for admins only
134:         if ($_SESSION['currentUser']->inGroup('Admin') && strpos($_SERVER['REQUEST_URI'], '/tk/') !== false) {
135:             echo '<tr><td colspan="2">';
136: 
137:             $fieldname = ($config->get('security.encrypt.http.fieldnames') ? base64_encode(AlphaSecurityUtils::encrypt('saveBut')) : 'saveBut');
138:             $temp = new Button('submit', 'Save', $fieldname);
139:             echo $temp->render();
140:             echo '&nbsp;&nbsp;';
141:             $js = "$('#dialogDiv').text('Are you sure you wish to delete this item?');
142:                 $('#dialogDiv').dialog({
143:                 buttons: {
144:                     'OK': function(event, ui) {
145:                         $('[id=\"".($config->get('security.encrypt.http.fieldnames') ? base64_encode(AlphaSecurityUtils::encrypt('deleteOID')) : 'deleteOID')."\"]').attr('value', '".$this->BO->getOID()."');
146:                         $('#deleteForm').submit();
147:                     },
148:                     'Cancel': function(event, ui) {
149:                         $(this).dialog('close');
150:                     }
151:                 }
152:             })
153:             $('#dialogDiv').dialog('open');
154:             return false;";
155:             $temp = new Button($js, "Delete", "deleteBut");
156:             echo $temp->render();
157:             echo '&nbsp;&nbsp;';
158:             $temp = new Button("document.location = '".FrontController::generateSecureURL('act=ListAll&bo='.get_class($this->BO))."'",'Back to List','cancelBut');
159:             echo $temp->render();
160:             echo '</td></tr>';
161: 
162:             echo AlphaView::renderSecurityFields();
163: 
164:             echo '</form></table>';
165:         }else{
166:             echo '</table>';
167: 
168:             echo '<div align="center">';
169:             $temp = new Button('submit', 'Update Your Comment', 'saveBut'.$this->BO->getID());
170:             echo $temp->render();
171:             echo '</div>';
172: 
173:             echo AlphaView::renderSecurityFields();
174: 
175:             echo '</form>';
176:         }
177:     }
178: }
179: 
180: ?>
Alpha Framework 1.2.4 API Documentation API documentation generated by ApiGen 2.8.0