jQueryUIに依存するカルーセルプラグインを使用しています。ロードするには、マーケットプレイスからjQueryUI アドオンをロードするだけです。
編集 - より正確に言うと。何が起こるか:
A.problematic.js
直接ロードされた場合 - 何もない場合if
: ユーザーがログインしている場合、カルーセルは機能せず、トップバー (「編集」、「ダッシュボード」) のコンテンツが消えるため、編集モードに入ることができません。
B.problematic.js
そのような状態でロードされた場合:
if (!$c->isEditMode()){ ?>
<script type="text/javascript" src="problematic.js"></script>
<?php } ?>
上記とまったく同じ: ユーザーがログインしているときにカルーセルが機能せず、トップ バー (「編集」、「ダッシュボード」) のコンテンツが消えるため、編集モードに入ることができません。
C.problematic.js
が次のような条件でロードされた場合:
<?php $u = new User();
if (!$u->isRegistered()){ ?>
<script type="text/javascript" src="problematic.js"></script>
<?php } ?>
トップバーのコンテンツが存在する場合、ページを編集モードにすることは可能ですが、ユーザーがログインしたときに明らかに js ファイルは実行されません。
ただし、それは私が必要とするものではありません-次の場合にスクリプトを機能させたいです:
- ユーザーはログに記録されていません。
- ユーザーは Web サイトにログインしていますが、ページは編集モードではありません。
ページが編集モードのみの場合、スクリプトを実行しないでください。
どうすればこれを達成できますか?
編集: 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'); ?>