Категории
[FAQ] Часто задаваемые вопросы и ответы
Проблемы и решения
Ошибки и исправления
Общие вопросы
Расширения
Установка и обновление
Модули
Шаблоны
Локализация интерфейса
Коммерческие предложения
Учимся бизнесу
Бизнес книги
Поисковая оптимизация (SEO)
Магазины на ShopOS
Хостинг для ShopOS
Предложения и пожелания
Курилка
|
Re: Как вывести Добро пожаловать ({$text}) в бокс
Собствено весь вопрос
Собственно весь ответ.
этот ответ собственно не весь и весьма плоский
Соответственно вопросу. А если что в ответе не нравится, конкретизируйте вопрос.
1. В разных боксах все по-своему. Видимо, Вам нужно работать с конкретным боксом. Вы не говорите, с каким именно. Ожидаете инструкции по всем боксам? 2. Для того, чтоб дать точный ответ, надо знать, что означает {$text}. Вы думаете, каждый догадается сам? Тут масса вариантов - может, Вы хотите вывести стандартную уже определенную переменную. А может, а она у Вас своя своеобразная, и Вы хотите знать, как ее создать для шаблона.
Для разных ситуаций существенно разные ответы будут!
Переменная {$text} из шаблона которая находится в файле main_content.html надо, переменную вывести в бокс, как добавлять свои боксы я умею. Еслиб знать какие файлы отвечают за переменную {$text}. В старых версиях дистриб. метка {$text} работала из index.html, теперь она в файле main_content.html мне бы вернуть как было раньше ;)
файл modules/default.php
строка $default->assign('text', $shop_content_data['content_text']);
это метка welcome текста.
Если хотите вывести её в свой бокс, то нужно будет ещё в php файл бокса добавить запрос к БД для получения $shop_content_data['content_text']. Думаю вот этого хватит:
$shop_content_query = osDBquery("SELECT content_title, content_heading, content_text, content_file FROM ".TABLE_CONTENT_MANAGER." WHERE content_group='5' ".$group_check." AND languages_id='".$_SESSION['languages_id']."'"); $shop_content_data = os_db_fetch_array($shop_content_query,true);
if ($shop_content_data['content_file'] != '') { ob_start(); if (strpos($shop_content_data['content_file'], '.txt')) echo '<pre>'; include (_CATALOG.'media/content/'.$shop_content_data['content_file']); if (strpos($shop_content_data['content_file'], '.txt')) echo '</pre>'; $shop_content_data['content_text'] = ob_get_contents(); ob_end_clean(); }
$default->assign('text', $shop_content_data['content_text']);
з.ы. т.к. в боксах обычно делается так $box = new osTemplate; То не забудьте поправить строку вот так:
$box->assign('text', $shop_content_data['content_text']);
удачи!
Спасибо ;) есть вопрос! если делать через Бокс будет на всех страницах отображаться ?
я сделал только через файл modules/default.php
$default->assign('greeting', os_customer_greeting());
$default->assign('text', $shop_content_data['content_text']);
$default->assign('language', $_SESSION['language']);
// set cache ID if (!CacheCheck()) { $default->caching = 0; $main_content = $default->fetch(CURRENT_TEMPLATE.'/module/main_content.html');
$main_hi = $default->fetch(CURRENT_TEMPLATE.'/module/main_hi.html'); } else { $default->caching = 1; $default->cache_lifetime = CACHE_LIFETIME; $default->cache_modified_check = CACHE_CHECK; $cache_id = $_SESSION['language'].$_SESSION['currency'].$_SESSION['customer_id']; $main_content = $default->fetch(CURRENT_TEMPLATE.'/module/main_content.html', $cache_id);
$main_hi = $default->fetch(CURRENT_TEMPLATE.'/module/main_hi.html', $cache_id); }
$osTemplate->assign('main_content', $main_content);
$osTemplate->assign('main_hi', $main_hi); затем добавил в index.html {$main_hi} текст только на главной ;D
затем добавил в index.html {$main_hi} текст только на главной
Переменная $shop_content_data определена далеко не для всех случаев, потому в строке $default->assign('text', $shop_content_data['content_text']); присваивается пустое значение для {$text}, отчего имеем такой результат. Хотите на всех страницах - надо формировать {$text} самостоятельно для всех страниц.
есть вопрос! если делать через Бокс будет на всех страницах отображаться ?
Будет, если в боксе будет правильно формироваться {$text}.
Источник
|