VBsupport перешел с домена .ORG на родной .RU
Ура!
Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей
Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже: Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота. Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
Обновляюсь 3.7.5 -> 4.1.10 альбомы пользователей теряются, т.е. в 3.7.5 файлы альбомов хранятся в отдельной папке, а в 4.1.10 как вложения, сами ссылки в альбомах поменялись, а файлы в старой папке так и остались... Можно ли как-нибудь автоматически переименовать эти файлы в соответствии с новыми ссылками и скопировать во вложения или может это должно было само произойти во время обновления ?
mppks добавил 18.03.2012 в 09:58
Решил проблему небольшим скриптом, будет ли отличаться ваш contenttypeid для фоток альбома от моего, я не знаю, я просто посмотрел в базе - какой он для файлов из папки альбома. Если кто-нибудь знает, как узнать какой contenttypeid к чему относится, буду благодарен за инфу.
Скрипт топорный, но работает.. для одноразового скрипта больше, думаю, и не нужно.
После отработки скрипта нужно обновить миниатюры вложений.
PHP Code:
<?php
/* Перенос файлов альбомов пользователей в папку с вложениями, проверено при переходе с vBulletin 3.7.5 на vBulletin 4.1.10 */
/* Файл скрипта нужно положить в корень форума или писать все пути от той папки в которой лежит файл */
define("USER", "user");
define("PASS", "password");
define("HOST", "localhost");
define("DB" , "dbname");
define("PATH375", "customimages/0/"); // Путь до файлов альбома 3.7.5 - у меня была 1 папка с файлами
define("PATH4110", "customattachments/"); // Папка хранения вложений 4.1.10
$path = getcwd();
mysql_connect(HOST, USER, PASS)
or die("Could not connect: ".mysql_error());
mysql_select_db(DB)
or die("Could not select database: ".mysql_error());
$result = mysql_query('SELECT filedataid, userid, filename FROM pt_attachment WHERE contenttypeid = 8 ORDER BY filename')
or die(mysql_error());
while ($row = mysql_fetch_assoc($result)) {
if (preg_match('/(\d+)/s', $row['filename'], $match)) {
if (chdir($path."/".PATH4110)) {
$path4110 = "";
for ($i=0; $i < strlen($row['userid']); $i++) {
$dir = substr($row['userid'],$i,1);
$path4110.= $dir."/";
if (!@chdir($dir))
if (mkdir($dir, 0777)) {
echo "make dir $path4110 successfully!<br/>";
chdir($dir);
}
}
}
else echo "I can not go to the directory ".$path."/".PATH4110."<br />";
$file375 = $path."/".PATH375.$match[1].".picture";
$file4110 = $path."/".PATH4110.$path4110.$row['filedataid'].".attach";
if (!copy($file375,$file4110))
echo "failed to copy $file375...<br />";
else
echo "copy $file4110 successfully!<br/>";
}
}
?>
Last edited by mppks : 03-18-2012 at 10:58 AM.
Reason: Добавлено сообщение