Разные шаблоны страниц для одной информационной системы?

#
Разные шаблоны страниц для одной информационной системы?
Есть желание сделать такую штуку: в разделе "Наши клиенты" есть три группы. Хочется, что бы при входе в этот раздел было видно три столбца - в первом элементы первой группы, во втором стобце - второй группы, в третьем соответственно третьей. В принципе проблем нет, создал шаблон, привязал его к элементу "Наши клиенты" в структуре сайта, все выводится как надо, НО!!! при щелчке на любой из элементов надо, что бы столбцов не было, и выводился только этот элемент на полную страницу, а он (естественно) при таком подходе выводится три раза в столбцах...

Всю голову уже сломал, как бы извернуться.. need help!!!
Модератор
#
Re: Разные шаблоны страниц для одной информационной системы?
Для решения данной проблемы отправте в службу поддержки данные доступа в Центр администрирования, а также адрес странички Вашего сайта, на которой отображаются клиенты.
#
Re: Разные шаблоны страниц для одной информационной системы?
К сожалению техподдержка для бесплатной версии ограничена Так что боюсь, ответа не дождаться мне с такими вопросами. Придется на форуме умного совета спрашивать..

Поставлю вопрос по другому: как можно в шаблоне описать условие

if (находимся в корне инф.системы=true) тогда
<td>выводим первую группу из инф.системы</td>
<td>выводим вторую группу из инф.системы</td>
<td>выводим третью группу из инф.системы</td>
иначе
<td> $kernel->show_current_page();</td>
Модератор
#
Re: Разные шаблоны страниц для одной информационной системы?
Если так, то разместите здесь код динамической или типовой динамической страницы (в зависимости от того какой механизм используется для отображения узла структуры "Наши клиенты" ) , а также коды XSL-шаблонов, используемых для отображения списка клиентов и отображения информации о конкретном клиенте.
#
Re: Разные шаблоны страниц для одной информационной системы?
доплнен предыдущий пост

код XSL-шаблона - стандартный

код шаблона страницы
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td width=180 valign=top>
<?
$Structure = new Structure();
/* Выводим меню на основе структуры */
$Structure->ShowStructure(1,'ЦентральноеМеню');
?>
<br>
<br>
<table BORDER="0" ALIGN="left" width="180" bgcolor="F8F8F8">
   <tbody ALIGN="center">
      <tr>
         <td  COLSPAN="2">
         <h3 ALIGN="left">&nbsp;Контакты:&nbsp;<br />
         </h3></td>
      </tr>
      <tr>
         <td><img SRC="/images/post.gif" /></td>
         <td ALIGN="left"><h6> 690001, г. Владивосток, ул. Муравьева-Амурского, 1&nbsp;Б</h6></td>
      </tr>
      <tr>
         <td><img SRC="/images/phone.gif" /></td>
         <td ALIGN="left">
         <h6> (4232) 21-51-91</h6></td>
      </tr>
      <tr>
         <td><img SRC="/images/mail.gif" /></td>
         <td ALIGN="left">
         <h6><a href="mailto:office@bestdv.ru">office@bestdv.ru</a></h6></td>
      </tr>
   </tbody>
</table>
</td>
<td width="5">
</td>

<!-- Конец вывода верхнего блока - Header -->

<td width="200" valign="top">
<!-- Вывод по группам" -->
<?
/* Вывод информационных систем */
$InformationSystem = new InformationSystem();

$external_propertys=array();
$external_propertys['ОтображатьСсылкуНаАрхив']=1;
$external_propertys['ОтображатьСсылкиНаСледующиеСтраницы']=0;

/* Количество выводимых элементов */
$item_count = 100;

$InformationSystemId = 11;

$InformationGroupId = 705;  // false - из всех групп, 0 - из корневой группы

$InformationSystem->ShowInformationSystem($InformationSystemId, $InformationGroupId,'СписокЭлементовИнфосистемы',$item_count,0,$external_propertys);  
?>

<td width="200" valign="top">
<!-- вывод по группам" -->
<?
/* Вывод информационных систем */
$InformationSystem = new InformationSystem();

$external_propertys=array();
$external_propertys['ОтображатьСсылкуНаАрхив']=1;
$external_propertys['ОтображатьСсылкиНаСледующиеСтраницы']=0;

/* Количество выводимых элементов */
$item_count = 100;

$InformationSystemId = 11;

$InformationGroupId = 706;  // false - из всех групп, 0 - из корневой группы

$InformationSystem->ShowInformationSystem($InformationSystemId, $InformationGroupId,'СписокЭлементовИнфосистемы',$item_count,0,$external_propertys);  
?>


</td>
<td width=5>
</td>
<td width="200" valign="top">
<!-- Вывод по группам -->
<?
/* Вывод информационных систем */
$InformationSystem = new InformationSystem();

$external_propertys=array();
$external_propertys['ОтображатьСсылкуНаАрхив']=1;
$external_propertys['ОтображатьСсылкиНаСледующиеСтраницы']=0;

/* Количество выводимых элементов */
$item_count = 100;

$InformationSystemId = 11;

$InformationGroupId = 707;  // false - из всех групп, 0 - из корневой группы

$InformationSystem->ShowInformationSystem($InformationSystemId, $InformationGroupId,'СписокЭлементовИнфосистемы',$item_count,0,$external_propertys);  
?>


</td>
<td width=5>
</td>


</tr>
</table>
Модератор
#
Re: Разные шаблоны страниц для одной информационной системы?
Отвечаю на Ваш отредактированный пост. У класса инфосистем есть замечательный метод GetInformationFromPath($InformationSystem_id, $param1=''. Данный метод позволяет определить идентификатор инфомационной группы, в которой сейчас находимся и идентификатор информационного элемента, если таковой в данный момент отображается. Подробнее о данном методе вы можете ознакомиться в описаннии HostCMS Infinity API для v. 4.0, расположенном по адресу http://www.hostcms.ru/download/4/documentation.chm

Для того чтобы описать условие, о котором Вы спрашивали можно использовать следующую конструкцию:


$InformationSystem = new InformationSystem();
// строка <'Идентификатор инфосистемы'> должна полностью заменяться идентификатором
// информационной системы, т.е. угловые скобки НЕ оставлять
$result_path = $InformationSystem->GetInformationFromPath(<'Идентификатор инфосистемы'>)

if (to_int($result_path['group']) == 0)

<td>выводим первую группу из инф.системы</td>
<td>выводим вторую группу из инф.системы</td>
<td>выводим третью группу из инф.системы</td>
иначе
<td> $kernel->show_current_page();</td>


Далее, по поводу предоставленного кода шаблона страницы. Для отображения 3 подгрупп инфосистемы в разных столбцах Вам совсем НЕ нужно 3 раза вызывать метод отображения информационной системы ShowInformationSystem, это достаточно сделать один раз и в качестве идентификатора информационной группы указать false, тогда в XML Вам будут достпны ВСЕ группы данной информационной системы. А для отображения групп в 3 столбцах Вам необходимо немного переделать XSL-шаблон по тображению списка информационных элементов, который сейчас используете для отображения групп.
#
Re: Разные шаблоны страниц для одной информационной системы?
1. if почему-то не работает в шаблоне страницы.. Видимо я где-то туплю... на вот такой код:


<?
if (1==1)
{
echo "УРЯЯЯ";
}
?>


выдает "syntax error. unexpected T_IF"  я понимаю, что синтаксическая ошибка, но почему?

2. C xsl  я вообще плохо знаком.. Если подскажете, где посмотреть пример реализации того, что я хочу - буду благодарен.
Модератор
#
Re: Разные шаблоны страниц для одной информационной системы?
ArtZ,
Описание основ XSL дано в документации.
#
Re: Разные шаблоны страниц для одной информационной системы?
Господа!
Объясните мне, глупому, как в этом коде:

<?
/* Вывод информационных систем */
$InformationSystem = new InformationSystem();

$external_propertys=array();
$external_propertys['ОтображатьСсылкуНаАрхив']=0;
$external_propertys['ОтображатьСсылкиНаСледующиеСтраницы']=1;

/* Количество выводимых элементов */
$item_count = 6;


$InformationSystemId = 24;

$InformationGroupId = 705;  // false - из всех групп, 0 - из корневой группы

$InformationSystem->ShowInformationSystem($InformationSystemId, $InformationGroupId,'ВыводТекстаОписания',$item_count,0,$external_propertys);  
?>


с помощью GetInformationFromPath вместо цеферек 24 и 705 (т.е. ID системы и группы соответственно) подставлять текущий параметр, т.е. определять страницу, где сейчас находимся и в соответствии с этим выводить определенные данные?

Буду очень признателен, если дадите готовый кусок кода. Очень нужно и очень срочно
Модератор
#
Re: Разные шаблоны страниц для одной информационной системы?
С описанием классов и методов, в частности метода GetInformationFromPath можно ознакомиться в документации по HostCMS Infinity API для v. 4.0, расположенном по адресу http://www.hostcms.ru/download/4/documentation.chm

Необходимый Вам код динамической страницы будет выглядеть так


<?
/* Вывод информационных систем */
$InformationSystem = new InformationSystem();

$external_propertys=array();
$external_propertys['ОтображатьСсылкуНаАрхив']=0;
$external_propertys['ОтображатьСсылкиНаСледующиеСтраницы']=1;

/* Количество выводимых элементов */
$item_count = 6;


$InformationSystemId = 24;

//$InformationGroupId = 705;  // false - из всех групп, 0 - из корневой группы

$result = $InformationSystem->GetInformationFromPath($InformationSystemId);

$InformationGroupId = to_int($result['group']);

$InformationSystem->ShowInformationSystem($InformationSystemId, $InformationGroupId,'ВыводТекстаОписания',$item_count,0,$external_propertys);  
?>

Авторизация