Категории

[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}.


Источник



Copyright ShopOS