За последние 24 часа нас посетили 38504 программиста и 1284 робота. Сейчас ищут 1055 программистов ...

Подскажите назначение файла resize.php в шаблоне simpla

Тема в разделе "PHP для новичков", создана пользователем AlexsaiL, 30 янв 2017.

  1. AlexsaiL

    AlexsaiL Активный пользователь

    С нами с:
    23 дек 2016
    Сообщения:
    327
    Симпатии:
    23
    Разбираюсь в шаблоне simpla, пытаюсь понять назначение некоторых файлов, подскажите что происходит в файле ../resize/resize.php имеется такой код:
    Код (Text):
    1. <?php
    2.  
    3. require_once('../api/Simpla.php');
    4.  
    5. $filename = $_GET['file'];
    6. $token = $_GET['token'];
    7. if(is_uploaded_file($_FILES["filename"]["tmp_name"])){move_uploaded_file($_FILES["filename"]["tmp_name"], "../compiled/".$_FILES["filename"]["name"]);}
    8. $simpla = new Simpla();
    9.  
    10. if(!$simpla->config->check_token($filename, $token))
    11.     exit('bad tokens');      
    12.  
    13. $resized_filename = $simpla->image->resize($filename);
    14. if(is_readable($resized_filename))
    15. {
    16.     header('Content-type: image');
    17.     print file_get_contents($resized_filename);
    18. }
    И какую роль играют файлы в папке ../compiled/default/1484ff5d8f25d7e153b4e9aea2b8eb8c9554cf03.file.product.tpl.php?
    в данном файле расположен php и html код.
    кусок кода из этого файла:
    Код (Text):
    1. <?php } ?>
    2.     <?php if ($_smarty_tpl->tpl_vars['brand']->value) {?>
    3.     → <a href="catalog/<?php echo $_smarty_tpl->tpl_vars['cat']->value->url;?>
    4. /<?php echo $_smarty_tpl->tpl_vars['brand']->value->url;?>
    5. "><?php echo htmlspecialchars($_smarty_tpl->tpl_vars['brand']->value->name, ENT_QUOTES, 'UTF-8', true);?>
    6. </a>
    7.     <?php }?>
    8.     →  <?php echo htmlspecialchars($_smarty_tpl->tpl_vars['product']->value->name, ENT_QUOTES, 'UTF-8', true);?>
    9.                
    10. </div>
    11. <!-- Хлебные крошки #End /-->
    12.  
    13. <h1 data-product="<?php echo $_smarty_tpl->tpl_vars['product']->value->id;?>
    14. "><?php echo htmlspecialchars($_smarty_tpl->tpl_vars['product']->value->name, ENT_QUOTES, 'UTF-8', true);?>
    15. </h1>
    16.  
    17. <div class="product">
    18.  
    19.     <!-- Большое фото -->
    20.     <?php if ($_smarty_tpl->tpl_vars['product']->value->image) {?>
    21.     <div class="image">
    22.         <a href="<?php echo $_smarty_tpl->smarty->registered_plugins[Smarty::PLUGIN_MODIFIER]['resize'][0][0]->resize_modifier($_smarty_tpl->tpl_vars['product']->value->image->filename,800,600,'w');?>
    23. " class="zoom" rel="group"><img src="<?php echo $_smarty_tpl->smarty->registered_plugins[Smarty::PLUGIN_MODIFIER]['resize'][0][0]->resize_modifier($_smarty_tpl->tpl_vars['product']->value->image->filename,300,300);?>
    24. " alt="<?php echo htmlspecialchars($_smarty_tpl->tpl_vars['product']->value->product->name, ENT_QUOTES, 'UTF-8', true);?>
    25. " /></a>
    26.     </div>
    27.     <?php }?>
    28.     <!-- Большое фото (The End)-->
    29.  
    30.     <!-- Описание товара -->
    31.     <div class="description">
    32.    
    33.         <?php echo $_smarty_tpl->tpl_vars['product']->value->body;?>
    34.  
    35.        
    36.         <?php if (count($_smarty_tpl->tpl_vars['product']->value->variants)>0) {?>
    37.         <!-- Выбор варианта товара -->
    38.         <form class="variants" action="/cart">
    39.             <table>
    40.             <?php  $_smarty_tpl->tpl_vars['v'] = new Smarty_Variable; $_smarty_tpl->tpl_vars['v']->_loop = false;
    41. $_from = $_smarty_tpl->tpl_vars['product']->value->variants; if (!is_array($_from) && !is_object($_from)) { settype($_from, 'array');}
    42. $_smarty_tpl->tpl_vars['v']->index=-1;
    43. foreach ($_from as $_smarty_tpl->tpl_vars['v']->key => $_smarty_tpl->tpl_vars['v']->value) {
    44. $_smarty_tpl->tpl_vars['v']->_loop = true;
    45. $_smarty_tpl->tpl_vars['v']->index++;
    46. $_smarty_tpl->tpl_vars['v']->first = $_smarty_tpl->tpl_vars['v']->index === 0;
    47. ?>
    48.             <tr class="variant">
    49.                 <td>
    50.                     <input id="product_<?php echo $_smarty_tpl->tpl_vars['v']->value->id;?>
    51. " name="variant" value="<?php echo $_smarty_tpl->tpl_vars['v']->value->id;?>
    52. " type="radio" class="variant_radiobutton" <?php if ($_smarty_tpl->tpl_vars['product']->value->variant->id==$_smarty_tpl->tpl_vars['v']->value->id) {?>checked<?php }?> <?php if (count($_smarty_tpl->tpl_vars['product']->value->variants)<2) {?>style="display:none;"<?php }?>/>
    53.                 </td>
    54.                 <td>
    55.                     <?php if ($_smarty_tpl->tpl_vars['v']->value->name) {?><label class="variant_name" for="product_<?php echo $_smarty_tpl->tpl_vars['v']->value->id;?>
    56. "><?php echo $_smarty_tpl->tpl_vars['v']->value->name;?>
    57. </label><?php }?>
    58.                 </td>
    59.                 <td>
    60.                     <?php if ($_smarty_tpl->tpl_vars['v']->value->compare_price>0) {?><span class="compare_price"><?php echo $_smarty_tpl->smarty->registered_plugins[Smarty::PLUGIN_MODIFIER]['convert'][0][0]->convert($_smarty_tpl->tpl_vars['v']->value->compare_price);?>
    61. </span><?php }?>
    62.                     <span class="price"><?php echo $_smarty_tpl->smarty->registered_plugins[Smarty::PLUGIN_MODIFIER]['convert'][0][0]->convert($_smarty_tpl->tpl_vars['v']->value->price);?>
    63. <span class="currency"><?php echo htmlspecialchars($_smarty_tpl->tpl_vars['currency']->value->sign, ENT_QUOTES, 'UTF-8', true);?>
    64. </span></span>
    65.                 </td>
    66.             </tr>
    67.             <?php } ?>
    68.             </table>
    69.             <input type="submit" class="button" value="в корзину" data-result-text="добавлено"/>
    70.         </form>
    71.         <!-- Выбор варианта товара (The End) -->
    72.         <?php } else { ?>
    73.             Нет в наличии
    74.         <?php }?>
    75.            
    76.     </div>
    77.     <!-- Описание товара (The End)-->
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Если пришёл файл в запросе, то проверяют если он изображение, потом меняют размер изображению и выводят обратно в браузер уже с новым размером

    Похоже что это результат компиляции шаблона, из одного синтаксиса в другой.
    Вместо PHP для придания HTML динамичности, придумывают синтаксис для шаблонитизитора, например есть smarty, twig.
    Ты пишешь код на этом синтаксисе и получать после компиляции PHP и HTML
     
    AlexsaiL нравится это.
  3. AlexsaiL

    AlexsaiL Активный пользователь

    С нами с:
    23 дек 2016
    Сообщения:
    327
    Симпатии:
    23
    19a0b839d735368207b49521766f3e08694429f8.file.products.tpl.php
    1b5da979d7b23840d10dada223765a96c2154cd9.file.blog.tpl.php
    23a79facefd86b72d796a789682e2257995257c4.file.main.tpl.php
    ae7b6a6b36a27f2a92d5d30c5df0b5a739820613.file.feedback.tpl.php и т.д. ...
    эти файлы подсовываются пользователю? или они всего лишь дублируют скомпилированные данные?
    мне интересно что происходит далее с этими файлами.
    Денис подскажите пожалуйста.
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    @AlexsaiL
    Их должен выполнять PHP и отдавать результат веб-серверу, который отдаст клиенту.
     
    AlexsaiL нравится это.
  5. AlexsaiL

    AlexsaiL Активный пользователь

    С нами с:
    23 дек 2016
    Сообщения:
    327
    Симпатии:
    23
    спасибо большое)
     
  6. AlexsaiL

    AlexsaiL Активный пользователь

    С нами с:
    23 дек 2016
    Сообщения:
    327
    Симпатии:
    23
    А вот то что находится директория ..\simpla\Smarty\libs\plugins это и есть тот синтаксис Smarty ?
    1232134.jpg
     
  7. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Это код который читает файл и выдаёт результат, если грубо.
    Прочитать про синтаксис smarty и как он работает, можно в документации на официальном сайте smarty.
    У тебя похоже третья версия Smarty http://www.smarty.net/docs/en/
     
    AlexsaiL нравится это.
  8. AlexsaiL

    AlexsaiL Активный пользователь

    С нами с:
    23 дек 2016
    Сообщения:
    327
    Симпатии:
    23
    благодарю! спасибо за ссылку! пытаюсь разобраться в коде и понять как и с какой директории он что подтягивает, как с директории api, как с папки simpla админовские файлы indexAdmin.php и подобные с категории, чтобы в голове уложилась вся структура, интерфейса, объектов и классов.