Popis
Pomocí jednoduchého shortcode můžete proměnit jakýkoli zdroj předplatného iCalendar (ICS) (Kalendář Google, Microsoft Office 365, Apple iCloud, Airbnb, Vrbo a mnoho dalších) na bezproblémově integrovaný kalendář WordPress s automatickou aktualizací, který nevyžaduje údržbu.
Pokračujte ve správě událostí v kalendářové aplikaci, kterou již používáte! Na svém webu WordPress budete mít automaticky aktuální kalendář bez práce navíc.
Kalendář lze zobrazit v měsíčním nebo týdenním pohledu, případně jako seznam. K dispozici je mnoho různých možností nastavení a přizpůsobení. Prohlédněte si Uživatelskou přírůčku, ve které získáte další informace a podrobnosti.
Není potřeba používat API!
Funguje s KAŽDÝM softwarovým kalendářem, který generuje dostupný soubor typu iCalendar.
Živá ukázka
Můžete si zkusit zobrazit svůj kalendář na naší stránce: icscalendar.com/preview
Nástroj pro vytváření krátkých kódů
Začít používat kalendář ICS je díky našemu novému online nástroji pro tvorbu zkrácených kódů snazší než kdy dříve: icscalendar.com/shortcode-builder
Podpora jazyků
Všechny datové řetězce (dny v týdnu, měsíce atd.) jsou automaticky přeloženy do nastaveného jazyka webu (viz Nastavení > Obecné > Jazyk) včetně formátů data a času pomocí základní funkce WordPressu. Veškerý textový obsah samotného kalendáře se zobrazuje tak, jak je převzat ze souboru kalendáře.
Malé množství dodatečného textu zobrazeného na front-endu generovaného pluginem je ve výchozím nastavení na americkou angličtinu, ale podporuje také následující překlady: čínština, dánština, holandština, estonština, finština, francouzština, němčina, řečtina, maďarština, italština, japonština, korejština, lotyšština, litevština, norština, polština, portugalština, ruština, španělština a švédština.
Pokud chcete, abychom přidali podporu pro váš jazyk, kontaktujte nás prosím.
Tento plugin obsahuje knihovnu PHP ICS Parser. Knihovnu napsali Jonathan Goode, John Grogg and Martin Thoma (licence MIT).
Instalace
Až bude plugin nainstalován a aktivován, použijte níže uvedený zkrácený kód (přidáním vlastní adresy URL ICS feedu mezi uvozovky) a vložte kalendář do svých stránek. Použijte náš online nástroj pro snadné vytvoření vlastního zkráceného kódu nebo se podívejte do uživatelské příručky na další informace.
[ics_calendar url=""]
Ujistěte se, že vkládáte URL kanálu iCalendar (ICS) (tj. pro import do programu kalendáře), nikoli URL pro zobrazení kalendáře ve webovém prohlížeči. Chcete-li vyzkoušet, zda máte správnou adresu URL, vložte ji přímo do adresního řádku prohlížeče. Mělo by dojít ke stažení souboru .ics
, nikoli k zobrazení kalendáře v prohlížeči.
Nejčastější dotazy
-
Jak najdu URL adresu zdroje ICS mého kalendáře?
-
Různé kalendářní systémy mají různé způsoby, jak získat URL kanálu. Níže naleznete pokyny pro běžně používané kalendáře. Užitečné informace poskytne i dokumentace vámi použitého kalendářního systému.
Ujistěte se, že je váš kalendář veřejný. K soukromým kalendářům nemá plugin přístup.
Odkazy na dokumentaci:
-
Jak vložím kalendář na svou stránku?
-
Použijte tento zkrácený kód a mezi uvozovky vložte adresu URL kanálu ICS:
[ics_calendar url=""]
Ujistěte se, že vkládáte URL kanálu iCalendar (ICS) (tj. pro import do programu kalendáře), nikoli URL pro zobrazení kalendáře ve webovém prohlížeči. Chcete-li vyzkoušet, zda máte správnou adresu URL, vložte ji přímo do adresního řádku prohlížeče. Mělo by dojít ke stažení souboru
.ics
, nikoli k zobrazení kalendáře v prohlížeči. -
Můžu kombinovat více kalendářů?
-
Ano! Můžete kombinovat více kalendářů tak, že do parametru
url
uvedete více než jednu adresu kanálu. Oddělte adresy URL kalendářů jednou mezerou nebo znakem|
. Nepoužívejte žádné jiné oddělovací znaky, budou interpretovány jako součást adresy URL. -
Proč se můj kalendář nenačítá?
-
Může to být způsobeno konfigurací vašeho serveru. Tento plugin vyžaduje buď rozšíření PHP cURL, nebo nastavení PHP
allow_url_fopen
. Pokud si myslíte, že toto způsobuje problém, zkontrolujte konfiguraci PHP nebo správce serveru. Můžete také přidatdebug="true"
do svého krátkého kódu a zobrazit svou stránku, abyste viděli výstup ladění, který může poskytnout další podrobnosti o případných problémech s připojením. -
Proč se můj kalendář neaktualizuje?
-
Z důvodu výkonu používá tento plugin WordPress transients k ukládání načtených dat kalendáře po dobu jedné hodiny mezi požadavky na zdrojový server kalendáře. Pokud jste aktualizovali události, které se na vaší stránce nezobrazují, přejděte na stránku Kalendář ICS ve správci webu a klikněte na tlačítko Vymazat data kalendáře v mezipaměti.
Third-party caching plugins may interfere with ICS Calendar’s feed syncing. If you are using a caching plugin and your calendar is not updating, try using the AJAX option in your shortcode.
-
Proč jsou časy událostí po začátku letního času o hodinu posunuty?
-
PHP má dva různé způsoby definování časových pásem: jako počet hodin s odchylkou od GMT/UTC (např. „UTC-5“) nebo jako kombinaci kontinent/město (např. „Amerika/Chicago“). Časová pásma používající offsety UTC nezpracovávají letní čas správně (jak je uvedeno v dokumentaci PHP). Zkontrolujte prosím nastavení svého časového pásma WordPress (Nastavení > Obecné > Časové pásmo). Pokud je nastaven na posun UTC, změňte jej na město nejblíže vaší poloze ve stejném časovém pásmu. Od verze 6.0 můžete také nastavit časové pásmo v rámci krátkého kódu pomocí parametru
tz
. (Opět se ujistěte, že používáte pojmenované časové pásmo regionu/města, nikoli posun UTC.) -
Další dokumentace a podpora
-
Naše Uživatelská příručka obsahuje rozsáhlou dokumentaci všech funkcí pluginu, je často aktualizována a je přeložena do všech jazyků podporovaných pluginem.
-
Požadavky na funkce
-
Placená verze ICS Kalendáře Pro má více možností zobrazení, nástroje nastavení kalendáře bez nutnosti přímé editace CSS souborů, vylepšený nástroj pro vkládání a mnoho dalšího. Plugin se stále vyvýjí a tak stále přidáváme do obou verzí další možnosti a vylepšení. Pokud máte návrhy na funkce, které byste rádi viděli, nebo jakékoliv další podněty, dejte nám prosím vědět na stránce podpory, kam se dostanete z administrace, nebo ve Fóru podpory WordPressu. Základní plugin bude vždy k dispozici zdarma.
Recenze
Autoři
ICS Calendar je otevřený software. Následující lidé přispěli k vývoji tohoto pluginu.
SpolupracovníciPlugin „ICS Calendar“ byl přeložen do 6 jazyků. Děkujeme všem překladatelům za jejich pomoc.
Přeložte “ICS Calendar” do svého jazyka.
Zajímá vás vývoj?
Prohledejte kód, podívejte se do SVN repozitáře, nebo se přihlaste k odběru protokolu vývoje pomocí RSS.
Přehled změn
11.3.3.2 – 2024.09.18
- Modified logic around the
nolink
parameter, to strip an event’s URL from the array during the initial parsing process, rather than relying on later conditionals in templating functions, which in some cases would still show the link even ifnolink
was set. - Added support for the vendor-specific
X-MICROSOFT-CDO-BUSYSTATUS
field as a fallback for the iCalendar spec-compliantSTATUS
field.
11.3.3.1 – 2024.08.22
- AJAX:
- Improved error handling when AJAX request fails. Removed repeated attempts on failure, due to the nature of the error being tested for.
- CSS enhancements to approximate initial height allocated for the calendar, based on view. (Intended to improve Cumulative Layout Shift [CLS] scores with PageSpeed Insights.) Note: There is no way to precisely determine the height of the calendar before it’s loaded.
11.3.3 – 2024.07.31
- Changed height on AJAX container while loading from
32px
to75vh
to reduce impact on Cumulative Layout Shift (CLS) scores with Google PageSpeed Insights. - Modified
sametab
parameter to support three values:local
,all
, andnone
. The defaultlocal
option is the same default behavior as before (when the parameter is omitted altogether),all
is equivalent to the previoustrue
value, andnone
is a new option that will force all event links to open in a new tab. Existing calendars do not need to be modified; the old values will continue to function as before. - Removed logic to insert
.offsite-link
CSS class in links that open in new tabs, since it was not being used anywhere in the plugin. If you have custom CSS that depends on this class, use this equivalent selector:.ics-calendar a[target="_blank"]
- Reverted change to conditional logic for events spanning two days, introduced in 11.3.2.1, because it is causing more problems than it is fixing. A new parameter will be introduced in the next update to make the 11.3.2.1 change optional for the smaller number of users who will benefit from it.
11.3.2.1 – 2024.07.19
- Changed names of settings actions to replace
admin_options
withsettings
for consistency with changes in 11.3.2. - Modified logic in some calendar rendering functions to prevent them from running unnecessarily and slowing down the Block Editor.
- Removed a conditional that treated events spanning two days, with start and end times, as one-day events rather than multi-day events. This older logic was obviated by subsequent changes in the plugin’s handling of multi-day events, but some users may be expecting the previous functionality. Please use the WordPress Support Forums to report any issues.
11.3.2 – 2024.07.08
- Renamed and relabeled „admin-options“ to „settings“ for consistency and clarity in future code updates.
- Added Increase memory limit when rendering calendars setting, to allow for adjusting the system memory limit specifically when parsing calendar data. (Also added related
r34ics_memory_limit_mb()
andr34ics_memory_limit_select()
functions.) - Bug fix: Added missing
r34ics_display_calendar_event_item
filter on certain multi-day events. - i18n: Aktualizace jazykových proměnných.
11.3.1 – 2024.07.03
- jQuery:
- Modified the
r34ics_init_start
andr34ics_init_end
custom events to pass anelem
parameter, containing the DOM object that called ther34ics_init()
function. On calendars not loaded via AJAX, the function runs on initial page load, and the value passed is null. When the calendar is loaded via AJAX, the object is thediv.r34ics-ajax-container
element for that calendar. This allows custom functions using this event to have access to the properties of the DOM element, including theid
attribute, so developers can write calendar-specific JavaScript.
- Modified the
- Miscellaneous:
- Standardized all checks for ICS Calendar Pro to use
class_exists()
and removed some ICS Calendar Pro-specific JavaScript by using ther34ics_init_end
event.
- Standardized all checks for ICS Calendar Pro to use
- i18n: Fixed incorrect text domain for translation strings in admin sidebar, and updated affected translation files.
11.3.0.1 – 2024.06.27
- Updated admin page to address possible issue of tabs not working.
- Added new plugin settings to System Report.
- Added
r34ics_raw_feed_strip_dtend_none()
function (using ther34ics_display_calendar_preprocess_raw_feed
filter) to handle edge cases where feeds include the invalidDTEND:None
. (This is an identified issue with easyVerein calendars.)
11.3.0 – 2024.06.13
- Admin:
- Fixed minor issue with ICS Feed URL Tester changes in version 11.2.2 that prevented display of the tested URL after submitting.
- Reorganized Settings tab with options grouped under subheadings.
- Basic Authentication:
- Added support for including HTTP Basic Authentication user/pass parameters directly in the feed URL in the shortcode, in addition to the previous constant-based method. This approach is still discouraged, since it involves putting the credentials directly in the shortcode and could potentially expose those credentials publicly if the plugin is deactivated, since WordPress outputs the text of any undefined shortcodes directly on the page. But considering that HTTP Basic Authentication is inherently insecure, this should not be a significant issue in most cases. If you are concerned about the confidentiality of your basic auth credentials, please continue to use the old approach. (Note: This change only applies to the new feed request method introduced in version 11, so it will not work if the Use legacy feed request method option is turned on. When using the legacy method, you must use the
basicauth
parameter in conjunction with theR34ICS_FEED_BASICAUTH
constant in yourwp-config.php
file.)
- Added support for including HTTP Basic Authentication user/pass parameters directly in the feed URL in the shortcode, in addition to the previous constant-based method. This approach is still discouraged, since it involves putting the credentials directly in the shortcode and could potentially expose those credentials publicly if the plugin is deactivated, since WordPress outputs the text of any undefined shortcodes directly on the page. But considering that HTTP Basic Authentication is inherently insecure, this should not be a significant issue in most cases. If you are concerned about the confidentiality of your basic auth credentials, please continue to use the old approach. (Note: This change only applies to the new feed request method introduced in version 11, so it will not work if the Use legacy feed request method option is turned on. When using the legacy method, you must use the
- CSS:
- Modified CSS for new
feedlabelindesc
so feed color dot only appears in event details hover box, and not in inline descriptions; added styling for feed labels in lightbox.
- Modified CSS for new
- Developer:
- Added
r34ics_display_calendar_event_item
filter. This filter runs immediately before a parsed event gets added to the data array for the calendar, allowing you to modify any event details as needed. This is very similar to our second example use case for the existingr34ics_display_calendar_filter_ics_data
filter, minus the need for five nestedforeach
loops!
- Added
- Event details hover/lightbox:
- Moved recurrence description to top, below time.
- Changed HTML wrapper for
img
fromdiv
tofigure
.
- Miscellaneous:
- Changed language code in iCalendar output for
eventdl
to reflect site locale instead of hardcodingEN
.
- Changed language code in iCalendar output for
- Vendors:
- Updated embedded ics-parser library to latest version (3.4.0+, up through commit 7286ce0.)
- i18n: Aktualizace jazykových proměnných.
- Bumped ‚tested up to‘ to 6.6.
11.2.2 – 2024.06.07
- Admin:
- ICS Feed URL Tester enhancements. Added suggestions for handling some common situations that may cause a feed request to fail or return incorrect results.
- Vylepšení CSS.
- Fixed a bug that caused ICS Feed URL Tester to always return an unknown error after changes introduced in version 11.1.0.
- Updated action links on Plugins page.
- Shortcode:
- Added
feedlabelindesc
parameter and related functionality.
- Added
- Miscellaneous:
- Added
R34ICS::shortcode_feed_array_params
property and logic to split pipe-delimited, feed-related parameters into arrays for easier logic elsewhere, plus related functionality, includingr34ics_shortcode_feed_array_params
filter. (This is used byfeedlabelindesc
and may be used by other future enhancements.) - Modified
r34ics_has_desc()
function to supportfeedlabelindesc
.
- Added
11.2.1 – 2024.05.30
- Shortcode:
- Added
eventlocaltime
parameter. Will display all times in the local timezone of the individual event, if applicable. Note: When this parameter is used, the timezone abbreviationT
will automatically be appended to thetimeformat
parameter while parsing the shortcode. - Added support for
T
(timezone abbreviation) intimeformat
parameter. Note: Currently only supports placingT
at the end of the string. (The timezone abbreviation will be inserted at the end of the time output, regardless of whereT
appears in thetimeformat
string.)
- Added
- Admin:
- Reordered Settings tab items.
11.2.0 – 2024.05.29
- Admin:
- Fixed issue after introduction of tabbed layout on ICS Calendar admin page that would cause the wrong tab to load after clicking buttons on the Utilities tab.
- Added „System Report“ link in sidebar.
- Shortcode:
- Added
fulldateintable
parameter. By default, month and list views show only the day number in the table on desktop breakpoints, and use the date format defined by theformat
parameter for mobile breakpoints. Whenfulldateintable="true"
is set, theformat
value will be used to display the date in the table on desktop as well.
- Added
- Miscellaneous:
- Added check for
R34ICS
class already being defined, to prevent a potential fatal error on plugin activation. - Added list of valid view names to allow fallback to month view if an invalid name is used. Use the new
r34ics_views
filter to add any custom view template names to the list. - Modified loading logic to run
r34ics_update()
if the version number has changed, not just if it has increased. - Updated protected properties of the
R34ICS
class.
- Added check for
- Hotfix:
- Modified CSS to prevent display of AJAX „loading“ animation being stuck after the calendar loads.
11.1.0 – 2024.05.22
- Admin:
- Redesigned admin screen with tabbed layout for improved usability, relabeled some elements, and updated links to User Guide documentation. Refactored associated code into discrete methods. Removed legacy JavaScript that was no longer in use.
- AJAX:
- Added new Always use AJAX to render calendars admin setting. This will automatically force all calendars on the site to render asynchronously using AJAX.
- Restructured AJAX rendering and added a JavaScript interval to automatically refresh all AJAX-loaded calendars on the same frequency as the site’s configured Transient (cache) expiration setting. (Minimum of 300 seconds.) Provides a way for pages containing calendars to be left open indefinitely (e.g. for kiosk displays) and receive updates.
- Parameters:
- Added new
hidecancelledevents
andhidetentativeevents
shortcode parameters. These hide events with aSTATUS
value ofCANCELLED
orTENTATIVE
, respectively.
- Added new
- Miscellaneous:
- Added fallback to get event URL from the URI property if it exists. The iCalendar spec includes a URI property, but not a URL property. However in our practical experience the URL property is commonly used by calendar vendors.
- Replaced several instances of null coalescing operators (
?? null
) with short ternary operators (?: ''
) setting empty strings rather than null values for event properties. This should not produce any noticeable changes in most cases, but may occasionally allow for values to be returned that have been missing in the output under the old logic. - Updated the set of fields that are masked by the
maskinfo
parameter to account for changes in the ics-parser library.
- i18n: Aktualizace jazykových proměnných.
11.0.1.2 – 2024.05.15
- Added
R34ICS::get_list_style_views()
andr34ics_list_style_views
filter to allow external addition of list-style views for certain conditional logic. - Performance improvements: Narrowed rough parsed date ranges defined in
R34ICS::display_calendar_date_range()
to reduce memory usage and processing time for calendars with a large number of recurring events. - Admin page layout adjustments.
- Debugging: Removed restriction that only reports dynamic peak of memory usage if debug level is set to 2 or higher.
- Bumped ‚tested up to‘ version to 6.5.3.
11.0.1.1 – 2024.05.02
- Developer:
- Added
r34ics_display_calendar_after_args
action.
- Added
11.0.1 – 2024.05.02
- Basic/list views:
- Pagination: changed default pagination count to 5 instead of using
posts_per_page
site option; cast pagination value as integer when set; fixed missing#
in previous/next pagination URLs. Fixed two jQuery bugs.
- Pagination: changed default pagination count to 5 instead of using
- Week view:
- Modified change from version 11.0.0.3 to adapt when the window is resized between phone and non-phone breakpoints. (The previous fix depended on the size of the window on initial page load.)
- Admin:
- Added
r34ics_is_block_editor()
function, and logic to prevent unnecessary processing potentially occurring on Block Editor screens.
- Added
- Developer:
- Added two new actions:
r34ics_shortcode_before_display_calendar
andr34ics_shortcode_after_display_calendar
. These actions fire off inR34ICS::shortcode()
before and after the call toR34ICS::display_calendar()
. - Corrected
add_action()
toadd_filter()
forr34ics_display_calendar_exclude_event
inclass-r34ics.php
.
- Added two new actions:
- Miscellaneous:
- Removed logic to run
gzdecode()
inR34ICS::_url_get_contents()
becausewp_remote_get()
already does that. Eliminates appearance of numerous related PHP warnings in log files.
- Removed logic to run
11.0.0.3 – 2024.04.23
- Week view:
- Fixed JavaScript issue of containers not extending to the full width in mobile „list“-style layout when switching between weeks.
- ICS feed request functionality:
- Updated
R34ICS::_url_get_contents()
to address some additional edge case issues introduced with the switch towp_remote_get()
in version 11.0.0 that were not fully resolved by the 11.0.0.1 update. Specifically, added customized handling of 301 and 302 redirects to use theLocation
header returned in the response object, rather than relying on the built-in redirection inwp_remote_get()
, which was causing some hosts (including Google Calendar) to reject the request. - Added Use legacy feed request method option on settings page, and corresponding
R34ICS::_url_get_contents_legacy()
method. For sites that are still not successfully retrieving feeds with the fixes added in 11.0.0.1, this option reverts to using the old method for requesting feeds using cURL and fopen functions. - Updated debugging tools for internal testing during development.
- Updated
(Note: Version 11.0.0.2 was intentionally removed due to a logistical issue.)
11.0.0.1 – 2024.04.18
- Fixes an issue with HTTP headers in the new method of retrieving ICS feeds. The issue was hotfixed approximately one hour after the initial release, but some sites may have picked up the update within that hour. This update also increases the timeout from 5 to 30 seconds, to address potential issues with retrieving very large ICS files.
11.0.0 – 2024.04.18
PLEASE NOTE: This version includes a significant rewrite of the function that retrieves the contents of ICS feed URLs. It is now using the built-in wp_remote_get()
WordPress function (instead of PHP cURL and fopen functions as before), so it should be fully compatible with all existing installations. However, if you encounter any new issues, please visit the WordPress Support Forums for assistance.
- Admin Settings:
- Added Allow access to these hostnames that resolve to reserved IP addresses setting. This allows sites to access calendar servers on the same physical IP address as the web server, or within the same internal network. Previously this needed to be handled using custom PHP code as outlined in this blog post.
- Code Refactoring:
- Replaced previous cURL and fopen logic with
wp_remote_get()
inR34ICS::_url_get_contents()
method. Correspondingly, deprecated thecurlopts
andmethod
parameters. Note: The second and fourth parameters of the protected methodR34ICS::_url_get_contents()
were removed rather than deprecated. No external plugins should be using this method other than ICS Calendar Pro, which has been correspondingly updated. - Removed admin notice checking for presence of cURL or fopen functions.
- Replaced previous cURL and fopen logic with
- WordPress Playground:
- Added
r34ics_is_playground()
function to detect if running in WordPress Playground.
- Added
- Miscellaneous:
- Added missing fourth parameter to
r34ics_event_description_html
action. - Changed Room 34 Creative Services logo link on admin page sidebar.
- Fixed PHP warning in
r34ics_system_report()
in rare situations whereget_option('active_plugins')
returns a plugin that is not included inget_plugins()
. (May occur if the plugin has been manually removed from the file system.) - Modified
R34ICS::event_description_html()
to handle$event['start_time']
and$event['end_time']
as alternatives to$event['start']
and$event['end']
. - Updated header details in
ics-calendar.php
.
- Added missing fourth parameter to
- a11y:
- Changed CSS for
.ics-calendar-arrow-nav > *.inactive
to completely hide inactive arrow navigation elements (e.g. „Previous“ while on first month, „Today“ while on current month, etc.) rather than screening back their opacity. Modified jQuery corresponding to these elements to dynamically addaria-hidden="true"
wheninactive
class is added.
- Changed CSS for
- i18n:
- Added and updated translation strings.
- Bumped ‚tested up to‘ version to 6.5.2.
Full Changelog
Changelog truncated here due to WordPress repository requirements. Please see changelog.txt
for older logs.