Вопрос ответ

#
Вопрос ответ
В этом модуле ошибка
ЗАМЕЧАНИЕ: Undefined index: ShowAddComment в файле /home/site/data/www/site.ru/lib/lib_2/lib_2.php (строка 23)

xsl и типовые динамические с вашего демо сайта.
Модератор
#
Re: Вопрос ответ
TDE,
Динамическая страница судя по всему модифицирована. Попробуйте в структуре сайта отредактировать узел и сохранить. Если нет, проверьте список атрибутов динамической страницы у Вас и на демо-сайте.
#
Re: Вопрос ответ
Сам модуль работает не работает только добавление ответа с сайта.
/* Добавление комментария */
// ShowAddComment == 1 - только авторизированные
// ShowAddComment == 2 - все
if (isset($_POST['add_comment'])
&& (($GLOBALS['LA']['ShowAddComment'] == 1 && $site_user_id > 0) || $GLOBALS['LA']['ShowAddComment'] == 2))
{

вот тут пишет что ошибается.
#
Re: Вопрос ответ
Вот полная версия типовой.
<?php

$InformationSystem_id = to_int($GLOBALS['LA']['InformationSystemID']);

// Получаем информацию о текущем пользователе
if (class_exists('SiteUsers'))
{
   $SiteUsers = & singleton('SiteUsers');
   $site_user_id = $SiteUsers->GetCurrentSiteUser();
}
else
{
   $site_user_id = 0;
}

/* Массив внешних параметров, передаваемых в XML */
$external_propertys = array();

/* Добавление комментария */
// ShowAddComment == 1 - только авторизированные
// ShowAddComment == 2 - все
if (isset($_POST['add_comment'])
&& (($GLOBALS['LA']['ShowAddComment'] == 1 && $site_user_id > 0) || $GLOBALS['LA']['ShowAddComment'] == 2))
{
   $param['information_items_id'] = to_int($GLOBALS['InformationResult']['item_id']);

   /* XSL шаблон для отправки уведомления администратору о добавлении комментария */
   $param['admin_email_xsl'] = to_str($GLOBALS['LA']['xsl_admin_email']);

   $xsl_add_comment = to_str($GLOBALS['LA']['xsl_add_comment']);

   /* Режим добавления комментария:
   1 - публиковать сразу,
   0 - публиковать после проверки.
   Если пользователь авторизирован - публикуем сразу. */
   if (to_bool($GLOBALS['LA']['TypeAddComment']) || $site_user_id > 0)
   {
      $param['status'] = 1;
   }
   else
   {
      $param['status'] = 0;
   }

   // Текст комментария
   $_POST['comment_text'] = nl2br(to_str($_POST['comment_text']));

   // Типографируем текст, если доступен модуль типографирования
   if (class_exists('typograph'))
   {
      $typograph = new typograph();
      $_POST['comment_text'] = $typograph->ProcessTypographic($_POST['comment_text']);
   }

   $param['comment_mail_type'] = to_int($GLOBALS['LA']['comment_mail_type']);

   // ID родительского комментария
   $param['comment_parent_id'] = to_int($_POST['comment_parent_id']);
   
   $param['comment_autor'] = htmlspecialchars(strip_tags(to_str($_POST['comment_autor'])));
   $param['comment_email'] = htmlspecialchars(strip_tags(to_str($_POST['comment_email'])));
   $param['comment_subject'] = htmlspecialchars(strip_tags(to_str($_POST['comment_subject'])));
   $param['comment_text'] = htmlspecialchars(strip_tags(to_str($_POST['comment_text'])));
   $param['comment_grade'] = to_int($_POST['comment_grade']);
   
   ob_start();
   $GLOBALS['LA_InformationSystem']->ShowAddComment('УведомлениеДобавлениеКомментария', $param);
   $external_propertys['message'] = ob_get_clean();
}

/* Отображаем элемент если не было добавления комментария, или результат добавления комментария отрицательный */
if (!isset($_POST['add_comment']) || isset($result_add_comment) && !$result_add_comment)
{
   /* XSL шаблон для отображения списка элементов информационной системы */
   $xsl_list = to_str($GLOBALS['LA']['xsl_information_system_list']);

   /* XSL шаблон для отображения элемента информационной системы */
   $xsl_item = to_str($GLOBALS['LA']['xsl_information_item']);

   $InformationResult = $GLOBALS['InformationResult'];

   /* Массив внешних параметров, передаваемых в XML */
   $external_propertys['ОтображатьСсылкуНаАрхив'] = 0;
   $external_propertys['ОтображатьСсылкиНаСледующиеСтраницы'] = 1;

   /* Массив дополнительных параметров */
   $property = array();

   /* Число элементов на страницу */
   if (isset($InformationResult['items_on_page']))
   {
      if ($InformationResult['items_on_page'] !== true)
      {
         $InformationResult['items_on_page'] = to_int($InformationResult['items_on_page']);
      }
   }
   else
   {
      $InformationResult['items_on_page'] = 10;
   }

   /* Номер, с которого начинается показ */
   if (isset($InformationResult['items_begin']))
   {
      $InformationResult['items_begin'] = to_int($InformationResult['items_begin']);
   }
   else
   {
      $InformationResult['items_begin'] = 0;
   }

   // Метод определения идентификатора информационной группы и идентификатора
   // информационного элемента по значению URI
   //$result = $GLOBALS['LA_InformationSystem']->GetInformationFromPath($InformationSystem_id);

   if ($GLOBALS['INFSYS_result'] != false)
   {
      /* Вывод списка */
      if ($GLOBALS['INFSYS_result']['item'] == false)
      {
         // Капча
         $Captcha = new Captcha();
         $external_propertys['captcha_key'] = $Captcha->GetCaptchaID();

         /* Обработка вставки информационного элемента */
         if (isset($_POST['submit_question']))
         {
            // Проверяем правильноть указания капчи
            // Для авторизированных пользователей капчу не проверяем
            if ($site_user_id > 0
            || $Captcha->ValidCaptcha(to_str($_POST['captcha_key']), to_str($_POST['captcha_keystring'])))
            {
               if ($GLOBALS['LA_InformationSystem']->confirm_information_item(date('U'), $_SERVER['REMOTE_ADDR']) == 1)
               {
                  $date= date('Y-m-d H:i:s');
         
                  /* Определяем группу (если задана)
                  Принимает в качестве параметра ID информационной системы*/
                  //$result = $GLOBALS['LA_InformationSystem']->GetInformationFromPath($InformationSystem_id);
         
                  $group_id = to_int($GLOBALS['INFSYS_result']['group']);
         
                  // Статус вновь добавленного элемента
                  // 0 - не активен (необходимо вручную проверить и включить)
                  // 1 - активен, виден сразу после публикации
                  $item_status = to_int($GLOBALS['LA']['ItemStatus']);
         
                  // Текст сообщения
                  $text = nl2br(htmlspecialchars(strip_tags(to_str($_POST['text_item']))));
         
                  // Типографируем текст, если доступен модуль типографирования
                  if (class_exists('typograph'))
                  {
                     $typograph = new typograph();
                     $text = $typograph->ProcessTypographic($text);
                  }
                  
                  $param = array();
                  $param['site_users_id'] = $site_user_id;
         
                  // Вставляем запись
                  $question_id = $GLOBALS['LA_InformationSystem']->InsertInformationItems(0,   0,
                  $InformationSystem_id, $group_id, $date,   htmlspecialchars(strip_tags(to_str($_POST['subject']))), '',
                  $item_status, $text, '', 0, to_str($_SERVER['REMOTE_ADDR']), '', 1, '', '', '', '', $param);
         
                  $row = $GLOBALS['LA_InformationSystem']->GetInformationSystemItems($question_id);

                  // Вставляем в дополнительные свойства автора, его email и id
                  $GLOBALS['LA_InformationSystem']->InsertInformationPropertysItems(0, 0,   to_int($GLOBALS['LA']['autor_property_id']), $question_id, htmlspecialchars(strip_tags(to_str($_POST['autor']))));

                  $GLOBALS['LA_InformationSystem']->InsertInformationPropertysItems(0, 0,   to_int($GLOBALS['LA']['email_property_id']), $question_id, htmlspecialchars(strip_tags(to_str($_POST['email']))));
                  
                  // Если пользователь зерегистрирован, получаем информацию
                  if (class_exists('SiteUsers') && !empty($site_user_id))
                  {
                     $row_site_user = $SiteUsers->GetSiteUser($site_user_id);
                     
                     if(!empty($row_site_user['site_users_name']) && !empty($row_site_user['site_users_surname']))
                     {
                        $site_user_name = $row_site_user['site_users_name'].' '.$row_site_user['site_users_surname'];
                     }
                     else
                     {
                        $site_user_name = $row_site_user['site_users_login'];
                     }

                     $site_user_email = $row_site_user['site_users_email'];
                  }
                  else
                  {
                     $site_user_name = htmlspecialchars(strip_tags(to_str($_POST['autor'])));
                     $site_user_email = htmlspecialchars(strip_tags(to_str($_POST['email'])));
                  }

                  ob_start();
                  if ($item_status == 0)
                  {
                  ?>
                  <p>Благодарим Вас, <?php echo $site_user_name?>!
                  <br />Ваша запись принята. После проверки Администратором она станет доступной!
                  </p>
                  <?php
                  }
                  else
                  {
                  ?>
                  <p>Благодарим Вас, <?php echo $site_user_name?>!
                  <br />Ваша запись принята и опубликована!
                  </p>
                  <?php    
                  }
                  $external_propertys['message'] = ob_get_clean();
         
                  // Отправка письма администратору
                  $message = "Доброе время суток, уважаемый Администратор!\n\nНа сайт, поддерживаемый системой управления сайтом HostCMS, была добавлена запись:\n";
                  $message .= "Автор: ".$site_user_name."\n";
                  $message .= "E-mail: ".$site_user_email."\n";
                  $message .= "Тема: ".htmlspecialchars(strip_tags(to_str($_POST['subject'])))."\n";
                  $message .=   "Информационная система: ".$row['information_systems_name']."\n";
                  $message .= "Информационный элемент: ".$row['information_items_name']."\n";
                  $message .=   "Редактировать: http://".to_str($_SERVER['HTTP_HOST'])."/admin/InformationSystems/InformationSystems.php?admin_forms_id=12&operation=edit_group_item&check_1_{$question_id}=1&information_system_id={$InformationSystem_id}\n";
                  $DateClass = new DateClass();
                  $message .= "Дата: ".$DateClass->datetime_format($date)."\n";
                  $message .= "IP-адрес: ".to_str($_SERVER['REMOTE_ADDR'])."\n";
                  $message .= "Вопрос: ".htmlspecialchars(strip_tags(to_str($_POST['text_item'])));
         
                  // Кодируем тему в Base64
                  $subject = '=?' . SITE_CODING . '?B?' . base64_encode('Добавление вопроса') . '?=';
         
                  mail(EMAIL_TO, $subject, $message, "From: ".EMAIL_TO."\r\nContent-Type: text/html; charset=Windows-1251\n");
               }
               else // нельзя добавлить объявление - прошло мало времени
               {
                  $external_propertys['error'] = 'Запись не может быть добавлена, т.к. прошло мало времени с момента Вашего последнего добавления вопроса!';
               }
            }
            // Ошибка добавления записи
            else
            {
               $external_propertys['error'] = 'Вы неверно ввели число подтверждения отправки формы!';

               $external_propertys['fio'] = htmlspecialchars(strip_tags(to_str($_POST['autor'])));
               $external_propertys['email'] = htmlspecialchars(strip_tags(to_str($_POST['email'])));
               $external_propertys['subject'] = htmlspecialchars(strip_tags(to_str($_POST['subject'])));
               $external_propertys['text_item'] = htmlspecialchars(strip_tags(to_str($_POST['text_item'])));
            }
         }

         /* Отображаем информационную систему */
         $GLOBALS['LA_InformationSystem']->ShowInformationSystem($InformationSystem_id, $GLOBALS['INFSYS_result']['group'], $xsl_list, $InformationResult['items_on_page'], $InformationResult['items_begin'], $external_propertys, $property);
      }
      else
      {
         /* Определяем идентификатор информационного элемента */
         $item_id = $GLOBALS['LA_InformationSystem']->GetIdInformationItem($GLOBALS['INFSYS_result']['item'], $GLOBALS['INFSYS_result']['group'], $InformationSystem_id);

         /* Выводим элемент информационной системы */
         $GLOBALS['LA_InformationSystem']->ShowInformationSystemItem($item_id, $xsl_item, $external_propertys);
      }
   }
}
Модератор
#
Re: Вопрос ответ
HostCMS,
Я же Вам написал выше что проверить, при чем здесь код типовой.
Вот уже сам с собой разговариваю
Авторизация