Новости

07.04.2011

Теперь при добавлении товара в скрипте интернет магазина не будет открыватся страница с корзиной.

подробнее...

04.03.2011

Глобальное исправление косяков, перекачайте скрипты.
Положил предварительную версию Quick.Cart

подробнее...

В этом боксе №1 можно что-то написать
A A A

Вставка №1

Иногда на странице надо вывести дополнительную информацию или сервис,

форму заказа, опрос, да мало ли что может понадобиться.

 

Вот это мы и попытаемся вывести к примеру фразу

 

Код на странице

Включатся и выключатся, она будет чекбоксом в панели администратора.

 

Соответственно нам надо будет сформировать чекбокс, записать его состояние и в зависимости от состояния выводить или не выводить информацию на странице.

 

1.  Надо придумать название нашему чекбоксу, пусть будет -  Выводить код

 

Для этого в языковом файле lang/ru.php после надписи // plugins создадим переменную

 

$lang['Codeto_page'] = " Выводить код ";

 

2.Если проанализировать код CMS то можно выяснить что функция построения чекбокса и передачи из него данных throwYesNoBox есть в файле libraries / Trash.php

 

 

Соответственно в файле actions_admin/p.php создадим переменную $sCodeToPage которая используя функцию throwYesNoBox будет выводить наш чекбокс, отображать и передавать его состояние (0 если не активен или 1) в другую переменную iCodetoPage для сохранения.

 

$sCodeToPage         = throwYesNoBox( 'iCodetoPage', $aData['iCodetoPage'] );

 

И поместим перед строкой

 

$sPhotoTypesSelect    = throwSelectFromArray( $aPhotoTypes, 1 );

 

 

3. За отображение форм настроек страницы в админке отвечает файл templates/ admin/ pages.tpl (таблица <table class="tab" id="tabOptions"> ), вот туда мы и вставим функцию $sCodeToPage с названием   $lang[Codeto_page]

 

<tr>

<td>$lang[Codeto_page]</td>

<td>

$sCodeToPage

</td>

</tr>

 

 

Вставляем перед <!-- tab options -->

 

4. Чекбокс наш уже отображается но данные из него никуда не передаются, что делать?

В файле db/ru_pages_ext.def.php  описан массив переменных которые будут хранится в файле  db/ru_pages_ext.php , вот туда мы и добавим наши данные о состоянии чекбокса – переменную iCodetoPage

 

$aFieldsNames   = Array( 'iPage' => 0, 'sDescriptionFull' => 1, 'sMetaDescription' => 2, 'sMetaKeywords' => 3, 'sTemplate' => 4, 'sTheme' => 5, 'sUrl' => 6, 'sBanner' => 7, ' iCodetoPage ' => 8, );

function ru_pages_ext( $aExp ){

return Array( 'iPage' => $aExp[0], 'sDescriptionFull' => $aExp[1], 'sMetaDescription' => $aExp[2], 'sMetaKeywords' => $aExp[3], 'sTemplate' => $aExp[4], 'sTheme' => $aExp[5], 'sUrl' => $aExp[6], 'sBanner' => $aExp[7], ' iCodetoPage ' => $aExp[8] );

}

 

5. Теперь нам предстоит сделать вывод нашей фразы в зависимости от записанного состояния  чекбокса.

 

Для этого в файле actions_client/p.php сделаем проверку данных записанных в переменную iCodetoPage и если оно равно 1 то выводим переменную $sCodetoPage которая будет отображать нашу фразу из файла темплейта templates/pages_default.tpl

 

 

if( !empty( $aData[' iCodetoPage '] ) && $aData[' iCodetoPage '] == 1 ){

$sCodetoPage  = $oTpl->tbHtml( $aData['sTemplate'], 'CODETO_PAGE' );

}

 

 

6. Теперь в файл templates/pages_default.tpl , который отвечает за отображение страницы добавим нашу переменную $sCodetoPage  после переменной $sSubpagesList .

 

И после <!-- END BANNER --> добавим долгожданный кусок темплейта

 

<!-- BEGIN CODETO_PAGE -->

<div id="codetopage"> Код на странице</div>

<!-- END CODETO_PAGE -->

 

Вот и всё можно проверить нашу работу.

Соответственно исходя из общего принципа  так можно добавить почтовую форму, комментарии, опросы и многое другое.

  • icokodeto.txt, Страница с кодом в текстовом формате