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.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.
10.14.1.5 – 2024.04.05
- AJAX:
- Fixed logic that replaces
FILTER_SANITIZE_STRING
(introduced in version 10.13.1.1) to properly account for array values in shortcode parameters.
- Fixed logic that replaces
- List and basic views:
- Eliminated unnecessary JavaScript fade-in on load, except when
pagination
orajax
option is in use.
- Eliminated unnecessary JavaScript fade-in on load, except when
10.14.1.4 – 2024.04.01
- General:
- Fixed issue with
extendmultiday
where it would extend one-day events as well as multi-day events.
- Fixed issue with
- List and basic views:
- Added detection of the „current“ page when pagination is turned on. The page will now automatically load with the page containing the current date displayed, instead of the first page, making list and basic views with pagination more useful when
pastdays
is set to include past events in the list. (Note: The pagination is set independently of the date, so it’s possible the page may still load with a few past events displaying before the current date’s events, but the current date’s events will be on the page.) - Minor template code refactoring.
- Added detection of the „current“ page when pagination is turned on. The page will now automatically load with the page containing the current date displayed, instead of the first page, making list and basic views with pagination more useful when
- Month and week views:
- Added call to
r34ics_show_hide_headers()
function when clicking „Show past events“ on mobile, as a possible solution to a client-side issue with date headers not displaying when the window is left open over a break between months. (Due to the nature of the bug, it can only be tested at the transition between months.)
- Added call to
10.14.1.3 – 2024.03.08
- AJAX:
- Added failure handling that will retry the AJAX request up to 5 times in situations where the AJAX response is only
1
instead of the proper calendar HTML output. After the fifth failure, AJAX will reportICS Calendar AJAX request failed for element...
to the JavaScript console. (Previous versions would fail in this way after one attempt.)
- Added failure handling that will retry the AJAX request up to 5 times in situations where the AJAX response is only
- Bug fix:
- Modified conditional introduced in version 10.14.1.2, to resolve possible
Undefined array key "VALUE"
PHP warnings.
- Modified conditional introduced in version 10.14.1.2, to resolve possible
- Misc:
- Removed unnecessary
global $wp_locale;
line from all templates. - Added
changelog.txt
and moved older changelogs to that file; truncated changelog inreadme.txt
to comply with WordPress repository requirements.
- Removed unnecessary
- Bumped ‚tested up to‘ version to 6.5.
10.14.1.2 – 2024.03.06
- Added a workaround for a possible issue with the ics-parser library on recurrence exclusions (
EXDATE
) where excluded event dates are still being included in the output array. - Updated embedded ics-parser library to v. 3.3.1 (carrying over existing modifications).
10.14.1.1 – 2024.02.21
- JavaScript:
- Replaced
wp_localize_script()
with the now-preferredwp_add_inline_script()
inR34ICS::enqueue_scripts()
method. Fixes an issue where the „localized“ script was not actually rendering in the page in some situations. - Modified logic that hides „Show past events“ on mobile month/week views, when there are no past events in the current month, to account for the
.month_list_all
class (an ICS Calendar Pro-only feature).
- Replaced
10.14.1 – 2024.01.25
- Added Remove „Add ICS Calendar“ button in Classic Editor admin option to leverage the existing
r34ics_display_add_calendar_button
action without the need for custom PHP code. - Added
r34ics_purge_calendar_transients
action to allow external cleanup functions to fire off on the Clear Cached Calendar Data utility. - JavaScript: added type casting to
r34ics_boolean_check()
function to prevent occasional AJAX loading errors. - i18n: New translation strings.
10.14.0 – 2024.01.11
- AJAX:
- Encapsulated AJAX client-side logic in a new
r34ics_ajax_init()
function, and addedr34ics_ajax_start
andr34ics_ajax_end
events. - Two changes to address the issue of AJAX requests occasionally outputting only „1“ instead of the calendar:
- Added a check on the
R34ICS::display_calendar()
method for transient data containing only „1“ instead of the calendar, bypassing the transient cache if true. - Added handling to the AJAX output itself to suppress display of the „1“ if it still occurs, and write an error message to the console. We are still investigating the root cause of this issue.
- Encapsulated AJAX client-side logic in a new
- JavaScript:
- Added JavaScript version of
r34ics_boolean_check()
function.
- Added JavaScript version of
- List view:
- Added text underline to events that have a clickable description when the
toggle
option is turned on, to give users a visual cue.
- Added text underline to events that have a clickable description when the
10.13.1.1 – 2023.12.16
- AJAX: Replaced
FILTER_SANITIZE_STRING
, deprecated in PHP 8.1, with a new sanitization method, and added conditional to prevent processing the AJAX output if URL is missing.
10.13.1 – 2023.12.08
- Basic view:
- Switched event layouts to use CSS flexbox instead of float, to address issues where long event titles may force all text to wrap below the date block.
- Additional minor CSS adjustments.
- Month view:
- Added „Today“ link to header navigation. Requires
monthnav
to be set to an option that includes the previous/next arrows (all except the defaultselect
). - Fixed bug that would prevent „Show past events“ link from appearing in mobile breakpoint under certain conditions.
- Added „Today“ link to header navigation. Requires
- i18n: Added new translation strings.
10.13.0.2 – 2023.12.04
- Added missing logic to turn off caching if
debug="3"
is set; refactored logic for settingreload
value. - Adjusted CSS for event hover effects to improve performance in some views in the Pro version.
- Narrowed jQuery selector scope for pagination logic in List and Basic views, to fix a conflict with some views in the Pro version.
10.13.0.1 – 2023.11.28
- Fixed a display bug introduced in v.10.13.0 that would cause broken HTML code to appear directly on the page for some sites. (The default values for the new
htmltageventtitle
andhtmltageventdesc
parameters were not being set correctly for sites with the Use new parameter defaults (v.10.6) setting turned off.) - Renamed new
r34ics_filter_allowed_heading_tags()
function tor34ics_allowed_heading_tags_check()
, since it’s not technically a filter. - Hotfix: Added
.event-info
wrapper element in Basic view to prevent longer event descriptions from wrapping below the floating date block element.
10.13.0 – 2023.11.27
- New Features:
- Added new „Basic“ view. Use
view="basic"
in your shortcode. This is a variant of List view that does not group events by date/month. By default, the date of each event is displayed in a prominent date box. For a „true“ basic view, also addnostyle="true"
to your shortcode. This view supports most of the same parameters (and associated functionality) as List view, includingcount
,pagination
,color
,eventdesc
andtoggle
. - All views: Added
<span>
wrapping of date elements (day of week, month, day number, year, etc.) with a newdata-date-format
attribute on each tag. Allows for custom styling of the components of a date. This feature is used for the date boxes in the new Basic view, but also allows for custom styling of List view.
- Added new „Basic“ view. Use
- New shortcode parameters:
htmltageventdesc
: Sets the HTML tag used for the.eventdesc
element on events.htmltageventtitle
: Sets the HTML tag used for the.title
element on events.htmltagtime
: Sets the HTML tag used for the.time
element.nostyle
: Turns off most of Basic view’s default HTML styling for a „true“ basic view that you can customize with your own CSS. (Currently has no effect on any other views.)
- New filter:
r34ics_display_add_calendar_button
: Use with the__return_false
function to turn off the „Add ICS Calendar“ button in Classic Editor.
- Functionality changes:
- The
paginationposition
parameter in List and Basic views now defaults toabove
rather thanbelow
. - Minor code refactoring in
templates/calendar-list.php
andfunctions.php
.
- The
10.12.2 – 2023.11.13
- Admin Utilities:
- Removed raw data output from ICS Feed URL Tester utility.
- Minor refactoring of
r34ics_system_report()
function.
- Security:
- Streamlined URL validation code added in v.10.12.0.4 to remove redundant custom logic, and instead rely on the WP core
[wp_http_validate_url()](https://developer.wordpress.org/reference/functions/wp_http_validate_url/)
function. This change also adds the ability for site developers to use the[http_request_host_is_external](https://developer.wordpress.org/reference/hooks/http_request_host_is_external/)
filter to selectively grant access to specific internal network URLs, e.g. for retrieving ICS feeds from locally hosted mail/calendar servers. - Restricted debugging data collection to users with the Administrator role, and removed raw retrieved URL data from all debugging tools.
- Streamlined URL validation code added in v.10.12.0.4 to remove redundant custom logic, and instead rely on the WP core
- i18n:
- Updated translation strings.
- Vendors:
- Updated ICS Parser library to 3.3.1 (with modified namespace, as usual, to avoid plugin conflicts).
10.12.1 – 2023.11.06
- Bug fix: Corrected CSS logic for
combinemultiday
that would incorrectly display event titles if site’s Week starts on value was anything other than Sunday. - CSS: Tweaks to
compact
in Month and Week views. - Hooks: Added
r34ics_eventdesc_include_time_and_title
filter. This allows for additional external conditionals to determine whether or not the time and title for events should be included in the.eventdesc
element. - Misc: Removed a few redundant lines of code.
10.12.0.4 – 2023.10.30
- Added an extra security check for extremely rare conditions where the security fix added in versions 10.12.0.2 and 10.12.0.3 may not have been adequate. This fix has been backported to all earlier affected versions of the plugin in the repository.
10.12.0.3 – 2023.10.24
- Critical bug fix: Addresses an additional condition of the same issue first addressed in 10.12.0.2. This is not a second bug, rather a more thorough and effective solution to the same bug. This fix has been backported to all earlier affected versions of the plugin in the repository.
- Drobné změny v kódu.
10.12.0.2 – 2023.10.23
- Critical bug fix: Addresses a security issue identified in earlier versions of the plugin. Per best practices we are not identifying the specific details of the issue or the fix. This fix has been backported to all earlier affected versions of the plugin in the repository.
- Removed unnecessary retrieval of
/etc/issue
file contents fromr34ics_system_report()
function. (This is unrelated to the critical bug fix noted above.)
10.12.0.1 – 2023.10.16
- Bug fix: Added
stopPropagation()
to jQuery logic fortoggle
feature. The modified selector added in version 10.12.0 was inadvertently causing the code to run twice (instantly re-closing the toggle) when clicking on the event title itself.
10.12.0 – 2023.10.06
- a11y: Added
tabindex="0"
to all events and corresponding CSS changes to make event hover descriptions tab-accessible. Note: We are still troubleshooting some issues with tabbing to links contained within the description block. However, we are releasing this feature as-is due to the immediate accessibility improvements it can offer. - Developer: Removed deprecated filter names.
Changelog truncated here due to WordPress repository requirements. Please see changelog.txt
for older logs.