Как вевысти форму регистрации на главную?

  • 25 Ответов
  • 8179 Просмотров

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

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

Желательно что бы форма была на чисто белом экране (без отображения в шаблоне сайта)

*

Оффлайн SmokerMan

Ставим пункт меню (Пользователь - Разметка входа по умолчанию) главным, т.е. по умолчанию.
Дальше в шаблоне прописываем, привел пример для области где выводиться компонент
Код: (php) [Выделить]
<?php 
$user 
= &JFactory::getUser();
$option JRequest::getWord('option');
if (!
$user->guest) { ?>

  <jdoc:include type="component" />
<?php } else if ($option == 'com_user' && $user->guest) { ?>
  <jdoc:include type="component" />
<?php } else { 
  global 
$mainframe;
  
$mainframe->redirect('index.php''Для просмотра авторизуйтесь');
  
$mainframe->close();
?>


Большое спасибо, но я совершенно не понял ни чего! С пунктами меню разобрался, понял что скрипт вставлять в index.php (вставил теперь бесконечная пере адресация на сайте) но куда именно и так далее не понятно. Пробовал делать свой шаблон с помощью dreamwievera и специальных помощников не получается!

не могли бы Вы уважаемый объяснить по подробнее! Помогите пожалуйста!

PS Ну или просто прислать мне уже готовый стандартный шаблон ja_purity на ящик vinegredz@gmail.com дополнительные модели у меня не включены так что можно использовать стандартную разметку.
« Последнее редактирование: 15.01.2010, 20:30:32 от vinegred »

Чтоб ы разговор был более предметным опишу подробнее: мне нужно использовать компонент projectfork я его установил, поставил рус всё хорошо. Не давно забрёл на http://demo.projectfork.net/ так вот и захотелось сделать идентичный сайт, либо что бы сразу в это приложение переводило (как только адрес набираешь сайта) либо после регистрации и авторизации как я уже описывал выше. помогите))  ^-^

*

Оффлайн SmokerMan

Куда уже более подробнее писать я написал и так по моему достаточно.
Не можете сами сделать пользуйтесь поиском по форуму,  Google, и т.д. информации достаточно по этому поводу.
Делать вам что-то бесплатно, да еще уверен. не на легальном шаблоне, думаю излишне.

*

Оффлайн bobson

Сделай страницу поумолчанию доступной зарегистрированным пользователям, также можно сделать эти разрешения для категорий)

*

Оффлайн lottis

Большое спасибо, но я совершенно не понял ни чего!

Подскажи ты разобрался с данным вопросом? А то мне также нужен ответ, а приведенный текст кода вверху, если его нужно в index.php вставлять (что очень доходчиво :) написано) то вообще ничего не работает, браузер просто не грузит страницу.

*

Оффлайн lottis

Итак, основательно порывшись в нете я таки нашел решение, на англоязычном сайте http://blog.joomlatools.eu/2008/05/using-joomla-as-intranet.html
Спасибо ребятам за помощь!

Для того чтобы сделать к примеру закрытый интранет-сайт на Joomla, нужно в настройках сайта установить Сайт-Общие настройки-Сайт выключен(ставим ДА).

Это мы перевели Joomla в оффлайн режим. Беда в том, что вход позволен только админу а зарегистрированные пользователи не могут войти.


Но этам беда решается так:
Открываем файл includes/application.php

   1. // Находим эту строчку: 
   2. if ($this->getCfg('offline') && $user->get('gid') < '23' ) { 
   3. //Меняем значение 23 на 18:   
   4. if ($this->getCfg('offline') && $user->get('gid') < '18' ) { 

В результате получаем прекрасный вход только для тех, кто зарегистрирован в системе. Если пытаться зайти незарегистрированному пользователю по заранее известной ссылке - то тоже ничего не получиться, и сайт будет настойчиво требовать регистрацию.
Надеюсь я кому то да помог :)

Кто хочет сменить картинку при входе - так это в файле templates\system\offline.php  строка <img src="images/joomla_logo_black.jpg" alt="Joomla! Logo" align="middle" /> указывает на путь к картинке. Меняете на свою и будет вам красивый вход. Еще к примеру можно убрать название сайта под картинкой, удалив в этом же файле такие строчки
<h1><?php echo $mainframe->getCfg('sitename'); ?></h1>

P.S. Сам искал данное решение несколько дней, и уже думал платить фрилансерам (деньги то были я и предлогал некоторым) но последняя попытка поиска увеньчалась успехом :) Ставьте плюсы :) а то всего один штука   

*

Оффлайн iluho

  • *****
  • 608
  • [+]50 / [-]4
  • Гламурный КабанчеГ
    • Просмотр профиля
оригинально. плюс поставлю:)
Милый и порядочный! Верьте мне во всем!

*

der_golem

Итак, основательно порывшись в нете я таки нашел решение, на англоязычном сайте http://blog.joomlatools.eu/2008/05/using-joomla-as-intranet.html
Спасибо ребятам за помощь!

Для того чтобы сделать к примеру закрытый интранет-сайт на Joomla, нужно в настройках сайта установить Сайт-Общие настройки-Сайт выключен(ставим ДА).

Это мы перевели Joomla в оффлайн режим. Беда в том, что вход позволен только админу а зарегистрированные пользователи не могут войти.
 

Для того чтобы сделать к примеру закрытый интранет-сайт на Joomla, нужно в настройках сайта установить Сайт-Общие настройки-Сайт выключен(ставим ДА).

Это мы перевели Joomla в оффлайн режим. Беда в том, что вход позволен только админу а зарегистрированные пользователи не могут войти.


*

Оффлайн honestus

lottis, спасибо. Логично. Но в этой форме нет возможности регистрации.
Как добавить?
« Последнее редактирование: 05.10.2010, 00:06:54 от honestus »
Для "спасибов" есть + в репутации...

*

Оффлайн lottis

Да, нет - принцип интранет-портала - все пользователи заводятся централизовано и обычно одним человеком. Регистрация тут не нужна. Если нужна - думаю запросто можно вывести модуль регистрации сюда.

*

Оффлайн honestus

Дайте угадаю, точно также "просто", как предложил господин SmokerMan? :)
Для "спасибов" есть + в репутации...

*

Оффлайн lottis

:))) да не думаю что настолько просто :)) просто нужно в оффлайн файле прописать вывод кнопочки регистрация, думаю так... интересно было бы проверить...

*

Оффлайн honestus

Теоретически все так. Я было хотел так и попробовать.
Но.. тут палка о двух концах. При нажатии на кнопочку "регистрация" сайт будет проверять, авторизован ли пользователь... И если нет, то опять выводить страничку авторизации... Замкнутый круг..
Для "спасибов" есть + в репутации...

*

Оффлайн lottis

мда, все верно... я к сожалению не обладаю знаниями настолько чтобы решить данный вопрос. Но тогда раз нельзя решить так - следует идти по другому! Это решение(что я написал) для интранет - там впринципе не нужна регистрация. Тогда может нужно делать по другому.

Хотя только что пришла идея - просто  прописать в файле оффлайн файле регистрацию с формой(уже выведенной на сайте т.е. поля логин/пароль и для регистрации будут выведены вместе с картинкой логотипа) и код поставить выше того, где идет проверка (та что я написал  if ($this->getCfg('offline') && $user->get('gid') < '18' ) { ) и просто нужно переделать немного условие - сделать вложенный if т.е. первый идет if - регистрация -- если да то отправить данные и  перегрузить страничку)

Типа так. Получиться, что при регистрации данные попадут в базу-юзеру на мыло Joomla отправит форму подтверждения (тут тоже нужно продумать - пройдет ли она или как то нужно отключить реагирование на тип данного кода) а после подтверждения пользователь просто зайдет под собой...

Сходу - что то сгенерировал ;)

*

Оффлайн honestus

Так, концепцию накидал. Но в PHP не силен, поэтому изложу как есть, а опытные пользователи пусть переведут в PHP.
Итак.
Необходимо: если пользователь неавторизован, то перекидываем его на форму входа (отличную от дизайна сайта, аля оффлайн).
Решение:
добавить в index.php код проверки на авторизацию, если она не пройдена, перекидывает на отдельную страницу. Можно в виде субдомена. Например, мойсайт.ру - редирект на enter.mysite.ru - страничка входа\регистрации.
Просьба попробовать это перевести в ПХП. Если есть варианты упрощения - в студию. :)
Для "спасибов" есть + в репутации...

*

Nabo

Спасибо за советы, реально во многом помогли) А как мне решить такую задачу: необходимо на стартовую страницу закинуть нарисованную мной картинку (т.е. чтобы отображалась только она вместо стандартной формы авторизации Joomla). Поля логина и пароля соответственно подогнать под рисунок. В этом деле я новичок, поэтому буду признателен любым соображениям. Спасибо

*

Оффлайн lottis

Да, кстати, чуть не забыл - только что нашел маленький или очень даже большой баг (может быть нужно и в Joomla разработчикам накалякать). Дело тут в выводе RSS or ATOM.
При выше-изложенных мною манипуляциях есть одна неприятная "фича":
Если ты поставил код для вывода на всех страницах RSS:
<p><a href="index.php?format=feed&amp;amp;type=rss"><span class="rss"><img alt="Subscribe to our RSS feed" src="images/toolbar_feeds.png" class="rss" height="25" width="25" /></span></a></p>Если делаешь в браузере правой пимпой и просмотр кода - то даже будучи закрытой формой пароля, от посторонних глаз, на странице с кодом отобразится такое:
 <link href="/site/index.php?format=feed&amp;type=rss" rel="alternate" type="application/rss+xml" title="RSS 2.0" />
<link href="/site/index.php?format=feed&amp;type=atom" rel="alternate" type="application/atom+xml" title="Atom 1.0" />
и при клике на любую ссылку у вас отобразятся все новости, которые выводятся на главной странице. Причем так себе - эффектно отобразятся, с e-mail автора статьи, описанием и тд.. Вобщем не очень приятно будет подарить всем спамерам e-mail, а коллегам из конкурирующих фирм простой до безобразия способ отслеживания вашей главной страницы.

Выход я нашел такой:
по этому адресу components\com_content\views\frontpage\view.feed.php перед этим адресом с 45 строчки:
foreach ( $rows as $row )
{
// strip HTML from feed item title

ставим конструкцию проверки валидности нашего аккаунта:
if ($my->id) {и в самый конец файла перед конструкцией ?> ставим закрывающую кавычку }

Этот подход закрывает эту брешь. :)
« Последнее редактирование: 19.02.2011, 15:11:39 от lottis »

*

WhiteDigit

А как мне решить такую задачу: необходимо на стартовую страницу закинуть нарисованную мной картинку
Уважаемый, внимательней форум читайте. Выше товарищ lottis все довольно доходчиво описал.
А можно просто вытащить её из отсюдова images/joomla_logo_black.jpg, изначально она там единственная в формате JPG  и открыв в любимом редакторе изменить под свои предпочтения. После залить туда же с заменой файла.
Есть один прикол, у неё разрешение 299 точек на дюйм. ^-^ Кто-то может сказать - нафига такое надо?
« Последнее редактирование: 06.01.2011, 14:04:44 от WhiteDigit »

*

Оффлайн Solvedor

  • ****
  • 361
  • [+]33 / [-]0
  • Масенький Йожик
    • Просмотр профиля
    • Solvedor Studio
А можно просто вытащить её из отсюдова images/joomla_logo_black.jpg, изначально она там единственная в формате JPG  и открыв в любимом редакторе изменить под свои предпочтения. После залить туда же с заменой файла.
а можно и изменить название и путь выводимой картинки в шаблоне, заменив строчку в offline.php :)

Есть один прикол, у неё разрешение 299 точек на дюйм. ^-^ Кто-то может сказать - нафига такое надо?
ну должно, что-нить в Joomla стока весить :)))))))))))))))

  1. // Находим эту строчку:  
   2. if ($this->getCfg('offline') && $user->get('gid') < '23' ) {  
   3. //Меняем значение 23 на 18:  
   4. if ($this->getCfg('offline') && $user->get('gid') < '18' ) {  

В результате получаем прекрасный вход только для тех, кто зарегистрирован в системе. Если пытаться зайти незарегистрированному пользователю по заранее известной ссылке - то тоже ничего не получиться, и сайт будет настойчиво требовать регистрацию.
Надеюсь я кому то да помог :)
Спасибо! Подскажите, а что менять в Joomla 2.5.6, чтобы было точно так же?
Такой строки нет, но поиск по слову "offline" выдал такое:
$template = $this->getTemplate(true);
$file = JRequest::getCmd('tmpl', 'index');

if (!$this->getCfg('offline') && ($file == 'offline')) {
$file = 'index';
}

if ($this->getCfg('offline') && !$user->authorise('core.login.offline')) {
$uri = JFactory::getURI();
$return = (string)$uri;
$this->setUserState('users.login.form.data', array( 'return' => $return ) );
$file = 'offline';
JResponse::setHeader('Status', '503 Service Temporarily Unavailable', 'true');
}
if (!is_dir(JPATH_THEMES . '/' . $template->template) && !$this->getCfg('offline')) {
$file = 'component';
}
$params = array(
'template' => $template->template,
'file' => $file.'.php',
'directory' => JPATH_THEMES,
'params' => $template->params
);
Заранее спасибо.


Не разобрался, как сделать по Вашему, зато нашёл методом научного тыка простое решение:
- как было указано выше выключаем сайт
- в административной панели заходим: общие настройки - права (относится к версии 2,5) - у категории зарегистрированные ставим "Вход в режиме техобслуживания" в да.
« Последнее редактирование: 11.08.2012, 13:15:38 от Nubizmat »

*

Оффлайн lottis

Да, говорили что в 2.5 эту вещь сделают в настройках, без правки кода. Я не разбираюсь в 2.5, поэтому подсказать не могу.

*

Оффлайн Festival

Не разобрался, как сделать по Вашему, зато нашёл методом научного тыка простое решение:
- как было указано выше выключаем сайт
- в административной панели заходим: общие настройки - права (относится к версии 2,5) - у категории зарегистрированные ставим "Вход в режиме техобслуживания" в да.

Все работает, спасибо! Держи + ;)