Osclass 8.3.0 ------------------------ - IMPORTANT: Osclass now fully supports PHP 8.3 & PHP 8.4 version. - IMPORTANT: Many core osclass functions has been rewritten and optimized in order to reduce loops and unnecessary database queries. Osclass preload categories, cities, regions and countries to session and search directly here instead of doing extra DB calls (only if amount of data is acceptable). Massive optimization of functions and queries to preserve results in session & cache and reduce amount of database queries. - IMPORTANT: Added brand new feature that allows users to filter items on their user items page & user public profile page. Majority of standard search parameters are supported. Comes with friendly canonical URL features. Set of new functions has been added into models, helpers and controllers to support this feature. - IMPORTANT: Optimization of search URL and osc_search_url() function: Order column dt_pub_date will not be included in url anymore as it's default order column. Order type DESC will not be included in url anymore as it's default sort. - IMPORTANT: Major feature "Custom search rules" has been added into Settings > Permalinks. It is now possible to create 26 custom search rules based on params those are active in search. These rules can be strict or fuzzy - accepting also params not specified in rule settings. There is full support for plugin/theme custom parameters and custom field parameters (meta) as well. Custom search rules are fully compatible with subdomains. Custom rules has top priority above canonical rules. Rules are prioritized (Z - top priority, A - lowest priority) Examples: > {sCity}/{sCategory} -> /a/bremen/for-sale > {sRegion}/{sCity}/{sCategory} -> /b/alabama/bremen/for-sale > cat:{sCategory}/city:{sCity}/min-{sPriceMin}-eur -> /c/category:for-sale/city:bremen/min-55-eur Examples with fuzzy logic, where extra params are enabled: > {sCity}/{sCategory} with {sRegion} -> /a/bremen/for-sale/region,alabama > {sRegion}/{sCity} with {sCategory} and {sShowAs} -> /b/alabama/bremen/category,for-sale/view,grid This feature is for advanced users and improper setup can cause unexpected behaviour! - IMPORTANT: Osclass now supports EMOJI! This includes change in connection, database and table charset. All these are changed by Osclass upgrade, but read carefuly! Some tables those has foreign key to table t_locale cannot be automatically converted and must be done manually by user that is looking for Emoji support. These are for example pages, category and user description tables and keywords table (Item description is converted by Osclass). For new installations, everything is created in charset utf8mb4, collate utf8mb4_unicode_ci. In case your DB would not support this charset/collate, you must migrate to one that supports it! - Canonical search URL as combination of category_city and category_region, that has been using underscore as delimiter, is now configurable via SEARCH_URL_CANONICAL_DELIMITER constant. Default value of SEARCH_URL_CANONICAL_DELIMITER has been changed to ":". - Added option on search page to apply pattern in search without locale restriction. Means search works on all item title & descriptions no matter what is user locale. - IMPORTANT: New interface to browse, search and manage logs has been added into Backoffice > Tools > Action logs. Note that Osclass was always collecting logs and if logs are collected or not and if logs are automatically cleaned or not, was never available in Osclass. Admin is now able to enable/disable logging in Settings > General, setup automatic cleanup by daily cron and define retention policy (ie remove logs after 24 months). It is possible to remove single log, cleanup all old logs (in Tools > Data Cleanup) and search in action logs. Logs were also enriched with comment and detail fields those will be populated in future, when needed. We strongly recommend to every admin, check your logs, update settings and drop old logs those are not required at all - it may lot of database space and optimize performance. - IMPORTANT: Alerts - subscriptions major improvements. Users can now change alerts frequency in user account area. Added extra fields like params, sql and trigger count, in general more options and details in backoffice. Improved trigerring of alerts, statistics capturing, search page url for alert, search title and more. - Improvements to cron commands and it's parameters. You can now define following params: force - to run cron even it's not right time yet - for easier debugging. In this case type of cron must be specified! It will accept &type=all as well. Only available for logged-in admin. print - to print summary of cron to see if everything was OK. Only available for logged-in admin. type - or cron-type - both params are OK to specify which type of cron to run. New type "all" is supported if force=1. Sample URL: https://yourpage.com/index.php?page=cron&type=daily&force=1&print=1 - Enhanced search features in Backoffice > Users. Added search by phone and ZIP, by default search is now wildcard and supports exact match by using double quotes. - Enhancements with TinyMCE in backoffice + design updates especially for fullscreen mode. Refactor of image uploader script. Images from clipboard can now be added for items as well now (same as for static pages & widgets) - only from backoffice! - New features for Ban Rules: Hits - show number of hits for each ban rule. Each time ban rule is triggered, +1 hit is counted. Expire date - it is now possible to set expiration date for bans. Once expired, it is not applied anymore. - Widget will now be wrapped into div with class widget and additional html attributes. To support widget customizations, new filter widget_content and widget_content_wrap has been added as well. Widgets now support paste image from clipboard. - Enhanced category record management on listing & search page - reusing one from model instead of quering category table multiple times. - Enhancements to osc_item_category_price_enabled function, besides that new functions created: osc_item_category_row, osc_premium_category_row, osc_premium_category_price_enabled. - Added new filters for canonical URLs for easier support and customizations. - New option to Enhance canonical tags, by using default language code in canonical URLs, removing pagination parameter, sorting parameters etc. With enhance canonical url disabled: https://website.com/de-DE/search/sOrder,i_price/iOrderType,asc/category,1 With enhance canonical url enabled: https://website.com/en-US/category-one-slug - Sigma theme: Sort option dt_pub_date desc (default) will now not be included in search filters. This change means that for default sort type, search URL get nicer without redundant parameters. Numerous design improvements and fixed. When price is disabled in category, price will be hidden everywhere in theme. Enhanced design for header - my account & logout, added user profile image as well. - Function osc_user_public_profile_url() got 2 updates: Added 2nd parameter $user where is possible to pass user array and avoid extra database call. Added 3rd parameter $mode that supports "username" and "id" values. "username" is default, means that username will be used in public profile URL. - Item views (stats) can now be set to count 1 view per page load or 1 view per session. Added item views into Sigma item page (below description). - Expiration date of listing in backoffice has been moved below category and is now much easier to manage. Besides that, it is now possible to update item publish date as well. - New function osc_get_theme_hook_compatibility() to get hooks compatibility from theme. - New set of functions for Search model to easily remove location from search conditions. Added new function addZip to search by ZIP code. - New hooks for structured data. Default structured data rating value (in case no comments exists) is now set to 3 instead of 0. - User public profile page - it is now possible to enable public profile just for company users or all registered users. Added new configuration parameter to user settings to set minimum number of items, that users must have published to have public profile enabled. If user does not meet requirements on public profile page, it shows 404 page instead. - New features in Appearance > Customization: Added new customization field "Custom Javascript", where customized javascript functions and codes can be placed. Content is placed between script tags. It is now possible to select hook to be used to show content in front office. - Added new options to manage and clean latest searches. Besides hourly, daily and weekly, it's possible to purge latest searches also monthly and yearly. - Created new function osc_get_user_row($id), osc_get_item_row($id), osc_get_category_row($id), osc_get_country_row($code), osc_get_region_row($id), osc_get_city_row($id), osc_get_locale_row($code), osc_get_currency_row($id) that retrieve object from database and save it into session to reduce number of DB queries. - Improvements in Tools > Import Data: Now error message with code is shown in case import to database fail. Added support for variables /*TABLE_PREFIX*/ and /*LOCALE_CODE*/. - TinyMCE editors has now much more features & options in backoffice that can be especially useful on static pages (no change in front-office). - It is possible now to change user registration date from backoffice. - It is now possible to stop mail sending via pre_send_mail_filter filter (if returns array('stop' => true)). Besides that function osc_sendMail now has 2nd optional parameter $type. - Improvements to various functions & design across Osclass. - Permalinks configuration page in backoffice has been redesign and is now much more intuitive. - Major enhancements to installation process especially in case something is not supported or installation is failing. Improved installation error messages - from database - to provide more details. - Default jQuery version is now 3.x (does not impact existing installations - only new). - Fixed alerts bulk actions functionality. - Fixed bulk action translations in backoffice. - Function osc_query_items() now supports much more custom parameters and conditions. - Added hooks user_recover_form and user_forgot_password_form. - Added "Lookup IP" link into backoffice. It's possible to configure lookup IP service in config.php as constant IP_LOOKUP_SERVICE. By default IP_LOOKUP_SERVICE = https://whatismyipaddress.com/ip/{IP_ADDRESS}, where {IP_ADDRESS} is variable replaced by Osclass. - Fixes and improvements to latest search functions. - Fixed bug on search page, pagination, RLT (Arabic) languages, category search page - page 2 and higher was returning 404. This is now resolved. - Fixed bug with category cascading drop downs, when there was more than 4 levels, it might result in incorrect behaviour when chaning categories. - Fixed bug when native location names were not applied on regions/cities loaded via ajax. - Fixed bug with latest searches purge by number of queries. - Created new helper file for currency functions. - AjaxUploader was updated to be able to work with it from plugins/themes side not just to upload item images. - Cache features (memcache, memcached, redis, ...) are now completely disabled in backoffice. - Improvements to backoffice top toolbar design. - Added more options to work and control flash messages. New filters enables full control over adding and showing flash messages. Now messages has also keys and raw text. - Improvements of market section in backoffice. It is now possible to filter products with expired support. These also get red background. Besides that expired products show price for extension, not full price. - Instant alerts (subscriptions) are now executed with minutely cron (before not executed at all). - Improvements to Uppy.io image uploader and it's compressor plugin. It is now possible to enable "optimize uploaded images" in media settings to compress original uploaded images (temp folder) and reduce it's dimension. - Search page no longer use noindex,nofollow tags as canonical URL should always be provided. - Refactor of breadcrumbs code, fixing bug with possibly wrong region and added country to search page breadcrumbs. - Improved checks (for view counts and "mark item as") if visitor is real user or bot. Introduced new function osc_visitor_is_real_user() that unify checks. - Change in Search class for subdomains - by default, if not explicitely disabled in constructor, every Search class object will get subdomain conditions & filters auto-applied. Means, if you are on country-based subdomain, Search class by default filter listings for this country only. Same for Region, City, User and Category. - Redesigned function osc_subdomains_filter_conditions($item_table = '') to simplify it's usage in order to apply subdomain conditions and filters. New functions create to support this: > osc_subdomains_filter_to_search($mSearch, $item_table = '') - use on Search object to instantly apply correct conditions. > osc_subdomains_filter_to_dao($object, $item_table = '') - use on DAO object to instantly apply correct conditions. It is possible to apply subdomain filters on listing search just by running 'custom_item_query' hook on specific DAO query. - Premium views (stats) are now not counted only if user is not admin, is real visitor and is not owner of premium listing. - Added support for attachments in web contact form of Sigma theme. - Enhanced attachment check when uploading files to contact form. Added file validation to item contact form attachments (mime type). - Item expiration notification has been enhanced. It is now possible to set notification 0 days before expiration (-1 to disable). Query getting expiring items has been optimized and redesigned. - Sigma theme function osc_uploads_url defined in functions.php must be removed or renamed! It is clashing with core Osclass function and might cause logo not to be correctly displayed. Rename it or update Sigma manually. - Remember me checkboxes in front & back office login are now checked by default. - Added plugins integrity check that identify plugins those are in incorrect state. - Improvements to item url generation when subdomains are enabled. - Child themes are no longer considered for update (based on parent theme). Osclass 8.2.1 2023-12-01 ------------------------ - Fixed bug, where users could only upload 1/2 or allowed number of photos on listings. - Fixed several error notices and warnings. Osclass 8.2.0 2023-11-24 ------------------------ - IMPORTANT: New image uploader library implemented - UPPY.IO image uploader. Uppy.io will be selected as default image uploader on all new Osclass installations (does not impact existing installations). No theme modifications are required. - IMPORTANT: Images on item publish/edit page can now be reordered. Reordering no more use "naming of files" as way to sort images inside listing. Works for existing & newly uploaded images all together. Only works with Uppy.io image uploader. No theme modifications are rquired. - IMPORTANT: Profile picture uploader got new library - UPPY.IO. Admin can define in backoffice what library to use (cropper or uppy). Integration guide created on docs: https://docs.osclasspoint.com/integrate-user-image-uploader-to-user-profile Existing integrations may not need any update, as script are now automatically loaded and previous construction is kept. Uppy.io will be selected as default profile picture uploader on all new Osclass installations (does not impact existing installations). - Important: Major improvements in RSS feeds (yoursite.com/feed). Many new item fields added. RSS feed can now be disabled as well. When disabled, page returns 404. New hooks and filters created to support flexibility of data in RSS feed. - Important: Logic for collecting listing statistics has changed. Now, only 1 stat counts towards 1 user session. This change applies to all "stats", including item views, premium views and reported stats (spam, misclassified, duplicated, expired, offensive). Why? 2 reasons: a) item & premium views were very unaccurate, b) this helps to significantly decrease database load caused by spam bots hitting all possible links, including "mark as...". - Important: Big update with item_form and item_edit hooks, those now support different variants (ie. item_form_top), that allows to customize publish/edit page. Plugin now can use custom variants of hooks and show data based on category selection on numerous places (ie. below category, blow description etc.). - Send to friend form can now be disabled in listing settings. Disabling send to friend form will not disable whole send to friend page, as it's used by many themes to manage custom forms. - New hook user_locale_changed, when user locale has been changed. - Numerous updates to core Osclass emails those will try to identify correct user locale. Admin emails are not sent anymore in user locale, instead they are always sent in site default locale. - It is now possible to define default currency for each language. Language settings were also split into several sections. - New setting available: max category levels (nesting) - it is possible to set how many subcategories your Osclass will support. There is hard limit for levels value, minimum is 1, maximum is 12. Previous Osclass versions supported only max 4 levels. - Sigma theme design improvements. Theme now use new font family for both text & headers. - Improvements in ReCaptcha configuration. It is now possible to disable ReCaptcha using checkbox and keep API keys defined. Warning: if you use built-in recaptcha, it will get disabled automatically after update. Make sure to enable it in Spam and Bots settings. - Fixed bug with search url that added language code twice - when "language code in url" option enabled. - Fixed bug with specific categories (contains number in slug) on search page, those on PHP8 would not result in 404 page if they does not exists (i.e. category a1a2) - Fixed problem to unzip language, theme or plugin because ZipArchive could not read parent directory in ZIP archive. - Small fixes and improvements in search. - When downloading/sharing language zip, empty folder is first created for compatibility purpose. - Following keywords are now supported in structure of item url: {CATEGORY} - New option to run/get data from Osclass via ajax using "custom_hook" action that execute "ajax_custom" hook. - Added limit 50000 records into Tools > Cleanup to avoid getting PHP memory errors in case there are millions of records to be removed. This brings need to repeat process several times, but makes feature functional for every situation. - CURL PHP extension added into requirement list to install Osclass. - Fixed small security vulnerable in backoffice with widgets (KVE-2023-5009). - Fixed bug with category_multiple_selects (category multiselect on publish page) that did not selected last level of category, when category ID was provided. Osclass 8.1.2 2023-04-25 ------------------------ - Backoffice translation "Share" function will only send translation to Osclass team if it contains all required files. It will also not include irrelevant files to this translation. - Osclass will now throw warning message on translation page, if "max_input_vars" variable is high enough to complete full translation. - Translation share button was re-positioned and renamed. - When core translation is saved, related index.php file of this translation is updated with correct Osclass version and new fields added into array. - When using language code in URL, changing language will now not redirect user to home page, but will remain on same page in selected locale. - Premium listings (osc_get_premiums) are now cached for specific user/session separatelly. - Added folders permission check when saving or updating translations from source code. - Updated conversion of Greek alphabet to Latin in URLs. - Updated conversion of Turkish alphabet to Latin in URLs. - Improvements in auto-upgrade process to avoid extra clicks after upgrade has finished. - Required custom fields now contains star (*) in label name on publish page. - Added descriptive details on publish page related to custom field ID, type etc. - Log file in Tools > Debug/Error log section can now be removed (remove button added). - Theme functions has been added into CRON and can be executed by CRON as well (they were not included until now). - jQuery UI library used in backoffice reverted to 1.12 because of compatibility issues. Front-end still use latest 1.13 version of jQuery UI. - Updated sigma_default_direction function to first check RTL setup on language field. - Added hooks user_pre_login_form & user_pre_register_form into Sigma theme. - Added PHPMAILER_DEBUG_LEVEL contstant (value 1 - 4) that allows to debug PHP mailer. - Excluded pages for CSS & JS optimization now consider page Location & Section (ie: item-item_add, item, home, register-register, login-recover, user-profile, ...). Default exclusion list will now continue item-item_add, item-item_edit. If you want to minify/optimize on these pages as well, update these settings after Osclass update. - Improved error reporting when image could not be loaded on publish page. - Added latitude & longitude fields into backoffice - edit listing form. Created also standardized inputs for latitude and longitude. - Added "Refresh images" option besides "Regenerate images", that will do the same except images building (will skip images generation and just call hooks). - Added {LOCALE_CODE} and {LOCALE_SHORT_CODE} as variable to all email templates. - Added new setting: Always Generate Canonical URL tag. It is generated on every page (not just search). - Added new setting: Generate hreflang tags and add them to header to define alternative site locales. - Added database tables engine check into backoffice. - Upgrade code for Osclass 2.x was removed. It's not possible to upgrade from older Osclass version than 3.0. - Fixed major bug when using language code in URL, plugin routes were corrupted. - Fixed recaptcha verifcation on login page. Now recaptcha is verified against google services on background. - Fixed PHP deprecated notices (PHP 8+). - Fixed and improved minor design issues on Sigma theme. - Fixes and improvements in hUser helper functions. - Fixed missing resource_thumbnail_url filter across multiple files in Osclass core and backoffice. - Fixed osc_user_public_profile_url() function to include language code in URL when enabled. Osclass 8.1.1 2023-02-02 ------------------------ - Fixed bug with unwanted cache of user and item objects. - Improvements in upgrade process. Osclass 8.1.0 2023-01-31 ------------------------ - IMPORTANT: Minimum PHP version to run Osclass has changed from 5.6 to 7.2 (based on library dependencies). - IMPORTANT: Osclass now fully supports PHP 8.1 version. - IMPORTANT: Osclass now fully supports PHP 8.2 version. - IMPORTANT: Osclass now supports Memcached & Redis (beta) as caching option (besides Memcache, APC and APCU). Fixed cache statistics and reporting stats when constant OSC_CACHE_DEBUG is set to true & admin is logged-in, in same way as database queries. Added numerous queries to cache features in order to reduce load time of queries. Fixed bugs with using wrong key to set & retrieve cache. - IMPORTANT: Multisites feature removed from Osclass. It was not functional, incorrectly designed and present just confusion what this feature should do. - New feature: Subdomain improvements and new functionality. New subdomain type: Language based subdomains. Subdomain landing page - it is now possible to turn "top-domain" into landing page for subdomains. Subdomain automatic redirect - it is now possible to automatically redirect visitors to country based subdomains, using their IP info and geoplugin.com service. Subdomain restrictions - it is now possible to restrict country based subdomain to be accessible just from same country (i.e. Poland subdomain from Poland). Added function osc_get_subdomains() that generates array with detail information about subdomains. Added function osc_subdomain_links() that generates list of links those leads to subdomain pages. Added function osc_subdomain_select() that generates select box to choose subdomain. When subdomain selected, user is automatically redirected to this subdomain page. Added more supporting functions like osc_is_subdomain(), osc_subdomain_id(), osc_subdomain_top_url() and much more. Updates and improvements of Subdomain features, item URLs fixed not to contain duplicated information. Completed documentation page for subdomain functions and subdomain setup (docs.osclasspoint.com). - New feature: It is now possible to add language code into URL. This feature is still in "beta" and require proper testing. Admin can define to use short format (xx: en/de/fr/ar/...) or long format (xx-yy: en-us/de-de/ar-sy/...). Only works when friendly URLs are enabled. - New feature: Built-in translations management system with following features: Translate PO (MO) files directly from backoffice. Create new PO (MO) files. Update or create PO (MO) files from source code. Copy (merge) translations between different translation catalogs. Open PO file in browser, search for translations on market. Download translations catalog as ZIP archive. Send (share) translations catalog with Osclass team & community. Only complete translations can be shared. Remove translations catalog. Translations catalog statistics, comments, code references, flags (fuzzy/need work) and completeness. - New feature: Comment reply has been implemented. Admin can enable comment replies for everyone, logged-in users, listing owners or only admins. Rating can be disabled on comment replies. In backoffice, comments section has been sligtly redesigned, into table has been added comment title, listing link has been separated from user, added columns "Is reply to comment" and "Has replies". In backoffice, admin can filter listing comments based on their parent comment, new actions has also been added to quick action menu. Comment reply is brand-new feature, theme modifications are required in order to make it work (check blog/docs for implementation). - New feature: It is possible now to limit number of ratings that can one user make on one listing. If limit is reached, user cannot rate listing anymore. You can set limit to 1, but also to higher number, i.e. 3 ratings per each item & user. - New feature: Static page visibility options. Admin can now define to whom is each static page visible. There are several options: Visible to anyone, only to logged in users, only to personal users, only to company users, only to admins or page is not visible to anyone. - New feature: Admin menu elements has been shuffled based on frequency of usage by administrator, but also by similar "topic". New menu element has been created with name "International", grouping functionalities related to localization & international setup (languages, locations, translations, currencies). New menu element has been created with name "Admins", grouping functionality related to administrators (list, your profile). Comments settings has been removed from Settings menu. Languages & currencies has been moved from "Settings" menu to "International" menu, having their own classes and spaces. - New feature: Latest search ban words has been added. It is possible to define banned words or white listed words. Admin can now easily purge all latest searches as well. - New feature: Added country flag images into oc-includes/images/flag/country/h48/. All images has same height 48px, there is also "default.png" as a placeholder flag. - New feature: Admin can now disable "Mark listing as" feature completely in (Listings > Settings). - Update: Item URL now support much more keywords. New keywords: {ITEM_COUNTRY},{ITEM_COUNTRY_CODE},{ITEM_REGION},{ITEM_CITY_AREA},{ITEM_CITY_ZIP},{ITEM_CONTACT_NAME},{ITEM_CONTACT_EMAIL},{ITEM_CURRENCY_CODE},{ITEM_PUB_DATE} - Update: All JavaScript (jQuery) assets has been updated to latest available versions. - Update: Sigma theme does not show ratings anymore, until comment contains rating (is not null or 0). If user has not selected rating in comment, this comment will not have zero rating shown (5 gray stars). - Function osc_total_users has been redesigned, now supports 2 optional parameters $type (active, enabled, online, custom) and $condition, that is used just in case $type is custom. - Admin menu layout and features has been improved and menus at bottom are opened "from bottom" instead of "from top". - Important: Fixed long-term issue with login time and that even after pressing "remember me", login least just several hours or days. Now login can persist up to 3 years. - User statistics (i_items, i_comments) will now be refreshed on daily base. - Pages table has been redesigned and much more information is now available in table. - Email templates table has been redesigned and create date is now available in table. - Width of static page form has been reduced to max 840px in order to provide more realistic preview. - When static page is modified or created, admin is redirected back to this page instead to pages list. - Child themes now support custom functions file: functions_child.php This file extends functions.php (not rewrite) and allows to define customized functions for child theme. - Updated design in Tools > Debug/Error log section. - Flash messages in backoffice has been slightly redesigned in order to provide easier way to identify type of message (error/warning/success/info). - New "tip" has been added to categories section when selecting of parent categories is disabled. - New "tip" has been added to languages section informing admin about default language. - New "tip" has been added to add plugin section informing admin about possibility to quickly upload more plugins directly into oc-content/plugins folder. - When site is in maintenance mode, this information is visible in backoffice dashboard now. - In backoffice, when comment is successfully edited, redirect URL has changed and admin is redirected back to comment edit page. - Cookies core has been redesigned, old issues with storing cookies fixed. - Added new filters item_post_data, item_edit_data to control item data right before they are inserted into database. - Added new filters user_insert_data, user_edit_data, user_update_description to control user data right before they are inserted into database. - Created new function osc_logged_user() to instantly return logged user record without need to query database. - Fixed problem with populating of regions and cities on dynamically generated boxes. - When updating Osclass, database integrity check (comparing to struct.sql) is disabled by default as it is not needed at all. Behaviour can be controlled via UPGRADE_SKIP_DB constant - set to false to enable integrity check. - More improvements with upgrade process and auto upgrade. - In backoffice, currency description has been renamed to currency symbol. - Added support to change price input box to "number" instead of "text" as 2nd parameter of function ItemForm::price_input_text(). - Formatting now removes Vietnamese accent (when constructing URL or sanitizing string). - Support for constant OSC_FORCE_DISABLE_URL_ENCODING. When defined to true, Osclass URLs will not be encoded even contains non-latin characters. - Fixed usage of COOKIE_DOMAIN constant, if defined. Update: always define COOKIE_DOMAIN without leading dot (.). - Fixed bug with THEME_CATEGORY_TABLE feature (Epsilon theme). - Fixed rich edit (tinymce) selector in backoffice - items, to select only description textareas. - Fixed filtering comments by item ID. - Fixed incorrect listing price (multiplied by 1000000) in structured data. - Fixed SSL error when Osclass tries to get SSL certificate for IP address (PHP Warning: fsockopen(): Unable to connect to ssl). - Fixed osc_premium_url() function and now is identical to osc_item_url(). - Fixed multiple white spaces in some meta tags (title/description/keywords). - Fixed admin side menu scrolling. - Cleanup: Removed languages folder from omega theme (as core already contains it), removed "less" folder as it was not used. Osclass 8.0.2 2022-05-06 ------------------------ - IMPORTANT: "upsert" function has been added into DAO that makes working with database much simpler, especially for plugin developers. Function is combination of insert and update and does INSERT INTO *** ON DUPLICATED KEY UPDATE *** - New feature: Image canvas background can now be changed from white to black. Extremely useful feature in case theme design would prefer black image canvas instead of white. - New option in user settings: Username generator. It is possible now let osclass generate usernames based on name of user and not based on ID. This may have positive impact on SEO, as username is used to generate public profile URL of user. - Media section in backoffice slightly redesigned. - Renew button has been added into listings list in backoffice. Only item that is eligible for renewal can be renewed, otherwise this button is hidden. - Osclass generator meta tag can now be hidden in Settings > General. New filter has been created: meta_generator, that allows to customize generator content if needed. - Function osc_register_script now support attributes parameter (last - 4th) that allows to add attributes to