ситуация примерно такая же как и у вас (естественно в разы меньше) - но тем не менее.
много чего напрограммировали в базе, написали хелп - но т.к. пользователей несколько десятков и из разных городов - то им действительно тяжело во всем разобраться. к тому же глюки периодически вылезают и их хотелось бы отлавливать.
соответственно нужно какаято онлайн площадка - для помощи, обсуждений, обучений - по базе.
что вроде Вашего форума - но чуть проще (скорее всего без регистраций, но с возможность. прикладывания файлов).
есть вариант использовать ваш же форум из КС (представление). Но там какой то баг - в "последнее соообщение" - показывается не последнее сообщение, а сообщение (+ дата + автор) - ПЕРВОГО сообщения.
вы можете выложить правильный код?
и нужен еще один совет - где лучше всего отвечать на вопросы своих же сотрудников по базе
Автор tel, 20 марта 2011 14:28
Сообщений в теме: 6
#1
Отправлено 20 Март 2011 - 14:28
#2
Отправлено 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
Отправлено 06 Апрель 2012 - 13:03
видимо, после какого-то изменения ревизии или версии, в Вашей же демонстрационной базе, в представлении Форум не показывается фото написавшего сообщение.
ошибка, очевидно, в строке 120:
ошибка, очевидно, в строке 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
Отправлено 06 Апрель 2012 - 13:17
Можно уточнить, куда встраивать этот код (на свой сайт?)
или как сделать представление вашего форума для своих сотрудников ?
или как сделать представление вашего форума для своих сотрудников ?
Сообщение отредактировал Leskov: 06 Апрель 2012 - 13:18
#5 Гость_Roman_*
Отправлено 06 Апрель 2012 - 13:35
Bob_chemist (06 Апрель 2012 - 13:03) писал:
видимо, после какого-то изменения ревизии или версии, в Вашей же демонстрационной базе, в представлении Форум не показывается фото написавшего сообщение.
ошибка, очевидно, в строке 120:
файла image.php в программе больше нет. Вместо него вроде бы работает open_file.php, но параметр size он игнорирует. В результате картинки вылезают как есть.
ошибка, очевидно, в строке 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
Отправлено 07 Апрель 2012 - 00:38
Roman (06 Апрель 2012 - 13:35) писал:
Да, такая ошибка наблюдается в стандартной конфигурации. В ближайшее время исправим. В представлении форума необходимо заменить вывод картинок через функцию form_display_type(НОМЕР_ПОЛЯ, НОМЕР_СТРОКИ).
Если тип поля изображение, то функция вернёт превью, созданное из картинки в строке, с размерами, указанными в настройках поля.
Если тип поля изображение, то функция вернёт превью, созданное из картинки в строке, с размерами, указанными в настройках поля.
#7 Гость_Roman_*
Отправлено 07 Апрель 2012 - 10:01
Немного ввёл в заблуждение.
Стоит исправить 95-ю строчку в подготовке данных на
Стоит исправить 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>
После этого картинки отображаются верно.
Количество пользователей, читающих эту тему: 8
0 пользователей, 8 гостей, 0 анонимных













