Page 1 of 1

Nelze nevybrat Stav skladu (produkt >/= 0) - nezobrazuje se aktuální hodnota skladu

Posted: 30 May 2019, 14:11
by johnyboom
Verze Joomla 3.9.6; PhocaCart 3.2.1; PHP 5.6

Pokud na produktu v "Možnosti skladu" zadám "Stav skladu (produkt > 0)" nebo "Stav skladu (produkt = 0)" na "- Vybrat ze skladu -" (COM_PHOCACART_SELECT_STOCK_STATUS), tak se při uložení atomaticky nastaví defaultní hodnoty (viz JFormFieldPhocaStockstatus).

Potřebuji vypsat aktuální hodnotu skladu místo "In stock" a "Out of stock" a jediný způsob, na který jsem přišel, je, když jsou nastaveny tyto hodnoty v databázi na 0 (viz adm/libraries/phocacart/stock/stock.php:82,101). Nebo lze toho docílit jiným způsobem?

Re: Nelze nevybrat Stav skladu (produkt >/= 0) - nezobrazuje se aktuální hodnota skladu

Posted: 30 May 2019, 15:00
by Jan
Ahoj, bude to trochu složitější, ale zkus následující úpravy (když to bude Ok, pak to vložím do další verze):


administrator\components\com_phocacart\models\fields\phocastockstatus.php řádek cca 28 zakomentovat:

Code: Select all

		// DEFAULT VALUES
	/*	if ($man == 'a' && $this->value == 0) {
			$this->value = 2; // set default value for products in stock
		} else if ($man == 'n' && $this->value == 0) {
			$this->value = 1;// set default value when there is no product in stock
		} */
a řádek cca 41
Z:

Code: Select all

array_unshift($data, JHtml::_('select.option', '', '- '.JText::_('COM_PHOCACART_SELECT_STOCK_STATUS').' -', 'value', 'text'));
NA:

Code: Select all

array_unshift($data, JHtml::_('select.option', '0', '- '.JText::_('COM_PHOCACART_SELECT_STOCK_STATUS').' -', 'value', 'text'));
Tím pádem se výchozí hodnota pro ty dva parametry změní na nulu, tím pádem se místo statusů mohou zobrazovat čísla


Ovšem, abychom mohli zobrazit číslo 0 (NULA), musí se udělat další úpravy:
components/com_phocacart/views/item/tmpl/default.php řádek cca 244
Z:

Code: Select all

if($this->t['stock_status']['stock_status'] || $this->t['stock_status']['stock_count'] ) {
NA:

Code: Select all

if($this->t['stock_status']['stock_status'] || $this->t['stock_status']['stock_count'] !== false) {
Zobrazí se i nula

Ale musí se ještě podobně upravit i:
administrator/components/com_phocacart/libraries/phocacart/stock/stock.php řádek cca 170
Z:

Code: Select all

if ($stockStatus['stock_status'] && $stockStatus['stock_count']) {
			$o .= $stockStatus['stock_status'] . ' ('.$stockStatus['stock_count'].')';
		} else if (!$stockStatus['stock_status'] && $stockStatus['stock_count']) {
			$o .= $stockStatus['stock_count'];
		} else if ($stockStatus['stock_status'] && !$stockStatus['stock_count']) {
			$o .= $stockStatus['stock_status'];
		}
NA:

Code: Select all

if ($stockStatus['stock_status'] && $stockStatus['stock_count'] !== false) {
			$o .= $stockStatus['stock_status'] . ' ('.$stockStatus['stock_count'].')';
		} else if (!$stockStatus['stock_status'] && $stockStatus['stock_count'] !== false) {
			$o .= $stockStatus['stock_count'];
		} else if ($stockStatus['stock_status'] && !$stockStatus['stock_count'] === false) {
			$o .= $stockStatus['stock_status'];
		}

Zkus změnit a dej vědět, jestli je to OK

S tím, že při této editaci se pravděpodobně musí doplnit novej parametr a to - zobrazit pouze status - když někdo nebude chtít zobrazovat čísla

Tahle úprava je jen pro item view, takže zkoušet jen item view

Re: Nelze nevybrat Stav skladu (produkt >/= 0) - nezobrazuje se aktuální hodnota skladu

Posted: 31 May 2019, 00:12
by Jan
V přístí verzi to bude následovně:

1) status nebude nastaven, zobrazí se pouze stav na skladu:

Image

2) status bude nastaven:
Image

Image

3) status bude nastaven a zároveň bude nastaven parametr pro zobrazení hodnoty skladu ve statusu:
Image

Image

Re: Nelze nevybrat Stav skladu (produkt >/= 0) - nezobrazuje se aktuální hodnota skladu

Posted: 31 May 2019, 11:58
by johnyboom
Super funguje. A moc díky za bleskovou reakci ;)

Re: Nelze nevybrat Stav skladu (produkt >/= 0) - nezobrazuje se aktuální hodnota skladu

Posted: 31 May 2019, 17:33
by Jan
Ve verzi 3.2.2 přibyl nový parametr pro zobrazení skladu i ve statusu, viz:
https://www.phoca.cz/news/1036-phoca-ca ... 2-released

Vyzkoušej to prosím a dej mi vědět.

Díky.