我正在编辑一个名为AquaCart的主题,安装在 OpenCart 1.5.5.1 中。我还集成了 Twitter Bootstrap的固定顶部导航栏。我已经修改了导航栏并将登录/注销菜单放在那里,它做得很好。该项目适用于我自己的在线商店。
我还没有任何 PHP 技能,只有 HTML+CSS。header.tpl
通过从当前主题的文件中复制代码并编辑header.php
文件(来自) ,我设法将登录/注销按钮放在我的新导航栏菜单上catalog\english\common\header.php
。
现在,我正在完善菜单并想添加一些名为Sign Up 的自定义菜单/链接!. 我想要这个注册!当用户已经登录时,菜单链接显示为注销链接。
我当前的编辑在 a 中显示登录用户的名称,<li>
在 second 中显示注销菜单<li>
。这不是我真正想要的。我想显示注销链接来代替注册!用户登录时的链接。
这是我当前的header.tpl
编辑:
<ul>
<ul>
<li>
<a href="#">My Account</a><!--Shall be shown only when user is logged in-->
<ul>
<?php if (!$logged) { ?>
<?php echo $text_welcome; ?>
<?php } else { ?>
<?php echo $text_logged; ?>
<?php } ?>
<li class="divider"></li>
<li><a href="#">Store Front</a></li>
<li><a href="#">Blog Page</a></li>
</ul>
</li>
<li><a href="index.php?route=account/register">Sign Up!</a></li>
</ul>
</ul>
我header.php
来自 opencart 的目录\语言文件夹。text_logged
并且text_welcome
已经被编辑。
<?php
// header.php from catalog\language\english\common\header.php
$_['text_home'] = 'Online Shop';
$_['text_wishlist'] = 'Wish List (%s)';
$_['text_shopping_cart'] = 'Shopping Cart';
$_['text_search'] = 'Search';
$_['text_welcome'] = '<li><a href="%s">Login</a></li>
<li><a href="index.php?route=account/register">Sign Up!</a></li>';
$_['text_logged'] = '<li><a href="%s">%s</a></li>
<li><a href="%s">Logout</a></li>';
$_['text_account'] = 'My Account';
$_['text_checkout'] = 'Checkout';
?>
上面的代码是这样渲染的......
..我想注册!当用户登录时,链接变为注销。
我还不知道 PHP,但我正在努力研究 OpenCart 安装的 PHP 文件,我从我的header.php
文件中找到了这个字符串catalog\controller\common
:
$this->data['text_logged'] = sprintf($this->language->get('text_logged'), $this->url->link('account/account', '', 'SSL'), $this->customer->getFirstName(), $this->url->link('account/logout', '', 'SSL'));
我正在考虑复制它,但不知道要复制和修改什么。还涉及哪些其他文件?
更新:
我现在添加了一个新的文本名称“注册”和“登录”,所以我可能不会感到困惑,我可以轻松地将其替换为我的文本链接。
到目前为止..我已经添加:在我的catalog\english\common\header.php
:
$_['text_login'] = 'Login';
$_['text_signup'] = 'Sign Up!';
而在我的catalog\controller\header.php
.
$this->data['text_login'] = $this->language->get('text_login');
$this->data['text_signup'] = $this->language->get('text_signup');
更新 2:
根据 shadyxx 的意见,我重新标记了我的菜单,我稍微更改了菜单。所以对于“未登录的用户”......这个菜单应该被呼应......
标记如下:
<div class="nav-collapse collapse">
<ul>
<li><a href="#">Login</a></li>
<li><a href="#">Register</a></li>
</ul>
</div>
对于已登录的用户,应回显此菜单...
标记如下:
<div>
<ul>
<ul>
<li>
<a href="#">Account></b></a>
<ul>
<li>%s</a></li>
<li class="divider"></li>
<li>Shopping Cart</a></li>
<li>Checkout</a></li>
</ul>
</li>
<li>Logout</a></li>
</ul>
</ul>
</div>
在我的catalog\controller\common\header.php
:
$this->data['signup'] = sprintf($this->language->get('text_signup'), $this->url->link('account/register', '', 'SSL'));
$this->data['login_register'] = sprintf($this->language->get('text_login_register'), $this->url->link('account/login', '', 'SSL'), $this->url->link('account/register', '', 'SSL'));
$this->data['logged_in'] = sprintf($this->language->get('text_logged_in'), $this->url->link('account/account', '', 'SSL'), $this->customer->getFirstName(), $this->data['text_shopping_cart'] = $this->language->get('text_shopping_cart'), $this->data['shopping_cart'] = $this->url->link('checkout/cart'), $this->url->link('account/logout', '', 'SSL'));
在我的目录\language\english\common\header.php
$_['text_login_register']
= '<div>
<ul>
<li>Login</a></li>
<li>Register</a></li>
</ul>
</div>';
$_['text_logged_in']
= '<div>
<ul>
<ul>
<li>
<a href="#">Account<b class="caret"></b></a>
<ul>
<li><a href="%s">%s</a></li>
<li class="divider"></li>
<li><a href="%s">Shopping Cart</a></li>
<li><a href="%s">Checkout</a></li>
</ul>
</li>
<li><a href="%s">Logout</a></li>
</ul>
</ul>
</div>';
在我的 header.tpl
<?php if (!$logged) { ?>
<?php echo $login_register; ?>
<?php } else { ?>
<?php echo $logged_in; ?>
<?php } ?>
所以,什么不工作,使用上面的代码是结帐菜单。结帐菜单将用户重定向到购物车页面。
我刚刚复制粘贴了上面的代码。我试图通过反复试验来了解现有代码的使用。