Всем привет. Данный хак написан для 1.10.7.После загрузки файл сохраняется в папке /upload/users/messages.При удалении сообщения файл тоже удаляется.В базу ничего не пишется.Все файлы хранятся в одной папке, поэтому при отчистки(удалении сразу всех входящих) файлы не удаляются.Что бы это работало файлы нужно хранить в отдельной папке для каждого юзера или писать в базу. Это возможно и если будет интерес к данному хаку можно будет дописать.
Итак приступим.
1.Добавляем кнопку в панель
Дописываем в файл '/templates/_default_/special/bbcode_panel.php'.
2.Файл '/includes/bbcode/bbcode.lib.php'. Обрабатываем эту кнопку.
В private $info_about_tags = array( добавляем
и дописываем ф-цию
3.В папку '/includes/bbcode/images' добавляем картинку кнопки, имя file.gif.
4.Файлы компонента users.
'/components/users/frontend.php'.
Дописываем в if ($do=='delmessage'){ после
'/components/users/model.php'. Прописывем конфиг.
Аяксовские "штучки" для загрузки файла.
5.Файл core/js/smiles.php.
Добавляем 3 ф-ции.
6.Создаём файл core/ajax/fileinsert.php и пишем туда следующий код
7.Добавляем языковые переменные.
Файл '/languages/ru/lang.php'.
Файл '/languages/ru/components/user.php'.
И дописываем в файл /templates/_default_/components/com_users_messages_add.tpl в самый верх
Вроде всё. Кому лень писать здесь файлы с изменениями для чистого дефолтового шаблона.
Посмотреть можно здесь vasya,fedor: 123456
Итак приступим.
1.Добавляем кнопку в панель
Дописываем в файл '/templates/_default_/special/bbcode_panel.php'.
Группе, к которой вы принадлежите, запрещено просматривать этот скрытый текст
В private $info_about_tags = array( добавляем
'handler' => 'file_2html', 'is_close' => false, 'lbr' => 0, 'rbr' => 0, 'permission_top_level' => true, ),
// Функция - обработчик тега [file] function file_2html($elem) { global $_LANG; $href = $this -> get_html($elem['val']); $name = $this->cleanAttrValue($href); return '<div class="attach">'.$_LANG['ATTACH_FILE'].':<a href="'.$href.'">'.$name.'</a></div>'; }
4.Файлы компонента users.
'/components/users/frontend.php'.
Дописываем в if ($do=='delmessage'){ после
$msg = $inDB->get_fields('cms_user_msg', "id='$id'", '*');
$mess = $msg['message']; else $div = ''; $dirPath = PATH . '/upload/users/messages'; { { if ($file != "." && $file != "..") { if ($file = $filename) { } break; } } }
'/components/users/model.php'. Прописывем конфиг.
......, 'f_ext' => 'txt doc zip rar arj png gif jpg jpeg bmp pdf dwg xls docs', 'f_size' => 1024, 'f_on' => 1, 'f_max' => 5, ........., // И дописываеи ф-цию public function addUpdateFileAttachments() { if(!@$_FILES['attach_file']['name'][0]) { return 0; } $success = true; if($_FILES['attach_file']['size'] > $this->config['f_size']*1024) { return false; } $file = $_FILES['attach_file']['name']; $file = cmsCore::strToURL(mb_substr($file, 0, mb_strrpos($file, '.'))) . '_' . uniqid() . '.' . $ext; $destination = PATH.'/upload/users/messages/'.$file; // Формируем массив $result['filesize'] = $this->inDB->escape_string($_FILES['attach_file']['size']); $result['filename'] = $this->inDB->escape_string($file); if (cmsCore::moveUploadedFile($_FILES['attach_file']['tmp_name'], $destination, $error)) { return $result; } else { // @rmdir(PATH.'/upload/users/message'); return false; } }
5.Файл core/js/smiles.php.
Добавляем 3 ф-ции.
Группе, к которой вы принадлежите, запрещено просматривать этот скрытый текст
6.Создаём файл core/ajax/fileinsert.php и пишем туда следующий код
Группе, к которой вы принадлежите, запрещено просматривать этот скрытый текст
7.Добавляем языковые переменные.
Файл '/languages/ru/lang.php'.
$_LANG['UPLOAD_FILE'] = 'Загрузить файл'; $_LANG['ATTACH_FILE'] = 'Файл'; в массив 'IF' => 'Загрузить файл', )
$_LANG['CHECK_SIZE_TYPE_FILE'] ='Ошибки при загрузке одного или нескольких файлов. Проверьте правильность размера и типа файла. Количество загружаемых файлов на один пост не должно превышать';
<script type="text/javascript" src="/includes/jquery/upload/ajaxfileupload.js"></script>
Посмотреть можно здесь vasya,fedor: 123456
Реклама #
ytugello 8 лет назад #
ytugello 8 лет назад #