Version: current

     1 <?php
     2 /**
     3  * Расширение для страниц для авторизованных пользователей
     4  *
     5  * @package auth
     6  * @author inxo, dvp
     7  */
     8 class ExtendPageMember extends Extension {
     9
    10     /**
    11      * Возвращает формы авторизации
    12      *
    13      * @todo использовать все подключенные аутификаторы, а не только MemberAuthenticator
    14      *
    15      * @return Form
    16      */
    17     function FrontendLoginForm() {
    18         $authenticator = 'MemberAuthenticator';
    19
    20         $authenticators = Authenticator::get_authenticators();
    21         if(in_array($authenticator, $authenticators)) {
    22             $form = Object::create("MemberLoginForm", $this->owner, "LoginForm");
    23             $form->addExtraClass('FrontendLoginForm');
    24             $form->setHtmlID('FrontendLoginForm');
    25             $form->setTemplate('FrontendLoginForm');
    26             $form->RegistrationLink = RegistrationPage::find_link();
    27             return $form;
    28         }
    29     }
    30
    31     /**
    32      * Ссылка для регистрации
    33      *
    34      * @return string|NULL
    35      */
    36     function RegistrationLink() {
    37         return (Member::currentUserID()) ? null : RegistrationPage::find_link();
    38     }
    39
    40     /**
    41      * Ссылка для авторизации
    42      *
    43      * @return string|NULL
    44      */
    45     function LoginLink() {
    46         return (Member::currentUserID()) ? null : Security::Link('login');
    47     }
    48
    49     /**
    50      * Ссылка для выхода
    51      *
    52      * @return string|NULL
    53      */
    54     function LogoutLink() {
    55         return (Member::currentUserID()) ? Security::Link('logout') : null;
    56     }
    57
    58     /**
    59      * Ссылка для профиля пользователя
    60      *
    61      * @return string|NULL
    62      */
    63     function ProfileLink() {
    64         return (Member::currentUserID()) ? AccountPage::find_link() : null;
    65     }
    66
    67     /**
    68      * Проверяет авторизован ли текущий посетитель сайта
    69      *
    70      * @return boolean
    71      */
    72     function IsLogged(){
    73         return (Member::currentUserID()) ? true : false;
    74     }
    75
    76     /**
    77      * Имя авторизованного пользователя
    78      *
    79      * @return string|NULL
    80      */
    81     function Username(){
    82         if (!Member::currentUserID()) return null;
    83
    84         $user = Member::currentUser();
    85         $title = $user->getTitle();
    86         return ($title) ? $title : $user->Email;
    87     }
    88
    89     function Member() {
    90         return Member::currentUser();
    91     }
    92 }
    93
    94

[Raise a SilverStripe Framework issue/bug](https://github.com/silverstripe/silverstripe-framework/issues/new)
- [Raise a SilverStripe CMS issue/bug](https://github.com/silverstripe/silverstripe-cms/issues/new)
- Please use the Silverstripe Forums to ask development related questions. -