first commit

This commit is contained in:
2025-03-12 17:06:23 +01:00
commit 2241f7131f
13185 changed files with 1692479 additions and 0 deletions

View File

@@ -0,0 +1,118 @@
<?php
class appOnlineCodesBackendActions extends autoAppOnlineCodesBackendActions
{
/**
* Walidacja zapisy plików.
*/
public function validateFileEdit()
{
/**
* @var sfWebRequest $request
*/
$request = $this->getRequest();
if ($request->getMethod() == sfRequest::POST)
{
$i18n = $this->getContext()->getI18N();
$file = $request->getFile('online_files[file]');
var_export($file);
if (!$request->getParameter('online_files[name]'))
{
$request->setError('online_files{name}', $i18n->__('Proszę uzupełnić pole.'));
}
$fileValidator = new sfFileValidator();
$fileValidator->initialize($this->getContext(), array('required' => !$request->getParameter('id')));
if (!$fileValidator->execute($file, $error))
{
$request->setError('online_files{filename}', $error);
}
elseif (isset($file['name']) && !empty($file['name']))
{
$c = new Criteria();
$c->add(OnlineFilesPeer::FILENAME, $file['name']);
$c->add(OnlineFilesPeer::PRODUCT_ID, $request->getParameter('product_id'));
if (OnlineFilesPeer::doCount($c))
{
$request->setError('online_files{filename}', $i18n->__('Podany plik jest już przypisany do produktu.'));
}
}
}
return !$request->hasErrors();
}
/**
* Akcja do pobirania pliku w panelu.
*/
public function executeDownload()
{
$id = $this->getRequestParameter('id');
$onlineFile = OnlineFilesPeer::retrieveByPK($id);
if (null !== $onlineFile)
{
$file = sfConfig::get('sf_data_dir') . '/online-files/' . $onlineFile->getProductId() . '/' . $onlineFile->getFilename();
$handle = fopen($file, 'rb');
if ($handle)
{
$this->setLayout(false);
$response = $this->getContext()->getResponse();
$response->setContentType("application/octet-stream");
$response->setHttpHeader('Content-Disposition', 'attachment; filename="' . $onlineFile->getFilename() . '"');
$response->sendHttpHeaders();
while (!feof($handle))
{
echo fread($handle, 8192);
ob_flush();
flush();
}
fclose($handle);
}
else
{
return $this->forward404();
}
}
else
{
return $this->forward404();
}
throw new sfStopException();
}
protected function updateFileOnlineFilesFromRequest()
{
parent::updateFileOnlineFilesFromRequest();
/**
* @var sfWebRequest $request
*/
$request = $this->getRequest();
if ($request->getFileError('online_files[file]') == UPLOAD_ERR_OK)
{
$filepath = $this->online_files->getFilePath();
$this->online_files->setFilename($request->getFileName('online_files[file]'));
$this->online_files->setFilesize($request->getFileSize('online_files[file]'));
if ($request->moveFile('online_files[file]', $this->online_files->getFilePath()) && !$this->online_files->isNew())
{
unlink($filepath);
}
}
}
}

View File

@@ -0,0 +1,5 @@
<?php
class appOnlineCodesBackendComponents extends autoAppOnlineCodesBackendComponents
{
}

View File

@@ -0,0 +1,45 @@
generator:
class: stAdminGenerator
param:
model_class: OnlineCodes
theme: simple
label: "Kody online"
route: "@appOnlineCodesBackend"
icon: "stProduct"
list:
title: Kody online
display: [name, code, usage_limit, used]
fields:
name: {name: Nazwa}
code: {name: Kod}
usage_limit: {name: Limit użyć}
used: {name: Użyty}
forward_parameters: [product_id, category_id]
build_options:
related_id: forward_parameters.product_id
related_class: Product
actions:
_create: {name: Dodaj}
object_actions:
_edit: -
_delete: -
edit:
display:
"NONE": [name, code, usage_limit, used]
fields:
name: {name: Nazwa}
code: {name: Kod}
usage_limit: {name: Limit użyć, help: Wartość 0 oznacza brak limitu.}
used: {name: Użyty}
forward_parameters: [product_id, category_id]
build_options:
related_id: forward_parameters.product_id
related_class: Product
actions:
_delete: {name: Usuń}
_save: {name: Zapisz}
_save_and_add: {name: Zapisz i dodaj nowy}

View File

@@ -0,0 +1,32 @@
<?php
stAdminGeneratorHelper::generate('stProduct');
class appOnlineCodesBackendBreadcrumbsBuilder extends autoAppOnlineCodesBackendBreadcrumbsBuilder
{
/**
* Builder "okruszków chleba" modułu stProduct
*
* @var stProductBreadcrumbsBuilder
*/
private $productBreadcrumbsBuilder;
public function initialize()
{
parent::initialize();
$this->productBreadcrumbsBuilder = new stProductBreadcrumbsBuilder($this->context, $this->breadcrumbs, $this->relatedObject, $this->forwardParameters);
}
public function getDefaultBreadcrumbs()
{
return $this->productBreadcrumbsBuilder->getEditBreadcrumbs($this->relatedObject);
}
public function getEditBreadcrumbs(OnlineCodes $online_codes)
{
$this->getDefaultBreadcrumbs()->add($this->appTitle, $this->appRoute . '?product_id=' . $this->forwardParameters['product_id']);
return parent::getEditBreadcrumbs($online_codes);
}
}

View File

@@ -0,0 +1,3 @@
<?php
echo st_get_partial('stProduct/header', array('related_object' => $related_object, 'title' => $title, 'forward_parameters' => $forward_parameters));

View File

@@ -0,0 +1,3 @@
<?php
echo st_get_partial('stProduct/edit_menu', array('related_object' => $related_object, 'forward_parameters' => $forward_parameters));

View File

@@ -0,0 +1,4 @@
fields:
online_codes{code}:
required:
msg: Proszę uzupełnić pole.