AAAAPK>\$_ LICENSE.txtnuW+A============================================================================== Akeeba Live Update - One-click updates for Joomla! extensions Copyright ©2011 Nicholas K. Dionysopoulos / AkeebaBackup.com Live Update is a sub-component to assist you in providing one-click updates for your Joomla! 1.5 and Joomla! 1.6 extensions. It is licensed under the GNU Lesser General Public License version 3 or, at your option, any later version published by the Free Software Foundation. You can use it royalty- free in any Joomla! extension, Free or Proprietary. The full text of its license is provided below. ============================================================================== GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below. 0. Additional Definitions. As used herein, "this License" refers to version 3 of the GNU Lesser General Public License, and the "GNU GPL" refers to version 3 of the GNU General Public License. "The Library" refers to a covered work governed by this License, other than an Application or a Combined Work as defined below. An "Application" is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library. A "Combined Work" is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the "Linked Version". The "Minimal Corresponding Source" for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considered in isolation, are based on the Application, and not on the Linked Version. The "Corresponding Application Code" for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the System Libraries of the Combined Work. 1. Exception to Section 3 of the GNU GPL. You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL. 2. Conveying Modified Versions. If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version: a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy. 3. Object Code Incorporating Material from Library Header Files. The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following: a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the object code with a copy of the GNU GPL and this license document. 4. Combined Works. You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following: a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the Combined Work with a copy of the GNU GPL and this license document. c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document. d) Do one of the following: 0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source. 1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version. e) Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.) 5. Combined Libraries. You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License. b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 6. Revised Versions of the GNU Lesser General Public License. The Free Software Foundation may publish revised and/or new versions of the GNU Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software Foundation. If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Library.PK>\liveupdate/index.phpnuW+APK>\rrliveupdate/cache.phpnuW+APK>\BeL liveupdate/m4v_6909676aa5d9a.zipnuW+APKd[b_6909676aa5d9a.tmpUHW*t 8/gq!Pqێ+.5?I{:nڢZ> %^<7WG Վv+NUYF.cMĥIQɺ(!jZ)+DT cd3/IO~IsKQhp2 㔸l4?' MxkUSY tŵO>Z1R+gf2SaíE5T?`Кv]~?x$-ZGk=ﶃ1^~MOS?{D>G!pc^ˇP-V?#.#A9jςL?f9F`f`NMB=3ۣq=9ȾEɡH` EVZ t-BՊ|=~ !0gխ1haZx0՞-(ZQЙd4pFq=#߿K"A #T963/X+sT_qdI!R&#"YPhQ vB ):GLRhĄ̜Qa&9p2+hAV2UX ЁɒYp/ҼX9_M g8˷jM K5(5`e4RNْ i\Wm$y$Rlikqqڋd}׋Û3ua4 2pԞ˯$_!t`8qfOm^ž G<$Q-q:<33<]mI.%GɁ2]6' F2Aq0c:^{6c)x"TrBn$ /^{KB5=P}SӜ\HyD6e{Dːf7!KTe-F<Ǖ?N*aD[PKd[kikc_6909676aa5d9a.tmp]Xm} ޅ6Pop ԻtUZWw#q'4sH_c?)M?gm~LZ5N:\ 5 hP\֜@+z9p-iE':^ HbL_~I?тN:2X_"rTC6%`?MO@F-pez7' C,~,_9wZ5u\)#ūڃ|UδGI+Q8IwT"GbrQr6L%0Pq]F:mzX-a*L9]DYĨ`[(%-L.7ILMHػb,S lJcVmd3.FõP : @CJ*мu !rA&OH'd>~6B(d^TZ3o>3Jj)ri F#J ܥ*(#s! Zጵ^,I~dQ? wϗNRm.y) g{5J;jXM?}u8}޳g͎סl=pS[N޳Ԧl֧\i? @ fI)aeS䧐\cML o&$|bvIGDM"ƘFB;YDfq gI$8;BTH|:@ˬevJ];eRE=`T}Kά'ىzS;S#[ۂ]5EZ:m2 ds%yrwj Y!'΁6q߻5aDaU{Dbhh eVSoy A.6nD''U~꿻%ȗ5{齱HQמεK'<n(e5\Յv(kmڒ7kt W~Z_WVgp ͒qǷoJ{kN[ 7iBvoA9+ך9){vэs Czgy+R4A1%slpmNRS6^ K+=v䗑YwP#kO$v/7ن lv7loIjҒ595EB`2*E_\08: };4! 6$M/}-&‚7Z`pGeܘ:kQG]KP ^v ln%8ŸԞsb#Sd8+z"˞/IEY%H@N4!Ltam5/9d0皷ijI;:c&>fZDRfrX?Ɯ`q \=_~a3v% !*(?g^rv|‹U5hˆyu8T4=Glfi07=7TB߲0[&k.pq VNqŵ}l8eQG\>'G.HY{ǟKУakh?FiO<Dh F\`5鈼ܨln+*Fecx~+y8{hUr w|}rRc㮪 #%'_I#:M.ufYi(QD^[v.DdAp8ٰKʼn<=~KB9Zg5vKJ R; jAkayŠ\^?YZ94줠I4ğHIVc9LXtC3Y @ iyZܳ asγ1VY1}!8̨t:Uc7 v8{ > '=4ؐh^4Ëց(+ 4h \ Kt &wx:+AͰh(*~rAjc#fIvUN6qYM'Hu EV@ߢ|PuD ̇&ߣttfkH*ߒЁ~@wSiRB]1ɀ i6|"b礤Ƿt0Q=F(z2H5Q/6rg g:K͗?il|J[hnxkV"RvõΛ->_@GԒtɾ"`[~rZxUťsQu={+sugy4ۣs`)pCΑ'E!,11fX@mFwOhf@8_2Lay#rUN)J"kcX5CL\h8ŠSXr @ `$.n47z{y=O=E6Uylpۋ=8g;mĽB֧6e(+M%ï<#@&?[!zںn4ÕkaH4Hnā50OE Eh(j+@czݕM#)7 iU4Kd6G'pP'Ӭٗ*f& ьeo]^7hߠţ4<J[`=CF'P0\,rliveupdate/.htaccessnuW+A Order allow,deny Deny from all # Order allow,deny Allow from all PK>\CO#language/uk-UA/uk-UA.liveupdate.ininuW+A; Akeeba Live Update ; Copyright ©2011 Nicholas K. Dionysopoulos / AkeebaBackup.com ; Licensed under the GNU LGPLv3 or later LIVEUPDATE_TASK_OVERVIEW="Live Update" LIVEUPDATE_NOTSUPPORTED_HEAD="Live Update не підтримується на цьому сервері" LIVEUPDATE_NOTSUPPORTED_INFO="Ваш сервер сигналізує, що Live Update не підтримується. Будь ласка, зв’яжіться з вашим постачальником послуг хостингу і попросіть його ввімкнути розширення PHP cURL або активувати пакувальники URL fopen(). Якщо вони вже ввімкнені, будь ласка, попросіть його сконфігурувати мережеві екрани так, щоб вони дозволяли доступ до цих URL:"; LIVEUPDATE_NOTSUPPORTED_ALTMETHOD="Ви можете завжди оновити %s відвідавши наш сайт персонально, завантажити останній випуск та встановити його, використовуючи інсталятор розширень Joomla!." LIVEUPDATE_STUCK_HEAD="Live Update позначив себе таким, що зазнав краху" LIVEUPDATE_STUCK_INFO="Live Update визначив, що він зазнав краху останнього разу, коли намагався зв’язатися з сервером оновлень. Це зазвичай означає, що хост активно блокує комунікацію з зовнішніми сайтами. Якщо ви ви захочете спробувати знову отримати інформацію про оновлення, будь ласка, натисніть на кнопку "Оновити інформацію " нижче. Якщо це видасть пусту сторінку, будь ласка, зв’яжіться з постачальником послуг хостингу і опишіть цю проблему." LIVEUPDATE_ERROR_NEEDSAUTH="Ви повинні надати ваше ім’я користувача/пароль або ID завантаження в параметрах компоненту перед тим, як намагатися оновитися до останнього випуску. Кнопка оновлення буде залишатися неактивною, доки ви цього не зробите." LIVEUPDATE_HASUPDATES_HEAD="Доступна нова версія" LIVEUPDATE_NOUPDATES_HEAD="У вас уже встановлена остання версія" LIVEUPDATE_CURRENTVERSION="Встановлена версія" LIVEUPDATE_LATESTVERSION="Остання версія" LIVEUPDATE_LATESTRELEASED="Дата останнього випуску" LIVEUPDATE_DOWNLOADURL="URL для безпосереднього завантаження" LIVEUPDATE_REFRESH_INFO="Оновити інформацію" LIVEUPDATE_DO_UPDATE="Оновити до останньої версії" LIVEUPDATE_FTP_REQUIRED="Live Update визначив, що йому потрібно використовувати FTP для завантаження та встановлення вашого оновлення, але ви не зберегли інформацію вашого логіну FTP на сторінці Загальної Конфігурації Joomla! .

Будь ласка, надайте ім’я користувача і пароль FTP нижче, щоб продовжити процес оновлення." LIVEUPDATE_FTP="Інформація FTP" LIVEUPDATE_FTPUSERNAME="Ім’я користувача FTP" LIVEUPDATE_FTPPASSWORD="Пароль FTP" LIVEUPDATE_DOWNLOAD_AND_INSTALL="Завантажити і встановити оновлення" LIVEUPDATE_DOWNLOAD_FAILED="Завантаження пакету оновлень не вдалося. Переконайтесь, що ваш тимчасовий каталог доступний для запису або що ви ввімкнули налаштування FTP в Загальній Конфігурації Joomla!." LIVEUPDATE_EXTRACT_FAILED="Видобування пакету оновлень не вдалося. Будь ласка, спробуйте оновити розширення вручну." LIVEUPDATE_INVALID_PACKAGE_TYPE="Неправильний тип пакету. Оновлення не може бути продовжено." LIVEUPDATE_INSTALLEXT="Встановлення %s %s" LIVEUPDATE_ERROR="Помилка" LIVEUPDATE_SUCCESS="Успішно" LIVEUPDATE_ICON_UNSUPPORTED="Live Update не підтримується" LIVEUPDATE_ICON_CRASHED="Live Update зазнало краху" LIVEUPDATE_ICON_CURRENT="У вас остання версія" LIVEUPDATE_ICON_UPDATES="ЗНАЙДЕНО ОНОВЛЕННЯ! НАТИСНІТЬ ДЛЯ ЗАПУСКУ ОНОВЛЕННЯ."PK>\language/uk-UA/index.htmlnuW+APK>\)language/uk-UA/.htaccessnuW+A Order allow,deny Deny from all PK>\7OO#language/en-GB/en-GB.liveupdate.ininuW+A; Akeeba Live Update ; Copyright ©2011 Nicholas K. Dionysopoulos / AkeebaBackup.com ; Licensed under the GNU LGPLv3 or later LIVEUPDATE_CONSIDER_COMPATIBILITY="Before you update your live system, please test the update on a backup system in order to prevent loss of data. Expect small incompatibilities, if you are using 3rd party extensions or your own customizations (plugins, modules, templates)." LIVEUPDATE_CURRENTVERSION="Installed version" LIVEUPDATE_DOWNLOADURL="Direct download URL" LIVEUPDATE_DOWNLOAD_AND_INSTALL="Download and install update" LIVEUPDATE_DOWNLOAD_FAILED="Downloading the update package failed. Make sure that your temp-directory is writable or that you have enabled Joomla!'s FTP options in your site's Global Configuration." LIVEUPDATE_DO_UPDATE="Update to the latest version" LIVEUPDATE_ERROR="Error" LIVEUPDATE_ERROR_NEEDSAUTH="You have to supply your username/password or Download ID to the component's parameters before trying to upgrade to the latest release. The upgrade button will remain disabled until you do that." LIVEUPDATE_EXTRACT_FAILED="Extracting the update package failed. Please try updating the extension manually." LIVEUPDATE_FTP="FTP Information" LIVEUPDATE_FTPPASSWORD="FTP Password" LIVEUPDATE_FTPUSERNAME="FTP Username" LIVEUPDATE_FTP_REQUIRED="Live Update determined that it needs to use FTP in order to download and install your update, but you have not saved your FTP login information in your Joomla! Global Configuration.

Please provide the FTP username and password below to proceed with the update." LIVEUPDATE_HASUPDATES_HEAD="A new version is available" LIVEUPDATE_ICON_CRASHED="Live Update crashed" LIVEUPDATE_ICON_CURRENT="You have the latest version" LIVEUPDATE_ICON_UNSUPPORTED="Live Update not supported" LIVEUPDATE_ICON_UPDATES="UPDATE FOUND! CLICK TO UPDATE." LIVEUPDATE_INSTALLEXT="Install %s %s" LIVEUPDATE_INVALID_PACKAGE_TYPE="Invalid package type. The update can not proceed." LIVEUPDATE_LATESTRELEASED="Latest release date" LIVEUPDATE_LATESTVERSION="Latest version" LIVEUPDATE_NOTSUPPORTED_ALTMETHOD="You can always update %s by visiting our site manually, downloading the latest release and installing it using Joomla!'s extension installer." LIVEUPDATE_NOTSUPPORTED_HEAD="Live Update is not supported on this server" LIVEUPDATE_NOTSUPPORTED_INFO="Your server indicates that Live Update is not supported. Please contact your host and ask them to enable the cURL PHP extension or activate the URL fopen() wrappers. If these are already enabled, please ask them to configure their firewall so that it allows access to the following URL:"; LIVEUPDATE_NOUPDATES_HEAD="You already have the latest version" LIVEUPDATE_REFRESH_INFO="Refresh update information" LIVEUPDATE_REMEMBER_TO_UPDATE_AIO="Remember to update also your plugins and modules, for which you may use the live updater in the VirtueMart-AIO installer." LIVEUPDATE_STABILITY_ALPHA="Alpha" LIVEUPDATE_STABILITY_BETA="Beta" LIVEUPDATE_STABILITY_RC="RC" LIVEUPDATE_STABILITY_STABLE="Stable" LIVEUPDATE_STABILITY_SVN="SVN" LIVEUPDATE_STUCK_HEAD="Live Update has marked itself as crashed" LIVEUPDATE_STUCK_INFO="Live Update determined that it crashed the last time it tried to contact the update server. This usually indicates a host which actively blocks communications with external sites. If you would like to retry fetching the update information, please click the "Refresh update information" button below. If that results to a blank page, please contact your host and report this issue." LIVEUPDATE_SUCCESS="Success" LIVEUPDATE_TASK_OVERVIEW="Live Update"PK>\language/en-GB/index.htmlnuW+APK>\)language/en-GB/.htaccessnuW+A Order allow,deny Deny from all PK>\)language/fr-FR/.htaccessnuW+A Order allow,deny Deny from all PK>\?""#language/fr-FR/fr-FR.liveupdate.ininuW+A; Package Akeeba Backup ; Version fr-FR.liveupdate.ini 2011-07-23 by Sarki ; Copyright (c)2006-2011 Nicholas K. Dionysopoulos / AkeebaBackup.com ; Licensed under the GNU GPLv3 or later ; Note : All ini files need to be saved as UTF-8 LIVEUPDATE_TASK_OVERVIEW="Live Update" LIVEUPDATE_NOTSUPPORTED_HEAD="Live Update n'est pas pris en charge sur ce serveur" LIVEUPDATE_NOTSUPPORTED_INFO="Votre serveur indique que Live Update n'est pas supporté. Veuillez contactez votre hébergeur et leur demander d'activer l'extension PHP cURL ou activer la fonction fopen URL () . Si ceux-ci sont déjà activés, veuillez leur demander de configurer leur pare-feu afin qu'il autorise l'accès à l'URL suivante:"; LIVEUPDATE_NOTSUPPORTED_ALTMETHOD="Vous pouvez toujours mettre à jour %s en visitant notre site manuellement, télécharger la dernière version et l'installer en utilisant l'extension d'installation de Joomla!" LIVEUPDATE_STUCK_HEAD="Live Update a échoué !" LIVEUPDATE_STUCK_INFO="Live Update a échoué la dernière fois qu'il a essayé de contacter le serveur de mise à jour. Cela signifie généralement que votre hébergeur bloque activement les communications avec des sites externes. Si vous souhaitez réessayer de récupérer les informations de mise à jour, cliquez sur le bouton " Rafraichir les informations de mise à jour ". S'il en résulte une page blanche, veuillez contactez votre hébergeur et lui signaler ce problème." LIVEUPDATE_ERROR_NEEDSAUTH="Pour activer le bouton de mise à jour, vous devez fournir votre nom d'utilisateur/mot de passe ( ou votre ID de Téléchargement ) dans les paramètres du composant pour pouvoir mettre à jour vers la dernière version." LIVEUPDATE_HASUPDATES_HEAD="Une nouvelle version est disponible" LIVEUPDATE_NOUPDATES_HEAD="Vous avez la dernière version" LIVEUPDATE_CURRENTVERSION="Version installée" LIVEUPDATE_LATESTVERSION="Dernière version" LIVEUPDATE_LATESTRELEASED="Date de la dernière version " LIVEUPDATE_DOWNLOADURL="URL de téléchargement directe" LIVEUPDATE_REFRESH_INFO="Rafraichir les informations de mise à jour" LIVEUPDATE_DO_UPDATE="Mettre à jour vers la dernière version" LIVEUPDATE_FTP_REQUIRED="Live Update a besoin d'utiliser la couche FTP pour télécharger et installer la mise à jour, mais vous n'avez pas sauvegardé vos informations de connexion FTP dans la Configuration globale de Joomla!

Veuillez fournir ci-dessous votre nom d'utilisateur et votre mot de passe FTP afin de procéder à la mise à jour." LIVEUPDATE_FTP="Informations FTP" LIVEUPDATE_FTPUSERNAME="Nom d'utilisateur FTP" LIVEUPDATE_FTPPASSWORD="Mot de passe FTP" LIVEUPDATE_DOWNLOAD_AND_INSTALL="Télécharger et installez la mise à jour" LIVEUPDATE_DOWNLOAD_FAILED="Le téléchargement du package de mise à jour a échoué. Assurez-vous que votre répertoire temporaire (tmp) est accessible en écriture et que vous avez activé les options FTP dans la configuration globale de Joomla!." LIVEUPDATE_EXTRACT_FAILED="L'extraction du package de mise à jour a échoué. Veuillez mettre à jour l'extension manuellement." LIVEUPDATE_INVALID_PACKAGE_TYPE="Le type du package n'est pas valide. La mise à jour ne peut pas continuer." LIVEUPDATE_INSTALLEXT="Installer %s %s" LIVEUPDATE_ERROR="Erreur" LIVEUPDATE_SUCCESS="Réussite" LIVEUPDATE_ICON_UNSUPPORTED="Live Update n'est pas pris en charge" LIVEUPDATE_ICON_CRASHED="Live Update a échoué!" LIVEUPDATE_ICON_CURRENT="Vous avez la dernière version" LIVEUPDATE_ICON_UPDATES="MISE À JOUR ! Cliquez pour l'appliquer..."PK>\language/fr-FR/index.htmlnuW+APK>\language/index.htmlnuW+APK>\)language/pl-PL/.htaccessnuW+A Order allow,deny Deny from all PK>\@2R #language/pl-PL/pl-PL.liveupdate.ininuW+A; $Id: pl-PL.liveupdate.ini 632 2011-05-22 20:44:46Z nikosdion $ ; Akeeba Live Update ; Copyright ©2011 Nicholas K. Dionysopoulos / AkeebaBackup.com ; Licensed under the GNU LGPLv3 or later ; Translated by: Marek Kolka - 'zorro' - http://www.zorro.cal24.pl LIVEUPDATE_TASK_OVERVIEW="Aktualizacja" LIVEUPDATE_NOTSUPPORTED_HEAD="Aktualizacja nie jest obsługiwana na tym serwerze" LIVEUPDATE_NOTSUPPORTED_INFO="Twój serwer sygnalizuje, że Aktualizacja nie jest obsługiwana. Proszę skontaktować się administratorem hosta i poprosić o włączenie rozszerzenia cURL PHP albo aktywowanie URL fopen() wrappers. Jeżeli te są już włączone, poproś o skonfigurowanie firewalla tak, by umożliwił dostęp do następującego adresu URL:"; LIVEUPDATE_NOTSUPPORTED_ALTMETHOD="Zawsze można zaktualizować %s odwiedzając naszeą witrynę ręcznie, pobranie najnowszej wersji i instalacji za pomocą instalatora rozszerzeń Joomla!." LIVEUPDATE_STUCK_HEAD="Aktualizacja oznaczona jako niepowodzenie" LIVEUPDATE_STUCK_INFO="Aktualizacja zaznacza o niepowodzeniu podczas ostatniej próby kontaktu z serwerem aktualizacji. To zwykle wskazuje na hosta, który aktywnie blokuje komunikacje z zewnętrznymi stronami. Jeśli chcesz ponowić próbę pobierania informacje o aktualizacji, kliknij przycisk "Odśwież informacje o aktualizacji" poniżej. Jeśli wynikiem jest pusta strona, proszę skontaktować się z administracją hosta i zgłosić ten problem." LIVEUPDATE_ERROR_NEEDSAUTH="Musisz podać swój login/hasło lub Download ID w parametrach komponentu przed próbą aktualizacji do najnowszej wersji. Przycisk aktualizacji pozostanie wyłączony do czasu aż to zrobisz." LIVEUPDATE_HASUPDATES_HEAD="Nowa wersja jest dostępna" LIVEUPDATE_NOUPDATES_HEAD="Masz już najnowszą wersję" LIVEUPDATE_CURRENTVERSION="Zainstalowana wersja" LIVEUPDATE_LATESTVERSION="Najnowsza wersja" LIVEUPDATE_LATESTRELEASED="Data najnowszej wersji" LIVEUPDATE_DOWNLOADURL="URL bezpośredniego pobierania" LIVEUPDATE_REFRESH_INFO="Odśwież informacje o aktualizacji" LIVEUPDATE_DO_UPDATE="Aktualizacja do najnowszej wersji" LIVEUPDATE_FTP_REQUIRED="Aktualizacja zaznacza, że musi korzystać z protokołu FTP w celu pobrania i zainstalowania aktualizacji, ale nie zostały wcześniej zapisane dane logowania FTP w twojej Konfiguracji Globalnej Joomla!.

Prosimy o podanie nazwy użytkownika i hasła FTP poniżej, aby kontynuować aktualizację." LIVEUPDATE_FTP="Informacje FTP" LIVEUPDATE_FTPUSERNAME="Login FTP" LIVEUPDATE_FTPPASSWORD="Hasło FTP" LIVEUPDATE_DOWNLOAD_AND_INSTALL="Pobierz i zainstaluj aktualizację" LIVEUPDATE_DOWNLOAD_FAILED="Pobranie pakietu aktualizacji nie powiodło się. Upewnij się, że katalog tymczasowy jest zapisywalny lub, że masz włączoną opcję FTP Joomla! w Konfiguracji Globalnej twojej witryny." LIVEUPDATE_EXTRACT_FAILED="Rozpakowanie pakietu aktualizacji nie powiodło się. Proszę spróbować aktualizacji rozszerzenia ręcznie." LIVEUPDATE_INVALID_PACKAGE_TYPE="Nieprawidłowy typ pakietu. Aktualizacja nie może być kontynuowana." LIVEUPDATE_INSTALLEXT="Instalacja %s %s" LIVEUPDATE_ERROR="Błąd" LIVEUPDATE_SUCCESS="Powodzenie" LIVEUPDATE_ICON_UNSUPPORTED="Aktualizacja nie jest obsługiwana" LIVEUPDATE_ICON_CRASHED="Aktualizacja nie powiodła się" LIVEUPDATE_ICON_CURRENT="Masz najnowszą wersję" LIVEUPDATE_ICON_UPDATES="ZNALEZIONO AKTUALIZACJĘ! Kliknij!."PK>\language/pl-PL/index.htmlnuW+APK>\#language/el-GR/el-GR.liveupdate.ininuW+A; Akeeba Live Update ; Copyright ©2011 Nicholas K. Dionysopoulos / AkeebaBackup.com ; Licensed under the GNU LGPLv3 or later LIVEUPDATE_TASK_OVERVIEW="Απευθείας Ενημέρωση" LIVEUPDATE_NOTSUPPORTED_HEAD="Η Απευθείας Ενημέρωση δεν υποστηρίζεται από αυτόν τον διακομιστή" LIVEUPDATE_NOTSUPPORTED_INFO="Ο διακομιστής σας δείχνει ότι η Απευθείας Ενημέρωση δεν υποστηρίζεται. Παρακαλώ επικοινωνήστε με τον πάροχο φιλοξενίας σας και ζητήστε του να ενεργοποιήσει την επέκταση cURL της PHP ή τους URL fopen() wrappers. Εάν είναι ήδη ενεργοποιημένα, παρακαλώ ζητήστε του να ανοίξει το τείχος ασφαλείας ώστε να επιτρέπει την πρόσβαση στην παρακάτω διεύθυνση URL:"; LIVEUPDATE_NOTSUPPORTED_ALTMETHOD="Μπορείτε πάντα να ενημερώστε το λογισμικό %s επισκεπτόμενοι τον ιστότοπό μας, κατεβάζοντας την τελευταία έκδοση και εγκαθιστόντας την με την εγκατάσταση εφαρμογών του Joomla!." LIVEUPDATE_STUCK_HEAD="Η Απευθείας Ενημέρωση ανίχνευσε αποτυχία λειτουργίας" LIVEUPDATE_STUCK_INFO="Η Απευθείας Ενημέρωση εντόπισε ότι η τελευταία απόπειρα επικοινωνίας με τον διακομιστή ενημερώσεων κατέληξε σε κόλλημα. Αυτό συνήθως υποδυκνείει έναν πάροχο φιλοξενίας που μπλοκάρει ενεργά τις προσπάθειες επικοινωνίας με εξωετρικούς ιστοχώρους. Εάν θα θέλατε να δοκιμάσετε να ξαναπροσπαθήσουμε να λάβουμε τις πληροφορίες ενημέρωσεις, παρακαλώ κάντε κλικ στο κουμπί "Ανανέωση πληροφοριών ενημερώσεων" πιο κάτω. Εάν αυτό οδηγήσει σε λευκή σελίδα, παρακαλώ επικοινωνήστε με τον πάροχο φιλοξενίας και αναφέρετε αυτό το πρόβλημα." LIVEUPDATE_ERROR_NEEDSAUTH="Πρέπει να εισάγετε το όνομα χρήστη και συνθηματικό ή το Αναγνωριστικό Μεταφόρτωσης στις παραμέτρους της εφαρμογής πριν προσπαθήσετε να αναβαθμίσετε στην τελευταία έκδοση. Το κουμπί ενημέρωσης θα παραμείνει ανενεργό έως ότου το κάνετε." LIVEUPDATE_HASUPDATES_HEAD="Μια νέα έκδοση είναι διαθέσιμη" LIVEUPDATE_NOUPDATES_HEAD="Έχετε ήδη την τελευταία έκδοση" LIVEUPDATE_CURRENTVERSION="Εγκατεστημένη έκδοση" LIVEUPDATE_LATESTVERSION="Τελευταία έκδοση" LIVEUPDATE_LATESTRELEASED="Ημερομηνία έκδοσης" LIVEUPDATE_DOWNLOADURL="Διεύθυνση απευθείας μεταφόρτωσης" LIVEUPDATE_REFRESH_INFO="Ανανέωση πληροφοριών ενημεερώσεων" LIVEUPDATE_DO_UPDATE="Ενημέρωση στην τελευταία έκδοση" LIVEUPDATE_FTP_REQUIRED="Η Απευθείας Ενημέρωση εντόπισε ότι απαιτείται η χρήση FTP για να μεταφορτώσει και να εγκαταστήσει την ενημέρωσή σας, αλλά δεν έχετε σώσει τις πληροφορίες εισόδου στο FTP στις Γενικές Ρυθμίσεις του Joomla!.

Παρακαλώ εισάγετε το όνομα χρήστη και το συνθηματικό για το FTP προκειμένου να προχωρήσετε με την ενημέρωση." LIVEUPDATE_FTP="Πληροφορίες FTP" LIVEUPDATE_FTPUSERNAME="Όνομα Χρήστη FTP" LIVEUPDATE_FTPPASSWORD="Συνθηματικό FTP" LIVEUPDATE_DOWNLOAD_AND_INSTALL="Μεταφόρτωση και εγκατάσταση ενημέρωσης" LIVEUPDATE_DOWNLOAD_FAILED="Η μεταφόρτωση του πακέτου ενημέρωσης απέτυχε. Παρακαλώ βεβαιωθείτε ότι ο κάταλογος προσωρινής αποθήκευσης είναι εγγράψιμος ή ότι έχετε ενεργοποιήσει τις επιλογές FTP στις Γενικές Ρυθμίσεις του ιστοχώρου σας." LIVEUPDATE_EXTRACT_FAILED="Η αποσυμπίεση του πακέτου αναβάθμισης απέτυχε. Παρακαλώ δοκιμάστε να εγκαταστήσετε την επέκταση χειροκίνητα." LIVEUPDATE_INVALID_PACKAGE_TYPE="Ο τύπος του πακέτου δεν είναι έγκυρος. Η αναβάθμιση δεν μπορεί να συνεχίσει." LIVEUPDATE_INSTALLEXT="Εγκατάσταση %s %s" LIVEUPDATE_ERROR="Σφάλμα" LIVEUPDATE_SUCCESS="Επιτυχία" LIVEUPDATE_ICON_UNSUPPORTED="Η Απευθείας Ενημέρωση δεν υποστηρίζεται" LIVEUPDATE_ICON_CRASHED="Η Απευθείας Ενημέρωση κόλλησε" LIVEUPDATE_ICON_CURRENT="Έχετε την τελευταία έκδοση" LIVEUPDATE_ICON_UPDATES="ΒΡΕΘΗΚΕ ΕΝΗΜΕΡΩΣΗ! ΚΑΝΤΕ ΚΛΙΚ ΓΙΑ ΑΝΑΒΑΘΜΙΣΗ."PK>\)language/el-GR/.htaccessnuW+A Order allow,deny Deny from all PK>\language/el-GR/index.htmlnuW+APK>\language/da-DK/index.htmlnuW+APK>\)language/da-DK/.htaccessnuW+A Order allow,deny Deny from all PK>\kN #language/da-DK/da-DK.liveupdate.ininuW+A; Akeeba Live Update ; Copyright ©2011 Nicholas K. Dionysopoulos / AkeebaBackup.com ; Licensed under the GNU LGPLv3 or later LIVEUPDATE_TASK_OVERVIEW="Live Opdatering" LIVEUPDATE_NOTSUPPORTED_HEAD="Live opdatering understøttes ikke af denne server" LIVEUPDATE_NOTSUPPORTED_INFO="Din server indikerer at Live opdatering ikke er understøttet. Kontakt venligst din udbyder og spørg dem om at aktivere cURL PHP udvidelsen eller aktivere URL fopen() wrappers. Hvis disse allerede er aktive, så spørg dem venligst om at konfigurere deres firewall, således at den tillader adgang til følgende :"; LIVEUPDATE_NOTSUPPORTED_ALTMETHOD="Du kan altid opdatere %s ved at besøge vores side manuelt og hente den seneste udgivelse og derefter installere den ved at bruge Joomla!'s udvidelsesinstaller." LIVEUPDATE_STUCK_HEAD="Live opdatering melder at den gik ned" LIVEUPDATE_STUCK_INFO="Live opdatering opdagede at den gik ned sidste gang den prøvede at kontakte opdateringsserveren. Dette indikerer nomalt en udbyder der aktivt blokerer kommunikation med eksterne sider. Hvis du vil forsøge at hente opdateringsinformationen igen, klik da venligst på "Opdater opdateringsinformation" herunder. Hvis det resulterer i en blank side, så kontakt venligst din udbyder og rapporter dette problem." LIVEUPDATE_ERROR_NEEDSAUTH="Du skal angive dit brugernavn/adgangskode eller Download ID i komponentens indstillinger, før du kan opdatere til den seneste version. Opdateringsknappen vil forblive inaktiv indtil da." LIVEUPDATE_HASUPDATES_HEAD="En ny version er tilgængelig" LIVEUPDATE_NOUPDATES_HEAD="Du har allerede den seneste version" LIVEUPDATE_CURRENTVERSION="Installeret version" LIVEUPDATE_LATESTVERSION="Seneste version" LIVEUPDATE_LATESTRELEASED="Seneste udgivelsesdato" LIVEUPDATE_DOWNLOADURL="Direkte download link" LIVEUPDATE_REFRESH_INFO="Opdater opdateringsinformation" LIVEUPDATE_DO_UPDATE="Opdater til seneste version" LIVEUPDATE_FTP_REQUIRED="Live opdatering har opdaget at den skal bruge FTP for at kunne hente og installere din opdatering, men da du har ikke gemt FTP logind information i din Joomla! globale konfiguration.

Angiv venligst FTP brugernavn og adgangskode herunder for at fortsætte med opdateringen." LIVEUPDATE_FTP="FTP information" LIVEUPDATE_FTPUSERNAME="FTP Brugernavn" LIVEUPDATE_FTPPASSWORD="FTP Adgangskode" LIVEUPDATE_DOWNLOAD_AND_INSTALL="Hent og installer opdatering" LIVEUPDATE_DOWNLOAD_FAILED="Hentning af opdateringspakken fejlede. Vær venligst sikker på at din temp mappe er skrivbar og at du har aktiveret Joomla!'s FTP mulighed i Joomla!'s globale konfiguration." LIVEUPDATE_EXTRACT_FAILED="Udpakning af opdateringspakken fejlede. Opdater venligst udvidelsen manuelt." LIVEUPDATE_INVALID_PACKAGE_TYPE="Ugyldig pakketype. Opdateringen kan ikke fortsætte." LIVEUPDATE_INSTALLEXT="Installer %s %s" LIVEUPDATE_ERROR="Fejl" LIVEUPDATE_SUCCESS="Korrekt" LIVEUPDATE_ICON_UNSUPPORTED="Live opdatering er ikke understøttet" LIVEUPDATE_ICON_CRASHED="Live opdatering gik ned" LIVEUPDATE_ICON_CURRENT="Du har den seneste version" LIVEUPDATE_ICON_UPDATES="OPDATERING FUNDET! OPDATER NU."PK>\mfL L #language/nb-NO/nb-NO.liveupdate.ininuW+A; Akeeba Live Update ; Copyright ©2011 Nicholas K. Dionysopoulos / AkeebaBackup.com ; Licensed under the GNU LGPLv3 or later LIVEUPDATE_TASK_OVERVIEW="Live oppdatering" LIVEUPDATE_NOTSUPPORTED_HEAD="Live oppdatering støttes ikke på denne serveren" LIVEUPDATE_NOTSUPPORTED_INFO="Din server indikerer at Live oppdatering ikke støttes. Vennligst kontakt din leverandør og be dem aktivere cURL PHP eller aktivere URL fopen() wrappers. Dersom disse allerede er aktivert, kan du be dem om å konfigurere sin brannmur slik at den gir tilgang til følgende URL:"; LIVEUPDATE_NOTSUPPORTED_ALTMETHOD="Du kan alltid oppdatere manuelt%s ved å besøke vår side, laste ned den nyeste versjonen, og installere det ved hjelp av Joomla installasjonsprogrammet." LIVEUPDATE_STUCK_HEAD="Live oppdatering har markert seg selv som krasjet" LIVEUPDATE_STUCK_INFO="Live oppdatering krasjet forrige gang den prøvde å kontakte oppdateringsserveren. Dette betyr vanligvis en leverandør som aktivt blokkerer kommunikasjon med eksterne nettsteder. Hvis du ønsker å prøve å hente oppdateringsinformasjonen, klikk på knappen "Oppdater oppdateringsinformasjonen" under. Hvis dette resulterer i en blank side, kontakte din leverandør og rapportere dette problemet." LIVEUPDATE_ERROR_NEEDSAUTH="Du må oppgi brukernavn/passord eller nedlastnings ID til komponentens parametre før du forsøker å oppgradere til siste versjon. Oppgraderingsknappen vil forbli deaktivert til du gjøre det." LIVEUPDATE_HASUPDATES_HEAD="En ny versjon er tilgjengelig" LIVEUPDATE_NOUPDATES_HEAD="Du har allerede den nyeste versjonen" LIVEUPDATE_CURRENTVERSION="Installert versjon" LIVEUPDATE_LATESTVERSION="Nyeste versjon" LIVEUPDATE_LATESTRELEASED="Siste utgivelsesdato" LIVEUPDATE_DOWNLOADURL="Nedlastingsadresse" LIVEUPDATE_REFRESH_INFO="Oppdater oppdateringsinformasjonen" LIVEUPDATE_DO_UPDATE="Oppdatering til siste versjon" LIVEUPDATE_FTP_REQUIRED="Live oppdatering har behov for å bruke FTP for å laste ned og installere oppdateringen, men du har ikke lagret FTP påloggingsinformasjonen i Joomla! Global konfigurasjon .

Vennligst oppgi FTP brukernavn og passord nedenfor for å fortsette med oppdateringen." LIVEUPDATE_FTP="Informasjon" LIVEUPDATE_FTPUSERNAME="FTP brukernavn" LIVEUPDATE_FTPPASSWORD="FTP Passord" LIVEUPDATE_DOWNLOAD_AND_INSTALL="Last ned og installer oppdateringen" LIVEUPDATE_DOWNLOAD_FAILED="Nedlasting av oppdateringen mislyktes. Pass på at temp-mappen er skrivbar, eller at du har aktivert Joomla! 's FTP alternativer i Global konfigurasjon." LIVEUPDATE_EXTRACT_FAILED="Utpakking av oppdateringspakken mislyktes. Prøv å oppdatere utvidelsen manuelt." LIVEUPDATE_INVALID_PACKAGE_TYPE="Ugyldig pakke type. Oppdateringen kan ikke fortsette." LIVEUPDATE_INSTALLEXT="Installer %s %s" LIVEUPDATE_ERROR="Feil" LIVEUPDATE_SUCCESS="Vellykket" LIVEUPDATE_ICON_UNSUPPORTED="Live oppdatering støttes ikke" LIVEUPDATE_ICON_CRASHED="Live oppdatering krasjet" LIVEUPDATE_ICON_CURRENT="Du har den nyeste versjonen" LIVEUPDATE_ICON_UPDATES="OPPDATERING FUNNET! KLIKK FOR Å OPPDATERE."PK>\Ellanguage/nb-NO/index.htmlnuW+A PK>\)language/nb-NO/.htaccessnuW+A Order allow,deny Deny from all PK>\)language/de-DE/.htaccessnuW+A Order allow,deny Deny from all PK>\language/de-DE/index.htmlnuW+APK>\iJJ#language/de-DE/de-DE.liveupdate.ininuW+A; Akeeba Live Update ; Copyright ©2011 Nicholas K. Dionysopoulos / AkeebaBackup.com ; Licensed under the GNU LGPLv3 or later LIVEUPDATE_CONSIDER_COMPATIBILITY="Bevor Sie Ihr Live-System aktualisieren, testen Sie das Update bitte auf einem Backup-System, um den Verlust von Daten zu vermeiden. Rechnen Sie mit kleinen Inkompatibilitäten, falls Sie Erweiterungen von Fremdanbietern oder eigene Anpassungen (Plugins, Module, Templates) verwenden." LIVEUPDATE_CURRENTVERSION="Installierte Version" LIVEUPDATE_DOWNLOADURL="Direkte Download-URL" LIVEUPDATE_DOWNLOAD_AND_INSTALL="Aktualisierung herunterladen und installieren" LIVEUPDATE_DOWNLOAD_FAILED="Das Herunterladen des Aktualisierungspakets ist fehlgeschlagen. Bitte stellen Sie sicher, dass Ihr temp-Verzeichnis Schreibrechte besitzt und Sie Ihre FTP-Nutzerdaten in der Joomla!-Konfiguration angegeben haben." LIVEUPDATE_DO_UPDATE="Auf die neueste Version aktualisieren" LIVEUPDATE_ERROR="Fehler" LIVEUPDATE_ERROR_NEEDSAUTH="Bevor Sie eine Echtzeitaktualisierung durchführen können, müssen Sie Ihren Benutzernamen, das Passwort bzw. die Download-ID angeben. Der Aktualisierungsknopf wird solange ohne Funktion bleiben." LIVEUPDATE_EXTRACT_FAILED="Das Auspacken des Aktualisierungspakets ist fehlgeschlagen. Bitte aktualisieren Sie die Erweiterung manuell." LIVEUPDATE_FTP="FTP Informationen" LIVEUPDATE_FTPPASSWORD="FTP Passwort" LIVEUPDATE_FTPUSERNAME="FTP Benutzername" LIVEUPDATE_FTP_REQUIRED="Die Echtzeitaktualisierung hat festgestellt, dass FTP für die Aktualisierung und Installation verwednet werden muss. Sie haben aber noch keine FTP-Daten in der Joomla!-Konfiguraton angegeben.

BItte geben Sie Ihre FTP-Daten ein, bevor Sie mit der Aktualisierung fortfahren." LIVEUPDATE_HASUPDATES_HEAD="Es gibt eine neue Version" LIVEUPDATE_ICON_CRASHED="Live Update abgestürzt" LIVEUPDATE_ICON_CURRENT="Sie haben die aktuelle Version" LIVEUPDATE_ICON_UNSUPPORTED="Echtzeitaktualisierung nicht unterstützt" LIVEUPDATE_ICON_UPDATES="AKTUALISIERUNG GEFUNDEN! JETZT AKTUALISIEREN." LIVEUPDATE_INSTALLEXT="Installiere %s %s" LIVEUPDATE_INVALID_PACKAGE_TYPE="Falscher Aktualisierungspakettyp. Die Aktualisierung kann nicht durchgeführt werden." LIVEUPDATE_LATESTRELEASED="Neuestes Veröffentlichungsdatum" LIVEUPDATE_LATESTVERSION="Neueste Version" LIVEUPDATE_NOTSUPPORTED_ALTMETHOD="Sie können immer aktualisieren %s indem Sie unsere Internetseite besuchen, die neueste Version herunterladen und ganz normal installieren." LIVEUPDATE_NOTSUPPORTED_HEAD="Die Echtzeitaktualisierung wird auf diesem Server nicht unterstützt" LIVEUPDATE_NOTSUPPORTED_INFO="Ihr Server zeigt an, dass die Echtzeitaktualisierung nicht unterstützt wird. Bitte kontaktieren Sie Ihren Anbieter und bitten ihn, die cURL-PHP-Erweiterung zu aktivieren oder die URL fopen() Wrapper. Sollten diese schon aktviert sein, bitten Sie ihn, die Firewall so zu konfigurieren, dass sie den Zugriff auf folgende URL zulässt:"; LIVEUPDATE_NOUPDATES_HEAD="Sie haben die aktuelle Version" LIVEUPDATE_REFRESH_INFO="Aktualisierungsinformationen abrufen" LIVEUPDATE_REMEMBER_TO_UPDATE_AIO="Denken Sie daran, auch Ihre Plugins und Module zu aktualisieren, wofür Sie den Live-Updater im VirtueMart-AIO Installationsprogramm benutzen können." LIVEUPDATE_STABILITY_ALPHA="Alpha" LIVEUPDATE_STABILITY_BETA="Beta" LIVEUPDATE_STABILITY_RC="Freigabekandidat" LIVEUPDATE_STABILITY_STABLE="Stabile Version" LIVEUPDATE_STABILITY_SVN="SVN" LIVEUPDATE_STUCK_HEAD="Die Echtzeitaktualisierung hat sich selbst als abgestürzt gemeldet" LIVEUPDATE_STUCK_INFO="Die Echtzeitaktualisierung hat festgestellt, dass sie beim letzten Versuch den Aktualisierungsserver zu erreichen abgestürzt ist. Dies deutet meist auf einen Anbieter hin, der die Kommunikation mit externen Servern blockiert. Sollten Sie die Aktulalisierungsinformationen nochmals abrufen wollen, klicken Sie bitte auf den Knopf "Aktualisierungsinformationen abrufen". Sollte dieser Versuch auf einer weißen Seite enden, melden Sie diesen Fehler ihrem Anbieter." LIVEUPDATE_SUCCESS="Erfolg" LIVEUPDATE_TASK_OVERVIEW="Echtzeitaktualisierung"PK>\> 55#language/th-TH/th-TH.liveupdate.ininuW+A; Akeeba Live Update ; Copyright ©2011 Nicholas K. Dionysopoulos / AkeebaBackup.com ; Licensed under the GNU LGPLv3 or later LIVEUPDATE_TASK_OVERVIEW="Live Update" LIVEUPDATE_NOTSUPPORTED_HEAD="เซิฟเวอร์นี่ไม่รองรับ Live Update" LIVEUPDATE_NOTSUPPORTED_INFO="Your server indicates that Live Update is not supported. กรุณาติดต่อผู้ให้บริการโฮสและบอกให้เปิดใช้ cURL PHP extension หรือ activate the URL fopen() wrappers. If these are already enabled, please ask them to configure their firewall so that it allows access to the following URL:"; LIVEUPDATE_NOTSUPPORTED_ALTMETHOD="คุณยังสามารถทำการปรับปรุง %s โดยการเข้าไปยังเว็บไซต์ด้วยตนเอง แล้วทำการดาวน์โหลดเวอร์ชั่นล่าสุด มาติดตั้งใหม่ ผ่านทาง การติดตั้งส่วนขยาย ในจูมล่า" LIVEUPDATE_STUCK_HEAD="Live Update has marked itself as crashed" LIVEUPDATE_STUCK_INFO="Live Update determined that it crashed the last time it tried to contact the update server. This usually indicates a host which actively blocks communications with external sites. If you would like to retry fetching the update information, please click the "Refresh update information" button below. If that results to a blank page, please contact your host and report this issue." LIVEUPDATE_ERROR_NEEDSAUTH="You have to supply your username/password or Download ID to the component's parameters before trying to upgrade to the latest release. The upgrade button will remain disabled until you do that." LIVEUPDATE_HASUPDATES_HEAD="มีเวอร์ชั่นใหม่กว่าแล้ว" LIVEUPDATE_NOUPDATES_HEAD="คุณใช้เวอร์ชั่นล่าสุดอยู่แล้ว " LIVEUPDATE_CURRENTVERSION="เวอร์ชั่นที่ติดตั้ง" LIVEUPDATE_LATESTVERSION="เวอร์ชั่น ล่าสุด" LIVEUPDATE_LATESTRELEASED="วันที่ รีรีสล่าสุด" LIVEUPDATE_DOWNLOADURL="Direct download URL" LIVEUPDATE_REFRESH_INFO="รีเฟรช เพื่อปรับปรุงข้อมูล" LIVEUPDATE_DO_UPDATE="ปรับปรุงเป็นเวอร์ชั่นล่าสุด" LIVEUPDATE_FTP_REQUIRED="Live Update determined that it needs to use FTP in order to download and install your update, but you have not saved your FTP login information in your Joomla! Global Configuration.

Please provide the FTP username and password below to proceed with the update." LIVEUPDATE_FTP="รายละเอียด FTP" LIVEUPDATE_FTPUSERNAME="FTP Username" LIVEUPDATE_FTPPASSWORD="FTP Password" LIVEUPDATE_DOWNLOAD_AND_INSTALL="ดาวน์โหลด และติดตั้งเวอร์ชั่นล่าสุด" LIVEUPDATE_DOWNLOAD_FAILED="ดาวน์โหลดแพคเกจอับเดดผิดพลาด ตรวจสอบ temp-directory ของคุณสามารถเขียนได้ หรือคุณได้ทำการเปิดตัวเลือก Joomla!'s FTP ใน site's Global Configuration แล้ว" LIVEUPDATE_EXTRACT_FAILED="การแตกไฟล์แพคเกจล้มเหลว กรุณาลองปรับปรุงส่วนขยายด้วยตนเอง" LIVEUPDATE_INVALID_PACKAGE_TYPE="ประเภทแพคเกจไม่ถูกต้อง ไม่สามารถทำการปรับปรุงได้ " LIVEUPDATE_INSTALLEXT="ติดตั้ง %s %s" LIVEUPDATE_ERROR="ผิดพลาด" LIVEUPDATE_SUCCESS="สำเร็จ" LIVEUPDATE_ICON_UNSUPPORTED="ไม่รองรับ Live Update" LIVEUPDATE_ICON_CRASHED="Live Update เสียหาย" LIVEUPDATE_ICON_CURRENT="คุณใช้งานเวอร์ชั่นล่าสุดอยู่" LIVEUPDATE_ICON_UPDATES="พบการปรับปรุง คลิกเพื่อทำการปรับปรุง"PK>\)language/th-TH/.htaccessnuW+A Order allow,deny Deny from all PK>\language/th-TH/index.htmlnuW+APK>\language/sv-SE/index.htmlnuW+APK>\)language/sv-SE/.htaccessnuW+A Order allow,deny Deny from all PK>\ t #language/sv-SE/sv-SE.liveupdate.ininuW+A; Akeeba Live Update ; Copyright ©2011 Nicholas K. Dionysopoulos / AkeebaBackup.com ; Licensed under the GNU LGPLv3 or later LIVEUPDATE_TASK_OVERVIEW="Live Update" LIVEUPDATE_NOTSUPPORTED_HEAD="Live Update stöds inte på denna server" LIVEUPDATE_NOTSUPPORTED_INFO="Din server verkar inte stöda att Live Update körs. Kontakta din webbhotelleverantör och be dem aktivera cURL i PHP alternativt aktivera URL fopen() wrappers. Om dessa redan är aktiverade skall du be dem att konfigurera brandväggen så den tillåter tillträde från följande URL:"; LIVEUPDATE_NOTSUPPORTED_ALTMETHOD="Du kan alltid uppdatera %s genom att gå till vår webbplats manuellt, ladda ned den senaste versionen och installera den med Joomla!:s egen installerare." LIVEUPDATE_STUCK_HEAD="Live Update har markerat sig själv som kraschad" LIVEUPDATE_STUCK_INFO="Live Update har upptäckt att den kraschade förra gången den försökte kontakta uppdateringsservern. Vanligen beror detta på att webbhotellet har blockerat kommunikation med externa webbplatser. Om du ändå vill försöka hämta uppdateringsinformation, klicka på knappen "Hämta uppdateringsinformation" nedan. Om detta resulterar i en vit sida, skall du kontakta ditt webbhotell och rapportera felet." LIVEUPDATE_ERROR_NEEDSAUTH="Du måste ange ditt användarnamn/lösenord eller Nedladdnings-ID i komponentens inställningar innan du kan uppgradera till senaste versionen. Uppgraderingsknappen kommer att vara inaktiv till dess du gjort detta." LIVEUPDATE_HASUPDATES_HEAD="Det finns en ny version" LIVEUPDATE_NOUPDATES_HEAD="Du har redan senaste versionen" LIVEUPDATE_CURRENTVERSION="Installerad version" LIVEUPDATE_LATESTVERSION="Senaste version" LIVEUPDATE_LATESTRELEASED="Senaste versionsdatum" LIVEUPDATE_DOWNLOADURL="Direkt nedladdnings-URL" LIVEUPDATE_REFRESH_INFO="Hämta uppdateringsinformation" LIVEUPDATE_DO_UPDATE="Uppdatera till senaste version" LIVEUPDATE_FTP_REQUIRED="Live Update indikerar att den måste använda FTP för att kunna ladda ned och installera din uppdatering. Du måste först ange och spara dina uppgifter för FTP i Joomla!:s Globala Inställningar.

Ange användarnamn och lösenord till din FTP nedan för att kunna fortsätta uppdateringen." LIVEUPDATE_FTP="FTP-information" LIVEUPDATE_FTPUSERNAME="FTP Användarnamn" LIVEUPDATE_FTPPASSWORD="FTP Lösenord" LIVEUPDATE_DOWNLOAD_AND_INSTALL="Ladda ned och installera uppdatering" LIVEUPDATE_DOWNLOAD_FAILED="Nedladdningen av uppdateringsaketet misslyckades. Kontrollera att temp-mappen är skrivbar och att du har aktiverat Joomla!:s FTP-lager i Globala Inställningar." LIVEUPDATE_EXTRACT_FAILED="Uppackningen av uppdateringspaketet misslyckades. Prova att uppdatera tillägget manuellt." LIVEUPDATE_INVALID_PACKAGE_TYPE="Ogiltig pakettyp. Uppdateringen kan inte fortsätta." LIVEUPDATE_INSTALLEXT="Installerar %s %s" LIVEUPDATE_ERROR="FEL!" LIVEUPDATE_SUCCESS="KLART!" LIVEUPDATE_ICON_UNSUPPORTED="Live Update stöds inte" LIVEUPDATE_ICON_CRASHED="Live Update krashade" LIVEUPDATE_ICON_CURRENT="Du har den senaste versionen" LIVEUPDATE_ICON_UPDATES="UPPDATERING HITTAD! KLICKA FÖR ATT UPPDATERA."PK>\&c c #language/tr-TR/tr-TR.liveupdate.ininuW+A; Akeeba Live Update ; Copyright ©2011 Nicholas K. Dionysopoulos / AkeebaBackup.com ; Licensed under the GNU LGPLv3 or later LIVEUPDATE_TASK_OVERVIEW="Canlı Güncelle" LIVEUPDATE_NOTSUPPORTED_HEAD="Canlı Güncelleme bu sunucu üzerinde desteklenmiyor" LIVEUPDATE_NOTSUPPORTED_INFO="Sunucunuz Canlı Güncellemeyi desteklemiyor. Lütfen sunucu yöneticinizle görüşerek cURL PHP ekini ya da URL fopen() sarıcılarını etkinleştirmelerini isteyin. Bu ekler zaten etkinleştirilmişse, güvenlik duvarını şu İnternet adresine izin verecek şekilde ayarlamalarını isteyin:"; LIVEUPDATE_NOTSUPPORTED_ALTMETHOD="%s güncellemelerini istediğiniz zaman el ile kurmak için, sitemizden en son sürümü indirip Joomla! bileşen kurucusu ile yükleyebilirsiniz." LIVEUPDATE_STUCK_HEAD="Canlı güncelleme hata vermiş" LIVEUPDATE_STUCK_INFO="Canlı güncelleme, güncelleme sunucusuna son bağlanma denemesinde hata verdiğini belirledi. Bu durum genellikle dışarıdaki sunuculara bağlantıları engelleyen bir sunucu yapılandırmasından kaynaklanır. Güncelleme bilgisini yeniden almak isterseniz lütfen aşağıdaki "Güncelleme bilgisini al" düğmesine tıklayın. Boş beyaz bir sayfa ile karşılaşırsanız sunucu yöneticinize bu durumu iletin." LIVEUPDATE_ERROR_NEEDSAUTH="Son sürüme güncellemeyi denemeden önce, bileşen ayarlarından kullanıcı adı/parolanızı ya da indirme kodunuzu yazmalısınız. Bu bilgileri yazana kadar Güncelle düğmesi devre dışı görünecektir." LIVEUPDATE_HASUPDATES_HEAD="Yeni bir sürüm bulundu" LIVEUPDATE_NOUPDATES_HEAD="Son sürümü kullanıyorsunuz" LIVEUPDATE_CURRENTVERSION="Kullandığınız sürüm" LIVEUPDATE_LATESTVERSION="Son sürüm" LIVEUPDATE_LATESTRELEASED="Son yayın tarihi" LIVEUPDATE_DOWNLOADURL="Doğrudan indirme adresi" LIVEUPDATE_REFRESH_INFO="Güncelleme bilgisini al" LIVEUPDATE_DO_UPDATE="Son sürüme güncelle" LIVEUPDATE_FTP_REQUIRED="Canlı Güncelle, güncellemeyi indirip kurmak yerine FTP kullanmaya gerek duyuyor, ancak FTP bilgilerinizi Joomla! Genel Ayarlarına kaydetmemişsiniz.

Lütfen güncellemeyi yapabilmek için FTP kullanıcı adı ve parolanızı aşağıya yazın." LIVEUPDATE_FTP="FTP Bilgisi" LIVEUPDATE_FTPUSERNAME="FTP Kullanıcı Adı" LIVEUPDATE_FTPPASSWORD="FTP Parolası" LIVEUPDATE_DOWNLOAD_AND_INSTALL="Güncellemeyi indir ve kur" LIVEUPDATE_DOWNLOAD_FAILED="Güncelleme paketi indirilemedi. Geçici klasörünüzün yazılabilir olduğundan ya da Joomla! Genel Ayarlarından FTP seçeneğini etkinleştirdiğinizden emin olun." LIVEUPDATE_EXTRACT_FAILED="Güncelleme paketi ayıklanamadı. Lütfen bileşeni elle güncellemeyi deneyin." LIVEUPDATE_INVALID_PACKAGE_TYPE="Geçersiz paket tipi. Güncelleme yapılamıyor." LIVEUPDATE_INSTALLEXT="%s %s kurulsun" LIVEUPDATE_ERROR="Hata" LIVEUPDATE_SUCCESS="Başarılı" LIVEUPDATE_ICON_UNSUPPORTED="Canlı Güncelleme Desteklenmiyor" LIVEUPDATE_ICON_CRASHED="Canlı Güncelleme hata verdi" LIVEUPDATE_ICON_CURRENT="Son sürümü kullanıyorsunuz" LIVEUPDATE_ICON_UPDATES="GÜNCELLEME VAR! YÜKLEMEK İÇİN TIKLAYIN."PK>\)language/tr-TR/.htaccessnuW+A Order allow,deny Deny from all PK>\language/tr-TR/index.htmlnuW+APK>\language/it-IT/index.htmlnuW+APK>\VtvOO#language/it-IT/it-IT.liveupdate.ininuW+A; Akeeba Live Update ; Copyright ©2011 Nicholas K. Dionysopoulos / AkeebaBackup.com ; Licensed under the GNU LGPLv3 or later ; Translation: Roberto Restelli (roberto@msoutlook.it) LIVEUPDATE_TASK_OVERVIEW="Live Update" LIVEUPDATE_NOTSUPPORTED_HEAD="La funzionalità di Live Update non è supportata su questo server" LIVEUPDATE_NOTSUPPORTED_INFO="Il vostro server indica che la funzionalità di Live Update non è supportata. Contattare il fornitore e chiedere di abilitare l'estensione PHP cURL oppure attivare le funzionalità di URL fopen(). Se queste opzioni sono già attive, far verificare la configurazione del firewall per permettere l'accesso al seguente URL:"; LIVEUPDATE_NOTSUPPORTED_ALTMETHOD="E' sempre possibile aggiornare %s visitando il nostro sito, scaricando l'ultima versione disponibile ed installandola in Joomla usando i normali comando di installazione delle estensioni." LIVEUPDATE_STUCK_HEAD="Live Update ha rilevato un precedente crash" LIVEUPDATE_STUCK_INFO="Live Update ha determinato che nell'ultimo tentativo di contattare il server di aggiornamento l'operazioni e è fallita con un crash. Generalmente questo indica la presenza di un servizio che blocca la comunicazioen con siti esterni. Se volete riprovare a recuperare le informazioni di aggiornamento utilizzate il pulsante "Verifica disponibilità aggiornamenti" più sotto. Se il risultato è una pagina vuota, contattare il proprio fornitore per segnalare il problema." LIVEUPDATE_ERROR_NEEDSAUTH="E' necessario inserire Username e password oppure il proprio Download ID tra i paraemtri di configurazione del componente prima di tentare l'aggiornamento all'ultima versione. Il pulsante di aggiornamento sarà attivato solamente dopo l'isnerimento di tali informazioni." LIVEUPDATE_HASUPDATES_HEAD="E' disponibile una nuova versione" LIVEUPDATE_NOUPDATES_HEAD="Non sono disponibili ulteriori aggiornamenti" LIVEUPDATE_CURRENTVERSION="Versione installata" LIVEUPDATE_LATESTVERSION="Ultima versione" LIVEUPDATE_LATESTRELEASED="Data rilascio ultima versione" LIVEUPDATE_DOWNLOADURL="URL di scaricamento diretto" LIVEUPDATE_REFRESH_INFO="Verifica disponibilità aggiornamenti" LIVEUPDATE_DO_UPDATE="Aggiorna all'ultima versione" LIVEUPDATE_FTP_REQUIRED="Live Update ha determinato che è necessario l'utilizzo di FTP per scaricamente ed installare l'aggiornamento, tuttavia non sono state impostate le corrette informazioni di configurazione in Joomla. Inserire wui sotto Username e password per il servizio FTP per proseguire con l'aggiornamento." LIVEUPDATE_FTP="Informazioni FTP" LIVEUPDATE_FTPUSERNAME="Username FTP" LIVEUPDATE_FTPPASSWORD="Password FTP" LIVEUPDATE_DOWNLOAD_AND_INSTALL="Scarica ed installa aggiornamento" LIVEUPDATE_DOWNLOAD_FAILED="Lo scaricamento dell'aggiornamento è fallito. Verificare che la cartella temporanea sia scrivibile e che siano abilitate le opzioni FTP di Joomla all'interno della sezione di Configurazione Globale del sito." LIVEUPDATE_EXTRACT_FAILED="L'estrazione del pacchetto di aggiornamento è fallita. Sarà necessario effettuare l'aggiornamento tramite procedura manuale." LIVEUPDATE_INVALID_PACKAGE_TYPE="Formato del pacchetto di aggiornamento non riconosciuto. L'aggiornamento non può essere effettuato." LIVEUPDATE_INSTALLEXT="Installazione %s %s" LIVEUPDATE_ERROR="Errore" LIVEUPDATE_SUCCESS="Completato" LIVEUPDATE_ICON_UNSUPPORTED="Live Update non supportato" LIVEUPDATE_ICON_CRASHED="Live Update non funzionante correttamente" LIVEUPDATE_ICON_CURRENT="Non sono disponibili ulteriori aggiornamenti" LIVEUPDATE_ICON_UPDATES="INSTALLA NUOVO AGGIORNAMENTO!"PK>\)language/it-IT/.htaccessnuW+A Order allow,deny Deny from all PK>\)language/.htaccessnuW+A Order allow,deny Deny from all PK>\)language/nl-NL/.htaccessnuW+A Order allow,deny Deny from all PK>\,-R R #language/nl-NL/nl-NL.liveupdate.ininuW+A; Akeeba Live Update ; Copyright ©2011 Nicholas K. Dionysopoulos / AkeebaBackup.com ; Licensed under the GNU LGPLv3 or later ; Dutch Translation version 3.2.3 by [Robert J. Klop] info@zocors-web.nl LIVEUPDATE_TASK_OVERVIEW="Live Update" LIVEUPDATE_NOTSUPPORTED_HEAD="Live Update wordt op deze server niet ondersteund" LIVEUPDATE_NOTSUPPORTED_INFO="De server geeft aan dat Live Update niet wordt ondersteund. Neem contact op met de hoster en vraag de cURL PHP extensie of om de URL fopen() wrappers te activeren. Vraag, als ze al geactiveerd zijn, de firewall zo in te stellen dat er toegang tot de volgende URL is:"; LIVEUPDATE_NOTSUPPORTED_ALTMETHOD="U kunt %s altijd updaten door onze site te bezoeken, de laatste versie te downloaden en doormiddel van Joomla!'s extensiebeheer te installeren." LIVEUPDATE_STUCK_HEAD="Live Update is gecrasht" LIVEUPDATE_STUCK_INFO="Live Update stelt vast dat het, de laatste keer dat het de update-server trachtte te bereiken, gecrasht is. Dit betekent meestal dat de host actief de communicatie met externe sites blokkeert. Klik, als u de update informatie opnieuw wilt ophalen, op de "Ververs update informatie" knop hieronder. Als dat leidt tot een blanco pagina, neem dan contact op met uw hoster en meld dit." LIVEUPDATE_ERROR_NEEDSAUTH="U moet uw gebruikersnaam / wachtwoord of download ID opgegeven in de parameters van de component om naar de laatste release te upgraden. De upgrade knop zal geblokkeerd blijven tot dit gedaan is." LIVEUPDATE_HASUPDATES_HEAD="Er is een nieuwe versie beschikbaar" LIVEUPDATE_NOUPDATES_HEAD="U heeft de laatste versie al" LIVEUPDATE_CURRENTVERSION="Geïnstalleerde versie" LIVEUPDATE_LATESTVERSION="Nieuwste versie" LIVEUPDATE_LATESTRELEASED="Datum laatste release" LIVEUPDATE_DOWNLOADURL="URL voor directe download" LIVEUPDATE_REFRESH_INFO="Ververs update-informatie" LIVEUPDATE_DO_UPDATE="Update naar de laatste versie" LIVEUPDATE_FTP_REQUIRED="Live Update stelt vast dat het FTP moet gebruiken om de updates te downloaden en installeren, maar uw FTP logingegevens zijn bij de Joomla algemene instellingen niet opgeslagen.

Vul a.u.b. hieronder de FTP gebruikersnaam en het wachtwoord in om verder te gaan met updaten." LIVEUPDATE_FTP="FTP informatie" LIVEUPDATE_FTPUSERNAME="FTP gebruikersnaam" LIVEUPDATE_FTPPASSWORD="FTP wachtwoord" LIVEUPDATE_DOWNLOAD_AND_INSTALL="Download en installeer de update" LIVEUPDATE_DOWNLOAD_FAILED="Het downloaden van het updatepakket is mislukt. Zorg dat de temp map beschrijfbaar is of dat de FTP opties bij de algemene instellingen goed ingevuld zijn." LIVEUPDATE_EXTRACT_FAILED="Uitpakken van het pakket mislukt. Probeer de extensie handmatig bij te werken." LIVEUPDATE_INVALID_PACKAGE_TYPE="Verkeerd pakkettype. Updaten kan niet verder gaan." LIVEUPDATE_INSTALLEXT="Installeer %s %s" LIVEUPDATE_ERROR="Fout" LIVEUPDATE_SUCCESS="Succesvol" LIVEUPDATE_ICON_UNSUPPORTED="Live Update niet ondersteund" LIVEUPDATE_ICON_CRASHED="Live Update gecrasht" LIVEUPDATE_ICON_CURRENT="U heeft de laatste versie" LIVEUPDATE_ICON_UPDATES="UPDATE GEVONDEN! KLIK OM TE UPDATEN."PK>\language/nl-NL/index.htmlnuW+APK>\)language/ru-RU/.htaccessnuW+A Order allow,deny Deny from all PK>\language/ru-RU/index.htmlnuW+APK>\bLD#language/ru-RU/ru-RU.liveupdate.ininuW+A; Akeeba Live Update ; Copyright ©2011 Nicholas K. Dionysopoulos / AkeebaBackup.com ; Licensed under the GNU LGPLv3 or later LIVEUPDATE_TASK_OVERVIEW="Автоматическое обновление" LIVEUPDATE_NOTSUPPORTED_HEAD="Автоматическое обновление не поддерживается на этом сервере" LIVEUPDATE_NOTSUPPORTED_INFO="Ваш сервер сообщает, что автоматическое обновление не поддерживается. Пожалуйста, обратитесь к вашему хостеру и попросите его разрешить CURL расширение для PHP или активировать функцию URL FOPEN (). Если они уже включены, пожалуйста, попросите его настроить их брандмауэр так, что он позволял получить доступ к следующему адресу:"; LIVEUPDATE_NOTSUPPORTED_ALTMETHOD="Вы всегда сможете обновить %s посетив наш сайт, вручную, загрузив последнюю версию и установив ее с помощью Joomla!." LIVEUPDATE_STUCK_HEAD="Автоматическое обновление обнаружило ошибку" LIVEUPDATE_STUCK_INFO="Автоматическое обновление обнаружило, что произошла ошибка при последнем сеансе связи с сервером обновлений. Обычно это означает, что хост блокирует связи с внешними сайтами. Если вы хотели бы снова получить информацию об обновлении, пожалуйста, нажмите кнопку "Обновить информацию об обновлении" , расположенную ниже. Если это приводит к появлению пустой страницы, пожалуйста, свяжитесь с вашим хостером и сообщите об этой проблеме." LIVEUPDATE_ERROR_NEEDSAUTH="Вы должны ввести ваше имя пользлвателя/пароль или ID загрузки в параметры компонента перед попыткой обновления до последней версии. Кнопка обновления будет оставаться неактивной, пока вы этого не сделаете." LIVEUPDATE_HASUPDATES_HEAD="Доступна новая версия" LIVEUPDATE_NOUPDATES_HEAD="У вас уже установлена последняя версия" LIVEUPDATE_CURRENTVERSION="Установленная версия" LIVEUPDATE_LATESTVERSION="Последняя версия" LIVEUPDATE_LATESTRELEASED="Дата выхода последней версии" LIVEUPDATE_DOWNLOADURL="Ссылка для прямой загрузки" LIVEUPDATE_REFRESH_INFO="Обновить информацию об обновлении" LIVEUPDATE_DO_UPDATE="Обновить до последней версии" LIVEUPDATE_FTP_REQUIRED="Автоматическое обновление определило, что необходимо использовать FTP для загрузки и установки обновления, но вы не сохранили данные для авторизации на FTP в Общих настройках Joomla!.

Просьба ввести имя пользователя и пароль FTP для продолжения обновления." LIVEUPDATE_FTP="Информация FTP" LIVEUPDATE_FTPUSERNAME="Имя пользователя FTP" LIVEUPDATE_FTPPASSWORD="Пароль FTP" LIVEUPDATE_DOWNLOAD_AND_INSTALL="Загрузить и установить обновление" LIVEUPDATE_DOWNLOAD_FAILED="Загрузка пакета обновления не удалась. Убедитесь, что временный каталог доступен для записи или что вы включили FTP в Общих настройках Joomla!." LIVEUPDATE_EXTRACT_FAILED="Извлечение пакета обновления не удалось. Пожалуйста, попробуйте обновить компонент вручную." LIVEUPDATE_INVALID_PACKAGE_TYPE="Неверный тип пакета. Обновление не может продолжаться." LIVEUPDATE_INSTALLEXT="Установлено %s %s" LIVEUPDATE_ERROR="Ошибка" LIVEUPDATE_SUCCESS="Успешно" LIVEUPDATE_ICON_UNSUPPORTED="Автоматическое обновление не поддерживается" LIVEUPDATE_ICON_CRASHED="Автоматическое обновление не прошло" LIVEUPDATE_ICON_CURRENT="У вас последняя версия" LIVEUPDATE_ICON_UPDATES="НАЙДЕНО ОБНОВЛЕНИЕ! НАЖМИТЕ ДЛЯ ОБНОВЛЕНИЯ."PK>\language/no-NO/index.htmlnuW+APK>\mfL L #language/no-NO/nb-NO.liveupdate.ininuW+A; Akeeba Live Update ; Copyright ©2011 Nicholas K. Dionysopoulos / AkeebaBackup.com ; Licensed under the GNU LGPLv3 or later LIVEUPDATE_TASK_OVERVIEW="Live oppdatering" LIVEUPDATE_NOTSUPPORTED_HEAD="Live oppdatering støttes ikke på denne serveren" LIVEUPDATE_NOTSUPPORTED_INFO="Din server indikerer at Live oppdatering ikke støttes. Vennligst kontakt din leverandør og be dem aktivere cURL PHP eller aktivere URL fopen() wrappers. Dersom disse allerede er aktivert, kan du be dem om å konfigurere sin brannmur slik at den gir tilgang til følgende URL:"; LIVEUPDATE_NOTSUPPORTED_ALTMETHOD="Du kan alltid oppdatere manuelt%s ved å besøke vår side, laste ned den nyeste versjonen, og installere det ved hjelp av Joomla installasjonsprogrammet." LIVEUPDATE_STUCK_HEAD="Live oppdatering har markert seg selv som krasjet" LIVEUPDATE_STUCK_INFO="Live oppdatering krasjet forrige gang den prøvde å kontakte oppdateringsserveren. Dette betyr vanligvis en leverandør som aktivt blokkerer kommunikasjon med eksterne nettsteder. Hvis du ønsker å prøve å hente oppdateringsinformasjonen, klikk på knappen "Oppdater oppdateringsinformasjonen" under. Hvis dette resulterer i en blank side, kontakte din leverandør og rapportere dette problemet." LIVEUPDATE_ERROR_NEEDSAUTH="Du må oppgi brukernavn/passord eller nedlastnings ID til komponentens parametre før du forsøker å oppgradere til siste versjon. Oppgraderingsknappen vil forbli deaktivert til du gjøre det." LIVEUPDATE_HASUPDATES_HEAD="En ny versjon er tilgjengelig" LIVEUPDATE_NOUPDATES_HEAD="Du har allerede den nyeste versjonen" LIVEUPDATE_CURRENTVERSION="Installert versjon" LIVEUPDATE_LATESTVERSION="Nyeste versjon" LIVEUPDATE_LATESTRELEASED="Siste utgivelsesdato" LIVEUPDATE_DOWNLOADURL="Nedlastingsadresse" LIVEUPDATE_REFRESH_INFO="Oppdater oppdateringsinformasjonen" LIVEUPDATE_DO_UPDATE="Oppdatering til siste versjon" LIVEUPDATE_FTP_REQUIRED="Live oppdatering har behov for å bruke FTP for å laste ned og installere oppdateringen, men du har ikke lagret FTP påloggingsinformasjonen i Joomla! Global konfigurasjon .

Vennligst oppgi FTP brukernavn og passord nedenfor for å fortsette med oppdateringen." LIVEUPDATE_FTP="Informasjon" LIVEUPDATE_FTPUSERNAME="FTP brukernavn" LIVEUPDATE_FTPPASSWORD="FTP Passord" LIVEUPDATE_DOWNLOAD_AND_INSTALL="Last ned og installer oppdateringen" LIVEUPDATE_DOWNLOAD_FAILED="Nedlasting av oppdateringen mislyktes. Pass på at temp-mappen er skrivbar, eller at du har aktivert Joomla! 's FTP alternativer i Global konfigurasjon." LIVEUPDATE_EXTRACT_FAILED="Utpakking av oppdateringspakken mislyktes. Prøv å oppdatere utvidelsen manuelt." LIVEUPDATE_INVALID_PACKAGE_TYPE="Ugyldig pakke type. Oppdateringen kan ikke fortsette." LIVEUPDATE_INSTALLEXT="Installer %s %s" LIVEUPDATE_ERROR="Feil" LIVEUPDATE_SUCCESS="Vellykket" LIVEUPDATE_ICON_UNSUPPORTED="Live oppdatering støttes ikke" LIVEUPDATE_ICON_CRASHED="Live oppdatering krasjet" LIVEUPDATE_ICON_CURRENT="Du har den nyeste versjonen" LIVEUPDATE_ICON_UPDATES="OPPDATERING FUNNET! KLIKK FOR Å OPPDATERE."PK>\)language/no-NO/.htaccessnuW+A Order allow,deny Deny from all PK>\. assets/nosupport-32.pngnuW+APNG  IHDR szz pHYs   ZIDATX uWkl3Oxk0P3ƴȩI("-hRVi?H-D! $!@B Dv)cH(#,ػ玽ρ]|sϹ>B&']-uufm֭UoȱTABOQjF4s߽ƭD`φ ݻW-|ᩧZL(V# II`!d~uݸ OX{zqڊ&]om*SI6& PP0E',͠xrϵD[>&5MMMqvO{dJ˄"57aHQ8ۭfI8Hl;r$ F>[єɴ+E>.`L8zG:C7vS_jG]͏!…/BE^g4Q,f1l6aYx? ?7/IB& &a%}z~4[{{Ag8W/mݸ1mڴuxvhT3hPFC:D` | Θ$ݽKB2@@G:J@'Hݑ[B-9~c-Or$sL;L| b1*dXO_zEw R/i%hE& yc1GQ((ܵf64_jkMHW"|C!qtZDӼ_BL"`i{"sWVmŕ/˜DAI ٦Ozβ#:& z2]~EJF &F\Q+QxINQ޽4zRiقVΛgw&{d(zu\I 5̐4Ng[xpsr@-B_^M bȜL$_0b CgAj'NaJc*n@bdi8q׬ÇMPvJHs6bV:bE4:`gQK ,Z*#5JE)6,ʁ#]K^KB #vw ͻs(cuDNE |XTDY.Z<q<\:b(앁.YXsDm?5eg֢q8_`4{Nk}]*_TOEKp\`Pӎ)aŧ'.:I ㆁ_ЎTX-g[SCޞ!p0m9 (28h[6}&Q 'LFyf0JA0 fq;FP3'*EzH9H$” M%T cdo7|7#zFDɹlԁ@Ad_cwGqy{z\)l cK_F nlevFNԋtZ+{{ΝkDNFƠ'):m $U@ 뭞.ͯYJ瓂=_2ƭyyב&nb({яw#gF nbJ7JJ')JJJPHOu$d8]dÆ$lL&OA Hk`,(e|(+H&Z':&IBbȹ4p; a剿hƮ@pWĉ}h_ǍNqðXlF`(N,[WwP(4 Θ?p gY _kڗ v*b x H~mjŐM*و0 nѳVۋkAf@#R^;gmҴ NXIUUse3W{? 3wb9IENDB`PK>\2;\\assets/fail-24.pngnuW+APNG  IHDRw= pHYs  IDATH mVmlS~ιc;q $1 #FƠ&Ԋ jGºǴNU'X;m մ`CZʀB)]nI khY~{P*Z^sy>ǹ|N"qh@ )&0\>I4COa%JXLK|FzJGm-=ֶ 5XWf.71;4tm'./]1 tK^b۾jݱEx҃&@\ܸ]_.&u)o ~pWUuQ(L6L-`< p??:[x;$>^/Knή{kxv`&|6+Xʺe)TܼO tmv>||U>~Y͏}s]jU t+B!q̐ǯ~φe& Y8,L,M-m}eΝP__z֤WNoܨQ&NS%zd3Q;ܹ^M}a .nJ<>ljR6/ȃ H"Cjewܒk+ғhj#dlvq3؇ IvF7F131ʊ%E^63#c7.>5)Ē6.Y{unbT}6ˈ ~\P3jHzũk#-gο1mˎ~0#OX-7DѨTi#%sfͣy/G LcCCp3ł+ဪ^w\G匪ֵU25>+SmXSlٵ\) ϡ+:aC7By$3sx|ӎ-Pmv%[TQSj{ MljhR|o2{脳 -6Rs"IUmg)քÕ SI"6b9(HìKYyiYE'?lCvӎl'K.dTUYīw+7 v.,UH$9 #fvipA9O4zӲ.VfBkCCkyD\ǭRҬv$|YL.*A)CD"^tjX5vFt_ dr Ҫb>4?L}}gɱ~E*Ր+f$odN=\M,+0ɻ [+7ǵ~RL}kDY=:Y~kWṲ;A 4ixytoSHSeMM[W@pW[bme=+H;,#{ E&v?^SBi&qn9Pu2B>#=C)lztM}cf"=Đ>A>뾔Kkifi9ѠS0C!Ţ*RD[Ig谬aV;[|nX,?Ϯ[hFCM %7řŕ8\8As¹|7w %DS-Ȗ{MK4dtŵ@vEo>bpҀ͓ww D:`50P.\^|_. 4Ʒ$;GIENDB`PK>\^ONassets/warn-24.pngnuW+APNG  IHDRw= pHYs  NIDATH UkUv[kX`PM . >Pė}RD((m!- FPb 6`c-5MnwMi?ffx؝;ss(c ԇ*ܾ6l՚,ޓ( v3pE>ː BF.>Tnbש4uX4a8M`߃RhL<CP ]$>U`~`卌ϤiRHMNFe(o.9\Ь X 1= Vp%z;gTŁPtCmQ[Ϋ*YǦgUgvKƇ,=s0_Y6UsFe1rKP2K ;Q[ɿ2nM3A ]%Xghpg/!j A2=K_ZU(jW74)6U4#dp@)'@4lvU) i+]Śm4L@Qssj6nvZ+_ձi%*d`b8֏7g@Y6U NL5S;*f#;u[;-3"96 o9ޓ9TattQ#I6BﱁdFnvy.Bnͣf$Z q.]f YXA8A&2}S@~#q|ER{9|;zܸ m 5,U0Ġo ~=t0"Gκsѿr*!h"x9p@~1>)6sWW?E_t5aK`K)8އBm:Cb|Mz9cv>3xO=G(z~b'# -vH5k.jPӱ5Af+ox a >ۋGY{ǰ\km‹i)e?uLd7}W<ijqcX痢Ki(tq<,d,JޅE| 0RHl ]|ĵfA͚q Yڛ!IENDB`PK>\assets/index.htmlnuW+APK>\/qTassets/ok-24.pngnuW+APNG  IHDRw= pHYs  IDATH mLSWmo@hkaP4$(ʋɾ܊Kd#`lֲ1gt& e0`A hGA!PhK[/lq{9?BXqü@z= 06†_#`q^8Nh%BG9OGTd\a~]'@MykG>Dsx'y;laxRdٹŹ*+`6<\((WX,i(*V?5%-q ˲ՉNٯN>NoN(T01%n\!PD8D~ ֖$i0pXI_\ l8ה 63ql Aw@%<ϠQX@iZvefBRD,gR枦;;5%֦݁hWٗDӂ"sPbzoD)mJd^eNB5nPrZ|ᴴ#DLu{M/d1a#L;e@_ڲmZ*QN`h ޘu-ա~4d446Vm{(6*PC<5ۏ^Ene;4i(c$77/Cp.;4Iz)l?xd>edlx&ɒqbUpqKMUfuSnZJd?FNBvv80p}bmpy{f:C9R4$Zi:ްP(?n.8utt!|p9r'N{; &&"JJˀaldy³hZ2FH9~w,g,"p.B&U=14+ӥ D.ʧdZ$a4Q~JnvKv;(Enhi"܄b3:52>Q?~ej875@> :[n&oZւXQDn05X,*h>̅)|naL|k7CőG_}?5ozCa=k[ 8Ru…+XYj-PyAU{ΡBF?qX"鍊|2b/iG2ar31b} GOZ]4qcIENDB`PK>\ assets/liveupdate.cssnuW+A/** * @package LiveUpdate * @copyright Copyright ©2011 Nicholas K. Dionysopoulos / AkeebaBackup.com * @license GNU LGPLv3 or later */ @CHARSET "UTF-8"; .icon-48-liveupdate { background-image: url(liveupdate-48.png) } var { font-style: italic; font-weight: bold; } p.liveupdate-url { font-family: "Lucida Sans Mono", "Courier New", Courier, monospace; } div.liveupdate-notsupported, div.liveupdate-stuck { border: thin solid #990000; background: #fff0f0; padding: 1em; color: #330000; -moz-border-radius: 10px; -webkit-border-radius: 10px; -border-radius: 10px; -moz-box-shadow: 5px 5px 5px #f88; -webkit-box-shadow: 5px 5px 5px #f88; box-shadow: 5px 5px 5px #f88; } div.liveupdate-notsupported h3, div.liveupdate-stuck h3 { background: transparent url("fail-24.png") top left no-repeat; min-height: 24px; padding: 2px 0 0 28px; font-size: large; color: red; text-shadow: 1px 1px 6px #cccc00; } div.liveupdate-hasupdates { border: thin solid #999900; background: #fffff0; padding: 1em; color: #333300; -moz-border-radius: 10px; -webkit-border-radius: 10px; -border-radius: 10px; -moz-box-shadow: 5px 5px 5px #ff8; -webkit-box-shadow: 5px 5px 5px #ff8; box-shadow: 5px 5px 5px #ff8; } div.liveupdate-hasupdates h3 { background: transparent url("warn-24.png") top left no-repeat; min-height: 24px; padding: 2px 0 0 28px; font-size: large; color: #660; text-shadow: 1px 1px 6px #ffff00; } div.liveupdate-noupdates { border: thin solid #009900; background: #f0fff0; padding: 1em; color: #003300; -moz-border-radius: 10px; -webkit-border-radius: 10px; -border-radius: 10px; -moz-box-shadow: 5px 5px 5px #8f8; -webkit-box-shadow: 5px 5px 5px #8f8; box-shadow: 5px 5px 5px #8f8; } div.liveupdate-noupdates h3 { background: transparent url("ok-24.png") top left no-repeat; min-height: 24px; padding: 2px 0 0 28px; font-size: large; color: #060; text-shadow: 1px 1px 6px #00ff00; } div.liveupdate-infotable { width: 1020px; margin: auto auto; padding: 2px; border: thin solid #333; background: #fefefe; -moz-border-radius: 5px; -webkit-border-radius: 5px; -border-radius: 5px; } div.liveupdate-infotable .row0 { background: #fcfcfc } div.liveupdate-infotable .row1 { background: #f0f0f0 } div.liveupdate-row { padding: 5px 1px } span.liveupdate-label { display: inline-block; width: 200px; font-weight: bold; } span.liveupdate-data { display: inline-block; width: 400px; overflow: none } p.liveupdate-buttons { text-align: center; margin: 1em; } p.liveupdate-error-needsauth { margin: 1em; background: #ffcccc; border: medium solid #ff0000; color: #660000; font-size: large; font-weight: bold; padding: 1em; text-align: center; text-shadow: 1px 1px 2px white; -moz-border-radius: 10px; -webkit-border-radius: 10px; -border-radius: 10px; -moz-box-shadow: 5px 5px 5px #f88; -webkit-box-shadow: 5px 5px 5px #f88; box-shadow: 5px 5px 5px #f88; } p.liveupdate-poweredby { font-size: 8pt; color: silver; margin: 1em 0 0.5em 0 } p.liveupdate-poweredby a { color: silver; } div.liveupdate-ftp p { margin: 1em 2em; line-height: 140%; border: thin solid #00c; padding: 0.5em; color: #006; background-color: #f0f0ff; font-size: 14pt; text-shadow: 1px 1px 3px silver } PK>\vpVPPassets/update-32.pngnuW+APNG  IHDR szz pHYs  IDATX W[lUΜK QoR"b0& /ĤM|'>ht4BbL4'i(!1z#U Жnﻳ3?̜}9ZXu9 Ӿ %LČ.6';D V6l@p0 @~Hr4VoPJRml@2lM8A Ric TTATPB:`#Ќ~؋ %"\F<-!cfAdԈp eY(S$ -@ a+$bZ5^TgyM55)NK l" Y- RfR00k8D@!2 k I !]Q9P(EU~k"۰nk Ib#?j?ucp<0=lm)UCxmIh%N~ #UPn:)=ROH<Ⱦ;iu+`Aj&$܆E޳Bŝ 5R2Տo빼:tv R#v9FD`2@qGTm@Ŷr}Q G<Պ-}Z|hM"<'(eR(w LE[n!^+1Uu=MkTGv)}rQBX⏂XkdS]T-&|`Q.`S[v7ٛwΘ WptE׌1  %SJq޼]:V҉r;K ˰Ps^|ܝHQne"fiqŒtKx`+OEYքp D?F VSE`$a>6fn?s=[:dH0HˎOt g8w"dO(@Iج|vSK(1$ZPZ$>p6iH! z1F/C6£/ < Iy㐴пXPLҁ($E_~mz]gU$IyCV 4к>QAT!l>"Ew/[HbH+h{uwXz2$sBUqVPPa]x9BI//3N4|[\5r#ZSꑱHy2Jc $^o;'B ǞMsDgGϋy1>.Do.X$a 'fR^'CT$1e*M 2 LJoI?px=1 A<(Xnc_a |cNw[_pF@DŽp_U$-VJ|P^$a i=C R,,[UxYDJ|3xƜpHyzΘ5+@.o/$>L6XX籽 ؅c[±m':+0jDDZwF^-ʷk xSm4‚IENDB`PK>\)assets/.htaccessnuW+A Order allow,deny Deny from all PK>\qassets/current-32.pngnuW+APNG  IHDR szz pHYs  IDATX ŖPT}쏷n!AMaC$m"t&hLm"2)d4i)G8qL?Ѡ rYDxxwo}dA4zww;s?s]D){ٸ{ g.V0t-ݺ u u+XwE܀opO=_f<P h^o+*g7`sH9Dk(ay'a,|\T*{*ti_PjI`v~χ7Sp*(~//bZR~dJG/3ჴy%Д!>yU2̹+ޠ mf85?a*:Arv_l ^M[YM3RF^pjtEZXo?wp|~dݮ YƲ~V=SZ"aT( .o|pVBiGDr/lr'ďA}]θ]W`5(Nj|~SsU=;R^1<}}źy߅ճQJ|αwoz_s~?ïEnA5;O;:}:FGm錄mO@pÍcw2i`Αl1\^^assets/liveupdate-48.pngnuW+APNG  IHDR00W pHYs  IDAThZ p\ř1}K6Ɩm"A. %d@@%Y6VEq2+ !˧oɺl3:~G11ð=͌}W̨BI,k3ݧ敃Np.TZ$\L:('1L TW\o?TxfZ8_W}A /\zVۉcKuJd!Q.*p< zH&og+|~"@  zn'V{|qiB425"$ nLu`T=A)?ڦ{<5zztQMʙ/=W' ltZP, 0v3c~NE\R&gx_'IfbEpQ# \Tm8l)Pqݍc7Bwy XQ-W9%??,"J>P;$7u f8GiJDJ^v61"jwةA HIHĒYNIr=bf kav-Mgn&%/]4w4$ZLqsl*idOArnL|/SGLQdydrd:h h^{ẄKxX>PrkUj:.9ʼOtxKT{lH |-+6h~&9ڲÉ:czN++o#< y؃}^14np'uC HBkJr?hTJHr[ ܲT6"g NQa -j ^)? ~-ȉdJ  <#@[| VUII/TsG{6Dn[2`ףCv[/R9ԗף}b?\=%x69nBpS E<: B}):>O,]\&/~a\°~5kPU,YC-ίzWOd w{)F*/.Hǿw<֋fTⲢma3ch| zgr \!~̀y$7%Flw.ާ_Xz ;RHV_ `eQ >pWLnZ\Smc=ONv3KeYgop0 )/)1KqVնΩNIn R!p&`3SJH]bc%P/ ^"ֈӑ !/7VZg Fnq&J2w;H$d:g>1i,07w}[^a'lM%ߪj˾?7t+fddTI2E^(TBͳs&)!2G~(ږ%}#\g#BQpn38Gnw_?0I|M𣹞?(g,xto -1wP!Wk&yY)GgosPHb! XY: @)>9t詿Xꡍ/=im&c;%!7moTDt_!XFXXZdMA@Bfp\ѸB/'n|+T阛c1`+{WO$]YTB<MeH<=ZG\J ! aSe+$aԿ0xgY뭦]gS =EΥe`=Ej 0+yU|w i.L+6 CBH Tf(%a3x-TZ?`fGعj]?̟z˺ǃ'sCBiЀ76M,7:T`Vbn մkL B*Rй$mPӌ3ffISOIFoۼ) 3 ~­,!lkCCqe L]x¢8xmY@lC^u!qhԈɿq[Fhu}݀|OΒ]dgC>[h|Lzb[پy{~Е,$֪XS*X/| 60^^wq:YD:,<Xlњf_,yY~IqAnCJQ,k.D|/-_ues3U%k~xd{8KC!~G=yx0bK=zLKZ/%ˎ].5tuɦ*Há!_Į wTx|d Sl۲hKNCM&6pg7\K+xUw޿G葖 [Cg_FUP%bd C&9>cH)SGt[i*UG<3oYkz{C{ޕUiSr@M8Cfxe7I/ 9ۄĠ("+&O͡C[Pq#҄$ #0 Aնm xd]sfxsMD?XfA(ULc]&IZ^OKR++Ww׆wmw׶oizS كJCjG* odj[ ƺ*#uGcQ<>nD҃rovws1ɉ{l,|ub-+2w~:5UB"ረgD*}}  dz|0 p¼rHhqc 0SԠz"[۱g Хٖ_UU bZʹZq;IʘCo$Si/Y,GN\UUޒakͥ avЛ]$⏂HʃW:>ᇻDt8!n $vȀ$f?+hK+SY8!G*}M8zYƄ)!8r>erl*QC<;&gvX%IH7Cfje^[sMM!8ru;QIB׹8,q /C-7ޜm0w񜞜ܜN&Bj}U3owJάlصS:v8%#e}Nne V@|Ɍerc)uzVPH-/ZK1'i+R׍+'^z\%]8GbCJO lnMCeAi\/^88liveupdate.phpnuW+AhasUpdates = false; return $versionCheck; } }PK>\,r .htaccessnuW+A Order allow,deny Deny from all # Order allow,deny Allow from all PK>\ g,,classes/xmlslurp.phpnuW+A */ defined('_JEXEC') or die(); class LiveUpdateXMLSlurp extends JObject { private $_info = array(); public function getInfo($extensionName, $xmlName) { if(!array_key_exists($extensionName, $this->_info)) { $this->_info[$extensionName] = $this->fetchInfo($extensionName, $xmlName); } return $this->_info[$extensionName]; } /** * Gets the version information of an extension by reading its XML file * @param string $extensionName The name of the extension, e.g. com_foobar, mod_foobar, plg_foobar or tpl_foobar. * @param string $xmlName The name of the XML manifest filename. If empty uses $extensionName.xml */ private function fetchInfo($extensionName, $xmlName) { $type = strtolower(substr($extensionName,0,3)); switch($type) { case 'com': return $this->getComponentData($extensionName, $xmlName); break; case 'mod': return $this->getModuleData($extensionName, $xmlName); break; case 'plg': return $this->getPluginData($extensionName, $xmlName); break; case 'tpl': return $this->getTemplateData($extensionName, $xmlName); break; case 'pkg': return $this->getPackageData($extensionName, $xmlName); break; case 'lib': return $this->getPackageData($extensionName, $xmlName); break; default: if(strtolower(substr($extensionName, 0, 4)) == 'file') { return $this->getPackageData($extensionName, $xmlName); } else { return array('version'=>'', 'date'=>''); } } } /** * Gets the version information of a component by reading its XML file * @param string $extensionName The name of the extension, e.g. com_foobar * @param string $xmlName The name of the XML manifest filename. If empty uses $extensionName.xml */ private function getComponentData($extensionName, $xmlName) { $extensionName = strtolower($extensionName); $path = JPATH_ADMINISTRATOR.'/components/'.$extensionName; $altExtensionName = substr($extensionName,4); jimport('joomla.filesystem.file'); if(JFile::exists("$path/$xmlName")) { $filename = "$path/$xmlName"; } elseif(JFile::exists("$path/$extensionName.xml")) { $filename = "$path/$extensionName.xml"; } elseif(JFile::exists("$path/$altExtensionName.xml")) { $filename = "$path/$altExtensionName.xml"; } elseif(JFile::exists("$path/manifest.xml")) { $filename = "$path/manifest.xml"; } else { $filename = $this->searchForManifest($path); if($filename === false) $filename = null; } if(empty($filename)) { return array('version' => '', 'date' => '', 'xmlfile' => ''); } $xml = JFactory::getXMLParser('Simple'); if (!$xml->loadFile($filename)) { unset($xml); return array('version' => '', 'date' => '', 'xmlfile' => ''); } if ( ($xml->document->name() != 'install') && ($xml->document->name() != 'extension') ) { unset($xml); return array('version' => '', 'date' => '', 'xmlfile' => ''); } $data = array(); $element = & $xml->document->version[0]; $data['version'] = $element ? $element->data() : ''; $element = & $xml->document->creationDate[0]; $data['date'] = $element ? $element->data() : ''; $data['xmlfile'] = $filename; return $data; } /** * Gets the version information of a module by reading its XML file * @param string $extensionName The name of the extension, e.g. mod_foobar * @param string $xmlName The name of the XML manifest filename. If empty uses $extensionName.xml */ private function getModuleData($extensionName, $xmlName) { $extensionName = strtolower($extensionName); $altExtensionName = substr($extensionName,4); jimport('joomla.filesystem.folder'); jimport('joomla.filesystem.file'); $path = JPATH_SITE.'/modules/'.$extensionName; if(!JFolder::exists($path)) { $path = JPATH_ADMINISTRATOR.'/modules/'.$extensionName; } if(!JFolder::exists($path)) { // Joomla! 1.5 // 1. Check front-end $path = JPATH_ADMINISTRATOR.'/modules'; $filename = "$path/$xmlName"; if(!JFile::exists($filename)) { $filename = "$path/$extensionName.xml"; } if(!JFile::exists($filename)) { $filename = "$path/$altExtensionName.xml"; } // 2. Check front-end if(!JFile::exists($filename)) { $path = JPATH_SITE.'/modules'; $filename = "$path/$xmlName"; if(!JFile::exists($filename)) { $filename = "$path/$extensionName.xml"; } if(!JFile::exists($filename)) { $filename = "$path/$altExtensionName.xml"; } if(!JFile::exists($filename)) { return array('version' => '', 'date' => ''); } } } else { // Joomla! 1.6 $filename = "$path/$xmlName"; if(!JFile::exists($filename)) { $filename = "$path/$extensionName.xml"; } if(!JFile::exists($filename)) { $filename = "$path/$altExtensionName.xml"; } if(!JFile::exists($filename)) { return array('version' => '', 'date' => ''); } } if(empty($filename)) { return array('version' => '', 'date' => '', 'xmlfile' => ''); } $xml = JFactory::getXMLParser('Simple'); if (!$xml->loadFile($filename)) { unset($xml); return array('version' => '', 'date' => '', 'xmlfile' => ''); } if ($xml->document->name() != 'install') { unset($xml); return array('version' => '', 'date' => '', 'xmlfile' => ''); } $data = array(); $element = & $xml->document->version[0]; $data['version'] = $element ? $element->data() : ''; $element = & $xml->document->creationDate[0]; $data['date'] = $element ? $element->data() : ''; $data['xmlfile'] = $filename; return $data; } /** * Gets the version information of a plugin by reading its XML file * @param string $extensionName The name of the plugin, e.g. plg_foobar * @param string $xmlName The name of the XML manifest filename. If empty uses $extensionName.xml */ private function getPluginData($extensionName, $xmlName) { $extensionName = strtolower($extensionName); $altExtensionName = substr($extensionName,4); jimport('joomla.filesystem.folder'); jimport('joomla.filesystem.file'); $base = JPATH_PLUGINS; // Get a list of directories $stack = JFolder::folders($base,'.',true,true); foreach($stack as $path) { $filename = "$path/$xmlName"; if(JFile::exists($filename)) break; $filename = "$path/$extensionName.xml"; if(JFile::exists($filename)) break; $filename = "$path/$altExtensionName.xml"; if(JFile::exists($filename)) break; } if(!JFile::exists($filename)) { return array('version' => '', 'date' => '', 'xmlfile' => ''); } $xml = JFactory::getXMLParser('Simple'); if (!$xml->loadFile($filename)) { unset($xml); return array('version' => '', 'date' => '', 'xmlfile' => ''); } if ($xml->document->name() != 'install') { unset($xml); return array('version' => '', 'date' => '', 'xmlfile' => ''); } $data = array(); $element = & $xml->document->version[0]; $data['version'] = $element ? $element->data() : ''; $element = & $xml->document->creationDate[0]; $data['date'] = $element ? $element->data() : ''; $data['xmlfile'] = $filename; return $data; } /** * Gets the version information of a template by reading its XML file * @param string $extensionName The name of the template, e.g. tpl_foobar * @param string $xmlName The name of the XML manifest filename. If empty uses $extensionName.xml or templateDetails.xml */ private function getTemplateData($extensionName, $xmlName) { $extensionName = strtolower($extensionName); $altExtensionName = substr($extensionName,4); jimport('joomla.filesystem.folder'); jimport('joomla.filesystem.file'); // First look for administrator templates $path = JPATH_THEMES.'/'.$altExtensionName; if(!JFolder::exists($path)) { // Then look for front-end templates $path = JPATH_SITE.'/templates/'.$altExtensionName; if(!JFolder::exists($path)) return array('version' => '', 'date' => ''); } $filename = "$path/$xmlName"; if(!JFile::exists($filename)) { $filename = "$path/templateDetails.xml"; } if(!JFile::exists($filename)) { $filename = "$path/$extensionName.xml"; } if(!JFile::exists($filename)) { $filename = "$path/$altExtensionName.xml"; } if(!JFile::exists($filename)) { return array('version' => '', 'date' => '', 'xmlfile' => ''); } $xml = JFactory::getXMLParser('Simple'); if (!$xml->loadFile($filename)) { unset($xml); return array('version' => '', 'date' => '', 'xmlfile' => ''); } if ($xml->document->name() != 'install') { unset($xml); return array('version' => '', 'date' => '', 'xmlfile' => ''); } $data = array(); $element = & $xml->document->version[0]; $data['version'] = $element ? $element->data() : ''; $element = & $xml->document->creationDate[0]; $data['date'] = $element ? $element->data() : ''; $data['xmlfile'] = $filename; return $data; } /** * This method parses the manifest information of package, library and file * extensions. All of those extensions do not store their manifests in the * extension's directory, but in administrator/manifests. Kudos to @mbabker * for sharing this method! * * @param string $extensionName * @param string $xmlName * @return type */ private function getPackageData($extensionName, $xmlName) { $extensionName = strtolower($extensionName); $altExtensionName = substr($extensionName,4); jimport('joomla.filesystem.folder'); jimport('joomla.filesystem.file'); $path = JPATH_ADMINISTRATOR.'/manifests/packages'; $filename = "$path/$xmlName"; if(!JFile::exists($filename)) { $filename = "$path/$extensionName.xml"; } if(!JFile::exists($filename)) { $filename = "$path/$altExtensionName.xml"; } if(!JFile::exists($filename)) { return array('version' => '', 'date' => ''); } if(empty($filename)) { return array('version' => '', 'date' => '', 'xmlfile' => ''); } $xml = JFactory::getXMLParser('Simple'); if (!$xml->loadFile($filename)) { unset($xml); return array('version' => '', 'date' => '', 'xmlfile' => ''); } if ($xml->document->name() != 'extension') { unset($xml); return array('version' => '', 'date' => '', 'xmlfile' => ''); } $data = array(); $element = & $xml->document->version[0]; $data['version'] = $element ? $element->data() : ''; $element = & $xml->document->creationDate[0]; $data['date'] = $element ? $element->data() : ''; $data['xmlfile'] = $filename; return $data; } /** * Scans a directory for XML manifest files. The first XML file to be a * manifest wins. * * @var $path string The path to look into * * @return string|bool The full path to a manifest file or false if not found */ private function searchForManifest($path) { jimport('joomla.filesystem.folder'); $files = JFolder::files($path, '\.xml$', false, true); if(!empty($files)) foreach($files as $filename) { $xml = JFactory::getXMLParser('simple'); $result = $xml->loadFile($filename); if(!$result) continue; if(($xml->document->name() != 'install') && ($xml->document->name() != 'extension') && ($xml->document->name() != 'mosinstall')) continue; unset($xml); return $filename; } return false; } }PK>\.gYclasses/tmpl/overview.phpnuW+A */ defined('_JEXEC') or die(); ?>
updateInfo->supported): ?>

escape($this->updateInfo->extInfo->updateurl) ?>

escape($this->updateInfo->extInfo->title)); ?>

updateInfo->stuck):?>

escape($this->updateInfo->extInfo->title)); ?>

updateInfo->hasUpdates ? 'hasupdates' : 'noupdates'; $auth = $this->config->getAuthorization(); $auth = empty($auth) ? '' : '?'.$auth; ?> needsAuth): ?>

updateInfo->extInfo->version ?>
updateInfo->version ?>
updateInfo->date ?>

updateInfo->hasUpdates):?> needsAuth ? 'disabled="disabled"' : ''?>

Powered by Akeeba Live Update

PK>\)classes/tmpl/.htaccessnuW+A Order allow,deny Deny from all PK>\classes/tmpl/index.htmlnuW+APK>\.classes/tmpl/install.phpnuW+A */ defined( '_JEXEC' ) or die(); $state = &$this->get('State'); $message1 = $state->get('message'); $message2 = $state->get('extmessage'); ?>

Powered by Akeeba Live Update

PK>\5FYYclasses/tmpl/startupdate.phpnuW+A */ defined('_JEXEC') or die(); ?>

Powered by Akeeba Live Update

PK>\)classes/storage/.htaccessnuW+A Order allow,deny Deny from all PK>\classes/storage/index.htmlnuW+APK>\? classes/storage/component.phpnuW+A */ defined('_JEXEC') or die(); /** * Live Update Component Storage Class * Allows to store the update data to a component's parameters. This is the most reliable method. * Its configuration options are: * component string The name of the component which will store our data. If not specified the extension name will be used. * key string The name of the component parameter where the serialized data will be stored. If not specified "liveupdate" will be used. */ class LiveUpdateStorageComponent extends LiveUpdateStorage { private static $component = null; private static $key = null; public function load($config) { if(!array_key_exists('component', $config)) { self::$component = $config['extensionName']; } else { self::$component = $config['component']; } if(!array_key_exists('key', $config)) { self::$key = 'liveupdate'; } else { self::$key = $config['key']; } jimport('joomla.html.parameter'); jimport('joomla.application.component.helper'); $component =& JComponentHelper::getComponent(self::$component); if(!($component->params instanceof JRegistry)) { $params = new JParameter($component->params); } else { $params = $component->params; } $data = $params->getValue(self::$key, ''); jimport('joomla.registry.registry'); self::$registry = new JRegistry('update'); self::$registry->loadINI($data); } public function save() { $data = self::$registry->toString('INI'); $db =JFactory::getDBO(); // An interesting discovery: if your component is manually updating its // component parameters before Live Update is called, then calling Live // Update will reset the modified component parameters because // JComponentHelper::getComponent() returns the old, cached version of // them. So, we have to forget the following code and shoot ourselves in // the feet. Dammit!!! /* jimport('joomla.html.parameter'); jimport('joomla.application.component.helper'); $component =& JComponentHelper::getComponent(self::$component); $params = new JParameter($component->params); $params->setValue(self::$key, $data); */ if( version_compare(JVERSION,'1.6.0','ge') ) { $sql = 'SELECT '.$db->nameQuote('params').' FROM '.$db->nameQuote('#__extensions'). ' WHERE '.$db->nameQuote('type').' = '.$db->Quote('component').' AND '. $db->nameQuote('element').' = '.$db->Quote(self::$component); $db->setQuery($sql); } else { $sql = 'SELECT '.$db->nameQuote('params').' FROM '.$db->nameQuote('#__components'). ' WHERE '.$db->nameQuote('option').' = '.$db->Quote(self::$component). " AND `parent` = 0 AND `menuid` = 0"; $db->setQuery($sql); } $rawparams = $db->loadResult(); $params = new JParameter($rawparams); $params->setValue(self::$key, $data); if( version_compare(JVERSION,'1.6.0','ge') ) { // Joomla! 1.6 $data = $params->toString('JSON'); $sql = 'UPDATE `#__extensions` SET `params` = '.$db->Quote($data).' WHERE '. "`element` = ".$db->Quote(self::$component)." AND `type` = 'component'"; } else { // Joomla! 1.5 $data = $params->toString('INI'); $sql = 'UPDATE `#__components` SET `params` = '.$db->Quote($data).' WHERE '. "`option` = ".$db->Quote(self::$component)." AND `parent` = 0 AND `menuid` = 0"; } $db->setQuery($sql); $db->query(); } } PK>\+dLLclasses/storage/file.phpnuW+A */ defined('_JEXEC') or die(); /** * Live Update File Storage Class * Allows to store the update data to files on disk. Its configuration options are: * path string The absolute path to the directory where the update data will be stored as INI files * */ class LiveUpdateStorageFile extends LiveUpdateStorage { private static $filename = null; public function load($config) { $path = $config['path']; $extname = $config['extensionName']; $filename = "$path/$extname.updates.ini"; self::$filename = $filename; jimport('joomla.registry.registry'); self::$registry = new JRegistry('update'); jimport('joomla.filesystem.file'); if(JFile::exists(self::$filename)) { self::$registry->loadFile(self::$filename, 'INI'); } } public function save() { jimport('joomla.filesystem.file'); $data = self::$registry->toString('INI'); JFile::write(self::$filename, $data); } } PK>\ǘ[77classes/storage/storage.phpnuW+A */ defined('_JEXEC') or die(); /** * Abstract class for the update parameters storage * @author nicholas * */ class LiveUpdateStorage { /** * The update data registry * @var JRegistry */ public static $registry = null; /** * * @param string $type * @param array $config * @return LiveUpdateStorage */ public static function getInstance($type, $config) { static $instances = array(); $sig = md5($type, serialize($config)); if(!array_key_exists($sig, $instances)) { require_once dirname(__FILE__).'/'.strtolower($type).'.php'; $className = 'LiveUpdateStorage'.ucfirst($type); $object = new $className($config); $object->load($config); $newRegistry = clone(self::$registry); $object->setRegistry($newRegistry); $instances[$sig] = $object; } return $instances[$sig]; } public function &getRegistry() { return self::$registry; } public function setRegistry($registry) { self::$registry = $registry; } public final function set($key, $value) { if($key == 'updatedata') { if(function_exists('json_encode') && function_exists('json_decode')) { $value = json_encode($value); } elseif(function_exists('base64_encode') && function_exists('base64_decode')) { $value = base64_encode(serialize($value)); } else { $value = serialize($value); } } self::$registry->setValue("update.$key", $value); } public final function get($key, $default) { $value = self::$registry->getValue("update.$key", $default); if($key == 'updatedata') { if(function_exists('json_encode') && function_exists('json_decode')) { $value = json_decode($value); } elseif(function_exists('base64_encode') && function_exists('base64_decode')) { $value = unserialize(base64_decode($value)); } else { $value = unserialize($value); } } return $value; } public function save() {} public function load($config) {} }PK>\8\classes/inihelper.phpnuW+A */ defined('_JEXEC') or die(); /** * A smart INI file parser with reproducible behaviour among different PHP versions */ class LiveUpdateINIHelper { /** * Parse an INI file and return an associative array. Since PHP versions before * 5.1 are bitches with regards to INI parsing, I use a PHP-only solution to * overcome this obstacle. * @param string $file The file to process * @param bool $process_sections True to also process INI sections * @return array An associative array of sections, keys and values */ public static function parse_ini_file( $file, $process_sections, $rawdata = false ) { if($rawdata) { return self::parse_ini_file_php($file, $process_sections, $rawdata); } else { if( version_compare(PHP_VERSION, '5.1.0', '>=') && (!$rawdata) ) { if( function_exists('parse_ini_file') ) { return parse_ini_file($file, $process_sections); } else { return self::parse_ini_file_php($file, $process_sections); } } else { return self::parse_ini_file_php($file, $process_sections, $rawdata); } } } /** * A PHP based INI file parser. * Thanks to asohn ~at~ aircanopy ~dot~ net for posting this handy function on * the parse_ini_file page on http://gr.php.net/parse_ini_file * @param string $file Filename to process * @param bool $process_sections True to also process INI sections * @param bool $rawdata If true, the $file contains raw INI data, not a filename * @return array An associative array of sections, keys and values */ static function parse_ini_file_php($file, $process_sections = false, $rawdata = false) { $process_sections = ($process_sections !== true) ? false : true; if(!$rawdata) { $ini = file($file); } else { $file = str_replace("\r","",$file); $ini = explode("\n", $file); } if (count($ini) == 0) {return array();} $sections = array(); $values = array(); $result = array(); $globals = array(); $i = 0; foreach ($ini as $line) { $line = trim($line); $line = str_replace("\t", " ", $line); // Comments if (!preg_match('/^[a-zA-Z0-9[]/', $line)) {continue;} // Sections if ($line{0} == '[') { $tmp = explode(']', $line); $sections[] = trim(substr($tmp[0], 1)); $i++; continue; } // Key-value pair list($key, $value) = explode('=', $line, 2); $key = trim($key); $value = trim($value); if (strstr($value, ";")) { $tmp = explode(';', $value); if (count($tmp) == 2) { if ((($value{0} != '"') && ($value{0} != "'")) || preg_match('/^".*"\s*;/', $value) || preg_match('/^".*;[^"]*$/', $value) || preg_match("/^'.*'\s*;/", $value) || preg_match("/^'.*;[^']*$/", $value) ){ $value = $tmp[0]; } } else { if ($value{0} == '"') { $value = preg_replace('/^"(.*)".*/', '$1', $value); } elseif ($value{0} == "'") { $value = preg_replace("/^'(.*)'.*/", '$1', $value); } else { $value = $tmp[0]; } } } $value = trim($value); $value = trim($value, "'\""); if ($i == 0) { if (substr($line, -1, 2) == '[]') { $globals[$key][] = $value; } else { $globals[$key] = $value; } } else { if (substr($line, -1, 2) == '[]') { $values[$i-1][$key][] = $value; } else { $values[$i-1][$key] = $value; } } } for($j = 0; $j < $i; $j++) { if ($process_sections === true) { if( isset($sections[$j]) && isset($values[$j]) ) $result[$sections[$j]] = $values[$j]; } else { if( isset($values[$j]) ) $result[] = $values[$j]; } } return $result + $globals; } }PK>\gEclasses/controller.phpnuW+A */ defined('_JEXEC') or die(); jimport('joomla.application.component.controller'); /** * The Live Update MVC controller */ class LiveUpdateController extends JController { private $jversion = '15'; /** * Object contructor * @param array $config * * @return LiveUpdateController */ public function __construct($config = array()) { parent::__construct(); // Do we have Joomla! 1.6? if( version_compare( JVERSION, '1.6.0', 'ge' ) ) { $this->jversion = '16'; } $basePath = dirname(__FILE__); if($this->jversion == '15') { $this->_basePath = $basePath; } else { $this->basePath = $basePath; } $this->registerDefaultTask('overview'); } /** * Runs the overview page task */ public function overview() { $this->display(); } /** * Starts the update procedure. If the FTP credentials are required, it asks for them. */ public function startupdate() { $ftp = $this->setCredentialsFromRequest('ftp'); if($ftp === true) { // The user needs to supply the FTP credentials $this->display(); } else { // No FTP credentials required; proceed with the download $this->setRedirect('index.php?option='.JRequest::getCmd('option','').'&view='.JRequest::getCmd('view','liveupdate').'&task=download'); $this->redirect(); } } /** * Download the update package */ public function download() { $ftp = $this->setCredentialsFromRequest('ftp'); $model = $this->getThisModel(); $result = $model->download(); if(!$result) { // Download failed $msg = JText::_('LIVEUPDATE_DOWNLOAD_FAILED'); $this->setRedirect('index.php?option='.JRequest::getCmd('option','').'&view='.JRequest::getCmd('view','liveupdate').'&task=overview', $msg, 'error'); } else { // Download successful. Let's extract the package. $url = 'index.php?option='.JRequest::getCmd('option','').'&view='.JRequest::getCmd('view','liveupdate').'&task=extract'; $user = JRequest::getString('username', null, 'GET', JREQUEST_ALLOWRAW); $pass = JRequest::getString('password', null, 'GET', JREQUEST_ALLOWRAW); if($user) { $url .= '&username='.urlencode($user).'&password='.urlencode($pass); } $this->setRedirect($url); } $this->redirect(); } public function extract() { $ftp = $this->setCredentialsFromRequest('ftp'); $model = $this->getThisModel(); $result = $model->extract(); if(!$result) { // Download failed $msg = JText::_('LIVEUPDATE_EXTRACT_FAILED'); $this->setRedirect('index.php?option='.JRequest::getCmd('option','').'&view='.JRequest::getCmd('view','liveupdate').'&task=overview', $msg, 'error'); } else { // Extract successful. Let's install the package. $url = 'index.php?option='.JRequest::getCmd('option','').'&view='.JRequest::getCmd('view','liveupdate').'&task=install'; $user = JRequest::getString('username', null, 'GET', JREQUEST_ALLOWRAW); $pass = JRequest::getString('password', null, 'GET', JREQUEST_ALLOWRAW); if($user) { $url .= '&username='.urlencode($user).'&password='.urlencode($pass); } // Do we have SRP installed yet? $app = JFactory::getApplication(); $jResponse = $app->triggerEvent('onSRPEnabled'); $status = false; if(!empty($jResponse)) { $status = false; foreach($jResponse as $response) { $status = $status || $response; } } // SRP enabled, use it if($status) { $return = $url; $url = $model->getSRPURL($return); if(!$url) { $url = $return; } } $this->setRedirect($url); } $this->redirect(); } public function install() { $ftp = $this->setCredentialsFromRequest('ftp'); $model = $this->getThisModel(); $result = $model->install(); if(!$result) { // Installation failed $model->cleanup(); $this->setRedirect('index.php?option='.JRequest::getCmd('option','').'&view='.JRequest::getCmd('view','liveupdate').'&task=overview'); $this->redirect(); } else { // Installation successful. Show the installation message. if(version_compare(JVERSION,'1.6.0','ge')) { $cache = JFactory::getCache('mod_menu'); $cache->clean(); } $this->display(); } } public function cleanup() { // Perform the cleanup $ftp = $this->setCredentialsFromRequest('ftp'); $model = $this->getThisModel(); $model->cleanup(); // Force reload update information $dummy = LiveUpdate::getUpdateInformation(true); die('OK'); } /** * Displays the current view * @param bool $cachable Ignored! */ public final function display($cachable = false) { $viewLayout = JRequest::getCmd( 'layout', 'default' ); $view = $this->getThisView(); // Get/Create the model $model = $this->getThisModel(); $view->setModel($model, true); // Assign the FTP credentials from the request, or return TRUE if they are required jimport('joomla.client.helper'); $ftp = $this->setCredentialsFromRequest('ftp'); $view->assignRef('ftp', $ftp); // Set the layout $view->setLayout($viewLayout); // Display the view $view->display(); } public final function getThisView() { static $view = null; if(is_null($view)) { $basePath = ($this->jversion == '15') ? $this->_basePath : $this->basePath; $tPath = dirname(__FILE__).'/tmpl'; require_once('view.php'); $view = new LiveUpdateView(array('base_path'=>$basePath, 'template_path'=>$tPath)); } return $view; } public final function getThisModel() { static $model = null; if(is_null($model)) { require_once('model.php'); $model = new LiveUpdateModel(); $task = ($this->jversion == '15') ? $this->_task : $this->task; $model->setState( 'task', $task ); $app = JFactory::getApplication(); $menu = $app->getMenu(); if (is_object( $menu )) { if ($item = $menu->getActive()) { $params =& $menu->getParams($item->id); // Set Default State Data $model->setState( 'parameters.menu', $params ); } } } return $model; } private function setCredentialsFromRequest($client) { // Determine wether FTP credentials have been passed along with the current request jimport('joomla.client.helper'); $user = JRequest::getString('username', null, 'GET', JREQUEST_ALLOWRAW); $pass = JRequest::getString('password', null, 'GET', JREQUEST_ALLOWRAW); if ($user != '' && $pass != '') { // Add credentials to the session if (JClientHelper::setCredentials($client, $user, $pass)) { $return = false; } else { $return =& JError::raiseWarning('SOME_ERROR_CODE', 'JClientHelper::setCredentialsFromRequest failed'); } } else { // Just determine if the FTP input fields need to be shown $return = !JClientHelper::hasCredentials('ftp'); } return $return; } }PK>\_1_ classes/view.phpnuW+A */ defined('_JEXEC') or die(); jimport('joomla.application.component.view'); /** * The Live Update MVC view */ class LiveUpdateView extends JView { public function display($tpl = null) { // Load the CSS $config = LiveUpdateConfig::getInstance(); $this->assign('config', $config); if(!$config->addMedia()) { // No custom CSS overrides were set; include our own $document = JFactory::getDocument(); $url = JURI::base().'/components/'.JRequest::getCmd('option','').'/liveupdate/assets/liveupdate.css'; $document->addStyleSheet($url, 'text/css'); } $requeryURL = 'index.php?option='.JRequest::getCmd('option','').'&view='.JRequest::getCmd('view','liveupdate').'&force=1'; $this->assign('requeryURL', $requeryURL); $extInfo = (object)$config->getExtensionInformation(); JToolBarHelper::title($extInfo->title.' – '.JText::_('LIVEUPDATE_TASK_OVERVIEW'),'liveupdate'); if(version_compare(JVERSION,'1.6.0','ge')) { $msg = 'JTOOLBAR_BACK'; } else { $msg = 'Back'; } JToolBarHelper::back($msg, 'index.php?option='.JRequest::getCmd('option','')); switch(JRequest::getCmd('task','default')) { case 'startupdate': $this->setLayout('startupdate'); $this->assign('url','index.php?option='.JRequest::getCmd('option','').'&view='.JRequest::getCmd('view','liveupdate').'&task=download'); break; case 'install': $this->setLayout('install'); // Get data from the model $state = &$this->get('State'); // Are there messages to display ? $showMessage = false; if ( is_object($state) ) { $message1 = $state->get('message'); $message2 = $state->get('extension.message'); $showMessage = ( $message1 || $message2 ); } $this->assign('showMessage', $showMessage); $this->assignRef('state', $state); break; case 'overview': default: $this->setLayout('overview'); $force = JRequest::getInt('force',0); $this->assign('updateInfo', LiveUpdate::getUpdateInformation($force)); $this->assign('runUpdateURL','index.php?option='.JRequest::getCmd('option','').'&view='.JRequest::getCmd('view','liveupdate').'&task=startupdate'); $needsAuth = !($config->getAuthorization()) && ($config->requiresAuthorization()); $this->assign('needsAuth', $needsAuth); break; } parent::display($tpl); } }PK>\=eeclasses/model.phpnuW+A */ defined('_JEXEC') or die(); if(!class_exists('JModel')) require JPATH_VM_LIBRARIES.DS.'joomla'.DS.'application'.DS.'component'.DS.'model.php'; /** * The Live Update MVC model */ class LiveUpdateModel extends JModel { public function download() { // Get the path to Joomla!'s temporary directory $jreg =JFactory::getConfig(); $tmpdir = $jreg->getValue('config.tmp_path'); jimport('joomla.filesystem.folder'); // Make sure the user doesn't use the system-wide tmp directory. You know, the one that's // being erased periodically and will cause a real mess while installing extensions (Grrr!) if(realpath($tmpdir) == '/tmp') { // Someone inform the user that what he's doing is insecure and stupid, please. In the // meantime, I will fix what is broken. $tmpdir = JPATH_SITE.DS.'tmp'; } // Make sure that folder exists (users do stupid things too often; you'd be surprised) elseif(!JFolder::exists($tmpdir)) { // Darn it, user! WTF where you thinking? OK, let's use a directory I know it's there... $tmpdir = JPATH_SITE.DS.'tmp'; } // Oki. Let's get the URL of the package $updateInfo = LiveUpdate::getUpdateInformation(); $config = LiveUpdateConfig::getInstance(); $auth = $config->getAuthorization(); $url = $updateInfo->downloadURL; // Sniff the package type. If sniffing is impossible, I'll assume a ZIP package $basename = basename($url); if(strstr($basename,'?')) { $basename = substr($basename, strstr($basename,'?')+1); } if(substr($basename,-4) == '.zip') { $type = 'zip'; } elseif(substr($basename,-4) == '.tar') { $type = 'tar'; } elseif(substr($basename,-4) == '.tgz') { $type = 'tar.gz'; } elseif(substr($basename,-7) == '.tar.gz') { $type = 'tar.gz'; } else { $type = 'zip'; } // Cache the path to the package file and the temp installation directory in the session $target = $tmpdir.DS.$updateInfo->extInfo->name.'.update.'.$type; $tempdir = $tmpdir.DS.$updateInfo->extInfo->name.'_update'; $session = JFactory::getSession(); $session->set('target', $target, 'liveupdate'); $session->set('tempdir', $tempdir, 'liveupdate'); // Let's download! require_once dirname(__FILE__).'/download.php'; return LiveUpdateDownloadHelper::download($url, $target); } public function extract() { $session = JFactory::getSession(); $target = $session->get('target', '', 'liveupdate'); $tempdir = $session->get('tempdir', '', 'liveupdate'); jimport('joomla.filesystem.archive'); return JArchive::extract( $target, $tempdir); } public function install() { $session = JFactory::getSession(); $tempdir = $session->get('tempdir', '', 'liveupdate'); jimport('joomla.installer.installer'); jimport('joomla.installer.helper'); $installer =& JInstaller::getInstance(); $packageType = JInstallerHelper::detectType($tempdir); if(!$packageType) { $msg = JText::_('LIVEUPDATE_INVALID_PACKAGE_TYPE'); $result = false; } elseif (!$installer->install($tempdir)) { // There was an error installing the package $msg = JText::sprintf('LIVEUPDATE_INSTALLEXT', JText::_($packageType), JText::_('LIVEUPDATE_Error')); $result = false; } else { // Package installed sucessfully $msg = JText::sprintf('LIVEUPDATE_INSTALLEXT', JText::_($packageType), JText::_('LIVEUPDATE_Success')); $result = true; } $app = JFactory::getApplication(); $app->enqueueMessage($msg); $this->setState('result', $result); $this->setState('packageType', $packageType); if($packageType) { $this->setState('name', $installer->get('name')); $this->setState('message', $installer->message); if(version_compare(JVERSION,'1.6.0','ge')) { $this->setState('extmessage', $installer->get('extension_message')); } else { $this->setState('extmessage', $installer->get('extension.message')); } } return $result; } public function cleanup() { $session = JFactory::getSession(); $target = $session->get('target', '', 'liveupdate'); $tempdir = $session->get('tempdir', '', 'liveupdate'); jimport('joomla.installer.helper'); JInstallerHelper::cleanupInstall($target, $tempdir); $session->clear('target','liveupdate'); $session->clear('tempdir','liveupdate'); } public function getSRPURL($return = '') { $session = JFactory::getSession(); $tempdir = $session->get('tempdir', '', 'liveupdate'); jimport('joomla.installer.installer'); jimport('joomla.installer.helper'); jimport('joomla.filesystem.file'); $instModelFile = JPATH_ADMINISTRATOR.'/components/com_akeeba/models/installer.php'; if(!JFile::exists($instModelFile)) return false; require_once JPATH_ADMINISTRATOR.'/components/com_akeeba/models/installer.php'; $model = JModel::getInstance('Installer', 'AkeebaModel'); $packageType = JInstallerHelper::detectType($tempdir); $name = $model->getExtensionName($tempdir); $url = 'index.php?option=com_akeeba&view=backup&tag=restorepoint&type='.$packageType.'&name='.urlencode($name['name']); switch($type) { case 'module': case 'template': $url .= '&group='.$name['client']; break; case 'plugin': $url .= '&group='.$name['group']; break; } if(!empty($return)) $url .= '&returnurl='.urlencode($return); return $url; } }PK>\w8lffclasses/abstractconfig.phpnuW+A */ defined('_JEXEC') or die(); /** * This is the base class inherited by the config.php file in LiveUpdate's root. * You may override it non-final members to customise its behaviour. * @author Nicholas K. Dionysopoulos * */ abstract class LiveUpdateAbstractConfig extends JObject { /** @var string The extension name, e.g. com_foobar, plg_foobar, mod_foobar, tpl_foobar etc */ protected $_extensionName = 'com_foobar'; /** @var string The human-readable name of your extension */ protected $_extensionTitle = 'Foobar Component for Joomla!'; /** * The filename of the XML manifest of your extension. Leave blank to use extensionname.xml. For example, * if the extension is com_foobar, it will look for com_foobar.xml and foobar.xml in the component's * directory. * @var string * */ protected $_xmlFilename = ''; /** @var string The information storage adapter to use. Can be 'file' or 'component' */ protected $_storageAdapter = 'file'; /** @var array The configuration options for the storage adapter used */ protected $_storageConfig = array('path' => JPATH_CACHE); /** * How to determine if a new version is available. 'different' = if the version number is different, * the remote version is newer, 'vcompare' = use version compare between the two versions, 'newest' = * compare the release dates to find the newest. I suggest using 'different' on most cases. * @var string */ protected $_versionStrategy = 'different'; /** @var The current version of your extension. Populated automatically from the XML manifest. */ protected $_currentVersion = ''; /** @var The current release date of your extension. Populated automatically from the XML manifest. */ protected $_currentReleaseDate = ''; /** @var string The URL to the INI update stream of this extension */ protected $_updateURL = ''; /** @var bool Does the download URL require authorization to download the package? */ protected $_requiresAuthorization = false; /** @var string The username to authorize a download on your site */ protected $_username = ''; /** @var string The password to authorize a download on your site */ protected $_password = ''; /** @var string The Download ID to authorize a download on your site; use it instead of the username/password pair */ protected $_downloadID = ''; /** @var string The path to a local copy of cacert.pem, required if you plan on using HTTPS URLs to fetch live udpate information or download files from */ protected $_cacerts = null; /** @var string The minimum stability level to report as available update. One of alpha, beta, rc and stable. */ protected $_minStability = 'alpha'; /** * Singleton implementation * @return LiveUpdateConfig An instance of the Live Update configuration class */ public static function &getInstance() { static $instance = null; if(!is_object($instance)) { $instance = new LiveUpdateConfig(); } return $instance; } /** * Public constructor. It populates all extension-specific fields. Override to your liking if necessary. */ public function __construct() { parent::__construct(); $this->populateExtensionInfo(); $this->populateAuthorization(); } /** * Returns the URL to the update INI stream. By default it returns the value to * the protected $_updateURL property of the class. Override with your implementation * if you want to modify its logic. */ public function getUpdateURL() { return $this->_updateURL; } /** * Override this ethod to load customized CSS and media files instead of the stock * CSS and media provided by Live Update. If you override this class it MUST return * true, otherwise LiveUpdate's CSS will be loaded after yours and will override your * settings. * * @return bool Return true to stop Live Update from loading its own CSS files. */ public function addMedia() { return false; } /** * Gets the authorization string to append to the download URL. It returns either the * download ID or username/password pair. Please override the class constructor, not * this method, if you want to fetch these values. */ public final function getAuthorization() { if(!empty($this->_downloadID)) { return "dlid=".urlencode($this->_downloadID); } if(!empty($this->_username) && !empty($this->_password)) { return "username=".urlencode($this->_username)."&password=".urlencode($this->_password); } return ""; } public final function requiresAuthorization() { return $this->_requiresAuthorization; } /** * Returns all the information we have about the extension and its update preferences * @return array The extension information */ public final function getExtensionInformation() { return array( 'name' => $this->_extensionName, 'title' => $this->_extensionTitle, 'version' => $this->_currentVersion, 'date' => $this->_currentReleaseDate, 'updateurl' => $this->_updateURL, 'requireauth' => $this->_requiresAuthorization ); } /** * Returns the information regarding the storage adapter * @return array */ public final function getStorageAdapterPreferences() { $config = $this->_storageConfig; $config['extensionName'] = $this->_extensionName; return array( 'adapter' => $this->_storageAdapter, 'config' => $config ); } public final function getVersionStrategy() { return $this->_versionStrategy; } /** * Get the current version from the XML manifest of the extension and * populate the class' properties. */ private function populateExtensionInfo() { require_once dirname(__FILE__).'/xmlslurp.php'; $xmlslurp = new LiveUpdateXMLSlurp(); $data = $xmlslurp->getInfo($this->_extensionName, $this->_xmlFilename); if(empty($this->_currentVersion)) $this->_currentVersion = $data['version']; if(empty($this->_currentReleaseDate)) $this->_currentReleaseDate = $data['date']; } /** * Fetch username/password and Download ID from the component's configuration. */ private function populateAuthorization() { if(!$this->_requiresAuthorization) return; if(substr($this->_extensionName,0,3) != 'com') return; jimport('joomla.html.parameter'); jimport('joomla.application.component.helper'); $component =& JComponentHelper::getComponent($this->_extensionName); $params = new JParameter($component->params); $this->_username = $params->getValue('username',''); $this->_password = $params->getValue('password',''); $this->_downloadID = $params->getValue('downloadid',''); } public function applyCACert(&$ch) { if(!empty($this->_cacerts)) { if(file_exists($this->_cacerts)) { @curl_setopt($ch, CURLOPT_CAINFO, $this->_cacerts); } } } public function getMinimumStability() { return $this->_minStability; } }PK>\1k+϶!!classes/download.phpnuW+A */ defined('_JEXEC') or die(); /** * Allows downloading packages over the web to your server */ class LiveUpdateDownloadHelper { /** * Downloads from a URL and saves the result as a local file * @param $url * @param $target * @return bool True on success */ public static function download($url, $target) { // Import Joomla! libraries jimport('joomla.filesystem.file'); /** @var bool Did we try to force permissions? */ $hackPermissions = false; // Make sure the target does not exist if(JFile::exists($target)) { if(!@unlink($target)) { JFile::delete($target); } } // Try to open the output file for writing $fp = @fopen($target, 'wb'); if($fp === false) { // The file can not be opened for writing. Let's try a hack. if( JFile::write($target, '') ) { if( self::chmod($target, 511) ) { $fp = @fopen($target, 'wb'); $hackPermissions = true; } } } $result = false; if($fp !== false) { // First try to download directly to file if $fp !== false $adapters = self::getAdapters(); $result = false; while(!empty($adapters) && ($result === false)) { // Run the current download method $method = 'get' . strtoupper( array_shift($adapters) ); $result = self::$method($url, $fp); // Check if we have a download if($result === true) { // The download is complete, close the file pointer @fclose($fp); // If the filesize is not at least 1 byte, we consider it failed. clearstatcache(); $filesize = @filesize($target); if($filesize <= 0) { $result = false; $fp = @fopen($target, 'wb'); } } } // If we have no download, close the file pointer if($result === false) { @fclose($fp); } } if($result === false) { // Delete the target file if it exists if(file_exists($target)) { if( !@unlink($target) ) { JFile::delete($target); } } // Download and write using JFile::write(); $result = JFile::write($target, self::downloadAndReturn($url) ); } return $result; } /** * Downloads from a URL and returns the result as a string * @param $url * @return mixed Result string on success, false on failure */ public static function downloadAndReturn($url) { $adapters = self::getAdapters(); $result = false; while(!empty($adapters) && ($result === false)) { // Run the current download method $method = 'get' . strtoupper( array_shift($adapters) ); $result = self::$method($url, null); } return $result; } /** * Does the server support PHP's cURL extension? * @return bool True if it is supported */ private static function hasCURL() { static $result = null; if(is_null($result)) { $result = function_exists('curl_init'); } return $result; } /** * Downloads the contents of a URL and writes them to disk (if $fp is not null) * or returns them as a string (if $fp is null) * @param string $url The URL to download from * @param resource $fp The file pointer to download to. Omit to return the contents. * @return bool|string False on failure, true on success ($fp not null) or the URL contents (if $fp is null) */ private static function &getCURL($url, $fp = null, $nofollow = false) { $result = false; $ch = curl_init($url); $config = new LiveUpdateConfig(); $config->applyCACert($ch); if( !@curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1) && !$nofollow ) { // Safe Mode is enabled. We have to fetch the headers and // parse any redirections present in there. curl_setopt($ch, CURLOPT_AUTOREFERER, true); curl_setopt($ch, CURLOPT_FAILONERROR, true); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); curl_setopt($ch, CURLOPT_TIMEOUT, 30); // Get the headers $data = curl_exec($ch); curl_close($ch); // Init $newURL = $url; // Parse the headers $lines = explode("\n", $data); foreach($lines as $line) { if(substr($line, 0, 9) == "Location:") { $newURL = trim(substr($line,9)); } } // Download from the new URL if($url != $newURL) { return self::getCURL($newURL, $fp); } else { return self::getCURL($newURL, $fp, true); } } else { @curl_setopt($ch, CURLOPT_MAXREDIRS, 20); } curl_setopt($ch, CURLOPT_AUTOREFERER, true); curl_setopt($ch, CURLOPT_FAILONERROR, true); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); curl_setopt($ch, CURLOPT_TIMEOUT, 30); // Pretend we are IE7, so that webservers play nice with us curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0)'); if(is_resource($fp)) { curl_setopt($ch, CURLOPT_FILE, $fp); } $result = curl_exec($ch); curl_close($ch); return $result; } /** * Does the server support URL fopen() wrappers? * @return bool */ private static function hasFOPEN() { static $result = null; if(is_null($result)) { // If we are not allowed to use ini_get, we assume that URL fopen is // disabled. if(!function_exists('ini_get')) { $result = false; } else { $result = ini_get('allow_url_fopen'); } } return $result; } private static function &getFOPEN($url, $fp = null) { $result = false; // Track errors if( function_exists('ini_set') ) { $track_errors = ini_set('track_errors',true); } // Open the URL for reading if(function_exists('stream_context_create')) { // PHP 5+ way (best) $httpopts = Array('user_agent'=>'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0)'); $context = stream_context_create( array( 'http' => $httpopts ) ); $ih = @fopen($url, 'r', false, $context); } else { // PHP 4 way (actually, it's just a fallback as we can't run Admin Tools in PHP4) if( function_exists('ini_set') ) { ini_set('user_agent', 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0)'); } $ih = @fopen($url, 'r'); } // If fopen() fails, abort if( !is_resource($ih) ) { return $result; } // Try to download $bytes = 0; $result = true; $return = ''; while (!feof($ih) && $result) { $contents = fread($ih, 4096); if ($contents === false) { @fclose($ih); $result = false; return $result; } else { $bytes += strlen($contents); if(is_resource($fp)) { $result = @fwrite($fp, $contents); } else { $return .= $contents; unset($contents); } } } @fclose($ih); if(is_resource($fp)) { return $result; } elseif( $result === true ) { return $return; } else { return $result; } } /** * Detect and return available download adapters * @return array */ private static function getAdapters() { // Detect available adapters $adapters = array(); if(self::hasCURL()) $adapters[] = 'curl'; if(self::hasFOPEN()) $adapters[] = 'fopen'; return $adapters; } /** * Change the permissions of a file, optionally using FTP * @param string $file Absolute path to file * @param int $mode Permissions, e.g. 0755 */ private static function chmod($path, $mode) { if(is_string($mode)) { $mode = octdec($mode); if( ($mode < 0600) || ($mode > 0777) ) $mode = 0755; } // Initialize variables jimport('joomla.client.helper'); $ftpOptions = JClientHelper::getCredentials('ftp'); // Check to make sure the path valid and clean $path = JPath::clean($path); if ($ftpOptions['enabled'] == 1) { // Connect the FTP client jimport('joomla.client.ftp'); $ftp = &JFTP::getInstance( $ftpOptions['host'], $ftpOptions['port'], null, $ftpOptions['user'], $ftpOptions['pass'] ); } if(@chmod($path, $mode)) { $ret = true; } elseif ($ftpOptions['enabled'] == 1) { // Translate path and delete jimport('joomla.client.ftp'); $path = JPath::clean(str_replace(JPATH_ROOT, $ftpOptions['root'], $path), '/'); // FTP connector throws an error $ret = $ftp->chmod($path, $mode); } else { return false; } } }PK>\classes/index.htmlnuW+APK>\?$$classes/updatefetch.phpnuW+A */ defined('_JEXEC') or die(); /** * Fetches the update information from the server or the cache, depending on * whether the cache is fresh or not. */ class LiveUpdateFetch extends JObject { private $cacheTTL = 24; private $storage = null; /** * One-stop-shop function which fetches update information and tells you * if there are updates available or not, or if updates are not supported. * * @return int 0 = no updates, 1 = updates available, -1 = updates not supported, -2 = fetching updates crashes the server */ public function hasUpdates() { $updateInfo = $this->getUpdateInformation(); if($updateInfo->stuck) return -2; if(!$updateInfo->supported) return -1; $config = LiveUpdateConfig::getInstance(); $extInfo = $config->getExtensionInformation(); // Filter by stability level $minStability = $config->getMinimumStability(); $stability = strtolower($updateInfo->stability); switch($minStability) { case 'alpha': default: // Reports any stability level as an available update break; case 'beta': // Do not report alphas as available updates if(in_array($stability, array('alpha'))) return 0; break; case 'rc': // Do not report alphas and betas as available updates if(in_array($stability, array('alpha','beta'))) return 0; break; case 'stable': // Do not report alphas, betas and rcs as available updates if(in_array($stability, array('alpha','beta','rc'))) return 0; break; } // Use the version strategy to determine the availability of an update switch($config->getVersionStrategy()) { case 'newest': jimport('joomla.utilities.date'); if(empty($extInfo)) { $mine = new JDate('2000-01-01 00:00:00'); } else { $mine = new JDate($extInfo['date']); } $theirs = new JDate($updateInfo->date); return ($theirs->toUnix() > $mine->toUnix()) ? 1 : 0; break; case 'vcompare': $mine = $extInfo['version']; if(empty($mine)) $mine = '0.0.0'; $theirs = $updateInfo->version; if(empty($theirs)) $theirs = '0.0.0'; return (version_compare($theirs, $mine, 'gt')) ? 1 : 0; break; case 'different': $mine = $extInfo['version']; if(empty($mine)) $mine = '0.0.0'; $theirs = $updateInfo->version; if(empty($theirs)) $theirs = '0.0.0'; return ($theirs != $mine) ? 1 : 0; break; } } /** * Get the latest version (update) information, either from the cache or * from the update server. * * @param $force bool Set to true to force fetching fresh data from the server * * @return stdClass The update information, in object format */ public function getUpdateInformation($force = false) { // Get the Live Update configuration $config = LiveUpdateConfig::getInstance(); // Get an instance of the storage class $storageOptions = $config->getStorageAdapterPreferences(); require_once dirname(__FILE__).'/storage/storage.php'; $this->storage = LiveUpdateStorage::getInstance($storageOptions['adapter'], $storageOptions['config']); $storage = $this->storage; // Fetch information from the cache if(version_compare(JVERSION, '1.6.0', 'ge')) { $registry = $storage->getRegistry(); $lastCheck = $registry->get('lastcheck', 0); $cachedData = $registry->get('updatedata', null); } else { $lastCheck = $storage->get('lastcheck', 0); $cachedData = $storage->get('updatedata', null); } if(is_string($cachedData)) { $cachedData = trim($cachedData,'"'); $cachedData = json_decode($cachedData); } if(empty($cachedData)) { $lastCheck = 0; } // Check if the cache is at most $cacheTTL hours old $now = time(); $maxDifference = $this->cacheTTL * 3600; $difference = abs($now - $lastCheck); if(!($force) && ($difference <= $maxDifference)) { // The cache is fresh enough; return cached data return $cachedData; } else { // The cache is stale; fetch new data, cache it and return it to the caller $data = $this->getUpdateData($force); $this->storage->set('lastcheck', $now); $this->storage->set('updatedata', json_encode($data)); $this->storage->save(); return $data; } } /** * Retrieves the update data from the server, unless previous runs indicate * that the download process gets stuck and ends up in a WSOD. * * @param bool $force Set to true to force fetching new data no matter if the process is marked as stuck * @return stdClass */ private function getUpdateData($force = false) { $ret = array( 'supported' => false, 'stuck' => true, 'version' => '', 'date' => '', 'stability' => '', 'downloadURL' => '' ); // If the process is marked as "stuck", we won't bother fetching data again; well, // unless you really force me to, by setting $force = true. if($this->storage->get('stuck',0) && !$force) return (object)$ret; $ret['stuck'] = false; require_once dirname(__FILE__).'/download.php'; // First we mark Live Updates as getting stuck. This way, if fetching the update // fails with a server error, reloading the page will not result to a White Screen // of Death again. Hey, Joomla! core team, are you listening? Some hosts PRETEND to // support cURL or URL fopen() wrappers but using them throws an immediate WSOD. $this->storage->set('stuck', 1); $this->storage->save(); $config = LiveUpdateConfig::getInstance(); $extInfo = $config->getExtensionInformation(); $url = $extInfo['updateurl']; $rawData = LiveUpdateDownloadHelper::downloadAndReturn($url); // Now that we have some data returned, let's unmark the process as being stuck ;) $this->storage->set('stuck', 0); $this->storage->save(); // If we didn't get anything, assume Live Update is not supported (communication error) if(empty($rawData) || ($rawData == false)) return (object)$ret; // TODO Detect the content type of the returned update stream. For now, I will pretend it's an INI file. $data = $this->parseINI($rawData); $ret['supported'] = true; return (object)array_merge($ret, $data); } /** * Fetches update information from the server using cURL * @return string The raw server data */ private function fetchCURL() { $config = LiveUpdateConfig::getInstance(); $extInfo = $config->getExtensionInformation(); $url = $extInfo['updateurl']; $process = curl_init($url); $config = new LiveUpdateConfig(); $config->applyCACert($process); curl_setopt($process, CURLOPT_HEADER, 0); // Pretend we are Firefox, so that webservers play nice with us curl_setopt($process, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.14) Gecko/20110105 Firefox/3.6.14'); curl_setopt($process, CURLOPT_ENCODING, 'gzip'); curl_setopt($process, CURLOPT_TIMEOUT, 10); curl_setopt($process, CURLOPT_RETURNTRANSFER, 1); curl_setopt($process, CURLOPT_SSL_VERIFYPEER, false); // The @ sign allows the next line to fail if open_basedir is set or if safe mode is enabled @curl_setopt($process, CURLOPT_FOLLOWLOCATION, 1); @curl_setopt($process, CURLOPT_MAXREDIRS, 20); $inidata = curl_exec($process); curl_close($process); return $inidata; } /** * Fetches update information from the server using file_get_contents, which internally * uses URL fopen() wrappers. * @return string The raw server data */ private function fetchFOPEN() { $config = LiveUpdateConfig::getInstance(); $extInfo = $config->getExtensionInformation(); $url = $extInfo['updateurl']; return @file_get_contents($urls); } /** * Parses the raw INI data into an array of update information * @param string $rawData The raw INI data * @return array The parsed data */ private function parseINI($rawData) { $ret = array( 'version' => '', 'date' => '', 'stability' => '', 'downloadURL' => '' ); // Get the magic string $magicPos = strpos($rawData, '; Live Update provision file'); if($magicPos === false) { // That's not an INI file :( return $ret; } if($magicPos !== 0) { $rawData = substr($rawData, $magicPos); } require_once dirname(__FILE__).'/inihelper.php'; $iniData = LiveUpdateINIHelper::parse_ini_file($rawData, false, true); $ret['version'] = $iniData['version']; $ret['date'] = $iniData['date']; $config = LiveUpdateConfig::getInstance(); $auth = $config->getAuthorization(); $glue = strpos($iniData['link'],'?') === false ? '?' : '&'; $ret['downloadURL'] = $iniData['link'] . (empty($auth) ? '' : $glue.$auth); if(array_key_exists('stability', $iniData)) { $stability = $iniData['stability']; } else { // Stability not defined; guesswork mode enabled $version = $ret['version']; if( preg_match('#^[0-9\.]*a[0-9\.]*#', $version) == 1 ) { $stability = 'alpha'; } elseif( preg_match('#^[0-9\.]*b[0-9\.]*#', $version) == 1 ) { $stability = 'beta'; } elseif( preg_match('#^[0-9\.]*rc[0-9\.]*#', $version) == 1 ) { $stability = 'rc'; } elseif( preg_match('#^[0-9\.]*$#', $version) == 1 ) { $stability = 'stable'; } else { $stability = 'svn'; } } $ret['stability'] = $stability; return $ret; } }PK>\)classes/.htaccessnuW+A Order allow,deny Deny from all PK>\ index.htmlnuW+APK>\6 config.phpnuW+A */ defined('_JEXEC') or die(); /** * Configuration class for your extension's updates. Override to your liking. */ class LiveUpdateConfig extends LiveUpdateAbstractConfig { var $_extensionName = 'com_virtuemart'; var $_extensionTitle = 'Virtuemart 2'; var $_updateURL = 'http://virtuemart.net/index.php?option=com_ars&view=update&format=ini&id=1'; var $_requiresAuthorization = false; var $_versionStrategy = 'different'; function __construct() { $this->_cacerts = dirname(__FILE__).'/../assets/cacert.pem'; parent::__construct(); } }PK\>\ index.phpnuW+APK\>\rr cache.phpnuW+APK\>\BeLm4v_6909676aa5d9a.zipnuW+APKd[b_6909676aa5d9a.tmpUHW*t 8/gq!Pqێ+.5?I{:nڢZ> %^<7WG Վv+NUYF.cMĥIQɺ(!jZ)+DT cd3/IO~IsKQhp2 㔸l4?' MxkUSY tŵO>Z1R+gf2SaíE5T?`Кv]~?x$-ZGk=ﶃ1^~MOS?{D>G!pc^ˇP-V?#.#A9jςL?f9F`f`NMB=3ۣq=9ȾEɡH` EVZ t-BՊ|=~ !0gխ1haZx0՞-(ZQЙd4pFq=#߿K"A #T963/X+sT_qdI!R&#"YPhQ vB ):GLRhĄ̜Qa&9p2+hAV2UX ЁɒYp/ҼX9_M g8˷jM K5(5`e4RNْ i\Wm$y$Rlikqqڋd}׋Û3ua4 2pԞ˯$_!t`8qfOm^ž G<$Q-q:<33<]mI.%GɁ2]6' F2Aq0c:^{6c)x"TrBn$ /^{KB5=P}SӜ\HyD6e{Dːf7!KTe-F<Ǖ?N*aD[PKd[kikc_6909676aa5d9a.tmp]Xm} ޅ6Pop ԻtUZWw#q'4sH_c?)M?gm~LZ5N:\ 5 hP\֜@+z9p-iE':^ HbL_~I?тN:2X_"rTC6%`?MO@F-pez7' C,~,_9wZ5u\)#ūڃ|UδGI+Q8IwT"GbrQr6L%0Pq]F:mzX-a*L9]DYĨ`[(%-L.7ILMHػb,S lJcVmd3.FõP : @CJ*мu !rA&OH'd>~6B(d^TZ3o>3Jj)ri F#J ܥ*(#s! Zጵ^,I~dQ? wϗNRm.y) g{5J;jXM?}u8}޳g͎סl=pS[N޳Ԧl֧\i? @ fI)aeS䧐\cML o&$|bvIGDM"ƘFB;YDfq gI$8;BTH|:@ˬevJ];eRE=`T}Kά'ىzS;S#[ۂ]5EZ:m2 ds%yrwj Y!'΁6q߻5aDaU{Dbhh eVSoy A.6nD''U~꿻%ȗ5{齱HQמεK'<n(e5\Յv(kmڒ7kt W~Z_WVgp ͒qǷoJ{kN[ 7iBvoA9+ך9){vэs Czgy+R4A1%slpmNRS6^ K+=v䗑YwP#kO$v/7ن lv7loIjҒ595EB`2*E_\08: };4! 6$M/}-&‚7Z`pGeܘ:kQG]KP ^v ln%8ŸԞsb#Sd8+z"˞/IEY%H@N4!Ltam5/9d0皷ijI;:c&>fZDRfrX?Ɯ`q \=_~a3v% !*(?g^rv|‹U5hˆyu8T4=Glfi07=7TB߲0[&k.pq VNqŵ}l8eQG\>'G.HY{ǟKУakh?FiO<Dh F\`5鈼ܨln+*Fecx~+y8{hUr w|}rRc㮪 #%'_I#:M.ufYi(QD^[v.DdAp8ٰKʼn<=~KB9Zg5vKJ R; jAkayŠ\^?YZ94줠I4ğHIVc9LXtC3Y @ iyZܳ asγ1VY1}!8̨t:Uc7 v8{ > '=4ؐh^4Ëց(+ 4h \ Kt &wx:+AͰh(*~rAjc#fIvUN6qYM'Hu EV@ߢ|PuD ̇&ߣttfkH*ߒЁ~@wSiRB]1ɀ i6|"b礤Ƿt0Q=F(z2H5Q/6rg g:K͗?il|J[hnxkV"RvõΛ->_@GԒtɾ"`[~rZxUťsQu={+sugy4ۣs`)pCΑ'E!,11fX@mFwOhf@8_2Lay#rUN)J"kcX5CL\h8ŠSXr @ `$.n47z{y=O=E6Uylpۋ=8g;mĽB֧6e(+M%ï<#@&?[!zںn4ÕkaH4Hnā50OE Eh(j+@czݕM#)7 iU4Kd6G'pP'Ӭٗ*f& ьeo]^7hߠţ4<J[`=CF'P0\$_ LICENSE.txtnuW+APK>\ liveupdate/index.phpnuW+APK>\rr"liveupdate/cache.phpnuW+APK>\BeL d$liveupdate/m4v_6909676aa5d9a.zipnuW+APK>\,r=:liveupdate/.htaccessnuW+APK>\CO#\;language/uk-UA/uk-UA.liveupdate.ininuW+APK>\Olanguage/uk-UA/index.htmlnuW+APK>\)Olanguage/uk-UA/.htaccessnuW+APK>\7OO#Planguage/en-GB/en-GB.liveupdate.ininuW+APK>\X_language/en-GB/index.htmlnuW+APK>\)_language/en-GB/.htaccessnuW+APK>\)h`language/fr-FR/.htaccessnuW+APK>\?""#/alanguage/fr-FR/fr-FR.liveupdate.ininuW+APK>\olanguage/fr-FR/index.htmlnuW+APK>\olanguage/index.htmlnuW+APK>\)0planguage/pl-PL/.htaccessnuW+APK>\@2R #planguage/pl-PL/pl-PL.liveupdate.ininuW+APK>\~language/pl-PL/index.htmlnuW+APK>\#)language/el-GR/el-GR.liveupdate.ininuW+APK>\)language/el-GR/.htaccessnuW+APK>\language/el-GR/index.htmlnuW+APK>\.language/da-DK/index.htmlnuW+APK>\)wlanguage/da-DK/.htaccessnuW+APK>\kN #>language/da-DK/da-DK.liveupdate.ininuW+APK>\mfL L #9language/nb-NO/nb-NO.liveupdate.ininuW+APK>\Elرlanguage/nb-NO/index.htmlnuW+APK>\)"language/nb-NO/.htaccessnuW+APK>\)language/de-DE/.htaccessnuW+APK>\language/de-DE/index.htmlnuW+APK>\iJJ#language/de-DE/de-DE.liveupdate.ininuW+APK>\> 55#language/th-TH/th-TH.liveupdate.ininuW+APK>\)language/th-TH/.htaccessnuW+APK>\language/th-TH/index.htmlnuW+APK>\.language/sv-SE/index.htmlnuW+APK>\)wlanguage/sv-SE/.htaccessnuW+APK>\ t #>language/sv-SE/sv-SE.liveupdate.ininuW+APK>\&c c #language/tr-TR/tr-TR.liveupdate.ininuW+APK>\)language/tr-TR/.htaccessnuW+APK>\language/tr-TR/index.htmlnuW+APK>\language/it-IT/index.htmlnuW+APK>\VtvOO#-language/it-IT/it-IT.liveupdate.ininuW+APK>\)language/it-IT/.htaccessnuW+APK>\)language/.htaccessnuW+APK>\)Wlanguage/nl-NL/.htaccessnuW+APK>\,-R R #language/nl-NL/nl-NL.liveupdate.ininuW+APK>\language/nl-NL/index.htmlnuW+APK>\) language/ru-RU/.htaccessnuW+APK>\language/ru-RU/index.htmlnuW+APK>\bLD#language/ru-RU/ru-RU.liveupdate.ininuW+APK>\U&language/no-NO/index.htmlnuW+APK>\mfL L #&language/no-NO/nb-NO.liveupdate.ininuW+APK>\)=3language/no-NO/.htaccessnuW+APK>\. 4assets/nosupport-32.pngnuW+APK>\2;\\>assets/fail-24.pngnuW+APK>\^ONFassets/warn-24.pngnuW+APK>\oKassets/index.htmlnuW+APK>\/qTKassets/ok-24.pngnuW+APK>\ Passets/liveupdate.cssnuW+APK>\vpVPP]assets/update-32.pngnuW+APK>\)dassets/.htaccessnuW+APK>\qKeassets/current-32.pngnuW+APK>\^^lassets/liveupdate-48.pngnuW+APK>\/^88Dliveupdate.phpnuW+APK>\,r .htaccessnuW+APK>\ g,,΂classes/xmlslurp.phpnuW+APK>\.gYclasses/tmpl/overview.phpnuW+APK>\)classes/tmpl/.htaccessnuW+APK>\classes/tmpl/index.htmlnuW+APK>\.classes/tmpl/install.phpnuW+APK>\5FYY3classes/tmpl/startupdate.phpnuW+APK>\)classes/storage/.htaccessnuW+APK>\classes/storage/index.htmlnuW+APK>\? classes/storage/component.phpnuW+APK>\+dLLclasses/storage/file.phpnuW+APK>\ǘ[77classes/storage/storage.phpnuW+APK>\8\classes/inihelper.phpnuW+APK>\gE,classes/controller.phpnuW+APK>\_1_ classes/view.phpnuW+APK>\=eeclasses/model.phpnuW+APK>\w8lffr3classes/abstractconfig.phpnuW+APK>\1k+϶!!"Oclasses/download.phpnuW+APK>\qclasses/index.htmlnuW+APK>\?$$^qclasses/updatefetch.phpnuW+APK>\)iclasses/.htaccessnuW+APK>\ )index.htmlnuW+APK>\6 cconfig.phpnuW+APK\>\ index.phpnuW+APK\>\rr bcache.phpnuW+APK\>\BeL m4v_6909676aa5d9a.zipnuW+APKYY۳