Files
grzanieplus.pl/plugins/stPriceHistoryPlugin/lib/stPriceHistoryToken.php
2025-03-12 17:06:23 +01:00

60 lines
1.8 KiB
PHP

<?php
/**
* Klasa obsługuje tokeny wykonania dla historii.
* Zadaniem metod zawartych w tej klasie, jest rozpoznanie i zezwolenie na 1 wykonanie kodu dla danego produktu.
*/
class stPriceHistoryToken
{
public function __construct($product)
{
$this->product = $product;
}
/**
* Generuj token produktu.
* @return int INT token wywołania - ID produktu jako generator tokena
*/
public function getExecuteToken()
{
// do zablokowania wielokrotnego wywolania dla 1 produktu
if ($this->product->getId() > 0) {
// product id > 0 dla edycji, dla dodania nie ma go
$token = $this->product->getCode();
} else {
$token = 0;
}
return $token;
}
/**
* Metoda sprawdz, czy dane zadanie jest wywołane tylko 1 raz. Np. toda save() - która wywołuj ten kod
* wykonywana jest 4x, zabezpieczemnie ogranicza wykonanie kodu do 1 wywołania -> rel: STX-844
* @param int $token
* @return bool true - można wykonać zadanie, jest to pierwsze wywyłanie, false - nie można, kolejne wywołanie
*/
public function allowExecuteToken($token)
{
global $product_price_history_execute_tokens;
if (! is_array($product_price_history_execute_tokens)) $product_price_history_execute_tokens = array();
if (! array_key_exists($token, $product_price_history_execute_tokens)) {
return true;
} else {
return false;
}
}
/**
* Zapamiętaj wykonanie zadania z podanym tokenem
* @param $token int token ID produktu
* @return null
*/
public function saveExecuteToken($token)
{
global $product_price_history_execute_tokens;
$product_price_history_execute_tokens[$token] = true;
return NULL;
}
}