<?php
use Twig\Environment;
use Twig\Error\LoaderError;
use Twig\Error\RuntimeError;
use Twig\Extension\SandboxExtension;
use Twig\Markup;
use Twig\Sandbox\SecurityError;
use Twig\Sandbox\SecurityNotAllowedTagError;
use Twig\Sandbox\SecurityNotAllowedFilterError;
use Twig\Sandbox\SecurityNotAllowedFunctionError;
use Twig\Source;
use Twig\Template;
/* Block/news.twig */
class __TwigTemplate_b313d660535c3ccefdadcfee219c9c87 extends \Eccube\Twig\Template
{
private $source;
private $macros = [];
public function __construct(Environment $env)
{
parent::__construct($env);
$this->source = $this->getSourceContext();
$this->parent = false;
$this->blocks = [
];
}
protected function doDisplay(array $context, array $blocks = [])
{
$macros = $this->macros;
$__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
$__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "Block/news.twig"));
$__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
$__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "Block/news.twig"));
// line 26
echo "
";
// line 50
echo "
";
// line 52
echo "
";
// line 53
$context["NewsListMax"] = 10;
// line 54
echo "
";
// line 56
echo "
<!-- Block/news.twig -->
";
// line 58
$context["NewsList"] = twig_get_attribute($this->env, $this->source, $this->env->getFunction('repository')->getCallable()("Eccube\\Entity\\News"), "getList", [], "method", false, false, false, 58);
// line 59
echo "
";
// line 61
echo "<!--
<div class=\"ec-newsRole\">
<div class=\"ec-secHeading\">
<h2 class=\"text-span updown ec-secHeading__en\">
News
";
// line 70
echo " </h2>
</div>
<div class=\"ec-newsRole__list appearEffect\">
";
// line 76
echo " <div class=\"ec-slickContainer slickGutter\">
";
// line 79
$context['_parent'] = $context;
$context['_seq'] = twig_ensure_traversable((isset($context["NewsList"]) || array_key_exists("NewsList", $context) ? $context["NewsList"] : (function () { throw new RuntimeError('Variable "NewsList" does not exist.', 79, $this->source); })()));
$context['loop'] = [
'parent' => $context['_parent'],
'index0' => 0,
'index' => 1,
'first' => true,
];
if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
$length = count($context['_seq']);
$context['loop']['revindex0'] = $length - 1;
$context['loop']['revindex'] = $length;
$context['loop']['length'] = $length;
$context['loop']['last'] = 1 === $length;
}
foreach ($context['_seq'] as $context["_key"] => $context["News"]) {
// line 80
echo " ";
if ((twig_get_attribute($this->env, $this->source, $context["loop"], "index0", [], "any", false, false, false, 80) < (isset($context["NewsListMax"]) || array_key_exists("NewsListMax", $context) ? $context["NewsListMax"] : (function () { throw new RuntimeError('Variable "NewsListMax" does not exist.', 80, $this->source); })()))) {
// line 81
echo " <div class=\"ec-newsItemRole\" data-index=\"";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["loop"], "index0", [], "any", false, false, false, 81), "html", null, true);
echo "\">
";
// line 84
echo " <div class=\"ec-newsItemRole__thumbnail\"></div>
";
// line 87
echo " <div class=\"ec-newsItemRole__content\">
";
// line 89
echo " <div class=\"ec-newsItemRole__title\">";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["News"], "title", [], "any", false, false, false, 89), "html", null, true);
echo "</div>
";
// line 92
echo " <time class=\"ec-newsItemRole__date\">";
echo twig_escape_filter($this->env, twig_date_format_filter($this->env, twig_get_attribute($this->env, $this->source, $context["News"], "publish_date", [], "any", false, false, false, 92), "Y/m/d"), "html", null, true);
echo "</time>
</div>
";
// line 96
echo " ";
if (twig_get_attribute($this->env, $this->source, $context["News"], "description", [], "any", false, false, false, 96)) {
// line 97
echo " <div class=\"ec-newsItemRole__description\" style=\"display:none;\">
";
// line 98
echo twig_nl2br(twig_get_attribute($this->env, $this->source, $context["News"], "description", [], "any", false, false, false, 98));
echo "
</div>
";
}
// line 101
echo " </div>
";
}
++$context['loop']['index0'];
++$context['loop']['index'];
$context['loop']['first'] = false;
if (isset($context['loop']['length'])) {
--$context['loop']['revindex0'];
--$context['loop']['revindex'];
$context['loop']['last'] = 0 === $context['loop']['revindex0'];
}
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['News'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 104
echo "
</div>
</div>
</div>
-->
";
// line 110
echo "<div class=\"ec-newsDetailRole\">
<div class=\"ec-newsDetailRole__list\">
";
// line 115
echo " <div class=\"ec-slickContainer\">
";
// line 118
$context['_parent'] = $context;
$context['_seq'] = twig_ensure_traversable((isset($context["NewsList"]) || array_key_exists("NewsList", $context) ? $context["NewsList"] : (function () { throw new RuntimeError('Variable "NewsList" does not exist.', 118, $this->source); })()));
$context['loop'] = [
'parent' => $context['_parent'],
'index0' => 0,
'index' => 1,
'first' => true,
];
if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
$length = count($context['_seq']);
$context['loop']['revindex0'] = $length - 1;
$context['loop']['revindex'] = $length;
$context['loop']['length'] = $length;
$context['loop']['last'] = 1 === $length;
}
foreach ($context['_seq'] as $context["_key"] => $context["News"]) {
// line 119
echo " ";
if ((twig_get_attribute($this->env, $this->source, $context["loop"], "index0", [], "any", false, false, false, 119) < (isset($context["NewsListMax"]) || array_key_exists("NewsListMax", $context) ? $context["NewsListMax"] : (function () { throw new RuntimeError('Variable "NewsListMax" does not exist.', 119, $this->source); })()))) {
// line 120
echo " <div class=\"ec-newsItemRole\">
";
// line 123
echo " <div class=\"ec-newsItemRole__title\">";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["News"], "title", [], "any", false, false, false, 123), "html", null, true);
echo "</div>
";
// line 126
echo " <time class=\"ec-newsItemRole__date\">";
echo twig_escape_filter($this->env, twig_date_format_filter($this->env, twig_get_attribute($this->env, $this->source, $context["News"], "publish_date", [], "any", false, false, false, 126), "Y/m/d"), "html", null, true);
echo "</time>
";
// line 129
echo " <div class=\"ec-newsItemRole__description\">
";
// line 130
if (twig_get_attribute($this->env, $this->source, $context["News"], "description", [], "any", false, false, false, 130)) {
// line 131
echo " ";
echo twig_nl2br(twig_get_attribute($this->env, $this->source, $context["News"], "description", [], "any", false, false, false, 131));
echo "
";
// line 132
if (twig_get_attribute($this->env, $this->source, $context["News"], "url", [], "any", false, false, false, 132)) {
// line 133
echo " <br><a href=\"";
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["News"], "url", [], "any", false, false, false, 133), "html", null, true);
echo "\" ";
if ((twig_get_attribute($this->env, $this->source, $context["News"], "link_method", [], "any", false, false, false, 133) == "1")) {
echo "target=\"_blank\"";
}
echo ">";
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("詳しくはこちら"), "html", null, true);
echo "</a>
";
}
// line 135
echo " ";
} else {
// line 136
echo " (詳細本文はありません)
";
}
// line 138
echo " </div>
</div>
";
}
++$context['loop']['index0'];
++$context['loop']['index'];
$context['loop']['first'] = false;
if (isset($context['loop']['length'])) {
--$context['loop']['revindex0'];
--$context['loop']['revindex'];
$context['loop']['last'] = 0 === $context['loop']['revindex0'];
}
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['News'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 142
echo "
</div>
</div>
</div>
<script>
\$(function () {
var \$newsRole = \$( '.ec-newsRole' );
var \$newsDetailRole = \$( '.ec-newsDetailRole' );
var \$newsSlick = \$newsRole.find('.ec-slickContainer');
var \$newsDetailSlick = \$newsDetailRole.find('.ec-slickContainer');
// 各記事ごとに、詳細本文からサムネイル情報を取得してしかるべき場所へappendします
\$newsRole.find( '.ec-newsItemRole' ).each(function(){
var \$this = \$(this);
// サムネイル画像配置要素
var \$newsThumbnail = \$this.find( '.ec-newsItemRole__thumbnail' );
// サムネイル画像要素を取得
var \$thumbnailImage = \$this.find( '.ec-newsItemRole__description .news_thumbnail' );
if ( !\$thumbnailImage.length ) {
// サムネイル画像の指定がない場合はnone画像
\$thumbnailImage = '<img src=\"/html/template/dtJEIA4010/assets/img/sample/news_thumbnail_none.jpg\" alt=\"\">';
}
// サムネイル画像要素を配置要素へappend
\$newsThumbnail.append( \$thumbnailImage );
});
// 新着情報一覧のslickスライダー実装
\$newsSlick.slick({
dots: false,
arrows: true,
prevArrow: '<div class=\"slick-prev\"><i class=\"jeiafont jeia-arrow-left\"></i></div>',
nextArrow: '<div class=\"slick-next\"><i class=\"jeiafont jeia-arrow\"></i></div>',
speed: 600,
slidesToShow: 4,
swipeToSlide: true,// slidesToScrollに関係なく、ユーザーがスライドに直接ドラッグまたはスワイプすることを許可
responsive: [
{
breakpoint: 1280,// 1280px未満(タブレット時)
settings: {
slidesToShow: 3// 3個で収まらない場合は2個に減らしてご調整ください
}
},
{
breakpoint: 768,// 768px未満(スマホ時)
settings: {
slidesToShow: 2
}
}
]
});
// 詳細本文一覧のslickスライダー実装
\$newsDetailSlick.slick({
fade: true,
dots: false,
arrows: true,
prevArrow: '<div class=\"slick-prev\"><i class=\"jeiafont jeia-arrow-left\"></i></div>',
nextArrow: '<div class=\"slick-next\"><i class=\"jeiafont jeia-arrow\"></i></div>',
adaptiveHeight: true,
speed: 300
});
// 新着情報アイテムのクリックで詳細本文をポップアップ表示
\$newsRole.on('click', '.ec-newsItemRole', function(){
// 詳細本文スライダーをクリックされたアイテムに合わせるためslickGoToします
var index = \$(this).data('index');
\$newsDetailSlick.slick('slickGoTo', index, true);
// ポップアップ表示開始
\$newsDetailRole.addClass( 'is-active' );
});
// ポップアップ表示のCLOSE
\$newsDetailRole.on('click', function(e){
// is-activeを確認する事で、背景以外のクリックイベントを回避します
if ( \$(e.target).hasClass( 'is-active' ) ) {
\$newsDetailRole.removeClass( 'is-active' );
}
});
});
</script>
";
$__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
$__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
}
public function getTemplateName()
{
return "Block/news.twig";
}
public function isTraitable()
{
return false;
}
public function getDebugInfo()
{
return array ( 260 => 142, 243 => 138, 239 => 136, 236 => 135, 224 => 133, 222 => 132, 217 => 131, 215 => 130, 212 => 129, 206 => 126, 200 => 123, 196 => 120, 193 => 119, 176 => 118, 172 => 115, 166 => 110, 159 => 104, 143 => 101, 137 => 98, 134 => 97, 131 => 96, 124 => 92, 118 => 89, 115 => 87, 111 => 84, 105 => 81, 102 => 80, 85 => 79, 81 => 76, 74 => 70, 66 => 61, 63 => 59, 61 => 58, 57 => 56, 54 => 54, 52 => 53, 49 => 52, 46 => 50, 43 => 26,);
}
public function getSourceContext()
{
return new Source("{#
///////////////////////////////////////////////////////////////////////
This template is part of EC-CUBE Design template.
Copyright(c) JAPAN ELECTRONIC INDUSTRIAL ARTS CO.LTD.
http://www.jeia.co.jp/
For the full copyright and license information, please view the LICENSE
file that was distributed with this source code.
本テンプレートの著作権は、「株式会社日本電子工藝社」に帰属いたします。
※本テンプレートを譲渡・再頒布・転用・第三者へ開示することは禁止いたします。
ただし、事業者によるショップ運営者への設置代行を禁止するものではございません。
※本テンプレートを申請されたご利用サイトへの設置以外の目的で複製することは禁止いたします。
※本テンプレートデータ内のライセンス条項、および著作権に関する記述を削除することはできません。
※ご利用サイトを変更することはできません。申請と異なるサイトにてご利用になる場合は、
別途、ご利用費用をお支払いただく必要がございます。
※本テンプレートの改変にあたり、一切のサポートはいたしかねます。
※本テンプレートは、すべての設置環境で動作する事は保証しておりません。
///////////////////////////////////////////////////////////////////////
#}
{#
新着情報
サムネイル画像を表示できる新着情報ブロックとなります。クリックにより詳細本文をポップアップ表示します。
記事の登録はEC-CUBE標準機能です。管理機能の「コンテンツ管理 > 新着情報管理」から記事を登録・編集してください。
EC-CUBE標準では新着情報のサムネイル画像登録機能はありませんが当テンプレートでは新着情報の「詳細本文」欄の中に
以下のコード(img要素)を記述して頂くことでそれを拾ってサムネイル画像表示させています。
サムネイル画像を登録する記述
例:
<img class=\"news_thumbnail\" src=\"/html/template/dtJEIA4010/assets/img/sample/news_thumbnail_01.jpg\" alt=\"\">
※サムネイル画像の指定は、詳細本文欄のどこに記述して頂いても構いません。
※src属性には画像までのフルパスを記述してください。
※詳細本文の表示の中ではサムネイル画像は表示されません。
新着情報一覧の表示件数は下記のTwig変数「NewsListMax」にて設定して頂けます。
一覧表示はスライド表示します。
新着情報をクリックすることで詳細本文をポップアップ表示します。
詳細本文もスライダーとなっており、ポップアップした中でスライド表示させることができます。
#}
{# ----------▼ 新着情報の表示件数 ▼---------- #}
{% set NewsListMax = 10 %}
{# ----------▲ 新着情報の表示件数 ▲---------- #}
<!-- Block/news.twig -->
{% set NewsList = repository('Eccube\\\\Entity\\\\News').getList() %}
{# 新着情報一覧 #}
<!--
<div class=\"ec-newsRole\">
<div class=\"ec-secHeading\">
<h2 class=\"text-span updown ec-secHeading__en\">
News
{#
<span class=\"ec-secHeading__ja\">新着情報</span>
#}
</h2>
</div>
<div class=\"ec-newsRole__list appearEffect\">
{# slickコンテナ #}
<div class=\"ec-slickContainer slickGutter\">
{# 新着情報アイテム #}
{% for News in NewsList %}
{% if loop.index0 < NewsListMax %}{# 10件までを表示 #}
<div class=\"ec-newsItemRole\" data-index=\"{{ loop.index0 }}\">
{# サムネイル画像枠 #}
<div class=\"ec-newsItemRole__thumbnail\"></div>
{# 商品コンテンツ枠 #}
<div class=\"ec-newsItemRole__content\">
{# 新着情報タイトル #}
<div class=\"ec-newsItemRole__title\">{{ News.title }}</div>
{# 投稿日付 #}
<time class=\"ec-newsItemRole__date\">{{ News.publish_date|date('Y/m/d') }}</time>
</div>
{# 詳細本文(こちらはjsがサムネイル情報を取得するために使用しますので、本文自体は非表示とします) #}
{% if News.description %}
<div class=\"ec-newsItemRole__description\" style=\"display:none;\">
{{ News.description|raw|nl2br }}
</div>
{% endif %}
</div>
{% endif %}
{% endfor %}
</div>
</div>
</div>
-->
{# 詳細本文ポップアップスライダー #}
<div class=\"ec-newsDetailRole\">
<div class=\"ec-newsDetailRole__list\">
{# slickコンテナ #}
<div class=\"ec-slickContainer\">
{# 新着情報アイテム #}
{% for News in NewsList %}
{% if loop.index0 < NewsListMax %}{# 10件までを表示 #}
<div class=\"ec-newsItemRole\">
{# 新着情報タイトル #}
<div class=\"ec-newsItemRole__title\">{{ News.title }}</div>
{# 投稿日付 #}
<time class=\"ec-newsItemRole__date\">{{ News.publish_date|date('Y/m/d') }}</time>
{# 詳細本文 #}
<div class=\"ec-newsItemRole__description\">
{% if News.description %}
{{ News.description|raw|nl2br }}
{% if News.url %}
<br><a href=\"{{ News.url }}\" {% if News.link_method == '1' %}target=\"_blank\"{% endif %}>{{ '詳しくはこちら'|trans }}</a>
{% endif %}
{% else %}
(詳細本文はありません)
{% endif %}
</div>
</div>
{% endif %}
{% endfor %}
</div>
</div>
</div>
<script>
\$(function () {
var \$newsRole = \$( '.ec-newsRole' );
var \$newsDetailRole = \$( '.ec-newsDetailRole' );
var \$newsSlick = \$newsRole.find('.ec-slickContainer');
var \$newsDetailSlick = \$newsDetailRole.find('.ec-slickContainer');
// 各記事ごとに、詳細本文からサムネイル情報を取得してしかるべき場所へappendします
\$newsRole.find( '.ec-newsItemRole' ).each(function(){
var \$this = \$(this);
// サムネイル画像配置要素
var \$newsThumbnail = \$this.find( '.ec-newsItemRole__thumbnail' );
// サムネイル画像要素を取得
var \$thumbnailImage = \$this.find( '.ec-newsItemRole__description .news_thumbnail' );
if ( !\$thumbnailImage.length ) {
// サムネイル画像の指定がない場合はnone画像
\$thumbnailImage = '<img src=\"/html/template/dtJEIA4010/assets/img/sample/news_thumbnail_none.jpg\" alt=\"\">';
}
// サムネイル画像要素を配置要素へappend
\$newsThumbnail.append( \$thumbnailImage );
});
// 新着情報一覧のslickスライダー実装
\$newsSlick.slick({
dots: false,
arrows: true,
prevArrow: '<div class=\"slick-prev\"><i class=\"jeiafont jeia-arrow-left\"></i></div>',
nextArrow: '<div class=\"slick-next\"><i class=\"jeiafont jeia-arrow\"></i></div>',
speed: 600,
slidesToShow: 4,
swipeToSlide: true,// slidesToScrollに関係なく、ユーザーがスライドに直接ドラッグまたはスワイプすることを許可
responsive: [
{
breakpoint: 1280,// 1280px未満(タブレット時)
settings: {
slidesToShow: 3// 3個で収まらない場合は2個に減らしてご調整ください
}
},
{
breakpoint: 768,// 768px未満(スマホ時)
settings: {
slidesToShow: 2
}
}
]
});
// 詳細本文一覧のslickスライダー実装
\$newsDetailSlick.slick({
fade: true,
dots: false,
arrows: true,
prevArrow: '<div class=\"slick-prev\"><i class=\"jeiafont jeia-arrow-left\"></i></div>',
nextArrow: '<div class=\"slick-next\"><i class=\"jeiafont jeia-arrow\"></i></div>',
adaptiveHeight: true,
speed: 300
});
// 新着情報アイテムのクリックで詳細本文をポップアップ表示
\$newsRole.on('click', '.ec-newsItemRole', function(){
// 詳細本文スライダーをクリックされたアイテムに合わせるためslickGoToします
var index = \$(this).data('index');
\$newsDetailSlick.slick('slickGoTo', index, true);
// ポップアップ表示開始
\$newsDetailRole.addClass( 'is-active' );
});
// ポップアップ表示のCLOSE
\$newsDetailRole.on('click', function(e){
// is-activeを確認する事で、背景以外のクリックイベントを回避します
if ( \$(e.target).hasClass( 'is-active' ) ) {
\$newsDetailRole.removeClass( 'is-active' );
}
});
});
</script>
", "Block/news.twig", "/home/giftlife-tokyo/www/stg/awd/app/template/osechi/Block/news.twig");
}
}