0 Пользователей и 1 Гость просматривают эту тему.
  • 10 Ответов
  • 3653 Просмотров
*

Rudzik

  • Осваиваюсь на форуме
  • 23
  • 0 / 0
Как осуществить в Download archive - скачивание файлов только зарегистрированным пользователям, но при этом кнопку "Download" видно и ведет она на страницу регистрации. Гдето на сайте такое видел. Еще надпись на кнопке была "Login", а после регистрации "Download".
« Последнее редактирование: 15.04.2011, 22:29:19 от Rudzik »
*

MetaSpirit

  • Завсегдатай
  • 1370
  • 106 / 0
  • R.A.S.Lab[.org]
Как осуществить в Download archive - скачивание файлов только зарегистрированным пользователям, но при этом кнопку "Download" видно и ведет она на страницу регистрации. Гдето на сайте такое видел. Еще надпись на кнопке была "Login", а после регистрации "Download".
На yoonique.net такое реализовано.
R.A.S.Lab[.org]: ZOOvirtue - корзина для ZOO, Яндекс.Карты для ZOO, ItemPanes - табы для ZOO, ZOOlendar - календарь для ZOO  и др.
Создание расширений для YOOtheme ZOO на заказ. Становитесь в очередь.
*

Rudzik

  • Осваиваюсь на форуме
  • 23
  • 0 / 0
На yoonique.net такое реализовано.
::)..верно! там и видел
« Последнее редактирование: 10.04.2011, 15:25:44 от Rudzik »
*

Rudzik

  • Осваиваюсь на форуме
  • 23
  • 0 / 0
мдааааа...  :(  Видать на форуме собрались знатоки не лучше меня. Извените за сорказм! Никого нехочу обидеть, просто уже сутки обновляю страницу через каждіых 5 мин, чтоб увидеть ответ.
*

MetaSpirit

  • Завсегдатай
  • 1370
  • 106 / 0
  • R.A.S.Lab[.org]
Для себя делал похожее, но не для элемента "Download". Выводил целую форму авторизации по клику в модальном окне.
В вашем случае должно быть где-то так:

Код: php
protected function _render($params = array()) {

$user = &JFactory::getUser();
$guest = $user->guest;

/* If user not logged, redirect to authorization*/
if ($guest==1) {
                             // stay on the same page
$uri = JFactory::getURI();
                             return '<a class="yoo-zoo element-download-button" href="'.JRoute::_('index.php?option=com_user&view=login&return='.base64_encode($uri).').'"><span><span>Login</span></span></a>';
                             }
/* If user logged, display download*/
else {
// render

}
}
Если где-то кавычки пропустил или лишние поставил, прошу не обижатся.
« Последнее редактирование: 11.04.2011, 19:42:56 от MetaSpirit »
R.A.S.Lab[.org]: ZOOvirtue - корзина для ZOO, Яндекс.Карты для ZOO, ItemPanes - табы для ZOO, ZOOlendar - календарь для ZOO  и др.
Создание расширений для YOOtheme ZOO на заказ. Становитесь в очередь.
*

Rudzik

  • Осваиваюсь на форуме
  • 23
  • 0 / 0
Спасибо за ответ, но если можно поточнее... Где вписывать?  
Код
	public function render($params = array()) {

// init vars
$filename      = basename($this->_data->get('file'));
$download_link = $this->getLink();
$filetype      = str_replace('.','',$this->getExtension());
$params    = $this->app->data->create($params);
$display       = $params->get('display', null);
$download_name = $params->get('download_name', '');
$download_name = $this->app->string->str_ireplace('{filename}', $filename, $download_name);

// render layout
Пробовал в download.php - $uri = JFactory::getURI();
                             return '<a class="yoo-zoo element-download-button" href="'.JRoute::_('index.php?option=com_user&view=login&return='.base64_encode($uri).').'"><span><span>Login</span></span></a>';   
                             }
синтаксические ошибки. Исправить несмог так как с PHP трудности  :'(
« Последнее редактирование: 12.04.2011, 20:31:53 от Rudzik »
*

MetaSpirit

  • Завсегдатай
  • 1370
  • 106 / 0
  • R.A.S.Lab[.org]
Спасибо за ответ, но если можно поточнее... Где вписывать? 

Пробовал в download.php - $uri = JFactory::getURI();
                             return '<a class="yoo-zoo element-download-button" href="'.JRoute::_('index.php?option=com_user&view=login&return='.base64_encode($uri).').'"><span><span>Login</span></span></a>';   
                             }
синтаксические ошибки. Исправить несмог так как с PHP трудности  :'(
Файл download.php элемента "Download" функция render. В итоге должно получится где-то так:
Код: php
public function render($params = array()) {
$user = &JFactory::getUser();
$guest = $user->guest;
 
/* If user not logged, redirect to authorization*/
if ($guest==1) {
              // stay on the same page
$uri = JFactory::getURI();
$url = $uri->toString();
$button = '<a class="yoo-zoo element-download-button" href="'.JRoute::_('index.php?option=com_user&view=login&return='.base64_encode($url)).'"><span><span>Login</span></span></a>';
               return $button;
                             }
/* If user logged, display download*/
else {
// init vars
$filename      = basename($this->_data->get('file'));
$download_link = $this->getLink();
$filetype      = str_replace('.','',$this->getExtension());
$params    = $this->app->data->create($params);
$display       = $params->get('display', null);
$download_name = $params->get('download_name', '');
$download_name = $this->app->string->str_ireplace('{filename}', $filename, $download_name);

// render layout
if ($layout = $this->getLayout()) {
return $this->renderLayout($layout,
array(
'file' => $this->_data->get('file'),
'filename' => $filename, 'size' => $this->getSize(),
'hits' => (int) $this->_data->get('hits', 0),
'download_name' => $download_name,
'download_link' => $download_link,
'filetype' => $filetype,
'display' => $display,
'limit_reached' => $this->isDownloadLimitReached(),
'download_limit' => $this->_data->get('download_limit')
)
);
}
}
}//function
Синтаксических ошибок в коде быть не должно.
R.A.S.Lab[.org]: ZOOvirtue - корзина для ZOO, Яндекс.Карты для ZOO, ItemPanes - табы для ZOO, ZOOlendar - календарь для ZOO  и др.
Создание расширений для YOOtheme ZOO на заказ. Становитесь в очередь.
*

Rudzik

  • Осваиваюсь на форуме
  • 23
  • 0 / 0
Спасибо! По функциональности - Работает! Но! пропала красивая кнопка только ссылка login и вместо иконки файла - login. Размер файла: Login  Скачиваний: Login Чуток перебор получился. Да! и еще, если кликнуть по ссылке login -> выбрасывает в site/component/user/?view=login&return=aHR0cDovL2Fncm9kaW0tNC9kb3dubG9hZHMvY2F0ZWdvcnkvcHJpY2VzLmh0bWw%3D (404 - ошибка)
- online
- offline  
« Последнее редактирование: 15.04.2011, 02:37:37 от Rudzik »
*

MetaSpirit

  • Завсегдатай
  • 1370
  • 106 / 0
  • R.A.S.Lab[.org]
Спасибо! По функциональности - Работает! Но! пропала красивая кнопка только ссылка login и вместо иконки файла - login. Размер файла: Login  Скачиваний: Login Чуток перебор получился.
Видимо скрипт не подхватил файл стилей.
Цитировать
Да! и еще, если кликнуть по ссылке login -> выбрасывает в site/component/user/?view=login&return=aHR0cDovL2Fncm9kaW0tNC9kb3dubG9hZHMvY2F0ZWdvcnkvcHJpY2VzLmh0bWw%3D (404 - ошибка)
Это у Вас проблемы с ЧПУ.

Итак, версия 2, более прицельные изменения.
Файл download.php элемента "Download" функция render. Ничего не изменяем. А все изменения, что были убираем.
Идем в media/elements/download/tmpl/ редактируем файл download.php. Находим "case 'buttonlink':" и вставляем следующий код:
Код: php
case 'buttonlink':
if ($limit_reached) {
echo '<a class="yoo-zoo element-download-button" href="javascript:alert(\''.JText::_('Download limit reached').'\');" title="'.JText::_('Download limit reached').'"><span><span>'.JText::_('Download').'</span></span></a>';
} else {
$user = &JFactory::getUser();
$guest = $user->guest;
 
/* If user not logged, redirect to authorization*/
if ($guest==1) {
// stay on the same page
$uri = JFactory::getURI();
$url = $uri->toString();
echo '<a class="yoo-zoo element-download-button" href="'.JRoute::_('index.php?option=com_user&view=login&return='.base64_encode($url)).'"><span><span>Login</span></span></a>';
                             }
/* If user logged, display download*/
else {
echo '<a class="yoo-zoo element-download-button" href="'.JRoute::_($download_link).'" title="'.$download_name.'"><span><span>'.JText::_('Download').'</span></span></a>';
}
}
break;
Цитировать
Исправить несмог так как с PHP трудности
РНР советую поучить, т.к. на форуме не всегда можно найти разжеванные решения.
R.A.S.Lab[.org]: ZOOvirtue - корзина для ZOO, Яндекс.Карты для ZOO, ItemPanes - табы для ZOO, ZOOlendar - календарь для ZOO  и др.
Создание расширений для YOOtheme ZOO на заказ. Становитесь в очередь.
*

Rudzik

  • Осваиваюсь на форуме
  • 23
  • 0 / 0
Чуток модифицировал (готовое решение):
1. Текст в кнопке для незарегистрированных - красным,
2. В ссылке 'index.php?option=com_users&view=registration&Itemid='.base64_encode($url) исправлена ошибка для Joomla 1.6 и ведет на страницу регистрации.
3. Текст в кнопке берется из локализации для Download Archive (нада вписать текст в media/zoo/applications/download/language/ru-RU/ru-RU.com_zoo.ini
Код
DOWNLOAD="Скачать" 
LOGIN="Авторизация"


Код
case 'buttonlink':
if ($limit_reached) {
echo '<a class="yoo-zoo element-download-button" href="javascript:alert(\''.JText::_('Download limit reached').'\');" title="'.JText::_('Download limit reached').'"><span><span>'.JText::_('Download').'</span></span></a>';
} else {
$user = &JFactory::getUser();
$guest = $user->guest;
 
/* If user not logged, redirect to authorization*/
if ($guest==1) {
// stay on the same page
$uri = JFactory::getURI();
$url = $uri->toString();
echo '<a class="yoo-zoo element-download-button" href="'.JRoute::_('index.php?option=com_users&view=registration&Itemid='.base64_encode($url)).'"><span><span><font color="red">'.JText::_('Login').'</font></span></span></a>';
                             }
/* If user logged, display download*/
else {
echo '<a class="yoo-zoo element-download-button" href="'.JRoute::_($download_link).'" title="'.$download_name.'"><span><span>'.JText::_('Download').'</span></span></a>';
}
}
break;

Спасибо MetaSpirit! Можно тему добавить в прикрепленные. Думаю многим пригодится.
« Последнее редактирование: 16.04.2011, 00:37:20 от Rudzik »
*

MetaSpirit

  • Завсегдатай
  • 1370
  • 106 / 0
  • R.A.S.Lab[.org]
Пожалуйста. Сделаю оговорку, для J!1.5 нужно использовать в ссылке com_user, ну а для J!1.6 как указано выше.
R.A.S.Lab[.org]: ZOOvirtue - корзина для ZOO, Яндекс.Карты для ZOO, ItemPanes - табы для ZOO, ZOOlendar - календарь для ZOO  и др.
Создание расширений для YOOtheme ZOO на заказ. Становитесь в очередь.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Решение. Lightbox из Widgetkit в ZOO

Автор Chedwick

Ответов: 29
Просмотров: 13698
Последний ответ 23.06.2016, 01:05:30
от lalalag
[Download] ZOOlingual - мультиязычность для Zoo 2.xx !

Автор CTPAHHuK

Ответов: 26
Просмотров: 13543
Последний ответ 14.09.2015, 07:58:20
от Ker
Отображение модулей только в айтемах определённой категории

Автор kapustin

Ответов: 3
Просмотров: 983
Последний ответ 17.10.2013, 14:18:35
от b2z
Проблема с ZOO 2.5.10 - заголовки только на английском языке!

Автор Drunk

Ответов: 11
Просмотров: 2118
Последний ответ 07.07.2013, 11:37:37
от Ingener
Как добавленить файл в полет типа Download из админки?

Автор azx

Ответов: 1
Просмотров: 1157
Последний ответ 14.03.2013, 13:50:26
от MetaSpirit