Appearance
<div style="display: none;" hidden="true" aria-hidden="true">Are you an LLM? You can read better optimized documentation at /changelog/Changelog.4.57.md for this page in Markdown format</div>
Version 4
version 4.57
- [4.57.14] feat: Add option to override functions on orders for posting and selecting columns so that we can add more data when posting and selecting orders
- [4.57.13] feat(gift-cards): Add inputs for recipient's name, surname, and personal message
- [4.57.13] fix(ACS Smart Points): invalid CY records in ACS smaet points where city is null
- [4.57.13] chore:
Advuploader::getFiletypehint argument and return type public function getFile(string $postFileKey): string chore because all usages pass string - [4.57.13] fix:
Blog_category_admin::editsetting images while having to check if we need to set them in edit array - [4.57.13] chore:
Last_seen_products_model::addLastSeenProductsreplace array_search and array_push with in array and simple array adding item - [4.57.13] fix(php8.1): fix occurrences of strlen where argument could be of non string type
- [4.57.13] chore: cleanup checks for strlen when not needed
- [4.57.12] fix: Fix the Pireus php8 incompatibility
- [4.57.12] fix(blog_admin): handle non-existing blog article case when editing article
- [4.57.12] fix(xml): strlen expects string in xml controllers
- [4.57.12] fix(AdvSkroutzXml): change the availability if product has active negative_stock
- [4.57.11] fix:(jobs):
CreateJobSchedule::saveDatasave grace time and retries - [4.57.10] chore(jobs): add keepLogPeriod to 1 day for giftCards queue
- [4.57.10] fix(job manager): set failed status when a job exceeds retry times
- [4.57.10] fix: boxnow and apifon authenticate only when a request needs it
- [4.57.10] feat(product_categories): Introducing blog articles into product category pages
- [4.57.10] fix(blog): patched ld_json condition check for rendering article graph object (
is_blog->isBlog) - [4.57.10] fix(blog): show 404 page if visiting blog search without keyword
- [4.57.10] fix: Fix the return of the recursiveRecordsTree in blogs categories to return array of objects
- [4.57.10] fix: Fix the query for get the customer orders
- [4.57.9] fix(transporters): added missing transporter
DAILYCOURIERANDTAXYDEMAon close_pending_vouchers - [4.57.9] fix(transporters): updated check on create voucher response on transporter
taxydemaanddailycourier - [4.57.9] fix(jobs): AdvJobManager should get count for not started jobs to check if it needs to run scheduler
- [4.57.9] chore: ClearJobSchedule set default keepLogPeriod to 3 days
- [4.57.9] chore: update composer packages to latest minor
- [4.57.9] fix(adv_mailer): show smartPointData on order_created (Not having that data for card payments)
- [4.57.9] feat: On
getCustomerOrdersget the total_qty of products on basket (including gifts) for each order - [4.57.8] feat: introduced blog hits
- [4.57.8] fix(language): Update
eshop.front.mail.view.websitegreek lang because it was similar to the english version - [4.57.7] fix(jobs):
AdvCreateJobSchedulesets arguments if job to schedule implementsJobCommandExperimental - [4.57.7] chore: AdvJob better logging in case of class failing in __construct
- [4.57.7] fix: job listing hover text not readable
- [4.57.7] fix(acs): simplified local vars and conditionals, set type to class vars, log errors in applicable calls
- [4.57.7] feat: Add in the admin view of panel link in the front page of lines
- [4.57.6] fix(AdvCartResource.php): Misspell return type correction
- [4.57.5] feat: allow CartResource and CartResource to be extended
- [4.57.5] fix(Subcontent_admin): fix the subcontent langs for create and update
- [4.57.5] chore(order_created): Show selected smart point on checkout email for default template
- [4.57.4] fix(product-categories-admin): added missing manage category tags on create category
- [4.57.4] feat(moosend): Moosend newsletter registration implementation
- [4.57.4] feat(search): add search debug functionality
- [4.57.4] refactor(search): enhance setSolrGlobalParams method customization
- [4.57.3] fix(minicart): Replace
awithbuttontag inrem-minicart-prodbecause when the button was clicked, viewport was going on top of page - [4.57.3] Refactor: Delivery warning messages now dynamically reflect order delivery estimates based on real-time product stock. When product stock is depleted (0 or negative), delay messages are displayed; otherwise, normal delivery estimates are shown.
- [4.57.3] feat: Pretty print the output of xml feeds for the catalogs
- [4.57.3] feat: In case of order is not pending return error if vivawallet change the status of order
- [4.57.3] fix(php8): warning when looping through
internal['allProductsOfVendor']in Vendors::vendors - [4.57.3] fix: vendors::baseVendor routing - check if param is not an actual category and show 404
- [4.57.3] fix: job manager routing
- [4.57.3] chore: application jobs have already announced implement of JobCommand in base classes
- [4.57.2] fix: Call the parent constructor in the api transporters
- [4.57.2] feat: Option to select and filter group tags in product categories
- [4.57.2] feat: createJobSchedule job can set job arguments using 'options' key in command config for experimental jobs
- [4.57.1] feat(jobs): JobCommandExperimental accepting array for arguments
- [4.57.1] feat(jobs): a job can be added in the queue setting grace time and retries
- [4.57.1] feat(JsCapabilities): enhance script tag rendering by adding the ability to configure script's async, defer, crossorigin, integrity, referrerpolicy, type and nomodule attributes
- [4.57.1] fix: Fix the case of not author in blog articles
- [4.57.1] fix: Fix smartPointsInitialize to load smartpoints only for active transporters
- [4.57.1] fix: Change in the db the length of the color in the shop_product_categories
- [4.57.1] feat(blog_categories_admin): Changed blog categories index to group categories by parent_id
- [4.57.1] feat(blog_categories): Refactored blog categories to use tree structure on front
- [4.57.1] feat(blog_categories_admin): Added option for admin to create blog category tree by assigning parent_id to category
- [4.57.1] fix:
Product_categories::indexCorrected pagination functionality when product tag filters were active. - [4.57.1] fix:
Product_tags_model::fixAdminTagsSearchto take into account other conditions apart from tagGroups - [4.57.1] fix(Adv_orders_admin): Fix customer data handling for empty customer_id for php 8.1 compatibility
- [4.57.1] fix(adv_blog_category_model): combo object data replaced blog_category_id with id
- [4.57.1] fix(product-clone): check if product meta exists in results
- [4.57.0] fix: product model
update_recordallow not touching master table, fix onupdateMuiProductRecordnot taking into account id - [4.57.0] fix(Adv_orders_admin): Corrected order id retrieval for close pending jobs
- [4.57.0] refactor(AdvIqviaUpload): added generated line_item_id in csv
- [4.57.0] feat(product-clone): implement product clone modal in products list
- [4.57.0] ci(cart): In check of the bots use the Matomo library instead of ci user agent
- [4.57.0] feat(blog-search): Add a search page for the blog articles
- [4.57.0] fix(text-helper): Fix the characters in greeklish ευ to eu
- [4.57.0] feat(daily-courier): save and utilize bearer token from database
- [4.57.0] feat(transporters-settings): change reg_value field type to TEXT
- [4.57.0] feat: Update cookies for Google consent v2 (added
ad_user_dataandad_personalization)
Notes
[4.57.14] Check for overrides:
Order::previewOn $orderData = array_merge($orderData,$this->input->post(...)) include the $this->previewExtraPostData() in the array mergeOrder_model::getRecordsCustomerBaseSelectThe select has been moved to a functionsgetRecordsCustomerBaseSelectand the functiongetRecordsCustomerBaseSelectExport,check for overrides and move your select to those functionsOrder_model::create_orderAdd the $this->createOrderExtraData($orderData) in the array of $order = array_merge($order, $this->setUpAdminOrderDataSmsValid($orderData),..)
[4.57.13] Build requirements:
bashnpm ci && npm run production composer i php cli.php patch/addGiftCardOrderCustomerData[4.57.13] Check for overrides:
Blog_category_admin::editLast_seen_products_model::addLastSeenProductsGift_card_page::createPendingGiftCard
[4.57.13] Check for overrides (strlen checks - diff quick view in bottom of document):
Blog_admin::editBlog_author_admin::editBlog_category_admin::editBlog_author_model::getAuthorRecordBlog_category_model::getCategoryRecordBlog_model::{getBlogRecord|getBlogDefault}Blog_tags_model::getTagRecordCategories_model::create_slugFront_c::languageMuiUrisGifts_admin::indexOrders_admin::indexProduct_categories::set_filterProduct_categories_admin::searchProducts::indexSkroutz_orders_admin::indexVendors::vendors/* Breadcrumbs */Last_seen_products_model::getLastSeenProducts- Product_category_model
- create_slug
- get_children_with_anchors_unarrayed
- get_published_children_with_anchors
- get_children_with_anchors
- get_record
- get_details
Event_categories_model::getRecordWellcomm::{parseWellcommItem|splitProductWithColors}Maps_model::{getAdminRecord|getPoint}Keywords_model::get_defaultMetatags_model::get_defaultSliders_admin::edit- views affected
application/views/default/layouts/library/product_page/product.phpapplication/views/main/layouts/customer/order_check.phpapplication/views/main/layouts/product_page/product.php
[4.57.12] Check in application xmls for
strlen($product->skroutz_name) ? (string)$product->skroutz_name : (string)$product->nameand replace with$product->skroutz_name ?: $product->name[4.57.12] Check for overrides:
Skroutz:parseSkroutzItemSkroutz:splitProductWithColors
[4.57.11] Check for override in
CreateJobSchedule::saveData[4.57.10] Build requirements:
bashcomposer i php cli.php patch/createProductCategoryBlogLp npm ci && npm run production && npm run admin-production[4.57.10] Check for overrides:
Blog_category_model:recursiveRecordsTreeAdv_blog(check foris_blogand replace withisBlog) as well as in any other place that might use the same conditionOrder_model:getCustomerOrdersIn Dioptra remove the over in other customers check the overProduct_categories:indexincluderenderCategoryBlogArticlesProduct_categories:catTopPageincluderenderCategoryBlogArticlesSettings:only_advisableSettings:onlyAdvisableValidationProduct_reviews_model:getCustomerReviewsselect more dataCustomer:reviewsadd items for parsing
[4.57.9] Need to change the APP_PHP_EXECUTABLE_PATH in
.env(check the.env.example). From now on we use PHP 8.1[4.57.9] Check for overrides:
Orders_admin::close_pending_jobssetPendingWithVoucher::createVoucherTaxydemasetPendingWithVoucher::createVoucherDailyCourierOrder_model::getCustomerOrdersJob_manager::initializeJobsClearJobSchedule::execute
[4.57.9]
bashcomposer i[4.57.8] Check for overrides:
Blog::blogArticleadded updateArticleHits function
[4.57.8]
bashphp cli.php patch/blogHits[4.57.7] Build requirements:
bashnpm ci && npm run admin-production[4.57.5] Build requirements:
bashcomposer i[4.57.4] Check for overrides:
Customer::reportLoginEventOrder::previewOrderMiscDataOrder::previewCustomer_model::customer_exit
[4.57.4] Build requirements:
bashnpm ci && npm run production composer i[4.57.4] Needs
composer i[4.57.2] Build requirements:
bashnpm ci && npm run production[4.57.3] Check for overrides:
Job_manager::executeJobVendors::baseVendorVendors::vendorsOrder::checkoutOrder::__recheck_orderOrder::previewOrder::editOrder::repeatOrder::addOrder_model::create_orderOrder_model::recheck_cartOrder_model::create_order_adminOrders_admin::addOrders_admin::repeatOrders_admin::editOrder_model::recheck_cart
[4.57.2] Check for overrides:
product_categories_admin::addaddedtags_comboto render and functionmanageCategoryTagsto handle tagsproduct_categories_admin::editaddedtags_comboto render and functionmanageCategoryTagsto handle tagsproduct_categories::buildTagsSideMenuaddedtagGroupsto render and filter groups
[4.57.2] Build requirements:
bashphp cli.php patch/createTagsCategoryLp[4.57.1] Experimental jobs are being called through
Job::jobinstead ofJob::indexwhich populates command arguments from db[4.57.1] Specific client notes:
- In Dioptra Client do not run the
php cli.php patch/menuColorFieldpatch - In Dioptra Client the ld_json.php and in master the over is the same
- In Dioptra Client do not run the
[4.57.1] Build requirements:
bashphp cli.php patch/jobCommands php cli.php patch/blogTree php cli.php patch/menuColorField[4.57.1] Check for overrides:
Product_categories::indexRemove overrides from Clients : Dioptra, LioliosBlog_category_model::getCategoriesListadded conditions as parameter, changed select to get all dataBlog_category_model::categoriesComboadded parameter togetCategoriesListBlog_category_model::getCategoriesFrontRefactored to use tree structure, also check methods accessinggetCategoriesFront(this might hurt)Blog_category_admin::blogCategoryAddRenderdropped function as it was loading lang lines already loadedBlog_category_admin::blogCategoryEditRenderdropped function as it was loading lang lines already loadedBlog_category_admin::addcode cleanup, removed droppedblogCategoryAddRender, moved form validation to separate function, added staff on renderBlog_category_admin::editcode cleanup, removed droppedblogCategoryEditRender, moved form validation to separate function, added staff on renderBlog_category_admin::deletecode cleanupBlog_category_admin::indexRefactored to group categories by parent_idOrder:smartPointsInitializechanged to load smartpoints only for active transporters
[4.57.0] Check for overrides:
Product_tags_model::fixAdminTagsSearchProduct_model::update_recordProduct_model::updateMuiProductRecordIqviaUpload::dbDataIqviaUpload::csvDataLineIqvia_model::ordersOrders_admin::close_pending_jobsOrders_admin::add
[4.57.0] To enable product clone modal on products list, set
enableModalCloneProductto true on theconfig/app.php[4.57.0] Build requirements:
bashphp cli.php patch/updateTransporterSettingsValueType php cli.php patch/blogFulltextIndex npm run admin-production npm run production
4.57.x strlen commit diff quick view
application/views/default/layouts/library/product_page/product.php
- if( strlen(trim($productBadgesText[$productData->product_img_type])) > 0 ): ?>
+ <?php if (!empty($productBadgesText[$productData->product_img_type])) : ?>
application/views/main/layouts/customer/order_check.php
- <?php if ( isset($errorMsgOrderCheck) && strlen( trim( $errorMsgOrderCheck ) ) > 0 ): ?>
+ <?php if (!empty($errorMsgOrderCheck)) : ?>
application/views/main/layouts/product_page/product.php
- <?php if( strlen(trim($badgeData['text'])) > 0 ): ?>
+ <?php if (!empty($badgeData['text'])) : ?>
Blog_admin::edit
- if (strlen($imageFile) > 0) {
+ if ($imageFile) {
Blog_author_admin::edit
- if (strlen($imageFile) > 0) {
+ if ($imageFile) {
Blog_category_admin::edit
- if (strlen($imageFile) > 0) {
+ if ($imageFile) {
- if (strlen($smallBannerFile) > 0) {
+ if ($smallBannerFile) {
- if (strlen($promoBannerFile) > 0) {
+ if ($promoBannerFile) {
Blog_author_model::getAuthorRecord
Blog_category_model::getCategoryRecord
Blog_model::getBlogRecord
Blog_model::getBlogDefault
Blog_tags_model::getTagRecord
Categories_model::create_slug
Front_c::languageMuiUris
Gifts_admin::index
Orders_admin::index
- if (strlen(trim($this->input->post('search_for'))) > 0) {
+ if (!empty(trim($this->input->post('search_for') ?? ''))) {
- if (strlen($this->input->post('date_start')) > 0) {
+ if ($this->input->post('date_start')) {
- if (strlen($this->input->post('date_end')) > 0) {
+ if ($this->input->post('date_end')) {
Orders_admin::view
- if (strlen($this->input->post('gen_tax_code')) > 0) {
+ if ($this->input->post('gen_tax_code')) {
Product_categories::set_filter
Product_categories_admin::search
- $keyword = $this->input->post('keyword');
- if (!is_null($keyword) && strlen(trim($keyword)) > 2) {
+ $keyword = $this->input->post('keyword') ?? '';
+ if (strlen(trim($keyword)) > 2) {
Products::index
- if (strlen((string)$topCatData['master']->menu_color) > 0) {
+ if (!empty($topCatData['master']->menu_color)) {
Skroutz_orders_admin::index
- if (strlen(trim($this->input->post('search_for'))) > 0) {
+ if (!empty(trim($this->input->post('search_for') ?? ''))) {
Vendors::vendors /* Breadcrumbs */
Last_seen_products_model::addLastSeenProducts
- if (strlen($ids > 0)) {
+ if ($ids) {
Last_seen_products_model::getLastSeenProducts
- if (strlen((string)$ids) === 0) {
+ if (empty($ids)) {
Product_category_model::create_slug
- $slug .= (strlen($slug) > 0) ? '/' . $name : $name;
+ $slug .= $slug ? '/' . $name : $name;
Product_category_model::get_children_with_anchors_unarrayed
- if (!is_null($param) && strlen($param) > 0) {
+ if ($param) {
Product_category_model::get_published_children_with_anchors
- if (!is_null($param) && strlen($param) > 0) {
+ if ($param) {
Product_category_model::get_children_with_anchors
- if (!is_null($param) && strlen($param) > 0) {
+ if ($param) {
Product_category_model::get_record
- if (strlen($lang) > 0) {
+ if ($lang) {
Product_category_model::get_details
- if (strlen($id) > 0) {
+ if ($id) {
- if (strlen($lang) > 0) {
+ if ($lang) {
Event_categories_model::getRecord
- if (strlen($lang) > 0) {
+ if ($lang) {
WellcommXml::parseWellcommItem
if (!array_key_exists('main', $firstCodeImages)) {
- return $item = [];
+ return [];
}
- 'name' => strlen($product->name) ? (string)$product->name : (string)$product->name,
- 'EAN' => $product->barcode
- ? $product->barcode
- : $this->config->item('site_name') . ' - ' . (string)$product->{$this->dbIdKey},
+ 'name' => $product->name ?? '',
+ 'EAN' => $product->barcode ?: $this->config->item('site_name') . ' - ' . $product->{$this->dbIdKey},
WellcommXml::splitProductWithColors
- $name = strlen($product->name) ? (string)$product->name : (string)$product->name;
- $name .= " [{$colorCaption}]";
+ $name = $product->name;
+ $name .= " [$colorCaption]";
Maps_model::getAdminRecord
- if (strlen($lang) > 0) {
+ if ($lang) {
Maps_model::getPoint
- if (strlen($lang) > 0) {
+ if ($lang) {
Keywords_model::get_default
- if (strlen($lang) > 0) {
+ if ($lang) {
Metatags_model::get_default
- if (strlen($lang) > 0) {
+ if ($lang) {
Sliders_admin::edit
- if (!strlen($id) > 0) {
- return $this->error_404();
+ if (!$id) {
+ $this->error_404();
+ return;