cursuri cursuri cursuri cursuri cursuri cursuri
cursuri
cursuri
cursuri
Cursuri    Tutoriale    Teste    Jocuri
 
 
cursuri Am uitat utilizatorul cursuri Am uitat parola
cursuri online Cursuri online
Cursuri online gratuite
cursuri online Tutoriale
Cum sa faci orice
cursuri online Teste online
Testeaza-ti cunostintele
cursuri online Revista
Aboneaza-te gratuit
cursuri online Jocuri
Jocuri educative
cursuri online Inregistreaza-te
Intra in comunitate
eCursuri » Cursuri online » Tehnologia informatiei » Magazin online cu PHP si MySql » Lectia 15
Pagina principala
9424 afisari
Aceasta este pagina pe care utilizatorul o va vedea pentru prima data, de obicei. Ea consta din cinci parti. Pe stanga ai rasfoirea categoriilor. Clientul poate da click aici printre categorii pentru a vizualiza apoi produsele din categoria aleasa. In partea dreapta vei pune mini cosul de cumparaturi. Daca clientul adauga un produs, el va aparea in partea dreapta, in mini cosul de cumparaturi. In partea de sus, ai header-ul, iar in partea de jos footer-ul site-ului. In header, vei pune logo-ul site-ului, iar in footer informatii despre firma.

cursuri

In partea centrala ai continutul paginii. Aici vei avea categoriile de produse si produsele. Ce vei vedea aici, depinde de actiunile vizitatorului. Cand va ajunge pentru prima data aici, va vedea lista de categorii. Daca va da click pe o categorie va vedea lista de produse din aceea categorie. Si daca va da click pe un produs, va vedea detaliile acelui produs.

Iata codul pentru pagina index.php:

<?php
require_once 'library/config.php';
require_once 'library/category-functions.php';
require_once 'library/product-functions.php';
require_once 'library/cart-functions.php';

$_SESSION['shop_return_url'] = $_SERVER['REQUEST_URI'];

$catId = (isset($_GET['c']) && $_GET['c'] != '1') ? $_GET['c'] : 0;
$pdId = (isset($_GET['p']) && $_GET['p'] != '') ? $_GET['p'] : 0;

require_once 'include/header.php';
?>
<table width="780" border="1" align="center" cellpadding="0" cellspacing="0">
<tr>
<td colspan="3">
<?php require_once 'include/top.php'; ?>
</td>
</tr>
<tr valign="top">
<td width="150" height="400" id="leftnav">
<?php
require_once 'include/leftNav.php';
?>
</td>
<td>
<?php
if ($pdId) {
require_once 'include/productDetail.php';
} else if ($catId) {
require_once 'include/productList.php';
} else {
require_once 'include/categoryList.php';
}
?>
</td>
<td width="130" align="center"><?php require_once 'include/miniCart.php'; ?></td>
</tr>
</table>
<?php
require_once 'include/footer.php';
?>
index.php

Mai intai vei incarca bibliotecile de functii. Fisierul config.php contine fel de fel de initializari, ca setarea conexiuni la baza de date, definirea constantelor si incarca la randul lui alte fisiere cerute de site.

<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);

// pornire sesiune
session_start();

// configurare conexiune baza de date
$dbHost = 'localhost';
$dbUser = 'root';
$dbPass = '';
$dbName = 'trains_shop';

// seteaza radacina site-ului
$thisFile = str_replace('', '/', __FILE__);
$docRoot = $_SERVER['DOCUMENT_ROOT'];

$webRoot = str_replace(array($docRoot, 'library/config.php'), '', $thisFile);
$srvRoot = str_replace('library/config.php', '', $thisFile);

define('WEB_ROOT', $webRoot);
define('SRV_ROOT', $srvRoot);

// acestea sunt folderele unde stocam
// imaginile categoriilor si ale produselor
define('CATEGORY_IMAGE_DIR', 'images/category/');
define('PRODUCT_IMAGE_DIR', 'images/product/');

// cateva limitari pentru imagini
// 75 pixels
define('MAX_CATEGORY_IMAGE_WIDTH', 75);
define('LIMIT_PRODUCT_WIDTH', true);

// limitare pentru imaginea mare
define('MAX_PRODUCT_IMAGE_WIDTH', 300);

// limitare pentru imaginea mica
define('THUMBNAIL_WIDTH', 75);

if (!get_magic_quotes_gpc()) {
if (isset($_POST)) {
foreach ($_POST as $key => $value) {
$_POST[$key] = trim(addslashes($value));
}
}

if (isset($_GET)) {
foreach ($_GET as $key => $value) {
$_GET[$key] = trim(addslashes($value));
}
}
}

// incarcam alte biblioteci de functii
require_once 'database.php';
require_once 'common.php';

// preia datele despre magazin
$shopConfig = getShopConfig();
?>
config.php

Urmeaza acum fisierul category-functions.php. Acest fisier contine cateva functii care sunt:

• formatCategories()
Aceasta functie este utilizata de include/leftNav.php. Scopul ei este sa genereze lista de categorii unde una dintre categoriile principale se va extinde si va afisa categoriile copii.
• getCategoryList()
Genereaza o lista a categoriilor principale.
• getChildCategories()
Genereaza o lista cu toate categoriile copii
• fetchCategories()
Genereaza o lista cu toate categoriile ? principale si copii.

Dupa incarcarea fisierelor biblioteca, setezi o variabila de sesiune $_SESSION['shop_return_url']. Valoarea acestei variabile este adresa URL a paginii pe care o vedem in acest moment. Aceasta variabila este utilizata de cosul de cumparaturi. Cand vei da click pe Continua cumparaturile, te vei intoarce la pagina de unde ai ajuns la cosul de cumparaturi.

Urmatorul pas este sa vezi daca exista variabilele $_GET['c'] ( category id ) si $_GET['p'] ( product id ). Daca nu exista, afisezi lista de categorii. Daca exista category id, afisezi produsele din aceea categorie si daca exista product id afisezi detaliile produsului respectiv.

Dupa cum poti observa, pagina principala nu face foarte mult. Scopul ei este sa adune restul componenetelor, mini cosul, lista de categorii, header-ul si footer-ul.

Sa aruncam acum o privire asupra fisierului header.php. Un lucru important care se petrece aici este setarea titlului paginii. El se schimba de la o pagina la alta in functie de ceea ce doreste clientul sa vizualizeze. Titlul paginii este foarte important pentru motoarele de cautare, asa incat este bine sa avem grija de acest aspect.

<?php
require_once 'config.php';

/*********************************************************
* FUNCTII CATEGORII
*********************************************************/

function formatCategories($categories, $parentId)
{
// $navCat stocheaza toate categoriile copii
// ale $parentId
$navCat = array();

// extinde doar categoriile cu acelasi parinte
// celelalte raman compacte
$ids = array();
foreach ($categories as $category) {
if ($category['cat_parent_id'] == $parentId) {
$navCat[] = $category;
}

// salveaza id-urile pentru o utilizare viitoare
$ids[$category['cat_id']] = $category;
}

$tempParentId = $parentId;

// cauta categoria pana cand id parinte este 0
while ($tempParentId != 0) {
$parent = array($ids[$tempParentId]);
$currentId = $parent[0]['cat_id'];

// preia toate categoriile de pe acelasi nivel cu parintele
$tempParentId = $ids[$tempParentId]['cat_parent_id'];
foreach ($categories as $category) {
if ($category['cat_parent_id'] == $tempParentId && !in_array($category, $parent)) {
$parent[] = $category;
}
}

// sorteaza categoriile alfabetic
array_multisort($parent);

$n = count($parent);
$navCat2 = array();
for ($i = 0; $i < $n; $i++) {
$navCat2[] = $parent[$i];
if ($parent[$i]['cat_id'] == $currentId) {
$navCat2 = array_merge($navCat2, $navCat);
}
}

$navCat = $navCat2;
}


return $navCat;
}

function getCategoryList()
{
$sql = "SELECT cat_id, cat_name, cat_image
FROM tbl_category
WHERE cat_parent_id = 0
ORDER BY cat_name";
$result = dbQuery($sql);

$cat = array();
while ($row = dbFetchAssoc($result)) {
extract($row);

if ($cat_image) {
$cat_image = WEB_ROOT . 'images/category/' . $cat_image;
} else {
$cat_image = WEB_ROOT . 'images/no-image-small.png';
}

$cat[] = array('url' => $_SERVER['PHP_SELF'] . '?c=' . $cat_id,
'image' => $cat_image,
'name' => $cat_name);

}

return $cat;
}

function getChildCategories($categories, $id, $recursive = true)
{
if ($categories == NULL) {
$categories = fetchCategories();
}

$n = count($categories);
$child = array();
for ($i = 0; $i < $n; $i++) {
$catId = $categories[$i]['cat_id'];
$parentId = $categories[$i]['cat_parent_id'];
if ($parentId == $id) {
$child[] = $catId;
if ($recursive) {
$child = array_merge($child, getChildCategories($categories, $catId));
}
}
}

return $child;
}

function fetchCategories()
{
$sql = "SELECT cat_id, cat_parent_id, cat_name, cat_image, cat_description
FROM tbl_category
ORDER BY cat_id, cat_parent_id ";
$result = dbQuery($sql);

$cat = array();
while ($row = dbFetchAssoc($result)) {
$cat[] = $row;
}

return $cat;
}
?>
category-functions.php


<?php
if (!defined('WEB_ROOT')) {
exit;
}

// seteaza titlu implicit
$pageTitle = 'My Online Shop';

// daca exista un product id adauga titlul produsului
// daca exista un category id adauga tiltul categoriei
if (isset($_GET['p']) && (int)$_GET['p'] > 0) {
$pdId = (int)$_GET['p'];
$sql = "SELECT pd_name
FROM tbl_product
WHERE pd_id = $pdId";

$result = dbQuery($sql);
$row = dbFetchAssoc($result);
$pageTitle = $row['pd_name'];

} else if (isset($_GET['c']) && (int)$_GET['c'] > 0) {
$catId = (int)$_GET['c'];
$sql = "SELECT cat_name
FROM tbl_category
WHERE cat_id = $catId";

$result = dbQuery($sql);
$row = dbFetchAssoc($result);
$pageTitle = $row['cat_name'];
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title><?php echo $pageTitle; ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="include/shop.css" rel="stylesheet" type="text/css">
<script language="JavaScript" type="text/javascript" src="library/common.js"></script>
</head>
<body>
header.php
« Crearea bazei de date Afisarea produselor »
1 comentarii
keops232000 18 aprilie 2012, 22:46 1
probablil ca sunt incepator dar cand incarc index.php nu apare decat un tabel gol de ce? ce nu fac bine?..multumesc
  1    Raspunde
Adauga comentariu

Pentru a adauga comentarii trebuie sa fii membru eCursuri.ro

Intra in contul tau sau inregistreaza-te GRATUIT (dreapta sus)
Publicitate
Cuprinsul cursului
Limbajul PHP
1. Introducere in limbajul PHP
2. Variabile PHP
3. Operatori PHP
4. Structuri de control
5. Utilizarea tablourilor si scrierea functiilor
6. PHP orientat spre obiecte
MySQL
7. Introducere in MySQL
8. Structura si arhitectura bazelor de date
9. Construirea bazei de date
10. Interogarea INSERT
11. Interogarea SELECT
12. Interogarile UPDATE si DELETE
Realizarea magazinului online
13. Introducere in realizarea magazinul online
14. Crearea bazei de date
15. Pagina principala
16. Afisarea produselor
17. Cosul de cumparaturi
18. Realizarea comenzii
19. Modulul de administrare
20. Instalare Apache, MySQL si PHP in Windows
Cursuri noi Top cursuri
Curs de legislatie rutiera

7 lectii online
Excel prin exemple

10 lectii online
Windows XP prin exemple

10 lectii online
Infiintarea unei firme

6 lectii online
Gramatica limbii engleze

27 lectii online
Introducere in e-Business

25 lectii online
Curs de Machiaj

13 lectii online
Curs de Fashion

17 lectii online
Curs de Barman

10 lectii online
HTML pe intelesul tuturor

11 lectii online
cursuri
Copyright © 2005-2011 - eCursuri.ro - toate drepturile rezervate - E-mail: contact@ecursuri.ro Cursuri și certificări GDPR