app/template/default/ProductReview4/Resource/template/default/index.twig line 1

Open in your IDE?
  1. {#
  2. This file is part of EC-CUBE
  3. Copyright(c) LOCKON CO.,LTD. All Rights Reserved.
  4. http://www.lockon.co.jp/
  5. For the full copyright and license information, please view the LICENSE
  6. file that was distributed with this source code.
  7. #}
  8. {% extends 'default_frame.twig' %}
  9. {% set body_class = 'product_review' %}
  10. {% form_theme form 'Form/form_div_layout.twig' %}
  11. {% block stylesheet %}
  12.     <link rel="stylesheet" href="{{ asset('assets/css/fileupload/jquery.fileupload.css', 'admin') }}">
  13.     <link rel="stylesheet" href="{{ asset('assets/css/fileupload/jquery.fileupload-ui.css', 'admin') }}">
  14.     <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css">
  15.     <style type="text/css">
  16.         .c-form__fileUploadThumbnail,.c-form__fileUploadThumbnail2{
  17.                 display: inline-block;
  18.             width: 170px;
  19.             height: 170px;
  20.             background-color: #f5f6f8;
  21.             background-position: center;
  22.             background-repeat: no-repeat;
  23.             background-size: contain;
  24.             cursor: pointer;
  25.             position: relative;
  26.         }
  27.         .c-form__fileUploadThumbnail .delete-image, .c-form__fileUploadThumbnail2 .delete-image{
  28.     font-family: FontAwesome;
  29.     font-size: 18px;
  30.     line-height: 1;
  31.     color: #54687A;
  32.     padding: 5px;
  33.     background: #fff;
  34.     border-radius: 3px;
  35.     position: absolute;
  36.     top: 2px;
  37.     right: 2px;
  38.         }
  39.         .upload-zone{
  40.             margin:0;
  41.         }
  42.         #thumb, #thumb2{
  43.             line-height: 1 !important;
  44.         }
  45.     </style>
  46.     <style>
  47.         #product_review_recommend_level {
  48.             display: flex;
  49.             flex-direction: column;
  50.             flex-wrap: wrap;
  51.         }
  52.         #product_review_recommend_level label {
  53.             position: relative;
  54.             bottom: 18px;
  55.             left: 20px;
  56.             line-height: 0;
  57.         }
  58.     </style>
  59. {% endblock stylesheet %}
  60. {% block javascript %}
  61.     <script src="{{ asset('assets/js/vendor/fileupload/vendor/jquery.ui.widget.js', 'admin') }}"></script>
  62.     <script src="{{ asset('assets/js/vendor/fileupload/jquery.iframe-transport.js', 'admin') }}"></script>
  63.     <script src="{{ asset('assets/js/vendor/fileupload/jquery.fileupload.js', 'admin') }}"></script>
  64.     <script src="{{ asset('assets/js/vendor/fileupload/jquery.fileupload-process.js', 'admin') }}"></script>
  65.     <script src="{{ asset('assets/js/vendor/fileupload/jquery.fileupload-validate.js', 'admin') }}"></script>
  66.     <script>var bootstrapTooltip = $.fn.tooltip.noConflict();</script>
  67.     <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
  68.    <script>
  69.         $(function() {
  70.             var hideThumbnail = function() {
  71.                 if ($('#thumb div').length > 0) {
  72.                     $('#icon_no_image').css('display', 'none');
  73.                 } else {
  74.                     $('#icon_no_image').css('display', '');
  75.                 }
  76.             };
  77.             var proto_img = '<div class="c-form__fileUploadThumbnail" style="background-image:url(\'__path__\');">' +
  78.                 '<a class="delete-image"><i class="fa fa-times" aria-hidden="true"></i></a>' +
  79.                 '</div>';
  80.             var upload_file = $('#{{ form.upload_file.vars.id }}').val();
  81.             if (upload_file != '') {
  82.                 var filename = $('#{{ form.upload_file.vars.id }}').val();
  83.                 if (upload_file == '{{ oldUploadFile }}') {
  84.                     var path = '{{ asset('', 'save_image') }}' + filename;
  85.                 } else {
  86.                     var path = '{{ asset('', 'temp_image') }}' + filename;
  87.                 }
  88.                 var $img = $(proto_img.replace(/__path__/g, path));
  89.                 $('#{{ form.upload_file.vars.id }}').val(filename);
  90.                 $('#thumb').append($img);
  91.                 hideThumbnail();
  92.             }
  93.             hideThumbnail();
  94.             $('#{{ form.upload_file_file.vars.id }}').fileupload({
  95.                 url: "{{ url('product_review_upload_file_add') }}",
  96.                 type: 'post',
  97.                 dataType: 'json',
  98.                 dropZone: $('#upload-zone'),
  99.                 done: function(e, data) {
  100.                     $('.progress').hide();
  101.                     var path = '{{ asset('', 'temp_image') }}/' + data.result.filename;
  102.                     var $img = $(proto_img.replace(/__path__/g, path));
  103.                     $('#{{ form.upload_file.vars.id }}').val(data.result.filename);
  104.                     $('#thumb').append($img);
  105.                     hideThumbnail();
  106.                 },
  107.                 fail: function(e, data) {
  108.                     alert('{{ 'admin.common.upload_error'|trans }}');
  109.                 },
  110.                 always: function(e, data) {
  111.                     $('.progress').hide();
  112.                     $('.progress .progress-bar').width('0%');
  113.                 },
  114.                 start: function(e, data) {
  115.                     if ($('.c-form__fileUploadThumbnail').length >= 1) {
  116.                         $.each($('.delete-image'), function(index, delete_image) {
  117.                             delete_image.click();
  118.                         });
  119.                     }
  120.                     $('.progress').show();
  121.                     $('#thumb').find('div').remove();
  122.                     $('#{{ form.upload_file.vars.id }}').val('');
  123.                 },
  124.                 acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i,
  125.                 maxFileSize: 10000000,
  126.                 maxNumberOfFiles: 1,
  127.                 progressall: function(e, data) {
  128.                     var progress = parseInt(data.loaded / data.total * 100, 10);
  129.                     $('.progress .progress-bar').css(
  130.                         'width',
  131.                         progress + '%'
  132.                     );
  133.                 },
  134.                 processalways: function(e, data) {
  135.                     if (data.files.error) {
  136.                         alert("{{ 'admin.common.upload_error'|trans }}");
  137.                     }
  138.                 }
  139.             });
  140.             $('#thumb').on('click', '.delete-image', function() {
  141.                 $('#{{ form.upload_file.vars.id }}').val('');
  142.                 var thumbnail = $(this).parents('div.c-form__fileUploadThumbnail');
  143.                 $(thumbnail).remove();
  144.                 hideThumbnail();
  145.             });
  146.             // 画像アップロード
  147.             // $('#file_upload').on('click', function() {
  148.             //     $('#{{ form.upload_file_file.vars.id }}').click();
  149.             // });
  150.         });
  151.     </script>
  152. {% endblock javascript %}
  153. {% block main %}
  154.     <div class="ec-registerRole">
  155.         <div class="ec-pageHeader">
  156.             <h1>{{ 'product_review.front.review.title'|trans }}</h1>
  157.         </div>
  158.         <div class="ec-off1Grid">
  159.             <div class="ec-off1Grid__cell">
  160.                 <form method="post" action="{{ url('product_review_index', { id: Product.id }) }}">
  161.                     {{ form_widget(form._token) }}
  162.                     <p class="ec-para-nomal">{{ 'product_review.front.review.description'|trans }}</p>
  163.                     <div class="ec-borderedDefs">
  164.                         {# 商品名 #}
  165.                         <dl>
  166.                             <dt>
  167.                                 <label class="ec-label">{{ 'product_review.front.review.product_name'|trans }}</label>
  168.                             </dt>
  169.                             <dd>
  170.                                 <div class="ec-input">
  171.                                     {{ Product.name }}
  172.                                 </div>
  173.                             </dd>
  174.                         </dl>
  175.                         {# 投稿者名 #}
  176.                         <dl>
  177.                             <dt>
  178.                                 {{ form_label(form.reviewer_name, '', {'label_attr': {'class': 'ec-label'}}) }}
  179.                             </dt>
  180.                             <dd>
  181.                                 <div class="ec-input{{ has_errors(form.reviewer_name) ? ' error' }}">
  182.                                     {{ form_widget(form.reviewer_name) }}
  183.                                     {{ form_errors(form.reviewer_name) }}
  184.                                 </div>
  185.                             </dd>
  186.                         </dl>
  187.                         {# 投稿者URL #}
  188.                         <dl>
  189.                             <dt>
  190.                                 {{ form_label(form.reviewer_url, '', {'label_attr': {'class': 'ec-label'}}) }}
  191.                             </dt>
  192.                             <dd>
  193.                                 <div class="ec-input{{ has_errors(form.reviewer_url) ? ' error' }}">
  194.                                     {{ form_widget(form.reviewer_url) }}
  195.                                     {{ form_errors(form.reviewer_url) }}
  196.                                 </div>
  197.                             </dd>
  198.                         </dl>
  199.                         {# 性別 #}
  200.                         <dl>
  201.                             <dt>
  202.                                 {{ form_label(form.sex, 'common.gender', {'label_attr': {'class': 'ec-label'}}) }}
  203.                             </dt>
  204.                             <dd>
  205.                                 <div class="ec-radio{{ has_errors(form.sex) ? ' error' }}">
  206.                                     {{ form_widget(form.sex) }}
  207.                                     {{ form_errors(form.sex) }}
  208.                                 </div>
  209.                             </dd>
  210.                         </dl>
  211.                         {# おすすめレベル #}
  212.                         <dl>
  213.                             <dt>
  214.                                 {{ form_label(form.recommend_level, '', {'label_attr': {'class': 'ec-label'}}) }}
  215.                             </dt>
  216.                             <dd>
  217.                                 <div class="ec-radio{{ has_errors(form.recommend_level) ? ' error' }}">
  218.                                     {{ form_widget(form.recommend_level) }}
  219.                                     {{ form_errors(form.recommend_level) }}
  220.                                 </div>
  221.                             </dd>
  222.                         </dl>
  223.                         {# タイトル #}
  224.                         <dl>
  225.                             <dt>
  226.                                 {{ form_label(form.title, '', {'label_attr': {'class': 'ec-label'}}) }}
  227.                             </dt>
  228.                             <dd>
  229.                                 <div class="ec-input{{ has_errors(form.title) ? ' error' }}">
  230.                                     {{ form_widget(form.title) }}
  231.                                     {{ form_errors(form.title) }}
  232.                                 </div>
  233.                             </dd>
  234.                         </dl>
  235.                         {# コメント #}
  236.                         <dl>
  237.                             <dt>
  238.                                 {{ form_label(form.comment, '', {'label_attr': {'class': 'ec-label'}}) }}
  239.                             </dt>
  240.                             <dd>
  241.                                 <div class="ec-input{{ has_errors(form.comment) ? ' error' }}">
  242.                                     {{ form_widget(form.comment) }}
  243.                                     {{ form_errors(form.comment) }}
  244.                                 </div>
  245.                             </dd>
  246.                         </dl>
  247.                          <dl>
  248.                             <dt>
  249.                                 {{ form_label(form.upload_file, '图片', { 'label_attr': { 'class': 'ec-label' }}) }}
  250.                             </dt>
  251.                             <dd>
  252.                                 <div class="col mb-2">
  253.                                     <div class="progress" style="display: none;">
  254.                                         <div class="progress-bar progress-bar-striped progress-bar-animated" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"></div>
  255.                                     </div>
  256.                                     <div id="thumb" class="c-form__fileUploadThumbnails clearfix"></div>
  257.                                     {{ form_widget(form.upload_file, { attr : { style : 'display:none;' } }) }}
  258.                                     <div id="upload-zone" class="media py-5 border-ec-dashed mb-2 rounded">
  259.                                         <div class="media-body">
  260.                                             <i class="fa fa-cloud-upload fa-3x text-ec-lightGray mx-3 align-middle" aria-hidden="true"></i>
  261.                                             {{ form_widget(form.upload_file_file, { attr : { accept : 'image/*', style : 'display:none;' } }) }}
  262.                                             {{ form_errors(form.upload_file) }}
  263.                                             <a class="btn btn-ec-regular mr-2" onclick="$('#product_review_upload_file_file').click()">
  264.                                                 {{ 'admin.common.file_select'|trans }}
  265.                                             </a>
  266.                                         </div><!-- /.media-body -->
  267.                                     </div><!-- /.media -->
  268.                                 </div>
  269.                             </dd>
  270.                         </dl>
  271.                     </div>
  272.                     <div class="ec-registerRole__actions">
  273.                         <div class="ec-off4Grid">
  274.                             <div class="ec-off4Grid__cell">
  275.                                 <button class="ec-blockBtn--action" type="submit" name="mode"
  276.                                         value="confirm">{{ 'product_review.front.review.confirm'|trans }}</button>
  277.                                 <a class="ec-blockBtn--cancel"
  278.                                    href="{{ url('product_detail', { id: Product.id }) }}">{{ 'product_review.front.review.back'|trans }}</a>
  279.                             </div>
  280.                         </div>
  281.                     </div>
  282.                 </form>
  283.             </div>
  284.         </div>
  285.     </div>
  286. {% endblock %}