UID для ббкода

Форум для авторов модов для phpBB 3.0.x. Здесь можно попросить помощи в разработке у коллег.

UID для ббкода

Сообщение Serious 06.10.2008 20:49

Подскажите, по какому принципу и на основании какой информации генерируется этот самый uid для тега?
Аватара пользователя
Serious
phpBB 1.0.0
 
Сообщения: 8
Зарегистрирован: 18.07.2008 23:42


Re: UID для ббкода

Сообщение rxu 07.10.2008 3:36

Код: Выделить всё
$bbcode_uid = substr(base_convert(unique_id(), 16, 36), 0, BBCODE_UID_LEN);
Изображение
Аватара пользователя
rxu
phpBB Guru
 
Сообщения: 4624
Зарегистрирован: 12.05.2006 17:16
Откуда: Красноярск

Re: UID для ббкода

Сообщение Serious 07.10.2008 17:10

Спасибо, уже лучше ;)

Теперь возник вопрос по функции
Код: Выделить всё
/**
* Return unique id
* @param string $extra additional entropy
*/
function unique_id($extra = 'c')
{
   static $dss_seeded = false;
   global $config;

   $val = $config['rand_seed'] . microtime();
   $val = md5($val);
   $config['rand_seed'] = md5($config['rand_seed'] . $val . $extra);

   if ($dss_seeded !== true && ($config['rand_seed_last_update'] < time() - rand(1,10)))
   {
      set_config('rand_seed', $config['rand_seed'], true);
      set_config('rand_seed_last_update', time(), true);
      $dss_seeded = true;
   }

   return substr($val, 4, 16);
}

Не совсем понимаю, как она работает. Допустим, у меня есть текст сообщения из базы данных, в него нужно руками вставить тег с uid'ом. Как это сделать? BBCODE_UID_LEN по умолчанию равен 8, правильно я понял?
Аватара пользователя
Serious
phpBB 1.0.0
 
Сообщения: 8
Зарегистрирован: 18.07.2008 23:42

Re: UID для ббкода

Сообщение rxu 07.10.2008 17:33

Вам надо понять, как это работает, или uid получить? У вас готовое выражение есть, вычисляете и используете, в чём проблема? BBCODE_UID_LEN - это длина uid, как явствует из названия.
Изображение
Аватара пользователя
rxu
phpBB Guru
 
Сообщения: 4624
Зарегистрирован: 12.05.2006 17:16
Откуда: Красноярск

Re: UID для ббкода

Сообщение Палыч 07.10.2008 19:24

Serious писал(а):Не совсем понимаю, как она работает.

Тайна сия - велика есть. 8-)
Use the secure hash to generate BBCODE_UIDs


Serious писал(а):BBCODE_UID_LEN по умолчанию равен 8, правильно я понял?

Задаётся в файле constants.php
Код: Выделить всё
// BBCode UID length
define('BBCODE_UID_LEN', 8);
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Никогда не бойся делать то, что ты пока не умеешь. Помни, что Ковчег был построен любителем. Профессионалы строили Титаник...
Аватара пользователя
Палыч
Просто Палыч
 
Сообщения: 6501
Зарегистрирован: 24.05.2006 22:20
Откуда: Питер

Re: UID для ббкода

Сообщение Serious 07.10.2008 21:31

Надо получить уид во внешнем скрипте. Откуда берется $config['rand_seed']? И можно ли забить на весь код, кроме
Код: Выделить всё
$val = $config['rand_seed'] . microtime();
? Задача состоит в добавлении одного или нескольких ббкодов во множество сообщений прямо в текст сообщения из бд.
Аватара пользователя
Serious
phpBB 1.0.0
 
Сообщения: 8
Зарегистрирован: 18.07.2008 23:42

Re: UID для ббкода

Сообщение Serious 10.10.2008 19:01

Подскажите, пожалуйста.
Аватара пользователя
Serious
phpBB 1.0.0
 
Сообщения: 8
Зарегистрирован: 18.07.2008 23:42

Re: UID для ббкода

Сообщение rxu 10.10.2008 20:17

Serious писал(а):Откуда берется $config['rand_seed']?

Из таблицы phpbb_config. Генерируется в этой же функции.
Serious писал(а):И можно ли забить на весь код

Не думаю. Лучше использовать тем же способом, как это сделано в phpBB3.
Изображение
Аватара пользователя
rxu
phpBB Guru
 
Сообщения: 4624
Зарегистрирован: 12.05.2006 17:16
Откуда: Красноярск

Re: UID для ббкода

Сообщение Otto fon f. 19.10.2008 20:44

Задача состоит в добавлении одного или нескольких ббкодов во множество сообщений прямо в текст сообщения из бд.

заходишь в phpbb_posts, находишь нужное сообщение, смотришь какой bbcode_uid в этом сообщении и добавляешь его в тег
Otto fon f.
phpBB 1.0.0
 
Сообщения: 5
Зарегистрирован: 25.03.2008 1:04


Вернуться в Для авторов (phpBB 3.0.x)

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0