Офис НП AMWAY в Ярославле
Офис Амвей в Ярославле
На карте Офис AMWAY в ЯрославлеПрием и выдача заказов, презентация продукции Амвей, мастер–классы, вопросы по бизнесу Amway:
Адрес: улица Валентины Терешковой, дом 1 (Вход со двора)
Телефон: +7 (920) 112-00-91
Email: matyxho@mail.ru
Сайт: https://www.amway.ru/user/lebedem
Визитка: http://yar.meweb.ru
Просмотр темы
MeWEB: Учимся строить сайты » Программирование » PHP, MySQL
 Распечатать тему
Небольшие вопросы по скриптам магазина и каталога SkyMag && SkyCat
Pisatel
Так как на сайте разработчика данных скриптов невозможно добавлять код, буду отвечать на некоторые вопросы (на которые знаю ответ) здесь. Итак, начнем.


Я не европеец. И не азиат. Я русский. Я россиянин. Я за истинные семейные христианские ценности. И это - моя национальная идея.
 
http://www.meweb.ru
Pisatel
Лукас, могу вам примерное ТЗ написать. Предположим, языковая папка у нас называется /locale. А в ней подкаталоги
/Russian
/English
/Ukrainian
, в которых лежат языковые файлы. Обычная форма с выбором input/select, в которой пользователь выбирает язык и идентификатор этого языка пишем ему в куки. Ну и сам вывод будет выглядеть примерно так: зададим константу LOCALE, в которую надо будет поместить путь до папки locale, то есть так:
Скачать код  Код: PHP
define("LOCALE", "/locale/");



далее константа, например, LOCALESET- идентификатор языка, например,
Скачать код  Код: PHP
define("LOCALESET", $_COOKIES['lang']."/");



Идентификатор должен совпадать с названием языковой папки. Ну и само подключение у нас будет выглядеть так:
Скачать код  Код: PHP
require_once LOCALE.LOCALESET.'/skylang.php;



Как-то так:-)


Я не европеец. И не азиат. Я русский. Я россиянин. Я за истинные семейные христианские ценности. И это - моя национальная идея.
 
http://www.meweb.ru
Pisatel
Плизка, либо при самом выводе вы указываете ширину изображения, то есть в файле skycat.php ищете вывод превью и ставите ему ширину, примерно так
Скачать код  Код: HTML
<img style="width:100px;" src="pic/tov/sm_'.$pic.'/>



Но лучше будет сразу при загрузке менять размер превью, то есть сейчас у нас размер превью по умолчанию 140х140 пикселей. Если нам нужно, например, 100 пикселей, берем файл adm.php, находим там такую запись
Скачать код  Код: PHP
if ($mod=='cat'){
$maxgor=700;
$maxver=600;
$sm_maxgor=140;
$sm_maxver=140;
}



Соответственно, меняем 140 на необходимые нам 100. Это ширина и высота.


Я не европеец. И не азиат. Я русский. Я россиянин. Я за истинные семейные христианские ценности. И это - моя национальная идея.
 
http://www.meweb.ru
Pisatel
Лукас, нашел для вас еще одно решение. Принцип почти тот же, что я описал, только есть пример и полный код реализации: Тынц!


Я не европеец. И не азиат. Я русский. Я россиянин. Я за истинные семейные христианские ценности. И это - моя национальная идея.
 
http://www.meweb.ru
Pisatel
Последние просмотренные товары для каталога (пойдет и под магазин, только изменить названия переменных). Запись идет в сессию, время жизни небольшое. В архиве- код вставляем под выводом товара крупно, и стиль.

Pisatel присоединено следующее:файл:
Вы не можете видеть вложения в этой теме.

Я не европеец. И не азиат. Я русский. Я россиянин. Я за истинные семейные христианские ценности. И это - моя национальная идея.
 
http://www.meweb.ru
Pisatel
Вывод description и keywords для товара и новостей (если новостей нет, ничего страшного)
Для начала в файле db.php добавляем функцию
Скачать код  Код: PHP
function trimlink($text, $length) {
$dec = array("&", "\"", "'", "\\", '\"', "\'", "<", ">");
$enc = array("&amp;", "&quot;", "&#39;", "&#92;", "&quot;", "&#39;", "&lt;", "&gt;");
$text = str_replace($enc, $dec, $text);
if (strlen($text) > $length) $text = substr($text, 0, ($length-3))."...";
$text = str_replace($dec, $enc, $text);
return $text;
}




Далее, желательно создать отдельный файл, назовите его как хотите, например desc_key.php, с содержимым
Скачать код  Код: PHP
<?php

//description & keywords товара
if (isset($tov_id))
{
$skybasetovdesc = mysql_query("SELECT `tov_nazv`, `tov_opis` FROM `skycat_tov` WHERE `tov_id`='{$tov_id}' LIMIT 1",$db) or die(mysql_error());
$skyrowtovdesc = mysql_fetch_array($skybasetovdesc);

$description = strip_tags(html_entity_decode(stripslashes($skyrowtovdesc['tov_opis'])));
$description = str_replace(array("\r\n", "\r", "\n"), " ", $description);
$description = trim(preg_replace("/\s+/", " ", $description));
$description = trimlink($description, 160);

$keywords = preg_replace("/\s[^\b]{1,2}\s/", " ", strip_tags(html_entity_decode(stripslashes($skyrowtovdesc['tov_nazv']))));
} elseif (isset($news_id)){

$skybasenewsdesc = mysql_query("SELECT `news_nazv`, `news_text` FROM `skynews_news` WHERE `news_id`='{$news_id}' LIMIT 1",$db) or die(mysql_error());
$skyrownewsdesc = mysql_fetch_array($skybasenewsdesc);

$description = strip_tags(html_entity_decode(stripslashes($skyrownewsdesc['news_text'])));
$description = str_replace(array("\r\n", "\r", "\n"), " ", $description);
$description = trim(preg_replace("/\s+/", " ", $description));
$description = trimlink($description, 160);

$keywords = preg_replace("/\s[^\b]{1,2}\s/", " ", strip_tags(html_entity_decode(stripslashes($skyrownewsdesc['news_nazv']))));
} else {
$description = "Каталог продукции ".$nazv_cat." &raquo; ".$titl." &raquo; Здесь стандартное описание для остальных страниц";
$keywords = "здесь стандартные ключевые слова для остальных разделов через пробел";
}
?>



Ну и далее- сам вывод
Скачать код  Код: PHP
  require_once "desc_key.php";
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>';
if (isset($titl) && !empty($titl)){
echo ''.$titl.' &raquo; '; }
echo 'Каталог продукции '.$nazv_cat.'</title>
<meta name="keywords" content= "'.$keywords.'"/>
<meta name="description" content= "'.$description.'"/>';



Будут вопросы- отвечу здесь.


Я не европеец. И не азиат. Я русский. Я россиянин. Я за истинные семейные христианские ценности. И это - моя национальная идея.
 
http://www.meweb.ru
Pisatel
Простая карта сайта (sitemap.xml)
Создаем в корне файл sitemap.php со следующим содержимым:
Скачать код  Код: PHP
<?php

require_once "db.php";

define("BASEDIR", "http://".$_SERVER['HTTP_HOST']."/");

header ("Content-type: application/xml");

echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n";
echo " <urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\n";



//товары
$result = mysql_query("SELECT tov_id, tov_cat, cat_id FROM skycat_tov, skycat_cat ORDER BY cat_id DESC",$db)
or die(mysql_error());

$rows = mysql_num_rows($result);
if ($rows!=0) {
while ($data = mysql_fetch_array($result)) {
if($data['cat_id'] == $data['tov_cat']) {
echo "\t<url>\n";
echo "\t\t<loc>" .BASEDIR."skycat.php?mod=cat&amp;cat_id=".$data['cat_id']."&amp;tov_id=".$data['tov_id']. "</loc>\n";
$date = date("Y-m-d");
echo "\t\t<lastmod>".$date."</lastmod>\n";
echo "\t\t<changefreq>daily</changefreq>\n";
echo "\t\t<priority>1.0</priority>\n";
echo "\t</url>\r\n";
}
}
}

//каталоги, товары в каталоге

$result = mysql_query("SELECT cat_id FROM skycat_cat ORDER BY cat_id DESC",$db)
or die(mysql_error());

$rows = mysql_num_rows($result);
if ($rows!=0) {
while ($data = mysql_fetch_array($result)) {

echo "\t<url>\n";
echo "\t\t<loc>" .BASEDIR."skycat.php?act=cat&amp;cat_id=".$data['cat_id']."</loc>\n";
$date = date("Y-m-d");
echo "\t\t<lastmod>".$date."</lastmod>\n";
echo "\t\t<changefreq>daily</changefreq>\n";
echo "\t\t<priority>0.9</priority>\n";
echo "\t</url>\r\n";

}
}
//разделы


$result = mysql_query("SELECT mod_id FROM skymod ORDER BY mod_id DESC",$db)
or die(mysql_error());
$rows = mysql_num_rows($result);
if ($rows!=0) {
while ($data = mysql_fetch_array($result)) {
echo "\t<url>\n";
echo "\t\t<loc>" .BASEDIR."skycat.php?mod_id=".$data['mod_id']."</loc>\n";
$date = date("Y-m-d");
echo "\t\t<lastmod>".$date."</lastmod>\n";
echo "\t\t<changefreq>daily</changefreq>\n";
echo "\t\t<priority>0.7</priority>\n";
echo "\t</url>\r\n";

}
}


//RSSлента(если нужна)

echo "\t<url>\n";
echo "\t\t<loc>" .BASEDIR."skycat.xml</loc>\n";
$date = date("Y-m-d");
echo "\t\t<lastmod>".$date."</lastmod>\n";
echo "\t\t<changefreq>daily</changefreq>\n";
echo "\t\t<priority>0.7</priority>\n";
echo "\t</url>\r\n";


echo "</urlset>\n";
?>



Далее, в файл .htaccess добавляем следующие строки
Скачать код  Код: TEXT
RewriteEngine on
RewriteRule ^sitemap.xml$ sitemap.php [L]




Все, наша карта сайта готова.


Я не европеец. И не азиат. Я русский. Я россиянин. Я за истинные семейные христианские ценности. И это - моя национальная идея.
 
http://www.meweb.ru
yug
Здравствуйте! Не подскажите, можно ли сделать описание к категориям товара?

 
Pisatel
Здравствуйте. Думаю, можно, по тому же принципу. Загвоздка лишь в том, что у нас, если не ошибаюсь, есть только название каталогов, но изначально нет их описаний. У меня сейчас нет возможности проверить, но попробуйте следующее
Скачать код  Код: PHP
    elseif (isset($cat_id)){
$cat_idput = $cat_id;
for ($i = 0; ; $i++)
{
$skybasedescput = mysql_query("SELECT `cat_id`,`cat_name`,`cat_papa` FROM `skycat_cat` WHERE `cat_id`='{$cat_idput}'",$db)
or die(mysql_error());
$skyrowdescput = mysql_fetch_array($skybasedescput);
$catdescput = $skyrowdescput['cat_name']."&raquo;".$catdescput;
if ($skyrowdescput['cat_papa']==0) { break;}
$cat_idput = $skyrowdescput['cat_papa'];
}

$catdescput = $cat_name."&raquo;".$catdescput;
$description = strip_tags(html_entity_decode(stripslashes($catdescput)));
$description = str_replace(array("\r\n", "\r", "\n"), " ", $description);
$description = trim(preg_replace("/\s+/", " ", $description));
$description = trimlink($description, 160);

$keywords = preg_replace("/\s[^\b]{1,2}\s/", " ", strip_tags(html_entity_decode(stripslashes($catdescput))));
}




Я не европеец. И не азиат. Я русский. Я россиянин. Я за истинные семейные христианские ценности. И это - моя национальная идея.
 
http://www.meweb.ru
yug
Спасибо, попробую и отпишусь, как сделаю.
да, ещё по теме:
1. при запросе sitemap.xml выдаёт - Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at Z:\home\skymag.ru\www\sitemap.php:1) in Z:\home\skymag.ru\www\db.php on line 1
2. Вывод description и keywords получился только когда код не в отдельном файле desc_key.php, а внутри skycat.php
А, вообще, большое спасибо за помошьВоздушный поцелуй

 
Pisatel
yug,
1. Не понял, что за ошибка. Все работало, сессии для карты не нужны.
2. У меня этот каталог был переписан: был отдельно header, в котором шли все подключения и шапка сайта, отдельно левая панель, отдельно основной контент и отдельно footer.
А фишка вот в чем: чем меньше файл, чем меньше кода- тем меньше уходит времени на обработку интерпретатором кода, следовательно- меньше нагрузка на сервер, выше скорость генерации, выше производительность.
Попробуйте вставить этот код в основной файл, до вывода титл и дескрипшн.
ОбращайтесьОчень смешно Помогу, чем смогу.


Изменил(а) Pisatel, 12 сентября 2013 16:04:05
Я не европеец. И не азиат. Я русский. Я россиянин. Я за истинные семейные христианские ценности. И это - моя национальная идея.
 
http://www.meweb.ru
yug
/* Попробуйте вставить этот код в основной файл, до вывода титл и дескрипшн. */
да, я так и сделал...

 
dmtrey2
Здравствуйте, вопрос по skymag. Подскажите,как можно прикрутить в форму оформления заказа доставку с помощью списка или радиокнопок (в идеале сумма доставку плюсовалась к стоимости товара в строке "Всего"). Спасибо.

 
Pisatel
dmtrey2, признаться честно, со skymag я знаком лишь бегло, раньше я работал со skycat. В принципе, прикурутить можно что угодно и куда угодно, лишь бы знать, куда и что (сорри за туфтологию). Я к тому, что даже не представляю, как устроена эта форма заказа в skymag, какие кнопки вы хотите добавить...


Я не европеец. И не азиат. Я русский. Я россиянин. Я за истинные семейные христианские ценности. И это - моя национальная идея.
 
http://www.meweb.ru
dmtrey2
Спасибо за отклик, роблема в том, что запись в таблице сохраняется до тех пор пока заказ не отправлен на почту, после чего ни в бд ни в письме записей о доставке нет

 
dmtrey2
Спасибо за отклик, роблема в том, что запись в таблице сохраняется до тех пор пока заказ не отправлен на почту, после чего ни в бд ни в письме записей о доставке нет http://tpkspb.ru/g-form/skymag/skycat.php?mod=ofzak

 
Pisatel
dmtrey2, если я правильно понял код, то: сначала заказ хранится в cookie, после отправки печеньки убиваются и запись идет в бд
Скачать код  Код: PHP
	$zakazano = $_COOKIE["korzina"];
$skydob = mysql_query ("INSERT INTO `skymag_zak` (`zak_ot`,`zak_tov`,`zak_data`,`zak_prim`)
VALUES ('{$user_id}','{$zakazano}','{$vrem}','{$zak_prim}')",$db) or die(mysql_error());
setcookie('korzina', '', 0, "/");




Конкретнее опишите проблему: после отправки КЕМ письма удаляется запись: вами, зарегистрированным или нет пользователем?


Я не европеец. И не азиат. Я русский. Я россиянин. Я за истинные семейные христианские ценности. И это - моя национальная идея.
 
http://www.meweb.ru
dmtrey2
Добрый день!Запись удаляется не зависимо от того кто отравляет заказ. Дело в том, что я добавил копию строки user_obl в таблице skyusers, переименовав её в user_dostavka. Во вкладке "Личная информация" в поле "Доставка" пишу "Курьером" , запись в таблице появляется, но во время оформления заказа и отправки на почту все поля сохраняются, кроме доставки, ни в письме ни в таблице её нет. Ещё раз спасибо!

 
Pisatel
Файл d.php, ищем добавление и обновление информации, добавляем запись в новое поле (я назвал переменную, в которой хранится информация, $user_dostavka, не знаю, как она называется у вас)
Скачать код  Код: PHP
			$skybase = mysql_query("UPDATE `skyusers` SET `user_tel`='{$user_tel}',`user_fax`='{$user_fax}',`user_gorod`='{$user_gorod}',`user_obl`='{$user_obl}', `user_dostavka`='{$user_dostavka}' WHERE `user_email`='{$user_email}'",$db) or die(mysql_error());
$user_id = $skyrowuser['user_id'];
}
else{
$user_ip = $_SERVER['REMOTE_ADDR'];
$skydob = mysql_query ("INSERT INTO `skyusers` (`user_email`,`user_login`,`user_tel`,`user_fax`,`user_gorod`,`user_obl`,`user_vizit`,`user_prava`,`user_ip`, `user_dostavka`)
VALUES ('{$user_email}','{$user_login}','{$user_tel}','{$user_fax}','{$user_gorod}','{$user_obl}','{$vrem}','0','{$user_ip}','{$user_dostavka}')",$db) or die(mysql_error());




В этом же файле
Скачать код  Код: PHP
	$skybase = mysql_query("UPDATE `skyusers` 
SET `user_tel`='{$user_tel}',`user_fax`='{$user_fax}',`user_gorod`='{$user_gorod}',`user_obl`='{$user_obl}', `user_dostavka`='{$user_dostavka}'
WHERE `user_id`='{$_SESSION['ses_user']}'",$db) or die(mysql_error());




То есть, у нас теперь есть новое поле, которое нужно заполнять и обновлять везде. Посмотрите в этом направлении.


Я не европеец. И не азиат. Я русский. Я россиянин. Я за истинные семейные христианские ценности. И это - моя национальная идея.
 
http://www.meweb.ru
dmtrey2
Спасибо,дружище,за помощь. Точно такие же изменения в d.php уже сделаны, проблема осталась. Может завести отдельную таблицу "доставка", только я в этих делах слабо шарю, буду признателен за помощъ

 
Поделиться:   
Перейти на форум:
Похожие темы
Темы Форум Ответов / Просмотров Последние сообщения
Вопросы по Ajax форме обратной связи  →  CMS PHP Fusion 48 / 67402 19 февраля 2017 23:38:28
Вопросы по счетчику Power Counter  →  CMS PHP Fusion 19 / 16220 19 января 2015 09:42:03
Последние активные темы форума
  Темы Просмотров Ответов Последние сообщения
folder Вопрос по переделке bb-кода
PHP, MySQL
22124 5 Pisatel
26. мая 2017
folder Вопросы по Ajax форме обратной связи
CMS PHP Fusion
67402 48 Ditrin
19. февраля 2017
folder BBCode YouTube Video Colorbox mod
CMS PHP Fusion
15248 2 Pisatel
10. декабря 2016
folder Как лучше создать собственную страницу?
CMS PHP Fusion
17735 17 Pisatel
11. мая 2016
folder Небольшие вопросы по скриптам магазина и катало...
PHP, MySQL
142667 80 Pisatel
11. января 2016
folder BBCode Code mod
CMS PHP Fusion
14247 0 Pisatel
31. августа 2015
folder Ajax Like Dislike Article Panel
CMS PHP Fusion
22294 16 Pisatel
07. июля 2015
folder Хлебные крошки / BreadCrumbs SEO Panel
CMS PHP Fusion
25976 17 Pisatel
04. июля 2015
folder Abbr Description BBCode
CMS PHP Fusion
7599 0 Pisatel
15. июня 2015
folder Плагин Email рассылки Mail To All by Pisatel
CMS PHP Fusion
36599 32 Pisatel
26. апреля 2015
folder Подозрительный трафик и прочие страшилки
Всякая хрень
11704 2 Ditrin
23. апреля 2015
folder Мод Newsletter - рассылка писем пользователям с...
CMS PHP Fusion
30921 13 Pisatel
10. апреля 2015
folder Мод отправки писем PHPMailer для PHP-Fusion
CMS PHP Fusion
126257 113 Ditrin
06. апреля 2015
folder Появление неизвестного файла subscriptions.php
CMS PHP Fusion
8801 2 Pisatel
06. апреля 2015
folder Autoban on IP
CMS PHP Fusion
23075 13 Pisatel
03. апреля 2015