我使用依赖于jQueryUI的carousel插件。要加载它,我只需使用市场中的Load jQueryUI addon。
编辑 - 更确切地说。会发生什么:
一个。直接加载problematic.js
时 - 没有任何if
:当用户登录并且顶栏的内容(“编辑”,“仪表板”)消失时,轮播不起作用,所以甚至不可能进入编辑模式
B中。当problematic.js
加载了这样的条件时:
if (!$c->isEditMode()){ ?>
<script type="text/javascript" src="problematic.js"></script>
<?php } ?>
完全如上所述:当用户登录并且顶栏的内容(“编辑”,“仪表板”)消失时,轮播不起作用,因此甚至无法进入编辑模式
℃。当problematic.js
加载了这样的条件时:
<?php $u = new User();
if (!$u->isRegistered()){ ?>
<script type="text/javascript" src="problematic.js"></script>
<?php } ?>
顶栏的内容存在,可以将页面转换为编辑模式,但显然当用户登录时不会执行js文件。
然而,这不是我需要的 - 我希望我的脚本在以下情况下工作:
我希望在页面IS仅在编辑模式下执行脚本。
我该如何实现这个目标?
编辑:这是PHP / HTML代码的一部分:
<?php
defined('C5_EXECUTE') or die(_('Access Denied.'));
?>
<!DOCTYPE html>
<html>
<head>
<?php Loader::element('header_required');?>
<script type="text/javascript" src="<?php print $this->getThemePath(); ?>/js/respond.min.js"></script>
<script type="text/javascript" src="<?php print $this->getThemePath(); ?>/js/jquery.ui.rcarousel.min.js"></script>
<?php $u = new User();
if (!$u->isRegistered()){ ?>
<!-- To prevent conflicts with C5 jQuery UI when in edit mode -->
<script type="text/javascript" src="<?php print $this->getThemePath(); ?>/js/home.js"></script>
<?php } ?>
<link rel='stylesheet' type='text/css' href="<?php print $this->getStyleSheet('css/style.css'); ?>" />
<meta name='viewport' content='width=device-width, initial-scale=1, maximum-scale=1' />
</head>
<body <?php if ($c->isEditMode()) { ?> class='editmode' <?php } ?>>
<div class='c5wrapper'>
<div id='container'>
<div id='content-promo' class='content-promo full-width'>
<div id='carousel-wrapper' class='content-promo carousel-wrapper'>
<?php
$a = new Area('Carousel');
$a->display($c);
?>
</div> <!-- End of carousel wrapper -->
<a href='#' id='ui-carousel-prev' class='carousel-controls'><span class='carousel-control-text'>Prev</span></a>
<a href='#' id='ui-carousel-next' class='carousel-controls'><span class='carousel-control-text'>Next</span></a>
</div> <!-- End of content promo -->
<?php $this->inc('elements/footer.php'); ?>
答案 0 :(得分:0)
第一个代码示例如何不起作用?它没有你做的东西吗?或者它什么都不做?假设它在功能上有效(即,在不处于编辑模式时添加该标记),那么您想要做的完整解决方案将是:
<?php $u = new User();
if ($u->isRegistered() && ! $c->isEditMode()) { ?>
<script type="text/javascript" src="problematic.js"></script>
<?php } ?>
如果第一个代码示例不起作用,那么可能已经重新定义了$ c,或者其他同样不太可能......