14
Ноя

Пишем скрипт Каталог товаров на Php и MySql, Часть #5

В прошлых статьях мы написали Административную часть нашего скрипта "Каталог товаров". Научили её работать с категориями неограниченной вложенности и производить различные действия с наименованиями товаров.
Пришло время заняться публичной частью, т.е. именно той частью, которую будут видеть посетители нашего сайта.
В этой статье мы научимся выводить список наших категорий в качестве меню, и сделаем вывод нескольких случайных наименований товара в качестве демонстрационных.
В уже созданный нами файл .htaccess добавляем правила:
### публичная часть ### 
RewriteRule ^cat/?$ scat.php 
RewriteRule ^cat/([0-9]+)/?$ scat.php?id_cat=$1 
RewriteRule ^cat/([0-9]+)/([0-9]+)/?$ scat.php?id_cat=$1&id_item=$2 
RewriteRule ^cat/([0-9]+)/page/([0-9]+)/?$ scat.php?id_cat=$1&page=$2


Создадим файл scat.php и поместим его в корневую папку нашего проекта.
Он будет основным файлом, в который мы будем подключать необходимые модули, по мере надобности.
Содержимое файла scat.php:
<?
// подключаем файлы, необходимые
// для функционирования нашей программы
require_once("mysql.php");
require_once("func.php");
require_once("config.php");

// если есть целочисленное значение товарной переменной
// осуществляем подключение модуля,
// ответственного за вывод отдельного товара
if (intval(@$_GET['id_item']) > 0)
require_once ("item.php");

// иначе если нет товарной переменной
// но есть переменная, номер категории
// значит подключаем модуль вывода
// списка товаров выбранной категории
elseif (intval(@$_GET['id_cat']) > 0 && empty($_GET['id_item']))
require_once ("list_items.php");

// иначе если нет никаких переменных
// выводим нашу псевдоглавную страницу
elseif (!@$_GET['id_cat'] && !@$_GET['id_item'])
{
    include ("head.inc.php"); // подключаем шапку сайта
    echo "<table width=100% align=center
     border=0 cellpadding=3 cellspacing=3><tr valign=top>
    <td width=25%><strong><center>Категории товаров</center></strong><br>
      <table width=100% align=center border=0
       cellpadding=3 cellspacing=3><tr valign=top><td>";

    // подключаем древовидное меню
    include ("menu.inc.php");

     echo "</td></tr></table></td>
    <td width=75%><strong><center>Рекомендуемые товары</center></strong><br>
      <table width=100% align=center 
      border=0 cellpadding=7 cellspacing=10>
        <tr valign=top>";
        $td = 0;
    // выводим случайные товары
    $query = mysql_query ("SELECT * FROM item 
    WHERE print_to_index = 'yes' 
    ORDER by RAND() 
    LIMIT $COUNT_SHOW_ITEMS");
    if ($query)
    {
        while ($list_cat = mysql_fetch_assoc ($query))
        {
            echo "<td bgcolor=#EFEFEF>";
            echo "<strong>
            <a href=\"http://".$_SERVER['HTTP_HOST']."/cat/".
            $list_cat['id_category']."/".$list_cat['id']."/\">
            ".$list_cat['title']."</a></strong><br />";    
            echo substr(nl2br($list_cat['description']), 0, 100)."<br />";
            if ($list_cat['money_type'] == "D") $money_type = "$";
            elseif ($list_cat['money_type'] == "E") $money_type = "&euro;";
            elseif ($list_cat['money_type'] == "G") $money_type = "гр.";
            else $money_type = "руб.";
            echo "<strong>Цена: ".$list_cat['price']." ".$money_type."</strong><br />";    
            echo "</td>";
            $td++;
            if ($td % $COUNT_SHOW_IN_LINE == 0) echo "</tr><tr valign=top>";
        }
    }
    echo "</tr>";
    echo "</table></td></tr></table>";
    include ("foot.inc.php"); // подключаем подвал сайта
}

// иначе если в массиве $_GET идет какая-либо бяка,
// условия для которой не описаны,
// то мы просто ругнёмся
else echo "<br /><br /><br /><br /><br /><br />
<strong><center>Кул_Хацкер?</center></strong>";
?> 


Здесь у нас появились ещё две переменные, которые мы можем отнести в файл config.php,
и регулировать их значения, для достижения требуемых целей.
Занесите код в файл config.php:
// Количество случайных товаров, выводимых на главной странице
$COUNT_SHOW_ITEMS = 6;
// Количество товаров, выводимых в одной линии
$COUNT_SHOW_IN_LINE = 2; 
// Количество товаров на странице при выводе категории
$COUNT_SHOW_ITEMS_IN_CAT = 10; 


А теперь напишем простенькие "шапку" и "подвал" для сайта.
Код "шапки" сайта. Файл head.inc.php.

<html><head>
<title>Бесплатный PHP скрипт "Каталог товаров"
 JOKER items_cat 1.0 FREE</title>
</head><body>
<table width="100%" align="center">
  <tr><td align="center">
    <strong style="font-size:18px; color:#666666">
     Бесплатный PHP скрипт "Каталог товаров" 
      JOKER items_cat 1.0 FREE</strong> </td>
  </tr></table>
<hr color="F5F5F5" width="100%" />


И код "подвала" сайта. Файл foot.inc.php:
<table width="100%">
  <TR>
    <TD valign="top"><div align="center">
        <hr color="F5F5F5" width="100%" />
        &copy;
        <!-- выведем название нашего сайта и сегодняшний год -->
        <?=$_SERVER['HTTP_HOST']." ".date("Y");?>
      </div></TD>
  </TR>
</table>


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

Кстати код, который получится в итоге этого цикла статей лёг в основу скрипта JOKER_vitrina 1.0 FREE, описание которого и ссылки для скачивания Вы найдете на странице http://allpublication.ru/blog/p15-novyy_besplatnyy_PHP_skript_katalog_tovarov_JOKER_vitrina_1_0_FREE.html
 

Комментарии

Rss-лента комментариев к этому посту
 
Для комфортного доступа к этому сайту, в вашем браузере должен быть включен JavaScript