Функция "Вставить файл" - {ФАЙЛ=test.php} к описанию категории товара Инстант шоп - нужно решение

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО InstantCMS 1.X
#1 11 октября 2018 в 15:34
Привет.
Нужно вставить файл в описание категории товаров, вот таким шорт кодом — {ФАЙЛ=test.php}. Функция аналогична той которая присутствует при создании статьи.
Господа есть ли способ? На форуме не нашел.
#2 11 октября 2018 в 15:55


Заралик
Этот код обрабатывается фильтром "Внешние скрипты"
Вам нужно что бы категории товаров фильтровались
решение тут
#3 11 октября 2018 в 16:08



Заралик
Этот код обрабатывается фильтром "Внешние скрипты"
Вам нужно что бы категории товаров фильтровались
решение тут

@chameleon9

У Вас шоп есть, сможете помочь с выводом?
Если не ошибаюсь то вод вывод категорий — com_inshop_view

  1.  
  2.  
  3. <h1 class="con_heading">{$root_cat.title}</h1>
  4.  
  5. {if $cfg.show_subcats && $subcats}
  6. <ul class="shop_cat_list category_list mt-15 mb0">
  7. {foreach key=tid item=cat from=$subcats}
  8. <li class="shop_cat_item category_entry" style="background:url(/images/photos/small/{$cat.config.icon}) no-repeat 12px 12px;">
  9. <a class="con_subcat" href="/shop/{$cat.seolink}">{$cat.title}</a>
  10. {if $cat.subcats}
  11. <div class="subcats">
  12. {foreach key=num item=subcat from=$cat.subcats}
  13. <a href="/shop/{$subcat.seolink}">{$subcat.title}</a>{if $num<sizeof($cat.subcats)-1}, {/if}
  14. {/foreach}
  15. </div>
  16. {/if}
  17. </li>
  18. {/foreach}
  19. </ul>
  20. {/if}
  21.  
  22. {if $root_cat.description}
  23. <div class="con_info mt_15">{$root_cat.description}</div>
  24. {/if}
  25.  
  26. {if $cfg.show_filter && ($items || $filter)}
  27. <div id="filter_box">
  28. <div class="shop_filter_link">
  29. <a class="button" href="javascript:" onclick="$('.shop_filter').toggle()">{$LANG.SHOP_FILTER}</a> {if $filter}Найдено товаров: {$total}{/if}
  30. </div>
  31. <div class="shop_filter">
  32. <div class="filter_body edit_table">
  33. <form action="/shop/{$root_cat.seolink}" method="post">
  34. <div class="line mt-15">
  35. <strong>{$LANG.SHOP_PRICE}</strong>
  36. <input class="price_filter" type="text" name="filter[pfrom]" class="input" value="{$filter.pfrom}" /> &mdash; <input class="price_filter" type="text" name="filter[pto]" class="input" value="{$filter.pto}" />
  37. </div>
  38. {if $cfg.show_filter_vendors && is_array($vendors)}
  39. <div class="line">
  40. <strong>{$LANG.SHOP_VENDORS}:</strong>
  41. {foreach key=vendor_id item=vendor from=$vendors}
  42. <div>
  43. <label>
  44. <input type="checkbox" value="{$vendor.id}" name="filter[vendors][]" {if in_array($vendor.id, $filter.vendors)}checked="checked"{/if} /> {$vendor.title}
  45. </label>
  46. </div>
  47. {/foreach}
  48. </div>
  49. {/if}
  50. {foreach key=tid item=char from=$chars}
  51. {if $char.is_filter}
  52. <div class="line">
  53. <strong>
  54. {$char.title}{if $char.units}, {$char.units}{/if}
  55. </strong>
  56. {if $char.fieldtype != 'int'}
  57. {if $char.values}
  58. {if $char.is_filter_many}
  59. {foreach key=vid item=val from=$char.values_arr}
  60. <div>
  61. <label><input type="checkbox" value="{$val}" name="filter[{$char.id}][]" {if in_array(trim($val), $filter[$char.id])}checked="checked"{/if} /> {$val}</label>
  62. </div>
  63. {/foreach}
  64. {else}
  65. <select name="filter[{$char.id}]" style="width:100%">
  66. <option value="" {if !$filter[$char.id]}selected="selected"{/if}>{$LANG.SHOP_FILTER_ALL}</option>
  67. {foreach key=vid item=val from=$char.values_arr}
  68. <option value="{$val}" {if trim($filter[$char.id]) == trim($val)}selected="selected"{/if}>{$val}</option>
  69. {/foreach}
  70. </select>
  71. {/if}
  72. {else}
  73. <input type="text" name="filter[{$char.id}]" class="input" value="{$filter[$char.id]}" style="width:99%"/>
  74. {/if}
  75. {else}
  76. <input class="price_filter" type="text" name="filter[{$char.id}][from]" class="input" value="{$filter[$char.id].from}" /> &mdash; <input class="price_filter" type="text" name="filter[{$char.id}][to]" class="input" value="{$filter[$char.id].to}" />
  77. {/if}
  78. </div>
  79. {/if}
  80. {/foreach}
  81. <div class="mt_15">
  82. <input type="submit" value="{$LANG.SHOP_FILTER_SUBMIT}" />
  83. <input type="button" value="Закрыть" onclick="$('.shop_filter').toggle()" />
  84. </div>
  85. {if $filter}<div class="mt_15 mlr_15"><input type="button" value="{$LANG.SHOP_FILTER_CANCEL}" onclick="window.location.href='/shop/{$root_cat.seolink}/all'" /></div>{/if}
  86. </form>
  87. </div>
  88. </div>
  89. </div>
  90. {/if}
  91.  
  92. {if $items}
  93. {include file='com_inshop_items.tpl'}
  94. {else}
  95. {if $filter}
  96. <p class="line">{$LANG.SHOP_ITEMS_NOT_FOUND}</p>
  97. {/if}
  98. {/if}
  99.  
  100. Выв
  101.  
За вывод категорий это $subcats или это — $cfg.show_subcats && $subcats?

Или не в 1 файле править нужно?

Сам пока не сильно вник в это дело))
#4 11 октября 2018 в 16:10


Заралик
шопа нет, но код вставлять в файл frontend.php
#5 11 октября 2018 в 16:19



Заралик
шопа нет, но код вставлять в файл frontend.php

@chameleon9

Вот вывод корневой if (!$seolink){
//Корневая категория
$root_cat = $model->getRootCategory();
$root_cat['title'] = ($menuid > 1? $menutitle: '');
}

А вот весь фАЙЛ -


  1.  
  2. <?php
  3. /*********************************************************************************************/
  4. // //
  5. // InstantCMS v1.5 (c) 2009 FREEWARE //
  6. // /, info@instantcms.ru //
  7. // //
  8. // written by InstantCMS Team 2007-2009 //
  9. // //
  10. // LICENSED BY GNU/GPL v2 //
  11. // //
  12. /*********************************************************************************************/
  13. if(!defined('VALID_CMS')) { die('ACCESS DENIED'); }
  14.  
  15. function shop(){
  16.  
  17. global $_LANG;
  18. global $_CFG;
  19.  
  20. setlocale(LC_NUMERIC, 'POSIX');
  21.  
  22. //подключим нужные классы
  23. $inConf = cmsConfig::getInstance();
  24. $inCore = cmsCore::getInstance(); //ядро
  25. $inPage = cmsPage::getInstance(); //страница
  26. $inDB = cmsDatabase::getInstance(); //база данных
  27. $inUser = cmsUser::getInstance(); //пользователь
  28.  
  29. //получим ID текущего пункта меню
  30. $menuid = $inCore->menuId();
  31. $menutitle = $inCore->menuTitle();
  32.  
  33. if ($menuid == 1){ $menutitle = ''; }
  34.  
  35. //загружаем модель
  36. $inCore->loadModel('shop');
  37. $model = new cms_model_shop();
  38.  
  39. //загрузим конфиг компонента
  40. $cfg = $model->getConfig();
  41.  
  42. //получаем входные параметры
  43. $id = $inCore->request('id', 'int', 0);
  44. $seolink = $inCore->request('seolink', 'str', '');
  45. $do = $inCore->request('do', 'str', 'view');
  46.  
  47. $page = $inCore->request('page', 'int', 1);
  48. $perpage = $cfg['perpage'];
  49.  
  50. //Подключаем CSS к странице
  51. $inPage->addHeadCSS('templates/'.$inConf->template.'/css/inshop.css');
  52. $inPage->addPathway($inCore->getComponentTitle(), '/shop');
  53.  
  54. //============================================================================//
  55. //============================================================================//
  56.  
  57. //
  58. // ПРОСМОТР КАТЕГОРИИ МАГАЗИНА
  59. //
  60.  
  61. if ($do=='view'){
  62.  
  63.  
  64. // -------- получаем категорию --------------
  65.  
  66. if (!$seolink){
  67. //Корневая категория
  68. $root_cat = $model->getRootCategory();
  69. $root_cat['title'] = ($menuid > 1 ? $menutitle : '');
  70. }
  71.  
  72. if ($seolink){
  73. //Внутренняя (не корневая) категория
  74. $root_cat = $model->getCategoryByLink($seolink);
  75. $path_list = $model->getCategoryPath($root_cat['NSLeft'], $root_cat['NSRight']);
  76. }
  77.  
  78. //Если не найдена - 404
  79. if (!$root_cat){ cmsCore::error404(); }
  80.  
  81. if (!$root_cat['published']) { cmsCore::error404(); }
  82.  
  83. $_SESSION['inshop_last_url'] = $_SERVER['REQUEST_URI'];
  84. $_SESSION['inshop_last_cat_id'] = $root_cat['id'];
  85.  
  86. //Ставим заголовки страницы
  87. if ($root_cat['pagetitle']) { $inPage->setTitle($root_cat['pagetitle']) ; } else {$inPage->setTitle($root_cat['title']);}
  88.  
  89. //SET META KEYWORDS AND DESCRIPTION
  90. $inPage->setKeywords($root_cat['meta_keys']);
  91. $inPage->setDescription($root_cat['meta_desc']);
  92.  
  93. //Если у категории есть родители, выводим их в глубиномере
  94. if ($path_list){
  95. foreach($path_list as $pcat){
  96. $inPage->addPathway($pcat['title'], '/shop/'.$pcat['seolink']);
  97. }
  98. }
  99.  
  100. //получаем подкатегории
  101. $subcats = $model->getSubCats($root_cat['id']);
  102.  
  103. //получаем производителей для фильтра
  104. $vendors = $model->getCatVendors($root_cat['id']);
  105.  
  106. //получаем хар-ки категории
  107. $chars = $model->getCatChars($root_cat['id']);
  108.  
  109. // ------- очищаем фильтры других категорий -----------------
  110. if (is_array($_SESSION['shop_filters'])){
  111. foreach ($_SESSION['shop_filters'] as $f_cat_id=>$f){
  112. if ($f_cat_id != $root_cat['id']){
  113. unset($_SESSION['shop_filters'][$f_cat_id]);
  114. }
  115. }
  116. // if(!mb_strpos($_SERVER['REQUEST_URI'],'page')) {
  117. // unset($_SESSION['shop_filters'][$root_cat['id']]);
  118. // }
  119. }
  120.  
  121. // ------- получаем значения фильтров -----------------
  122.  
  123. if($inCore->inRequest('all')) {
  124. unset($_SESSION['shop_filters'][$root_cat['id']]);
  125. $inCore->redirect('/shop/'.$root_cat['seolink']);
  126. }
  127.  
  128. $filter = array();
  129. $filter_str = $_SESSION['shop_filters'][$root_cat['id']];
  130.  
  131. if ($filter_str){ $filter = $model->parseFilterString($filter_str); }
  132. if ($inCore->inRequest('filter')) {
  133. $filter = $inCore->request('filter', 'array');
  134. unset($_SESSION['shop_filters']);
  135. }
  136.  
  137. if (is_array($filter)){
  138.  
  139. foreach($filter as $key=>$val){
  140.  
  141. if ($val && $key){
  142.  
  143. //производители
  144. if ($key == 'vendors'){
  145. $model->whereVendorIn($val);
  146. continue;
  147. }
  148.  
  149. //характеристика с одним значением (select)
  150. if (!is_array($val)){
  151. $val = trim($val);
  152. switch($key){
  153. case 'pfrom': $model->wherePriceFrom($val); break;
  154. case 'pto': $model->wherePriceTo($val); break;
  155. default:
  156. if ($chars[$key]['values']){
  157. $model->whereCharIs($key, $val);
  158. } else {
  159. $model->whereCharLike($key, $val);
#6 11 октября 2018 в 16:28


Заралик
скорее всего фильтровать $root_cat
в строке 77
$inCore->processFilters($root_cat['description']);
если не получится попробуй методом научного тыка.
#7 15 октября 2018 в 09:36
Решение для Шопа
Ставим $root_cat['description'] = $inCore->processFilters($root_cat['description']); в 76 строку помог — @chameleon9, спасибо еще раз.
Ну и сам сегодня немного разбирался, нужно было вывести тоже самое но в корневой категории статей, решение — // Выполняем фильтры
$cat['description'] = cmsCore::processFilters($cat['description']); в 82 строку, после кода — // Если корневая категория
Да и чтобы заработало, необходимо заранее в нужное место добавить {ФАЙЛ=file.php}
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.