support 447 Posted January 17, 2010 Author Report Share Posted January 17, 2010 Не за что Link to post Share on other sites
support 447 Posted January 19, 2010 Author Report Share Posted January 19, 2010 Ещё можно в /includes/classes/product.php поменять: function buildDataArray(&$array,$image='thumbnail') { global $vamPrice,$main; $tax_rate = $vamPrice->TAX[$array['products_tax_class_id']]; $products_price = $vamPrice->GetPrice($array['products_id'], $format = true, 1, $array['products_tax_class_id'], $array['products_price'], 1); if ($_SESSION['customers_status']['customers_status_show_price'] != '0') { if ($_SESSION['customers_status']['customers_fsk18'] == '1') { if ($array['products_fsk18'] == '0') { $buy_now = $this->getBuyNowButton($array['products_id'], $array['products_name']); $buy_now_new = $this->getBuyNowButtonNew($array['products_id'], $array['products_name']); } } else { $buy_now = $this->getBuyNowButton($array['products_id'], $array['products_name']); $buy_now_new = $this->getBuyNowButtonNew($array['products_id'], $array['products_name']); } } $shipping_status_name = $main->getShippingStatusName($array['products_shippingtime']); $shipping_status_image = $main->getShippingStatusImage($array['products_shippingtime']); return array ('PRODUCTS_NAME' => $array['products_name'], 'PRODUCTS_MODEL'=>$array['products_model'], 'PRODUCTS_QUANTITY'=>$array['products_quantity'], 'COUNT'=>$array['ID'], 'PRODUCTS_ID'=>$array['products_id'], 'PRODUCTS_VPE' => $this->getVPEtext($array, $products_price['plain']), 'PRODUCTS_IMAGE' => $this->productImage($array['products_image'], $image), 'PRODUCTS_LINK' => vam_href_link(FILENAME_PRODUCT_INFO, vam_product_link($array['products_id'], $array['products_name'])), 'PRODUCTS_PRICE' => $products_price['formated'], 'PRODUCTS_PRICE_PLAIN' => $products_price['plain'], 'PRODUCTS_TAX_INFO' => $main->getTaxInfo($tax_rate), 'PRODUCTS_SHIPPING_LINK' => $main->getShippingLink(), 'PRODUCTS_BUTTON_BUY_NOW' => $buy_now, 'PRODUCTS_BUTTON_BUY_NOW_NEW' => $buy_now_new, 'PRODUCTS_SHIPPING_NAME'=>$shipping_status_name, 'PRODUCTS_SHIPPING_IMAGE'=>$shipping_status_image, 'PRODUCTS_DESCRIPTION' => $array['products_description'], 'PRODUCTS_EXPIRES' => $array['expires_date'], 'PRODUCTS_CATEGORY_URL'=>$array['cat_url'], 'PRODUCTS_SHORT_DESCRIPTION' => $array['products_short_description'], 'PRODUCTS_FSK18' => $array['products_fsk18']); }[/code] на: [code] function buildDataArray(&$array,$image='thumbnail') { global $vamPrice,$main; if ($_SESSION['customers_status']['customers_status_show_price'] != '0') { if ($_SESSION['customers_status']['customers_fsk18'] == '1') { if ($array['products_fsk18'] == '0') { $buy_now = $this->getBuyNowButton($array['products_id'], $array['products_name']); $buy_now_new = $this->getBuyNowButtonNew($array['products_id'], $array['products_name']); } } else { $buy_now = $this->getBuyNowButton($array['products_id'], $array['products_name']); $buy_now_new = $this->getBuyNowButtonNew($array['products_id'], $array['products_name']); } } $shipping_status_name = $main->getShippingStatusName($array['products_shippingtime']); $shipping_status_image = $main->getShippingStatusImage($array['products_shippingtime']); return array ('PRODUCTS_NAME' => $array['products_name'], 'PRODUCTS_MODEL'=>$array['products_model'], 'PRODUCTS_QUANTITY'=>$array['products_quantity'], 'COUNT'=>$array['ID'], 'PRODUCTS_ID'=>$array['products_id'], 'PRODUCTS_VPE' => $this->getVPEtext($array, $products_price['plain']), 'PRODUCTS_IMAGE' => $this->productImage($array['products_image'], $image), 'PRODUCTS_LINK' => vam_href_link(FILENAME_PRODUCT_INFO, vam_product_link($array['products_id'], $array['products_name'])), 'PRODUCTS_PRICE' => number_format($array['products_price']), 'PRODUCTS_PRICE_PLAIN' => $products_price['plain'], 'PRODUCTS_TAX_INFO' => $main->getTaxInfo($tax_rate), 'PRODUCTS_SHIPPING_LINK' => $main->getShippingLink(), 'PRODUCTS_BUTTON_BUY_NOW' => $buy_now, 'PRODUCTS_BUTTON_BUY_NOW_NEW' => $buy_now_new, 'PRODUCTS_SHIPPING_NAME'=>$shipping_status_name, 'PRODUCTS_SHIPPING_IMAGE'=>$shipping_status_image, 'PRODUCTS_DESCRIPTION' => $array['products_description'], 'PRODUCTS_EXPIRES' => $array['expires_date'], 'PRODUCTS_CATEGORY_URL'=>$array['cat_url'], 'PRODUCTS_SHORT_DESCRIPTION' => $array['products_short_description'], 'PRODUCTS_FSK18' => $array['products_fsk18']); } У меня например после применения всех советов из темы + включение sql кэша + отключения всех боксов кроме разделов получаются на главной странице магазаина такие результаты: Время генерации: 0.06 сек. Количество запросов: 3. Вот например скриншот карточки товара. Правда на странице карточки товара данные такие: Время генерации: 0.066 сек. Количество запросов: 4. Самое интересное, что вобщем-то весь функционал сохраняется магазина, кроме расчёта скидок, менеджера баннеров, кто в онлайне. Так что для тех, кому не повезло с хостером можно довольно прилично ускорить магазин. Link to post Share on other sites
Makdak 0 Posted January 19, 2010 Report Share Posted January 19, 2010 А что изменится в функционале? после замены этой? И еще. по прошлой замене в product.php: "я пробовал вносить изменения и в product.php Но с этим вообще что-то не то... Что-то происходит с ценами.. То есть после того как переправляешь product.php, то на страницах где выводятся карточки товаров - цены сокращаются до 1-й цифры... При этом если войти уже в карточку товара, то там цены выводятся нормальные..." Link to post Share on other sites
support 447 Posted January 19, 2010 Author Report Share Posted January 19, 2010 Makdak Не будет разного рода скидок: персональные скидки, скидки групп, скидки от количества. Не будет баннеров из менеджера баннеров в админке, можно использовать любой внешний менеджер баннеров. Не будет работать модуль кто в онлайне, опять же, не особо нужный интрумент, учитывая, что есть Google Analytics например. Не будет мультивалютности, т.е. пересчёта цен из одной валюты в другую по курсу, но это и не нужно, если у Вас в магазине одна валюта. Не будет учёта налогов, так же не всем нужна такая возможности. Вобщем-то, судя по моим наблюдениям, эти возможности и так используют не так и часто, т.е. для многих эта тема с советами будет интересной, особенно если хостер Ваш не особо быстрый. Попробуйте ещё раз перечитать советы, я там немного исправлений вносил, всё должно выводиться нормально, но только без символа валюты, т.е. если по умолчанию например 11 руб., будет 11.0000, примерно так. Link to post Share on other sites
Makdak 0 Posted January 19, 2010 Report Share Posted January 19, 2010 )) спасибо за пояснения :) Я правда имел в виду - что изменится после последней замены)) Link to post Share on other sites
support 447 Posted January 19, 2010 Author Report Share Posted January 19, 2010 Вот скрин главной страницы: Время генерации: 0.066 сек. Количество запросов: 3. Link to post Share on other sites
support 447 Posted January 19, 2010 Author Report Share Posted January 19, 2010 Makdak Не будет расчёта скидок и не будет форматирования цены, просто плоское число будет выводиться. Link to post Share on other sites
Makdak 0 Posted January 19, 2010 Report Share Posted January 19, 2010 Makdak Не будет расчёта скидок и не будет форматирования цены, просто плоское число будет выводиться. Да)) уже проверил :) так и есть. Но все таки вернул на место. Как-то не очень - куча нулей)) У меня получается без изменения product.php примерно так: Время генерации: 0.889, запросов: 57 Link to post Share on other sites
support 447 Posted January 19, 2010 Author Report Share Posted January 19, 2010 Я чуть поправил сообщение, теперь не будет нулей, будет просто цифра. Для этого в /includes/classes/product.php нужно поменять: 'PRODUCTS_PRICE' => $array['products_price'], [/code] на: [code]'PRODUCTS_PRICE' => number_format($array['products_price']), Это не так и плохо. Все эти советы в основном для крупных магазинов и для медленных хостеров. У Вас и так всё довольно неплохо. Link to post Share on other sites
Makdak 0 Posted January 19, 2010 Report Share Posted January 19, 2010 Я извиняюсь за такой пулемет вопросов... но они возникают)). Вот только что сделал статическим меню. Но кол-во запросов не изменилось... может я как-то не так что-то делал? Я прост из шаблона убрал метку вызова меню - {$box_CATEGORIES} и вставил на ее место просто статическое меню. Или не так надо делать? Link to post Share on other sites
support 447 Posted January 19, 2010 Author Report Share Posted January 19, 2010 Убрав метку из шаблона Вы не убираете подключение php файла. Боксы нужно отключать в Админке - Настройки - Боксы, а не убирать метку в шаблоне, тогда именно файл не будет подключаться. Link to post Share on other sites
Makdak 0 Posted January 19, 2010 Report Share Posted January 19, 2010 Понял спасибо. отключил бокс, 7 запросов убавилось... Хм... А как же этот файл тогда подключается, если я его не вызываю меткой...? Я думал что если метки нету, значит и файл не будет подключаться... Link to post Share on other sites
support 447 Posted January 19, 2010 Author Report Share Posted January 19, 2010 Makdak Нет, метку убрать недостаточно. У Вас итак довольно быстро, меньше секунды. Link to post Share on other sites
support 447 Posted January 20, 2010 Author Report Share Posted January 20, 2010 Что б страницы быстрее отдавались можно ещё gzip включить в Админке - Настройки - Gzip Link to post Share on other sites
Guest pooh Posted January 21, 2010 Report Share Posted January 21, 2010 Хм... А как же этот файл тогда подключается, если я его не вызываю меткой...? Я думал что если метки нету, значит и файл не будет подключаться... Именно так и должен думать обычный пользователь. Именно так он обычно и думает. Поскольку один из общих принципов работы с компьютерной информацией - данные должны вводиться только один раз. И цитированную фразу надо бы понимать как деликатный намек на то, что надо бы разработчикам исправить ситуацию. Link to post Share on other sites
yarbex 0 Posted January 21, 2010 Report Share Posted January 21, 2010 дану. сложно в реализации. и ничего толком не даст Link to post Share on other sites
Guest pooh Posted January 21, 2010 Report Share Posted January 21, 2010 1. В реализации не особо сложно. 2. Вы б на реализацию потратили меньше времени, чем на многочисленные подобные ответы в форуме. 3. Даст конечному простому пользователю упрощение администрирования. Давать советы типа - вставьте в код скрипта - не самый лучший вариант. Для того шаблоны и придуманы, чтобы этого избежать. 4. Даст улучшение быстродействия. Особенно если несколько шаблонов, и в каждом свой набор боксов. 5. Покажет пользователю, что тут не только дают ответы на простые вопросы, но улучшают систему каждодневно, что не замедлит сказаться на количестве продаж и не придется раскрутку заказывать. Link to post Share on other sites
support 447 Posted January 21, 2010 Author Report Share Posted January 21, 2010 А никто особо и не спорит, ясное дело, что так было бы идеально. Хотя вобщем-то и сделано через Админку - Настройки - Боксы, проще ведь там отключать, чем лазить по файлам, удалять метки. Но я например не знаю, как в php можно будет узнать, что в смарти шаблоне убрали какую-то метку?! Соответственно, тогда не подключать php файл. Link to post Share on other sites
Guest pooh Posted January 21, 2010 Report Share Posted January 21, 2010 Но я например не знаю, как в php можно будет узнать, что в смарти шаблоне убрали какую-то метку?! Соответственно, тогда не подключать php файл. Прочесть текст шаблона и проанализировать его. Link to post Share on other sites
support 447 Posted January 21, 2010 Author Report Share Posted January 21, 2010 Прикольно :) Link to post Share on other sites
yarbex 0 Posted January 21, 2010 Report Share Posted January 21, 2010 1. В реализации не особо сложно. 2. Вы б на реализацию потратили меньше времени, чем на многочисленные подобные ответы в форуме. 3. Даст конечному простому пользователю упрощение администрирования. Давать советы типа - вставьте в код скрипта - не самый лучший вариант. Для того шаблоны и придуманы, чтобы этого избежать. 4. Даст улучшение быстродействия. Особенно если несколько шаблонов, и в каждом свой набор боксов. 5. Покажет пользователю, что тут не только дают ответы на простые вопросы, но улучшают систему каждодневно, что не замедлит сказаться на количестве продаж и не придется раскрутку заказывать. так всеж просто делаешь свой fork и туда добавляешь что хочешь Link to post Share on other sites
kpoxas 0 Posted January 22, 2010 Report Share Posted January 22, 2010 Заметил, что сайт грузит еще и бокс админки, особенно запрос: $orders_status_query = vam_db_query("select orders_status_name, orders_status_id from " . TABLE_ORDERS_STATUS . " where language_id = '" . (int)$_SESSION['languages_id'] . "'"); while ($orders_status = vam_db_fetch_array($orders_status_query)) { $orders_pending_query = vam_db_query("select count(*) as count from " . TABLE_ORDERS . " where orders_status = '" . $orders_status['orders_status_id'] . "'"); $orders_pending = vam_db_fetch_array($orders_pending_query); $orders_contents .= '<a href="' . vam_href_link_admin(FILENAME_ORDERS, 'selected_box=customers&status=' . $orders_status['orders_status_id'], 'SSL') . '">' . $orders_status['orders_status_name'] . '</a>: ' . $orders_pending['count'] . '<br />'; } $orders_contents = substr($orders_contents, 0, -6);[/code]С ним на сервере Parse time: 7.607, queries: 62Без негоParse time: 0.969, queries: 52Как оптимизировать? Link to post Share on other sites
kpoxas 0 Posted January 22, 2010 Report Share Posted January 22, 2010 Проблема частично решается индексированием поля orders_status таблицы orders Parse time: 1.213, queries: 63 Link to post Share on other sites
support 447 Posted January 22, 2010 Author Report Share Posted January 22, 2010 А сколько у Вас заказов, что так медленно?! Тут вобщем-то особо страшного нет ничего, всё-таки бокс админ не выводится обычным посетителям. Link to post Share on other sites
kpoxas 0 Posted January 22, 2010 Report Share Posted January 22, 2010 Около 20 тыс Link to post Share on other sites
Recommended Posts