Нужно что бы форма логин и пароль были в дизайне сайта.

#
Re: Нужно что бы форма логин и пароль были в дизайне сайта.

Это... как его..
Дзынь-дзынь
Не стыдно что-либо не знать или не понимать. Стыдно бояться спросить.
Модератор
#
Re: Нужно что бы форма логин и пароль были в дизайне сайта.
sivruk,
Очень старюсь вырвать время на подготовку примера и описать принцип действия.
#
Re: Нужно что бы форма логин и пароль были в дизайне сайта.
Рискуя навлечь недовольство модераторов форума и (может даже обоснованные) обвинение во флуде, скажу, присев на корточки и закрыв голову руками - UP!
Не стыдно что-либо не знать или не понимать. Стыдно бояться спросить.
#
Re: Нужно что бы форма логин и пароль были в дизайне сайта.
ну больно надо!!!!!!!!!
Не стыдно что-либо не знать или не понимать. Стыдно бояться спросить.
#
Re: Нужно что бы форма логин и пароль были в дизайне сайта.
HostCMS писал(а):
sivruk,
там несложно, я код чуть позже приведу.
Правила обращения в службу поддержки - http://www.hostcms.ru/support/
Профиль| Сообщений: 5015 | Дата создания: 05.03.2009 14:25:34

Как быстро время пролетело. Я и не догадывался что "позже" это больше месяца. Тем более что "там несложно"
Не стыдно что-либо не знать или не понимать. Стыдно бояться спросить.
Модератор
#
Re: Нужно что бы форма логин и пароль были в дизайне сайта.
sivruk,
В таком случае я далее просто не буду обещать что-то выполнить индивидуально. У нас активный период разработки и все свободное время на "хотелки" я не могу посвящать. Заказать выполнение индивидуальных работ можно в отделе продаж.
Как у меня будет время, я отвечу в этой теме. Дальнейших комментариев не будет.
#
Re: Нужно что бы форма логин и пароль были в дизайне сайта.
Ваше дело, HostCMS.
Был недавно в деревне. Дрова пилили двуручной пилой. Весьма познавательная вещь в философском плане.
Не стыдно что-либо не знать или не понимать. Стыдно бояться спросить.
Модератор
#
Re: Нужно что бы форма логин и пароль были в дизайне сайта.
Чтобы сделать авторизацию в клиентском разделе дорабатываем форму на сайте:
<div class="red_grad">
               <div class="tl"></div>
               <div class="tr"></div>
               <div class="bl"></div>
               <div class="br"></div>
               
               <div id="SiteUser">
               <h2>Личный кабинет</h2>
               
               <div id="SiteUserMessage"></div>
               
               <p>
                  <form class="form_to_main" action="/users/" method="POST" enctype="multipart/form-data">
                     Пользователь:
                     <input name="site_user_login" type="text">
                     Пароль:
                     <input name="site_user_password" type="password">
                     <input class="button" type="submit" name="apply" value="Войти" onclick="return AjaxSendForm(fCallBackSiteUser, '&action=ajax', this)">
                  </form>
               </p>
               </div>
               
               <script type="text/javascript">
               /**
               * Функция обратного вызова при авторизации пользователя
               */
               function fCallBackSiteUser(responseJS)
               {
                  if (typeof responseJS != 'undefined')
                  {
                     if (typeof responseJS.message != 'undefined')
                     {
                        var oDivMessage = document.getElementById('SiteUserMessage');

                        if (oDivMessage)
                        {
                           oDivMessage.innerHTML = responseJS.message;
                        }
                     }

                     if (typeof responseJS.content != 'undefined')
                     {
                        var oDiv = document.getElementById('SiteUser');

                        if (oDiv)
                        {
                           oDiv.innerHTML = responseJS.content;

                           // Выполняем скрипты из полученного с сервера HTML-а
                           runScripts(oDiv.getElementsByTagName('SCRIPT'));
                        }
                     }
                  }
               }
               </script>

            </div>


В настройках типовой динамической страницы кабинета пользователя фрагмент
if (isset($_POST['apply']))
{
...
}

заменяем на
// Нажали кнопку войти
if (isset($_POST['apply']))
{
   /* Проверяем доступность пользователя */
   $user_id = $SiteUsers->ValidUser(to_str($_POST['site_user_login']), to_str($_POST['site_user_password']));

   if ($user_id > 0)
   {
      if (isset($_POST['remember_me']))
      {
         $expires = 2678400; // 31 день
      }
      else
      {
         $expires = 86400; // 1 день
      }

      // Авторизируем пользователя
      $SiteUsers->SetCurrentSiteUser($user_id, $expires);
   }

   // Если была AJAX-авторизация -- отправим ответ
   if (isset($_REQUEST['action']))
   {
      $JsHttpRequest = new JsHttpRequest(SITE_CODING);
      
      if ($user_id > 0)
      {
         ob_start();

         /* Формируем список меню кабинета */
         $external_propertys[$i = 0]['xml_name']='link';
         $external_propertys[$i]['value']=array(
         0 => array('xml_name' => 'link_address',
         'value' =>'registration/'),
         1 => array('xml_name' => 'link_name',
         'value' =>'Личная информация'),
         2 => array('xml_name' => 'link_url_image',
         'value' =>'/images/user_info.gif'));

         if (class_exists("Maillist"))
         {
            $external_propertys[++$i]['xml_name']='link';
            $external_propertys[$i]['value']=array(
            0 => array('xml_name' => 'link_address',
            'value' =>'maillist/'),
            1 => array('xml_name' => 'link_name',
            'value' =>'Рассылки'),
            2 => array('xml_name' => 'link_url_image',
            'value' =>'/images/maillist.gif'));
         }

         if (class_exists('shop'))
         {
            $external_propertys[++$i]['xml_name']='link';
            $external_propertys[$i]['value']=array(
            0 => array('xml_name' => 'link_address',
            'value' =>'order/'),
            1 => array('xml_name' => 'link_name',
            'value' =>'Мои заказы'),
            2 => array('xml_name' => 'link_url_image',
            'value' =>'/images/my_orders.gif'));

            $affiliate = new affiliate();

            // Получим идентификаторы групп пользователей, в которой состоит текущий пользователь
            $site_users_groups_row = $SiteUsers->GetGroupsForUser($user_id);

            // Проверим, есть ли для текущей группы пользователей сайта доступные партнерские программы
            $affiliate_res = $affiliate->GetAllAffiliatePlans($site_users_groups_row);

            if ($affiliate_res && mysql_num_rows($affiliate_res) > 0)
            {
               $external_propertys[++$i]['xml_name']='link';
               $external_propertys[$i]['value']=array(
               0 => array('xml_name' => 'link_address',
               'value' =>'affiliats/'),
               1 => array('xml_name' => 'link_name',
               'value' =>'Партнерские программы'),
               2 => array('xml_name' => 'link_url_image',
               'value' =>'/images/partner_program.gif'));
            }
         }

         if (class_exists('SiteUsers'))
         {
            $external_propertys[++$i]['xml_name']='link';
            $external_propertys[$i]['value']=array(
            0 => array('xml_name' => 'link_address',
            'value' =>'account/'),
            1 => array('xml_name' => 'link_name',
            'value' =>'Лицевой счет'),
            2 => array('xml_name' => 'link_url_image',
            'value' =>'/images/user_bill.gif'));
         }

         if (class_exists('helpdesk'))
         {
            $external_propertys[++$i]['xml_name']='link';
            $external_propertys[$i]['value']=array(
            0 => array('xml_name' => 'link_address',
            'value' =>'helpdesk/'),
            1 => array('xml_name' => 'link_name',
            'value' =>'Служба техподдержки'),
            2 => array('xml_name' => 'link_url_image',
            'value' =>'/images/help.gif'));
         }

         if (class_exists('shop'))
         {
            $external_propertys[++$i]['xml_name']='link';
            $external_propertys[$i]['value']=array(
            0 => array('xml_name' => 'link_address',
            'value' =>'my_advertisement/'),
            1 => array('xml_name' => 'link_name',
            'value' =>'Мои объявления'),
            2 => array('xml_name' => 'link_url_image',
            'value' =>'/images/bulletin_board.gif'));
         }

         $external_propertys[++$i]['xml_name']='link';
         $external_propertys[$i]['value']=array(
         0 => array('xml_name' => 'link_address',
         'value' =>'?action=exit'),
         1 => array('xml_name' => 'link_name',
         'value' =>'Выход'),
         2 => array('xml_name' => 'link_url_image',
         'value' =>'/images/user_exit.gif'));

         // Получаем данные о пользователе
         $user_row = $SiteUsers->GetListPrimaryProperties($user_id);

         if ($user_row)
         {
            // Отображает кабинет пользователя
            $SiteUsers->ShowUserOffice("ЛичныйКабинетПользователяAjax", $external_propertys);
         }
         else
         {
            $GLOBALS['_RESULT']['message'] = "Пользователь не найден!";
         }
         
         $GLOBALS['_RESULT']['content'] = ob_get_clean();
      }
      else
      {
         $GLOBALS['_RESULT']['message'] = "Неправильный логин или пароль!";
      }

      echo $JsHttpRequest->LOADER;
      exit ();
   }

}


Создадим XSL-шаблон "ЛичныйКабинетПользователяAjax":
<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:output xmlns="http://www.w3.org/TR/xhtml1/strict" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" encoding="Windows-1251" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml"/>
   
   <xsl:template match="/document">
      
      <p><b>Пользователь <xsl:value-of select="site_users_login"/></b></p>
      
      <!-- Выводим меню -->
      <ul style="padding-left: 20px">
         <xsl:apply-templates select="link"/>
      </ul>
   </xsl:template>
   
   <xsl:template match="link">
      <li>
         <a href="/users/{link_address}"><xsl:value-of select="link_name"/></a>
      </li>
   </xsl:template>
</xsl:stylesheet>


Аналогичным образом можно поступать и с другими формами.
#
Re: Нужно что бы форма логин и пароль были в дизайне сайта.



Супер! Класс! Спасибо огромаднейшее!
Действует просто великолепно. Только маленькая незадачка - при неправильном вводе логина и пароля нет сообщения об этом. Как-то даже не камильфо.
А так все великолепно!
Не стыдно что-либо не знать или не понимать. Стыдно бояться спросить.
Модератор
#
Re: Нужно что бы форма логин и пароль были в дизайне сайта.
sivruk,
должно быть, проверьте, добавили ли
<div id="SiteUserMessage"></div>
Авторизация