- ArticleRepository: SQL injection fix (addslashes→parameterized), DRY refactor topArticles/newsListArticles
- AttributeRepository: dead class_exists('\S') blocking cache/temp clear
- CategoryRepository: dead class_exists('\S') blocking SEO link generation (critical)
- BannerRepository: parameterize $today in SQL + null guard on query()
- BasketCalculator: null guard checkProductQuantityInStock + optional DI params
- PromotionRepository: null guard on $basket (production fatal)
- OrderRepository/ShopBasketController/ajax.php: explicit DI in BasketCalculator callers
614 tests, 1821 assertions (+4 new)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
85 KiB
Katalog klas i metod — autoload/
Wygenerowano: 2026-02-18 Łącznie: 96 klas, ~530+ metod
Spis treści
- Domain/ — Warstwa domenowa (29 klas)
- admin/ — Warstwa administracyjna (39 klas)
- front/ — Warstwa frontendowa (21 klas)
- Shared/ — Klasy współdzielone (7 klas)
1. Domain/ — Warstwa domenowa
Domain\Article\ArticleRepository ✅ REVIEWED
File: autoload/Domain/Article/ArticleRepository.php
Properties:
private $dbprivate const MAX_PER_PAGE = 100
Public Methods:
- ✅
public function __construct($db) - ✅
public function find(int $articleId): ?array— try/catch na brak kolumnyo(kompatybilność) - ✅
public function save(int $articleId, array $data, int $userId): int - ✅
public function archive(int $articleId): bool - ✅
public function restore(int $articleId): bool - ✅
public function deletePermanently(int $articleId): bool - ✅
public function listForAdmin(array $filters, string $sortColumn = 'date_add', string $sortDir = 'DESC', int $page = 1, int $perPage = 15): array - ✅
public function listArchivedForAdmin(array $filters, string $sortColumn = 'date_add', string $sortDir = 'DESC', int $page = 1, int $perPage = 15): array - ✅
public function saveGalleryOrder(int $articleId, string $order): bool - ✅
public function saveFilesOrder(int $articleId, string $order): bool - ✅
public function pagesSummaryForArticles(array $articleIds): array - ✅
public function updateImageAlt(int $imageId, string $imageAlt): bool - ✅
public function updateFileName(int $fileId, string $fileName): bool - ✅
public function markFileToDelete(int $fileId): bool - ✅
public function markImageToDelete(int $imageId): bool - ✅
public function deleteNonassignedFiles(): void - ✅
public function deleteNonassignedImages(): void - 🔧
public function articlesByDateAdd(string $dateStart, string $dateEnd, string $langId = 'pl'): array— naprawiono SQL injection (addslashes→parameterized), dodano parametr $langId - 🔧
public function articleDetailsFrontend(int $articleId, string $langId): ?array— select+foreach → get() (uproszczono) - 🔧
public function articlesIds(int $pageId, string $langId, int $limit, int $sortType, int $from): ?array— parametryzacja $langId - 🔧
public function pageArticlesCount(int $pageId, string $langId): int— parametryzacja $langId - ✅
public function pageArticles(array $page, string $langId, int $bs): array - ✅
public function news(int $pageId, int $limit, string $langId): ?array - ✅
public function articleNoindex(int $articleId, string $langId): bool - 🔧
public function topArticles(int $pageId, int $limit, string $langId): ?array— parametryzacja $langId + DRY via fetchArticlesByPage() - 🔧
public function newsListArticles(int $pageId, int $limit, string $langId): ?array— parametryzacja $langId + DRY via fetchArticlesByPage()
Private Methods:
- ✅
private function createArticle(array $data, int $userId): int - ✅
private function updateArticle(int $articleId, array $data, int $userId): int - ✅
private function buildArticleRow(array $data, int $userId, bool $isNew): array - ✅
private function buildLangRow($langId, array $data): array - ✅
private function applyGalleryOrderIfProvided(int $articleId, array $data): void - ✅
private function applyFilesOrderIfProvided(int $articleId, array $data): void - ✅
private function saveTranslations(int $articleId, array $data, bool $isNew): void - ✅
private function savePages(int $articleId, $pages, bool $isNew): void - ✅
private function assignTempFiles(int $articleId): void - ✅
private function assignTempImages(int $articleId): void - ✅
private function deleteMarkedImages(int $articleId): void - ✅
private function deleteMarkedFiles(int $articleId): void - ✅
private function maxPageOrder(): int - ✅
private function isCheckedValue($value): bool - ✅
private function appendDateRangeFilter(array &$where, array &$params, string $column, string $fromKey, string $toKey, array $filters): void - 🔧
private function fetchArticlesByPage(string $cachePrefix, int $pageId, int $limit, string $langId, string $orderBy): ?array— NOWA, wspólna logika topArticles/newsListArticles
Domain\Attribute\AttributeRepository ✅ REVIEWED
File: autoload/Domain/Attribute/AttributeRepository.php
Properties:
private $dbprivate ?string $defaultLangId = nullprivate const MAX_PER_PAGE = 100
Public Methods:
- ✅
public function __construct($db) - ✅
public function listForAdmin(array $filters, string $sortColumn = 'o', string $sortDir = 'ASC', int $page = 1, int $perPage = 15): array - ✅
public function findAttribute(int $attributeId): array - ✅
public function saveAttribute(array $data): ?int - ✅
public function deleteAttribute(int $attributeId): bool - ✅
public function findValues(int $attributeId): array - ✅
public function saveValues(int $attributeId, array $payload): bool - ✅
public function saveLegacyValues(int $attributeId, array $names, array $values, array $ids, $defaultValue, array $impactOnThePrice): ?int - ✅
public function valueDetails(int $valueId): array - ✅
public function getAttributeNameById(int $attributeId, ?string $langId = null): string - ✅
public function getAttributeValueById(int $valueId, ?string $langId = null): string— z cache - ✅
public function getAttributesListForCombinations(): array - ✅
public function frontAttributeDetails(int $attributeId, string $langId): array— z cache - ✅
public function frontValueDetails(int $valueId, string $langId): array— z cache - ✅
public function isValueDefault(int $valueId) - ✅
public function getAttributeOrder(int $attributeId) - ✅
public function getAttributeNameByValue(int $valueId, string $langId)— parametryzowane query
Private Methods:
- ✅
private function buildAdminWhere(array $filters): array - ✅
private function saveAttributeTranslations(int $attributeId, array $names): void - ✅
private function saveValueTranslations(int $valueId, array $translations): void - ✅
private function valueBelongsToAttribute(int $valueId, int $attributeId): bool - ✅
private function normalizeValueRows(array $rows): array - ✅
private function refreshCombinationPricesForValue(int $valueId, ?string $impactOnThePrice): void - ✅
private function toSwitchValue($value): int - ✅
private function toTypeValue($value): int - ✅
private function toNullableNumeric($value): ?string - ✅
private function defaultAttribute(): array - ✅
private function nextOrder(): int - ✅
private function defaultLanguageId(): string - ✅
private function clearFrontCache(int $id, string $type): void - 🔧
private function clearTempAndCache(): void— usunięto martwy checkclass_exists('\S') - ✅
private function normalizeDecimal(float $value, int $precision = 2): float
Domain\Banner\BannerRepository ✅ REVIEWED
File: autoload/Domain/Banner/BannerRepository.php
Properties:
private $dbprivate const MAX_PER_PAGE = 100
Public Methods:
- ✅
public function __construct($db) - ✅
public function find(int $bannerId): ?array— pobiera baner + tłumaczenia - ✅
public function delete(int $bannerId): bool - ✅
public function save(array $data)— insert/update, obsługuje nowy i legacy format - ✅
public function listForAdmin(array $filters, string $sortColumn = 'name', string $sortDir = 'ASC', int $page = 1, int $perPage = 15): array— z thumbnailami - 🔧
public function banners(string $langId): ?array— parametryzacja $today + null guard na query() - 🔧
public function mainBanner(string $langId): ?array— parametryzacja $today + null guard na query()
Private Methods:
- ✅
private function fetchThumbnailsByBannerIds(array $bannerIds): array— parametryzowane IN - ✅
private function saveTranslations(int $bannerId, array $src, array $url, array $html, array $text): void— legacy format - ✅
private function saveTranslationsFromArray(int $bannerId, array $translations): void— nowy format - ✅
private function upsertTranslation(int $bannerId, $langId, array $fields): void— count+insert/update
Domain\Basket\BasketCalculator ✅ REVIEWED
File: autoload/Domain/Basket/BasketCalculator.php
Properties: (brak — klasa statyczna)
Methods:
- ✅
public static function summaryWp($basket)— suma wag, is_array guard - ✅
public static function countProductsText($count)— polska pluralizacja - 🔧
public static function summaryPrice($basket, $coupon = null, $langId = null, $productRepo = null)— dodano opcjonalne DI params z fallbackiem do globals - ✅
public static function countProducts($basket)— suma ilości, is_array guard - ✅
public static function validateBasket($basket)— null guard - 🔧
public static function checkProductQuantityInStock($basket, bool $message = false)— dodano is_array guard (bug: foreach na null) - 🔧
public static function calculateBasketProductPrice(float $price_brutto_promo, float $price_brutto, $coupon, $basket_position, $productRepo = null)— dodano opcjonalny $productRepo z fallbackiem do globals
Domain\Cache\CacheRepository
File: autoload/Domain/Cache/CacheRepository.php
Properties:
private $db
Methods:
public function __construct($db)public function clearAll(): array
Domain\Category\CategoryRepository
File: autoload/Domain/Category/CategoryRepository.php
Properties:
private $dbprivate const MAX_PER_PAGE = 100
Methods:
public function __construct($db)public function listForAdmin(array $filters, string $sortColumn = 'id', string $sortDir = 'DESC', int $page = 1, int $perPage = 15): arraypublic function find(int $categoryId): arraypublic function save(array $data): ?intpublic function delete(int $categoryId): boolpublic function allForAdmin(bool $onlyActive = false): arraypublic function detailsForLanguage(int $categoryId, string $langId): ?arraypublic function categoryTree(string $langId): arraypublic function buildTreeRecursive(array $categories, $parentId, array $categoryLangs, int $depth = 0): arraypublic function categoryTreeFront(string $langId): arraypublic function categoryDetailsCached(int $categoryId, string $langId): arraypublic function categoryProductsCached(int $categoryId, string $langId, int $page = 1, string $sort = '', int $limit = 12, array $filters = []): arraypublic function getCategoryIdBySeoLink(string $seoLink, string $langId): intpublic function getCategorySeoLink(int $categoryId, string $langId): stringprivate function baseListSelect(): stringprivate function translationsMap(int $categoryId): arrayprivate function extractTranslations(array $data): arrayprivate function toSwitchValue($value): intprivate function defaultCategory(): arrayprivate function clearFrontCache(int $categoryId): voidprivate function saveSeoRedirects(int $categoryId, string $langId, string $newSeoLink, string $currentSeoLink): void
Domain\Client\ClientRepository
File: autoload/Domain/Client/ClientRepository.php
Properties:
private $dbprivate const MAX_PER_PAGE = 100
Methods:
public function __construct($db)public function listForAdmin(array $filters, string $sortColumn = 'name', string $sortDir = 'ASC', int $page = 1, int $perPage = 15): arraypublic function find(int $clientId): ?arraypublic function findByEmail(string $email): ?arraypublic function allActiveForAdmin(): arraypublic function ordersForClient(int $clientId, string $sortColumn = 'id', string $sortDir = 'DESC', int $page = 1, int $perPage = 15): arraypublic function frontRegister(array $data): arraypublic function frontLogin(string $email, string $password): ?arraypublic function frontResetPasswordRequest(string $email): boolpublic function frontResetPasswordConfirm(string $token, string $password): boolpublic function frontUpdateProfile(int $clientId, array $data): boolpublic function frontChangePassword(int $clientId, string $currentPassword, string $newPassword): arraypublic function delete(int $clientId): boolprivate function normalizeClient(array $client): array
Domain\Coupon\CouponRepository
File: autoload/Domain/Coupon/CouponRepository.php
Properties:
private $dbprivate const MAX_PER_PAGE = 100
Methods:
public function __construct($db)public function listForAdmin(array $filters, string $sortColumn = 'id', string $sortDir = 'DESC', int $page = 1, int $perPage = 15): arraypublic function find(int $couponId): ?arraypublic function save(array $data): ?intpublic function delete(int $couponId): boolpublic function findByCode(string $code): ?arraypublic function incrementUsageCount(int $couponId): voidpublic function validateCoupon(string $code): arrayprivate function toSwitchValue($value): int
Domain\Dashboard\DashboardRepository
File: autoload/Domain/Dashboard/DashboardRepository.php
Properties:
private $db
Methods:
public function __construct($db)public function countOrders(): intpublic function totalSales(): floatpublic function countClients(): intpublic function countProducts(): intpublic function recentOrdersForGrid(int $limit = 5): arraypublic function topSellingProducts(int $limit = 5): array
Domain\Dictionaries\DictionariesRepository
File: autoload/Domain/Dictionaries/DictionariesRepository.php
Properties:
private $dbprivate const MAX_PER_PAGE = 100
Methods:
public function __construct($db)public function listForAdmin(array $filters, string $sortColumn = 'id', string $sortDir = 'DESC', int $page = 1, int $perPage = 15): arraypublic function find(int $unitId): ?arraypublic function save(array $data): ?intpublic function delete(int $unitId): boolpublic function detailsForLanguage(int $unitId, string $langId): ?arraypublic function allForSelect(): arraypublic function getUnitNameCached(int $unitId, string $langId): stringprivate function baseListSelect(): stringprivate function translationsMap(int $unitId): arrayprivate function extractTranslations(array $data): array
Domain\Integrations\IntegrationsRepository
File: autoload/Domain/Integrations/IntegrationsRepository.php
Properties:
private $db
Methods:
public function __construct($db)public function apiloAuth(): arraypublic function apiloRefreshToken(string $refreshToken): arraypublic function apiloSyncOrders(string $accessToken, int $page = 1): arraypublic function apiloSyncProducts(string $accessToken, int $page = 1): arraypublic function apiloSendOrder(string $accessToken, array $orderData): arraypublic function apiloGetStatuses(string $accessToken): arraypublic function apiloSyncOrderStatuses(string $accessToken): arraypublic function apiloPostWaybill(string $accessToken, int $orderId, array $waybillData): arraypublic function getApiloSettings(): arraypublic function saveApiloSettings(array $data): boolpublic function shoppro_sync_products(string $token): arraypublic function shoppro_sync_orders(string $token): arraypublic function shoppro_sync_order_statuses(string $token): arraypublic function shoppro_mark_as_sent(string $token, int $orderId): arrayprivate function apiloRequest(string $method, string $url, string $accessToken, array $data = []): array
Domain\Languages\LanguagesRepository
File: autoload/Domain/Languages/LanguagesRepository.php
Properties:
private $db
Methods:
public function __construct($db)public function listForAdmin(array $filters = [], string $sortColumn = 'id', string $sortDir = 'ASC', int $page = 1, int $perPage = 50): arraypublic function find(int $langId): ?arraypublic function save(array $data): ?intpublic function delete(string $langId): boolpublic function languagesList(bool $onlyActive = false): arraypublic function activeLanguagesCount(): intpublic function defaultLanguage(): stringpublic function getLanguageName(string $langId): stringpublic function saveTranslation(string $langId, string $key, string $value): boolpublic function getTranslations(string $langId): arraypublic function langsFront(): arraypublic function translationsCached(string $langId): array
Domain\Layouts\LayoutsRepository
File: autoload/Domain/Layouts/LayoutsRepository.php
Properties:
private $dbprivate const MAX_PER_PAGE = 100
Methods:
public function __construct($db)public function listForAdmin(array $filters = [], string $sortColumn = 'id', string $sortDir = 'DESC', int $page = 1, int $perPage = 15): arraypublic function find(int $layoutId): ?arraypublic function save(array $data): ?intpublic function delete(int $layoutId): boolpublic function allForSelect(): arraypublic function getDefault(): ?arraypublic function resolveLayoutForProduct(int $productId): ?arraypublic function resolveLayoutForCategory(int $categoryId): ?arraypublic function resolveLayoutForPage(int $pageId): ?arraypublic function resolveLayoutForArticle(int $articleId): ?arraypublic function resolveLayout(?int $layoutId): ?arrayprivate function toSwitchValue($value): int
Domain\Newsletter\NewsletterPreviewRenderer
File: autoload/Domain/Newsletter/NewsletterPreviewRenderer.php
Properties:
private $db
Methods:
public function __construct($db)public function render(int $newsletterId): string
Domain\Newsletter\NewsletterRepository
File: autoload/Domain/Newsletter/NewsletterRepository.php
Properties:
private $dbprivate const MAX_PER_PAGE = 100
Methods:
public function __construct($db)public function listForAdmin(array $filters, string $sortColumn = 'id', string $sortDir = 'DESC', int $page = 1, int $perPage = 15): arraypublic function find(int $newsletterId): ?arraypublic function save(array $data): ?intpublic function delete(int $newsletterId): boolpublic function listSubscribersForAdmin(array $filters, string $sortColumn = 'id', string $sortDir = 'DESC', int $page = 1, int $perPage = 15): arraypublic function findSubscriber(int $subscriberId): ?arraypublic function saveSubscriber(array $data): ?intpublic function deleteSubscriber(int $subscriberId): boolpublic function sendNewsletter(int $newsletterId): arraypublic function saveSettings(array $data): boolpublic function getSettings(): arraypublic function subscribe(string $email): arraypublic function unsubscribe(string $email): array
Domain\Order\OrderAdminService
File: autoload/Domain/Order/OrderAdminService.php
Properties:
private $db
Methods:
public function __construct($db)public function getOrderDetails(int $orderId): ?arraypublic function saveOrder(array $data): ?intpublic function updateOrderStatus(int $orderId, int $statusId): boolpublic function deleteOrder(int $orderId): boolpublic function addProduct(int $orderId, int $productId, int $quantity, $permutationHash = null): boolpublic function removeProduct(int $orderId, int $orderProductId): boolpublic function updateProductQuantity(int $orderId, int $orderProductId, int $quantity): boolpublic function updateProductPrice(int $orderId, int $orderProductId, float $price): boolpublic function updateTransportCost(int $orderId, float $cost): boolpublic function generateInvoice(int $orderId): ?stringpublic function sendToApilo(int $orderId): arraypublic function apiloSyncStatus(int $orderId, string $accessToken): array
Domain\Order\OrderRepository
File: autoload/Domain/Order/OrderRepository.php
Properties:
private $dbprivate const MAX_PER_PAGE = 100
Methods:
public function __construct($db)public function listForAdmin(array $filters, string $sortColumn = 'id', string $sortDir = 'DESC', int $page = 1, int $perPage = 15): arraypublic function find(int $orderId): ?arraypublic function findByApiloId(string $apiloId): ?arraypublic function getOrderProducts(int $orderId): arraypublic function getOrderHistory(int $orderId): arraypublic function addHistoryEntry(int $orderId, string $message, ?int $statusId = null): voidpublic function getLastOrderNumber(): intpublic function generateOrderNumber(): stringpublic function createOrderFront(array $data): ?intpublic function updateOrderFromPayment(int $orderId, array $data): boolpublic function frontOrderList(int $clientId, int $page = 1, int $perPage = 10): arraypublic function frontOrderDetails(int $orderId, int $clientId): ?arraypublic function getOrdersForIntersection(): arraypublic function updateIntersection(): voidpublic function countOrdersToday(): intpublic function revenueToday(): floatpublic function countOrdersByStatus(int $statusId): intpublic function getOrderNotes(int $orderId): arraypublic function addOrderNote(int $orderId, string $note, ?int $userId = null): void
Domain\Pages\PagesRepository
File: autoload/Domain/Pages/PagesRepository.php
Properties:
private $dbprivate const MAX_PER_PAGE = 100
Methods:
public function __construct($db)public function listForAdmin(array $filters, string $sortColumn = 'id', string $sortDir = 'DESC', int $page = 1, int $perPage = 15): arraypublic function find(int $pageId): arraypublic function save(array $data): ?intpublic function delete(int $pageId): boolpublic function toggleStatus(int $pageId): boolpublic function detailsForLanguage(int $pageId, string $langId): ?arraypublic function menuItems(string $position, string $langId): arraypublic function allPagesForSelect(): arraypublic function allForMenu(): arraypublic function frontPageDetails(int $pageId, string $langId): arraypublic function frontPageDetailsBySeoLink(string $seoLink, string $langId): ?arraypublic function frontMenuItemsCached(string $position, string $langId): arrayprivate function baseListSelect(): stringprivate function translationsMap(int $pageId): arrayprivate function extractTranslations(array $data): arrayprivate function toSwitchValue($value): intprivate function defaultPage(): arrayprivate function clearFrontCache(int $pageId): voidprivate function saveSeoRedirects(int $pageId, string $langId, string $newSeoLink, string $currentSeoLink): void
Domain\PaymentMethod\PaymentMethodRepository
File: autoload/Domain/PaymentMethod/PaymentMethodRepository.php
Properties:
private $dbprivate const MAX_PER_PAGE = 100
Methods:
public function __construct($db)public function listForAdmin(array $filters = [], string $sortColumn = 'name', string $sortDir = 'ASC', int $page = 1, int $perPage = 15): arraypublic function find(int $paymentMethodId): ?arraypublic function save(array $data): ?intpublic function delete(int $paymentMethodId): boolpublic function allActive(): arraypublic function allForAdmin(): arraypublic function findActiveById(int $paymentMethodId): ?arraypublic function findActiveByIdCached(int $paymentMethodId)public function allActiveCached(): arrayprivate function normalizePaymentMethod(array $pm): arrayprivate function toSwitchValue($value): int
Domain\Producer\ProducerRepository
File: autoload/Domain/Producer/ProducerRepository.php
Properties:
private $dbprivate const MAX_PER_PAGE = 100
Methods:
public function __construct($db)public function listForAdmin(array $filters = [], string $sortColumn = 'id', string $sortDir = 'DESC', int $page = 1, int $perPage = 15): arraypublic function find(int $producerId): ?arraypublic function save(array $data): ?intpublic function delete(int $producerId): boolpublic function detailsForLanguage(int $producerId, string $langId): ?arraypublic function allForSelect(): arraypublic function allActiveFront(): arraypublic function producerDetailsCached(int $producerId, string $langId): ?arraypublic function producerProductsCached(int $producerId, string $langId, int $page = 1, int $limit = 12): arrayprivate function baseListSelect(): stringprivate function translationsMap(int $producerId): arrayprivate function extractTranslations(array $data): arrayprivate function toSwitchValue($value): int
Domain\Product\ProductRepository
File: autoload/Domain/Product/ProductRepository.php
Properties:
private $dbprivate const MAX_PER_PAGE = 100
Methods:
public function __construct($db)public function getQuantity(int $productId): ?intpublic function find(int $productId): ?arraypublic function listArchivedForAdmin(array $filters, string $sortColumn = 'id', string $sortDir = 'DESC', int $page = 1, int $perPage = 15): arraypublic function getPrice(int $productId): ?floatpublic function getName(int $productId, string $langId): ?stringpublic function updateQuantity(int $productId, int $quantity): boolpublic function unarchive(int $productId): boolpublic function archive(int $productId): boolpublic function allProductsForMassEdit(): arraypublic function getProductsByCategory(int $categoryId): arraypublic function applyDiscountPercent(int $productId, float $discountPercent): ?arraypublic function countProducts(?array $where = null): intpublic function listForAdmin(array $filters, string $sortColumn = 'id', string $sortDir = 'DESC', int $page = 1, int $perPage = 15): arraypublic function findForAdmin(int $productId): ?arraypublic function allProductsList(): arraypublic function productCategoriesText(int $productId): stringpublic function getParentId(int $productId): ?intpublic function productDefaultName(int $productId): ?stringpublic function saveProduct(array $d, ?int $userId = null): ?intpublic function delete(int $productId): boolpublic function duplicate(int $productId, bool $withCombinations = false): boolpublic function toggleStatus(int $productId): boolpublic function updatePriceBrutto(int $productId, $price): boolpublic function updatePriceBruttoPromo(int $productId, $price): boolpublic function updateCustomLabel(int $productId, string $label, $value): boolpublic function getCombinationsForTable(int $productId): arraypublic function getPermutations(int $productId): arraypublic function generateCombinations(int $productId, array $attributes): boolpublic function deleteCombination(int $combinationId): boolpublic function countCombinations(int $productId): intpublic function saveCombinationStock0Buy(int $productId, $value): boolpublic function saveCombinationSku(int $productId, $sku): boolpublic function saveCombinationQuantity(int $productId, $quantity): boolpublic function saveCombinationPrice(int $productId, $priceNetto): boolpublic function deleteImage(int $imageId): boolpublic function updateImageAlt(int $imageId, string $alt): boolpublic function saveImagesOrder(int $productId, string $order): boolpublic function deleteNonassignedImages(): voidpublic function deleteFile(int $fileId): boolpublic function updateFileName(int $fileId, string $name): boolpublic function deleteNonassignedFiles(): voidpublic function getProductImages(int $productId): arraypublic function saveXmlName(int $productId, string $xmlName, string $langId): boolpublic function customLabelSuggestions(string $customLabel, string $labelType): arraypublic function saveCustomLabel(int $productId, string $customLabel, string $labelType): boolpublic function generateEAN(string $number): stringpublic function generateGoogleFeedXml(): voidpublic function updateCombinationPricesFromBase(int $productId, $priceBrutto, $vat, $priceBruttoPromo): voidpublic function getSkuWithFallback(int $productId, bool $withParentFallback = false)public function getEanWithFallback(int $productId, bool $withParentFallback = false)public function isProductActiveCached(int $productId): intpublic function getMinimalPriceCached(int $productId, $priceBruttoPromo = null)public function productCategoriesFront(int $productId): arraypublic function getProductNameCached(int $productId, string $langId)public function getFirstImageCached(int $productId)public function getWeightCached(int $productId)public function promotedProductIdsCached(int $limit = 6): arraypublic function topProductIds(int $limit = 6): arraypublic function newProductIds(int $limit = 10): arraypublic function productDetailsFrontCached(int $productId, string $langId)public function getWarehouseMessageZero(int $productId, string $langId)public function getWarehouseMessageNonzero(int $productId, string $langId)public function findCustomFieldCached(int $customFieldId)public function findCached(int $productId, string $langId = null, string $permutationHash = null)public function isProductOnPromotion(int $productId): boolpublic function productSetsWhenAddToBasket(int $productId): stringpublic function addVisit(int $productId): voidpublic function getProductImg(int $productId)public function getProductUrl(int $productId): stringpublic function searchProductsByNameCount(string $query, string $langId): intpublic function getProductsIdByName(string $query, string $langId, int $limit, int $from): arraypublic function searchProductsByName(string $query, string $langId, int $page = 0): arraypublic function searchProductByNameAjax(string $query, string $langId): arraypublic function isStock0Buy(int $productId)public function getProductPermutationQuantityOptions(int $productId, $permutation)public function getProductIdByAttributes(int $parentId, array $attributes)public function getProductPermutationHash(int $productId)public function getProductAttributes($products)public function generateSkuCode(): stringpublic function productMeta(int $productId): arraypublic function generateSubtitleFromAttributes(string $permutationHash, string $langId = null): stringpublic function getDefaultCombinationPrices(array $product): arraypublic function getProductDataBySelectedAttributes(array $product, string $selectedAttribute): arraypublic function productCategories(int $productId): arraypublic static function arrayCartesian(array $input): arrayprivate function defaultLangId(): stringprivate function saveLanguages(int $productId, array $d, bool $isNew): voidprivate function handleSeoRedirects(int $productId, string $langId, string $newSeoLink, string $currentSeoLink): voidprivate function saveCategories(int $productId, $categories): voidprivate function saveRelatedProducts(int $productId, $products): voidprivate function moveTemporaryFiles(int $productId): voidprivate function moveTemporaryImages(int $productId): voidprivate function saveCustomFields(int $productId, array $names, array $types, array $required): voidprivate function cleanupDeletedFiles(int $productId): voidprivate function cleanupDeletedImages(int $productId): voidprivate function nullIfEmpty($value)private function appendCombinationToXml(\DOMDocument $doc, \DOMElement $channelNode, $product, $combination, string $domainPrefix, string $url): voidprivate function appendProductToXml(\DOMDocument $doc, \DOMElement $channelNode, $product, string $domainPrefix, string $url): voidprivate function appendImagesToXml(\DOMDocument $doc, \DOMElement $itemNode, $product, string $domainPrefix, string $url): voidprivate function appendShippingToXml(\DOMDocument $doc, \DOMElement $itemNode, $product): voidprivate function updateCombinationPrices(int $productId, float $priceNetto, float $vat, ?float $priceNettoPromo): void
Domain\ProductSet\ProductSetRepository
File: autoload/Domain/ProductSet/ProductSetRepository.php
Properties:
private $dbprivate const MAX_PER_PAGE = 100
Methods:
public function __construct($db)public function listForAdmin(array $filters = [], string $sortColumn = 'id', string $sortDir = 'DESC', int $page = 1, int $perPage = 15): arraypublic function find(int $setId): ?arraypublic function save(array $data): ?intpublic function delete(int $setId): boolpublic function allForSelect(): arraypublic function getProductsInSet(int $setId): arraypublic function addProductToSet(int $setId, int $productId): boolpublic function removeProductFromSet(int $setId, int $productId): bool
Domain\Promotion\PromotionRepository
File: autoload/Domain/Promotion/PromotionRepository.php
Properties:
private $dbprivate const MAX_PER_PAGE = 100
Methods:
public function __construct($db)public function listForAdmin(array $filters = [], string $sortColumn = 'id', string $sortDir = 'DESC', int $page = 1, int $perPage = 15): arraypublic function find(int $promotionId): ?arraypublic function save(array $data): ?intpublic function delete(int $promotionId): boolpublic function getProducts(int $promotionId): arraypublic function addProducts(int $promotionId, array $productIds): voidpublic function removeProduct(int $promotionId, int $productId): boolpublic function applyPromotions(): arraypublic function revertPromotions(): arraypublic function basketPromotionForTransport(array $basket): ?arraypublic function basketPromotionForDiscount(array $basket): ?arraypublic function activePromotionsForBasket(): arrayprivate function toSwitchValue($value): int
Domain\Scontainers\ScontainersRepository
File: autoload/Domain/Scontainers/ScontainersRepository.php
Properties:
private $dbprivate const MAX_PER_PAGE = 100
Methods:
public function __construct($db)public function listForAdmin(array $filters, string $sortColumn = 'id', string $sortDir = 'DESC', int $page = 1, int $perPage = 15): arraypublic function find(int $containerId): arraypublic function detailsForLanguage(int $containerId, string $langId): ?arraypublic function save(array $data): ?intpublic function delete(int $containerId): boolpublic function frontScontainerDetails(int $scontainerId, string $langId): arrayprivate function baseListSelect(): stringprivate function clearFrontCache(int $containerId): voidprivate function translationsMap(int $containerId): arrayprivate function extractTranslations(array $data): arrayprivate function toSwitchValue($value): intprivate function defaultContainer(): array
Domain\Settings\SettingsRepository
File: autoload/Domain/Settings/SettingsRepository.php
Properties:
private $db
Methods:
public function __construct($db = null)public function saveSettings(array $values): arraypublic function updateSetting(string $param, $value): boolpublic function updateSettings(array $settings): boolpublic function getSettings(): arraypublic function allSettings(bool $skipCache = false): arraypublic function getSingleValue(string $param): stringprivate function isEnabled($value): bool
Domain\ShopStatus\ShopStatusRepository
File: autoload/Domain/ShopStatus/ShopStatusRepository.php
Properties:
private $db
Methods:
public function __construct($db)public function listForAdmin(array $filters = [], string $sortColumn = 'id', string $sortDir = 'ASC', int $page = 1, int $perPage = 50): arraypublic function find(int $statusId): ?arraypublic function save(array $data): ?intpublic function delete(int $statusId): boolpublic function allForSelect(): arraypublic function getStatusName(int $statusId): stringpublic function findByApiloId(string $apiloId): ?array
Domain\Transport\TransportRepository
File: autoload/Domain/Transport/TransportRepository.php
Properties:
private $dbprivate const MAX_PER_PAGE = 100
Methods:
public function __construct($db)public function listForAdmin(array $filters = [], string $sortColumn = 'name', string $sortDir = 'ASC', int $page = 1, int $perPage = 15): arraypublic function find(int $transportId): ?arraypublic function save(array $data): ?intpublic function allActive(): arraypublic function findActiveById(int $transportId): ?arraypublic function getApiloCarrierAccountId(int $transportId): ?intpublic function getTransportCost(int $transportId): ?floatpublic function lowestTransportPrice(int $wp): ?floatpublic function allForAdmin(): arraypublic function transportMethodsFront($basket, $coupon): arraypublic function transportCostCached($transportId)public function findActiveByIdCached($transportId)public function forPaymentMethod(int $paymentMethodId): arrayprivate function savePaymentMethodLinks(int $transportId, $paymentMethods): voidprivate function normalizeTransport(array $transport): arrayprivate function toSwitchValue($value): int
Domain\Update\UpdateRepository
File: autoload/Domain/Update/UpdateRepository.php
Properties:
private $db
Methods:
public function __construct($db)public function update(): arraypublic function runPendingMigrations(): voidpublic function update0197(): voidprivate function downloadAndApply(string $ver, string $dir, array $log): arrayprivate function executeSql(string $sqlUrl, array $log): arrayprivate function deleteFiles(string $filesUrl, array $log): arrayprivate function extractZip(string $fileName, array $log): arrayprivate function saveLog(array $log): void
Domain\User\UserRepository
File: autoload/Domain/User/UserRepository.php
Properties:
private $dbprivate const MAX_PER_PAGE = 100
Methods:
public function __construct($db)public function getById(int $userId): ?arraypublic function updateById(int $userId, array $data): boolpublic function verifyTwofaCode(int $userId, string $code): boolpublic function sendTwofaCode(int $userId, bool $resend = false): boolpublic function delete(int $userId): boolpublic function find(int $userId): ?arraypublic function save(int $userId, string $login, $status, string $password, string $passwordRepeat, $admin, $twofaEnabled = 0, string $twofaEmail = ''): arraypublic function checkLogin(string $login, int $userId): arraypublic function logon(string $login, string $password): intpublic function details(string $login): ?arraypublic function listForAdmin(array $filters, string $sortColumn = 'login', string $sortDir = 'ASC', int $page = 1, int $perPage = 15): arrayprivate function toSwitchValue($value): int
2. admin/ — Warstwa administracyjna
admin\App
File: autoload/admin/App.php
Properties:
private static array $newControllers
Constants:
const APP_SECRET_KEY = 'c3cb2537d25c0efc9e573d059d79c3b8'
Methods:
public static function finalize_admin_login(array $user, string $domain, string $cookie_name, bool $remember = false)public static function special_actions()public static function render(): stringpublic static function route()private static function createController(string $moduleName)private static function getControllerFactories(): arraypublic static function update()
admin\Controllers\ArticlesArchiveController
File: autoload/admin/Controllers/ArticlesArchiveController.php
Properties:
private ArticleRepository $repository
Methods:
public function __construct(ArticleRepository $repository)public function list(): stringpublic function view_list(): stringpublic function restore(): voidpublic function article_restore(): voidpublic function delete(): voidpublic function article_delete(): void
admin\Controllers\ArticlesController
File: autoload/admin/Controllers/ArticlesController.php
Properties:
private ArticleRepository $repositoryprivate LanguagesRepository $languagesRepositoryprivate LayoutsRepository $layoutsRepositoryprivate PagesRepository $pagesRepository
Methods:
public function __construct(ArticleRepository $repository, LanguagesRepository $languagesRepository, LayoutsRepository $layoutsRepository, PagesRepository $pagesRepository)public function list(): stringpublic function galleryOrderSave(): voidpublic function filesOrderSave(): voidpublic function save(): voidpublic function imageAltChange(): voidpublic function fileNameChange(): voidpublic function imageDelete(): voidpublic function fileDelete(): voidpublic function delete(): voidpublic function edit(): stringprivate function resolveSavePayload(): arrayprivate function buildFormViewModel(array $article, array $languages, array $menus, array $layouts): FormEditViewModelprivate function renderPagesTree(array $menus, array $article): stringprivate function renderImagesBox(array $article): stringprivate function renderFilesBox(array $article): stringprivate function escapeHtml(string $value): string
admin\Controllers\BannerController
File: autoload/admin/Controllers/BannerController.php
Properties:
private BannerRepository $repositoryprivate LanguagesRepository $languagesRepositoryprivate FormRequestHandler $formHandler
Methods:
public function __construct(BannerRepository $repository, LanguagesRepository $languagesRepository)public function list(): stringpublic function edit(): stringpublic function save(): voidpublic function delete(): voidprivate function buildFormViewModel(array $banner, array $languages, ?array $errors = null): FormEditViewModelprivate function getFormId(): string
admin\Controllers\DashboardController
File: autoload/admin/Controllers/DashboardController.php
Properties:
private DashboardRepository $repositoryprivate ShopStatusRepository $statusesRepository
Methods:
public function __construct(DashboardRepository $repository, ShopStatusRepository $statusesRepository)public function main_view(): string
admin\Controllers\DictionariesController
File: autoload/admin/Controllers/DictionariesController.php
Properties:
private DictionariesRepository $repositoryprivate LanguagesRepository $languagesRepositoryprivate FormRequestHandler $formHandler
Methods:
public function __construct(DictionariesRepository $repository, LanguagesRepository $languagesRepository)public function list(): stringpublic function edit(): stringpublic function save(): voidpublic function delete(): voidprivate function buildFormViewModel(array $unit, array $languages, ?array $errors = null): FormEditViewModelprivate function getFormId(): string
admin\Controllers\FilemanagerController
File: autoload/admin/Controllers/FilemanagerController.php
Properties: (brak)
Constants:
private const RFM_KEY_TTL = 1200private const FILEMANAGER_DIALOG_PATH = '/libraries/filemanager-9.14.2/dialog.php'
Methods:
public function draw(): stringprivate function ensureFilemanagerAccessKey(): stringprivate function buildFilemanagerUrl(string $akey): string
admin\Controllers\IntegrationsController
File: autoload/admin/Controllers/IntegrationsController.php
Properties:
private IntegrationsRepository $repository
Methods:
public function __construct(IntegrationsRepository $repository)public function apilo_settings(): stringpublic function apilo_settings_save(): voidpublic function apilo_authorization(): voidpublic function get_platform_list(): voidpublic function get_status_types_list(): voidpublic function get_carrier_account_list(): voidpublic function get_payment_types_list(): voidpublic function apilo_create_product(): voidpublic function apilo_product_search(): voidpublic function apilo_product_select_save(): voidpublic function apilo_product_select_delete(): voidpublic function shoppro_settings(): stringpublic function shoppro_settings_save(): voidpublic function shoppro_product_import(): voidprivate function fetchApiloListWithFeedback(string $type, string $label): void
admin\Controllers\LanguagesController
File: autoload/admin/Controllers/LanguagesController.php
Properties:
private LanguagesRepository $repositoryprivate FormRequestHandler $formHandler
Methods:
public function __construct(LanguagesRepository $repository)public function list(): stringpublic function view_list(): stringpublic function language_edit(): stringpublic function language_save(): voidpublic function language_delete(): voidpublic function translation_list(): stringpublic function translation_edit(): stringpublic function translation_save(): voidpublic function translation_delete(): voidprivate function buildLanguageFormViewModel(array $language, int $maxOrder, ?array $errors = null): FormEditViewModelprivate function buildTranslationFormViewModel(array $translation, array $languages, ?array $errors = null): FormEditViewModelprivate function extractLegacyTranslations(array $values, array $languages): arrayprivate function clearLanguageSessions(array $languages): voidprivate function getLanguageFormId(): stringprivate function getTranslationFormId(): string
admin\Controllers\LayoutsController
File: autoload/admin/Controllers/LayoutsController.php
Properties:
private LayoutsRepository $repositoryprivate LanguagesRepository $languagesRepository
Methods:
public function __construct(LayoutsRepository $repository, LanguagesRepository $languagesRepository)public function list(): stringpublic function edit(): stringpublic function save(): voidpublic function delete(): void
admin\Controllers\NewsletterController
File: autoload/admin/Controllers/NewsletterController.php
Properties:
private NewsletterRepository $repositoryprivate NewsletterPreviewRenderer $previewRendererprivate FormRequestHandler $formHandler
Methods:
public function __construct(NewsletterRepository $repository, NewsletterPreviewRenderer $previewRenderer)public function list(): stringpublic function view_list(): stringpublic function emails_list(): stringpublic function email_delete(): voidpublic function delete(): voidpublic function prepare(): stringpublic function preview(): stringpublic function send(): voidpublic function settings(): stringpublic function settings_save(): voidpublic function email_templates_user(): stringpublic function email_templates_admin(): stringpublic function email_template_edit(): stringpublic function template_save(): voidpublic function email_template_delete(): voidprivate function buildSettingsFormViewModel(array $settings, ?array $errors = null): FormEditViewModelprivate function buildTemplateFormViewModel(array $template, ?array $errors = null): FormEditViewModelprivate function templatesListViewModel(): PaginatedTableViewModelprivate function settingsFormId(): stringprivate function templateFormId(int $templateId): string
admin\Controllers\PagesController
File: autoload/admin/Controllers/PagesController.php
Properties:
private PagesRepository $repositoryprivate LanguagesRepository $languagesRepositoryprivate LayoutsRepository $layoutsRepository
Methods:
public function __construct(PagesRepository $repository, LanguagesRepository $languagesRepository, LayoutsRepository $layoutsRepository)public function list(): stringpublic function browseList(): stringpublic function pagesUrlBrowser(): stringpublic function menuEdit(): stringpublic function menuSave(): voidprivate function buildMenuFormViewModel(array $menu): FormEditViewModelpublic function menuDelete(): voidpublic function edit(): stringpublic function save(): voidprivate function buildPageFormViewModel(array $page, int $parentId, int $menuId, array $menus, array $layouts, array $languages): FormEditViewModelpublic function delete(): voidpublic function pageArticles(): stringpublic function savePagesOrder(): voidpublic function saveArticlesOrder(): voidpublic function generateSeoLink(): voidpublic function cookieMenus(): voidpublic function cookiePages(): voidprivate function withPreviewUrls(array $pages, string $defaultLanguage): arrayprivate function cookieState(string $cookieName): array
admin\Controllers\ProductArchiveController
File: autoload/admin/Controllers/ProductArchiveController.php
Properties:
private ProductRepository $productRepository
Methods:
public function __construct(ProductRepository $productRepository)public function list(): stringpublic function unarchive(): void
admin\Controllers\ScontainersController
File: autoload/admin/Controllers/ScontainersController.php
Properties:
private ScontainersRepository $repositoryprivate LanguagesRepository $languagesRepositoryprivate FormRequestHandler $formHandler
Methods:
public function __construct(ScontainersRepository $repository, LanguagesRepository $languagesRepository)public function list(): stringpublic function view_list(): stringpublic function edit(): stringpublic function container_edit(): stringpublic function save(): voidpublic function container_save(): voidpublic function delete(): voidpublic function container_delete(): voidprivate function buildFormViewModel(array $container, array $languages, ?array $errors = null): FormEditViewModelprivate function formId(): string
admin\Controllers\SettingsController
File: autoload/admin/Controllers/SettingsController.php
Properties:
private SettingsRepository $settingsRepositoryprivate LanguagesRepository $languagesRepositoryprivate FormRequestHandler $formHandler
Methods:
public function __construct(SettingsRepository $settingsRepository, LanguagesRepository $languagesRepository)public function clearCache(): voidpublic function clearCacheAjax(): voidpublic function globalSearchAjax(): voidpublic function save(): voidpublic function view(): stringprivate function buildFormViewModel(array $settings, array $languages, ?array $errors = null): FormEditViewModelprivate function getFormId(): stringprivate function transformSettingsToFormData(array $settings, array $languages): arrayprivate function transformFormDataToSettings(array $data): array
admin\Controllers\ShopAttributeController
File: autoload/admin/Controllers/ShopAttributeController.php
Properties:
private AttributeRepository $repositoryprivate LanguagesRepository $languagesRepository
Methods:
public function __construct(AttributeRepository $repository, LanguagesRepository $languagesRepository)public function list(): stringpublic function edit(): stringpublic function save(): voidpublic function delete(): voidpublic function values(): stringpublic function values_save(): voidpublic function value_row_tpl(): voidprivate function validateValuesRows(array $rows, string $defaultLanguageId): arrayprivate function buildFormViewModel(array $attribute, array $languages): FormEditViewModel
admin\Controllers\ShopCategoryController
File: autoload/admin/Controllers/ShopCategoryController.php
Properties:
private CategoryRepository $repositoryprivate LanguagesRepository $languagesRepository
Methods:
public function __construct(CategoryRepository $repository, LanguagesRepository $languagesRepository)public function view_list(): stringpublic function list(): stringpublic function category_edit(): stringpublic function edit(): stringpublic function save(): voidpublic function category_delete(): voidpublic function delete(): voidpublic function category_products(): stringpublic function products(): stringpublic function category_url_browser(): voidpublic function save_categories_order(): voidpublic function save_products_order(): voidpublic function cookie_categories(): void
admin\Controllers\ShopClientsController
File: autoload/admin/Controllers/ShopClientsController.php
Properties:
private ClientRepository $repository
Methods:
public function __construct(ClientRepository $repository)public function list(): stringpublic function view_list(): stringpublic function details(): stringpublic function clients_details(): string
admin\Controllers\ShopCouponController
File: autoload/admin/Controllers/ShopCouponController.php
Properties:
private CouponRepository $repository
Methods:
public function __construct(CouponRepository $repository)public function list(): stringpublic function view_list(): stringpublic function edit(): stringpublic function coupon_edit(): stringpublic function save(): voidpublic function coupon_save(): voidpublic function delete(): voidpublic function coupon_delete(): voidprivate function buildFormViewModel(array $coupon, array $categories): FormEditViewModel
admin\Controllers\ShopOrderController
File: autoload/admin/Controllers/ShopOrderController.php
Properties:
private OrderAdminService $service
Methods:
public function __construct(OrderAdminService $service)public function list(): stringpublic function view_list(): stringpublic function details(): stringpublic function order_details(): stringpublic function edit(): stringpublic function order_edit(): stringpublic function save(): voidpublic function order_save(): voidpublic function notes_save(): voidpublic function order_status_change(): voidpublic function order_resend_confirmation_email(): voidpublic function set_order_as_unpaid(): voidpublic function set_order_as_paid(): voidpublic function send_order_to_apilo(): voidpublic function toggle_trustmate_send(): voidpublic function delete(): voidpublic function order_delete(): voidprivate function formatDateTime(string $value): string
admin\Controllers\ShopPaymentMethodController
File: autoload/admin/Controllers/ShopPaymentMethodController.php
Properties:
private PaymentMethodRepository $repository
Methods:
public function __construct(PaymentMethodRepository $repository)public function list(): stringpublic function edit(): stringpublic function save(): voidprivate function buildFormViewModel(array $paymentMethod, array $apiloPaymentTypes): FormEditViewModelprivate function getApiloPaymentTypes(): array
admin\Controllers\ShopProducerController
File: autoload/admin/Controllers/ShopProducerController.php
Properties:
private ProducerRepository $repositoryprivate LanguagesRepository $languagesRepositoryprivate FormRequestHandler $formHandler
Methods:
public function __construct(ProducerRepository $repository, LanguagesRepository $languagesRepository)public function list(): stringpublic function view_list(): stringpublic function edit(): stringpublic function producer_edit(): stringpublic function save(): voidpublic function producer_save(): voidpublic function delete(): voidpublic function producer_delete(): voidprivate function buildFormViewModel(array $producer, array $languages, ?array $errors = null): FormEditViewModelprivate function formId(): stringprivate function toSwitchValue($value): int
admin\Controllers\ShopProductController
File: autoload/admin/Controllers/ShopProductController.php
Properties:
private ProductRepository $repositoryprivate IntegrationsRepository $integrationsRepositoryprivate LanguagesRepository $languagesRepository
Methods:
public function __construct(ProductRepository $repository, IntegrationsRepository $integrationsRepository, LanguagesRepository $languagesRepository)public function view_list(): stringpublic function product_edit(): stringprivate function layoutsForProductEdit($db): arrayprivate function buildProductFormViewModel(array $product, array $languages, array $categories, array $layouts, array $products, array $sets, array $producers, array $units, $dlang): FormEditViewModelprivate function renderSkuField(array $product): stringprivate function renderCategoriesTree(array $categories, array $product, $dlang): stringprivate function renderGalleryBox(array $product): stringprivate function renderFilesBox(array $product): stringprivate function renderRelatedProducts(array $product, array $products, array $sets): stringprivate function renderCustomFieldsBox(array $product): stringprivate function escapeHtml(string $value): stringprivate function resolveSavePayload(): arraypublic function save(): voidpublic function duplicate_product(): voidpublic function product_archive(): voidpublic function product_unarchive(): voidpublic function product_delete(): voidpublic function change_product_status(): voidpublic function product_change_price_brutto(): voidpublic function product_change_price_brutto_promo(): voidpublic function product_change_custom_label(): voidpublic function product_custom_label_suggestions(): voidpublic function product_custom_label_save(): voidpublic function ajax_product_url(): voidpublic function generate_sku_code(): voidpublic function product_combination(): stringpublic function generate_combination(): voidpublic function delete_combination(): voidpublic function product_combination_stock_0_buy_save(): voidpublic function product_combination_sku_save(): voidpublic function product_combination_quantity_save(): voidpublic function product_combination_price_save(): voidpublic function delete_combination_ajax(): voidpublic function image_delete(): voidpublic function images_order_save(): voidpublic function image_alt_change(): voidpublic function product_file_delete(): voidpublic function product_file_name_change(): voidpublic function product_image_delete(): voidpublic function mass_edit(): stringpublic function mass_edit_save(): voidpublic function get_products_by_category(): void
admin\Controllers\ShopProductSetsController
File: autoload/admin/Controllers/ShopProductSetsController.php
Properties:
private ProductSetRepository $repository
Methods:
public function __construct(ProductSetRepository $repository)public function list(): stringpublic function view_list(): stringpublic function edit(): stringpublic function set_edit(): stringpublic function save(): voidpublic function delete(): voidpublic function set_delete(): voidprivate function buildFormViewModel(array $set, array $products = []): FormEditViewModelprivate function toSwitchValue($value): intprivate function renderProductsSelect(array $products, array $selectedProducts): string
admin\Controllers\ShopPromotionController
File: autoload/admin/Controllers/ShopPromotionController.php
Properties:
private PromotionRepository $repository
Methods:
public function __construct(PromotionRepository $repository)public function list(): stringpublic function edit(): stringpublic function save(): voidpublic function delete(): voidprivate function buildFormViewModel(array $promotion, array $categories): FormEditViewModel
admin\Controllers\ShopStatusesController
File: autoload/admin/Controllers/ShopStatusesController.php
Properties:
private ShopStatusRepository $repository
Methods:
public function __construct(ShopStatusRepository $repository)public function list(): stringpublic function edit(): stringpublic function save(): voidprivate function buildFormViewModel(array $status, array $apiloStatusList): FormEditViewModelprivate function getApiloStatusList(): array
admin\Controllers\ShopTransportController
File: autoload/admin/Controllers/ShopTransportController.php
Properties:
private TransportRepository $transportRepositoryprivate PaymentMethodRepository $paymentMethodRepository
Methods:
public function __construct(TransportRepository $transportRepository, PaymentMethodRepository $paymentMethodRepository)public function list(): stringpublic function edit(): stringpublic function save(): voidprivate function buildFormViewModel(array $transport, array $paymentMethods, array $apiloCarrierAccounts): FormEditViewModelprivate function getApiloCarrierAccounts(): array
admin\Controllers\UpdateController
File: autoload/admin/Controllers/UpdateController.php
Properties:
private UpdateRepository $repository
Methods:
public function __construct(UpdateRepository $repository)public function main_view(): stringpublic function update(): voidpublic function updateAll(): void
admin\Controllers\UsersController
File: autoload/admin/Controllers/UsersController.php
Properties:
private UserRepository $repositoryprivate FormRequestHandler $formHandler
Methods:
public function __construct(UserRepository $repository)public function user_delete(): voidpublic function user_save(): voidpublic function user_edit(): stringpublic function view_list(): stringpublic function list(): stringpublic function login_form(): stringpublic function twofa(): stringprivate function normalizeUser(?array $user): arrayprivate function buildFormViewModel(array $user, ?array $errors = null): FormEditViewModelprivate function getFormId(): stringprivate function isTwofaEmailValidForEnabled($twofaEnabled, string $twofaEmail): bool
admin\Support\TableListRequestFactory
File: autoload/admin/Support/class.TableListRequestFactory.php
Properties: (brak)
Constants:
public const DEFAULT_PER_PAGE_OPTIONS = [5, 10, 15, 25, 50, 100]public const DEFAULT_PER_PAGE = 15
Methods:
public static function fromRequest(array $filterDefinitions, array $sortableColumns, string $defaultSortColumn = 'date_add', ?array $perPageOptions = null, ?int $defaultPerPage = null): array
admin\Support\Forms\FormFieldRenderer
File: autoload/admin/Support/Forms/FormFieldRenderer.php
Properties:
private FormEditViewModel $form
Methods:
public function __construct(FormEditViewModel $form)public function renderField(FormField $field): stringpublic function renderText(FormField $field): stringpublic function renderNumber(FormField $field): stringpublic function renderEmail(FormField $field): stringpublic function renderPassword(FormField $field): stringpublic function renderDate(FormField $field): stringpublic function renderDatetime(FormField $field): stringpublic function renderSwitch(FormField $field): stringpublic function renderSelect(FormField $field): stringpublic function renderTextarea(FormField $field): stringpublic function renderEditor(FormField $field): stringpublic function renderImage(FormField $field): stringpublic function renderFile(FormField $field): stringpublic function renderHidden(FormField $field): stringpublic function renderColor(FormField $field): stringpublic function renderCustom(FormField $field): stringpublic function renderLangSection(FormField $section): stringprivate function renderLangField(FormField $field, $languageId, string $sectionName): stringprivate function generateFilemanagerUrl(string $fieldId): stringprivate function wrapWithError(string $html, ?string $error): string
admin\Support\Forms\FormRequestHandler
File: autoload/admin/Support/Forms/FormRequestHandler.php
Properties:
private FormValidator $validator
Methods:
public function __construct()public function handleSubmit(FormEditViewModel $formViewModel, array $postData): arrayprivate function processData(array $postData, array $fields): arrayprivate function processLangSection(array $postData, $section): arraypublic function restoreFromPersist(FormEditViewModel $formViewModel): ?arraypublic function isFormSubmit(string $formId): bool
admin\Validation\FormValidator
File: autoload/admin/Validation/FormValidator.php
Properties:
private array $errors
Methods:
public function validate(array $data, array $fields, ?array $languages = null): arrayprivate function validateField(array $data, FormField $field): voidprivate function validateLangSection(array $data, FormField $section, array $languages): voidprivate function isEmpty($value): boolprivate function isValidDate(string $date): boolprivate function isValidDateTime(string $datetime): boolpublic function isValid(): boolpublic function getErrors(): arraypublic function getFirstError(): ?string
admin\ViewModels\Common\PaginatedTableViewModel
File: autoload/admin/ViewModels/Common/class.PaginatedTableViewModel.php
Properties:
public array $columnspublic array $rowspublic array $filterspublic array $sortpublic array $paginationpublic array $querypublic array $perPageOptionspublic array $sortableColumnspublic string $basePathpublic string $emptyMessagepublic ?string $createUrlpublic ?string $createLabelpublic ?string $customScriptView
Methods:
public function __construct(array $columns = [], array $rows = [], array $filters = [], array $sort = [], array $pagination = [], array $query = [], array $perPageOptions = [5, 10, 15, 25, 50, 100], array $sortableColumns = [], string $basePath = '', string $emptyMessage = 'Brak danych.', ?string $createUrl = null, ?string $createLabel = null, ?string $customScriptView = null)
admin\ViewModels\Forms\FormAction
File: autoload/admin/ViewModels/Forms/FormAction.php
Properties:
public string $namepublic string $labelpublic string $typepublic string $urlpublic ?string $backUrlpublic string $cssClasspublic array $attributes
Methods:
public function __construct(string $name, string $label, string $url = '', ?string $backUrl = null, string $cssClass = 'btn btn-primary', string $type = 'submit', array $attributes = [])public static function save(string $url, string $backUrl = '', string $label = 'Zapisz'): selfpublic static function cancel(string $backUrl, string $label = 'Anuluj'): self
admin\ViewModels\Forms\FormEditViewModel
File: autoload/admin/ViewModels/Forms/FormEditViewModel.php
Properties:
public string $formIdpublic string $titlepublic string $methodpublic string $actionpublic ?string $backUrlpublic array $tabspublic array $fieldspublic array $hiddenFieldspublic array $actionspublic bool $persistpublic array $datapublic ?array $validationErrorspublic ?array $languages
Methods:
public function __construct(string $formId, string $title, array $data = [], array $fields = [], array $tabs = [], array $actions = [], string $method = 'POST', string $action = '', ?string $backUrl = null, bool $persist = true, array $hiddenFields = [], ?array $languages = null, ?array $validationErrors = null)public function hasTabs(): boolpublic function hasLangSections(): boolpublic function getFieldsForTab(string $tabId): arraypublic function getLangSectionsForTab(string $tabId): arraypublic function getFieldValue(FormField $field, $languageId = null, ?string $langFieldName = null)public function hasError(string $fieldName, $languageId = null): boolpublic function getError(string $fieldName, $languageId = null): ?stringpublic function clearPersist(): voidpublic function saveToPersist(array $data): void
admin\ViewModels\Forms\FormField
File: autoload/admin/ViewModels/Forms/FormField.php
Properties:
public string $namepublic string $typepublic string $labelpublic $valuepublic string $tabIdpublic bool $requiredpublic array $attributespublic array $optionspublic ?string $helpTextpublic ?string $placeholderpublic ?string $idpublic bool $useFilemanagerpublic ?string $filemanagerUrlpublic string $editorToolbarpublic int $editorHeightpublic ?array $langFieldspublic ?string $langSectionParentTabpublic ?string $customHtml
Methods:
public function __construct(string $name, string $type = FormFieldType::TEXT, string $label = '', $value = null, string $tabId = 'default', bool $required = false, array $attributes = [], array $options = [], ?string $helpText = null, ?string $placeholder = null, bool $useFilemanager = false, ?string $filemanagerUrl = null, string $editorToolbar = 'MyTool', int $editorHeight = 300, ?array $langFields = null, ?string $langSectionParentTab = null, ?string $customHtml = null)public static function text(string $name, array $config = []): selfpublic static function number(string $name, array $config = []): selfpublic static function email(string $name, array $config = []): selfpublic static function password(string $name, array $config = []): selfpublic static function date(string $name, array $config = []): selfpublic static function datetime(string $name, array $config = []): selfpublic static function switch(string $name, array $config = []): selfpublic static function select(string $name, array $config = []): selfpublic static function textarea(string $name, array $config = []): selfpublic static function editor(string $name, array $config = []): selfpublic static function image(string $name, array $config = []): selfpublic static function file(string $name, array $config = []): selfpublic static function color(string $name, array $config = []): selfpublic static function hidden(string $name, $value = null): selfpublic static function custom(string $name, string $html, array $config = []): selfpublic static function langSection(string $name, string $parentTab, array $fields): selfpublic function getLocalizedName($languageId): stringpublic function getLocalizedId($languageId): string
admin\ViewModels\Forms\FormFieldType
File: autoload/admin/ViewModels/Forms/FormFieldType.php
Properties: (brak)
Constants:
public const TEXT = 'text'public const NUMBER = 'number'public const EMAIL = 'email'public const PASSWORD = 'password'public const DATE = 'date'public const DATETIME = 'datetime'public const SWITCH = 'switch'public const SELECT = 'select'public const TEXTAREA = 'textarea'public const EDITOR = 'editor'public const IMAGE = 'image'public const FILE = 'file'public const HIDDEN = 'hidden'public const LANG_SECTION = 'lang_section'public const CUSTOM = 'custom'public const COLOR = 'color'
Methods: (brak — klasa ze stałymi)
admin\ViewModels\Forms\FormTab
File: autoload/admin/ViewModels/Forms/FormTab.php
Properties:
public string $idpublic string $labelpublic string $iconpublic ?string $parentTabId
Methods:
public function __construct(string $id, string $label, string $icon = '', ?string $parentTabId = null)
3. front/ — Warstwa frontendowa
front\App
File: autoload/front/App.php
Properties: (brak)
Methods:
static public function pageTitle()static public function title()public static function route($product = '', $category = '')public static function checkUrlParams()public static function getControllerFactories()
front\LayoutEngine
File: autoload/front/LayoutEngine.php
Properties (regex constants):
const menu_pattern = '/MENU:[0-9]*/'const menu_main_pattern = '/MENU_GLOWNE:[0-9]*/'const container_pattern = '/KONTENER:[0-9]*/'const language_pattern = '/LANG:[a-zA-Z0-9_-]*/'const products_promoted = '/PROMOWANE_PRODUKTY((:([0-9]*))?)/const news_pattern = '/AKTUALNOSCI:([0-9]*)((:([0-9]*))?)/const article_products_category_pattern = '/PRODUKTY_KATEGORIA:([0-9]*)((:([0-9]*))?)/const news_list_pattern = '/AKTUALNOSCI_LISTA:([0-9]*)((:([0-9]*))?)/const top_news_pattern = '/NAJPOULARNIEJSZE_ARTYKULY:([0-9]*)((:([0-9]*))?)/const single_product_pattern = '/PRODUKT:[0-9]*/'const products_box = '/PRODUKTY_BOX:[0-9,]*/'const produkty_top = '/PRODUKTY_TOP((:([0-9]*))?)/const produkty_new = '/PRODUKTY_NEW((:([0-9]*))?)/
Methods:
public static function show()public static function facebook($facebook_link)static public function title($title, $show_title, $page_title)public static function alert()public static function copyright()public static function contact()public static function cookieInformation()
front\Controllers\NewsletterController
File: autoload/front/Controllers/NewsletterController.php
Properties:
private NewsletterRepository $repository
Methods:
public function __construct(NewsletterRepository $repository)public function signin()public function confirm()public function unsubscribe()
front\Controllers\SearchController
File: autoload/front/Controllers/SearchController.php
Properties: (brak)
Methods:
public function searchResults()public function searchProducts()
front\Controllers\ShopBasketController
File: autoload/front/Controllers/ShopBasketController.php
Properties:
public static $title = ['mainView' => 'Koszyk']private $orderRepositoryprivate $paymentMethodRepository
Methods:
public function __construct(\Domain\Order\OrderRepository $orderRepository, \Domain\PaymentMethod\PaymentMethodRepository $paymentMethodRepository)public function basketMessageSave()public function basketRemoveProduct()public function basketIncreaseQuantityProduct()public function basketDecreaseQuantityProduct()public function basketChangeQuantityProduct()public function productMessageChange()public function basketAddProduct()public function transportMethodInpostCheck()public function inpostCheck()public function orlenSave()public function inpostSave()public function basketPaymentMethodSet()public function basketTransportMethodSet()public function basketPaymentsMethods()public function summaryView()public function basketSave()public function mainView()private function jsonBasketResponse($basket, $coupon, $lang_id, $basket_transport_method_id)
front\Controllers\ShopClientController
File: autoload/front/Controllers/ShopClientController.php
Properties:
private $clientRepo
Methods:
public function __construct(ClientRepository $clientRepo)public function markAddressAsCurrent()public function addressDelete()public function addressEdit()public function addressSave()public function clientAddresses()public function clientOrders()public function newPassword()public function sendEmailPasswordRecovery()public function recoverPassword()public function logout()public function login()public function confirm()public function signup()public function loginForm()public function registerForm()private function buildEmailBody(string $templateName, array $replacements = []): string
front\Controllers\ShopCouponController
File: autoload/front/Controllers/ShopCouponController.php
Properties:
private CouponRepository $repository
Methods:
public function __construct(CouponRepository $repository)public function useCoupon()public function deleteCoupon()
front\Controllers\ShopOrderController
File: autoload/front/Controllers/ShopOrderController.php
Properties:
private $repositoryprivate $adminService
Methods:
public function __construct(OrderRepository $repository, OrderAdminService $adminService)public function paymentConfirmation()public function paymentStatusTpay()public function paymentStatusPrzelewy24pl()public function paymentStatusHotpay()public function orderDetails()
front\Controllers\ShopProducerController
File: autoload/front/Controllers/ShopProducerController.php
Properties:
private ProducerRepository $repository
Methods:
public function __construct(ProducerRepository $repository)public function products()public function list()
front\Controllers\ShopProductController
File: autoload/front/Controllers/ShopProductController.php
Properties:
private $categoryRepository
Methods:
public function __construct(\Domain\Category\CategoryRepository $categoryRepository)public function lazyLoadingProducts()public function warehouseMessage()public function drawProductAttributes()private static function getPermutation($attributes)private static function getPermutationQuantity($productId, $permutation)
front\Views\Articles
File: autoload/front/Views/Articles.php
Properties: (brak)
Methods:
public static function fullArticle($article)public static function miniatureArticlesList($articles, $ls, $bs, $page)public static function entryArticlesList($articles, $ls, $bs, $page)public static function fullArticlesList($articles, $ls, $bs, $page)public static function news($page_id, $articles)public static function newsList($articles)public static function generateTableOfContents($content)public static function processHeaders($matches)public static function generateHeadersIds($text)public static function getImage($article)
front\Views\Banners
File: autoload/front/Views/Banners.php
Properties: (brak)
Methods:
public static function banners($banners)public static function mainBanner($banner)
front\Views\Languages
File: autoload/front/Views/Languages.php
Properties: (brak)
Methods:
public static function render($languages)
front\Views\Menu
File: autoload/front/Views/Menu.php
Properties: (brak)
Methods:
public static function pages($pages, $level = 0, $current_page = 0)public static function menu($menu, $current_page)
front\Views\Newsletter
File: autoload/front/Views/Newsletter.php
Properties: (brak)
Methods:
public static function render()
front\Views\Scontainers
File: autoload/front/Views/Scontainers.php
Properties: (brak)
Methods:
public static function scontainer($scontainer)
front\Views\ShopCategory
File: autoload/front/Views/ShopCategory.php
Properties: (brak)
Methods:
public static function categoryDescription($category): stringpublic static function categoryView($category, string $langId, int $currentPage = 1): stringpublic static function categories($categories, $currentCategory = 0, $level = 0): string
front\Views\ShopClient
File: autoload/front/Views/ShopClient.php
Properties: (brak)
Methods:
public static function addressEdit($values): stringpublic static function clientAddresses($values): stringpublic static function clientMenu($values): stringpublic static function clientOrders($values): stringpublic static function recoverPassword(): stringpublic static function miniLogin(): stringpublic static function loginForm($values = ''): stringpublic static function registerForm(): string
front\Views\ShopPaymentMethod
File: autoload/front/Views/ShopPaymentMethod.php
Properties: (brak)
Methods:
public static function basketPaymentMethods($payment_methods, $payment_id)
front\Views\ShopProduct
File: autoload/front/Views/ShopProduct.php
Properties: (brak)
Methods:
public static function productUrl($product)
front\Views\ShopSearch
File: autoload/front/Views/ShopSearch.php
Properties: (brak)
Methods:
public static function simpleForm()
4. Shared/ — Klasy współdzielone
Shared\Cache\CacheHandler
File: autoload/Shared/Cache/CacheHandler.php
Properties:
protected $redis
Methods:
public function __construct()public function get($key)public function set($key, $value, $ttl = 86400)public function exists($key)public function delete($key)public function deletePattern($pattern)
Shared\Cache\RedisConnection
File: autoload/Shared/Cache/RedisConnection.php
Properties:
private static $instance = nullprivate $redis
Methods:
private function __construct()public static function getInstance()public function getConnection()
Shared\Email\Email
File: autoload/Shared/Email/Email.php
Properties:
public $table = 'pp_newsletter_templates'
Methods:
public function load_by_name(string $name)public function email_check($email)public function send(string $email, string $subject, bool $newsletter_headers = false, string $file = null)
Shared\Helpers\Helpers
File: autoload/Shared/Helpers/Helpers.php
Properties: (brak — wszystkie metody statyczne)
Methods:
static function canAddRedirect($from, $to, $lang_id = null)static public function clear_product_cache(int $product_id)static public function remove_special_chars($string)static public function removeDuplicates($array, $param)static public function generate_webp_image($file, $compression_quality = 85)public static function is_array_fix($value)public static function delete_cache()public static function pretty_date($format, $timestamp = null)public static function lang($text)public static function array_cartesian_product($input)static public function normalize_decimal($val, int $precision = 2)public static function decimal($val, $precision = 2, $dec_point = ',', $thousands_sep = ' ')public static function get_new_version()public static function get_version()public static function set_session($var, $val)public static function get_session($var)public static function delete_session($var)public static function get($var, $clear = false)public static function set_message($text)public static function alert($text)public static function error($text)public static function htacces($dir = '../')public static function seo($val, $delete_rhombs = false)public static function noPL($string)public static function delete_dir($dir)public static function email_check($email)public static function send_email($email, $subject, $text, $replay = '', $file = '')public static function shortPrice($price)public static function isWholeNumber($value)
Shared\Html\Html
File: autoload/Shared/Html/Html.php
Properties: (brak — wszystkie metody statyczne)
Methods:
public static function form_text(array $params = array())public static function input_switch(array $params = array())public static function select(array $params = array())public static function textarea(array $params = array())public static function input_icon(array $params = array())public static function input(array $params = array())public static function button(array $params = array())public static function panel(array $params = array())
Shared\Image\ImageManipulator
File: autoload/Shared/Image/ImageManipulator.php
Properties:
protected int $widthprotected int $heightprotected $imageprotected ?string $file = null
Methods:
public function __construct(?string $file = null)public function setImageFile(string $file): selfpublic function setImageString(string $data): selfpublic function resample(int $width, int $height, bool $constrainProportions = true): selfpublic function enlargeCanvas(int $width, int $height, array $rgb = [], ?int $xpos = null, ?int $ypos = null): selfpublic function crop($x1, int $y1 = 0, int $x2 = 0, int $y2 = 0): selfprotected function _replace($res): selfpublic function save(string $fileName, ?int $type = null): voidpublic function getResource()public function getWidth(): intpublic function getHeight(): intpublic function __destruct()private function isValidImageResource($image): bool
Shared\Tpl\Tpl
File: autoload/Shared/Tpl/Tpl.php
Properties:
protected $vars = array()
Methods:
public static function view($file, $values = '')public function secureHTML($val)public function render($file)private function renderFile($path)public function __set($name, $value)public function __get($name)
Podsumowanie
| Warstwa | Pliki | Klasy | Metody (przybliżone) |
|---|---|---|---|
| Domain/ | 29 | 29 | ~435 |
| admin/ | 39 | 39 | ~340 |
| front/ | 21 | 21 | ~85 |
| Shared/ | 7 | 7 | ~63 |
| Razem | 96 | 96 | ~923 |
Największe klasy (wg liczby metod)
Domain\Product\ProductRepository— ~88 metodadmin\Controllers\ShopProductController— ~42 metodyShared\Helpers\Helpers— 29 metodDomain\Attribute\AttributeRepository— 28 metodDomain\Category\CategoryRepository— 21 metodadmin\Support\Forms\FormFieldRenderer— 21 metodadmin\Controllers\NewsletterController— 21 metodDomain\Order\OrderRepository— 20 metodadmin\Controllers\PagesController— 20 metodadmin\ViewModels\Forms\FormField— 19 metod