未登录

时间:2018-02-14 14:19:27

标签: javascript php jquery concrete5

我有一个特定的问题,我使用本教程在concrete5 v8中构建了一个带有选项卡的组件:

Creating tabbed panels in concrete5

它运行得很好,只要我登录到concrete5,一旦我没有登录,我在控制台中出现以下错误,因此我无法点击不同的选项卡:< / p>

  

未捕获的ReferenceError:未定义ccm_activateTabBar      在HTMLDocument。 (entsorgung冯-abfaellen:84)      在j(jquery.js:2)      at Object.fireWith [as resolveWith](jquery.js:2)      在Function.ready(jquery.js:2)      在HTMLDocument.J(jquery.js:2)

错误引用第84行的这一部分:

<script type="text/javascript">$(function() { ccm_activateTabBar($('#ccm-tabs-1077221103'));});</script>

紧跟在ul元素之后,似乎是由concrete5生成的。

我根本无法找到任何相关内容,我想这与丢失的资产有关,这些资产仅在以管理员身份登录时才会加载。

我目前只在未登录时加载以下资产:

$u = new User();
if(!$u->isLoggedIn()) {
  $this->requireAsset('javascript', 'jquery');
  $this->requireAsset('jquery/ui');
}

也许有人已经使用了concrete5标签,可以帮我解决这个错误。

1 个答案:

答案 0 :(得分:0)

Michele Locati建议的屁股,您应该使用jquery / ui或bootstrap组件来构建标签组件。

但如果你发现自己处于和我一样的情况,一个非常简单的解决办法就是复制tabs.js

  

混凝土/ JS /建造/核心/应用程序/ tabs.js

到您的主题文件夹,如果用户未登录则包含它。

例如:

<?php
$u = new User();
if(!$u->isLoggedIn()) : ?>
  <script src="<?php echo $view->getThemePath(); ?>/js/c5_tabs/tabs.js"></script>
<?php endif; ?>

tabs.js是app.js的一部分,它非常大,所以我只使用了tabs.js,它只包含我缺少的所需函数。

concrete5 forum

向MrKDilkington提供此信息