Autor | Zpráva | ||
---|---|---|---|
Jan Profil |
#1 · Zasláno: 29. 6. 2010, 19:55:55
Začal sem optimalizovat můj e-shop pro SEO ,
vše co potřebuji mám hotovo, bohužel nevím jak zapsat proměnou do závorky viz zde : <? function seo_url ($title){ $pd_name_seo = $title; // nahradi znaky s diakritikou na znaky bez diakritiky $pd_name_seo = StrTr ($pd_name_seo, "ÁÄČÇĎÉĚËÍŇÓÖŘŠŤÚŮÜÝŽáäčçďéěëíňóöřšťúůüýž ", "AACCDEEEINOORSTUUUYZaaccdeeeinoorstuuuyz-"); // prevede vsechna velka pismena na mala $pd_name_seo = strtolower ($pd_name_seo); // nahradi pomlckou vsechny znanky, ktera nejsou pismena $re = "/[^[:alpha:][:digit:]]/"; $replacement = "-"; $pd_name_seo = preg_replace ($re, $replacement, $pd_name_seo); // odstrani ze zacatku a z konce <b style="color:black;background-color:#99ff99">retezce</b> pomlcky $pd_name_seo = trim ($pd_name_seo, "-"); // odstrani z adresy pomlcky, pokud jsou dve a vice vedle sebe $re = "/[-]+/"; $replacement = "-"; $pd_name_seo = preg_replace ($re, $replacement, $pd_name_seo); return $pd_name_seo; } ?> <? $pd_name_seo = seo_url ("spodní prádlo kalhotky podprsenka"); ?> potřebuji místo : ("spodní prádlo kalhotky podprsenka") zapsat $pd_name dekuji za pomoc |
||
Nox Profil |
#2 · Zasláno: 29. 6. 2010, 19:59:38
že by...?
$pd_name_seo = seo_url ($pd_name); řádek 3 je zbytečný |
||
Jan Profil |
#3 · Zasláno: 29. 6. 2010, 20:02:54
SAmozřejmně toto jsem zkoušel, i s uvozovkama i bez nich , vždy vypíše chybu :
Notice: Undefined variable: pd_name in /home/spodary.cz/spodary.cz/include/productList.php on line 56 zde je kod celeho skriptu : <?php header("Content-Type: text/html; charset=utf-8"); ?> <table width="100%" align="center" > <?php if (!defined('WEB_ROOT')) { exit; } $productsPerRow = 3; $productsPerPage = 18; //$productList = getProductList($catId); $children = array_merge(array($catId), getChildCategories(NULL, $catId)); $children = ' (' . implode(', ', $children) . ')'; $sql = "SELECT pd_id, pd_name, pd_price, pd_thumbnail, pd_qty, c.cat_id FROM tbl_product pd, tbl_category c WHERE pd.cat_id = c.cat_id AND pd.cat_id IN $children ORDER BY pd_name"; $result = dbQuery(getPagingQuery($sql, $productsPerPage)); $pagingLink = getPagingLink($sql, $productsPerPage, "c=$catId"); $numProduct = dbNumRows($result); // the product images are arranged in a table. to make sure // each image gets equal space set the cell width here $columnWidth = (int)(100 / $productsPerRow); ?> <span style= "font-family :sans-serif; font-size:14pt; color:#FF8000;"> <? function seo_url ($title){ $pd_name_seo = $title; // nahradi znaky s diakritikou na znaky bez diakritiky $pd_name_seo = StrTr ($pd_name_seo, "ÁÄČÇĎÉĚËÍŇÓÖŘŠŤÚŮÜÝŽáäčçďéěëíňóöřšťúůüýž ", "AACCDEEEINOORSTUUUYZaaccdeeeinoorstuuuyz-"); // prevede vsechna velka pismena na mala $pd_name_seo = strtolower ($pd_name_seo); // nahradi pomlckou vsechny znanky, ktera nejsou pismena $re = "/[^[:alpha:][:digit:]]/"; $replacement = "-"; $pd_name_seo = preg_replace ($re, $replacement, $pd_name_seo); // odstrani ze zacatku a z konce <b style="color:black;background-color:#99ff99">retezce</b> pomlcky $pd_name_seo = trim ($pd_name_seo, "-"); // odstrani z adresy pomlcky, pokud jsou dve a vice vedle sebe $re = "/[-]+/"; $replacement = "-"; $pd_name_seo = preg_replace ($re, $replacement, $pd_name_seo); return $pd_name_seo; } ?> <? $pd_name_seo = seo_url ($pd_name); ?> <? if ($numProduct > 0 ) { $i = 0; while ($row = dbFetchAssoc($result)) { extract($row); if ($pd_thumbnail) { $pd_thumbnail = WEB_ROOT . 'images/product/' . $pd_thumbnail; } else { $pd_thumbnail = WEB_ROOT . 'images/no-image-small.png'; } if ($i % $productsPerRow == 0) { echo '<tr>'; } // format how we display the price $pd_price = ($pd_price); echo "<td width=\"$columnWidth%\" align=\"center\"><a href=\"" . $_SERVER['PHP_SELF'] . "?n=$pd_name_seo&c=$catId&p=$pd_id" . "\"><img src=\"$pd_thumbnail\" border=\"0\"><br>$pd_name</a><br>Cena : $pd_price" ; print (" Kč"); ?> <span style= "font-family :sans-serif; font-size:14pt; color:#FF8000;"> <?php // if the product is no longer in stock, tell the customer if ($pd_qty <= 0) { echo "<br>Vyprodáno!"; } echo "</td>\r\n"; if ($i % $productsPerRow == $productsPerRow - 1) { echo '</tr>'; } $i += 1; } if ($i % $productsPerRow > 0) { echo '<td colspan="' . ($productsPerRow - ($i % $productsPerRow)) . '"> </td>'; } } else { ?> </span> <tr><td width="100%" align="top" valign="top">Žádné zboží v této kategorii</td></tr> <?php } ?> </table> <p valign="right" align="bottom"><?php echo $pagingLink; ?></p> |
||
Yur4Y Profil |
#4 · Zasláno: 29. 6. 2010, 20:17:05
Tú premennú treba najprv definovať.
|
||
Jan Profil |
#5 · Zasláno: 29. 6. 2010, 20:19:28
ona je definována proto také vše funguje jak mám, je umístěna také na 92. řádku a tam funguje jak má, zobrazuje se normálně, proč na 61. řádku ne ?
|
||
Nox Profil |
#6 · Zasláno: 29. 6. 2010, 20:25:48
a nevytvořila se náhodou tím extractem ř.72? to znamená až PO volání té funkce?
|
||
Jan Profil |
#7 · Zasláno: 29. 6. 2010, 20:27:45
ne ne promená $pd_name se ztahuje z databaze mysql, ktera je definovana v jinem skriptu, zde chyba neni
|
||
Nox Profil |
#8 · Zasláno: 29. 6. 2010, 20:30:24
Ta proměnná na tom místě prostě neexistuje... jestli se vytvořila někde jidne, tak je řekl bych zásadní abys to sem uvedl, kde a jak se získává...
|
||
nightfish Profil |
#9 · Zasláno: 30. 6. 2010, 08:14:45
Jan:
„ne ne promená $pd_name se ztahuje z databaze mysql“ proměnná $pd_name se vytváří na řádku 72 proto je logické, že ji nemůžeš použít na řádku 61 zkus ř. 61 přesunout třeba na ř. 85 |
||
Jan Profil |
#10 · Zasláno: 30. 6. 2010, 08:23:53
super tak už to funguje , už bych jen potřeboval doladit poslední problém, místo kadého znaku s diakritikou se mi napíše - což není dobrě, znaky s diakritikou bych chtěl nahradit znaky bez diakritiky, znakem - bych chtel nahradit pouze mezery mezi slovy.
Kde je tam chyba ? například název : "Trenýrky boxerky Tommy Hilfiger THP10 fialové zelené L" mi napíše jako : "tren-zrky-boxerky-tommy-hilfiger-thp10-fialov-zelen-l" chtěl bych aby mi napsalo "trenyrky-boxerky-tommy-hilfiger-thp10-fialove-zelene-l" |
||
AM_ Profil |
#11 · Zasláno: 30. 6. 2010, 11:54:36
Máš soubor ve správném kódování? a pokud je to utf-8, nemůžeš funkci StrTr výčet znaků předávat jako string, ale jako pole (viz manuál, vidět je to v prvním commentu)
|
||
Jan Profil |
#12 · Zasláno: 30. 6. 2010, 13:19:54
Ano mam to v utf-8 muzes mi tedy rict co mam na kterem radku prepsat ?
|
||
AM_ Profil |
#13 · Zasláno: 30. 6. 2010, 13:22:56
funkci strtr na řádku 39 - výčet znaků přepiš na pole, je to vidět v PHP manuálu co jsem poslal hned v prvním komentáři na stránce, jak takové pole vypadá.
|
||
Jan Profil |
#14 · Zasláno: 30. 6. 2010, 15:37:55
nemohl by si mi tu presne napsat cim to mam presne nahradit ?
dekuji |
||
Časová prodleva: 14 let
|
0