[RC] Attachments in subfolders [Вложения в подпапках]

Здесь авторы могут постить бета-версии своих модификаций для phpBB 3.0.x. Внимание! Не устанавливайте бета-версии модов на работающие форумы!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11361
Стаж: 16 лет 8 месяцев
Благодарил (а): 1832 раза
Поблагодарили: 1358 раз

Re: [RC] Attachments in subfolders (вложения в подпапках)

Сообщение Пчелкин »

Anvar Ты гений!!! Я тебя..... забодаю... Все отлично... Рулька теперь цепляет и из-под папок... афигеть!!!
NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70
Аватара пользователя
Pazh
Former team member
Сообщения: 2317
Стаж: 16 лет 10 месяцев
Благодарил (а): 42 раза
Поблагодарили: 506 раз

Re: [RC] Attachments in subfolders (вложения в подпапках)

Сообщение Pazh »

у мода есть еще 2 бага:
1. он не дружит с post merge (вложения из предыдущего поста становятся потерянными, т.к. скрипт не находит их по стандартному пути)
2. потерянные вложения через админку не удаляются
обе проблемы связаны с тем что в указанных функциях используется штатный путь поиска вложений. Правки по аналогии с теми что привел anvar в предыдущем сообщении
Помощь в ЛС/email только за WM или ЮMoney
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11361
Стаж: 16 лет 8 месяцев
Благодарил (а): 1832 раза
Поблагодарили: 1358 раз

Re: [RC] Attachments in subfolders (вложения в подпапках)

Сообщение Пчелкин »

Pazh Ышо с этим - Конвертация изображений из тега img в вложения

Воще труба... Правки по инструкции делал, делал в имеющемся message_parser.php - ни фига не работает....
Обидно...Всем ставлю - работает, а у себя как всегда - борода... Запутался

С этим на своем запутался окончательно -

Код: Выделить всё

		// First of all adjust comments if changed
		$actual_comment_list = utf8_normalize_nfc(request_var('comment_list', array(''), true));

		foreach ($actual_comment_list as $comment_key => $comment)
		{
			if (!isset($this->attachment_data[$comment_key]))
			{
				continue;
			}

			if ($this->attachment_data[$comment_key]['attach_comment'] != $actual_comment_list[$comment_key])
			{
				$this->attachment_data[$comment_key]['attach_comment'] = $actual_comment_list[$comment_key];
			}
		}

		$cfg = array();
		$cfg['max_attachments'] = ($is_message) ? $config['max_attachments_pm'] : $config['max_attachments'];
		$forum_id = ($is_message) ? 0 : $forum_id;

		$max_length = 5;
		if ($submit && in_array($mode, array('post', 'reply', 'quote', 'edit')) && $upload_file)
		{
			if ($num_attachments < $cfg['max_attachments'] || $auth->acl_get('a_') || $auth->acl_get('m_', $forum_id))
			{
				if($img_to_attach)
				{
					foreach($_FILES['img_to_attach'] as $img_url)
					{
						$filedata = upload_attachment($form_name, $forum_id, false, '', $is_message, false, $img_url);
						$error = $filedata['error'];

						if ($filedata['post_attach'] && !sizeof($error))
						{
								$max_length=10;
								$real_filename = $filedata['real_filename'];
								$filedata['real_filename'] = str_replace('.' . $filedata['extension'],'',$filedata['real_filename']);
								if($max_length < strlen($filedata['real_filename']))
								{
									$filedata['real_filename'] = truncate_string($filedata['real_filename'],$max_length,$max_length, false,'',-$max_length) . '.' . $filedata['extension'];
								}
								else
								{
									$filedata['real_filename'] = $real_filename;
								}
						
							$sql_ary = array(
								'physical_filename'	=> $filedata['physical_filename'],
								'attach_comment'	=> $this->filename_data['filecomment'],
								'real_filename'		=> $filedata['real_filename'],
								'extension'			=> $filedata['extension'],
								'mimetype'			=> $filedata['mimetype'],
								'filesize'			=> $filedata['filesize'],
								'filetime'			=> $filedata['filetime'],
								'thumbnail'			=> $filedata['thumbnail'],
								'is_orphan'			=> 1,
								'in_message'		=> ($is_message) ? 1 : 0,
								'poster_id'			=> $user->data['user_id'],
							);

							$db->sql_query('INSERT INTO ' . ATTACHMENTS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary));

							$new_entry = array(
								'attach_id'		=> $db->sql_nextid(),
								'is_orphan'		=> 1,
								'mimetype'		=> $filedata['mimetype'],
								'real_filename'	=> $filedata['real_filename'],
								'attach_comment'=> $this->filename_data['filecomment'],
							);

							$this->attachment_data = array_merge(array(0 => $new_entry), $this->attachment_data);
							$this->message = preg_replace('#\[attachment=([0-9]+)\](.*?)\[\/attachment\]#e', "'[attachment='.(\\1 + 1).']\\2[/attachment]'", $this->message);
							$this->message = utf8_normalize_nfc(preg_replace('#\[(img|hsimg):' . $this->bbcode_uid . '\].*' . $real_filename . '\[\/(img|hsimg):' . $this->bbcode_uid . '\]#iu', '[attachment=0]' . $filedata['real_filename'] . '[/attachment]', utf8_decode_ncr($this->message)));
							$this->filename_data['filecomment'] = '';

							// This Variable is set to false here, because Attachments are entered into the
							// Database in two modes, one if the id_list is 0 and the second one if post_attach is true
							// Since post_attach is automatically switched to true if an Attachment got added to the filesystem,
							// but we are assigning an id of 0 here, we have to reset the post_attach variable to false.
							//
							// This is very relevant, because it could happen that the post got not submitted, but we do not
							// know this circumstance here. We could be at the posting page or we could be redirected to the entered
							// post. :)
							$filedata['post_attach'] = false;
						}
					}	
				}
				else
				{
				$filedata = upload_attachment($form_name, $forum_id, false, '', $is_message);
				$error = $filedata['error'];

				if ($filedata['post_attach'] && !sizeof($error))
				{
					$sql_ary = array(
						'physical_filename'	=> $filedata['physical_filename'],
						'attach_comment'	=> $this->filename_data['filecomment'],
						'real_filename'		=> $filedata['real_filename'],
						'extension'			=> $filedata['extension'],
						'mimetype'			=> $filedata['mimetype'],
						'filesize'			=> $filedata['filesize'],
						'filetime'			=> $filedata['filetime'],
						'thumbnail'			=> $filedata['thumbnail'],
						'is_orphan'			=> 1,
						'in_message'		=> ($is_message) ? 1 : 0,
						'poster_id'			=> $user->data['user_id'],
					);

					$db->sql_query('INSERT INTO ' . ATTACHMENTS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary));

					$new_entry = array(
						'attach_id'		=> $db->sql_nextid(),
						'is_orphan'		=> 1,
						'mimetype'   	=> $filedata['mimetype'],						
						'real_filename'	=> $filedata['real_filename'],
						'attach_comment'=> $this->filename_data['filecomment'],
					);

					$this->attachment_data = array_merge(array(0 => $new_entry), $this->attachment_data);
					$this->message = preg_replace('#\[attachment=([0-9]+)\](.*?)\[\/attachment\]#e', "'[attachment='.(\\1 + 1).']\\2[/attachment]'", $this->message);

					$this->filename_data['filecomment'] = '';

					// This Variable is set to false here, because Attachments are entered into the
					// Database in two modes, one if the id_list is 0 and the second one if post_attach is true
					// Since post_attach is automatically switched to true if an Attachment got added to the filesystem,
					// but we are assigning an id of 0 here, we have to reset the post_attach variable to false.
					//
					// This is very relevant, because it could happen that the post got not submitted, but we do not
					// know this circumstance here. We could be at the posting page or we could be redirected to the entered
					// post. :)
					$filedata['post_attach'] = false;
				}
			}
			}
			else
			{
				$error[] = sprintf($user->lang['TOO_MANY_ATTACHMENTS'], $cfg['max_attachments']);
			}
		}

		if ($preview || $refresh || sizeof($error))
		{
			// Perform actions on temporary attachments
			if ($delete_file)
			{
				include_once($phpbb_root_path . 'includes/functions_admin.' . $phpEx);

				$index = array_keys(request_var('delete_file', array(0 => 0)));
				$index = (!empty($index)) ? $index[0] : false;

				if ($index !== false && !empty($this->attachment_data[$index]))
				{
					// delete selected attachment
					if ($this->attachment_data[$index]['is_orphan'])
					{
						$sql = 'SELECT attach_id, physical_filename, thumbnail
							FROM ' . ATTACHMENTS_TABLE . '
							WHERE attach_id = ' . (int) $this->attachment_data[$index]['attach_id'] . '
								AND is_orphan = 1
								AND poster_id = ' . $user->data['user_id'];
						$result = $db->sql_query($sql);
						$row = $db->sql_fetchrow($result);
						$db->sql_freeresult($result);

						if ($row)
						{
							phpbb_unlink($row['physical_filename'], 'file');

							if ($row['thumbnail'])
							{
								phpbb_unlink($row['physical_filename'], 'thumbnail');
							}

							$db->sql_query('DELETE FROM ' . ATTACHMENTS_TABLE . ' WHERE attach_id = ' . (int) $this->attachment_data[$index]['attach_id']);
						}
					}
					else
					{
						delete_attachments('attach', array(intval($this->attachment_data[$index]['attach_id'])));
					}

					unset($this->attachment_data[$index]);
					$this->message = preg_replace('#\[attachment=([0-9]+)\](.*?)\[\/attachment\]#e', "(\\1 == \$index) ? '' : ((\\1 > \$index) ? '[attachment=' . (\\1 - 1) . ']\\2[/attachment]' : '\\0')", $this->message);

					// Reindex Array
					$this->attachment_data = array_values($this->attachment_data);
				}
			}
			else if (($add_file || $preview) && $upload_file)
			{
				if ($num_attachments < $cfg['max_attachments'] || $auth->acl_gets('m_', 'a_', $forum_id))
				{
					if($img_to_attach)
					{
						foreach($_FILES['img_to_attach'] as $img_url)
						{
							$filedata = upload_attachment($form_name, $forum_id, false, '', $is_message, false, $img_url);
							$error = array_merge($error, $filedata['error']);

							if (!sizeof($error))
							{
                                $max_length=10;
								$real_filename = $filedata['real_filename'];
								$filedata['real_filename'] = str_replace('.' . $filedata['extension'],'',$filedata['real_filename']);
								if($max_length < strlen($filedata['real_filename']))
								{
									$filedata['real_filename'] = truncate_string($filedata['real_filename'],$max_length,$max_length, false,'',-$max_length) . '.' . $filedata['extension'];
								}
								else
								{
									$filedata['real_filename'] = $real_filename;
								}							
								$sql_ary = array(
									'physical_filename'	=> $filedata['physical_filename'],
									'attach_comment'	=> $this->filename_data['filecomment'],
									'real_filename'		=> $filedata['real_filename'],
									'extension'			=> $filedata['extension'],
									'mimetype'			=> $filedata['mimetype'],
									'filesize'			=> $filedata['filesize'],
									'filetime'			=> $filedata['filetime'],
									'thumbnail'			=> $filedata['thumbnail'],
									'is_orphan'			=> 1,
									'in_message'		=> ($is_message) ? 1 : 0,
									'poster_id'			=> $user->data['user_id'],
								);

								$db->sql_query('INSERT INTO ' . ATTACHMENTS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary));

								$new_entry = array(
									'attach_id'		=> $db->sql_nextid(),
									'is_orphan'		=> 1,
									'mimetype'		=> $filedata['mimetype'],
									'real_filename'	=> $filedata['real_filename'],
									'attach_comment'=> $this->filename_data['filecomment'],
								);

								$this->attachment_data = array_merge(array(0 => $new_entry), $this->attachment_data);
								$this->message = preg_replace('#\[attachment=([0-9]+)\](.*?)\[\/attachment\]#e', "'[attachment='.(\\1 + 1).']\\2[/attachment]'", $this->message);
								$this->message = utf8_normalize_nfc(preg_replace('#\[(img|hsimg):' . $this->bbcode_uid . '\].*' . $real_filename . '\[\/(img|hsimg):' . $this->bbcode_uid . '\]#iu', '[attachment=0]' . $filedata['real_filename'] . '[/attachment]', utf8_decode_ncr($this->message)));
								$this->filename_data['filecomment'] = '';
							}
						}	
					}
					else
					{

					$filedata = upload_attachment($form_name, $forum_id, false, '', $is_message);
					$error = array_merge($error, $filedata['error']);

					if (!sizeof($error))
					{
						$sql_ary = array(
							'physical_filename'	=> $filedata['physical_filename'],
							'attach_comment'	=> $this->filename_data['filecomment'],
							'real_filename'		=> $filedata['real_filename'],
							'extension'			=> $filedata['extension'],
							'mimetype'			=> $filedata['mimetype'],
							'filesize'			=> $filedata['filesize'],
							'filetime'			=> $filedata['filetime'],
							'thumbnail'			=> $filedata['thumbnail'],
							'is_orphan'			=> 1,
							'in_message'		=> ($is_message) ? 1 : 0,
							'poster_id'			=> $user->data['user_id'],
						);

						$db->sql_query('INSERT INTO ' . ATTACHMENTS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary));

						$new_entry = array(
							'attach_id'		=> $db->sql_nextid(),
							'is_orphan'		=> 1,
							'mimetype'   	=> $filedata['mimetype'],							
							'real_filename'	=> $filedata['real_filename'],
							'attach_comment'=> $this->filename_data['filecomment'],
						);

						$this->attachment_data = array_merge(array(0 => $new_entry), $this->attachment_data);
						$this->message = preg_replace('#\[attachment=([0-9]+)\](.*?)\[\/attachment\]#e', "'[attachment='.(\\1 + 1).']\\2[/attachment]'", $this->message);
						$this->filename_data['filecomment'] = '';
					}
				}
				}
				else
				{
					$error[] = sprintf($user->lang['TOO_MANY_ATTACHMENTS'], $cfg['max_attachments']);
				}
			}
		}

		foreach ($error as $error_msg)
		{
			$this->warn_msg[] = $error_msg;
		}
	}
Добавлено спустя 1 минуту 38 секунд:
Последний вариант моих правок -

Код: Выделить всё

		// First of all adjust comments if changed
		$actual_comment_list = utf8_normalize_nfc(request_var('comment_list', array(''), true));

		foreach ($actual_comment_list as $comment_key => $comment)
		{
			if (!isset($this->attachment_data[$comment_key]))
			{
				continue;
			}

			if ($this->attachment_data[$comment_key]['attach_comment'] != $actual_comment_list[$comment_key])
			{
				$this->attachment_data[$comment_key]['attach_comment'] = $actual_comment_list[$comment_key];
			}
		}

		$cfg = array();
		$cfg['max_attachments'] = ($is_message) ? $config['max_attachments_pm'] : $config['max_attachments'];
		$forum_id = ($is_message) ? 0 : $forum_id;

		$max_length = 5;
		if ($submit && in_array($mode, array('post', 'reply', 'quote', 'edit')) && $upload_file)
		{
			if ($num_attachments < $cfg['max_attachments'] || $auth->acl_get('a_') || $auth->acl_get('m_', $forum_id))
			{
				if($img_to_attach)
				{
					foreach($_FILES['img_to_attach'] as $img_url)
					{
						$filedata = upload_attachment($form_name, $forum_id, false, '', $is_message, false, $img_url);
						$error = $filedata['error'];

						if ($filedata['post_attach'] && !sizeof($error))
						{
								$max_length=10;
								$real_filename = $filedata['real_filename'];
								$filedata['real_filename'] = str_replace('.' . $filedata['extension'],'',$filedata['real_filename']);
								if($max_length < strlen($filedata['real_filename']))
								{
									$filedata['real_filename'] = truncate_string($filedata['real_filename'],$max_length,$max_length, false,'',-$max_length) . '.' . $filedata['extension'];
								}
								else
								{
									$filedata['real_filename'] = $real_filename;
								}
						
							$sql_ary = array(
								'physical_filename'	=> $filedata['physical_filename'],
								'attach_comment'	=> $this->filename_data['filecomment'],
								'real_filename'		=> $filedata['real_filename'],
								'extension'			=> $filedata['extension'],
								'mimetype'			=> $filedata['mimetype'],
								'filesize'			=> $filedata['filesize'],
								'filetime'			=> $filedata['filetime'],
								'thumbnail'			=> $filedata['thumbnail'],
								'is_orphan'			=> 1,
								'in_message'		=> ($is_message) ? 1 : 0,
								'poster_id'			=> $user->data['user_id'],
							);

							$db->sql_query('INSERT INTO ' . ATTACHMENTS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary));

					////////////////// Attachments in subfolders /////////////////////

					$new_attachment_id = $db->sql_nextid();
					$new_entry = array(
						'attach_id'		=> $new_attachment_id,
						'is_orphan'		=> 1,
								'mimetype'		=> $filedata['mimetype'],						
						'real_filename'	=> $filedata['real_filename'],
						'attach_comment'=> $this->filename_data['filecomment'],
					);
					////////////////// Attachments in subfolders /////////////////////

							$this->attachment_data = array_merge(array(0 => $new_entry), $this->attachment_data);
							$this->message = preg_replace('#\[attachment=([0-9]+)\](.*?)\[\/attachment\]#e', "'[attachment='.(\\1 + 1).']\\2[/attachment]'", $this->message);
							$this->message = utf8_normalize_nfc(preg_replace('#\[(img|hsimg):' . $this->bbcode_uid . '\].*' . $real_filename . '\[\/(img|hsimg):' . $this->bbcode_uid . '\]#iu', '[attachment=0]' . $filedata['real_filename'] . '[/attachment]', utf8_decode_ncr($this->message)));
							$this->filename_data['filecomment'] = '';
						////////////////// Attachments in subfolders /////////////////////
						$ais_folder_1 = substr(substr($new_attachment_id + 1000000, -6), 0, 2);
						$ais_folder_2 = substr(substr($new_attachment_id + 1000000, -4), 0, 2);
						$ais_path_to_add = '/' . $ais_folder_1 . '/' . $ais_folder_2;
						
						if (!file_exists($phpbb_root_path . $config['upload_path'] . '/' . $ais_folder_1))
						{
								mkdir($phpbb_root_path . $config['upload_path'] . '/' . $ais_folder_1);
								copy($phpbb_root_path . $config['upload_path'] . '/index.htm', $phpbb_root_path . $config['upload_path'] . '/' . $ais_folder_1 . '/index.htm');
						}
						
						if (!file_exists($phpbb_root_path . $config['upload_path'] . $ais_path_to_add))
						{
								mkdir($phpbb_root_path . $config['upload_path'] . $ais_path_to_add);
								copy($phpbb_root_path . $config['upload_path'] . '/index.htm', $phpbb_root_path . $config['upload_path'] . $ais_path_to_add . '/index.htm');
						}

						if (file_exists($phpbb_root_path . $config['upload_path'] . '/' . $filedata['physical_filename']))
						{
							rename($phpbb_root_path . $config['upload_path'] . '/' . $filedata['physical_filename'], $phpbb_root_path . $config['upload_path'] . $ais_path_to_add . '/' . $filedata['physical_filename']);
						}

						if (file_exists($phpbb_root_path . $config['upload_path'] . '/thumb_' . $filedata['physical_filename']))
						{
							rename($phpbb_root_path . $config['upload_path'] . '/thumb_' . $filedata['physical_filename'], $phpbb_root_path . $config['upload_path'] . $ais_path_to_add . '/thumb_' . $filedata['physical_filename']);
						}
						////////////////// Attachments in subfolders /////////////////////							

							// This Variable is set to false here, because Attachments are entered into the
							// Database in two modes, one if the id_list is 0 and the second one if post_attach is true
							// Since post_attach is automatically switched to true if an Attachment got added to the filesystem,
							// but we are assigning an id of 0 here, we have to reset the post_attach variable to false.
							//
							// This is very relevant, because it could happen that the post got not submitted, but we do not
							// know this circumstance here. We could be at the posting page or we could be redirected to the entered
							// post. :)
							$filedata['post_attach'] = false;
					////////////////// Attachments in subfolders /////////////////////
					$ais_folder_1 = substr(substr($new_attachment_id + 1000000, -6), 0, 2);
					$ais_folder_2 = substr(substr($new_attachment_id + 1000000, -4), 0, 2);
					$ais_path_to_add = '/' . $ais_folder_1 . '/' . $ais_folder_2;
					
					if (!file_exists($phpbb_root_path . $config['upload_path'] . '/' . $ais_folder_1))
					{
						mkdir($phpbb_root_path . $config['upload_path'] . '/' . $ais_folder_1);
						copy($phpbb_root_path . $config['upload_path'] . '/index.htm', $phpbb_root_path . $config['upload_path'] . '/' . $ais_folder_1 . '/index.htm');
					}
					
					if (!file_exists($phpbb_root_path . $config['upload_path'] . $ais_path_to_add))
					{
						mkdir($phpbb_root_path . $config['upload_path'] . $ais_path_to_add);
						copy($phpbb_root_path . $config['upload_path'] . '/index.htm', $phpbb_root_path . $config['upload_path'] . $ais_path_to_add . '/index.htm');
					}

					if (file_exists($phpbb_root_path . $config['upload_path'] . '/' . $filedata['physical_filename']))
					{
						rename($phpbb_root_path . $config['upload_path'] . '/' . $filedata['physical_filename'], $phpbb_root_path . $config['upload_path'] . $ais_path_to_add . '/' . $filedata['physical_filename']);
					}

					if (file_exists($phpbb_root_path . $config['upload_path'] . '/thumb_' . $filedata['physical_filename']))
					{
						rename($phpbb_root_path . $config['upload_path'] . '/thumb_' . $filedata['physical_filename'], $phpbb_root_path . $config['upload_path'] . $ais_path_to_add . '/thumb_' . $filedata['physical_filename']);
					}
					////////////////// Attachments in subfolders /////////////////////							
						}
					}	
				}
				else
				{
				$filedata = upload_attachment($form_name, $forum_id, false, '', $is_message);
				$error = $filedata['error'];

				if ($filedata['post_attach'] && !sizeof($error))
				{
					$sql_ary = array(
						'physical_filename'	=> $filedata['physical_filename'],
						'attach_comment'	=> $this->filename_data['filecomment'],
						'real_filename'		=> $filedata['real_filename'],
						'extension'			=> $filedata['extension'],
						'mimetype'			=> $filedata['mimetype'],
						'filesize'			=> $filedata['filesize'],
						'filetime'			=> $filedata['filetime'],
						'thumbnail'			=> $filedata['thumbnail'],
						'is_orphan'			=> 1,
						'in_message'		=> ($is_message) ? 1 : 0,
						'poster_id'			=> $user->data['user_id'],
					);

					$db->sql_query('INSERT INTO ' . ATTACHMENTS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary));

						////////////////// Attachments in subfolders /////////////////////
						$new_attachment_id = $db->sql_nextid();
						$new_entry = array(
							'attach_id'		=> $new_attachment_id,
							'is_orphan'		=> 1,
						'mimetype'   	=> $filedata['mimetype'],								
							'real_filename'	=> $filedata['real_filename'],
							'attach_comment'=> $this->filename_data['filecomment'],
						);
						////////////////// Attachments in subfolders /////////////////////

					$this->attachment_data = array_merge(array(0 => $new_entry), $this->attachment_data);
					$this->message = preg_replace('#\[attachment=([0-9]+)\](.*?)\[\/attachment\]#e', "'[attachment='.(\\1 + 1).']\\2[/attachment]'", $this->message);

					$this->filename_data['filecomment'] = '';
						////////////////// Attachments in subfolders /////////////////////
						$ais_folder_1 = substr(substr($new_attachment_id + 1000000, -6), 0, 2);
						$ais_folder_2 = substr(substr($new_attachment_id + 1000000, -4), 0, 2);
						$ais_path_to_add = '/' . $ais_folder_1 . '/' . $ais_folder_2;
						
						if (!file_exists($phpbb_root_path . $config['upload_path'] . '/' . $ais_folder_1))
						{
								mkdir($phpbb_root_path . $config['upload_path'] . '/' . $ais_folder_1);
								copy($phpbb_root_path . $config['upload_path'] . '/index.htm', $phpbb_root_path . $config['upload_path'] . '/' . $ais_folder_1 . '/index.htm');
						}
						
						if (!file_exists($phpbb_root_path . $config['upload_path'] . $ais_path_to_add))
						{
								mkdir($phpbb_root_path . $config['upload_path'] . $ais_path_to_add);
								copy($phpbb_root_path . $config['upload_path'] . '/index.htm', $phpbb_root_path . $config['upload_path'] . $ais_path_to_add . '/index.htm');
						}

						if (file_exists($phpbb_root_path . $config['upload_path'] . '/' . $filedata['physical_filename']))
						{
							rename($phpbb_root_path . $config['upload_path'] . '/' . $filedata['physical_filename'], $phpbb_root_path . $config['upload_path'] . $ais_path_to_add . '/' . $filedata['physical_filename']);
						}

						if (file_exists($phpbb_root_path . $config['upload_path'] . '/thumb_' . $filedata['physical_filename']))
						{
							rename($phpbb_root_path . $config['upload_path'] . '/thumb_' . $filedata['physical_filename'], $phpbb_root_path . $config['upload_path'] . $ais_path_to_add . '/thumb_' . $filedata['physical_filename']);
						}
						////////////////// Attachments in subfolders /////////////////////
					// This Variable is set to false here, because Attachments are entered into the
					// Database in two modes, one if the id_list is 0 and the second one if post_attach is true
					// Since post_attach is automatically switched to true if an Attachment got added to the filesystem,
					// but we are assigning an id of 0 here, we have to reset the post_attach variable to false.
					//
					// This is very relevant, because it could happen that the post got not submitted, but we do not
					// know this circumstance here. We could be at the posting page or we could be redirected to the entered
					// post. :)
					$filedata['post_attach'] = false;
				}
			}
			}
			else
			{
				$error[] = sprintf($user->lang['TOO_MANY_ATTACHMENTS'], $cfg['max_attachments']);
			}
		}

		if ($preview || $refresh || sizeof($error))
		{
			// Perform actions on temporary attachments
			if ($delete_file)
			{
				include_once($phpbb_root_path . 'includes/functions_admin.' . $phpEx);

				$index = array_keys(request_var('delete_file', array(0 => 0)));
				$index = (!empty($index)) ? $index[0] : false;

				if ($index !== false && !empty($this->attachment_data[$index]))
				{
					// delete selected attachment
					if ($this->attachment_data[$index]['is_orphan'])
					{
						$sql = 'SELECT attach_id, physical_filename, thumbnail
							FROM ' . ATTACHMENTS_TABLE . '
							WHERE attach_id = ' . (int) $this->attachment_data[$index]['attach_id'] . '
								AND is_orphan = 1
								AND poster_id = ' . $user->data['user_id'];
						$result = $db->sql_query($sql);
						$row = $db->sql_fetchrow($result);
						$db->sql_freeresult($result);

						if ($row)
						{
							phpbb_unlink($row['physical_filename'], 'file');

							if ($row['thumbnail'])
							{
								phpbb_unlink($row['physical_filename'], 'thumbnail');
							}

							$db->sql_query('DELETE FROM ' . ATTACHMENTS_TABLE . ' WHERE attach_id = ' . (int) $this->attachment_data[$index]['attach_id']);
						}
					}
					else
					{
						delete_attachments('attach', array(intval($this->attachment_data[$index]['attach_id'])));
					}

					unset($this->attachment_data[$index]);
					$this->message = preg_replace('#\[attachment=([0-9]+)\](.*?)\[\/attachment\]#e', "(\\1 == \$index) ? '' : ((\\1 > \$index) ? '[attachment=' . (\\1 - 1) . ']\\2[/attachment]' : '\\0')", $this->message);

					// Reindex Array
					$this->attachment_data = array_values($this->attachment_data);
				}
			}
			else if (($add_file || $preview) && $upload_file)
			{
				if ($num_attachments < $cfg['max_attachments'] || $auth->acl_gets('m_', 'a_', $forum_id))
				{
					if($img_to_attach)
					{
						foreach($_FILES['img_to_attach'] as $img_url)
						{
							$filedata = upload_attachment($form_name, $forum_id, false, '', $is_message, false, $img_url);
							$error = array_merge($error, $filedata['error']);

							if (!sizeof($error))
							{
                                $max_length=10;
								$real_filename = $filedata['real_filename'];
								$filedata['real_filename'] = str_replace('.' . $filedata['extension'],'',$filedata['real_filename']);
								if($max_length < strlen($filedata['real_filename']))
								{
									$filedata['real_filename'] = truncate_string($filedata['real_filename'],$max_length,$max_length, false,'',-$max_length) . '.' . $filedata['extension'];
								}
								else
								{
									$filedata['real_filename'] = $real_filename;
								}							
								$sql_ary = array(
									'physical_filename'	=> $filedata['physical_filename'],
									'attach_comment'	=> $this->filename_data['filecomment'],
									'real_filename'		=> $filedata['real_filename'],
									'extension'			=> $filedata['extension'],
									'mimetype'			=> $filedata['mimetype'],
									'filesize'			=> $filedata['filesize'],
									'filetime'			=> $filedata['filetime'],
									'thumbnail'			=> $filedata['thumbnail'],
									'is_orphan'			=> 1,
									'in_message'		=> ($is_message) ? 1 : 0,
									'poster_id'			=> $user->data['user_id'],
								);

								$db->sql_query('INSERT INTO ' . ATTACHMENTS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary));

						////////////////// Attachments in subfolders /////////////////////
						$new_attachment_id = $db->sql_nextid();
						$new_entry = array(
							'attach_id'		=> $new_attachment_id,
							'is_orphan'		=> 1,
									'mimetype'		=> $filedata['mimetype'],							
							'real_filename'	=> $filedata['real_filename'],
							'attach_comment'=> $this->filename_data['filecomment'],
						);
						////////////////// Attachments in subfolders /////////////////////

								$this->attachment_data = array_merge(array(0 => $new_entry), $this->attachment_data);
								$this->message = preg_replace('#\[attachment=([0-9]+)\](.*?)\[\/attachment\]#e', "'[attachment='.(\\1 + 1).']\\2[/attachment]'", $this->message);
								$this->message = utf8_normalize_nfc(preg_replace('#\[(img|hsimg):' . $this->bbcode_uid . '\].*' . $real_filename . '\[\/(img|hsimg):' . $this->bbcode_uid . '\]#iu', '[attachment=0]' . $filedata['real_filename'] . '[/attachment]', utf8_decode_ncr($this->message)));
								$this->filename_data['filecomment'] = '';
						////////////////// Attachments in subfolders /////////////////////
						$ais_folder_1 = substr(substr($new_attachment_id + 1000000, -6), 0, 2);
						$ais_folder_2 = substr(substr($new_attachment_id + 1000000, -4), 0, 2);
						$ais_path_to_add = '/' . $ais_folder_1 . '/' . $ais_folder_2;
						
						if (!file_exists($phpbb_root_path . $config['upload_path'] . '/' . $ais_folder_1))
						{
								mkdir($phpbb_root_path . $config['upload_path'] . '/' . $ais_folder_1);
								copy($phpbb_root_path . $config['upload_path'] . '/index.htm', $phpbb_root_path . $config['upload_path'] . '/' . $ais_folder_1 . '/index.htm');
						}
						
						if (!file_exists($phpbb_root_path . $config['upload_path'] . $ais_path_to_add))
						{
								mkdir($phpbb_root_path . $config['upload_path'] . $ais_path_to_add);
								copy($phpbb_root_path . $config['upload_path'] . '/index.htm', $phpbb_root_path . $config['upload_path'] . $ais_path_to_add . '/index.htm');
						}

						if (file_exists($phpbb_root_path . $config['upload_path'] . '/' . $filedata['physical_filename']))
						{
							rename($phpbb_root_path . $config['upload_path'] . '/' . $filedata['physical_filename'], $phpbb_root_path . $config['upload_path'] . $ais_path_to_add . '/' . $filedata['physical_filename']);
						}

						if (file_exists($phpbb_root_path . $config['upload_path'] . '/thumb_' . $filedata['physical_filename']))
						{
							rename($phpbb_root_path . $config['upload_path'] . '/thumb_' . $filedata['physical_filename'], $phpbb_root_path . $config['upload_path'] . $ais_path_to_add . '/thumb_' . $filedata['physical_filename']);
						}
						////////////////// Attachments in subfolders /////////////////////								
							}
						}	
					}
					else
					{

					$filedata = upload_attachment($form_name, $forum_id, false, '', $is_message);
					$error = array_merge($error, $filedata['error']);

					if (!sizeof($error))
					{
						$sql_ary = array(
							'physical_filename'	=> $filedata['physical_filename'],
							'attach_comment'	=> $this->filename_data['filecomment'],
							'real_filename'		=> $filedata['real_filename'],
							'extension'			=> $filedata['extension'],
							'mimetype'			=> $filedata['mimetype'],
							'filesize'			=> $filedata['filesize'],
							'filetime'			=> $filedata['filetime'],
							'thumbnail'			=> $filedata['thumbnail'],
							'is_orphan'			=> 1,
							'in_message'		=> ($is_message) ? 1 : 0,
							'poster_id'			=> $user->data['user_id'],
						);

						$db->sql_query('INSERT INTO ' . ATTACHMENTS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary));

						////////////////// Attachments in subfolders /////////////////////
						$new_attachment_id = $db->sql_nextid();
						$new_entry = array(
							'attach_id'		=> $new_attachment_id,
							'is_orphan'		=> 1,
									'mimetype'		=> $filedata['mimetype'],							
							'real_filename'	=> $filedata['real_filename'],
							'attach_comment'=> $this->filename_data['filecomment'],
						);
						////////////////// Attachments in subfolders /////////////////////

						$this->attachment_data = array_merge(array(0 => $new_entry), $this->attachment_data);
						$this->message = preg_replace('#\[attachment=([0-9]+)\](.*?)\[\/attachment\]#e', "'[attachment='.(\\1 + 1).']\\2[/attachment]'", $this->message);
						$this->filename_data['filecomment'] = '';
						////////////////// Attachments in subfolders /////////////////////
						$ais_folder_1 = substr(substr($new_attachment_id + 1000000, -6), 0, 2);
						$ais_folder_2 = substr(substr($new_attachment_id + 1000000, -4), 0, 2);
						$ais_path_to_add = '/' . $ais_folder_1 . '/' . $ais_folder_2;
						
						if (!file_exists($phpbb_root_path . $config['upload_path'] . '/' . $ais_folder_1))
						{
								mkdir($phpbb_root_path . $config['upload_path'] . '/' . $ais_folder_1);
								copy($phpbb_root_path . $config['upload_path'] . '/index.htm', $phpbb_root_path . $config['upload_path'] . '/' . $ais_folder_1 . '/index.htm');
						}
						
						if (!file_exists($phpbb_root_path . $config['upload_path'] . $ais_path_to_add))
						{
								mkdir($phpbb_root_path . $config['upload_path'] . $ais_path_to_add);
								copy($phpbb_root_path . $config['upload_path'] . '/index.htm', $phpbb_root_path . $config['upload_path'] . $ais_path_to_add . '/index.htm');
						}

						if (file_exists($phpbb_root_path . $config['upload_path'] . '/' . $filedata['physical_filename']))
						{
							rename($phpbb_root_path . $config['upload_path'] . '/' . $filedata['physical_filename'], $phpbb_root_path . $config['upload_path'] . $ais_path_to_add . '/' . $filedata['physical_filename']);
						}

						if (file_exists($phpbb_root_path . $config['upload_path'] . '/thumb_' . $filedata['physical_filename']))
						{
							rename($phpbb_root_path . $config['upload_path'] . '/thumb_' . $filedata['physical_filename'], $phpbb_root_path . $config['upload_path'] . $ais_path_to_add . '/thumb_' . $filedata['physical_filename']);
						}
						////////////////// Attachments in subfolders /////////////////////						
					}
				}
				}
				else
				{
					$error[] = sprintf($user->lang['TOO_MANY_ATTACHMENTS'], $cfg['max_attachments']);
				}
			}
		}

		foreach ($error as $error_msg)
		{
			$this->warn_msg[] = $error_msg;
		}
	}
Усе равно не хочет раскидывать старые вложения по папкам...

Добавлено спустя 2 минуты 49 секунд:
И еще...по какой причине новые папки не перенимают права от родительской?
Родитель - ЧМОД 777
Получаются новые папки-подпапки - ЧМОД 666 и переносов в них нема...
NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70
Аватара пользователя
Pazh
Former team member
Сообщения: 2317
Стаж: 16 лет 10 месяцев
Благодарил (а): 42 раза
Поблагодарили: 506 раз

Re: [RC] Attachments in subfolders (вложения в подпапках)

Сообщение Pazh »

Пчелкин да и с этим тоже - ноги из одного места ростут: необходима правка кода функции phpbb_unlink

Короче вот вариант мода с распределением по папкам вида files/год/месяц/день/ - удобно для больших форумов с большим кол-вом вложений в день + fix багов с post_merge и потерянных вложений
attachments_in_subfolders_yyyymmdd.zip
НЕ ПРИМЕНЯТЬ ЭТИ ПРАВКИ ДЛЯ МОДА с распределением папок в зависимости от attach_id - можно ТОЛЬКО сделать по аналогии если руки растут из правильного места

Добавлено спустя 1 минуту 35 секунд:
Пчелкин писал(а):И еще...по какой причине новые папки не перенимают права от родительской?
потому что в функционале мода нет явного вызова phpbb_chmod
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Помощь в ЛС/email только за WM или ЮMoney
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11361
Стаж: 16 лет 8 месяцев
Благодарил (а): 1832 раза
Поблагодарили: 1358 раз

Re: [RC] Attachments in subfolders (вложения в подпапках)

Сообщение Пчелкин »

Я видел это вариант у чамника... Но и читал про проблемы... Это ж скока папок получится?
Pazh Ответь нормально - сабж откатить и ставить этот?
А старые вложения тож по подпапкам-дняшкам раскидаются?
Я этот вариант у чамника вертел туда сюда с неделю и не решился...
Твой вариант на основе ЕГО или свое сваял?

Мод стоит в отдельную тему - затеряется...
Есть на Денвере копия форума с 125 000 вложений... Вечером пробую это вариант...

Добавлено спустя 2 минуты 6 секунд:
Pazh писал(а):потому что в функционале мода нет явного вызова
Не делает чести автору... Он и понятно - он ведь не phpBB-шник... Он сам об этом несколько раз писал... Булочник он..

Добавлено спустя 50 секунд:
Pazh писал(а):+ fix багов с post_merge и потерянных вложений
А рулькам?
NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70
Аватара пользователя
Pazh
Former team member
Сообщения: 2317
Стаж: 16 лет 10 месяцев
Благодарил (а): 42 раза
Поблагодарили: 506 раз

Re: [RC] Attachments in subfolders (вложения в подпапках)

Сообщение Pazh »

fix для правильной работы удаления вложений для стандартного мода:
в файле includes/functions_admin.php
найти

Код: Выделить всё

// Because of copying topics or modifications a physical filename could be assigned more than once. If so, do not remove the file itself.
	$sql = 'SELECT COUNT(attach_id) AS num_entries
		FROM ' . ATTACHMENTS_TABLE . "
		WHERE physical_filename = '" . $db->sql_escape(utf8_basename($filename)) . "'";
	$result = $db->sql_query($sql);
	$num_entries = (int) $db->sql_fetchfield('num_entries');
	$db->sql_freeresult($result);

	// Do not remove file if at least one additional entry with the same name exist.
	if (($entry_removed && $num_entries > 0) || (!$entry_removed && $num_entries > 1))
	{
		return false;
	}

	$filename = ($mode == 'thumbnail') ? 'thumb_' . utf8_basename($filename) : utf8_basename($filename);
	return @unlink($phpbb_root_path . $config['upload_path'] . '/' . $filename);
заменить на

Код: Выделить всё

////////////////// Attachments in subfolders /////////////////////
// Because of copying topics or modifications a physical filename could be assigned more than once. If so, do not remove the file itself.
	$sql = 'SELECT attach_id
		FROM ' . ATTACHMENTS_TABLE . "
		WHERE physical_filename = '" . $db->sql_escape(utf8_basename($filename)) . "'";
	$result = $db->sql_query($sql);
	$entries = array();
	while($row = $db->sql_fetchrow($result))
	{
		$entries[] = $row['attach_id'];
	}	
	$db->sql_freeresult($result);

	// Do not remove file if at least one additional entry with the same name exist.
	if (($entry_removed && sizeof($entries) > 0) || (!$entry_removed && sizeof($entries) > 1))
	{
		unset($entries);
		return false;
	}

	$filename = ($mode == 'thumbnail') ? 'thumb_' . utf8_basename($filename) : utf8_basename($filename);
	foreach($entries as $attach_id)
	{
		$ais_folder_1 = substr(substr($attach_id + 1000000, -6), 0, 2);
		$ais_folder_2 = substr(substr($attach_id + 1000000, -4), 0, 2);
		$ais_path_to_add = '/' . $ais_folder_1 . '/' . $ais_folder_2;

		@unlink($phpbb_root_path . $config['upload_path'] . $ais_path_to_add . '/' . $filename);
	}
return true;
////////////////// Attachments in subfolders /////////////////////
КОД НЕ ПРОВЕРЯЛСЯ!!!!
Помощь в ЛС/email только за WM или ЮMoney
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11361
Стаж: 16 лет 8 месяцев
Благодарил (а): 1832 раза
Поблагодарили: 1358 раз

Re: [RC] Attachments in subfolders (вложения в подпапках)

Сообщение Пчелкин »

Pazh писал(а):files/год/месяц/день/
Было б достаточно files/год/месяц/
NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70
Аватара пользователя
Pazh
Former team member
Сообщения: 2317
Стаж: 16 лет 10 месяцев
Благодарил (а): 42 раза
Поблагодарили: 506 раз

Re: [RC] Attachments in subfolders (вложения в подпапках)

Сообщение Pazh »

Пчелкин писал(а):Ответь нормально - сабж откатить и ставить этот?
если ты уже распределил по стандартному моду, то мой уже не получится ставить
Пчелкин писал(а):А старые вложения тож по подпапкам-дняшкам раскидаются?
да, там есть скрипт для этого настраиваемый - по 200 вложений за цикл (чтобы по таймауту не отвалиться) можно или скопировать в новую папку или перенести
Пчелкин писал(а):Твой вариант на основе ЕГО или свое сваял?
Это мой вариант на основе стандартного мода, у меня тоже нет вызова phpbb_chmod - надо у владимир1983 узнать как обстояли дела на реальном форуме - вроде о проблеме с правами он мне не писал
Пчелкин писал(а):А рулькам?
щас добавлю еще и для post_merge

Добавлено спустя 2 минуты 36 секунд:
Пчелкин писал(а):Было б достаточно files/год/месяц/
в моем моде это правится в одном месте: в файле includes\functions_attachments_in_subfolders.php
найти и удалить

Код: Выделить всё

	$day = date('d',$attach_row['filetime']);
найти

Код: Выделить всё

$path_to_add = $year . '/' . $month . '/' . $day;
заменить на

Код: Выделить всё

$path_to_add = $year . '/' . $month;
и удалить вообще

Код: Выделить всё

	if (!file_exists($target_dir . '/' . $year . '/' . $month . '/' . $day))
	{
		mkdir($target_dir . '/' . $year . '/' . $month . '/' . $day);
		copy($source_dir . '/index.htm', $target_dir . '/' . $year . '/' . $month . '/' . $day . '/index.htm');
		copy($source_dir . '/.htaccess', $target_dir . '/' . $year . '/' . $month . '/' . $day . '/.htaccess');
	}
все

Также в этом файле можно добавить phpbb_chmod после mkdir если нужно для новых папок выставить спецправа
Помощь в ЛС/email только за WM или ЮMoney
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11361
Стаж: 16 лет 8 месяцев
Благодарил (а): 1832 раза
Поблагодарили: 1358 раз

Re: [RC] Attachments in subfolders (вложения в подпапках)

Сообщение Пчелкин »

Pazh писал(а): то мой уже не получится ставить
Откатиться запросто... OLD папка еще на месте... ИЗО вложения по новому еще не добавлялись...закрыл вложения на время установки
Пчелкин писал(а):А рулькам?
Я про твой вариант для этих как - [RC] Attachments in subfolders (вложения в подпапках)

Добавлено спустя 1 минуту 2 секунды:
Pazh писал(а):все
Ага...нашел...
NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70
Аватара пользователя
Pazh
Former team member
Сообщения: 2317
Стаж: 16 лет 10 месяцев
Благодарил (а): 42 раза
Поблагодарили: 506 раз

Re: [RC] Attachments in subfolders (вложения в подпапках)

Сообщение Pazh »

дружба стандартного мода с Posts_merging
файл includes/posts_merging.php
найти

Код: Выделить всё

					if (!@file_exists($phpbb_root_path . $config['upload_path'] . '/' . basename($orphan_rows[$attach_row['attach_id']]['physical_filename'])))
заменить на

Код: Выделить всё

					////////////////// Attachments in subfolders /////////////////////
					$ais_folder_1 = substr(substr($attach_row['attach_id'] + 1000000, -6), 0, 2);
					$ais_folder_2 = substr(substr($attach_row['attach_id'] + 1000000, -4), 0, 2);
					$ais_path_to_add = '/' . $ais_folder_1 . '/' . $ais_folder_2;
					////////////////// Attachments in subfolders /////////////////////
					if (!@file_exists($phpbb_root_path . $config['upload_path'] . $ais_path_to_add . '/' . basename($orphan_rows[$attach_row['attach_id']]['physical_filename'])))
Помощь в ЛС/email только за WM или ЮMoney
Anvar
Former team member
Сообщения: 1964
Стаж: 16 лет 5 месяцев
Благодарил (а): 67 раз
Поблагодарили: 800 раз

Re: [RC] Attachments in subfolders (вложения в подпапках)

Сообщение Anvar »

С датами сильно за мудрено, не буду откатывать форумы, спасибо за найденные недочёты, и уже готовые быстрые решения.
Не пишите вопросы лично, если можете задать их на форуме!
Спецзаказы не интересуют!
Anvar
Former team member
Сообщения: 1964
Стаж: 16 лет 5 месяцев
Благодарил (а): 67 раз
Поблагодарили: 800 раз

Re: [RC] Attachments in subfolders (вложения в подпапках)

Сообщение Anvar »

[RC] Attachments in subfolders (вложения в подпапках) Вполне нормально работает.
Последний раз редактировалось Anvar 18.09.2014 7:03, всего редактировалось 1 раз.
Аватара пользователя
Pazh
Former team member
Сообщения: 2317
Стаж: 16 лет 10 месяцев
Благодарил (а): 42 раза
Поблагодарили: 506 раз

Re: [RC] Attachments in subfolders (вложения в подпапках)

Сообщение Pazh »

Anvar а теперь сравни внимательно мой код и свой и увидишь что он на 90% по функционалу одинаковый, ТОЛЬКО ты делаешь:
1. дополнительный запрос
2. посмотри выше своих правок и прикинь для чего там в запросе стоит count(attach_id) а не просто attach_id, и найдешь почему твой вариант может не корректно сработать
Помощь в ЛС/email только за WM или ЮMoney
Anvar
Former team member
Сообщения: 1964
Стаж: 16 лет 5 месяцев
Благодарил (а): 67 раз
Поблагодарили: 800 раз

Re: [RC] Attachments in subfolders (вложения в подпапках)

Сообщение Anvar »

Pazh, Да я уже сравнил, но не совсем внимательно.
Последний раз редактировалось Anvar 18.09.2014 7:00, всего редактировалось 1 раз.
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11361
Стаж: 16 лет 8 месяцев
Благодарил (а): 1832 раза
Поблагодарили: 1358 раз

Re: [RC] Attachments in subfolders (вложения в подпапках)

Сообщение Пчелкин »

Не выходит...

Код: Выделить всё

Страница: move_attachments_in_subfolders.php?current_id=16398
Файл: [ROOT]/move_attachments_in_subfolders.php
Строка: 103	[PHP Warning]

mkdir(): Permission denied	
2	меньше минуты назад	Pthelovod

- 
Язык: ru	Страница: move_attachments_in_subfolders.php?current_id=16398
Файл: [ROOT]/move_attachments_in_subfolders.php
Строка: 104	[PHP Warning]

copy(files_new/index.htm): failed to open stream: No such file or directory	
3	меньше минуты назад	Pthelovod

- 
Язык: ru	Страница: move_attachments_in_subfolders.php?current_id=16398
Файл: [ROOT]/move_attachments_in_subfolders.php
Строка: 109	[PHP Warning]

mkdir(): No such file or directory	
4	меньше минуты назад	Pthelovod

- 
Язык: ru	Страница: move_attachments_in_subfolders.php?current_id=16398
Файл: [ROOT]/move_attachments_in_subfolders.php
Строка: 110	[PHP Warning]

copy(files_new/01/index.htm): failed to open stream: No such file or directory	
5	меньше минуты назад	Pthelovod

- 
Язык: ru	Страница: move_attachments_in_subfolders.php?current_id=16398
Файл: [ROOT]/move_attachments_in_subfolders.php
Строка: 115	[PHP Warning]

mkdir(): No such file or directory	
6	меньше минуты назад	Pthelovod

- 
Язык: ru	Страница: move_attachments_in_subfolders.php?current_id=16398
Файл: [ROOT]/move_attachments_in_subfolders.php
Строка: 116	[PHP Warning]

copy(files_new/01/63/index.htm): failed to open stream: No such file or directory	
7	меньше минуты назад	Pthelovod

- 
Язык: ru	Страница: move_attachments_in_subfolders.php?current_id=16398
Файл: [ROOT]/move_attachments_in_subfolders.php
Строка: 124	[PHP Warning]

copy(files_new/01/63/55_e2a1f6f99182cabfd9c1a87e3f8174f2): failed to open stream: No such file or directory	
8	меньше минуты назад	Pthelovod

- 
Язык: ru	Страница: move_attachments_in_subfolders.php?current_id=16398
Файл: [ROOT]/move_attachments_in_subfolders.php
Строка: 136	[PHP Warning]

copy(files_new/01/63/thumb_55_e2a1f6f99182cabfd9c1a87e3f8174f2): failed to open stream: No such file or directory
Ничего не понимаю...

Добавлено спустя 21 минуту 8 секунд:
Странно... Владельцем созданных скриптом подпапок и папок становится апач. С чего бы это?
NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70

Вернуться в «Бета-версии модов для phpBB 3.0.x»