first commit
This commit is contained in:
166
apps/backend/modules/stProductGroup/actions/actions.class.php
Normal file
166
apps/backend/modules/stProductGroup/actions/actions.class.php
Normal file
@@ -0,0 +1,166 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* SOTESHOP/stProductGroup
|
||||
*
|
||||
* Ten plik należy do aplikacji stProductGroup opartej na licencji (Open License SOTE) Otwarta Licencja SOTE.
|
||||
* Nie zmieniaj tego pliku, jeśli chcesz korzystać z automatycznych aktualizacji oprogramowania.
|
||||
* Jeśli chcesz wprowadzać swoje modyfikacje do programu, zapoznaj się z dokumentacją, jak zmieniać
|
||||
* oprogramowanie bez zmiany kodu bazowego http://www.sote.pl/modifications
|
||||
*
|
||||
* @package stProductGroup
|
||||
* @subpackage actions
|
||||
* @copyright SOTE (www.sote.pl)
|
||||
* @license http://www.sote.pl/license/open (Open License SOTE) Otwarta Licencja SOTE
|
||||
* @version $Id: actions.class.php 17601 2012-03-30 11:05:39Z krzysiek $
|
||||
* @author Krzysztof Bebło <krzysztof.beblo@sote.pl>, Paweł Byszewski <pawel.byszewski@sote.pl>
|
||||
*/
|
||||
|
||||
/**
|
||||
* Akcje grupy produktów.
|
||||
*
|
||||
* @package stProductGroup
|
||||
* @author Krzysztof Bebło <krzysztof.beblo@sote.pl>, Paweł Byszewski <pawel.byszewski@sote.pl>
|
||||
*/
|
||||
|
||||
class stProductGroupActions extends autostProductGroupActions
|
||||
{
|
||||
protected $configGroup;
|
||||
|
||||
public function executeDelete()
|
||||
{
|
||||
ProductGroupPeer::cleanCache();
|
||||
parent::executeDelete();
|
||||
}
|
||||
|
||||
public function executeProductAddGroup()
|
||||
{
|
||||
try
|
||||
{
|
||||
parent::executeProductAddGroup();
|
||||
}
|
||||
catch (sfStopException $e)
|
||||
{
|
||||
ProductGroupPeer::cleanCache();
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function executeProductRemoveGroup()
|
||||
{
|
||||
try
|
||||
{
|
||||
parent::executeProductRemoveGroup();
|
||||
}
|
||||
catch (sfStopException $e)
|
||||
{
|
||||
ProductGroupPeer::cleanCache();
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
public function addProductFiltersCriteria($c)
|
||||
{
|
||||
parent::addProductFiltersCriteria($c);
|
||||
|
||||
if (isset($this->filters['list_image']) && $this->filters['list_image'] !== '')
|
||||
{
|
||||
$c->add(ProductPeer::OPT_IMAGE, null, $this->filters['list_image'] ? Criteria::ISNOTNULL : Criteria::ISNULL);
|
||||
}
|
||||
|
||||
if (isset($this->filters['list_assigned']) && $this->filters['list_assigned'] !== '')
|
||||
{
|
||||
$c->addJoin(ProductPeer::ID, sprintf("%s AND %s = %d", ProductGroupHasProductPeer::PRODUCT_ID, ProductGroupHasProductPeer::PRODUCT_GROUP_ID, $this->forward_parameters['product_group_id']), Criteria::LEFT_JOIN);
|
||||
|
||||
if ($this->filters['list_assigned'])
|
||||
{
|
||||
$c->add(ProductGroupHasProductPeer::ID, null, Criteria::ISNOTNULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
$c->add(ProductGroupHasProductPeer::ID, null, Criteria::ISNULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected function saveConfig()
|
||||
{
|
||||
parent::saveConfig();
|
||||
stFastCacheManager::clearCache();
|
||||
}
|
||||
|
||||
protected function saveProductGroup($product_group)
|
||||
{
|
||||
if (!$this->getRequest()->hasErrors() && $this->hasRequestParameter('product_group[delete_image]'))
|
||||
{
|
||||
$currentFile = sfConfig::get('sf_upload_dir') . "/product_group/" . $product_group->getImage();
|
||||
$product_group->setImage('');
|
||||
if (is_file($currentFile))
|
||||
{
|
||||
unlink($currentFile);
|
||||
}
|
||||
}
|
||||
|
||||
if (!$this->getRequest()->hasErrors() && $this->hasRequestParameter('product_group[label]'))
|
||||
{
|
||||
$product_group->setLabel($this->getRequestParameter('product_group[label]'));
|
||||
}
|
||||
|
||||
parent::saveProductGroup($product_group);
|
||||
|
||||
$this->saveProductGroupImage($product_group);
|
||||
|
||||
ProductGroupPeer::cleanCache();
|
||||
stFastCacheManager::clearCache();
|
||||
}
|
||||
|
||||
protected function saveProductGroupImage($product_group)
|
||||
{
|
||||
if ($this->getRequest()->getFileError('product_group[image]') == UPLOAD_ERR_OK)
|
||||
{
|
||||
$filename = $this->getRequest()->getFileName('product_group[image]');
|
||||
|
||||
// dodaj zdjecie
|
||||
if (!$this->getRequest()->hasErrors() && $this->getRequest()->getFileSize('product_group[image]'))
|
||||
{
|
||||
$currentFile = sfConfig::get('sf_upload_dir') . "/product_group/" . $filename;
|
||||
|
||||
if (is_file($currentFile))
|
||||
{
|
||||
unlink($currentFile);
|
||||
}
|
||||
|
||||
$this->getRequest()->moveFile('product_group[image]', sfConfig::get('sf_upload_dir') . "/product_group/" . $filename);
|
||||
|
||||
$product_group->setImage($filename);
|
||||
}
|
||||
|
||||
$product_group->save();
|
||||
}
|
||||
}
|
||||
|
||||
public function executeFixOptProductGroup()
|
||||
{
|
||||
}
|
||||
|
||||
protected function addFiltersCriteria($c)
|
||||
{
|
||||
$c->add(ProductGroupPeer::FROM_BASKET_VALUE, null, Criteria::ISNULL);
|
||||
|
||||
parent::addFiltersCriteria($c);
|
||||
}
|
||||
|
||||
protected function getProductGroupOrCreate($id = 'id')
|
||||
{
|
||||
$productGroup = parent::getProductGroupOrCreate($id);
|
||||
|
||||
if ($productGroup->getProductGroup() != 'NEW')
|
||||
{
|
||||
$this->hideField('new_type');
|
||||
$this->hideField('new_product_date');
|
||||
}
|
||||
|
||||
return $productGroup;
|
||||
}
|
||||
}
|
||||
105
apps/backend/modules/stProductGroup/actions/components.class.php
Normal file
105
apps/backend/modules/stProductGroup/actions/components.class.php
Normal file
@@ -0,0 +1,105 @@
|
||||
<?php
|
||||
/**
|
||||
* SOTESHOP/stProductGroup
|
||||
*
|
||||
* Ten plik należy do aplikacji stProductGroup opartej na licencji (Open License SOTE) Otwarta Licencja SOTE.
|
||||
* Nie zmieniaj tego pliku, jeśli chcesz korzystać z automatycznych aktualizacji oprogramowania.
|
||||
* Jeśli chcesz wprowadzać swoje modyfikacje do programu, zapoznaj się z dokumentacją, jak zmieniać
|
||||
* oprogramowanie bez zmiany kodu bazowego http://www.sote.pl/modifications
|
||||
*
|
||||
* @package stProductGroup
|
||||
* @subpackage actions
|
||||
* @copyright SOTE (www.sote.pl)
|
||||
* @license http://www.sote.pl/license/open (Open License SOTE) Otwarta Licencja SOTE
|
||||
* @version $Id: components.class.php 6385 2010-07-13 13:12:38Z krzysiek $
|
||||
* @author Krzysztof Bebło <krzysztof.beblo@sote.pl>
|
||||
*/
|
||||
|
||||
/**
|
||||
* Komponenty stProductGroup
|
||||
*
|
||||
* @author Krzysztof Bebło <krzysztof.beblo@sote.pl>
|
||||
*
|
||||
* @package stProductGroup
|
||||
* @subpackage actions
|
||||
*/
|
||||
class stProductGroupComponents extends autoStProductGroupComponents
|
||||
{
|
||||
/**
|
||||
* Dostarcza tablicę dla wyboru domyślnych wartości grup strony
|
||||
*/
|
||||
public function executeDefaultProductGroup()
|
||||
{
|
||||
$i18n = sfContext::getInstance()->getI18N();
|
||||
|
||||
$configs=array(
|
||||
0=>"default_product_group.yml",
|
||||
1=>"user_product_group.yml"
|
||||
);
|
||||
|
||||
foreach ($configs as $config_id => $config_name){
|
||||
|
||||
// pobiera wartości domyślne dla grup produktu z pliku konfiguracyjnego
|
||||
$fileymlRoot = sfConfig::get('sf_app_module_dir'). DIRECTORY_SEPARATOR. 'stProductGroup' . DIRECTORY_SEPARATOR . sfConfig::get('sf_config_dir_name') . DIRECTORY_SEPARATOR . $config_name;
|
||||
|
||||
$yml = sfYaml::load($fileymlRoot);
|
||||
|
||||
if ($config_id==0){
|
||||
|
||||
$default_product_group = $yml['product_group'];
|
||||
|
||||
}elseif(isset($yml['product_group'])){
|
||||
|
||||
$user_product_group = $yml['product_group'];
|
||||
|
||||
}else{
|
||||
|
||||
$user_product_group = array();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($default_product_group as $system_name=>$name){
|
||||
|
||||
$default_product_group[$system_name] = $i18n->__($name);
|
||||
|
||||
}
|
||||
|
||||
$default_product_group = array_merge($default_product_group,$user_product_group);
|
||||
|
||||
$chosen_default_product_group = $this->getChosenDefaultProductGroup($this->getRequestParameter("id"));
|
||||
|
||||
$this->default_product_group = (array_diff_key($default_product_group, $chosen_default_product_group));
|
||||
}
|
||||
|
||||
/**
|
||||
* Pobiera już wybrane wartości domyślne
|
||||
*
|
||||
* @param integer id edytowanej strony $id
|
||||
* @return array tablicę z wybranymi już wcześniej wartościami
|
||||
*/
|
||||
private function getChosenDefaultProductGroup($id)
|
||||
{
|
||||
$c = new Criteria();
|
||||
if ($id)
|
||||
{
|
||||
$c->add(ProductGroupPeer::ID, $id, Criteria::NOT_EQUAL);
|
||||
}
|
||||
$product_groups = ProductGroupPeer::doSelect($c);
|
||||
$chosen_default_product_group=array();
|
||||
foreach ($product_groups as $product_group)
|
||||
{
|
||||
if($product_group->getProductGroup())
|
||||
{
|
||||
if ($product_group->getProductGroup() != 'NONE')
|
||||
{
|
||||
array_push($chosen_default_product_group,$product_group->getProductGroup());
|
||||
}
|
||||
}
|
||||
}
|
||||
$chosen_default_product_group=array_flip($chosen_default_product_group);
|
||||
return $chosen_default_product_group;
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
22
apps/backend/modules/stProductGroup/config/config.php
Normal file
22
apps/backend/modules/stProductGroup/config/config.php
Normal file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
/**
|
||||
* SOTESHOP/stProductGroup
|
||||
*
|
||||
* Ten plik należy do aplikacji stProductGroup opartej na licencji (Open License SOTE) Otwarta Licencja SOTE.
|
||||
* Nie zmieniaj tego pliku, jeśli chcesz korzystać z automatycznych aktualizacji oprogramowania.
|
||||
* Jeśli chcesz wprowadzać swoje modyfikacje do programu, zapoznaj się z dokumentacją, jak zmieniać
|
||||
* oprogramowanie bez zmiany kodu bazowego http://www.sote.pl/modifications
|
||||
*
|
||||
* @package stProductGroup
|
||||
* @subpackage configs
|
||||
* @copyright SOTE (www.sote.pl)
|
||||
* @license http://www.sote.pl/license/open (Open License SOTE) Otwarta Licencja SOTE
|
||||
* @version $Id: config.php 445 2009-09-10 10:04:14Z pawel $
|
||||
* @author Krzysztof Beblo <krzysztof.beblo@sote.pl>
|
||||
*/
|
||||
|
||||
/**
|
||||
* Dodawanie routingów
|
||||
*/
|
||||
stPluginHelper::addRouting('stProductGroup', '/product_group/:action/*', 'stProductGroup', 'list', 'backend');
|
||||
stPluginHelper::addRouting('stGiftGroup', '/gift_group/:action/*', 'stGiftGroup', 'list', 'backend');
|
||||
@@ -0,0 +1,7 @@
|
||||
product_group:
|
||||
NONE: Brak
|
||||
PROMOTION: Promocje
|
||||
SALES: Wyprzedaż
|
||||
RECOMMEND: Polecamy
|
||||
MAIN_PAGE: Strona główna
|
||||
NEW: Nowości
|
||||
109
apps/backend/modules/stProductGroup/config/generator.yml
Normal file
109
apps/backend/modules/stProductGroup/config/generator.yml
Normal file
@@ -0,0 +1,109 @@
|
||||
generator:
|
||||
class: stAdminGenerator
|
||||
param:
|
||||
model_class: ProductGroup
|
||||
product_model_class: Product
|
||||
theme: simple
|
||||
custom_actions:
|
||||
list: [product]
|
||||
head:
|
||||
package: stProductGroup
|
||||
applications: [stProduct]
|
||||
documentation:
|
||||
pl: https://www.sote.pl/docs/grupy-produktow
|
||||
en: https://www.soteshop.com/docs/product_groups
|
||||
|
||||
list:
|
||||
menu:
|
||||
display: [list]
|
||||
fields:
|
||||
list: {name: Grupy, action: stProductGroup/list}
|
||||
|
||||
peer_method: doSelectWithI18n
|
||||
peer_count_method: doCountWithI18n
|
||||
title: Grupy
|
||||
description: Zarządzanie grupami produktów, konfiguracja ustawień.
|
||||
display: [=name]
|
||||
actions:
|
||||
_create: {name: Dodaj}
|
||||
object_actions:
|
||||
_edit: -
|
||||
_delete: -
|
||||
|
||||
edit:
|
||||
menu:
|
||||
display: [product]
|
||||
fields:
|
||||
product: {name: Przypisz produkty, action: stProductGroup/productList?product_group_id=%%id%%}
|
||||
title: Edycja podstawowa
|
||||
description: Zarządzanie grupami produktów, konfiguracja ustawień.
|
||||
display:
|
||||
"NONE": [name, ~default_product_group, _new_type, new_product_date, product_limit, show_header]
|
||||
"Etykieta": [_image]
|
||||
fields:
|
||||
default_product_group: {name: Typ}
|
||||
image: {name: Etykieta}
|
||||
new_type: {name: Wybierz sposób wyświetlania nowości, params: disabled=false}
|
||||
new_product_date: {name: Produkty są w nowościach od, type: input_date_tag, params: disabled=false rich=true withtime=true}
|
||||
name: {name: Nazwa, type: input_tag, params: size=50, required: true}
|
||||
product_limit: {name: Ilość produktów wyświetlanych, params: size=3, required: true}
|
||||
show_header: {name: Pokaż nazwę grupy}
|
||||
actions:
|
||||
_list: {name: Lista}
|
||||
_save: {name: Zapisz}
|
||||
_save_and_add: {name: Zapisz i dodaj}
|
||||
_delete: {name: Usuń}
|
||||
|
||||
product_list:
|
||||
use_stylesheet: [backend/stProductList.css]
|
||||
use_helper: [stProduct/stProduct, stDepository]
|
||||
forward_parameters: [product_group_id]
|
||||
filters:
|
||||
list_image: {partial: filter_list_image, module: stProduct}
|
||||
display: [list_image, opt_name, code, opt_price_brutto, active, list_stock]
|
||||
fields:
|
||||
code: {name: Kod, width: 1%}
|
||||
opt_name: {name: Nazwa, params: truncate_text=true}
|
||||
list_image: {name: Zdjęcie, width: 1%, callback: list_product_image}
|
||||
opt_price_brutto: {name: Cena, width: 1%, callback: list_product_price, label_callback: list_product_price_label}
|
||||
active: {name: Aktywny, width: 1%, align: center}
|
||||
list_stock: {name: Magazyn, align: right, width: 1%, i18n: stDepositoryBackend, callback: list_stock, sort_field: product.stock}
|
||||
build_options:
|
||||
related_id: forward_parameters.product_group_id
|
||||
through_class: ProductGroupHasProduct
|
||||
menu: {use: edit.menu}
|
||||
title: Przypisz produkty
|
||||
description: Zarządzanie grupami produktów, konfiguracja ustawień.
|
||||
object_actions: []
|
||||
actions: []
|
||||
|
||||
config:
|
||||
title: Konfiguracja
|
||||
description: Zarządzanie grupami produktów, konfiguracja ustawień.
|
||||
display:
|
||||
"NONE": [limitation]
|
||||
"Produkty w grupie strona główna": [sort_main, sort_asc_desc]
|
||||
"Etykieta": [label_link, label_count]
|
||||
fields:
|
||||
limitation: {name: Ogranicz produkty w grupie do wyświetlanej kategorii, checked: false, type: checkbox}
|
||||
sort_main:
|
||||
name: Sortowanie produktów na stronie głównej
|
||||
type: select
|
||||
display: [option1, option4]
|
||||
options:
|
||||
option1: {name: moja kolejność, value: my_sort}
|
||||
option4: {name: losowo, value: randomize}
|
||||
selected: option1
|
||||
sort_asc_desc:
|
||||
name: Sortuj
|
||||
type: select
|
||||
display: [option1, option2]
|
||||
options:
|
||||
option1: {name: rosnąco, value: asc}
|
||||
option2: {name: malejąco, value: desc}
|
||||
selected: option1
|
||||
label_count: {name: Ilość wyświetlanych etykiet na produkcie, params: size=2}
|
||||
label_link: {name: Link etykiety odsyła do grup produktu, checked: false, type: checkbox}
|
||||
actions:
|
||||
_save: {name: Zapisz}
|
||||
|
||||
2
apps/backend/modules/stProductGroup/config/security.yml
Normal file
2
apps/backend/modules/stProductGroup/config/security.yml
Normal file
@@ -0,0 +1,2 @@
|
||||
soap:
|
||||
is_secure: off
|
||||
@@ -0,0 +1,2 @@
|
||||
product_group:
|
||||
POLECANE: Produkty polecane 1
|
||||
@@ -0,0 +1,5 @@
|
||||
<?php
|
||||
|
||||
class stProductGroupWebApi extends autoStProductGroupWebApi
|
||||
{
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
<?php
|
||||
|
||||
class stProductGroupBreadcrumbsBuilder extends autoStProductGroupBreadcrumbsBuilder
|
||||
{
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
<?php echo select_tag('product_group[default_product_group]', options_for_select($default_product_group,$product_group->getProductGroup()));?>
|
||||
@@ -0,0 +1,4 @@
|
||||
<?php echo select_tag('filters[list_assigned]', options_for_select(array(1 => __('tak'), 0 => __('nie')), isset($filters['list_assigned']) ? $filters['list_assigned'] : null, array (
|
||||
'include_custom' => __("---"),
|
||||
)), array (
|
||||
)) ?>
|
||||
144
apps/backend/modules/stProductGroup/templates/_image.php
Normal file
144
apps/backend/modules/stProductGroup/templates/_image.php
Normal file
@@ -0,0 +1,144 @@
|
||||
<?php use_stylesheet('backend/stProductGroup.css');?>
|
||||
|
||||
<script type="text/javascript">
|
||||
document.getElementById('product_group_default_product_group').onchange = function(){
|
||||
if (this.value == 'NEW') {
|
||||
<?php if ($product_group->getCulture()=="pl_PL"):?>
|
||||
document.getElementById('sote_labels_pl').style.display = "block";
|
||||
document.getElementById('sote_labels_en').style.display = "none";
|
||||
<?php elseif($product_group->getCulture()=="en_US"):?>
|
||||
document.getElementById('sote_labels_pl').style.display = "none";
|
||||
document.getElementById('sote_labels_en').style.display = "block";
|
||||
<?php endif;?>
|
||||
} else {
|
||||
document.getElementById('sote_labels_pl').style.display = "none";
|
||||
document.getElementById('sote_labels_en').style.display = "none";
|
||||
document.getElementById('product_group_label_none').checked=true;
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<?php
|
||||
if ($product_group->getProductGroup() == "NEW")
|
||||
{
|
||||
if ($product_group->getCulture()=="pl_PL")
|
||||
{
|
||||
$display_labels_en = "display:none";
|
||||
$display_labels_pl = "display:block";
|
||||
}
|
||||
elseif($product_group->getCulture()=="en_US")
|
||||
{
|
||||
$display_labels_en = "display:block";
|
||||
$display_labels_pl = "display:none";
|
||||
}else{
|
||||
$display_labels_en = "display:none";
|
||||
$display_labels_pl = "display:none";
|
||||
}
|
||||
}else{
|
||||
$display_labels_en = "display:none";
|
||||
$display_labels_pl = "display:none";
|
||||
}
|
||||
?>
|
||||
|
||||
|
||||
<div class="pg_none">
|
||||
<?php if (!$product_group->getLabel() || $product_group->getLabel()=='none'):?>
|
||||
<?php echo radiobutton_tag('product_group[label]', 'none', true) ?><?php echo __('Brak');?>
|
||||
<?php else: ?>
|
||||
<?php echo radiobutton_tag('product_group[label]', 'none', false) ?><?php echo __('Brak');?>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
|
||||
<div id="sote_labels_pl" class="pg_star" style="<?php echo $display_labels_pl;?>">
|
||||
<?php if ($product_group->getLabel()=='new_blue_pl.png'):?>
|
||||
<?php echo radiobutton_tag('product_group[label]', 'new_blue_pl.png', true) ?>
|
||||
<?php else: ?>
|
||||
<?php echo radiobutton_tag('product_group[label]', 'new_blue_pl.png', false) ?>
|
||||
<?php endif;?>
|
||||
<img src="/uploads/product_group/new_blue_pl.png" width="90" height="25" alt="" />
|
||||
|
||||
<?php if ($product_group->getLabel()=='new_green_pl.png'):?>
|
||||
<?php echo radiobutton_tag('product_group[label]', 'new_green_pl.png', true) ?>
|
||||
<?php else: ?>
|
||||
<?php echo radiobutton_tag('product_group[label]', 'new_green_pl.png', false) ?>
|
||||
<?php endif;?>
|
||||
<img src="/uploads/product_group/new_green_pl.png" width="90" height="25" alt="" />
|
||||
|
||||
<?php if ($product_group->getLabel()=='new_red_pl.png'):?>
|
||||
<?php echo radiobutton_tag('product_group[label]', 'new_red_pl.png', true) ?>
|
||||
<?php else: ?>
|
||||
<?php echo radiobutton_tag('product_group[label]', 'new_red_pl.png', false) ?>
|
||||
<?php endif;?>
|
||||
<img src="/uploads/product_group/new_red_pl.png" width="90" height="25" alt="" />
|
||||
|
||||
<?php if ($product_group->getLabel()=='new_yellow_pl.png'):?>
|
||||
<?php echo radiobutton_tag('product_group[label]', 'new_yellow_pl.png', true) ?>
|
||||
<?php else: ?>
|
||||
<?php echo radiobutton_tag('product_group[label]', 'new_yellow_pl.png', false) ?>
|
||||
<?php endif;?>
|
||||
<img src="/uploads/product_group/new_yellow_pl.png" width="90" height="25" alt="" />
|
||||
</div>
|
||||
|
||||
<div id="sote_labels_en" class="pg_star" style="<?php echo $display_labels_en;?>">
|
||||
<?php if ($product_group->getLabel()=='new_blue_en.png'):?>
|
||||
<?php echo radiobutton_tag('product_group[label]', 'new_blue_en.png', true) ?>
|
||||
<?php else: ?>
|
||||
<?php echo radiobutton_tag('product_group[label]', 'new_blue_en.png', false) ?>
|
||||
<?php endif;?>
|
||||
<img src="/uploads/product_group/new_blue_en.png" width="75" height="25" alt="" />
|
||||
|
||||
<?php if ($product_group->getLabel()=='new_green_en.png'):?>
|
||||
<?php echo radiobutton_tag('product_group[label]', 'new_green_en.png', true) ?>
|
||||
<?php else: ?>
|
||||
<?php echo radiobutton_tag('product_group[label]', 'new_green_en.png', false) ?>
|
||||
<?php endif;?>
|
||||
<img src="/uploads/product_group/new_green_en.png" width="75" height="25" alt="" />
|
||||
|
||||
<?php if ($product_group->getLabel()=='new_red_en.png'):?>
|
||||
<?php echo radiobutton_tag('product_group[label]', 'new_red_en.png', true) ?>
|
||||
<?php else: ?>
|
||||
<?php echo radiobutton_tag('product_group[label]', 'new_red_en.png', false) ?>
|
||||
<?php endif;?>
|
||||
<img src="/uploads/product_group/new_red_en.png" width="75" height="25" alt="" />
|
||||
|
||||
<?php if ($product_group->getLabel()=='new_yellow_en.png'):?>
|
||||
<?php echo radiobutton_tag('product_group[label]', 'new_yellow_en.png', true) ?>
|
||||
<?php else: ?>
|
||||
<?php echo radiobutton_tag('product_group[label]', 'new_yellow_en.png', false) ?>
|
||||
<?php endif;?>
|
||||
<img src="/uploads/product_group/new_yellow_en.png" width="75" height="25" alt="" />
|
||||
</div>
|
||||
|
||||
|
||||
<div class="pg_my_image">
|
||||
<div class="desc_label">
|
||||
<?php if ($product_group->getLabel()=='my_image'):?>
|
||||
<?php echo radiobutton_tag('product_group[label]', 'my_image', true) ?><?php echo __('Własny obrazek');?>
|
||||
<?php else: ?>
|
||||
<?php echo radiobutton_tag('product_group[label]', 'my_image', false) ?><?php echo __('Własny obrazek');?>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
|
||||
<?php if ($product_group->getImage()): ?>
|
||||
<div>
|
||||
<img src="/uploads/product_group/<?php echo $product_group->getImage();?>" />
|
||||
</div>
|
||||
<div class="clear" /></div>
|
||||
<?php endif; ?>
|
||||
|
||||
</div>
|
||||
<div style="clear: both;" /></div>
|
||||
|
||||
<div style="padding-top: 5px;"><?php echo input_file_tag('product_group[image]') ?></div>
|
||||
<?php if ($product_group->getImage()): ?>
|
||||
<p><?php echo checkbox_tag('product_group[delete_image]', 1, false) ?> <?php echo __('usuń obrazek') ?></p>
|
||||
|
||||
<script type="text/javascript">
|
||||
$('product_group_delete_image').observe('click', function ()
|
||||
{
|
||||
var product_group_image = $('product_group_image');
|
||||
|
||||
product_group_image[this.checked ? 'disable' : 'enable']();
|
||||
});
|
||||
</script>
|
||||
<?php endif; ?>
|
||||
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
$c = new Criteria();
|
||||
$c->add(ProductGroupHasProductPeer::PRODUCT_GROUP_ID, $forward_parameters['product_group_id']);
|
||||
$c->add(ProductGroupHasProductPeer::PRODUCT_ID, $product->getId());
|
||||
if (ProductGroupHasProductPeer::doCount($c)):
|
||||
?>
|
||||
<?php echo image_tag(sfConfig::get('sf_admin_web_dir').'/images/tick.png') ?>
|
||||
<?php else: ?>
|
||||
-
|
||||
<?php endif ?>
|
||||
@@ -0,0 +1,14 @@
|
||||
<?php
|
||||
/**
|
||||
* Szablon dla partial'a _list_price
|
||||
*
|
||||
* @package stProduct
|
||||
* @author Marcin Butlak <marcin.butlak@sote.pl>
|
||||
* @copyright SOTE
|
||||
* @license SOTE
|
||||
* @version $Id: _list_price.php 617 2009-04-09 13:02:31Z michal $
|
||||
*/
|
||||
?>
|
||||
|
||||
<?php use_helper('stCurrency') ?>
|
||||
<?php echo st_back_price($product->getPriceBrutto(), true,true); ?>
|
||||
21
apps/backend/modules/stProductGroup/templates/_new_type.php
Normal file
21
apps/backend/modules/stProductGroup/templates/_new_type.php
Normal file
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
/**
|
||||
* @var ProductGroup $product_group
|
||||
*/
|
||||
echo select_tag($name, options_for_select([
|
||||
'manual' => __('przypisane produkty'),
|
||||
'date' => __('po dacie dodania')
|
||||
], $product_group->getNewType()));
|
||||
?>
|
||||
|
||||
<script>
|
||||
jQuery(function($) {
|
||||
$('#<?php echo get_id_from_name($name) ?>').change(function() {
|
||||
if ($(this).val() != 'date') {
|
||||
$('.row_new_product_date').hide();
|
||||
} else {
|
||||
$('.row_new_product_date').show();
|
||||
}
|
||||
}).change();
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,15 @@
|
||||
<?php $product_group = $product_group_has_positioning->getProductGroup();?>
|
||||
|
||||
<?php echo input_tag('product_group_has_positioning[product_group_url]', $product_group->getFriendlyUrl(), array('size' => '40')) ?>
|
||||
|
||||
<?php list($culture) = explode('_', $product_group->getCulture()); ?>
|
||||
|
||||
<p>
|
||||
<?php echo st_link_to(null, 'stProduct/frontendGroupList?url=' . $product_group->getFriendlyUrl(), array(
|
||||
'absolute' => true,
|
||||
'for_app' => 'frontend',
|
||||
'for_lang' => $culture,
|
||||
'no_script_name' => true,
|
||||
'class' => 'st_admin_external_link',
|
||||
'target' => '_blank')) ?>
|
||||
</p>
|
||||
@@ -0,0 +1,3 @@
|
||||
<?php use_helper('stProgressBar'); ?>
|
||||
<?php echo progress_bar('stProductGroup_optimize', 'stProductGroupOptimize', 'updateOptimize', ProductGroupHasProductPeer::doCount(new Criteria())); ?>
|
||||
|
||||
17
apps/backend/modules/stProductGroup/validate/edit.yml
Normal file
17
apps/backend/modules/stProductGroup/validate/edit.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
fields:
|
||||
product_group{name}:
|
||||
required:
|
||||
msg: Podaj nazwę grupy
|
||||
product_group{product_limit}:
|
||||
required:
|
||||
msg: Podaj liczbę wyświetlanych produktów w grupie
|
||||
sfNumberValidator:
|
||||
max: 36
|
||||
max_error: Nie możesz wyświetlić w grupach więcej niż 36 produktów.
|
||||
type: integer
|
||||
type_error: Podaj liczbę całkowitą
|
||||
nan_error: Podaj liczbę całkowitą
|
||||
product_group{image}:
|
||||
file: True
|
||||
stAssetFileValidator:
|
||||
mime_types: "@web_images"
|
||||
@@ -0,0 +1,18 @@
|
||||
fields:
|
||||
product_group_has_positioning{title}:
|
||||
sfStringValidator:
|
||||
max: 255
|
||||
max_error: Tytuł strony jest niepoprawny. Maksymalna długość to 255 znaków.
|
||||
product_group_has_positioning{keywords}:
|
||||
sfStringValidator:
|
||||
max: 255
|
||||
max_error: Słowa kluczowe są niepoprawne. Maksymalna długość to 255 znaków.
|
||||
product_group_has_positioning{description}:
|
||||
sfStringValidator:
|
||||
max: 65000
|
||||
max_error: Opis strony jest niepoprawny. Maksymalna długość to 65000 znaków.
|
||||
product_group_has_positioning{product_group_url}:
|
||||
required:
|
||||
msg: Wprowadź nazwę dla przyjaznego linku
|
||||
stPropelSeoUrlValidator:
|
||||
auto_fillin_field: "product_group_has_positioning[product_group_url]"
|
||||
Reference in New Issue
Block a user