Перейти к содержимому


и нужен еще один совет - где лучше всего отвечать на вопросы своих же сотрудников по базе


Сообщений в теме: 6

#1 tel

    Активный участник

  • Пользователи
  • PipPipPip
  • 187 сообщений

Отправлено 20 Март 2011 - 14:28

ситуация примерно такая же как и у вас (естественно в разы меньше) - но тем не менее.

много чего напрограммировали в базе, написали хелп - но т.к. пользователей несколько десятков и из разных городов - то им действительно тяжело во всем разобраться. к тому же глюки периодически вылезают и их хотелось бы отлавливать.

соответственно нужно какаято онлайн площадка - для помощи, обсуждений, обучений - по базе.

что вроде Вашего форума - но чуть проще (скорее всего без регистраций, но с возможность. прикладывания файлов).

есть вариант использовать ваш же форум из КС (представление). Но там какой то баг - в "последнее соообщение" - показывается не последнее сообщение, а сообщение (+ дата + автор) - ПЕРВОГО сообщения.

вы можете выложить правильный код?

#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 21 Март 2011 - 10:54

Да, действительно, там ошибка в коде.

Правильный код:
  $topic = $_REQUEST['topic'];
  $post = $_REQUEST['post'];
  
  // Добавление темы	
  if ($_REQUEST['act']=="new_topic")
	{
	  $insert_data["Заголовок темы"] = $_REQUEST['header'];
	  $insert_data["Время создания"] = date("Y-m-d H:i:00");
	  $insert_data["Автор темы"] = $user['id'];
	  $topic = insert_query($insert_data, "Темы форума");
	  
	  $insert_data["Тема"] = $topic;
	  $insert_data["Сообщение"] = $_REQUEST['message'];
	  $insert_data["Время создания"] = date("Y-m-d H:i:00");
	  $insert_data["Автор сообщения"] = $user['id'];
	  insert_query($insert_data, "Сообщения форума");
	  
	  header("Location:".$config['site_root']."/report.php?id=1&topic=".$topic);
	}
  
  // Добавление сообщения
  if ($_REQUEST['act']=="new_post")
	{
	  $insert_data["Тема"] = $topic;
	  $insert_data["Сообщение"] = $_REQUEST['message'];
	  $insert_data["Время создания"] = date("Y-m-d H:i:00");
	  $insert_data["Автор сообщения"] = $user['id'];
	  insert_query($insert_data, "Сообщения форума");
	  
	  header("Location:".$config['site_root']."/report.php?id=1&topic=".$topic);
	}
  
  // Редактирование сообщения
  if ($_REQUEST['act']=="save_post")
	{
	  $update_data["Сообщение"] = $_REQUEST['message'];
	  update_query($update_data, "Сообщения форума", "id=".$post);
	  
	  header("Location:".$config['site_root']."/report.php?id=1&topic=".$topic);
	}
  
  // Удаление сообщения
  if ($_REQUEST['act']=="del_post")
	{
	  delete_query("Сообщения форума", "id=".$post);
	  
	  header("Location:".$config['site_root']."/report.php?id=1&topic=".$topic);
	}
  
  // Удаление темы
  if ($_REQUEST['act']=="del_topic")
	{
	  delete_query("Темы форума", "id=".$topic);
	  delete_query("Сообщения форума", "`Тема`=".$topic);
	  
	  header("Location:".$config['site_root']."/report.php?id=1");
	}
  
  
  // ---- Вывод тем и сообщений ----
  
  if ($post)  // Вывод сообщения для редактирования
	{
	  $sqlQuery = "SELECT * FROM ".DATA_TABLE."68 WHERE id=".$post;
	  $result = mysql_query($sqlQuery);
	  $row = mysql_fetch_array($result);
	  $message = $row['f753'];
	}
	elseif ($topic and $topic!="new")  // Список сообщений в теме
	{
	  $sqlQuery = "SELECT * FROM ".DATA_TABLE."67 WHERE id=".$topic;
	  $result = mysql_query($sqlQuery);
	  $row = mysql_fetch_array($result);
	  $tema = $row['f749'];
	  
	  $sqlQuery = "SELECT * FROM ".DATA_TABLE."68 WHERE status=0 and f752=".$topic." ORDER BY id";
	  $result = mysql_query($sqlQuery);
	  while ($row = mysql_fetch_array($result))
		{
		  $data['id_message'] = $row['id'];
		  $data['content_message'] = str_replace("\r\n", "<br>", $row['f753']);
		  $data['date_message'] = form_local_time($row['f754'],1);
		  $data['avtor_user_id'] = $row['f758'];
		  
		  // автор сообщения
		  $sqlQuery = "SELECT * FROM ".USERS_TABLE." WHERE id='".$row['f758']."'";
		  $result2 = mysql_query($sqlQuery);
		  $row2 = mysql_fetch_array($result2);
		  $sqlQuery = "SELECT * FROM ".DATA_TABLE."46 WHERE f553='".$row2['login']."' AND f553!=''";
		  $result2 = mysql_query($sqlQuery);
		  if ($row2 = mysql_fetch_array($result2))
			{
			  $data['avtor_id'] = $row2['id'];
			  $data['avtor_message'] = $row2['f483'];
			  $data['avtor_foto'] = urlencode($row2['f558']);
			}
		  
		  $lines[] = $data;
		}
	}
	else // Список тем
	{
	  $sqlQuery = "SELECT a.*, count(b.id) as cnt_posts FROM ".DATA_TABLE."67 a, ".DATA_TABLE."68 b WHERE a.id=f752 and a.status=0 and b.status=0 GROUP BY a.id ORDER BY max(f754) DESC";
	  $result = mysql_query($sqlQuery);
	  while ($row = mysql_fetch_array($result))
		{
		  $data['id_topic'] = $row['id'];
		  $data['header_topic'] = $row['f749'];
		  $data['cnt_posts'] = $row['cnt_posts'];
		  
		  // автор темы
		  $sqlQuery = "SELECT * FROM ".USERS_TABLE." WHERE id='".$row['f757']."'";
		  $result2 = mysql_query($sqlQuery);
		  $row2 = mysql_fetch_array($result2);
		  $sqlQuery = "SELECT * FROM ".DATA_TABLE."46 WHERE f553='".$row2['login']."' AND f553!=''";
		  $result2 = mysql_query($sqlQuery);
		  if ($row2 = mysql_fetch_array($result2))
			{
			  $data['avtor_topic'] = $row2['f483'];
			  $data['avtor_topic_id'] = $row2['id'];
			}
		  
		  // дата последнего сообщения
		  $sqlQuery = "SELECT * FROM ".DATA_TABLE."68 WHERE f752 = ".$row['id']." ORDER BY f754 DESC LIMIT 0,1";
		  $result2 = mysql_query($sqlQuery);
		  $row2 = mysql_fetch_array($result2);
		  $data['date_last_message'] = form_local_time($row2['f754'],1);
		  
		  // автор последнего сообщения
		  $sqlQuery = "SELECT * FROM ".USERS_TABLE." WHERE id='".$row2['f758']."'";
		  $result2 = mysql_query($sqlQuery);
		  $row2 = mysql_fetch_array($result2);
		  $sqlQuery = "SELECT * FROM ".DATA_TABLE."46 WHERE f553='".$row2['login']."' AND f553!=''";
		  $result2 = mysql_query($sqlQuery);
		  if ($row2 = mysql_fetch_array($result2))
			{
			  $data['avtor_last_message'] = $row2['f483'];
			  $data['avtor_last_message_id'] = $row2['id'];
			}
		  
		  $lines[] = $data;
		}
	}
  
  
  $smarty->assign("topic", $topic);
  $smarty->assign("post", $post);
  $smarty->assign("lines", $lines);
  $smarty->assign("tema", $tema);
  $smarty->assign("message", $message);


#3 Bob_chemist

    Активный участник

  • Пользователи
  • PipPipPip
  • 56 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 06 Апрель 2012 - 13:03

видимо, после какого-то изменения ревизии или версии, в Вашей же демонстрационной базе, в представлении Форум не показывается фото написавшего сообщение.
ошибка, очевидно, в строке 120:
<a href="{$config.site_root}/view_line.php?table=46&line={$data.avtor_id}"><img src="{$config.site_root}/image.php?table=46&line={$data.avtor_id}&field=558&image={$data.avtor_foto}&size=50x60"></a>
файла image.php в программе больше нет. Вместо него вроде бы работает open_file.php, но параметр size он игнорирует. В результате картинки вылезают как есть.

#4 Leskov

    Активный участник

  • Пользователи
  • PipPipPip
  • 95 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 06 Апрель 2012 - 13:17

Можно уточнить, куда встраивать этот код (на свой сайт?)
или как сделать представление вашего форума для своих сотрудников ?

Сообщение отредактировал Leskov: 06 Апрель 2012 - 13:18


#5 Гость_Roman_*

  • Гости

Отправлено 06 Апрель 2012 - 13:35

Просмотр сообщенияBob_chemist (06 Апрель 2012 - 13:03) писал:

видимо, после какого-то изменения ревизии или версии, в Вашей же демонстрационной базе, в представлении Форум не показывается фото написавшего сообщение.
ошибка, очевидно, в строке 120:
<a href="{$config.site_root}/view_line.php?table=46&line={$data.avtor_id}"><img src="{$config.site_root}/image.php?table=46&line={$data.avtor_id}&field=558&image={$data.avtor_foto}&size=50x60"></a>

файла image.php в программе больше нет. Вместо него вроде бы работает open_file.php, но параметр size он игнорирует. В результате картинки вылезают как есть.

Да, такая ошибка наблюдается в стандартной конфигурации. В ближайшее время исправим. В представлении форума необходимо заменить вывод картинок через функцию form_display_type(НОМЕР_ПОЛЯ, НОМЕР_СТРОКИ).
Если тип поля изображение, то функция вернёт превью, созданное из картинки в строке, с размерами, указанными в настройках поля.

#6 Bob_chemist

    Активный участник

  • Пользователи
  • PipPipPip
  • 56 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 07 Апрель 2012 - 00:38

Просмотр сообщенияRoman (06 Апрель 2012 - 13:35) писал:

Да, такая ошибка наблюдается в стандартной конфигурации. В ближайшее время исправим. В представлении форума необходимо заменить вывод картинок через функцию form_display_type(НОМЕР_ПОЛЯ, НОМЕР_СТРОКИ).
Если тип поля изображение, то функция вернёт превью, созданное из картинки в строке, с размерами, указанными в настройках поля.
а где именно вносить исправления?

#7 Гость_Roman_*

  • Гости

Отправлено 07 Апрель 2012 - 10:01

Немного ввёл в заблуждение.
Стоит исправить 95-ю строчку в подготовке данных на
$data['avtor_foto'] = utf2eng($row2['f558']);
и 120-ю строчку в отображении
<a href="{$config.site_root}/view_line.php?table=46&line={$data.avtor_id}"><img src="{$config.site_root}/cache/46_558_{$data.avtor_id}_{$data.avtor_foto}.png"></a>
После этого картинки отображаются верно.





Количество пользователей, читающих эту тему: 2

0 пользователей, 2 гостей, 0 анонимных