Page 1 of 1

CGFeedback Сообщение о добавлении комментария

Posted: Mon Jun 27, 2011 10:36 am
by Justaflip
Здравствуйте, я интегрировал модуль CGFeedback в CGBlog, все работает но, после нажатия кнопки отправить, вместо сообщения "комментарий добавлен" и возврата к посту вылетает ошибка

Code: Select all

Ошибка сервера
На веб-сайте произошла ошибка при получении http://www.sergeyapopov.net/. Веб-сайт может быть закрыт на обслуживание или настроен неправильно.
Вот несколько советов и рекомендаций:
Обновите эту страницу позже.
Ошибка HTTP 500 (Internal Server Error): При попытке сервера выполнить запрос возникла неожиданная ситуация.
комментарий при этом добавляется.

Гугл непомог, сёрч по форуму тоже, помогите пожалуйста :-[

Шаблон полного просмотра CGBlog

Code: Select all

{assign var='pagetitle'  value=$entry->title}
<div id="blog">
{* set a canonical variable that can be used in the head section if process_whole_template is false in the config.php *}
{if isset($entry->canonical)}
{assign var='canonical' value=$entry->canonical}
{/if}
{assign var='dynamic_title' value=$entry->title|escape}
{CGFeedback key1="CGBlog" key2=$entry->id action="ratings" ratingstemplate="dw-count" assign="num_comments"}
<h2>{$entry->title|escape}</h2>

<div class="blogData">
{if $entry->postdate}
{$entry->postdate|cms_date_format}
{/if} | 
{if $entry->categories}
{strip}
{foreach from=$entry->categories item='category'}{$category.name} {/foreach} | 
{/strip}
{/if}
<a href="{$canonical}#comments">Комментарии ({$num_comments})</a>
</div>
{eval var=$entry->content}

{if $entry->extra}
<div id="CGBlogPostDetailExtra">
{$extra_label} {$entry->extra}
</div>
{/if}
<div class="return"><a href="javascript:history.go(-1)"><img src="media/images/buttons/blank.gif" alt="View" /></a></div>
<a name="comments"></a>
<hr />

<h3>Комментарии</h3>

{if $num_comments != '0'}
{CGFeedback key1="CGBlog" key1="CGBlog" key2=$entry->id action="summary"}
{else}
Нет комментариев.
{/if}

<hr />

<h3>Оставить комментарий</h3>
{comment successfull template}
{CGFeedback key1="CGBlog" key2=$entry->id action="default" policy="session"}
</div><!-- end blog -->

Шаблон формы добавления комментария CGFeedback

Code: Select all

{* comment form template *}
{if isset($message)}
	<div class="pagemessage">{$message}</div>
{else}
{* no message... display the form *}
	<div class="cgfeedback_addcoment">
{if isset($error)}
	<div class="error">{$error}</div>
{/if}
{$formstart}

<div class="row">
	<div id="fb_title">
		{$mod->Lang('prompt_title')}:
	</div>
	<div id="fb_input">
		<input type="text" name="{$actionid}title" size="80" maxlength="255" value="{$title}"/>
	</div>
</div>
<div class="clearfix"></div>

<div id="fb_hr"></div>

<div>
	<div id="fb_title">
		{$mod->Lang('prompt_your_name')}:
	</div>
	<div id="fb_input">
		<input type="text" name="{$actionid}author_name" size="40" maxlength="255" value="{$author_name}"/>
	</div>
</div>
<div class="clearfix"></div>

<div id="fb_hr"></div>

<div>
	<div id="fb_title">
		{$mod->Lang('prompt_your_email')}:
	</div>
	<div id="fb_input">
		<input type="text" name="{$actionid}author_email" size="40" maxlength="255" value="{$author_email}"/>
	</div>
</div>
<div class="clearfix"></div>

<div id="fb_hr"></div>

<div class="row">
	<div id="fb_title" style="float:none;">
		{$mod->Lang('prompt_comment')}:
	</div>
	<div id="fb_hr"></div>
	<div id="fb_input">
		{$input_comment}
	</div>
</div>
<div class="clearfix"></div>

<div id="fb_hr"></div>

<div style="position:absolute; top:-100px; left:-100px;">
	<div id="fb_title">
		{$mod->Lang('prompt_your_rating')}:
	</div>
	<div id="fb_input">
		<select name="{$actionid}rating">{html_options options=$rating_options selected=$rating}</select>
	</div>
</div>
<div class="clearfix"></div>

  {* custom fields *}

  {if isset($fields)}
  {foreach from=$fields key='fieldid' item='field'}
<div>
	<div id="fb_title">
		{$field.name}:
	</div>
	<div id="fb_input">
    {if isset($field.input)}
      {$field.input}
    {elseif $field.type == 0 or $field.type == 1 }
      <input type="text" name="{$actionid}field_{$fieldid}" value="{$field.value}" size="{$field.attrib.length}" maxlength="{$field.attrib.maxlength}"/>
    {elseif $field.type == 2}
      {* text area fields should have an input... so this should never get caled... but just in case *}
      <textarea name="{$actionid}field_{$fieldid}">{$field.value}</textarea>
    {elseif $field.type == 3}
      <select name="{$actionid}field_{$fieldid}">
        {html_options options=$field.attrib.options selected="{$field.value}"}
      </select>
    {elseif $field.type == 4}
      <select multiple="multiple" size="4" name="{$actionid}field_{$fieldid}[]">
        {html_options options=$field.attrib.options selected="{$field.value}"}
      </select>
    {/if}
	</div>
</div>
  {/foreach}
  {/if}

  {if isset($captcha_img)}
     {* handle captcha image *}
     <div class="row" style="margin: 1em;">
       <div class="col30" style="float: left; width: 29%;"> </div>
     <div class="col70" style="float: left; width: 70%;">
      {$captcha_img}<br/>
      <input type="text" name="{$actionid}feedback_captcha" value="" size="20"/>
    </div>
  </div>
  {/if}

<div style="width:644px; height:135px;">
	<div id="fb_title" style="float:left; width:200px;">
		{$mod->Lang('prompt_notify')}:
	</div>
	<div style="float:left; width:444px;">
		<div style="float:left; padding:5px 0;"><input type="checkbox" name="{$actionid}author_notify" value="1" {if $author_notify == 1}checked="checked"{/if}<div style="text-align:right; background:#aaff00;">
		</div>
		<div style="text-align:right; padding:5px 0;">
	<input type="submit" name="{$actionid}submit" value="{$mod->Lang('submit')}"/>
		</div>
	</div>
	</div>
</div>
<div class="clearfix"></div>

{$formend}
</div>
{/if}


Re: CGFeedback Сообщение о добавлении комментария

Posted: Mon Jun 27, 2011 11:26 am
by Fenik17
Нужна детализация ошибки. Смотрите логи веб-сервера и php. И включите debug-режим в конфиге.

Re: CGFeedback Сообщение о добавлении комментария

Posted: Mon Jun 27, 2011 11:40 am
by Justaflip
в дебаг режиме режиме после нажатия отправки вылетает

Code: Select all

Notice: Undefined variable: tmp in /home/xxxxx/data/www/sergeyapopov.net/modules/CGFeedback/action.default.php on line 155

Fatal error: Call to undefined method CGFeedback::prepare_smarty_vars() in /home/xxxxx/data/www/sergeyapopov.net/modules/CGFeedback/lib/class.cgfb_comment_notifier.php on line 77
к сожалению я не селен в php :-[

upd.

от первого избавился а вот со вторым разобраться не могу

Code: Select all

Fatal error: Call to undefined method CGFeedback::prepare_smarty_vars() in /home/xxxxx/data/www/sergeyapopov.net/modules/CGFeedback/lib/class.cgfb_comment_notifier.php on line 77
кусок кода из class.cgfb_comment_notifier.php

Code: Select all

75 |  public function notify_users(cgfb_comment& $comment)
76 |  {
77 |    $this->prepare_smarty_vars($comment);
78 |    $mod = cms_utils::get_module('CGFeedback');
79 |
80 |    $db = cmsms()->GetDb();
81 |    $query = 'SELECT DISTINCT author_email,author_name FROM '.CGFEEDBACK_TABLE_COMMENTS.'
82 |               WHERE key1 = ? AND key2 = ? AND key3 = ? AND status = ?
83 |                 and author_notify = 1';
84 |    $users = $db->GetArray($query,array($comment->key1,$comment->key2,$comment->key3,
85 |					CGFEEDBACK_STATUS_PUBLISHED));
86 |    if( !is_array($users) ) return TRUE;

Re: CGFeedback Сообщение о добавлении комментария

Posted: Mon Jun 27, 2011 2:13 pm
by Justaflip
заменил

Code: Select all

77 |    $this->prepare_smarty_vars($comment);
на

Code: Select all

77 |    self::prepare_smarty_vars($comment);
не знаю на сколько это правильно, но вроде робит... сообщение о добавлении показывает но, обратно к посту не перенаправляет