Перейти к содержимому


Еще один модуль "Производители" :)


  • Вы не можете ответить в тему
Сообщений в теме: 11

#1 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 10 April 2014 - 12:37 PM

Модуль блок "Производители" из категорий позволяет, по сути, задавать категориям несколько разных статусов (типов).
Обычный - категория показывается так же и там же, где и всегда.
Производитель - категория НЕ ПОКАЗЫВАЕТСЯ нигде кроме бокового блока "Производители".
Еще что-нибудь - Категория НЕ ПОКАЗЫВАЕТСЯ нигде кроме блока "Еще что-нибудь", который Вы напишете сами :).

Главная радость с такого модуля "Производители" относительно других в том, что по ссылке на производителя поисковик попадает
не на страницу результата поиска по характеристике "Производитель" с одними и теми же метатегами и кейвордсами у разных производителей,
а в полноценную категорию со своим описанием и метатегами.

Заполняются эти категории путем прописывания товару соответствующей дополнительной категории.

Comment: В таблицу категорий (xxxx_categories, CATEGORIES_TABLE) добавлено поле shadow TINYINT(1) DEFAULT 0.
shadow = 0 - Обычная категория
shadow = 1 - Производитель
shadow = 2 - Еще что-нибудь (на будущее)
Соответственно, если где-то в стороннем блоке производится SQL-запрос для получения списка категорий,
то для непопадания "лишних" категорий в результат надо в запрос добавить условие shadow=0.

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

Спонсор: Lenivec

Прикрепленный файл  1.JPG   10.38К   95 Количество загрузок:

Установка:
----------

1. копируем файлы (они не совпадают по имени со штатными, можно смело копировать).

providers_menu.tpl.html -> core/tpl/user/[шаблон]/blocks
addon.php -> core/includes/admin

Файл addon.php нужен ОДИН РАЗ для создания в таблицах новых полей.
После первого же захода в админку его можно удалить, если он не удалился сам.


2. в файле admin.php

2.1 после второго (!) вхождения строки (т.е. вставляем в поиск эту строку и первую найденную пропускаем)


", allow_products_search=".$allow_products_search." ".", show_subcategories_products=".$show_subcategories_products." ".


вставляем


# BEGIN Providers-from-category
", shadow=".(int)$_POST["shadow"].
# END Providers-from-category


2.2 после строк

echo ADMIN_SHOW_PRODUCT_IN_SUBCATEGORY;
?></label></td></tr>


вставляем


<!-- BEGIN Providers-from-category -->
<tr>
<td align="left">
<select name='shadow'>
<option value="0"<?php if ($row['shadow'] == 0) echo ' selected'?>>Обычная</option>
<option value="1"<?php if ($row['shadow'] == 1) echo ' selected'?>>Производитель</option>
<option value="2"<?php if ($row['shadow'] == 2) echo ' selected'?>>Еще что-нибудь</option>
</select>
</td>
<td align="left">&nbsp;Тип категории</td>
</tr>
<!-- END Providers-from-category -->


2.3 перед вторым (!) вхождением строки (т.е. вставляем в поиск эту строку и первую найденную пропускаем)


$updatedValues = ScanPostVariableWithId(array("option_value", "option_radio_type"));


вставляем


# BEGIN Providers-from-category
db_query("UPDATE ".PRODUCTS_TABLE." SET shadow=".(isset($_POST['shadow']) ? 1 : 0)." WHERE productID=".(int)$productID);
# END Providers-from-category



3. в файле category_functions.php

3.1 в функции catGetCategoryCompactCList

вместо строки


" where parent=1 ".


вставляем


# BEGIN Providers-from-category
#" where parent=1 ".
" where parent=1 AND shadow=0".
# END Providers-from-category


3.2 в функции _recursiveGetCategoryCList

после строки


$row = $fc[(int)$rcat[$i]];


вставляем


# BEGIN Providers-from-category
if (!isset($row['shadow']) || $row['shadow'] == 0)
{
# END Providers-from-category


перед строкой


return $result;


вставляем закрывающую фигурную скобку


# BEGIN Providers-from-category
}
# END Providers-from-category


3.3 в функции catGetSubCategories

вместо строки


$q = db_query("select categoryID from ".CATEGORIES_TABLE." where parent=".(int)$categoryID);


вставляем


# BEGIN Providers-from-category
#$q = db_query("select categoryID from ".CATEGORIES_TABLE." where parent=".(int)$categoryID);
$q = db_query("select categoryID from ".CATEGORIES_TABLE." where parent=".(int)$categoryID." AND shadow=0");
# END Providers-from-category


3.4 в функции catGetCategoryById

после строки


" products_count_admin, sort_order, viewed_times, allow_products_comparison, allow_products_search, ".


вставляем


# BEGIN Providers-from-category
"shadow,".
# END Providers-from-category



4. в файле index.php

строку


$q = db_query("select categoryID, name, products_count, products_count_admin, parent, picture, subcount FROM ".CATEGORIES_TABLE." ORDER BY sort_order, name");


заменяем на


# BEGIN Providers-from-category
#$q = db_query("select categoryID, name, products_count, products_count_admin, parent, picture, subcount FROM ".CATEGORIES_TABLE." ORDER BY sort_order, name");
$q = db_query("select categoryID, name, products_count, products_count_admin, parent, picture, subcount, shadow FROM ".CATEGORIES_TABLE." ORDER BY sort_order, name");
# END Providers-from-category



5. в файле pricelist.php в функции pricessCategories

строку


" where parent=".(int)$parent." order by sort_order, name");


меняем на


# BEGIN Providers-from-category
#" where parent=".(int)$parent." order by sort_order, name");
" where parent=".(int)$parent." AND shadow=0 order by sort_order, name");
# END Providers-from-category



6. подключаем в "Управление блоками" файл providers_menu.tpl.html как боковой блок. В нем будут показаны категории, у которых параметр "Тип категории" выставлен в "Производители".

Прикрепленные файлы


  • 2
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#2 valeradr

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 49 сообщений
Репутация: 0
Начинающий

Отправлено 15 October 2014 - 07:43 PM

Добрый день, уточните пожалуйста какую строку меняем первую или вторую?

" where parent=".(int)$parent." order by sort_order, name");

Она присутствует в двух местах
  • 0

#3 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 15 October 2014 - 07:47 PM

Она присутствует в двух местах

У меня в штатном дистрибутиве 3.1.2 такая строка только одна.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#4 valeradr

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 49 сообщений
Репутация: 0
Начинающий

Отправлено 15 October 2014 - 07:51 PM

Сорри, разобрался...
  • 0

#5 etdnepr

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 101 сообщений
Репутация: 0
Начинающий

Отправлено 30 April 2015 - 09:33 AM

Здравствуйте! Скажите пожалуйста, это тот модуль, что установлен на Вашем тестовом сайте или там другой? Спасибо
  • 0

#6 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 30 April 2015 - 10:46 AM

Здравствуйте! Скажите пожалуйста, это тот модуль, что установлен на Вашем тестовом сайте или там другой?

Там другой.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#7 etdnepr

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 101 сообщений
Репутация: 0
Начинающий

Отправлено 30 April 2015 - 06:22 PM

а тот есть на форуме?))
  • 0

#8 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 30 April 2015 - 06:38 PM

а тот есть на форуме?))

Скорее всего - да. И что точно есть на форуме, так это кнопка "Поиск".
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#9 etdnepr

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 101 сообщений
Репутация: 0
Начинающий

Отправлено 30 April 2015 - 11:39 PM

Спасибо, но поиском то и искал сначала. Не разобрался вот и решил написать)))
  • 0

#10 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 01 May 2015 - 12:52 PM

Спасибо, но поиском то и искал сначала

У нас, видимо, разные поиски. В моем при наборе слова "производители" четвертой или пятой строкой тот поиск.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#11 ndruklk

    Новичок

  • Пользователи
  • Pip
  • 2 сообщений
Репутация: 0
Начинающий

Отправлено 28 October 2015 - 09:27 PM

Как я могу скачать файлы модуля производителей?
  • 0

#12 hedhedhed

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 107 сообщений
Репутация: 4
Начинающий

Отправлено 28 October 2015 - 09:46 PM

Так же, как и все остальные - читайте правила.
  • 0