htmlbook.ru - настольная книга администратора

Файловый Архив

  • Неограниченное количество категорий и суб-категорий
  • Настройки прав доступа по группам
  • Настройки прав доступа по каждой категории
  • Предпросмотр медиа файлов: FLV, IFLV, F4A, F4V, MP4, MP3, MOV и других...
  • Мультизагрузка файлов - SWFUploader
  • Добавление файлов с сервера
Подробности и история обновлений продукта в этой теме
Loading

Go Back   форум vBSupport.org > >
Register Изображения Меню vBsupport Files Manager Аллея Звёзд Реклама на форуме Search Today's Posts Mark Forums Read
  • Мемберка
  • Администраторам
  • Premoderation
  • For English speaking users
  • Изменения в правах
  • Каталог Фрилансеров
Пароли на скачивание файлов в Member Area меняются автоматически каждый день
Если вам нужно скачать какой то скрипт, за паролем ко мне в ЛС
привет какирам kerk
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота.
Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
На форуме введена премодерация ВСЕХ новых пользователей

Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
for English speaking users:
You may be surprised with restriction of access to the attachments of the forum. The reason is the recent change in vbsupport.org strategy:

- users with reputation < 10 belong to "simple_users" users' group
- if your reputation > 10 then administrator (kerk, Luvilla) can decide to move you into an "improved" group, but only manually

Main idea is to increase motivation of community members to share their ideas and willingness to support to each other. You may write an article for the subject where you are good enough, you may answer questions, you may share vbulletin.com/org content with vbsupport.org users, receiving "thanks" equal your reputation points. We should not only consume, we should produce something.

- you may:
* increase your reputation (doing something useful for another members of community) and being improved
* purchase temporary access to the improved category:
10 $ for 3 months. - this group can download attachments, reputation/posts do not matter.
20 $ for 3 months. - this group can download attachments, reputation/posts do not matter + adds eliminated + Inbox capacity increased + files manager increased permissions.

Please contact kerk or Luvilla regarding payments.

Important!:
- if your reputation will become less then 0, you will be moved into "simple_users" users' group automatically.*
*for temporary groups (pre-paid for 3 months) reputation/posts do not matter.
Не можете скачать вложение?
Изменения в правах групп пользователей
внимательно читаем эту и эту темы
Короткая версия - тут
Уважаемые пользователи!

На форуме открыт новый раздел "Каталог фрилансеров"

и отдельный раздел для платных заказов "Куплю/Закажу"

 
 
Old  
Fluder
Простоузер
 
Fluder's Avatar
Default [FAQ] Создание темы прямым запросом.. 0

Вот такая вот трабла:
Имеется свой движок, и комментарии хочется сделать на вобле. То есть при создании поста на моей страничке, параллельно создавалась тема и сообщение в самой вобле.

Поковырявшись в сорцах newthread.php я пришёл в ужас (без пол литры не разберёш )
Т.е мне нужно передать инфу со своей страницы а не по средствам кнопки "создать новую тему". Ребят помогите плиз, если это обсуждалось тогда дико извиняюсь, но пока не нашёл.
 
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
Old  
sequence
На пенсии
 
sequence's Avatar
Cool 23

Ничего сложного...
Итак перед нами стоит задача создать тему на форуме из скрипта вне пределов движка.

При решении данной задачи мы момжем пойти двумя путями:
1. С помощью скрипта вставить данные о новой теме непосредственно в базу
2. Использовать встроенные функции движка для создания темы.

тут собственно изобретать велосипед не строит правильный ответ пункт 1

Шаг первый, нам необходимо инициализировать в скрипте все необходимые нам переменные, объекты и функции форума.

для этого создаем такой код
PHP Code:
$cwd getcwd(); //запоминаем нашу текущую директорию
chdir('./forum'); //переходим в директорию форума (путь относительно исполняемого скрипта)
require_once('./global.php');
require_once(
'./includes/class_dm.php');
require_once(
'./includes/class_dm_threadpost.php'); 
В vbulletin существует специальный объект "Новая тема форума" который создается при помощи vB_DataManager_Thread_FirstPost()

Шаг второй, создаем объект и необходимые нам данные

PHP Code:
$threaddm = new vB_DataManager_Thread_FirstPost($vbulletinERRTYPE_STANDARD);
 
$forumid 2// индификатор раздела в котором будет создана тема
$postuserid 1//пользователь от которого будет создана тема
$userid 1//пользователь от которого будет создано сообщение
$username 'Sequence'//имя пользователя, которое будет отображатся в списке тем
$pagetext 'Сообщение тут';
$title 'Заголовок тут';
$visible '1'
прошу обратить внимание на переменные $postuserid и $userid. Можно записывать темы и сообщения на разных пользователей. Поэксперементируйте и сами решите надо это вам или нет.

Шаг три. Создаем объект и сохраняем изменения:
PHP Code:
$threaddm->do_set('forumid'$forumid);
$threaddm->do_set('postuserid'$postuserid);
$threaddm->do_set('userid'$userid);
$threaddm->do_set('username'$username);
$threaddm->do_set('pagetext'$pagetext);
$threaddm->do_set('title'$title);
$threaddm->do_set('visible'$visible);
$threaddm->save(); 
дополнительными параметрами при создании могут быть
PHP Code:
$threaddm->do_set('allowsmilie'''); //включить смайлики, значения 1/0
$threaddm->do_set('dateline'''); //время создания темы, переменная типа timestamp
$threaddm->do_set('views'''); //количество просмотров темы
$threaddm->do_set('open'''); //закрытая тема 0, открытая 1 
Собственно всё... тема созданна!
Единственное что осталось сделать - это обновить счетчик новых тем.
PHP Code:
require_once('./includes/functions_databuild.php'); 
build_forum_counters($forumid);
 
chdir($cwd); //конец, возвращаем рабочую директорию скрипта обратно 
PS Если для дальнейшей работы скрипта нам потребуется данные о только что созданной теме, то её индификатор treadid можно получить заменив
PHP Code:
$new_treadid $threaddm->save(); 
 
Old  
Fluder
Простоузер
 
Fluder's Avatar
Default 0

Спасибки , сейчас буду пробовать ..



require_once('./includes/class_dm.php');
require_once('./includes/class_dm_threadpost.php');
этих файлов в 3.09 нету. Этот вариант для 3.5? Если да подскажите вариант для 3.0*
Буду очень благодарен..

Last edited by Fluder : 11-28-2005 at 01:56 AM. Reason: Добавлено сообщение
 
Old  
vGhost
Продвинутый
Default 0

Как не странно но там не на много сложнее только делается не через методы объекта, а через массив и одну ф-ю насколько я помню. Проблема в том что у меня уже нет 3.0.х а по памяти врятли напишу.
Если даш ссылку могу написать чё к чему.
 
Old  
DiNo
Простоузер
Question 0

Quote:
Originally Posted by sequence
PS Если для дальнейшей работы скрипта нам потребуется данные о только что созданной теме, то её индификатор treadid можно получить заменив
PHP Code:
$new_treadid $threaddm->save(); 
Добавление работает. Спасибо.
Объясните по человечески как получить индификатор темы. ЧТо на что менять?
 
Old  
sequence
На пенсии
 
sequence's Avatar
Default 0

$threaddm->save(); - возвращает индификатор темы
 
Old  
KlyXa
Простоузер
Default 0

Слых а почему когда я сделал все как ты писал выдает форум строку

Требуемое поле allowsmilie пропущено, или введено некорректное значение.

хотя я просто копировал $threaddm->do_set('allowsmilie', ''); че за?
 
Old  
atomar
Продвинутый
 
atomar's Avatar
Default 0

sequence, большое спасибо за объяснения.

Я создал файл save.php, и написал в него следующее:

PHP Code:
<?
$cwd 
getcwd(); //запоминаем нашу текущую директорию

chdir('../forum2'); //переходим в директорию форума (путь относительно 

исполняемого скрипта)
require_once(
'./global.php');
require_once(
'./includes/class_dm.php');
require_once(
'./includes/class_dm_threadpost.php'); 

$threaddm = new vB_DataManager_Thread_FirstPost($vbulletinERRTYPE_STANDARD);
 
$forumid 2// индификатор раздела в котором будет создана тема
$postuserid 1//пользователь от которого будет создана тема
$userid 1//пользователь от которого будет создано сообщение
$username 'atomar'//имя пользователя, которое будет отображатся в списке тем
$pagetext 'Сообщение тут';
$title 'Заголовок тут';
$visible '1'
$threaddm->do_set('forumid'$forumid);
$threaddm->do_set('postuserid'$postuserid);
$threaddm->do_set('userid'$userid);
$threaddm->do_set('username'$username);
$threaddm->do_set('pagetext'$pagetext);
$threaddm->do_set('title'$title);
$threaddm->do_set('visible'$visible);
$threaddm->save(); 
?>
Но выдавало ошибку:
A required field called allowsmilie is missing or has an invalid value.

Тогда я перед
PHP Code:
$threaddm->save(); 
добавил строку:
PHP Code:
$threaddm->do_set('allowsmilie'1); 
И мне выдало такую ошибку:
Notice: Undefined index: HTTP_REFERER in s:\home\152.123.83.42\www\forum2\includes\class_core.php on line 1574
Fatal error: Cannot pass parameter 2 by reference in s:\home\152.123.83.42\www\forum2\save.php on line 25


Кто-нибудь знает из-за чего это может быть и как решить?
 
Old  
GTR
Простоузер
 
GTR's Avatar
Default 0

Вообщем то я просто поставил параметр allowsmiles необязательным
PHP Code:
Фаил class_dm_threadpost.php
 
class vB_DataManager_Thread_FirstPost extends vB_DataManager_Thread
...
'allowsmilie'   => array(TYPE_UINTREQ_NO)
... 
А вот еще получилось так, что тема то создается, а информация в форуме о состоянии не обновляется, т.е. ни последний пост, ни кол-во тем, ни кол-во сообщений не меняяется.

Покопался в классах - чето не понял где там что для обновления информации, решил просто переписывать базу.

PHP Code:
 
//after -------------- $new_treadid = $threaddm->save(); --------------------
 
//$forumid = 2; // индификатор раздела в котором будет создана тема 
//$postuserid = 1; //пользователь от которого будет создана тема 
//$userid = 1; //пользователь от которого будет создано сообщение 
//$username = 'Newser'; //имя пользователя, которое будет отображатся в списке тем 
//$title = 'Заголовок тут'; 
//$new_treadid = $threaddm->save(); // идентификатор созданой темы
 
// ----------------------------- Собственно начало -------------------------------
// Имеется в виду что вы подключили БД с форумом и находитесь в 
// базе форума
 
$np_vbb_pref 'vbb_'// устанавливаем, какие префиксы в БД используются форумом

$query 'SELECT `replycount`,`threadcount` FROM `'.$np_vbb_pref.'forum` WHERE `forumid` = '.$forumid.' LIMIT 1';

$R mysql_query($query$L);

$row mysql_fetch_array($R);
$row["replycount"]++;
$row["threadcount"]++;
 
// Получили последние данные у форума
 
$query 'UPDATE `'.$np_vbb_pref.'forum` SET 
  `replycount`='
.$row["replycount"].', 
  `threadcount`='
.$row["threadcount"].', 
  `lastpost`='
.time().',
  `lastposter`=\''
.$username.'\',
  `lastthread`=\''
.$title.'\',
  `lastthreadid`='
.$new_treadid.'
  WHERE `forumid` = '
.$forumid.'
  ;'
;
$R mysql_query($query$L); // сообтвенно обновили информацию о состоянии форума.
 
mysql_close(); 
Но это что касается информации о форуме, но еще остается информация о юзере, которая делается подобным макаром.
 
Old  
GRIF666
Продвинутый
 
GRIF666's Avatar
Default 0

А как создать сообщение в уже существующей теме???
 
 

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off




All times are GMT +4. The time now is 06:31 AM.


Powered by vBulletin® Version 3.8.1
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.