Как добавить комментарии на страницу Socialengine, которая ранее не была доступна?

Я сделал несколько существенных модификаций (связанных с отображением) для плагина домашних животных, предлагаемого для платформы Socialengine, и мне нужны комментарии к сообщениям в области обсуждений. Я пытался сделать это и до сих пор есть этот пункт:

 <a name="comments"></a>
<?php echo $this->action("list", "comment", "core", array("type"=>$object->getType(),"id"=>$object->getIdentity())) ?> 

Который даже не будет работать на странице (разбивает отображение и не выводит данные). Я надеялся, что это отобразит окно, которое будет извлекать необходимые данные из элемента и использовать petid, topid и userid для создания комментария, хранящегося в engine4_core_comments. Просто нужно, чтобы на странице появилась какая-то функция комментирования, на самом деле подойдет все, что угодно, если у вас есть опыт работы с такими функциями.

Вот полная страница view.tpl:

<?php
/**    

* Radcodes - SocialEngine Module
 *
 * @category   Application_Extensions
 * @package    Pet
 * @copyright  Copyright (c) 2009-2010 Radcodes LLC (http://www.radcodes.com)
 * @license    http://www.radcodes.com/license/
 * @version    $Id$
 * @author     Vincent Van <[email protected]>
 */
?>

<h2>
  <?php echo $this->translate("%s &#187; Discussions", $this->pet->__toString())?>
</h2>



<h3>
  <?php echo $this->topic->getTitle() ?>
</h3>

<?php $this->placeholder('pettopicnavi')->captureStart(); ?>
<div class="pet_discussions_thread_options">
  <?php echo $this->htmlLink(array('route' => 'pet_extended', 'controller' => 'topic', 'action' => 'index', 'pet_id' => $this->pet->getIdentity()), $this->translate('Back to Topics'), array(
    'class' => 'buttonlink icon_back'
  )) ?>
  <?php if( $this->form ): ?>
    <?php echo $this->htmlLink($this->url(array()) . '#reply', $this->translate('Post Reply'), array(
      'class' => 'buttonlink icon_pet_post_reply'
    )) ?>
  <?php endif; ?>
  <?php if( $this->can_edit): ?>
    <?php if( !$this->topic->sticky ): ?>
      <?php echo $this->htmlLink(array('action' => 'sticky', 'sticky' => '1', 'reset' => false), $this->translate('Make Sticky'), array(
        'class' => 'buttonlink icon_pet_post_stick'
      )) ?>
    <?php else: ?>
      <?php echo $this->htmlLink(array('action' => 'sticky', 'sticky' => '0', 'reset' => false), $this->translate('Remove Sticky'), array(
        'class' => 'buttonlink icon_pet_post_unstick'
      )) ?>
    <?php endif; ?>
    <?php if( !$this->topic->closed ): ?>
      <?php echo $this->htmlLink(array('action' => 'close', 'close' => '1', 'reset' => false), $this->translate('Close'), array(
        'class' => 'buttonlink icon_pet_post_close'
      )) ?>
    <?php else: ?>
      <?php echo $this->htmlLink(array('action' => 'close', 'close' => '0', 'reset' => false), $this->translate('Open'), array(
        'class' => 'buttonlink icon_pet_post_open'
      )) ?>
    <?php endif; ?>
    <?php echo $this->htmlLink(array('action' => 'rename', 'reset' => false), $this->translate('Rename'), array(
      'class' => 'buttonlink smoothbox icon_pet_post_rename'
    )) ?>
    <?php echo $this->htmlLink(array('action' => 'delete', 'reset' => false), $this->translate('Delete'), array(
      'class' => 'buttonlink smoothbox icon_pet_post_delete'
    )) ?>
  <?php elseif( !$this->can_edit): ?>
    <?php if( $this->topic->closed ): ?>
      <div class="pet_discussions_thread_options_closed">
        <?php echo $this->translate('This topic has been closed.')?>
      </div>
    <?php endif; ?>
  <?php endif; ?>
</div>
<?php $this->placeholder('pettopicnavi')->captureEnd(); ?>



<?php echo $this->placeholder('pettopicnavi') ?>
<?php echo $this->paginationControl(null, null, null, array(
  'params' => array(
    'post_id' => null // Remove post id
  )
)) ?>


<script type="text/javascript">
  var quotePost = function(user, href, body)
  {
    $("body").value = '[blockquote]' + '[b][url=' + href + ']' + user + '[/url] said:[/b]\n' + body + '[/blockquote]\n\n';
    $("body").focus();
    $("body").scrollTo(0, $("body").getScrollSize().y);
  }
</script>



<ul class='pet_discussions_thread'>
  <?php foreach( $this->paginator as $post ): ?>
  <li>
    <div class="pet_discussions_thread_photo">
      <?php
        $user = $this->item('user', $post->user_id);
        echo $this->htmlLink($user->getHref(), $user->getTitle());
        echo $this->htmlLink($user->getHref(), $this->itemPhoto($user, 'thumb.icon'));
      ?>
    </div>
    <div class="pet_discussions_thread_info">
      <div class="pet_discussions_thread_details">
        <div class="pet_discussions_thread_details_options">
          <?php if( $this->form ): ?>
            <?php echo $this->htmlLink('javascript:void(0);', $this->translate('Quote'), array(
              'class' => 'buttonlink icon_pet_post_quote',
              'onclick' => 'quotePost("'.$this->escape($user->getTitle()).'", "'.$this->escape($user->getHref()).'", "'.$this->string()->escapeJavascript($post->body).'");'
            )) ?>
          <?php endif; ?>
          <?php if( $post->user_id == $this->viewer()->getIdentity() || $this->pet->getOwner()->getIdentity() == $this->viewer()->getIdentity() ): ?>
            <?php echo $this->htmlLink(array('route' => 'pet_extended', 'controller' => 'post', 'action' => 'edit', 'post_id' => $post->getIdentity(), 'format' => 'smoothbox'), $this->translate('Edit'), array(
              'class' => 'buttonlink smoothbox icon_pet_post_edit'
            )) ?>
            <?php echo $this->htmlLink(array('route' => 'pet_extended', 'controller' => 'post', 'action' => 'delete', 'post_id' => $post->getIdentity(), 'format' => 'smoothbox'), $this->translate('Delete'), array(
              'class' => 'buttonlink smoothbox icon_pet_post_delete'
            )) ?>
          <?php endif; ?>
        </div>
        <div class="pet_discussions_thread_details_date">
          <?php echo $this->timestamp(strtotime($post->creation_date)) ?>
        </div>
      </div>
      <div class="pet_discussions_thread_body">
        <?php echo nl2br($this->BBCode($post->body)) ?>
      </div>
    </div>
  </li>
  <?php endforeach; ?>




<?php if($this->paginator->getCurrentItemCount() > 4): ?>

  <?php echo $this->paginationControl(null, null, null, array(
    'params' => array(
      'post_id' => null // Remove post id
    )
  )) ?>
  <br />
  <?php echo $this->placeholder('pettopicnavi') ?>

<?php endif; ?>
<br />

<?php if( $this->form ): ?>
  <a name="reply" />
  <?php echo $this->form->setAttrib('id', 'pet_topic_reply')->render($this) ?>
<?php endif; ?>

Спасибо!


person Kotoku    schedule 18.08.2012    source источник


Ответы (1)


В последней версии SocialEngine в менеджере компоновки доступен виджет Comment. Вы можете попробовать использовать это.

person Salman    schedule 19.08.2012
comment
Это действительно хорошая идея, и я бы пошел по этому пути, если бы мог. В плагине Pet (как и в плагине для списков) страница обсуждения не отображается как страница, которую вы можете редактировать в редакторе макета, поэтому я не смог ее добавить. Если вы знаете, зачем это делать, я также хотел бы это услышать! Спасибо, Салман. - person Kotoku; 20.08.2012
comment
Вы должны проверить таблицы core_contents и core_pages. Тогда вы получите представление и сможете создать макет для любой страницы. - person Salman; 20.08.2012
comment
Очень ценю эту идею. Спасибо за совет, Салман, я вернусь, чтобы проголосовать за этот отличный ответ для будущих пользователей! - person Kotoku; 20.08.2012