Top.Mail.Ru
? ?
Кот канарский полосатый толстый

r3code, posts by tag: hostcms - LiveJournal

Задержись в реальности!

Entries by tag: hostcms

HostCMS 6: раскрывающееся меню для групп магазина. Вывод подгрупп текущего раздела
Серьёзно о главном
Imager3code
Сделал версию xsl шаблона для Host CMS 6.
Следующий код выводит группы магазина, при этом вложенные группы отображаются только у текущей группы.

Вывод подгрупп до любого уровня вложенности — основанно на коде от html
Улучшения для стилизации
Для вложенных сприсков ul через CSS класс указывается уровень вложенностьи level-1, level-2 и т.д.
Для текущего элемента li устанавливается CSS класс active, и если есть подгруппы — добавляется класс sub.

CSS классы могут быть использованны для улучшения вида дерева, например, можно специальным знаком помечать группы с подгруппами, чтобы было понятно — этот пункт меню можно развернуть. Вы можете настроить отображение каждого уровня меню в отдельностьи, используя стили для level-1..level-n.

Код дальше...Collapse )

HostCMS 6: Скрыть неиндексируемые элементы из Google Sitemap
Серьёзно о главном
Imager3code
С обновлением системы проблемы не ушли, потому привожу код для HostCMS 6.
Следует учитывать, что отмена индексации элемента не отменяет индексацию вложенных элементов!
Код динамической страницы...Collapse )

HostCMS 5: Скрыть неиндексируемые элементы из Google Sitemap
Серьёзно о главном
Imager3code
В HostCMS 5 есть динамическая страница Google Sitemap для создания sitemap.xml
Однако по умолчанию скрипт выводит все страницы и разделы, даже если вы отключили индексацию.
Логично ожидать, что при отключенной индексайии страниц не должно быть в Google Sitemap.

Привожу измененный скрипт, который не выводит в Sitemap страницы и элементы с отключенной индексацией.

Read more...Collapse )

HostCMS 5: Картинка в тексте с lightbox
Codded
Imager3code
Мы хотим чтобы в тексте у нас была картинка, которая открывается в lightbox по клику.
Такая функция не встроенна в систему по умолчанию.
Доработаетм под себя макет и шаблон системы, а также настройки TinyMCE.

1. Изменим макет страницы и шаблон.
Картинок может быть много потому вариант с id="#gallery" не подойдет.
В xsl шаблоне заменим
id="gallery"
на
class="lightbox"

В макете заменим строку скрипта
$('#gallery a:has(img)').lightBox();
на
$('.lightbox').lightBox();


2. Добавим настройку для TinyMCE.
Чтобы задать новый параметр tiny_mce добавим в настройки строку 2:
theme_advanced_resizing : true,
theme_advanced_styles : 'Ссылка на картинку=lightbox',
theme_advanced_toolbar_align : 'left'

Как использовать?
  1. Вставляем картинку миниатюру
  2. Выделяем ее и вставляем ссылку на большое изображение, указываем подпись к ссылке.
  3. Выбираем Class "Ссылка на картинку"
В итоге получиться Html-код вида:
<a href="/example.png" class="lightbox" title="Image Link Title"><img src="example_small.png" alt="Img title" /></a>

На странице вы увидите миниатюру, при клике на которую откроется увеличенная картинка c подписью Image Link Title.
Если картинок несколько, то возможно будет пролистывать их в lightbox.

HostCMS 5: Фотографии товаров в письме покупателю и администратору магазина
Серьёзно о главном
Imager3code
Для отображения картинки товара в списке товаров заказа достаточно добавить следующий код.
<td width="128">
<xsl:if test="item/small_image!=''">
<img src="http://{/document_list/order_list/shop/site_alias_name}{item/small_image}" />
</xsl:if>
</td>

Картинки будут браться напрямую с сайта, потому объем письми увеличится незначительно.

HostCMS 5: Ограничение платежной системы по региону
Серьёзно о главном
Imager3code
Например, Вы хотите получать оплату оплату наличными только в регионе "Москва и Московская область", а в остальных его не применять.

В системе нет встроенной возможности ограничить вывод платежных систем по адресу доставки, потому что платежные системы нельзя привязать к способу доставки из панели управления.

Однако, задача есть.

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

Read more...Collapse )

Скрыть аттрибуты товара для HostCms
Кот канарский полосатый толстый
Imager3code
Для товаров часто возникает необходимость создания служебных свойств, которые не нужно показывать покупателю в магазине. Эти свойства, такие как: Новинка, Горячее предложение, - используются для фильтрации и изменения отображения товаров.
По умолчанию система выводит все свойства товаров в блоке Аттрибуты товара.
У аттрибутов нет специальной настройки для управления отображением, потому воспользуемся полем Префикс.
Чтобы скрыть аттрибуты товара назначим скрывемому свойству префикс hidden.

Изменим XSL для страницы товара на такой:

<xsl:if test="count(property) > count(property[prefics='hidden'])">
<h2>Атрибуты товара</h2>
<!-- Свойства в корневой группе -->
<xsl:if test="count(property[@dir_id = 0 and prefics != 'hidden'])">
<table border="0">
<xsl:apply-templates select="property[@dir_id = 0 and prefics != 'hidden']" />
</table>
</xsl:if>

<!-- Выбираем список групп свойств -->
<xsl:apply-templates select="/shop/properties_items_dir" />
</xsl:if>

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

Вывод товаров только с изображениями
Серьёзно о главном
Imager3code
Добавить в код Типовой динамической страницы "Интернет-магазин".

/* Ограничиваем по наличию фото */
if ( isset($_GET['with_image']) )
{
$element['type'] = 0; // 0 - основное св-во, 1 - дополнительное
$element['name'] = 'shop_items_catalog_small_image';
$element['prefix'] = 'AND'; // префикс
$element['if'] = '!=""'; // Условие
$element['value'] = '';
$element['sufix'] = '';
$param['select'][] = $element;

$external_propertys['with_image'] = to_int($_GET['with_image']);

/* Применять фильтр */
$external_propertys['apply_filter'] = true;
}


В код XSL шаблона Катлога добавить

<label for="with-image" class="mar1-l">Только с фото:</label> 
<input id="with-image" name="with_image" type="checkbox">
<xsl:if test="/shop/with_image != ''">
<xsl:attribute name="checked">
<xsl:value-of select="/shop/with_image"/>
</xsl:attribute>
</xsl:if>
</input> 

HostCMS.Заготовки. Хлебные крошки без ссылки на текущем элементе
Codded
Imager3code
<!-- Шаблон выводит рекурсивно ссылки на группы инф. элемента -->
  <xsl:template match="group" mode="goup_path">
    <xsl:param name="parent_id" select="@parent"/>
    
    <!-- Получаем ID родительской группы и записываем в переменную $parent_group_id -->
    <xsl:param name="parent_group_id" select="/shop/@current_group_id"/>
    
    <xsl:apply-templates select="//group[@id=$parent_id]" mode="goup_path"/>
    
    <xsl:if test="@parent=0">
      <a href="{/shop/path}">
        <xsl:value-of select="/shop/name"/>
      </a>
    </xsl:if>
    
    <span class="divider">&#x2192;</span>
    <xsl:choose>
      <xsl:when test="@id = $parent_group_id">
        <span><xsl:value-of disable-output-escaping="yes" select="name"/></span>
      </xsl:when>
      <xsl:otherwise><a href="{/shop/path}{fullpath}" title="{name}">
          <xsl:value-of disable-output-escaping="yes" select="name"/>
      </a></xsl:otherwise>
    </xsl:choose>
  </xsl:template>

HostCms. Фильтр количество товаров на страницу 10, 20, 30, Все
Кот канарский полосатый толстый
Imager3code
Редактируем типовую динамическую php-страницу "Интернет-магазин"
После блока
/* Число элементов на странице */
$on_page = to_int($_GET['on_page'])


Добавляем код
// Вывод всех товаров на странице
                if ($on_page == -1) {
                  $show_all_pages = 9999;
                  $param['items_on_page'] = $show_all_pages;
                  $external_propertys['on_page'] = -1;
                  $external_propertys['apply_filter'] = true;
                }


Изменяем XSL шаблон "МагазинКаталогТоваров" для вывода дополнительного пункта "Все".
Новый шаблон выбирает установленный ранее выбор.
Найдем шаблон "for_on_page" и заменяем этим
<!-- Цикл с шагом 10 для select'a количества элементов на страницу -->
	<xsl:template name="for_on_page">
		<xsl:param name="i" select="0" />
		<xsl:param name="n" />
 
		<option value="{$i}">
 
			<xsl:if test="($i = /shop/on_page) or ($i = /shop/items_on_page)">
				<xsl:attribute name="selected">selected
				</xsl:attribute>
			</xsl:if>
			<xsl:value-of select="$i" />
		</option>
 
		<xsl:if test="$n &gt; $i">
			<!-- Рекурсивный вызов шаблона -->
			<xsl:call-template name="for_on_page">
				<xsl:with-param name="i" select="$i + 10" />
				<xsl:with-param name="n" select="$n" />
			</xsl:call-template>
		</xsl:if>
		<xsl:if test="$n = $i">
			<option value="-1">
				<xsl:if test="/shop/on_page = -1">
					<xsl:attribute name="selected">selected
					</xsl:attribute>
				</xsl:if>
			Все</option>
		</xsl:if>
	</xsl:template>

Image