Логотип

Документация по макросам и шаблонам UMI.CMS

В результате мы можем поместить все шаблоны, относящиеся к активации аккаунта и восстановлению пароля, в один файл, например ~/users/users.xsl, подключив его к основному шаблону разметки страниц при помощи <xsl:include>.

Тогда итоговый шаблон может выглядеть примерно следущим образом:

<xsl:template match="result[@module = 'users' and @method = 'login']">
        
        <xsl:apply-templates select=”document(‘udata://users/auth/’)/udata” />
</xsl:template>

<xsl:template match="result[@module = 'users' and @method = 'auth']">
        
        <xsl:apply-templates select=”document(‘udata://users/auth/’)/udata” />
</xsl:template>

        
<xsl:template match="udata[@module = 'users' and @method = 'auth']">
        <form method="post" action="/users/login_do/">			
            <div>
                <xsl:text>Логин: </xsl:text>
                <input type="text" name="login" id="login" />
            </div>
            <div>
                <xsl:text>Пароль: 
                <input type="password" name="password" id="password" />
            </div>			
            <div>
                <input type="submit" value=”Войти” />
            </div>
        </form>
 </xsl:template>
 
 <xsl:template match="result[@method = 'registrate']">
    <xsl:apply-templates select="document('udata://users/registrate')/udata" />
</xsl:template>

<xsl:template match="udata[@method = 'registrate']">
        <form id="registrate" enctype="multipart/form-data" method="post" action="/users/registrate_do/">
            <div>
                <xsl:text>Логин:</xsl:text>
                <input type="text" name="login" />
            </div>
            <div>
                <xsl:text>Пароль:</xsl:text>
                <input type="password" name="password" />
            </div>
            <div>
                <xsl:text>Повторите пароль:</xsl:text>
                <input type="password" name="password_confirm" />
            </div>
            <div>
                <xsl:text>Е-mail:</xsl:text>
                <input type="text" name="email" />
            </div>
            
            <xsl:apply-templates select="document(concat(‘udata://data/getCreateForm/’, type_id))/udata" />
            
            <xsl:apply-templates select="document('udata://system/captcha')/udata" />
            <div>
                <input type="submit"  value="Зарегистрироваться" />
            </div>
        </form>

</xsl:template>

<xsl:template match="result[@module = ‘users’][@method = 'registrate_done']">
  <h4>
            <xsl:text>Заголовок </xsl:text>
        </h4>
        <p>
            <xsl:text> Сообщение о пройденной регистрации </xsl:text>
        </p>

</xsl:template>

<xsl:template match="result[@module = 'users'][@method = 'activate']">
        <h1><xsl:value-of select="@header" /></h1>
        
        <xsl:apply-templates select="document(concat('udata://users/activate/',$param0,'/'))/udata" />
</xsl:template>

<xsl:template match="udata[@module = 'users'][@method = 'activate']">
        
        <xsl:apply-templates select="document('udata://content/redirect/(/users/auth/)/')/udata" />
</xsl:template>
    
<xsl:template match="udata[@module = 'users'][@method = 'activate'][error]">

    <xsl:value-of select="error" />
</xsl:template>

<xsl:template match="result[@method = 'forget']">
        <form id="forget" method="post" action="/users/forget_do/">
            <script>
                <![CDATA[
                jQuery(document).ready(function(){
                    jQuery('#forget input:radio').click(function() {
                        jQuery('#forget input:text').attr('name', jQuery(this).attr('id'));
                    });
                });

                ]]>
            </script>

            <div>
                <label>
                    <span>
                        <input type="radio" id="forget_login" name="choose_forget" checked="checked" />
                        <xsl:text>Логин</xsl:text>
                    </span>
                </label>
                <label>
                    <span>
                        <input type="radio" id="forget_email" name="choose_forget" />
                        <xsl:text>Е-мэйл</xsl:text>
                    </span>
                </label>
            </div>
            <div>
                <input type="text" name="forget_login" />
            </div>
            <div>
                <input type="submit" value="Отправить" />
            </div>
        </form>
</xsl:template>

<xsl:template match="result[@method = 'forget_do']">
        <p>
            <xsl:text>Сообщение о том, что на почту выслана ссылка для получения нового пароля</xsl:text>
        </p>
    </xsl:template>

<xsl:template match="result[@module = 'users'][@method = 'restore']">
        <h1><xsl:value-of select="@header" /></h1>
        <xsl:apply-templates select="document(concat('udata://users/restore/',$param0,'/'))/udata" />
</xsl:template>

<xsl:template match="udata[@module = 'users'][@method = 'restore'][@status = 'success']">
        <div>Пароль успешно изменен, на e-mail адрес, указанный при регистрации выслано уведомление.</div>
        <div>
            <p>Логин:	<xsl:value-of select="login" /></p>
            <p>Пароль: <xsl:value-of select="password" /></p>
        </div>
</xsl:template>

<xsl:template match="udata[@module = 'users'][@method = 'restore'][@status = 'fail']">
        <div>Невозможно восстановить пароль: неверный код активации.</div>
</xsl:template>