www.pieknowdomu.pl
Przedstawiamy naszą najnowszą realizację, wykonanego przez naszą firmę sklepu pieknowdomu.pl. Firma altom będąca operatorem sklepu pieknowdomu.pl, już po raz drugi wybrała właśnie naszą firme jako realizatora swojego pomysłu i wizji. Nasza wieloletnia współpraca z firmą altom może świadczyć o wysokiej jakości i standardach naszej działalności.
Podstawowym założeniem sklepu była jego prostota i maksymalne wyeksponowanie produktu. poniżej prezentujemy widok nowego sklepu pięknowdomu.pl
Prodykty w promocji a paginator
W internecie można znaleźć wiele rozwiązań tego problemu niestety większości ma podstawową wadę związana z źle działającym paginatorem lub wcale niedziałającym paginatorem.
Najprostszym sposobem na stworzenie strony z produktami w promocji i z działającym paginatorem jest skorzystanie z Magentowego CMS-a i cech produktów :
- Special Price From Date
- Special Price To Date
Lecz najpierw musimy stożyć plik który będzie odpowiedzialny za pobieranie takich produktów z naszego magento. Zakładamy nowy plik :
/app/code/local/Mage/Catalog/Block/Product/List/Promotion.php
Do pliku kopiujemy poniższy kod :
_productCollection)) {
$layer = $this->getLayer();
/* @var $layer Mage_Catalog_Model_Layer */
if ($this->getShowRootCategory()) {
$this->setCategoryId(Mage::app()->getStore()->getRootCategoryId());
}
// if this is a product view page
if (Mage::registry('product')) {
// get collection of categories this product is associated with
$categories = Mage::registry('product')->getCategoryCollection()
->setPage(1, 1)
->load();
// if the product is associated with any category
if ($categories->count()) {
// show products from this category
$this->setCategoryId(current($categories->getIterator()));
}
}
$origCategory = null;
if ($this->getCategoryId()) {
$category = Mage::getModel('catalog/category')->load($this->getCategoryId());
if ($category->getId()) {
$origCategory = $layer->getCurrentCategory();
$layer->setCurrentCategory($category);
}
}
$todayDate = Mage::app()->getLocale()->date()->toString(Varien_Date::DATETIME_INTERNAL_FORMAT);
$this->_productCollection = $this->_addProductAttributesAndPrices($layer->getProductCollection())
->addStoreFilter()
->addAttributeToFilter('special_from_date', array('or'=> array(
0 => array('date' => true, 'to' => $todayDate),
1 => array('is' => new Zend_Db_Expr('null')))
), 'left')
->addAttributeToFilter('special_to_date', array('or'=> array(
0 => array('date' => true, 'from' => $todayDate),
1 => array('is' => new Zend_Db_Expr('null')))
), 'left')
->addAttributeToFilter(
array(
array('attribute' => 'special_from_date', 'is'=>new Zend_Db_Expr('not null')),
array('attribute' => 'special_to_date', 'is'=>new Zend_Db_Expr('not null'))
)
)
;
$this->prepareSortableFieldsByCategory($layer->getCurrentCategory());
if ($origCategory) {
$layer->setCurrentCategory($origCategory);
}
}
return $this->_productCollection;
}
}
Następnie w CMS-ie zakładamy nową stronę z Promocjami, przechodzimy do zakładki wygląd i w pole „Uaktualnienie układu XML” wstawiamy
0 product_list_toolbar
Ważne jest aby jako category_id podać id naszej głównej kategorii zazwyczaj jest to 0. Kategoria ta powinna również być ustawiona jako „Is Anchor”, jest to ważne jeżeli będziemy chcieli korzystać z filtra warstwowego na naszej stronie Promocji.
Od tego momentu na naszej stronie promocji będą wyświetlały się produkty oznaczone przez cechy : Special Price From Date i Special Price To Date.
Unikalny tytuł strony kategorii
Z punktu widzenia optymalizacji SEO każda strona w naszym systemie powinna posiadać unikalny tytuł.
Niestety często kategorie w magento posiadają wiele podstron a domyślna konfiguracja Magento nie gwarantuje im unikalnego tytułu.
Co więc możemy zrobić aby zamiast tytuły w stylu „kategoria” uzyskać tytuł „kategoria – strona 2″
Znajdujemy plik :
/app/code/core/Mage/Catalog/Block/Category/View.php
I kopiujemy go do :
/app/code/local/Mage/Catalog/Block/Category/View.php
następnie od wiersza 44 zmieniamy kod z :
if ($title = $category->getMetaTitle()) {
$headBlock->setTitle($title);
}
na :
if ($title = $category->getMetaTitle()) {
$headBlock->setTitle($title);
}
#zmiana z numeracja strony kategori
elseif ($category->getName() && is_numeric($_GET['p']) && $_GET['p']>1) {
$headBlock->setTitle($category->getName()." - strona ".$_GET['p']);
}
#koniec zmiany
Edytor WYSIWYG usuwa iframe
Czasami pojawia sie potrzeba aby osadzić na naszej stronię pływająca ramkę iframe. Za pomocą takich ramek umieszczane sa np:
- filmy YouTube
- mapy Google
- reklamy sieci afiliacyjnych
Niestety domyślny edytor WYSIWYG dostarczony z Magento nie obsługuje elementów iframe. Powoduje to że po przełączeniu się do wizualnej edycji strony na której umieszczony mamy np film z YouTube po naszym filmie zostaną tylko śmieci.
Problem ten możemy rozwiązać edytując plik :
js/mage/adminhtml/wysiwyg/tiny_mce/setup.js
Odnajdujemy w nim fragment
var settings = {
mode : (mode != undefined ? mode : 'none'),
elements : this.id,
theme : 'advanced',
plugins : plugins,
theme_advanced_buttons1 : magentoPlugins + 'magentowidget,bold,italic,underline,strikethrough, |,justifyleft,justifycenter,justifyright,justifyfull, |,styleselect,formatselect,fontselect,fontsizeselect',
theme_advanced_buttons2 : 'cut,copy,paste,pastetext,pasteword, |,search,replace,|,bullist,numlist, |,outdent,indent,blockquote,|,undo,redo, |,link,unlink,anchor,image,cleanup,help,code, |,forecolor,backcolor',
theme_advanced_buttons3 : 'tablecontrols, |,hr,removeformat,visualaid, |,sub,sup, |,charmap,iespell,media,advhr, |,ltr,rtl,|,fullscreen',
theme_advanced_buttons4 : 'insertlayer,moveforward,movebackward,absolute, |,styleprops, |,cite,abbr,acronym,del,ins,attribs, |,visualchars,nonbreaking,pagebreak',
theme_advanced_toolbar_location : 'top',
theme_advanced_toolbar_align : 'left',
theme_advanced_statusbar_location : 'bottom',
theme_advanced_resizing : true,
I poniżej dodajemy
extended_valid_elements : 'iframe[src|style|width|height|scrolling|marginwidth|marginheight|frameborder] ,style,script',



