2014-12-28 2 views
2

Я использую модуль Yii bbii forum, и он отлично работает. Но теперь я хочу добавить comments-module, чтобы каждый пост форума мог быть отдельно прокомментирован.Как добавить комментарии к каждому сообщению форума в yii, используя модуль bbii forum и comment-module

В начале это может выглядеть: enter image description here

Я следовал инструкции, что это here, но я не могу заставить его работать :(

enter image description here enter image description here

И почему я даже не нужно чтобы включить этот файл, если я хочу добавить только комментарий?

enter image description here

Когда я добавил тот же виджет на страницу пользователя (только для тестирования) - я получил «Этот элемент не может быть комментируемым», и это нормально, потому что, вероятно, у меня нет правильной конфигурации в main.php. enter image description here

Разница между виджетом в представлении модели пользователя и видом форума - это данные, переданные в нем. здесь:

public function actionPostComment() 
     { 
      if(isset($_POST['Comment']) && Yii::app()->request->isAjaxRequest) 
      { 
       $comment = new Comment(); 
       $comment->attributes = $_POST['Comment']; 
       var_dump($comment); 

var_dump вернулся this, когда пытался представить комментарий в форуме, и here на странице просмотра пользователей.

И, возможно, их невозможно комбинировать только с модулями? Я действительно новичок в Yii.

Обновлено:

В основном то, что я сделал это:

  • exstracted модуль комментарий (под protected-> модули)
  • в main.php (при protected-> конфигурации) добавлен все конфигурации в массиве модулей:
  • 'comments'=>array(    
          //you may override default config for all connecting models 
          'defaultModelConfig' => array(
           //only registered users can post comments 
           'registeredOnly' => false, 
           'useCaptcha' => false, 
           ....... 
    
  • и в виде файла _post.php добавляется следующее:

     <?php $this->widget('comments.widgets.ECommentsListWidget', array(
                 'model' => $data, 
                )); 
    
  • и var_dump($data) дает this (если это называется в контроллере, где reseaved запись).

+0

Ваш вопрос содержит много информации о том, что и как, и даже скриншоты и т. Д. - это довольно необычно и очень приятно ;-) Однако было бы лучше, если бы вы представили то, что вы сделали. Я не думаю, что люди будут читать связанные страницы. Есть много комментариев и т. Д., Поэтому мы не можем знать, что у вас сейчас есть. – t3chb0t

ответ

0

сообщение об ошибке было дано здесь:

включают (BbiiPost.php): не удалось не удалось открыть поток: Нет такого файла или каталога

Вы сказали, что Bbii работает с Yii, и он сломался, когда вы попытались добавить комментарии. Ссылки на ваши файлы var_dump повреждены, но я попытался их прочитать;)

Похоже, что модуль комментариев вмешивается в путь POST, так что, когда при подаче представления формы он находится по другому пути от который путает автозагрузчик YiiBase.

Вы можете попробовать явно добавить путь к BbiiPost.php в путь поиска автозагрузчика или найти, где находится линия include("BbiiPost.php"), и изменить его на абсолютный путь.

Другая возможность заключается в том, что на странице форума, на которой вы находитесь, есть ссылки для добавления комментариев, но маршрутизация страницы не была взята с маршрута. Поэтому может быть, что ссылка POST на комментарии на самом деле находится на/forum/123/comment/add вместо just/comment/add. Поэтому, когда форма отправляется, она пытается добавить комментарии/добавить контроллер/действие, но обнаружив, что она находится в/forum/view и путается о путях к файлам include.

Как правило, я обнаружил, что инструкции на Yii (v1) [v2 docs намного лучше], сайт для этих модулей в лучшем случае взломан. Довольно часто ссылка для загрузки источника на странице указывает на старую багги версию кода, поскольку проект обычно перемещается где-то в другом месте. Обычно вам нужно иметь довольно хорошие знания PHP/Yii, чтобы отлаживать эти модули, представленные пользователем, и заставить их работать.