=== Papex University Schedule ===
Contributors: papex
Tags: schedule, timetable, university, calendar, education
Requires at least: 6.0
Tested up to: 7.0
Stable tag: 4.3.22
Requires PHP: 7.4
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Create, manage, import, export, and publish responsive university class schedules.

== Description ==

Papex University Schedule is a WordPress plugin for educational institutions that need to create and publish class schedules.

The plugin provides separate administration sections for lessons, student groups, teachers, rooms, and Excel import/export. Schedule data is stored in dedicated database tables instead of WordPress posts and post metadata.

Main features:

* Responsive monthly schedule calendar.
* Mobile-friendly lesson display with start times.
* Filtering by student group.
* Detailed lesson information in a modal window.
* Separate directories for groups, teachers, and rooms.
* XLSX import with file type validation and a 20 MB size limit.
* Technical XLSX export for editing and re-importing.
* Formatted XLSX export for viewing and printing.
* Schedule management access for WordPress administrators and editors.

Use the following shortcode on any page:

`[papex_university_schedule]`

The current interface language is Russian. The plugin uses the `papex-university-schedule` text domain and is being prepared for complete localization.

== Installation ==

1. Upload the `papex-university-schedule` folder to `/wp-content/plugins/`, or install the ZIP file through the WordPress Plugins screen.
2. Activate the plugin.
3. Add `[papex_university_schedule]` to the page where the schedule should appear.
4. Manage lessons and directories under the Schedule menu in the WordPress administration area.

== Frequently Asked Questions ==

= Where is schedule data stored? =

The plugin stores schedule data in dedicated WordPress database tables.

= Does the plugin support Excel files? =

Yes. It imports and exports XLSX files. CSV files are not used.

= Which roles can manage the schedule? =

WordPress administrators and editors can manage schedule data by default.

== Changelog ==

= 4.3.22 =
* Moved all administrative and print-page JavaScript into properly enqueued files.
* Moved print-page CSS into a properly enqueued stylesheet.
* Added dynamic print settings through wp_add_inline_style() and wp_localize_script().
* Removed direct script and style tags from PHP templates.

= 4.3.17 =
* The table print layout now shows the full weekday name below each date.

= 4.3.16 =
* Improved the table print layout for portrait pages and multi-page printing.
* Added unique print document names containing the current date and time.

= 4.3.15 =
* Added calendar and table print layouts.
* Added automatic, standard, compact, and ultra-compact density modes.
* Printed lesson time and title now share one line.
* Automatic fitting adjusts only overflowing day cells and preserves the time size.
* Added A4/A3 portrait and landscape orientation options.

= 4.3.13 =
* The monthly print layout now always fits onto one physical sheet.
* Added A4 and A3 landscape paper-size selection.
* Calendar rows automatically share the available page height, including six-week months.

= 4.3.11 =
* Added a standalone A4 landscape print view for the monthly schedule.
* Added a Print / PDF button to the public calendar.
* The print view can be printed directly or saved as PDF using the browser.
* Updated the Plugin URI.

= 4.3.10 =
* Removed the remaining Plugin Check warnings for read-only calendar and administration query parameters.
* Sanitized each XLSX upload field individually instead of using the raw upload array.
* Improved compliance with WordPress coding standards without changing calendar navigation or Excel import behaviour.

= 4.3.9 =
* Fixed all issues listed in the supplied WordPress Plugin Check report.
* Added unslashing and explicit sanitization for submitted administration data.
* Documented read-only query parameters that do not require nonce verification.
* Replaced restricted date calls with timezone-safe alternatives.
* Escaped sortable table header output.
* Replaced direct temporary-file reading and deletion with WordPress filesystem functions.
* Rewrote the plugin readme in standard English and added the languages directory.

= 4.3.8 =
* Added validation for PHP upload errors.
* Added WordPress file type and extension validation for XLSX uploads.
* Limited imported XLSX files to 20 MB.
* Displayed the file-size limit on the import screen.

= 4.3.7 =
* Restored the group-coloured left border for lesson cards without unnecessary `!important` declarations.

= 4.3.6 =
* Removed unnecessary `!important` declarations and moved group colours to CSS custom properties.

= 4.3.5 =
* Added the weekday below the selected mobile date.

= 4.3.4 =
* Marked the current date with a thin green circle and improved empty-day date labels.

= 4.3.3 =
* Improved mobile lesson borders, modal text colours, month navigation, and current-day indication.

= 4.3.2 =
* Improved mobile lesson time badges.

= 4.3.1 =
* Added mobile daily lesson cards and the Today button.

= 4.2.1 =
* Improved formatted Excel export for viewing and printing.

= 4.1.2 =
* Added technical and formatted Excel export modes.

= 4.1.1 =
* Added XLSX import and export.
