# Update to 2.2, 2.4, 2.5, 2.6, 3.1, 3.3,.. by Karel Picman <karel.picman@kontron.com> # Update to 1.1 by Michal Gebauer <mishak@mishak.net> # Updated by Josef Liška <jl@chl.cz> # CZ translation by Maxim Krušina | Massimo Filippi, s.r.o. | maxim@mxm.cz # Based on original CZ translation by Jan Kadleček cs: # Text direction: Left-to-Right (ltr) or Right-to-Left (rtl) direction: ltr date: formats: # Use the strftime parameters for formats. # When no format has been given, it uses default. # You can provide other formats here if you like! default: "%Y-%m-%d" short: "%b %d" long: "%B %d, %Y" day_names: [neděle, pondělí, úterý, středa, čtvrtek, pátek, sobota] abbr_day_names: [ne, po, út, st, čt, pá, so] # Don't forget the nil at the beginning; there's no such thing as a 0th month month_names: [~, leden, únor, březen, duben, květen, červen, červenec, srpen, září, říjen, listopad, prosinec] abbr_month_names: [~, led, úno, bře, dub, kvě, čer, čec, srp, zář, říj, lis, pro] # Used in date_select and datime_select. order: - :year - :month - :day time: formats: default: "%a, %d %b %Y %H:%M:%S %z" time: "%H:%M" short: "%d %b %H:%M" long: "%B %d, %Y %H:%M" am: "dop." pm: "odp." datetime: distance_in_words: half_a_minute: "půl minuty" less_than_x_seconds: one: "méně než sekunda" other: "méně než %{count} sekund(y)" x_seconds: one: "1 sekunda" other: "%{count} sekund" less_than_x_minutes: one: "méně než minuta" other: "méně než %{count} minut(y)" x_minutes: one: "1 minuta" other: "%{count} minut" about_x_hours: one: "asi 1 hodina" other: "asi %{count} hodin(y)" x_hours: one: "1 hodina" other: "%{count} hodin(y)" x_days: one: "1 den" other: "%{count} dny(ů)" about_x_months: one: "asi 1 měsíc" other: "asi %{count} měsíce(ů)" x_months: one: "1 měsíc" other: "%{count} měsíc(ů)" about_x_years: one: "asi 1 rok" other: "asi %{count} roky(ů)" over_x_years: one: "více než 1 rok" other: "více než %{count} roky(ů)" almost_x_years: one: "témeř 1 rok" other: "téměř %{count} roky(ů)" number: # Výchozí formát pro čísla format: separator: "." delimiter: "" precision: 3 human: format: delimiter: "" precision: 3 storage_units: format: "%n %u" units: byte: one: "Bajt" other: "Bajtů" kb: "KB" mb: "MB" gb: "GB" tb: "TB" # Used in array.to_sentence. support: array: sentence_connector: "a" skip_last_comma: false activerecord: errors: template: header: one: "1 chyba zabránila uložení %{model}" other: "%{count} chyb zabránilo uložení %{model}" messages: inclusion: "není zahrnuto v seznamu" exclusion: "je rezervováno" invalid: "je neplatné" confirmation: "se neshoduje s potvrzením" accepted: "musí být akceptováno" empty: "nemůže být prázdný" blank: "nemůže být prázdný" too_long: "je příliš dlouhý" too_short: "je příliš krátký" wrong_length: "má chybnou délku" taken: "je již použito" not_a_number: "není číslo" not_a_date: "není platné datum" greater_than: "musí být větší než %{count}" greater_than_or_equal_to: "musí být větší nebo rovno %{count}" equal_to: "musí být přesně %{count}" less_than: "musí být méně než %{count}" less_than_or_equal_to: "musí být méně nebo rovno %{count}" odd: "musí být liché" even: "musí být sudé" greater_than_start_date: "musí být větší než počáteční datum" not_same_project: "nepatří stejnému projektu" circular_dependency: "Tento vztah by vytvořil cyklickou závislost" cant_link_an_issue_with_a_descendant: "Úkol nemůže být spojen s jedním z jeho dílčích úkolů" earlier_than_minimum_start_date: "nemůže být dříve než %{date} kvůli předřazeným úkolům" not_a_regexp: "není platný regulární výraz" open_issue_with_closed_parent: "Otevřený úkol nemůže být přiřazen pod uzavřený rodičovský úkol" must_contain_uppercase: "musí obsahovat velká písmena (A-Z)" must_contain_lowercase: "musí obsahovat malá písmena (a-z)" must_contain_digits: "musí obsahovat čísla (0-9)" must_contain_special_chars: "musí obsahovat speciální znaky (!, $, %, ...)" actionview_instancetag_blank_option: Prosím vyberte general_text_No: 'Ne' general_text_Yes: 'Ano' general_text_no: 'ne' general_text_yes: 'ano' general_lang_name: 'Czech (Čeština)' general_csv_separator: ',' general_csv_decimal_separator: '.' general_csv_encoding: UTF-8 general_pdf_fontname: freesans general_pdf_monospaced_fontname: freemono general_first_day_of_week: '1' notice_account_updated: Účet byl úspěšně změněn. notice_account_invalid_credentials: Chybné jméno nebo heslo notice_account_password_updated: Heslo bylo úspěšně změněno. notice_account_wrong_password: Chybné heslo notice_account_register_done: Účet byl úspěšně vytvořen. Pro aktivaci účtu klikněte na odkaz v emailu, který vám byl zaslán. notice_account_unknown_email: Neznámý uživatel. notice_can_t_change_password: Tento účet používá externí autentifikaci. Zde heslo změnit nemůžete. notice_account_lost_email_sent: Byl vám zaslán email s intrukcemi jak si nastavíte nové heslo. notice_account_activated: Váš účet byl aktivován. Nyní se můžete přihlásit. notice_successful_create: Úspěšně vytvořeno. notice_successful_update: Úspěšně aktualizováno. notice_successful_delete: Úspěšně odstraněno. notice_successful_connection: Úspěšné připojení. notice_file_not_found: Stránka, kterou se snažíte zobrazit, neexistuje nebo byla smazána. notice_locking_conflict: Údaje byly změněny jiným uživatelem. notice_not_authorized: Nemáte dostatečná práva pro zobrazení této stránky. notice_not_authorized_archived_project: Projekt, ke kterému se snažíte přistupovat, byl archivován. notice_email_sent: "Na adresu %{value} byl odeslán email" notice_email_error: "Při odesílání emailu nastala chyba (%{value})" notice_feeds_access_key_reseted: Váš klíč pro přístup k Atom byl resetován. notice_api_access_key_reseted: Váš API přístupový klíč byl resetován. notice_failed_to_save_issues: "Chyba při uložení %{count} úkolu(ů) z %{total} vybraných: %{ids}." notice_failed_to_save_members: "Nepodařilo se uložit člena(y): %{errors}." notice_account_pending: "Váš účet byl vytvořen, nyní čeká na schválení administrátorem." notice_default_data_loaded: Výchozí konfigurace úspěšně nahrána. notice_unable_delete_version: Nemohu odstanit verzi notice_unable_delete_time_entry: Nelze smazat záznam času. notice_issue_done_ratios_updated: Koeficienty dokončení úkolu byly aktualizovány. notice_gantt_chart_truncated: Graf byl oříznut, počet položek přesáhl limit pro zobrazení (%{max}) error_can_t_load_default_data: "Výchozí konfigurace nebyla nahrána: %{value}" error_scm_not_found: "Položka a/nebo revize neexistují v repozitáři." error_scm_command_failed: "Při pokusu o přístup k repozitáři došlo k chybě: %{value}" error_scm_annotate: "Položka neexistuje nebo nemůže být komentována." error_issue_not_found_in_project: 'Úkol nebyl nalezen nebo nepatří k tomuto projektu' error_no_tracker_in_project: Žádná fronta nebyla přiřazena tomuto projektu. Prosím zkontroluje nastavení projektu. error_no_default_issue_status: Není nastaven výchozí stav úkolů. Prosím zkontrolujte nastavení ("Administrace -> Stavy úkolů"). error_can_not_delete_custom_field: Nelze smazat volitelné pole error_can_not_delete_tracker: Tato fronta obsahuje úkoly a nemůže být smazána. error_can_not_remove_role: Tato role je právě používaná a nelze ji smazat. error_can_not_reopen_issue_on_closed_version: Úkol přiřazený k uzavřené verzi nemůže být znovu otevřen error_can_not_archive_project: Tento projekt nemůže být archivován error_issue_done_ratios_not_updated: Koeficient dokončení úkolu nebyl aktualizován. error_workflow_copy_source: Prosím vyberte zdrojovou frontu nebo roli error_workflow_copy_target: Prosím vyberte cílovou frontu(y) a roli(e) error_unable_delete_issue_status: Nelze smazat stavy úkolů (%{value}) error_unable_to_connect: Nelze se připojit (%{value}) warning_attachments_not_saved: "%{count} soubor(ů) nebylo možné uložit." mail_subject_lost_password: "Vaše heslo (%{value})" mail_body_lost_password: 'Pro změnu vašeho hesla klikněte na následující odkaz:' mail_subject_register: "Aktivace účtu (%{value})" mail_body_register: 'Pro aktivaci vašeho účtu klikněte na následující odkaz:' mail_body_account_information_external: "Pomocí vašeho účtu %{value} se můžete přihlásit." mail_body_account_information: Informace o vašem účtu mail_subject_account_activation_request: "Aktivace %{value} účtu" mail_body_account_activation_request: "Byl zaregistrován nový uživatel %{value}. Aktivace jeho účtu závisí na vašem potvrzení." mail_subject_reminder: "%{count} úkol(ů) má termín během několik dní (%{days})" mail_body_reminder: "%{count} úkol(ů), které máte přiřazeny má termín během několika dní (%{days}):" mail_subject_wiki_content_added: "'%{id}' Wiki stránka byla přidána" mail_body_wiki_content_added: "'%{id}' Wiki stránka byla přidána od %{author}." mail_subject_wiki_content_updated: "'%{id}' Wiki stránka byla aktualizována" mail_body_wiki_content_updated: "'%{id}' Wiki stránka byla aktualizována od %{author}." field_name: Název field_description: Popis field_summary: Přehled field_is_required: Povinné pole field_firstname: Jméno field_lastname: Příjmení field_mail: Email field_filename: Soubor field_filesize: Velikost field_downloads: Staženo field_author: Autor field_created_on: Vytvořeno field_updated_on: Aktualizováno field_field_format: Formát field_is_for_all: Pro všechny projekty field_possible_values: Možné hodnoty field_regexp: Regulární výraz field_min_length: Minimální délka field_max_length: Maximální délka field_value: Hodnota field_category: Kategorie field_title: Název field_project: Projekt field_issue: Úkol field_status: Stav field_notes: Poznámka field_is_closed: Úkol uzavřen field_is_default: Výchozí stav field_tracker: Fronta field_subject: Předmět field_due_date: Uzavřít do field_assigned_to: Přiřazeno field_priority: Priorita field_fixed_version: Cílová verze field_user: Uživatel field_principal: Hlavní field_role: Role field_homepage: Domovská stránka field_is_public: Veřejný field_parent: Nadřazený projekt field_is_in_roadmap: Úkoly zobrazené v plánu field_login: Přihlášení field_mail_notification: Emailová oznámení field_admin: Administrátor field_last_login_on: Poslední přihlášení field_language: Jazyk field_effective_date: Datum field_password: Heslo field_new_password: Nové heslo field_password_confirmation: Potvrzení field_version: Verze field_type: Typ field_host: Host field_port: Port field_account: Účet field_base_dn: Base DN field_attr_login: Přihlášení (atribut) field_attr_firstname: Jméno (atribut) field_attr_lastname: Příjmení (atribut) field_attr_mail: Email (atribut) field_onthefly: Automatické vytváření uživatelů field_start_date: Začátek field_done_ratio: "% Hotovo" field_auth_source: Autentifikační mód field_hide_mail: Nezobrazovat můj email field_comments: Komentář field_url: URL field_start_page: Výchozí stránka field_subproject: Podprojekt field_hours: Hodiny field_activity: Aktivita field_spent_on: Datum field_identifier: Identifikátor field_is_filter: Použít jako filtr field_issue_to: Související úkol field_delay: Zpoždění field_assignable: Úkoly mohou být přiřazeny této roli field_redirect_existing_links: Přesměrovat stávající odkazy field_estimated_hours: Odhadovaná doba field_column_names: Sloupce field_time_entries: Zaznamenaný čas field_time_zone: Časové pásmo field_searchable: Umožnit vyhledávání field_default_value: Výchozí hodnota field_comments_sorting: Zobrazit komentáře field_parent_title: Rodičovská stránka field_editable: Editovatelný field_watcher: Sleduje field_identity_url: OpenID URL field_content: Obsah field_group_by: Seskupovat výsledky podle field_sharing: Sdílení field_parent_issue: Rodičovský úkol field_member_of_group: Skupina přiřaditele field_assigned_to_role: Role přiřaditele field_text: Textové pole field_visible: Viditelný setting_app_title: Název aplikace setting_welcome_text: Uvítací text setting_default_language: Výchozí jazyk setting_login_required: Autentifikace vyžadována setting_self_registration: Povolena automatická registrace setting_attachment_max_size: Maximální velikost přílohy setting_issues_export_limit: Limit pro export úkolů setting_mail_from: Odesílat emaily z adresy setting_bcc_recipients: Příjemci jako skrytá kopie (bcc) setting_plain_text_mail: pouze prostý text (ne HTML) setting_host_name: Jméno serveru setting_text_formatting: Formátování textu setting_wiki_compression: Komprese historie Wiki setting_feeds_limit: Limit obsahu příspěvků setting_default_projects_public: Nové projekty nastavovat jako veřejné setting_autofetch_changesets: Automaticky stahovat commity setting_sys_api_enabled: Povolit WS pro správu repozitory setting_commit_ref_keywords: Klíčová slova pro odkazy setting_commit_fix_keywords: Klíčová slova pro uzavření setting_autologin: Automatické přihlašování setting_date_format: Formát data setting_time_format: Formát času setting_cross_project_issue_relations: Povolit vazby úkolů napříč projekty setting_issue_list_default_columns: Výchozí sloupce zobrazené v seznamu úkolů setting_emails_header: Záhlaví emailů setting_emails_footer: Zápatí emailů setting_protocol: Protokol setting_per_page_options: Povolené počty řádků na stránce setting_user_format: Formát zobrazení uživatele setting_activity_days_default: Dny zobrazené v činnosti projektu setting_display_subprojects_issues: Automaticky zobrazit úkoly podprojektu v hlavním projektu setting_enabled_scm: Povolené SCM setting_mail_handler_body_delimiters: Zkrátit e-maily po jednom z těchto řádků setting_mail_handler_api_enabled: Povolit WS pro příchozí e-maily setting_mail_handler_api_key: API klíč setting_sequential_project_identifiers: Generovat sekvenční identifikátory projektů setting_gravatar_enabled: Použít uživatelské ikony Gravatar setting_gravatar_default: Výchozí Gravatar setting_diff_max_lines_displayed: Maximální počet zobrazených řádků rozdílu setting_file_max_size_displayed: Maximální velikost textových souborů zobrazených přímo na stránce setting_repository_log_display_limit: Maximální počet revizí zobrazených v logu souboru setting_openid: Umožnit přihlašování a registrace s OpenID setting_password_min_length: Minimální délka hesla setting_new_project_user_role_id: Role přiřazená uživateli bez práv administrátora, který projekt vytvořil setting_default_projects_modules: Výchozí zapnutné moduly pro nový projekt setting_issue_done_ratio: Spočítat koeficient dokončení úkolu s setting_issue_done_ratio_issue_field: Použít pole úkolu setting_issue_done_ratio_issue_status: Použít stav úkolu setting_start_of_week: Začínat kalendáře setting_rest_api_enabled: Zapnout službu REST setting_cache_formatted_text: Ukládat formátovaný text do vyrovnávací paměti setting_default_notification_option: Výchozí nastavení oznámení setting_commit_logtime_enabled: Povolit zapisování času setting_commit_logtime_activity_id: Aktivita pro zapsaný čas setting_gantt_items_limit: Maximální počet položek zobrazený na ganttově diagramu permission_add_project: Vytvořit projekt permission_add_subprojects: Vytvořit podprojekty permission_edit_project: Úprava projektů permission_select_project_modules: Výběr modulů projektu permission_manage_members: Spravování členství permission_manage_project_activities: Spravovat aktivity projektu permission_manage_versions: Spravování verzí permission_manage_categories: Spravování kategorií úkolů permission_view_issues: Zobrazit úkoly permission_add_issues: Přidávání úkolů permission_edit_issues: Upravování úkolů permission_manage_issue_relations: Spravování vazeb mezi úkoly permission_add_issue_notes: Přidávání poznámek permission_edit_issue_notes: Upravování poznámek permission_edit_own_issue_notes: Upravování vlastních poznámek permission_delete_issues: Mazání úkolů permission_manage_public_queries: Správa veřejných dotazů permission_save_queries: Ukládání dotazů permission_view_gantt: Zobrazení ganttova diagramu permission_view_calendar: Prohlížení kalendáře permission_view_issue_watchers: Zobrazení seznamu sledujících uživatelů permission_add_issue_watchers: Přidání sledujících uživatelů permission_delete_issue_watchers: Smazat sledující uživatele permission_log_time: Zaznamenávání stráveného času permission_view_time_entries: Zobrazení stráveného času permission_edit_time_entries: Upravování záznamů o stráveném času permission_edit_own_time_entries: Upravování vlastních zázamů o stráveném čase permission_manage_news: Spravování novinek permission_comment_news: Komentování novinek permission_view_documents: Prohlížení dokumentů permission_manage_files: Spravování souborů permission_view_files: Prohlížení souborů permission_manage_wiki: Spravování Wiki permission_rename_wiki_pages: Přejmenovávání Wiki stránek permission_delete_wiki_pages: Mazání stránek na Wiki permission_view_wiki_pages: Prohlížení Wiki permission_view_wiki_edits: Prohlížení historie Wiki permission_edit_wiki_pages: Upravování stránek Wiki permission_delete_wiki_pages_attachments: Mazání příloh permission_protect_wiki_pages: Zabezpečení Wiki stránek permission_manage_repository: Spravování repozitáře permission_browse_repository: Procházení repozitáře permission_view_changesets: Zobrazování revizí permission_commit_access: Commit přístup permission_manage_boards: Správa diskusních fór permission_view_messages: Prohlížení příspěvků permission_add_messages: Posílání příspěvků permission_edit_messages: Upravování příspěvků permission_edit_own_messages: Upravit vlastní příspěvky permission_delete_messages: Mazání příspěvků permission_delete_own_messages: Smazat vlastní příspěvky permission_export_wiki_pages: Exportovat Wiki stránky permission_manage_subtasks: Spravovat dílčí úkoly project_module_issue_tracking: Sledování úkolů project_module_time_tracking: Sledování času project_module_news: Novinky project_module_documents: Dokumenty project_module_files: Soubory project_module_wiki: Wiki project_module_repository: Repozitář project_module_boards: Diskuse project_module_calendar: Kalendář project_module_gantt: Gantt label_user: Uživatel label_user_plural: Uživatelé label_user_new: Nový uživatel label_user_anonymous: Anonymní label_project: Projekt label_project_new: Nový projekt label_project_plural: Projekty label_x_projects: zero: žádné projekty one: 1 projekt other: "%{count} projekty(ů)" label_project_all: Všechny projekty label_project_latest: Poslední projekty label_issue: Úkol label_issue_new: Nový úkol label_issue_plural: Úkoly label_issue_view_all: Všechny úkoly label_issues_by: "Úkoly podle %{value}" label_issue_added: Úkol přidán label_issue_updated: Úkol aktualizován label_document: Dokument label_document_new: Nový dokument label_document_plural: Dokumenty label_document_added: Dokument přidán label_role: Role label_role_plural: Role label_role_new: Nová role label_role_and_permissions: Role a práva label_member: Člen label_member_new: Nový člen label_member_plural: Členové label_tracker: Fronta label_tracker_plural: Fronty label_tracker_new: Nová fronta label_workflow: Průběh práce label_issue_status: Stav úkolu label_issue_status_plural: Stavy úkolů label_issue_status_new: Nový stav label_issue_category: Kategorie úkolu label_issue_category_plural: Kategorie úkolů label_issue_category_new: Nová kategorie label_custom_field: Uživatelské pole label_custom_field_plural: Uživatelská pole label_custom_field_new: Nové uživatelské pole label_enumerations: Seznamy label_enumeration_new: Nová hodnota label_information: Informace label_information_plural: Informace label_register: Registrovat label_login_with_open_id_option: nebo se přihlašte s OpenID label_password_lost: Zapomenuté heslo label_home: Úvodní label_my_page: Moje stránka label_my_account: Můj účet label_my_projects: Moje projekty label_administration: Administrace label_login: Přihlášení label_logout: Odhlášení label_help: Nápověda label_reported_issues: Nahlášené úkoly label_assigned_to_me_issues: Mé úkoly label_last_login: Poslední přihlášení label_registered_on: Registrován label_activity: Aktivita label_user_activity: "Aktivita uživatele: %{value}" label_new: Nový label_logged_as: Přihlášen jako label_environment: Prostředí label_authentication: Autentifikace label_auth_source: Mód autentifikace label_auth_source_new: Nový mód autentifikace label_auth_source_plural: Módy autentifikace label_subproject_plural: Podprojekty label_subproject_new: Nový podprojekt label_and_its_subprojects: "%{value} a jeho podprojekty" label_min_max_length: Min - Max délka label_list: Seznam label_date: Datum label_integer: Celé číslo label_float: Desetinné číslo label_boolean: Ano/Ne label_string: Text label_text: Dlouhý text label_attribute: Atribut label_attribute_plural: Atributy label_no_data: Žádné položky label_change_status: Změnit stav label_history: Historie label_attachment: Soubor label_attachment_new: Nový soubor label_attachment_delete: Odstranit soubor label_attachment_plural: Soubory label_file_added: Soubor přidán label_report: Přehled label_report_plural: Přehledy label_news: Novinky label_news_new: Přidat novinku label_news_plural: Novinky label_news_latest: Poslední novinky label_news_view_all: Zobrazit všechny novinky label_news_added: Novinka přidána label_settings: Nastavení label_overview: Přehled label_version: Verze label_version_new: Nová verze label_version_plural: Verze label_close_versions: Zavřít dokončené verze label_confirmation: Potvrzení label_export_to: 'Také k dispozici:' label_read: Načítá se... label_public_projects: Veřejné projekty label_open_issues: otevřený label_open_issues_plural: otevřené label_closed_issues: uzavřený label_closed_issues_plural: uzavřené label_x_open_issues_abbr: zero: 0 otevřených one: 1 otevřený other: "%{count} otevřených" label_x_closed_issues_abbr: zero: 0 uzavřených one: 1 uzavřený other: "%{count} uzavřených" label_total: Celkem label_permissions: Práva label_current_status: Aktuální stav label_new_statuses_allowed: <?php /** * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Björn Schießle <bjoern@schiessle.org> * @author Christopher Schäpers <kondou@ts.unde.re> * @author Christoph Wurst <christoph@winzerhof-wurst.at> * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Lukas Reschke <lukas@statuscode.ch> * @author Maxence Lange <maxence@artificial-owl.com> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <vincent@nextcloud.com> * * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License, version 3, * as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License, version 3, * along with this program. If not, see <http://www.gnu.org/licenses/> * */ require_once __DIR__ . '/lib/versioncheck.php'; try { require_once __DIR__ . '/lib/base.php'; if (\OCP\Util::needUpgrade()) { // since the behavior of apps or remotes are unpredictable during // an upgrade, return a 503 directly OC_Template::printErrorPage('Service unavailable', '', 503); exit; } OC::checkMaintenanceMode(\OC::$server->get(\OC\SystemConfig::class)); $request = \OC::$server->getRequest(); $pathInfo = $request->getPathInfo(); if (!$pathInfo && $request->getParam('service', '') === '') { http_response_code(404); exit; } elseif ($request->getParam('service', '')) { $service = $request->getParam('service', ''); } else { $pathInfo = trim($pathInfo, '/'); [$service] = explode('/', $pathInfo); } $file = \OC::$server->getConfig()->getAppValue('core', 'public_' . strip_tags($service)); if ($file === '') { http_response_code(404); exit; } $parts = explode('/', $file, 2); $app = $parts[0]; // Load all required applications \OC::$REQUESTEDAPP = $app; OC_App::loadApps(['authentication']); OC_App::loadApps(['extended_authentication']); OC_App::loadApps(['filesystem', 'logging']); if (!\OC::$server->getAppManager()->isInstalled($app)) { http_response_code(404); exit; } OC_App::loadApp($app); OC_User::setIncognitoMode(true); $baseuri = OC::$WEBROOT . '/public.php/' . $service . '/'; require_once OC_App::getAppPath($app) . '/' . $parts[1]; } catch (Exception $ex) { $status = 500; if ($ex instanceof \OC\ServiceUnavailableException) { $status = 503; } //show the user a detailed error page \OC::$server->getLogger()->logException($ex, ['app' => 'public']); OC_Template::printExceptionErrorPage($ex, $status); } catch (Error $ex) { //show the user a detailed error page \OC::$server->getLogger()->logException($ex, ['app' => 'public']); OC_Template::printExceptionErrorPage($ex, 500); }
<?php /** * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Björn Schießle <bjoern@schiessle.org> * @author Christopher Schäpers <kondou@ts.unde.re> * @author Christoph Wurst <christoph@winzerhof-wurst.at> * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Lukas Reschke <lukas@statuscode.ch> * @author Maxence Lange <maxence@artificial-owl.com> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <vincent@nextcloud.com> * * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License, version 3, * as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License, version 3, * along with this program. If not, see <http://www.gnu.org/licenses/> * */ require_once __DIR__ . '/lib/versioncheck.php'; try { require_once __DIR__ . '/lib/base.php'; if (\OCP\Util::needUpgrade()) { // since the behavior of apps or remotes are unpredictable during // an upgrade, return a 503 directly OC_Template::printErrorPage('Service unavailable', '', 503); exit; } OC::checkMaintenanceMode(\OC::$server->get(\OC\SystemConfig::class)); $request = \OC::$server->getRequest(); $pathInfo = $request->getPathInfo(); if (!$pathInfo && $request->getParam('service', '') === '') { http_response_code(404); exit; } elseif ($request->getParam('service', '')) { $service = $request->getParam('service', ''); } else { $pathInfo = trim($pathInfo, '/'); [$service] = explode('/', $pathInfo); } $file = \OC::$server->getConfig()->getAppValue('core', 'public_' . strip_tags($service)); if ($file === '') { http_response_code(404); exit; } $parts = explode('/', $file, 2); $app = $parts[0]; // Load all required applications \OC::$REQUESTEDAPP = $app; OC_App::loadApps(['authentication']); OC_App::loadApps(['extended_authentication']); OC_App::loadApps(['filesystem', 'logging']); if (!\OC::$server->getAppManager()->isInstalled($app)) { http_response_code(404); exit; } OC_App::loadApp($app); OC_User::setIncognitoMode(true); $baseuri = OC::$WEBROOT . '/public.php/' . $service . '/'; require_once OC_App::getAppPath($app) . '/' . $parts[1]; } catch (Exception $ex) { $status = 500; if ($ex instanceof \OC\ServiceUnavailableException) { $status = 503; } //show the user a detailed error page \OC::$server->getLogger()->logException($ex, ['app' => 'public']); OC_Template::printExceptionErrorPage($ex, $status); } catch (Error $ex) { //show the user a detailed error page \OC::$server->getLogger()->logException($ex, ['app' => 'public']); OC_Template::printExceptionErrorPage($ex, 500); }