Привет всем. Может кто знает ответ на мой вопрос. Пользуюсь модулем Upload, все в нем устраивает, кроме одного. Если поставить в правах не смотреть прикрепленные файлы для анонимов, то анонимы просто не знают, что такой файл есть. Как можно сделать так, чтобы когда аноним заходит в новость, чтобы ему выдавалась информация, типа войдите или зарегистрируйтесь для скачивания файла?
Заранее спасибо.
Комментарии
нужно изменить вывод файлов? окей открываем файл upload.module и 581 строка видим функцию
<?php
function theme_upload_attachments($files) {
$header = array(t('Attachment'), t('Size'));
$rows = array();
foreach ($files as $file) {
$file = (object)$file;
if ($file->list && !$file->remove) {
// Generate valid URL for both existing attachments and preview of new attachments (these have 'upload' in fid)
$href = file_create_url((strpos($file->fid, 'upload') === FALSE ? $file->filepath : file_create_filename($file->filename, file_create_path())));
$text = $file->description ? $file->description : $file->filename;
$rows[] = array(l($text, $href), format_size($file->filesize));
}
}
if (count($rows)) {
return theme('table', $header, $rows, array('id' => 'attachments'));
}
}
?>
далее копируем её и вставляем в файл template.php вашей темы
далее делаем небольшие изменения
<?php
function имя_темы_upload_attachments($files) { // имя темы сменить на свое )
$header = array(t('Attachment'), t('Size'));
$rows = array();
foreach ($files as $file) {
$file = (object)$file;
if ($file->list && !$file->remove) {
// Generate valid URL for both existing attachments and preview of new attachments (these have 'upload' in fid)
$href = file_create_url((strpos($file->fid, 'upload') === FALSE ? $file->filepath : file_create_filename($file->filename, file_create_path())));
$text = $file->description ? $file->description : $file->filename;
$rows[] = array(l($text, $href), format_size($file->filesize));
}
}
if (count($rows)) {
global $user;
if($user->uid) { // проверка на авторизацию
return theme('table', $header, $rows, array('id' => 'attachments'));
} else {
// выводим наш текст
return t('<a href="login">Login</a> or <a href="register">register</a> to download files', array('login' => url('user/login', $destination), 'register' => url('user/register', $destination)));
}
}
}
?>
И ничего не надо приписывать в node.tpl.php? Чето не работает((( Вставил, но гостям ничего не показывается.
кэш?
Безрезультатно. Ошибок не показывает, но и текста тоже.
функцию правильно назвал?
Я по разному пробовал. И вводил название темы, и без названия, и как то по своему. Результата нету.
Если у меня тема barlow, то мне надо вводить название функции function barlow_upload_attachments. Или я полный идиот))
ну правильно вроде, попробуй еще phptemplate_upload_attachments
Нифига все равно.
Ну ладно. Попробую на досуге разобраться. Спсибо за уделенное мне внимание.
Не забывайте, что файл можно будет скачать прямой ссылкой, если кто-то ее опубликует.
Андрей, если задача Вами решена, пожалуйста, отпишите здесь, чтобы не изобретать велосипед по-новой изакрыть тему. СПасибо.
возможно тут решение
http://drupal.org/node/384858
http://drupal.org/node/67001
http://drupal.org/project/private_upload
http://drupal.org/node/3630
Проблема была реше совсем другим образом. Я не смог сделать через php. Пошел другим путем. Ссылки стал вставлять в текст, который не показывается для гостей.
Как решили проблему, отпишитесь, пожалуйста.
Отпишитесь пожалуйста, как решили?
Подобное решали здесь
Информация довольно познавательная, тут, нужно изучать ее дальше.
Информация в сети, естественно, бывает разнообразной, однако люди зачастую просто не могут по достоинству оценить предложенный материал, понять всю глубину, красочность мысли атора. Отсюда вывод - желательно инфо делать проще, как у вас.
Как всегда у вас все очень полезно и познавательно, информативно и оперативно хороший ресурс.
Ты хотел чтобы тебе за одну минуту ответили?
Представленные материалы конечно познавательны, хотел бы узнать побольше на данную тему.