1

我正在 Odoo 9 上制作网站,扩展网站和网络模块,并创建自定义主题。我在我的网站标题中添加了一些页面,其中之一是登录页面,用户可以在其中登录我的网站。

我的问题是,当用户登录时,“登录”仍然存在,我希望将其更改为“我的个人资料”页面,以便用户处理其个人资料设置。

如何检查用户是否已登录并更改标题中的元素?

4

2 回答 2

1

我的解决方案很像@SDBot 之一:

<template id="custom_header" inherit_id="website.layout" name="Custom Header">
    <xpath expr="//div[@id='wrapwrap']/header" position="attributes">
        <attribute name="id">my_header</attribute>
    </xpath>

    <xpath expr="//ul[@class='nav navbar-nav navbar-right']/li" position="before">
        <t t-if="user_id.partner_id.name == 'Public user'">
            <li>
                <a href="/page/website.signin">
                <span data-oe-model="website.menu" data-oe-id="3" data-oe-field="name" data-oe-type="char" data-oe-expression="submenu.name">SignUp</span>
                </a>
            </li>
        </t>
        <t t-if="not user_id.partner_id.name == 'Public user'">
            <li>
                <a href="/page/website.profile">
                <span data-oe-model="website.menu" data-oe-id="3" data-oe-field="name" data-oe-type="char" data-oe-expression="submenu.name">My Profile</span>
                </a>
            </li>
        </t>
    </xpath>
</template>
于 2016-03-31T14:23:26.760 回答
1

网站模块不是已经有标志页了吗?无论如何,您可以继承 website.layout 来自定义网站菜单,试试这个:

<template id="custom_sign_in" customize_show="True" inherit_id="website.layout" name="Custom Sign In">
    <xpath expr="//ul[@id='top_menu']" position="inside">
        <li groups="base.group_public">
            <a t-attf-href="/web/YourSignInPage">
                <b>Custom Sign in</b>
            </a>
        </li>
        <li t-if="website.user_id != user_id">
            <a t-attf-href="/web/YourAccountPage">
                <b>Custom Account</b>
            </a>
        </li>
    </xpath>
</template>

我正在使用 odoo 8,不确定它是否适用于 odoo 9,如果它不起作用,请告诉我。

于 2016-03-31T06:32:51.393 回答