Не создаются папки в uploads - Дизайн и модификация Invision Power Board

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

 

Правила раздела

Здесь обсуждаются вопросы по настройке и администрированию форумов IPB 3.x.
Пожалуйста, не оффтопьте, если зашли сюда случайно, и обратите внимание на соседние разделы.
Установка, настройка и обслуживание форумов IPB 2.x.
Оформление форумов, включая верстку скинов.
Размещение рекламы на форумах.
SEO оптимизация форума.
Техническая поддержка наших скинов и модов.

СвернутьПрикрепленные теги

аттачи

  • 2 Страниц +
  • 1
  • 2

Не создаются папки в uploads

#1 Пользователь не на сайте   alekp ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 85
  • Регистрация: 24-Ноябрь 10
  • Репутация: 0
  • IPB version:3.1.x
 

Отправлено 18 Ноябрь 2014 - 14:14

Всем добрый день.
Подскажите пожалуйста в чем проблема: не создаются папки по месяцам в uploads, файлы загружаются прямо в папку! Права установлены на запись. В чем проблема может быть? Версия форума 3.1.2.
0

#2 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 2 166
  • Регистрация: 26-Октябрь 11
  • Репутация: 813
  • IPB version:I have no IPB
 

Отправлено 18 Ноябрь 2014 - 15:51

Не знаю, как в 3.1.2, но в близкой к ней версии 3.1.4 есть такой код
		$this->attach_settings['allow_monthly_upload_dirs'] = @ini_get("safe_mode") ? 0 : ( $this->settings['safe_mode_skins'] ? 0 : 1 );

Т.е., если safe mode (безопасный режим) активирован, то аттачи будут загружаться прямо в папку uploads.
0

#3 Пользователь не на сайте   alekp ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 85
  • Регистрация: 24-Ноябрь 10
  • Репутация: 0
  • IPB version:3.1.x
 

Отправлено 18 Ноябрь 2014 - 16:10

Просмотреть сообщениеnewbie 18 Ноябрь 2014 - 15:51 сказал(а):

Т.е., если safe mode (безопасный режим) активирован, то аттачи будут загружаться прямо в папку uploads.


Точно, выключил безопасный режим и папки начали создаваться. Огромное спасибо за подсказку!
Теперь бы еще найти способ уже загруженные фото отсортировать по папкам!Есть такая возможность, может сталкивался кто?
0

#4 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 260
  • Регистрация: 20-Март 09
  • Репутация: 2 071
  • IPB version:3.1.x
 

Отправлено 18 Ноябрь 2014 - 17:25

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

#5 Пользователь не на сайте   alekp ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 85
  • Регистрация: 24-Ноябрь 10
  • Репутация: 0
  • IPB version:3.1.x
 

Отправлено 18 Ноябрь 2014 - 18:35

Просмотреть сообщениеsiv1987 18 Ноябрь 2014 - 17:25 сказал(а):

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

Это уже трудно очень, никогда таким не занимался!
А по средствам самого движка такое не предусмотрено, пересчет или еще что?
0

#6 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 260
  • Регистрация: 20-Март 09
  • Репутация: 2 071
  • IPB version:3.1.x
 

Отправлено 18 Ноябрь 2014 - 19:11

Пересчет предусмотрен, перемещение - нет.
Если очень сильно хочется, перестроение аттачей происходит в /admin/applications/core/modules_admin/tools/rebuild.php, метод rebuildAttachdata(). Там можете дописать код, чтобы переместить файл если его путь не начинается с monthly_ и находится в корне uploads (т.е. адрес не содержит слешей). Если и это сложно очень - просто забейте. Думаю, у вас не миллион аттачей в одной папке.
0

#7 Пользователь не на сайте   alekp ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 85
  • Регистрация: 24-Ноябрь 10
  • Репутация: 0
  • IPB version:3.1.x
 

Отправлено 18 Ноябрь 2014 - 19:37

Миллиона конечно нет :) но 62000 тоже многовато!
Кинте ссылку пожалуйста где можно посмотреть пример как писать этот скрипт, если знаете?
0

#8 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 260
  • Регистрация: 20-Март 09
  • Репутация: 2 071
  • IPB version:3.1.x
 

Отправлено 18 Ноябрь 2014 - 20:10

Документация по php - http://php.net/manual/ru/
Ну и соответственно там справочник по функциям которые вам понадобятся strpos, rename и тд.
0

#9 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 260
  • Регистрация: 20-Март 09
  • Репутация: 2 071
  • IPB version:3.1.x
 

Отправлено 18 Ноябрь 2014 - 21:07

Что-то я сегодня добрый... так уж и быть.
Открыть /admin/applications/core/modules_admin/tools/rebuild.php
Найти

					if( $r['attach_is_image'] )
					{
						$dims = @getimagesize( $this->settings['upload_dir'].'/'.$r['attach_location'] );

						if( $dims[0] AND $dims[1] )
						{
							$update['attach_img_width'] = $dims[0];
							$update['attach_img_height'] = $dims[1];
						}
					}

Ниже добавить

					if( strpos( $r['attach_location'], '/' ) === false )
					{
						$directory = 'monthly_'.date( 'm_Y', $r['attach_date'] );
						$uploadDir = $this->settings['upload_dir'].'/'.$directory;

						if( ! is_dir( $uploadDir ) )
						{
							if( mkdir( $uploadDir ) )
							{
								@chmod( $uploadDir, 0777 );
							}
						}
						
						$sourceFile = $this->settings['upload_dir'].'/'.$r['attach_location'];
						$renameFile = $uploadDir.'/'.$r['attach_location'];
						
						if( rename( $sourceFile, $renameFile ) )
						{
							$update['attach_location'] = $directory.'/'.$r['attach_location'];
						}
						
						if( $r['attach_thumb_location'] AND ! strpos( $r['attach_thumb_location'], '/' ) )
						{
							$sourceThumbFile = $this->settings['upload_dir'].'/'.$r['attach_thumb_location'];
							$renameThumbFile = $uploadDir.'/'.$r['attach_thumb_location'];
						
							if( file_exists( $sourceThumbFile ) )
							{
								if( rename( $sourceThumbFile, $renameThumbFile ) )
								{
									$update['attach_thumb_location'] = $directory.'/'.$r['attach_thumb_location'];
								}
							}
						}
					}


Перейти в АЦ -> Пересчет и обновление. Запустить инструмент "Обновить информацию о прикрепленных файлах".
2

#10 Пользователь не на сайте   alekp ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 85
  • Регистрация: 24-Ноябрь 10
  • Репутация: 0
  • IPB version:3.1.x
 

Отправлено 18 Ноябрь 2014 - 22:34

Спасибо огромное, а то у меня уже голова лопается. Там нужно начинать с азов чтоб написать скрипт.
0

#11 Пользователь не на сайте   alekp ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 85
  • Регистрация: 24-Ноябрь 10
  • Репутация: 0
  • IPB version:3.1.x
 

Отправлено 18 Ноябрь 2014 - 22:37

код вставил, пересчет запустил. Обработало около 30000 файлов (их там больше 60000), но ничего не перенесло никуда! В чем проблема может быть? Папки по месяцам должны были создаться автоматически или их нужно предварительно создавать?

Сори просто закрылась страница с процесом, все отфильтровало и переместило :D
Остались только фото аватарок, их почему то не переместило! Если их переместить вручную подгружаться будут они или нет?
Еще раз огромное спасибо за помощь!

Сообщение изменено: alekp (18 Ноябрь 2014 - 22:43)

0

#12 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 260
  • Регистрация: 20-Март 09
  • Репутация: 2 071
  • IPB version:3.1.x
 

Отправлено 18 Ноябрь 2014 - 22:45

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

Аватарки - не аттачи. Вручную переносить нельзя, данные о них хранятся в базе данных.
0

#13 Пользователь не на сайте   alekp ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 85
  • Регистрация: 24-Ноябрь 10
  • Репутация: 0
  • IPB version:3.1.x
 

Отправлено 18 Ноябрь 2014 - 22:50

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

#14 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 260
  • Регистрация: 20-Март 09
  • Репутация: 2 071
  • IPB version:3.1.x
 

Отправлено 18 Ноябрь 2014 - 22:56

Хотя опять же, если очень хочется, можно перенести и аватарки, но только в одну конкретную папку, а потом sql запросом обновить путь к ним.
0

#15 Пользователь не на сайте   alekp ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 85
  • Регистрация: 24-Ноябрь 10
  • Репутация: 0
  • IPB version:3.1.x
 

Отправлено 19 Ноябрь 2014 - 11:55

Просмотреть сообщениеsiv1987 18 Ноябрь 2014 - 22:56 сказал(а):

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

Ну вы меня прям искушаете :)
Думаю пока не нужно, не так много их там!
Сейчас еще нужно разобраться с архивацией тем, не могу что то найти ее вообще в админке! Но это в другой теме...
Огромное спасибо вам за помощь!
0

Сообщить об этой теме:


  • 2 Страниц +
  • 1
  • 2


Быстрый ответ

  

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2016 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна