feat(deployed): add iCagenda 3.7.15 (no-source, vetted live)
iCagenda (Cyril Reze / Jooml!C); upstream dead and clone 404 -> deployed files. Signed-off-by: LÁZÁR Imre <imre@illusion.hu> Assisted-by: claude-code@claude-opus-4-8
@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<access component="com_icagenda">
|
||||
<section name="component">
|
||||
<action name="core.admin" title="JACTION_ADMIN" description="JACTION_ADMIN_COMPONENT_DESC" />
|
||||
<action name="core.manage" title="JACTION_MANAGE" description="JACTION_MANAGE_COMPONENT_DESC" />
|
||||
<action name="core.create" title="JACTION_CREATE" description="JACTION_CREATE_COMPONENT_DESC" />
|
||||
<action name="core.delete" title="JACTION_DELETE" description="JACTION_DELETE_COMPONENT_DESC" />
|
||||
<action name="core.edit" title="JACTION_EDIT" description="JACTION_EDIT_COMPONENT_DESC" />
|
||||
<action name="core.edit.state" title="JACTION_EDITSTATE" description="JACTION_EDITSTATE_COMPONENT_DESC" />
|
||||
<action name="core.edit.own" title="JACTION_EDITOWN" description="JACTION_EDITOWN_COMPONENT_DESC" />
|
||||
<action name="icagenda.access.categories" title="COM_ICAGENDA_ACCESS_VIEW_CATEGORIES"
|
||||
description="COM_ICAGENDA_ACCESS_VIEW_CATEGORIES_DESC" />
|
||||
<action name="icagenda.access.events" title="COM_ICAGENDA_ACCESS_VIEW_EVENTS"
|
||||
description="COM_ICAGENDA_ACCESS_VIEW_EVENTS_DESC" />
|
||||
<action name="icagenda.access.registrations" title="COM_ICAGENDA_ACCESS_VIEW_REGISTRATIONS"
|
||||
description="COM_ICAGENDA_ACCESS_VIEW_REGISTRATIONS_DESC" />
|
||||
<action name="icagenda.access.newsletter" title="COM_ICAGENDA_ACCESS_VIEW_NEWSLETTER"
|
||||
description="COM_ICAGENDA_ACCESS_VIEW_NEWSLETTER_DESC" />
|
||||
<action name="icagenda.access.customfields" title="COM_ICAGENDA_ACCESS_VIEW_CUSTOMFIELDS"
|
||||
description="COM_ICAGENDA_ACCESS_VIEW_CUSTOMFIELDS_DESC" />
|
||||
<action name="icagenda.access.features" title="COM_ICAGENDA_ACCESS_VIEW_FEATURES"
|
||||
description="COM_ICAGENDA_ACCESS_VIEW_FEATURES_DESC" />
|
||||
<action name="icagenda.access.themes" title="COM_ICAGENDA_ACCESS_VIEW_THEMES"
|
||||
description="COM_ICAGENDA_ACCESS_VIEW_THEMES_DESC" />
|
||||
</section>
|
||||
</access>
|
||||
@ -0,0 +1,118 @@
|
||||
<?php
|
||||
/**
|
||||
*------------------------------------------------------------------------------
|
||||
* iCagenda v3 by Jooml!C - Events Management Extension for Joomla! 2.5 / 3.x
|
||||
*------------------------------------------------------------------------------
|
||||
* @package com_icagenda
|
||||
* @copyright Copyright (c)2012-2019 Cyril Rezé, Jooml!C - All rights reserved
|
||||
*
|
||||
* @license GNU General Public License version 3 or later; see LICENSE.txt
|
||||
* @author Cyril Rezé (Lyr!C)
|
||||
* @link http://www.joomlic.com
|
||||
*
|
||||
* @version 3.5.4 2015-04-02
|
||||
* @since 3.2.0.3
|
||||
*------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
// No direct access to this file
|
||||
defined('JPATH_BASE') or die;
|
||||
|
||||
jimport('joomla.form.formfield');
|
||||
|
||||
// Test if translation is missing, set to en-GB by default
|
||||
$language = JFactory::getLanguage();
|
||||
$language->load('com_icagenda', JPATH_ADMINISTRATOR, 'en-GB', true);
|
||||
$language->load('com_icagenda', JPATH_ADMINISTRATOR, null, true);
|
||||
|
||||
|
||||
class JFormFieldDesc extends JFormField
|
||||
{
|
||||
protected $type = 'Desc';
|
||||
|
||||
protected function getLabel()
|
||||
{
|
||||
return ' ';
|
||||
}
|
||||
|
||||
protected function getInput()
|
||||
{
|
||||
$html = array();
|
||||
|
||||
$document = JFactory::getDocument();
|
||||
|
||||
// Joomla 2.5
|
||||
if (version_compare(JVERSION, '3.0', 'lt'))
|
||||
{
|
||||
JHtml::stylesheet('com_icagenda/template.j25.css', false, true);
|
||||
JHtml::stylesheet('com_icagenda/icagenda-back.j25.css', false, true);
|
||||
|
||||
JHTML::_('behavior.framework');
|
||||
|
||||
// load jQuery, if not loaded before
|
||||
$scripts = array_keys($document->_scripts);
|
||||
$scriptFound = false;
|
||||
$scriptuiFound = false;
|
||||
|
||||
for ($i = 0; $i < count($scripts); $i++)
|
||||
{
|
||||
if (stripos($scripts[$i], 'jquery.min.js') !== false)
|
||||
{
|
||||
$scriptFound = true;
|
||||
}
|
||||
// load jQuery, if not loaded before as jquery
|
||||
if (stripos($scripts[$i], 'jquery.js') !== false)
|
||||
{
|
||||
$scriptFound = true;
|
||||
}
|
||||
if (stripos($scripts[$i], 'jquery-ui.min.js') !== false)
|
||||
{
|
||||
$scriptuiFound = true;
|
||||
}
|
||||
}
|
||||
|
||||
// jQuery Library Loader
|
||||
if (!$scriptFound)
|
||||
{
|
||||
// load jQuery, if not loaded before
|
||||
if (!JFactory::getApplication()->get('jquery'))
|
||||
{
|
||||
JFactory::getApplication()->set('jquery', true);
|
||||
// add jQuery
|
||||
$document->addScript('https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js');
|
||||
$document->addScript( JURI::root( true ) . '/media/com_icagenda/js/jquery.noconflict.js' );
|
||||
}
|
||||
}
|
||||
|
||||
if (!$scriptuiFound)
|
||||
{
|
||||
$document->addScript('https://ajax.googleapis.com/ajax/libs/jqueryui/1.9.2/jquery-ui.min.js');
|
||||
}
|
||||
|
||||
$document->addScript( JURI::root( true ) . '/media/com_icagenda/js/template.js' );
|
||||
}
|
||||
|
||||
$label = $this->element['label'];
|
||||
$label = $this->translateLabel ? JText::_($label) : $label;
|
||||
|
||||
$style = $this->element['style'];
|
||||
$style = $this->translateLabel ? JText::_($style) : $style;
|
||||
|
||||
$class = $this->element['class'];
|
||||
$class = $this->translateLabel ? JText::_($class) : $class;
|
||||
|
||||
|
||||
// Contruction
|
||||
$html[] = "<div class='";
|
||||
$html[] = $class;
|
||||
$html[] = "' ";
|
||||
$html[] = "style='";
|
||||
$html[] = $style;
|
||||
$html[] = "display:block;clear:both;'>";
|
||||
$html[] = $label;
|
||||
$html[] = "</div>";
|
||||
|
||||
return implode('',$html);
|
||||
|
||||
}
|
||||
}
|
||||
@ -0,0 +1 @@
|
||||
<html><body bgcolor="#FFFFFF"></body></html>
|
||||
@ -0,0 +1,120 @@
|
||||
<?php
|
||||
/**
|
||||
*------------------------------------------------------------------------------
|
||||
* iCagenda v3 by Jooml!C - Events Management Extension for Joomla! 2.5 / 3.x
|
||||
*------------------------------------------------------------------------------
|
||||
* @package com_icagenda
|
||||
* @copyright Copyright (c)2012-2019 Cyril Rezé, Jooml!C - All rights reserved
|
||||
*
|
||||
* @license GNU General Public License version 3 or later; see LICENSE.txt
|
||||
* @author Cyril Rezé (Lyr!C)
|
||||
* @link http://www.joomlic.com
|
||||
*
|
||||
* @version 3.6.9 2017-07-04
|
||||
* @since 1.2.3
|
||||
*------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
// No direct access to this file
|
||||
defined('JPATH_BASE') or die;
|
||||
|
||||
jimport('joomla.form.formfield');
|
||||
|
||||
// Test if translation is missing, set to en-GB by default
|
||||
$language = JFactory::getLanguage();
|
||||
$language->load('com_icagenda', JPATH_ADMINISTRATOR, 'en-GB', true);
|
||||
$language->load('com_icagenda', JPATH_ADMINISTRATOR, null, true);
|
||||
|
||||
JHtml::stylesheet('com_icagenda/icagenda-back.css', false, true);
|
||||
|
||||
|
||||
class JFormFieldTitle extends JFormField
|
||||
{
|
||||
protected $type = 'Title';
|
||||
|
||||
protected function getLabel()
|
||||
{
|
||||
return ' ';
|
||||
}
|
||||
|
||||
protected function getInput()
|
||||
{
|
||||
$html = array();
|
||||
|
||||
$document = JFactory::getDocument();
|
||||
$document->addStyleSheet( JURI::root( true ) . '/media/com_icagenda/icicons/style.css' );
|
||||
|
||||
// Joomla 2.5
|
||||
if (version_compare(JVERSION, '3.0', 'lt'))
|
||||
{
|
||||
JHtml::stylesheet('com_icagenda/template.j25.css', false, true);
|
||||
JHtml::stylesheet('com_icagenda/icagenda-back.j25.css', false, true);
|
||||
|
||||
JHTML::_('behavior.framework');
|
||||
|
||||
// load jQuery, if not loaded before
|
||||
$scripts = array_keys($document->_scripts);
|
||||
$scriptFound = false;
|
||||
$scriptuiFound = false;
|
||||
|
||||
for ($i = 0; $i < count($scripts); $i++)
|
||||
{
|
||||
if (stripos($scripts[$i], 'jquery.min.js') !== false)
|
||||
{
|
||||
$scriptFound = true;
|
||||
}
|
||||
// load jQuery, if not loaded before as jquery
|
||||
if (stripos($scripts[$i], 'jquery.js') !== false)
|
||||
{
|
||||
$scriptFound = true;
|
||||
}
|
||||
if (stripos($scripts[$i], 'jquery-ui.min.js') !== false)
|
||||
{
|
||||
$scriptuiFound = true;
|
||||
}
|
||||
}
|
||||
|
||||
// jQuery Library Loader
|
||||
if (!$scriptFound)
|
||||
{
|
||||
// load jQuery, if not loaded before
|
||||
if (!JFactory::getApplication()->get('jquery'))
|
||||
{
|
||||
JFactory::getApplication()->set('jquery', true);
|
||||
// add jQuery
|
||||
$document->addScript('https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js');
|
||||
$document->addScript( JURI::root( true ) . '/media/com_icagenda/js/jquery.noconflict.js' );
|
||||
}
|
||||
}
|
||||
|
||||
if (!$scriptuiFound)
|
||||
{
|
||||
$document->addScript('https://ajax.googleapis.com/ajax/libs/jqueryui/1.9.2/jquery-ui.min.js');
|
||||
}
|
||||
|
||||
$document->addScript( JURI::root( true ) . '/media/com_icagenda/js/template.js' );
|
||||
}
|
||||
|
||||
$label = $this->element['label'];
|
||||
$label = $this->translateLabel ? JText::_($label) : $label;
|
||||
|
||||
$style = $this->element['style'];
|
||||
$style = $this->translateLabel ? JText::_($style) : $style;
|
||||
|
||||
$class = $this->element['class'];
|
||||
$class = $this->translateLabel ? JText::_($class) : $class;
|
||||
|
||||
|
||||
// Contruction
|
||||
$html[] = "<div class='";
|
||||
$html[] = $class;
|
||||
$html[] = " element-title' ";
|
||||
$html[] = "style='";
|
||||
$html[] = $style;
|
||||
$html[] = "'>";
|
||||
$html[] = $label;
|
||||
$html[] = "</div>";
|
||||
|
||||
return implode('',$html);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,42 @@
|
||||
<?php
|
||||
/**
|
||||
*------------------------------------------------------------------------------
|
||||
* iCagenda v3 by Jooml!C - Events Management Extension for Joomla! 2.5 / 3.x
|
||||
*------------------------------------------------------------------------------
|
||||
* @package com_icagenda
|
||||
* @copyright Copyright (c)2012-2019 Cyril Rezé, Jooml!C - All rights reserved
|
||||
*
|
||||
* @license GNU General Public License version 3 or later; see LICENSE.txt
|
||||
* @author Cyril Rezé (Lyr!C)
|
||||
* @link http://www.joomlic.com
|
||||
*
|
||||
* @version 3.5.4 2015-04-13
|
||||
* @since 3.5.4
|
||||
*------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
// No direct access to this file
|
||||
defined('JPATH_BASE') or die;
|
||||
|
||||
jimport('joomla.form.formfield');
|
||||
|
||||
|
||||
class JFormFieldTitleHeader extends JFormField
|
||||
{
|
||||
protected $type = 'TitleHeader';
|
||||
|
||||
protected function getInput()
|
||||
{
|
||||
return ' ';
|
||||
}
|
||||
|
||||
protected function getLabel()
|
||||
{
|
||||
$label = $this->element['label'];
|
||||
$label = $this->translateLabel ? JText::_($label) : $label;
|
||||
|
||||
$html = '<h3>' . $label . '</h3>';
|
||||
|
||||
return $html;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,86 @@
|
||||
<?php
|
||||
/**
|
||||
*------------------------------------------------------------------------------
|
||||
* iCagenda v3 by Jooml!C - Events Management Extension for Joomla! 2.5 / 3.x
|
||||
*------------------------------------------------------------------------------
|
||||
* @package com_icagenda
|
||||
* @copyright Copyright (c)2012-2019 Cyril Rezé, Jooml!C - All rights reserved
|
||||
*
|
||||
* @license GNU General Public License version 3 or later; see LICENSE.txt
|
||||
* @author Cyril Rezé (Lyr!C)
|
||||
* @link http://www.joomlic.com
|
||||
*
|
||||
* @version 3.6.9 2017-07-04
|
||||
* @since 1.2.3
|
||||
*------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
// No direct access to this file
|
||||
defined('JPATH_BASE') or die;
|
||||
|
||||
jimport('joomla.form.formfield');
|
||||
|
||||
// Test if translation is missing, set to en-GB by default
|
||||
$language = JFactory::getLanguage();
|
||||
$language->load('com_icagenda', JPATH_ADMINISTRATOR, 'en-GB', true);
|
||||
$language->load('com_icagenda', JPATH_ADMINISTRATOR, null, true);
|
||||
|
||||
JHtml::stylesheet('com_icagenda/icagenda-back.css', false, true);
|
||||
|
||||
|
||||
class JFormFieldTitleImg extends JFormField
|
||||
{
|
||||
protected $type = 'TitleImg';
|
||||
|
||||
protected function getLabel()
|
||||
{
|
||||
return ' ';
|
||||
}
|
||||
|
||||
protected function getInput()
|
||||
{
|
||||
$html = array();
|
||||
|
||||
// Affichage texte
|
||||
|
||||
$label = $this->element['label'];
|
||||
$label = $this->translateLabel ? JText::_($label) : $label;
|
||||
|
||||
$style = $this->element['style'];
|
||||
$style = $this->translateLabel ? JText::_($style) : $style;
|
||||
|
||||
$class = $this->element['class'];
|
||||
$class = $this->translateLabel ? JText::_($class) : $class;
|
||||
|
||||
$icimage = $this->element['icimage'];
|
||||
$image = '../media/com_icagenda/images/'. $icimage .'';
|
||||
|
||||
$icicon = $this->element['icicon'];
|
||||
|
||||
// Contruction
|
||||
$html[] = '<div class="';
|
||||
$html[] = $class;
|
||||
$html[] = ' element-title-img" ';
|
||||
$html[] = 'style="';
|
||||
$html[] = $style;
|
||||
$html[] = '">';
|
||||
|
||||
if ($icimage)
|
||||
{
|
||||
$html[] = '<img src="';
|
||||
$html[] = $image;
|
||||
$html[] = '" />';
|
||||
}
|
||||
elseif ($icicon)
|
||||
{
|
||||
$html[] = '<span class="iCicon-';
|
||||
$html[] = $icicon;
|
||||
$html[] = '"></span> ';
|
||||
}
|
||||
|
||||
$html[] = $label;
|
||||
$html[] = '</div>';
|
||||
|
||||
return implode('',$html);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1 @@
|
||||
<html><body></body></html>
|
||||
@ -0,0 +1,104 @@
|
||||
<?php
|
||||
/**
|
||||
*----------------------------------------------------------------------------
|
||||
* iCagenda Events Management Extension for Joomla!
|
||||
*----------------------------------------------------------------------------
|
||||
* @version 3.7.3 2018-08-09
|
||||
*
|
||||
* @package iCagenda.Admin
|
||||
* @link https://icagenda.joomlic.com
|
||||
*
|
||||
* @author Adapted from Nicholas K. Dionysopoulos - www.akeebabackup.com
|
||||
* @copyright (c) 2012-2019 Jooml!C / Cyril Rezé. All rights reserved.
|
||||
* @license GNU General Public License version 3 or later; see LICENSE.txt
|
||||
*
|
||||
* @since 3.5.6
|
||||
*----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
class iCagendaSystemInfo
|
||||
{
|
||||
/** @var string Unique identifier for the site, created from server variables */
|
||||
private $siteId;
|
||||
/** @var array Associative array of data being sent */
|
||||
private $data = array();
|
||||
/** @var string Remote url to upload the stats */
|
||||
private $remoteUrl = 'https://stats.joomlic.com/index.php';
|
||||
|
||||
public function setSiteId($siteId)
|
||||
{
|
||||
$this->siteId = $siteId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the value of a collected variable. Use NULL as value to unset it
|
||||
*
|
||||
* @param string $key Variable name
|
||||
* @param string $value Variable value
|
||||
*/
|
||||
public function setValue($key, $value)
|
||||
{
|
||||
if (is_null($value) && isset($this->data[$key]))
|
||||
{
|
||||
unset($this->data[$key]);
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->data[$key] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Uploads collected data to the remote server
|
||||
*
|
||||
* @param bool $useIframe Should I create an iframe to upload data or should I use cURL/fopen?
|
||||
*
|
||||
* @return string|bool The HTML code if an iframe is requested or a boolean if we're using cURL/fopen
|
||||
*/
|
||||
public function sendInfo($useIframe = false)
|
||||
{
|
||||
// No site ID? Well, simply do nothing
|
||||
if ( ! $this->siteId)
|
||||
{
|
||||
return '';
|
||||
}
|
||||
|
||||
// First of all let's add the siteId
|
||||
$this->setValue('sid', $this->siteId);
|
||||
|
||||
// Then let's create the url
|
||||
$url = array();
|
||||
|
||||
foreach ($this->data as $param => $value)
|
||||
{
|
||||
$url[] .= $param . '=' . $value;
|
||||
}
|
||||
|
||||
$url = $this->remoteUrl . '?' . implode('&', $url);
|
||||
|
||||
// Should I create an iframe?
|
||||
if ($useIframe)
|
||||
{
|
||||
return '<!-- Anonymous usage statistics collection for iCagenda software --><iframe style="display: none" src="' . $url . '"></iframe>';
|
||||
}
|
||||
else
|
||||
{
|
||||
// Do we have cURL installed?
|
||||
if (function_exists('curl_init'))
|
||||
{
|
||||
$ch = curl_init($url);
|
||||
|
||||
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
|
||||
|
||||
return curl_exec($ch);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Nope, let's try with fopen and cross our fingers
|
||||
return @fopen($url, 'r');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
2362
deployed/icagenda/administrator/components/com_icagenda/config.xml
Normal file
@ -0,0 +1,50 @@
|
||||
<?php
|
||||
/**
|
||||
*----------------------------------------------------------------------------
|
||||
* iCagenda Events Management Extension for Joomla!
|
||||
*----------------------------------------------------------------------------
|
||||
* @version 3.6.14 2018-04-26
|
||||
*
|
||||
* @package iCagenda.Admin
|
||||
* @link https://icagenda.joomlic.com
|
||||
*
|
||||
* @author Cyril Rezé
|
||||
* @copyright (c) 2012-2019 Jooml!C / Cyril Rezé. All rights reserved.
|
||||
* @license GNU General Public License version 3 or later; see LICENSE.txt
|
||||
*
|
||||
* @since 1.0
|
||||
*----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
/**
|
||||
* Controller class - iCagenda.
|
||||
*/
|
||||
class iCagendaController extends JControllerLegacy
|
||||
{
|
||||
/**
|
||||
* Method to display a view.
|
||||
*
|
||||
* @param boolean $cachable If true, the view output will be cached
|
||||
* @param array $urlparams An array of safe url parameters and their variable types, for valid values see {@link JFilterInput::clean()}.
|
||||
*
|
||||
* @return JController This object to support chaining.
|
||||
* @since 1.0
|
||||
*/
|
||||
public function display($cachable = false, $urlparams = false)
|
||||
{
|
||||
require_once JPATH_COMPONENT . '/helpers/icagenda.php';
|
||||
|
||||
$jinput = JFactory::getApplication()->input;
|
||||
|
||||
// Load the submenu.
|
||||
iCagendaHelper::addSubmenu($jinput->get('view', 'icagenda'));
|
||||
$view = $jinput->get('view', 'icagenda');
|
||||
$jinput->set('view', $view);
|
||||
|
||||
parent::display();
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,39 @@
|
||||
<?php
|
||||
/**
|
||||
*------------------------------------------------------------------------------
|
||||
* iCagenda v3 by Jooml!C - Events Management Extension for Joomla! 2.5 / 3.x
|
||||
*------------------------------------------------------------------------------
|
||||
* @package com_icagenda
|
||||
* @copyright Copyright (c)2012-2019 Cyril Rezé, Jooml!C - All rights reserved
|
||||
*
|
||||
* @license GNU General Public License version 3 or later; see LICENSE.txt
|
||||
* @author Cyril Rezé (Lyr!C)
|
||||
* @link http://www.joomlic.com
|
||||
*
|
||||
* @version 3.3.3 2014-04-12
|
||||
* @since 1.0
|
||||
*------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die();
|
||||
|
||||
jimport('joomla.application.component.controlleradmin');
|
||||
|
||||
/**
|
||||
* Categories list controller class.
|
||||
*/
|
||||
class iCagendaControllerCategories extends JControllerAdmin
|
||||
{
|
||||
/**
|
||||
* Proxy for getModel.
|
||||
* @since 1.0
|
||||
*/
|
||||
public function getModel($name = 'category', $prefix = 'iCagendaModel')
|
||||
{
|
||||
$model = parent::getModel($name, $prefix, array('ignore_request' => true));
|
||||
|
||||
return $model;
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,34 @@
|
||||
<?php
|
||||
/**
|
||||
*------------------------------------------------------------------------------
|
||||
* iCagenda v3 by Jooml!C - Events Management Extension for Joomla! 2.5 / 3.x
|
||||
*------------------------------------------------------------------------------
|
||||
* @package com_icagenda
|
||||
* @copyright Copyright (c)2012-2019 Cyril Rezé, Jooml!C - All rights reserved
|
||||
*
|
||||
* @license GNU General Public License version 3 or later; see LICENSE.txt
|
||||
* @author Cyril Rezé (Lyr!C)
|
||||
* @link http://www.joomlic.com
|
||||
*
|
||||
* @version 3.2.13 2014-01-26
|
||||
* @since 1.0
|
||||
*------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die();
|
||||
|
||||
jimport('joomla.application.component.controllerform');
|
||||
|
||||
/**
|
||||
* Category controller class.
|
||||
*/
|
||||
class iCagendaControllerCategory extends JControllerForm
|
||||
{
|
||||
|
||||
function __construct() {
|
||||
$this->view_list = 'categories';
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,63 @@
|
||||
<?php
|
||||
/**
|
||||
*------------------------------------------------------------------------------
|
||||
* iCagenda v3 by Jooml!C - Events Management Extension for Joomla! 2.5 / 3.x
|
||||
*------------------------------------------------------------------------------
|
||||
* @package com_icagenda
|
||||
* @copyright Copyright (c)2012-2019 Cyril Rezé, Jooml!C - All rights reserved
|
||||
*
|
||||
* @license GNU General Public License version 3 or later; see LICENSE.txt
|
||||
* @author Cyril Rezé (Lyr!C)
|
||||
* @link http://www.joomlic.com
|
||||
*
|
||||
* @version 3.6.0 2015-12-03
|
||||
* @since 3.4.0
|
||||
*------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die();
|
||||
|
||||
jimport('joomla.application.component.controllerform');
|
||||
|
||||
/**
|
||||
* Custom Field controller class.
|
||||
*/
|
||||
class iCagendaControllerCustomfield extends JControllerForm
|
||||
{
|
||||
function __construct()
|
||||
{
|
||||
$this->view_list = 'customfields';
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
/**
|
||||
* Return Ajax to save a new custom field group
|
||||
*
|
||||
* @since 3.6.0
|
||||
*/
|
||||
function newGroup()
|
||||
{
|
||||
icagendaAjaxFilter::saveCustomFieldGroup();
|
||||
}
|
||||
|
||||
/**
|
||||
* Return Ajax to check if a custom field group is set to any custom field
|
||||
*
|
||||
* @since 3.6.0
|
||||
*/
|
||||
function checkGroup()
|
||||
{
|
||||
icagendaAjaxFilter::checkCustomFieldGroup();
|
||||
}
|
||||
|
||||
/**
|
||||
* Return Ajax to delete a custom field group
|
||||
*
|
||||
* @since 3.6.0
|
||||
*/
|
||||
function deleteGroup()
|
||||
{
|
||||
icagendaAjaxFilter::deleteCustomFieldGroup();
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,38 @@
|
||||
<?php
|
||||
/**
|
||||
*------------------------------------------------------------------------------
|
||||
* iCagenda v3 by Jooml!C - Events Management Extension for Joomla! 2.5 / 3.x
|
||||
*------------------------------------------------------------------------------
|
||||
* @package com_icagenda
|
||||
* @copyright Copyright (c)2012-2019 Cyril Rezé, Jooml!C - All rights reserved
|
||||
*
|
||||
* @license GNU General Public License version 3 or later; see LICENSE.txt
|
||||
* @author Cyril Rezé (Lyr!C)
|
||||
* @link http://www.joomlic.com
|
||||
*
|
||||
* @version 3.4.0 2014-05-01
|
||||
* @since 3.4.0
|
||||
*------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die();
|
||||
|
||||
jimport('joomla.application.component.controlleradmin');
|
||||
|
||||
/**
|
||||
* Categories list controller class.
|
||||
*/
|
||||
class iCagendaControllerCustomfields extends JControllerAdmin
|
||||
{
|
||||
/**
|
||||
* Proxy for getModel.
|
||||
* @since 1.0
|
||||
*/
|
||||
public function getModel($name = 'customfield', $prefix = 'iCagendaModel')
|
||||
{
|
||||
$model = parent::getModel($name, $prefix, array('ignore_request' => true));
|
||||
|
||||
return $model;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,144 @@
|
||||
<?php
|
||||
/**
|
||||
*----------------------------------------------------------------------------
|
||||
* iCagenda Events Management Extension for Joomla!
|
||||
*----------------------------------------------------------------------------
|
||||
* @version 3.6.14 2018-04-26
|
||||
*
|
||||
* @package iCagenda.Admin
|
||||
* @link https://icagenda.joomlic.com
|
||||
*
|
||||
* @author Cyril Rezé
|
||||
* @copyright (c) 2012-2019 Jooml!C / Cyril Rezé. All rights reserved.
|
||||
* @license GNU General Public License version 3 or later; see LICENSE.txt
|
||||
*
|
||||
* @since 1.0
|
||||
*----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
jimport('joomla.application.component.controllerform');
|
||||
|
||||
/**
|
||||
* Event controller class.
|
||||
*/
|
||||
class iCagendaControllerEvent extends JControllerForm
|
||||
{
|
||||
function __construct()
|
||||
{
|
||||
$this->view_list = 'events';
|
||||
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
/**
|
||||
* Method override to check if you can add a new record.
|
||||
*
|
||||
* @param array $data An array of input data.
|
||||
*
|
||||
* @return boolean
|
||||
*
|
||||
* @since 1.0
|
||||
*/
|
||||
protected function allowAdd($data = array())
|
||||
{
|
||||
// Initialise variables.
|
||||
$input = JFactory::getApplication()->input;
|
||||
$user = JFactory::getUser();
|
||||
$categoryId = JArrayHelper::getValue($data, 'catid', $input->getInt('filter_category_id'), 'int');
|
||||
$allow = null;
|
||||
|
||||
if ($categoryId)
|
||||
{
|
||||
// If the category has been passed in the data or URL check it.
|
||||
$allow = $user->authorise('core.create', 'com_icagenda.category.' . $categoryId);
|
||||
}
|
||||
|
||||
if ($allow === null)
|
||||
{
|
||||
// In the absense of better information, revert to the component permissions.
|
||||
return parent::allowAdd();
|
||||
}
|
||||
else
|
||||
{
|
||||
return $allow;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Method override to check if you can edit an existing record.
|
||||
*
|
||||
* @param array $data An array of input data.
|
||||
* @param string $key The name of the key for the primary key.
|
||||
*
|
||||
* @return boolean
|
||||
*
|
||||
* @since 1.0
|
||||
*/
|
||||
protected function allowEdit($data = array(), $key = 'id')
|
||||
{
|
||||
// Initialise variables.
|
||||
$recordId = (int) isset($data[$key]) ? $data[$key] : 0;
|
||||
$user = JFactory::getUser();
|
||||
$userId = $user->get('id');
|
||||
|
||||
// Check general edit permission first.
|
||||
if ($user->authorise('core.edit', 'com_icagenda.event.' . $recordId))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
// Fallback on edit.own.
|
||||
// First test if the permission is available.
|
||||
if ($user->authorise('core.edit.own', 'com_icagenda.event.' . $recordId))
|
||||
{
|
||||
// Now test the owner is the user.
|
||||
$ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0;
|
||||
|
||||
if (empty($ownerId) && $recordId)
|
||||
{
|
||||
// Need to do a lookup from the model.
|
||||
$record = $this->getModel()->getItem($recordId);
|
||||
|
||||
if (empty($record))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
$ownerId = $record->created_by;
|
||||
}
|
||||
|
||||
// If the owner matches 'me' then do the test.
|
||||
if ($ownerId == $userId)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
// Since there is no asset tracking, revert to the component permissions.
|
||||
return parent::allowEdit($data, $key);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to run batch operations.
|
||||
*
|
||||
* @param object $model The model.
|
||||
*
|
||||
* @return boolean True if successful, false otherwise and internal error is set.
|
||||
*
|
||||
* @since 1.0
|
||||
*/
|
||||
public function batch($model = null)
|
||||
{
|
||||
JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
|
||||
|
||||
// Set the model
|
||||
$model = $this->getModel('Event', '', array());
|
||||
|
||||
// Preset the redirect
|
||||
$this->setRedirect(JRoute::_('index.php?option=com_icagenda&view=events' . $this->getRedirectToListAppend(), false));
|
||||
|
||||
return parent::batch($model);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,118 @@
|
||||
<?php
|
||||
/**
|
||||
*----------------------------------------------------------------------------
|
||||
* iCagenda Events Management Extension for Joomla!
|
||||
*----------------------------------------------------------------------------
|
||||
* @version 3.6.14 2018-04-26
|
||||
*
|
||||
* @package iCagenda.Admin
|
||||
* @link https://icagenda.joomlic.com
|
||||
*
|
||||
* @author Cyril Rezé
|
||||
* @copyright (c) 2012-2019 Jooml!C / Cyril Rezé. All rights reserved.
|
||||
* @license GNU General Public License version 3 or later; see LICENSE.txt
|
||||
*
|
||||
* @since 1.0
|
||||
*----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
jimport('joomla.application.component.controlleradmin');
|
||||
|
||||
/**
|
||||
* Events list controller class.
|
||||
*/
|
||||
class iCagendaControllerEvents extends JControllerAdmin
|
||||
{
|
||||
/**
|
||||
* Proxy for getModel.
|
||||
*
|
||||
* @since 1.0
|
||||
*/
|
||||
public function getModel($name = 'event', $prefix = 'iCagendaModel', $config = array('ignore_request' => true))
|
||||
{
|
||||
return parent::getModel($name, $prefix, $config);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to save the submitted ordering values for records via AJAX.
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @since 3.0
|
||||
*/
|
||||
public function saveOrderAjax()
|
||||
{
|
||||
$app = JFactory::getApplication();
|
||||
$input = $app->input;
|
||||
|
||||
$pks = $input->post->get('cid', array(), 'array');
|
||||
$order = $input->post->get('order', array(), 'array');
|
||||
|
||||
// Sanitize the input
|
||||
JArrayHelper::toInteger($pks);
|
||||
JArrayHelper::toInteger($order);
|
||||
|
||||
// Get the model
|
||||
$model = $this->getModel();
|
||||
|
||||
// Save the ordering
|
||||
$return = $model->saveorder($pks, $order);
|
||||
|
||||
if ($return)
|
||||
{
|
||||
echo "1";
|
||||
}
|
||||
|
||||
// Close the application
|
||||
$app->close();
|
||||
}
|
||||
|
||||
public function __construct($config = array())
|
||||
{
|
||||
parent::__construct($config);
|
||||
|
||||
$this->registerTask('unapprove', 'approve');
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to approve an event.
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @since 3.2
|
||||
*/
|
||||
public function approve()
|
||||
{
|
||||
// Check for request forgeries.
|
||||
JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
|
||||
|
||||
$app = JFactory::getApplication();
|
||||
$input = $app->input;
|
||||
|
||||
$ids = $input->post->get('cid', array(), 'array');
|
||||
|
||||
if (empty($ids))
|
||||
{
|
||||
$app->enqueueMessage(JText::_('JERROR_NO_ITEMS_SELECTED'), 'warning');
|
||||
}
|
||||
else
|
||||
{
|
||||
// Get the model.
|
||||
$model = $this->getModel();
|
||||
|
||||
// Change the state of the records.
|
||||
if ( ! $model->approve($ids))
|
||||
{
|
||||
$app->enqueueMessage($model->getError(), 'warning');
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->setMessage(JText::plural('COM_ICAGENDA_N_EVENTS_APPROVED', count($ids)));
|
||||
}
|
||||
}
|
||||
|
||||
$this->setRedirect('index.php?option=com_icagenda&view=events');
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,34 @@
|
||||
<?php
|
||||
/**
|
||||
*------------------------------------------------------------------------------
|
||||
* iCagenda v3 by Jooml!C - Events Management Extension for Joomla! 2.5 / 3.x
|
||||
*------------------------------------------------------------------------------
|
||||
* @package com_icagenda
|
||||
* @copyright Copyright (c)2012-2019 Cyril Rezé, Jooml!C - All rights reserved
|
||||
*
|
||||
* @license GNU General Public License version 3 or later; see LICENSE.txt
|
||||
* @author doorknob
|
||||
* @link http://www.joomlic.com
|
||||
*
|
||||
* @version 3.4.0 2014-07-02
|
||||
* @since 3.4.0
|
||||
*------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die();
|
||||
|
||||
jimport('joomla.application.component.controllerform');
|
||||
|
||||
/**
|
||||
* Feature controller class.
|
||||
*/
|
||||
class iCagendaControllerFeature extends JControllerForm
|
||||
{
|
||||
function __construct()
|
||||
{
|
||||
$this->view_list = 'features';
|
||||
|
||||
parent::__construct();
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,38 @@
|
||||
<?php
|
||||
/**
|
||||
*------------------------------------------------------------------------------
|
||||
* iCagenda v3 by Jooml!C - Events Management Extension for Joomla! 2.5 / 3.x
|
||||
*------------------------------------------------------------------------------
|
||||
* @package com_icagenda
|
||||
* @copyright Copyright (c)2012-2019 Cyril Rezé, Jooml!C - All rights reserved
|
||||
*
|
||||
* @license GNU General Public License version 3 or later; see LICENSE.txt
|
||||
* @author doorknob & Cyril Rezé
|
||||
* @link http://www.joomlic.com
|
||||
*
|
||||
* @version 3.4.0 2014-07-02
|
||||
* @since 3.4.0
|
||||
*------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die();
|
||||
|
||||
jimport('joomla.application.component.controlleradmin');
|
||||
|
||||
/**
|
||||
* Features list controller class.
|
||||
*/
|
||||
class iCagendaControllerFeatures extends JControllerAdmin
|
||||
{
|
||||
/**
|
||||
* Proxy for getModel.
|
||||
* @since 3.4.0
|
||||
*/
|
||||
public function getModel($name = 'feature', $prefix = 'iCagendaModel')
|
||||
{
|
||||
$model = parent::getModel($name, $prefix, array('ignore_request' => true));
|
||||
|
||||
return $model;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,38 @@
|
||||
<?php
|
||||
/**
|
||||
*------------------------------------------------------------------------------
|
||||
* iCagenda v3 by Jooml!C - Events Management Extension for Joomla! 2.5 / 3.x
|
||||
*------------------------------------------------------------------------------
|
||||
* @package com_icagenda
|
||||
* @copyright Copyright (c)2012-2019 Cyril Rezé, Jooml!C - All rights reserved
|
||||
*
|
||||
* @license GNU General Public License version 3 or later; see LICENSE.txt
|
||||
* @author Cyril Rezé (Lyr!C)
|
||||
* @link http://www.joomlic.com
|
||||
*
|
||||
* @version 3.0 2013-05-05
|
||||
* @since 1.0
|
||||
*------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die();
|
||||
|
||||
jimport('joomla.application.component.controlleradmin');
|
||||
|
||||
/**
|
||||
* Categories list controller class.
|
||||
*/
|
||||
// J2.5 : class iCagendaControlleriCagenda extends JControllerAdmin
|
||||
class iCagendaControlleriCagenda extends JControllerLegacyAdmin
|
||||
{
|
||||
/**
|
||||
* Proxy for getModel.
|
||||
* @since 1.6
|
||||
*/
|
||||
public function &getModel($name = 'icagenda', $prefix = 'iCagendaModel')
|
||||
{
|
||||
$model = parent::getModel($name, $prefix, array('ignore_request' => true));
|
||||
return $model;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1 @@
|
||||
<html><body></body></html>
|
||||
@ -0,0 +1,106 @@
|
||||
<?php
|
||||
/**
|
||||
*----------------------------------------------------------------------------
|
||||
* iCagenda Events Management Extension for Joomla!
|
||||
*----------------------------------------------------------------------------
|
||||
* @version 3.6.14 2018-04-26
|
||||
*
|
||||
* @package iCagenda.Admin
|
||||
* @link https://icagenda.joomlic.com
|
||||
*
|
||||
* @author Cyril Rezé
|
||||
* @copyright (c) 2012-2019 Jooml!C / Cyril Rezé. All rights reserved.
|
||||
* @license GNU General Public License version 3 or later; see LICENSE.txt
|
||||
*
|
||||
* @since 1.0
|
||||
*----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
jimport('joomla.application.component.controllerform');
|
||||
|
||||
/**
|
||||
* Event controller class.
|
||||
*/
|
||||
class iCagendaControllerMail extends JControllerForm
|
||||
{
|
||||
function __construct()
|
||||
{
|
||||
$this->view_list = 'icagenda';
|
||||
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
/**
|
||||
* Return Ajax to load date select options
|
||||
*
|
||||
* @since 3.5.9
|
||||
*/
|
||||
function dates()
|
||||
{
|
||||
icagendaAjax::getOptionsEventDates('mail');
|
||||
|
||||
// Cut the execution short
|
||||
// JFactory::getApplication()->close();
|
||||
}
|
||||
|
||||
/**
|
||||
* Send the mail
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @since 3.5.9
|
||||
*/
|
||||
public function send()
|
||||
{
|
||||
// Check for request forgeries.
|
||||
JSession::checkToken('request') or jexit(JText::_('JINVALID_TOKEN'));
|
||||
|
||||
$app = JFactory::getApplication();
|
||||
$jinput = $app->input;
|
||||
$model = $this->getModel('Mail');
|
||||
|
||||
if ( ! $model->send())
|
||||
{
|
||||
// Get the user data.
|
||||
$requestData = $this->input->post->get('jform', array(), 'array');
|
||||
|
||||
// Save the data in the session.
|
||||
$app->setUserState('com_icagenda.mail.data', $requestData);
|
||||
|
||||
// Redirect back to the newsletter screen.
|
||||
$this->setRedirect(JRoute::_('index.php?option=com_icagenda&view=mail&layout=edit', false));
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
// Flush the data from the session.
|
||||
$app->setUserState('com_icagenda.mail.data', null);
|
||||
|
||||
// Redirect back to the newsletter screen.
|
||||
$this->setRedirect(JRoute::_('index.php?option=com_icagenda&view=mail&layout=edit', false));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Cancel the mail
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @since 3.5.9
|
||||
*/
|
||||
public function cancel($key = null)
|
||||
{
|
||||
// Check for request forgeries.
|
||||
JSession::checkToken('request') or jexit(JText::_('JINVALID_TOKEN'));
|
||||
|
||||
$app = JFactory::getApplication();
|
||||
|
||||
// Flush the data from the session.
|
||||
$app->setUserState('com_icagenda.mail.data', null);
|
||||
|
||||
$this->setRedirect(JRoute::_('index.php?option=com_icagenda', false));
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,115 @@
|
||||
<?php
|
||||
/**
|
||||
*------------------------------------------------------------------------------
|
||||
* iCagenda v3 by Jooml!C - Events Management Extension for Joomla! 2.5 / 3.x
|
||||
*------------------------------------------------------------------------------
|
||||
* @package com_icagenda
|
||||
* @copyright Copyright (c)2012-2019 Cyril Rezé, Jooml!C - All rights reserved
|
||||
*
|
||||
* @license GNU General Public License version 3 or later; see LICENSE.txt
|
||||
* @author Cyril Rezé (Lyr!C)
|
||||
* @link http://www.joomlic.com
|
||||
*
|
||||
* @version 3.6.0 2016-03-01
|
||||
* @since 3.3.3
|
||||
*------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die();
|
||||
|
||||
jimport('joomla.application.component.controllerform');
|
||||
|
||||
/**
|
||||
* Registration controller class.
|
||||
*/
|
||||
class iCagendaControllerRegistration extends JControllerForm
|
||||
{
|
||||
function __construct()
|
||||
{
|
||||
$this->view_list = 'registrations';
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
/**
|
||||
* Return Ajax to load date select options
|
||||
*
|
||||
* @since 3.5.9
|
||||
*/
|
||||
function dates()
|
||||
{
|
||||
icagendaAjax::getOptionsEventDates('registration');
|
||||
|
||||
// Cut the execution short
|
||||
// JFactory::getApplication()->close();
|
||||
}
|
||||
|
||||
/**
|
||||
* Return Full name/Username using Ajax (depending on Global Options)
|
||||
*
|
||||
* @since 3.6.0
|
||||
*/
|
||||
function registrationName()
|
||||
{
|
||||
$userId = JFactory::getApplication()->input->get('userid', '');
|
||||
|
||||
icagendaAjax::getRegistrationName($userId);
|
||||
|
||||
// $user = JFactory::getUser($userId);
|
||||
|
||||
// return $user->name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method override to check if you can edit an existing record.
|
||||
*
|
||||
* @param array $data An array of input data.
|
||||
* @param string $key The name of the key for the primary key.
|
||||
*
|
||||
* @return boolean
|
||||
*
|
||||
* @since 3.3.3
|
||||
*/
|
||||
protected function allowEdit($data = array(), $key = 'id')
|
||||
{
|
||||
// Initialise variables.
|
||||
$recordId = (int) isset($data[$key]) ? $data[$key] : 0;
|
||||
$user = JFactory::getUser();
|
||||
$userId = $user->get('id');
|
||||
|
||||
// Check general edit permission first.
|
||||
if ($user->authorise('core.edit', 'com_icagenda.registration.' . $recordId))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
// Fallback on edit.own.
|
||||
// First test if the permission is available.
|
||||
if ($user->authorise('core.edit.own', 'com_icagenda.registration.' . $recordId))
|
||||
{
|
||||
// Now test the owner is the user.
|
||||
$ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0;
|
||||
if (empty($ownerId) && $recordId)
|
||||
{
|
||||
// Need to do a lookup from the model.
|
||||
$record = $this->getModel()->getItem($recordId);
|
||||
|
||||
if (empty($record))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
$ownerId = $record->created_by;
|
||||
}
|
||||
|
||||
// If the owner matches 'me' then do the test.
|
||||
if ($ownerId == $userId)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
// Since there is no asset tracking, revert to the component permissions.
|
||||
return parent::allowEdit($data, $key);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,36 @@
|
||||
<?php
|
||||
/**
|
||||
*------------------------------------------------------------------------------
|
||||
* iCagenda v3 by Jooml!C - Events Management Extension for Joomla! 2.5 / 3.x
|
||||
*------------------------------------------------------------------------------
|
||||
* @package com_icagenda
|
||||
* @copyright Copyright (c)2012-2019 Cyril Rezé, Jooml!C - All rights reserved
|
||||
*
|
||||
* @license GNU General Public License version 3 or later; see LICENSE.txt
|
||||
* @author Cyril Rezé (Lyr!C)
|
||||
* @link http://www.joomlic.com
|
||||
*
|
||||
* @version 3.5.9 2015-07-22
|
||||
* @since 2.0.0
|
||||
*------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die();
|
||||
|
||||
jimport('joomla.application.component.controlleradmin');
|
||||
|
||||
/**
|
||||
* Registrations list controller class.
|
||||
*/
|
||||
class iCagendaControllerRegistrations extends JControllerAdmin
|
||||
{
|
||||
/**
|
||||
* Proxy for getModel.
|
||||
* @since 2.0.0
|
||||
*/
|
||||
public function getModel($name = 'registration', $prefix = 'iCagendaModel', $config = array('ignore_request' => true))
|
||||
{
|
||||
return parent::getModel($name, $prefix, $config);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,156 @@
|
||||
<?php
|
||||
/**
|
||||
*----------------------------------------------------------------------------
|
||||
* iCagenda Events Management Extension for Joomla!
|
||||
*----------------------------------------------------------------------------
|
||||
* @version 3.7.9 2019-06-05
|
||||
*
|
||||
* @package iCagenda.Admin
|
||||
* @link https://icagenda.joomlic.com
|
||||
*
|
||||
* @author Cyril Rezé
|
||||
* @copyright (c) 2012-2019 Jooml!C / Cyril Rezé. All rights reserved.
|
||||
* @license GNU General Public License version 3 or later; see LICENSE.txt
|
||||
*
|
||||
* @since 3.5.0
|
||||
*----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
/**
|
||||
* Registrations list controller class.
|
||||
*
|
||||
* @since 3.5.0
|
||||
*/
|
||||
class icagendaControllerRegistrations extends JControllerLegacy
|
||||
{
|
||||
/**
|
||||
* @var string The context for persistent state.
|
||||
*
|
||||
* @since 3.5.0
|
||||
*/
|
||||
protected $context = 'com_icagenda.registrations';
|
||||
|
||||
/**
|
||||
* Proxy for getModel.
|
||||
*
|
||||
* @param string $name The name of the model.
|
||||
* @param string $prefix The prefix for the model class name.
|
||||
* @param array $config Configuration array for model. Optional.
|
||||
*
|
||||
* @return JModel
|
||||
*
|
||||
* @since 3.5.0
|
||||
*/
|
||||
public function getModel($name = 'Registrations', $prefix = 'iCagendaModel', $config = array())
|
||||
{
|
||||
$model = parent::getModel($name, $prefix, array('ignore_request' => true));
|
||||
|
||||
return $model;
|
||||
}
|
||||
|
||||
/**
|
||||
* Display method for the raw track data.
|
||||
*
|
||||
* @param boolean $cachable If true, the view output will be cached
|
||||
* @param array $urlparams An array of safe url parameters and their variable types, for valid values see {@link JFilterInput::clean()}.
|
||||
*
|
||||
* @return JController This object to support chaining.
|
||||
*
|
||||
* @since 3.5.0
|
||||
*/
|
||||
public function display($cachable = false, $urlparams = false)
|
||||
{
|
||||
// Get the document object.
|
||||
$document = JFactory::getDocument();
|
||||
$vName = 'registrations';
|
||||
$vFormat = 'raw';
|
||||
|
||||
// Get and render the view.
|
||||
if ($view = $this->getView($vName, $vFormat))
|
||||
{
|
||||
// Get the model for the view.
|
||||
$model = $this->getModel($vName);
|
||||
|
||||
// Load the filter state.
|
||||
$app = JFactory::getApplication();
|
||||
|
||||
$search = $app->getUserState($this->context . '.filter.search');
|
||||
$model->setState('filter.search', $search);
|
||||
|
||||
$published = $app->getUserState($this->context . '.filter.state', '1');
|
||||
$model->setState('filter.state', $published);
|
||||
|
||||
$categoryId = $app->getUserState($this->context . '.filter.categories');
|
||||
$model->setState('filter.categories', $categoryId);
|
||||
|
||||
$eventId = $app->getUserState($this->context . '.filter.events');
|
||||
$model->setState('filter.events', $eventId);
|
||||
|
||||
$date = $app->getUserState($this->context . '.filter.dates');
|
||||
$model->setState('filter.dates', $date);
|
||||
|
||||
$model->setState('list.limit', 0);
|
||||
$model->setState('list.start', 0);
|
||||
|
||||
$input = JFactory::getApplication()->input;
|
||||
$form = $input->get('jform', array(), 'array');
|
||||
|
||||
$model->setState('event_title', $form['event_title']);
|
||||
$model->setState('date', $form['date']);
|
||||
$model->setState('tickets', $form['tickets']);
|
||||
$model->setState('name', $form['name']);
|
||||
$model->setState('email', $form['email']);
|
||||
$model->setState('phone', $form['phone']);
|
||||
$model->setState('customfields', $form['customfields']);
|
||||
$model->setState('notes', $form['notes']);
|
||||
$model->setState('status', $form['status']);
|
||||
$model->setState('created', $form['created']);
|
||||
$model->setState('reg_id', $form['reg_id']);
|
||||
|
||||
$model->setState('basename', $form['basename']);
|
||||
$model->setState('separator', $form['separator']);
|
||||
$model->setState('compressed', $form['compressed']);
|
||||
|
||||
$config = JFactory::getConfig();
|
||||
$cookie_domain = $config->get('cookie_domain', '');
|
||||
$cookie_path = $config->get('cookie_path', '/');
|
||||
|
||||
// Joomla 3
|
||||
if (version_compare(JVERSION, '3.0', 'ge'))
|
||||
{
|
||||
setcookie(JApplicationHelper::getHash($this->context . '.event_title'), $form['event_title'], time() + 365 * 86400, $cookie_path, $cookie_domain);
|
||||
setcookie(JApplicationHelper::getHash($this->context . '.date'), $form['date'], time() + 365 * 86400, $cookie_path, $cookie_domain);
|
||||
setcookie(JApplicationHelper::getHash($this->context . '.tickets'), $form['tickets'], time() + 365 * 86400, $cookie_path, $cookie_domain);
|
||||
setcookie(JApplicationHelper::getHash($this->context . '.name'), $form['name'], time() + 365 * 86400, $cookie_path, $cookie_domain);
|
||||
setcookie(JApplicationHelper::getHash($this->context . '.email'), $form['email'], time() + 365 * 86400, $cookie_path, $cookie_domain);
|
||||
setcookie(JApplicationHelper::getHash($this->context . '.phone'), $form['phone'], time() + 365 * 86400, $cookie_path, $cookie_domain);
|
||||
setcookie(JApplicationHelper::getHash($this->context . '.customfields'), $form['customfields'], time() + 365 * 86400, $cookie_path, $cookie_domain);
|
||||
setcookie(JApplicationHelper::getHash($this->context . '.notes'), $form['notes'], time() + 365 * 86400, $cookie_path, $cookie_domain);
|
||||
setcookie(JApplicationHelper::getHash($this->context . '.status'), $form['status'], time() + 365 * 86400, $cookie_path, $cookie_domain);
|
||||
setcookie(JApplicationHelper::getHash($this->context . '.created'), $form['created'], time() + 365 * 86400, $cookie_path, $cookie_domain);
|
||||
setcookie(JApplicationHelper::getHash($this->context . '.reg_id'), $form['reg_id'], time() + 365 * 86400, $cookie_path, $cookie_domain);
|
||||
|
||||
setcookie(JApplicationHelper::getHash($this->context . '.basename'), $form['basename'], time() + 365 * 86400, $cookie_path, $cookie_domain);
|
||||
setcookie(JApplicationHelper::getHash($this->context . '.separator'), $form['separator'], time() + 365 * 86400, $cookie_path, $cookie_domain);
|
||||
setcookie(JApplicationHelper::getHash($this->context . '.compressed'), $form['compressed'], time() + 365 * 86400, $cookie_path, $cookie_domain);
|
||||
}
|
||||
// Joomla 2.5
|
||||
else
|
||||
{
|
||||
setcookie(JApplication::getHash($this->context.'.basename'), $form['basename'], time() + 365 * 86400, $cookie_path, $cookie_domain);
|
||||
setcookie(JApplication::getHash($this->context.'.separator'), $form['separator'], time() + 365 * 86400, $cookie_path, $cookie_domain);
|
||||
setcookie(JApplication::getHash($this->context.'.compressed'), $form['compressed'], time() + 365 * 86400, $cookie_path, $cookie_domain);
|
||||
}
|
||||
|
||||
// Push the model into the view (as default).
|
||||
$view->setModel($model, true);
|
||||
|
||||
// Push document object into the view.
|
||||
$view->document = $document;
|
||||
|
||||
$view->display();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,73 @@
|
||||
<?php
|
||||
/**
|
||||
*----------------------------------------------------------------------------
|
||||
* iCagenda Events Management Extension for Joomla!
|
||||
*----------------------------------------------------------------------------
|
||||
* @version 3.6.14 2018-04-26
|
||||
*
|
||||
* @package iCagenda.Admin
|
||||
* @link https://icagenda.joomlic.com
|
||||
*
|
||||
* @author Cyril Rezé
|
||||
* @copyright (c) 2012-2019 Jooml!C / Cyril Rezé. All rights reserved.
|
||||
* @license GNU General Public License version 3 or later; see LICENSE.txt
|
||||
*
|
||||
* @since 2.0
|
||||
*----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
jimport('joomla.application.component.controllerform');
|
||||
jimport('joomla.client.helper');
|
||||
|
||||
class iCagendaControllerthemes extends JControllerForm
|
||||
{
|
||||
protected $option = 'com_icagenda';
|
||||
|
||||
function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
$this->registerTask('themeinstall', 'themeinstall');
|
||||
}
|
||||
|
||||
function themeinstall()
|
||||
{
|
||||
JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
|
||||
|
||||
$post = JFactory::getApplication()->input->post;
|
||||
$theme = array();
|
||||
|
||||
if ($post->get('theme_component'))
|
||||
{
|
||||
$theme['component'] = 1;
|
||||
}
|
||||
|
||||
if (empty($theme))
|
||||
{
|
||||
$ftp =& JClientHelper::setCredentialsFromRequest('ftp');
|
||||
|
||||
$model = &$this->getModel('themes');
|
||||
|
||||
if ($model->install($theme))
|
||||
{
|
||||
$cache = JFactory::getCache('mod_menu');
|
||||
$cache->clean();
|
||||
|
||||
$msg = JText::_('COM_ICAGENDA_SUCCESS_THEME_INSTALLED');
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$msg = JText::_('COM_ICAGENDA_ERROR_THEME_APPLICATION_AREA');
|
||||
}
|
||||
|
||||
$this->setRedirect('index.php?option=com_icagenda&view=themes', $msg);
|
||||
}
|
||||
|
||||
function cancel()
|
||||
{
|
||||
$this->setRedirect('index.php?option=com_icagenda');
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,57 @@
|
||||
<?php
|
||||
/**
|
||||
*------------------------------------------------------------------------------
|
||||
* iCagenda v3 by Jooml!C - Events Management Extension for Joomla! 2.5 / 3.x
|
||||
*------------------------------------------------------------------------------
|
||||
* @package com_icagenda
|
||||
* @copyright Copyright (c)2012-2019 Cyril Rezé, Jooml!C - All rights reserved
|
||||
*
|
||||
* @license GNU General Public License version 3 or later; see LICENSE.txt
|
||||
* @author Cyril Rezé (Lyr!C)
|
||||
* @link http://www.joomlic.com
|
||||
*
|
||||
* @version 3.1.10 2013-09-11
|
||||
* @since 3.2
|
||||
*------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die();
|
||||
|
||||
/**
|
||||
* Extended Utility class for the iCagenda component.
|
||||
*
|
||||
* @package Joomla.Administrator
|
||||
* @subpackage com_iCagenda
|
||||
* @since 3.2
|
||||
*/
|
||||
class JHtmlEvents
|
||||
{
|
||||
|
||||
public static function approveEvents()
|
||||
{
|
||||
$states = array(
|
||||
1 => array(
|
||||
'img' => 'tick.png',
|
||||
'task' => 'approve',
|
||||
'text' => '',
|
||||
'active_title' => 'COM_ICAGENDA_TOOLBAR_APPROVE',
|
||||
'inactive_title' => '',
|
||||
'tip' => true,
|
||||
'active_class' => 'unpublish',
|
||||
'inactive_class' => 'unpublish'
|
||||
),
|
||||
0 => array(
|
||||
'img' => 'publish_x.png',
|
||||
'task' => '',
|
||||
'text' => '',
|
||||
'active_title' => '',
|
||||
'inactive_title' => 'COM_ICAGENDA_APPROVED',
|
||||
'tip' => true,
|
||||
'active_class' => 'publish',
|
||||
'inactive_class' => 'publish'
|
||||
)
|
||||
);
|
||||
return $states;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1 @@
|
||||
<!DOCTYPE html><title></title>
|
||||
@ -0,0 +1,278 @@
|
||||
<?php
|
||||
/**
|
||||
*----------------------------------------------------------------------------
|
||||
* iCagenda Events Management Extension for Joomla!
|
||||
*----------------------------------------------------------------------------
|
||||
* @version 3.6.14 2018-04-26
|
||||
*
|
||||
* @package iCagenda.Admin
|
||||
* @link https://icagenda.joomlic.com
|
||||
*
|
||||
* @author Cyril Rezé
|
||||
* @copyright (c) 2012-2019 Jooml!C / Cyril Rezé. All rights reserved.
|
||||
* @license GNU General Public License version 3 or later; see LICENSE.txt
|
||||
*
|
||||
* @since 1.0
|
||||
*----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
/**
|
||||
* iCagenda helper.
|
||||
*/
|
||||
class iCagendaHelper
|
||||
{
|
||||
/**
|
||||
* Configure the Linkbar.
|
||||
*/
|
||||
public static function addSubmenu($submenu)
|
||||
{
|
||||
if (version_compare(JVERSION, '3.0', 'lt'))
|
||||
{
|
||||
JSubMenuHelper::addEntry(
|
||||
JText::_('COM_ICAGENDA_TITLE_ICAGENDA'),
|
||||
'index.php?option=com_icagenda&view=icagenda',
|
||||
$submenu == 'icagenda'
|
||||
);
|
||||
if (JFactory::getUser()->authorise('icagenda.access.categories', 'com_icagenda'))
|
||||
{
|
||||
JSubMenuHelper::addEntry(
|
||||
JText::_('COM_ICAGENDA_TITLE_CATEGORIES'),
|
||||
'index.php?option=com_icagenda&view=categories',
|
||||
$submenu == 'categories'
|
||||
);
|
||||
}
|
||||
if (JFactory::getUser()->authorise('icagenda.access.events', 'com_icagenda'))
|
||||
{
|
||||
JSubMenuHelper::addEntry(
|
||||
JText::_('COM_ICAGENDA_TITLE_EVENTS'),
|
||||
'index.php?option=com_icagenda&view=events',
|
||||
$submenu == 'events'
|
||||
);
|
||||
}
|
||||
if (JFactory::getUser()->authorise('icagenda.access.registrations', 'com_icagenda'))
|
||||
{
|
||||
JSubMenuHelper::addEntry(
|
||||
JText::_('COM_ICAGENDA_TITLE_REGISTRATION'),
|
||||
'index.php?option=com_icagenda&view=registrations',
|
||||
$submenu == 'registrations'
|
||||
);
|
||||
}
|
||||
if (JFactory::getUser()->authorise('icagenda.access.newsletter', 'com_icagenda'))
|
||||
{
|
||||
JSubMenuHelper::addEntry(
|
||||
JText::_('COM_ICAGENDA_TITLE_NEWSLETTER'),
|
||||
'index.php?option=com_icagenda&view=mail&layout=edit',
|
||||
$submenu == 'newsletter'
|
||||
);
|
||||
}
|
||||
if (JFactory::getUser()->authorise('icagenda.access.customfields', 'com_icagenda'))
|
||||
{
|
||||
JSubMenuHelper::addEntry(
|
||||
JText::_('COM_ICAGENDA_TITLE_CUSTOMFIELDS'),
|
||||
'index.php?option=com_icagenda&view=customfields',
|
||||
$submenu == 'customfields'
|
||||
);
|
||||
}
|
||||
if (JFactory::getUser()->authorise('icagenda.access.features', 'com_icagenda'))
|
||||
{
|
||||
JSubMenuHelper::addEntry(
|
||||
JText::_('COM_ICAGENDA_TITLE_FEATURES'),
|
||||
'index.php?option=com_icagenda&view=features',
|
||||
$submenu == 'features'
|
||||
);
|
||||
}
|
||||
if (JFactory::getUser()->authorise('icagenda.access.themes', 'com_icagenda'))
|
||||
{
|
||||
JSubMenuHelper::addEntry(
|
||||
JText::_('COM_ICAGENDA_THEMES'),
|
||||
'index.php?option=com_icagenda&view=themes',
|
||||
$submenu == 'themes'
|
||||
);
|
||||
}
|
||||
JSubMenuHelper::addEntry(
|
||||
JText::_('COM_ICAGENDA_INFO'),
|
||||
'index.php?option=com_icagenda&view=info',
|
||||
$submenu == 'info'
|
||||
);
|
||||
|
||||
$document = JFactory::getDocument();
|
||||
|
||||
/**
|
||||
* Set Titles iCagenda
|
||||
*/
|
||||
if ($submenu == 'icagenda')
|
||||
{
|
||||
$document->setTitle(JText::_('COM_ICAGENDA'));
|
||||
}
|
||||
if ($submenu == 'categories')
|
||||
{
|
||||
$document->setTitle(JText::_('COM_ICAGENDA') . ' | ' . JText::_('COM_ICAGENDA_TITLE_CATEGORIES'));
|
||||
}
|
||||
if ($submenu == 'events')
|
||||
{
|
||||
$document->setTitle(JText::_('COM_ICAGENDA') . ' | ' . JText::_('COM_ICAGENDA_TITLE_EVENTS'));
|
||||
}
|
||||
if ($submenu == 'registrations')
|
||||
{
|
||||
$document->setTitle(JText::_('COM_ICAGENDA') . ' | ' . JText::_('COM_ICAGENDA_TITLE_REGISTRATION'));
|
||||
}
|
||||
if ($submenu == 'newsletter')
|
||||
{
|
||||
$document->setTitle(JText::_('COM_ICAGENDA') . ' | ' . JText::_('COM_ICAGENDA_TITLE_NEWSLETTER'));
|
||||
}
|
||||
if ($submenu == 'customfields')
|
||||
{
|
||||
$document->setTitle(JText::_('COM_ICAGENDA') . ' | ' . JText::_('COM_ICAGENDA_TITLE_CUSTOMFIELDS'));
|
||||
}
|
||||
if ($submenu == 'features')
|
||||
{
|
||||
$document->setTitle(JText::_('COM_ICAGENDA') . ' | ' . JText::_('COM_ICAGENDA_TITLE_FEATURES'));
|
||||
}
|
||||
if ($submenu == 'themes')
|
||||
{
|
||||
$document->setTitle(JText::_('COM_ICAGENDA') . ' | ' . JText::_('COM_ICAGENDA_THEMES'));
|
||||
}
|
||||
if ($submenu == 'info')
|
||||
{
|
||||
$document->setTitle(JText::_('COM_ICAGENDA') . ' | ' . JText::_('COM_ICAGENDA_INFO'));
|
||||
}
|
||||
|
||||
$document->addStyleDeclaration('
|
||||
.icon48icagenda{background: url(../media/com_icagenda/images/XXX.png);}
|
||||
.icon-48-events {background: url(../media/com_icagenda/images/all_events-48.png) no-repeat;}
|
||||
.icon-48-event {background: url(../media/com_icagenda/images/new_event-48.png) no-repeat;}
|
||||
.icon-48-registration {background: url(../media/com_icagenda/images/registration-48.png) no-repeat;}
|
||||
.icon-48-categories {background: url(../media/com_icagenda/images/all_cats-48.png) no-repeat;}
|
||||
.icon-48-category {background: url(../media/com_icagenda/images/new_cat-48.png) no-repeat;}
|
||||
.icon-48-generic {background: url(../media/com_icagenda/images/iconicagenda48.png) no-repeat;}
|
||||
.icon-48-mail {background: url(../media/com_icagenda/images/newsletter-48.png) no-repeat;}
|
||||
.icon-48-themes {background: url(../media/com_icagenda/images/themes-48.png) no-repeat;}
|
||||
.icon-48-customfields {background: url(../media/com_icagenda/images/customfields-48.png) no-repeat;}
|
||||
.icon-48-info {background: url(../media/com_icagenda/images/info-48.png) no-repeat;}
|
||||
');
|
||||
}
|
||||
else
|
||||
{
|
||||
JHtmlSidebar::addEntry(
|
||||
JText::_('COM_ICAGENDA_TITLE_ICAGENDA'),
|
||||
'index.php?option=com_icagenda&view=icagenda',
|
||||
$submenu == 'icagenda'
|
||||
);
|
||||
if (JFactory::getUser()->authorise('icagenda.access.categories', 'com_icagenda'))
|
||||
{
|
||||
JHtmlSidebar::addEntry(
|
||||
JText::_('COM_ICAGENDA_TITLE_CATEGORIES'),
|
||||
'index.php?option=com_icagenda&view=categories',
|
||||
$submenu == 'categories'
|
||||
);
|
||||
}
|
||||
if (JFactory::getUser()->authorise('icagenda.access.events', 'com_icagenda'))
|
||||
{
|
||||
JHtmlSidebar::addEntry(
|
||||
JText::_('COM_ICAGENDA_TITLE_EVENTS'),
|
||||
'index.php?option=com_icagenda&view=events',
|
||||
$submenu == 'events'
|
||||
);
|
||||
}
|
||||
if (JFactory::getUser()->authorise('icagenda.access.registrations', 'com_icagenda'))
|
||||
{
|
||||
JHtmlSidebar::addEntry(
|
||||
JText::_('COM_ICAGENDA_TITLE_REGISTRATION'),
|
||||
'index.php?option=com_icagenda&view=registrations',
|
||||
$submenu == 'registrations'
|
||||
);
|
||||
}
|
||||
if (JFactory::getUser()->authorise('icagenda.access.newsletter', 'com_icagenda'))
|
||||
{
|
||||
JHtmlSidebar::addEntry(
|
||||
JText::_('COM_ICAGENDA_TITLE_NEWSLETTER'),
|
||||
'index.php?option=com_icagenda&view=mail&layout=edit',
|
||||
$submenu == 'newsletter'
|
||||
);
|
||||
}
|
||||
if (JFactory::getUser()->authorise('icagenda.access.customfields', 'com_icagenda'))
|
||||
{
|
||||
JHtmlSidebar::addEntry(
|
||||
JText::_('COM_ICAGENDA_TITLE_CUSTOMFIELDS'),
|
||||
'index.php?option=com_icagenda&view=customfields',
|
||||
$submenu == 'customfields'
|
||||
);
|
||||
}
|
||||
if (JFactory::getUser()->authorise('icagenda.access.features', 'com_icagenda'))
|
||||
{
|
||||
JHtmlSidebar::addEntry(
|
||||
JText::_('COM_ICAGENDA_TITLE_FEATURES'),
|
||||
'index.php?option=com_icagenda&view=features',
|
||||
$submenu == 'features'
|
||||
);
|
||||
}
|
||||
if (JFactory::getUser()->authorise('icagenda.access.themes', 'com_icagenda'))
|
||||
{
|
||||
JHtmlSidebar::addEntry(
|
||||
JText::_('COM_ICAGENDA_THEMES'),
|
||||
'index.php?option=com_icagenda&view=themes',
|
||||
$submenu == 'themes'
|
||||
);
|
||||
}
|
||||
JHtmlSidebar::addEntry(
|
||||
JText::_('COM_ICAGENDA_INFO'),
|
||||
'index.php?option=com_icagenda&view=info',
|
||||
$submenu == 'info'
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a list of the actions that can be performed.
|
||||
*/
|
||||
public static function getActions($messageId = 0)
|
||||
{
|
||||
$user = JFactory::getUser();
|
||||
$result = new JObject;
|
||||
|
||||
if (empty($messageId))
|
||||
{
|
||||
$assetName = 'com_icagenda';
|
||||
}
|
||||
else
|
||||
{
|
||||
$assetName = 'com_icagenda.message.'.(int) $messageId;
|
||||
}
|
||||
|
||||
$actions = array(
|
||||
'core.admin',
|
||||
'core.manage',
|
||||
'core.create',
|
||||
'core.edit',
|
||||
'core.delete',
|
||||
'core.edit.state',
|
||||
'core.edit.own',
|
||||
'icagenda.access.categories',
|
||||
'icagenda.access.events',
|
||||
'icagenda.access.registrations',
|
||||
'icagenda.access.newsletter',
|
||||
'icagenda.access.customfields',
|
||||
'icagenda.access.features',
|
||||
'icagenda.access.themes'
|
||||
);
|
||||
|
||||
foreach ($actions as $action)
|
||||
{
|
||||
$result->set($action, $user->authorise($action, $assetName));
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests whether a string is serialized before attempting to unserialize it
|
||||
*
|
||||
* ( TO BE REMOVED WHEN ALL CALLS FROM IC LIBRARY !!! )
|
||||
*/
|
||||
public static function isSerialized($str)
|
||||
{
|
||||
return ($str == serialize(false) || @unserialize($str) !== false);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1 @@
|
||||
<html><body></body></html>
|
||||
@ -0,0 +1,182 @@
|
||||
<?php
|
||||
/**
|
||||
*----------------------------------------------------------------------------
|
||||
* iCagenda Events Management Extension for Joomla!
|
||||
*----------------------------------------------------------------------------
|
||||
* @version 3.6.14 2018-04-26
|
||||
*
|
||||
* @package iCagenda.Admin
|
||||
* @link https://icagenda.joomlic.com
|
||||
*
|
||||
* @author Cyril Rezé
|
||||
* @copyright (c) 2012-2019 Jooml!C / Cyril Rezé. All rights reserved.
|
||||
* @license GNU General Public License version 3 or later; see LICENSE.txt
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* @since 1.0
|
||||
*----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
// Get Application
|
||||
$app = JFactory::getApplication();
|
||||
|
||||
// Check Errors: iC Library & iCagenda Utilities
|
||||
$UTILITIES_DIR = is_dir(JPATH_ADMINISTRATOR . '/components/com_icagenda/utilities');
|
||||
|
||||
if ( ( ! $UTILITIES_DIR)
|
||||
|| ( ! class_exists('iCLibrary')) )
|
||||
{
|
||||
$alert_message = JText::_('ICAGENDA_CAN_NOT_LOAD') . '<br />';
|
||||
$alert_message.= '<ul>';
|
||||
if ( ! class_exists('iCLibrary')) $alert_message.= '<li>' . JText::_('IC_LIBRARY_NOT_LOADED') . '</li>';
|
||||
if ( ! $UTILITIES_DIR) $alert_message.= '<li>' . JText::_('ICAGENDA_A_FOLDER_IS_MISSING') . '</li>';
|
||||
$alert_message.= '</ul>';
|
||||
if ( ! $UTILITIES_DIR) $alert_message.= JText::_('ICAGENDA_IS_NOT_CORRECTLY_INSTALLED') . ' ';
|
||||
if ( ! $UTILITIES_DIR) $alert_message.= JText::_('ICAGENDA_INSTALL_AGAIN') . '<br />';
|
||||
if ( ! $UTILITIES_DIR) $alert_message.= JText::_('IC_ALTERNATIVELY') . ':<br /><ul>';
|
||||
if ($UTILITIES_DIR) $alert_message.= JText::_('IC_PLEASE') . ', ';
|
||||
if ( ! class_exists('iCLibrary'))
|
||||
{
|
||||
if ( ! $UTILITIES_DIR) $alert_message.= '<li>';
|
||||
$alert_message.= JText::_('IC_LIBRARY_CHECK_PLUGIN_AND_LIBRARY');
|
||||
if ( ! $UTILITIES_DIR) $alert_message.= '</li>';
|
||||
}
|
||||
if ( ! $UTILITIES_DIR)
|
||||
{
|
||||
$alert_message.= '<li>' . JText::Sprintf('ICAGENDA_UTILITIES_FIX_MANUAL'
|
||||
, '<strong>admin/utilities</strong>'
|
||||
, '<strong>administrator/components/com_icagenda/</strong>');
|
||||
$alert_message.= '</li></ul>';
|
||||
}
|
||||
|
||||
// Get the message queue
|
||||
$messages = $app->getMessageQueue();
|
||||
|
||||
$display_alert_message = false;
|
||||
|
||||
// If we have messages
|
||||
if (is_array($messages) && count($messages))
|
||||
{
|
||||
// Check each message for the one we want
|
||||
foreach ($messages as $key => $value)
|
||||
{
|
||||
if ($value['message'] == $alert_message)
|
||||
{
|
||||
$display_alert_message = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ( ! $display_alert_message)
|
||||
{
|
||||
$app->enqueueMessage($alert_message, 'error');
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Loads Utilities
|
||||
JLoader::registerPrefix('icagenda', JPATH_ADMINISTRATOR . '/components/com_icagenda/utilities');
|
||||
|
||||
// Common fields
|
||||
JFormHelper::addFieldPath(JPATH_ADMINISTRATOR . '/components/com_icagenda/utilities/form/field');
|
||||
|
||||
if ( ! defined('IC_LIBRARY'))
|
||||
{
|
||||
define('IC_LIBRARY', '1.3.0');
|
||||
}
|
||||
}
|
||||
|
||||
// Set Input J3
|
||||
$jinput = JFactory::getApplication()->input;
|
||||
|
||||
// Load Live Update & Joomla import
|
||||
require_once JPATH_ADMINISTRATOR . '/components/com_icagenda/liveupdate/liveupdate.php';
|
||||
|
||||
if ($jinput->get('view') == 'liveupdate')
|
||||
{
|
||||
LiveUpdate::handleRequest();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (version_compare(JVERSION, '3.0', 'lt'))
|
||||
{
|
||||
jimport('joomla.application.component.controller');
|
||||
|
||||
$level = E_ALL & ~E_NOTICE & ~E_DEPRECATED;
|
||||
|
||||
// Remove not-error message (only needed for Joomla 2.5) : Strict Standards
|
||||
if (version_compare(PHP_VERSION, '5.4.0-dev', '>='))
|
||||
{
|
||||
if ( ! defined('E_STRICT'))
|
||||
{
|
||||
define('E_STRICT', 2048);
|
||||
}
|
||||
|
||||
$level &= ~E_STRICT;
|
||||
}
|
||||
|
||||
error_reporting($level);
|
||||
}
|
||||
|
||||
// Set some css property
|
||||
$document = JFactory::getDocument();
|
||||
$document->addStyleDeclaration('.icon-48-icagenda {background-image: none;}');
|
||||
|
||||
// Load Vector iCicons Font
|
||||
JHtml::stylesheet( 'media/com_icagenda/icicons/style.css' );
|
||||
|
||||
// CSS files which could be overridden into your site template. (eg. /templates/my_template/css/com_icagenda/icagenda-back.css)
|
||||
JHtml::stylesheet( 'com_icagenda/icagenda-back.css', false, true );
|
||||
|
||||
// Load translations
|
||||
$language = JFactory::getLanguage();
|
||||
$language->load('com_icagenda', JPATH_ADMINISTRATOR, 'en-GB', true);
|
||||
$language->load('com_icagenda', JPATH_ADMINISTRATOR, null, true);
|
||||
|
||||
// Access check.
|
||||
if ( ! JFactory::getUser()->authorise('core.manage', 'com_icagenda'))
|
||||
{
|
||||
$app->enqueueMessage(JText::_('JERROR_ALERTNOAUTHOR'), 'error');
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
// Require helper file
|
||||
JLoader::register('iCagendaHelper', dirname(__FILE__) . '/helpers/icagenda.php');
|
||||
|
||||
// Check config params
|
||||
icagendaParams::encryptPassword();
|
||||
|
||||
// Get an instance of the controller prefixed by iCagenda
|
||||
// Joomla 3.x / 2.5 SWITCH
|
||||
if (version_compare(JVERSION, '3.0', 'ge'))
|
||||
{
|
||||
$controller = JControllerLegacy::getInstance('iCagenda');
|
||||
}
|
||||
else
|
||||
{
|
||||
$controller = JController::getInstance('iCagenda');
|
||||
}
|
||||
|
||||
// Perform the Request task
|
||||
$controller->execute($jinput->get('task'));
|
||||
|
||||
// Redirect if set by the controller
|
||||
$controller->redirect();
|
||||
@ -0,0 +1,133 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<extension type="component" version="3.2.4" method="upgrade">
|
||||
<name>iCagenda</name>
|
||||
<author>Cyril Rezé / Jooml!C</author>
|
||||
<creationDate>2020-08-29</creationDate>
|
||||
<copyright>Copyright (c) 2012-2020 Jooml!C / Cyril Rezé. All rights reserved.</copyright>
|
||||
<license>GNU General Public License version 3 or later; see LICENSE.txt</license>
|
||||
<authorEmail>info@joomlic.com</authorEmail>
|
||||
<authorUrl>www.joomlic.com</authorUrl>
|
||||
<version>3.7.15</version>
|
||||
<description>COM_ICAGENDA_DESC</description>
|
||||
|
||||
<scriptfile>script.icagenda.php</scriptfile>
|
||||
|
||||
<install> <!-- Runs on install -->
|
||||
<sql>
|
||||
<file driver="mysql" charset="utf8">sql/install/mysql/icagenda.install.sql</file>
|
||||
<file driver="mysql">sql/install/mysql/icagenda.install.sql</file>
|
||||
<file driver="mysqli" charset="utf8">sql/install/mysql/icagenda.install.sql</file>
|
||||
<file driver="mysqli">sql/install/mysql/icagenda.install.sql</file>
|
||||
</sql>
|
||||
</install>
|
||||
|
||||
<uninstall> <!-- Runs on uninstall -->
|
||||
<sql>
|
||||
<file driver="mysql" charset="utf8">sql/uninstall/mysql/icagenda.uninstall.sql</file>
|
||||
<file driver="mysql">sql/uninstall/mysql/icagenda.uninstall.sql</file>
|
||||
<file driver="mysqli" charset="utf8">sql/uninstall/mysql/icagenda.uninstall.sql</file>
|
||||
<file driver="mysqli">sql/uninstall/mysql/icagenda.uninstall.sql</file>
|
||||
</sql>
|
||||
</uninstall>
|
||||
|
||||
<update> <!-- Runs on update -->
|
||||
<schemas>
|
||||
<schemapath type="mysql">sql/updates</schemapath>
|
||||
</schemas>
|
||||
</update>
|
||||
|
||||
<libraries>
|
||||
<library folder="libraries" library="ic_library" name="iC Library" element="lib_ic_library" />
|
||||
</libraries>
|
||||
|
||||
<modules>
|
||||
<module folder="modules" module="mod_iccalendar" name="iCagenda - Calendar" />
|
||||
</modules>
|
||||
|
||||
<plugins>
|
||||
<plugin folder="plugins" plugin="icagenda" name="Action Log - iCagenda" group="actionlog" element="ic_actionlog" />
|
||||
<plugin folder="plugins" plugin="icagenda" name="Installer - iCagenda" group="installer" element="ic_installer" />
|
||||
<plugin folder="plugins" plugin="icagenda" name="Privacy - iCagenda" group="privacy" element="ic_privacy" />
|
||||
<plugin folder="plugins" plugin="icagendaupdate" name="Quick Icon - iCagenda :: Update Notification" group="quickicon" element="ic_update" />
|
||||
<plugin folder="plugins" plugin="icagenda" name="Search - iCagenda" group="search" element="ic_search" />
|
||||
<plugin folder="plugins" plugin="ic_autologin" name="System - iCagenda :: Autologin" group="system" element="ic_autologin" />
|
||||
<plugin folder="plugins" plugin="ic_library" name="System - iC Library" group="system" element="ic_library" />
|
||||
</plugins>
|
||||
|
||||
<files folder="site">
|
||||
<!-- FILE -->
|
||||
<filename>index.html</filename>
|
||||
<filename>icagenda.php</filename>
|
||||
<filename>controller.php</filename>
|
||||
<filename>router.php</filename>
|
||||
<!-- FOLDER -->
|
||||
<folder>add</folder>
|
||||
<folder>controllers</folder>
|
||||
<folder>helpers</folder>
|
||||
<folder>layouts</folder>
|
||||
<folder>models</folder>
|
||||
<folder>themes</folder>
|
||||
<folder>views</folder>
|
||||
</files>
|
||||
|
||||
<languages folder="site">
|
||||
<language tag="en-GB">language/en-GB/en-GB.com_icagenda.ini</language>
|
||||
<language tag="fr-FR">language/fr-FR/fr-FR.com_icagenda.ini</language>
|
||||
<language tag="it-IT">language/it-IT/it-IT.com_icagenda.ini</language>
|
||||
</languages>
|
||||
|
||||
<media destination="com_icagenda" folder="media">
|
||||
<filename>index.html</filename>
|
||||
<folder>css</folder>
|
||||
<folder>icicons</folder>
|
||||
<folder>images</folder>
|
||||
<folder>js</folder>
|
||||
</media>
|
||||
|
||||
<administration>
|
||||
|
||||
<menu link="option=com_icagenda&view=icagenda" img='../media/com_icagenda/images/iconicagenda16.png'>COM_ICAGENDA_MENU</menu>
|
||||
<submenu>
|
||||
<menu link="option=com_icagenda&view=icagenda" view="icagenda" img='../media/com_icagenda/images/iconicagenda16.png' alt="iCagenda/Home">COM_ICAGENDA_TITLE_ICAGENDA</menu>
|
||||
<menu link="option=com_icagenda&view=categories" view="categories" img='../media/com_icagenda/images/all_cats-16.png' alt="iCagenda/Categories">COM_ICAGENDA_MENU_CATEGORIES</menu>
|
||||
<menu link="option=com_icagenda&view=events" view="events" img='../media/com_icagenda/images/all_events-16.png' alt="iCagenda/Events">COM_ICAGENDA_EVENTS</menu>
|
||||
<menu link="option=com_icagenda&view=registrations" view="registrations" img='../media/com_icagenda/images/registration-16.png' alt="iCagenda/Registrations">COM_ICAGENDA_REGISTRATION</menu>
|
||||
<menu link="option=com_icagenda&view=mail&layout=edit" view="mail" img='../media/com_icagenda/images/newsletter-16.png' alt="iCagenda/Newsletter">COM_ICAGENDA_MAIL</menu>
|
||||
<menu link="option=com_icagenda&view=customfields" view="customfields" img='../media/com_icagenda/images/customfields-16.png' alt="iCagenda/Newsletter">COM_ICAGENDA_MENU_CUSTOMFIELDS</menu>
|
||||
<menu link="option=com_icagenda&view=features" view="features" img='../media/com_icagenda/images/features-16.png' alt="iCagenda/Newsletter">COM_ICAGENDA_MENU_FEATURES</menu>
|
||||
<menu link="option=com_icagenda&view=themes" view="themes" img='../media/com_icagenda/images/themes-16.png' alt="iCagenda/themes">COM_ICAGENDA_THEMES</menu>
|
||||
<menu link="option=com_icagenda&view=info" view="info" img='../media/com_icagenda/images/info-16.png' alt="iCagenda/info">COM_ICAGENDA_INFO</menu>
|
||||
</submenu>
|
||||
|
||||
<files folder="admin">
|
||||
<filename>access.xml</filename>
|
||||
<filename>CHANGELOG.php</filename>
|
||||
<filename>config.xml</filename>
|
||||
<filename>controller.php</filename>
|
||||
<filename>index.html</filename>
|
||||
<filename>icagenda.php</filename>
|
||||
<folder>assets</folder>
|
||||
<folder>controllers</folder>
|
||||
<folder>helpers</folder>
|
||||
<folder>liveupdate</folder>
|
||||
<folder>models</folder>
|
||||
<folder>sql</folder>
|
||||
<folder>tables</folder>
|
||||
<folder>utilities</folder>
|
||||
<folder>views</folder>
|
||||
</files>
|
||||
<languages folder="admin">
|
||||
<language tag="en-GB">language/en-GB/en-GB.com_icagenda.ini</language>
|
||||
<language tag="en-GB">language/en-GB/en-GB.com_icagenda.sys.ini</language>
|
||||
<language tag="fr-FR">language/fr-FR/fr-FR.com_icagenda.ini</language>
|
||||
<language tag="fr-FR">language/fr-FR/fr-FR.com_icagenda.sys.ini</language>
|
||||
<language tag="it-IT">language/it-IT/it-IT.com_icagenda.ini</language>
|
||||
<language tag="it-IT">language/it-IT/it-IT.com_icagenda.sys.ini</language>
|
||||
</languages>
|
||||
</administration>
|
||||
|
||||
<updateservers>
|
||||
<server type="extension" name="iCagenda Update Site">https://www.joomlic.com/icupdates/icagenda.xml</server>
|
||||
</updateservers>
|
||||
|
||||
</extension>
|
||||
@ -0,0 +1 @@
|
||||
<html><body></body></html>
|
||||
@ -0,0 +1,177 @@
|
||||
==============================================================================
|
||||
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. <http://fsf.org/>
|
||||
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.
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 4.8 KiB |
@ -0,0 +1,161 @@
|
||||
/**
|
||||
* @package LiveUpdate
|
||||
* @copyright Copyright (c)2010-2012 Nicholas K. Dionysopoulos / AkeebaBackup.com
|
||||
* @license GNU LGPLv3 or later <http://www.gnu.org/copyleft/lesser.html>
|
||||
*/
|
||||
@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;
|
||||
-o-border-radius: 10px;
|
||||
border-radius: 10px;
|
||||
-moz-box-shadow: 5px 5px 5px #f9f9f9;
|
||||
-webkit-box-shadow: 5px 5px 5px #f9f9f9;
|
||||
box-shadow: 5px 5px 5px #f9f9f9;
|
||||
}
|
||||
div.liveupdate-notsupported h3,
|
||||
div.liveupdate-stuck h3 {
|
||||
/* background: transparent url("fail-24.png") top left no-repeat; */
|
||||
text-align: center;
|
||||
min-height: 24px;
|
||||
padding: 2px 0 0 28px;
|
||||
font-size: x-large;
|
||||
color: red;
|
||||
text-shadow: 1px 1px 6px #333;
|
||||
}
|
||||
|
||||
div.liveupdate-hasupdates {
|
||||
border: thin solid #999900;
|
||||
background: #2F96B4;
|
||||
padding: 1em;
|
||||
color: #333300;
|
||||
-moz-border-radius: 10px;
|
||||
-webkit-border-radius: 10px;
|
||||
-o-border-radius: 10px;
|
||||
border-radius: 10px;
|
||||
-moz-box-shadow: 5px 5px 5px #f9f9f9;
|
||||
-webkit-box-shadow: 5px 5px 5px #f9f9f9;
|
||||
box-shadow: 5px 5px 5px #f9f9f9;
|
||||
}
|
||||
|
||||
div.liveupdate-hasupdates h3 {
|
||||
/* background: transparent url("warn-24.png") top left no-repeat; */
|
||||
text-align: center;
|
||||
min-height: 24px;
|
||||
padding: 2px 0 12px 0;
|
||||
font-size: x-large;
|
||||
color: #fff;
|
||||
text-shadow: 1px 1px 6px #333;
|
||||
}
|
||||
|
||||
div.liveupdate-noupdates {
|
||||
border: thin solid #009900;
|
||||
background: #51A351;
|
||||
padding: 1em;
|
||||
color: #003300;
|
||||
-moz-border-radius: 10px;
|
||||
-webkit-border-radius: 10px;
|
||||
-o-border-radius: 10px;
|
||||
border-radius: 10px;
|
||||
-moz-box-shadow: 5px 5px 5px #d4d4d4;
|
||||
-webkit-box-shadow: 5px 5px 5px #d4d4d4;
|
||||
box-shadow: 5px 5px 5px #d4d4d4;
|
||||
}
|
||||
|
||||
div.liveupdate-noupdates h3 {
|
||||
/* background: transparent url("ok-24.png") top left no-repeat; */
|
||||
text-align: center;
|
||||
min-height: 24px;
|
||||
padding: 2px 0 12px 0;
|
||||
font-size: x-large;
|
||||
color: #fff;
|
||||
text-shadow: 1px 1px 6px #333;
|
||||
}
|
||||
|
||||
div.liveupdate-infotable {
|
||||
width: 600px;
|
||||
margin: auto auto;
|
||||
padding: 10px;
|
||||
border: thin solid #333;
|
||||
background: #fefefe;
|
||||
-moz-border-radius: 5px;
|
||||
-webkit-border-radius: 5px;
|
||||
-o-border-radius: 5px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
div.liveupdate-infotable .row0 { background: #fcfcfc }
|
||||
div.liveupdate-infotable .row1 { background: #f0f0f0 }
|
||||
div.liveupdate-row { padding: 5px; }
|
||||
span.liveupdate-label { display: inline-block; vertical-align: top; width: 160px; font-weight: bold; }
|
||||
span.liveupdate-data { display: inline-block; vertical-align: top; max-width: 420px; 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;
|
||||
-o-border-radius: 10px;
|
||||
border-radius: 10px;
|
||||
-moz-box-shadow: 5px 5px 5px #d4d4d4;
|
||||
-webkit-box-shadow: 5px 5px 5px #d4d4d4;
|
||||
box-shadow: 5px 5px 5px #d4d4d4;
|
||||
}
|
||||
|
||||
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: 12pt; text-shadow: 1px 1px 3px silver }
|
||||
|
||||
#nagscreen {
|
||||
margin: 1em;
|
||||
background: #BD362F;
|
||||
color: #fff;
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
padding: 1em;
|
||||
text-align: center;
|
||||
text-shadow: 1px 1px 2px #333;
|
||||
-moz-border-radius: 10px;
|
||||
-webkit-border-radius: 10px;
|
||||
-o-border-radius: 10px;
|
||||
border-radius: 10px;
|
||||
-moz-box-shadow: 5px 5px 5px #d4d4d4;
|
||||
-webkit-box-shadow: 5px 5px 5px #d4d4d4;
|
||||
box-shadow: 5px 5px 5px #d4d4d4;
|
||||
}
|
||||
.nagversioninfo {
|
||||
font-size: 1em;
|
||||
text-align: center;
|
||||
margin: 20px 15% 30px 15%;
|
||||
}
|
||||
.nagtext {
|
||||
font-weight: normal;
|
||||
font-size: 1.2em;
|
||||
text-align: center;
|
||||
margin: 20px 15%;
|
||||
}
|
||||
.nagstability {
|
||||
font-weight: normal;
|
||||
font-size: 1em;
|
||||
text-align: left;
|
||||
margin: 10px 20%
|
||||
}
|
||||
|
After Width: | Height: | Size: 2.7 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
@ -0,0 +1,234 @@
|
||||
<?php
|
||||
/**
|
||||
*------------------------------------------------------------------------------
|
||||
* iCagenda v3 by Jooml!C - Events Management Extension for Joomla! 2.5 / 3.x
|
||||
*------------------------------------------------------------------------------
|
||||
*
|
||||
* @package LiveUpdate 2.1.5 - 2.2.1
|
||||
* @copyright Copyright (c)2010-2012 Nicholas K. Dionysopoulos / AkeebaBackup.com
|
||||
* @license GNU LGPLv3 or later <http://www.gnu.org/copyleft/lesser.html>
|
||||
*
|
||||
* @version 3.1.7 2013-08-28
|
||||
* @since 1.2.6
|
||||
*/
|
||||
|
||||
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 <nicholas@akeebabackup.com>
|
||||
*
|
||||
*/
|
||||
abstract class LiveUpdateAbstractConfig extends JObject
|
||||
{
|
||||
/** @var string The extension name, e.g. com_foobar, plg_foobar, mod_foobar, tpl_foobar etc */
|
||||
protected $_extensionName = 'com_icagenda';
|
||||
/** @var string The human-readable name of your extension */
|
||||
protected $_extensionTitle = 'iCagenda - Events Management Extension 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.
|
||||
*/
|
||||
protected function populateAuthorization()
|
||||
{
|
||||
if(!$this->_requiresAuthorization) return;
|
||||
|
||||
// Do we already have authorizaton information?
|
||||
if( (!empty($this->_username) && !empty($this->_password)) || !empty($this->_downloadID) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
if(substr($this->_extensionName,0,3) != 'com') return;
|
||||
|
||||
// Not using JComponentHelper to avoid conflicts ;)
|
||||
$db = JFactory::getDbo();
|
||||
$sql = $db->getQuery(true)
|
||||
->select($db->qn('params'))
|
||||
->from($db->qn('#__extensions'))
|
||||
->where($db->qn('type').' = '.$db->q('component'))
|
||||
->where($db->qn('element').' = '.$db->q($this->_extensionName));
|
||||
$db->setQuery($sql);
|
||||
$rawparams = $db->loadResult();
|
||||
$params = new JRegistry();
|
||||
$params->loadString($rawparams, 'JSON');
|
||||
|
||||
$this->_username = $params->get('username','');
|
||||
$this->_password = $params->get('password','');
|
||||
$this->_downloadID = $params->get('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;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,274 @@
|
||||
<?php
|
||||
/**
|
||||
*------------------------------------------------------------------------------
|
||||
* iCagenda v3 by Jooml!C - Events Management Extension for Joomla! 2.5 / 3.x
|
||||
*------------------------------------------------------------------------------
|
||||
*
|
||||
* @package LiveUpdate 2.1.5 - 2.2.1
|
||||
* @copyright Copyright (c)2010-2013 Nicholas K. Dionysopoulos / AkeebaBackup.com
|
||||
* @license GNU LGPLv3 or later <http://www.gnu.org/copyleft/lesser.html>
|
||||
*
|
||||
* @version 3.1.7 2013-08-28
|
||||
* @since 1.2.6
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die();
|
||||
|
||||
JLoader::import('joomla.application.component.controller');
|
||||
|
||||
if(!class_exists('JoomlaCompatController')) {
|
||||
if(interface_exists('JController')) {
|
||||
abstract class JoomlaCompatController extends JControllerLegacy {}
|
||||
} else {
|
||||
class JoomlaCompatController extends JController {}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The Live Update MVC controller
|
||||
*/
|
||||
class LiveUpdateController extends JoomlaCompatController
|
||||
{
|
||||
/**
|
||||
* Object contructor
|
||||
* @param array $config
|
||||
*
|
||||
* @return LiveUpdateController
|
||||
*/
|
||||
public function __construct($config = array())
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
$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()
|
||||
{
|
||||
$updateInfo = LiveUpdate::getUpdateInformation();
|
||||
if($updateInfo->stability != 'stable') {
|
||||
$skipNag = JRequest::getBool('skipnag', false);
|
||||
if(!$skipNag) {
|
||||
$this->setRedirect('index.php?option='.JRequest::getCmd('option','').'&view='.JRequest::getCmd('view','liveupdate').'&task=nagscreen');
|
||||
$this->redirect();
|
||||
}
|
||||
}
|
||||
|
||||
$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.
|
||||
$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, $urlparams = 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
|
||||
JLoader::import('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->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->task;
|
||||
|
||||
$model->setState( 'task', $task );
|
||||
|
||||
$app = JFactory::getApplication();
|
||||
$menu = $app->getMenu();
|
||||
if (is_object( $menu ))
|
||||
{
|
||||
$item = $menu->getActive();
|
||||
if ($item)
|
||||
{
|
||||
$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
|
||||
JLoader::import('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;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,443 @@
|
||||
<?php
|
||||
/**
|
||||
*------------------------------------------------------------------------------
|
||||
* iCagenda v3 by Jooml!C - Events Management Extension for Joomla! 2.5 / 3.x
|
||||
*------------------------------------------------------------------------------
|
||||
*
|
||||
* @package LiveUpdate 2.1.5 - 2.2.1
|
||||
* @copyright Copyright (c)2010-2013 Nicholas K. Dionysopoulos / AkeebaBackup.com
|
||||
* @license GNU LGPLv3 or later <http://www.gnu.org/copyleft/lesser.html>
|
||||
*
|
||||
* @version 3.1.7 2013-08-28
|
||||
* @since 1.2.6
|
||||
*/
|
||||
|
||||
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 string $url The URL to fetch
|
||||
* @param string $target Where to save the file
|
||||
*
|
||||
* @return boolean True on success
|
||||
*/
|
||||
public static function download($url, $target)
|
||||
{
|
||||
// Import Joomla! libraries
|
||||
JLoader::import('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.
|
||||
$empty = '';
|
||||
if (JFile::write($target, $empty))
|
||||
{
|
||||
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 string $url The URL to download from
|
||||
*
|
||||
* @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 boolean 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) using cURL
|
||||
*
|
||||
* @param string $url The URL to download from
|
||||
* @param resource $fp The file pointer to download to. Omit to return the contents.
|
||||
*
|
||||
* @return boolean|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 boolean
|
||||
*/
|
||||
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;
|
||||
}
|
||||
|
||||
/**
|
||||
* 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) using fopen() URL wrappers
|
||||
*
|
||||
* @param string $url The URL to download from
|
||||
* @param resource $fp The file pointer to download to. Omit to return the contents.
|
||||
*
|
||||
* @return boolean|string False on failure, true on success ($fp not null) or the URL contents (if $fp is null)
|
||||
*/
|
||||
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)',
|
||||
'timeout' => 10.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 this code 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 methods
|
||||
*
|
||||
* @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
|
||||
*
|
||||
* @return boolean Ture if successful
|
||||
*/
|
||||
private static function chmod($path, $mode)
|
||||
{
|
||||
if (is_string($mode))
|
||||
{
|
||||
$mode = octdec($mode);
|
||||
if (($mode < 0600) || ($mode > 0777))
|
||||
$mode = 0755;
|
||||
}
|
||||
|
||||
// Initialize variables
|
||||
JLoader::import('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
|
||||
JLoader::import('joomla.client.ftp');
|
||||
if (version_compare(JVERSION, '3.0', 'ge'))
|
||||
{
|
||||
$ftp = JClientFTP::getInstance(
|
||||
$ftpOptions['host'], $ftpOptions['port'], array(), $ftpOptions['user'], $ftpOptions['pass']
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (version_compare(JVERSION, '3.0', 'ge'))
|
||||
{
|
||||
$ftp = JClientFTP::getInstance(
|
||||
$ftpOptions['host'], $ftpOptions['port'], array(), $ftpOptions['user'], $ftpOptions['pass']
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
$ftp = JFTP::getInstance(
|
||||
$ftpOptions['host'], $ftpOptions['port'], array(), $ftpOptions['user'], $ftpOptions['pass']
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (@chmod($path, $mode))
|
||||
{
|
||||
$ret = true;
|
||||
}
|
||||
elseif ($ftpOptions['enabled'] == 1)
|
||||
{
|
||||
// Translate path and delete
|
||||
JLoader::import('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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,149 @@
|
||||
<?php
|
||||
/**
|
||||
*------------------------------------------------------------------------------
|
||||
* iCagenda v3 by Jooml!C - Events Management Extension for Joomla! 2.5 / 3.x
|
||||
*------------------------------------------------------------------------------
|
||||
*
|
||||
* @package LiveUpdate 2.1.5 - 2.2.1
|
||||
* @copyright Copyright (c)2010-2013 Nicholas K. Dionysopoulos / AkeebaBackup.com
|
||||
* @license GNU LGPLv3 or later <http://www.gnu.org/copyleft/lesser.html>
|
||||
*
|
||||
* @version 3.1.7 2013-08-28
|
||||
* @since 1.2.6
|
||||
*/
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,186 @@
|
||||
<?php
|
||||
/**
|
||||
*------------------------------------------------------------------------------
|
||||
* iCagenda v3 by Jooml!C - Events Management Extension for Joomla! 2.5 / 3.x
|
||||
*------------------------------------------------------------------------------
|
||||
*
|
||||
* @package LiveUpdate 2.1.5 - 2.2.1
|
||||
* @copyright Copyright (c)2010-2013 Nicholas K. Dionysopoulos / AkeebaBackup.com
|
||||
* @license GNU LGPLv3 or later <http://www.gnu.org/copyleft/lesser.html>
|
||||
*
|
||||
* @version 3.1.7 2013-08-28
|
||||
* @since 1.2.6
|
||||
*/
|
||||
/**
|
||||
* Specific error message update - iCagenda
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die();
|
||||
|
||||
JLoader::import('joomla.application.component.model');
|
||||
|
||||
if(!class_exists('JoomlaCompatModel')) {
|
||||
if(interface_exists('JModel')) {
|
||||
abstract class JoomlaCompatModel extends JModelLegacy {}
|
||||
} else {
|
||||
class JoomlaCompatModel extends JModel {}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The Live Update MVC model
|
||||
*/
|
||||
class LiveUpdateModel extends JoomlaCompatModel
|
||||
{
|
||||
public function download()
|
||||
{
|
||||
// Get the path to Joomla!'s temporary directory
|
||||
$jreg = JFactory::getConfig();
|
||||
$tmpdir = $jreg->get('tmp_path');
|
||||
|
||||
JLoader::import('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.'/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.'/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.'/'.$updateInfo->extInfo->name.'.update.'.$type;
|
||||
$tempdir = $tmpdir.'/'.$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');
|
||||
|
||||
JLoader::import('joomla.filesystem.archive');
|
||||
return JArchive::extract( $target, $tempdir);
|
||||
}
|
||||
|
||||
public function install()
|
||||
{
|
||||
$session = JFactory::getSession();
|
||||
$tempdir = $session->get('tempdir', '', 'liveupdate');
|
||||
|
||||
JLoader::import('joomla.installer.installer');
|
||||
JLoader::import('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'));
|
||||
$msg = JText::sprintf('LIVEUPDATE_INSTALL_ERROR', JText::_('LIVEUPDATE_INSTALL_TYPE_'.strtoupper($packageType)));
|
||||
$result = false;
|
||||
} else {
|
||||
// Package installed sucessfully
|
||||
// $msg = JText::sprintf('LIVEUPDATE_INSTALLEXT', JText::_($packageType), JText::_('LIVEUPDATE_Success'));
|
||||
$msg = JText::sprintf('LIVEUPDATE_INSTALL_SUCCESS', JText::_('LIVEUPDATE_INSTALL_TYPE_'.strtoupper($packageType)));
|
||||
$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);
|
||||
$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');
|
||||
|
||||
JLoader::import('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');
|
||||
|
||||
JLoader::import('joomla.installer.installer');
|
||||
JLoader::import('joomla.installer.helper');
|
||||
JLoader::import('joomla.filesystem.file');
|
||||
|
||||
$instModelFile = JPATH_ADMINISTRATOR.'/components/com_akeeba/models/installer.php';
|
||||
if(!JFile::exists($instModelFile)) {
|
||||
$instModelFile = JPATH_ADMINISTRATOR.'/components/com_akeeba/plugins/models/installer.php';
|
||||
};
|
||||
if(!JFile::exists($instModelFile)) return false;
|
||||
|
||||
require_once $instModelFile;
|
||||
$model = JoomlaCompatModel::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($packageType) {
|
||||
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;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,110 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
*------------------------------------------------------------------------------
|
||||
* iCagenda v3 by Jooml!C - Events Management Extension for Joomla! 2.5 / 3.x
|
||||
*------------------------------------------------------------------------------
|
||||
*
|
||||
* @package LiveUpdate 2.1.5 - 2.2.1
|
||||
* @copyright Copyright (c)2010-2013 Nicholas K. Dionysopoulos / AkeebaBackup.com
|
||||
* @license GNU LGPLv3 or later <http://www.gnu.org/copyleft/lesser.html>
|
||||
*
|
||||
* @version 3.1.7 2013-08-28
|
||||
* @since 1.2.6
|
||||
*/
|
||||
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 $component = null;
|
||||
|
||||
private $key = null;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->keyPrefix = '';
|
||||
}
|
||||
|
||||
public function load($config)
|
||||
{
|
||||
if (!array_key_exists('component', $config))
|
||||
{
|
||||
$this->component = $config['extensionName'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->component = $config['component'];
|
||||
}
|
||||
|
||||
if (!array_key_exists('key', $config))
|
||||
{
|
||||
$this->key = 'liveupdate';
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->key = $config['key'];
|
||||
}
|
||||
|
||||
// Not using JComponentHelper to avoid conflicts ;)
|
||||
$db = JFactory::getDbo();
|
||||
$sql = $db->getQuery(true)
|
||||
->select($db->qn('params'))
|
||||
->from($db->qn('#__extensions'))
|
||||
->where($db->qn('type') . ' = ' . $db->q('component'))
|
||||
->where($db->qn('element') . ' = ' . $db->q($this->component));
|
||||
$db->setQuery($sql);
|
||||
$rawparams = $db->loadResult();
|
||||
$params = new JRegistry();
|
||||
$params->loadString($rawparams, 'JSON');
|
||||
|
||||
$data = $params->get($this->key, '');
|
||||
|
||||
JLoader::import('joomla.registry.registry');
|
||||
$this->registry = new JRegistry('update');
|
||||
|
||||
$this->registry->loadString($data, 'INI');
|
||||
}
|
||||
|
||||
public function save()
|
||||
{
|
||||
$data = $this->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!!!
|
||||
$sql = $db->getQuery(true)
|
||||
->select($db->qn('params'))
|
||||
->from($db->qn('#__extensions'))
|
||||
->where($db->qn('type') . ' = ' . $db->q('component'))
|
||||
->where($db->qn('element') . ' = ' . $db->q($this->component));
|
||||
$db->setQuery($sql);
|
||||
$rawparams = $db->loadResult();
|
||||
$params = new JRegistry();
|
||||
$params->loadString($rawparams, 'JSON');
|
||||
|
||||
$params->set($this->key, $data);
|
||||
|
||||
$data = $params->toString('JSON');
|
||||
$sql = $db->getQuery(true)
|
||||
->update($db->qn('#__extensions'))
|
||||
->set($db->qn('params') . ' = ' . $db->q($data))
|
||||
->where($db->qn('type') . ' = ' . $db->q('component'))
|
||||
->where($db->qn('element') . ' = ' . $db->q($this->component));
|
||||
|
||||
$db->setQuery($sql);
|
||||
$db->execute();
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,87 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
*------------------------------------------------------------------------------
|
||||
* iCagenda v3 by Jooml!C - Events Management Extension for Joomla! 2.5 / 3.x
|
||||
*------------------------------------------------------------------------------
|
||||
*
|
||||
* @package LiveUpdate 2.1.5 - 2.2.1
|
||||
* @copyright Copyright (c)2010-2013 Nicholas K. Dionysopoulos / AkeebaBackup.com
|
||||
* @license GNU LGPLv3 or later <http://www.gnu.org/copyleft/lesser.html>
|
||||
*
|
||||
* @version 3.1.7 2013-08-28
|
||||
* @since 1.2.6
|
||||
*/
|
||||
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 $filename = null;
|
||||
private $extname = null;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
}
|
||||
|
||||
public function load($config)
|
||||
{
|
||||
JLoader::import('joomla.registry.registry');
|
||||
JLoader::import('joomla.filesystem.file');
|
||||
|
||||
if (array_key_exists('path', $config))
|
||||
{
|
||||
$path = $config['path'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$path = JPATH_CACHE;
|
||||
}
|
||||
$extname = $config['extensionName'];
|
||||
$filename = "$path/$extname.updates.php";
|
||||
|
||||
// Kill old files
|
||||
$filenameKill = "$path/$extname.updates.ini";
|
||||
if (JFile::exists($filenameKill))
|
||||
{
|
||||
JFile::delete($filenameKill);
|
||||
}
|
||||
|
||||
$this->filename = $filename;
|
||||
$this->extname = $extname;
|
||||
|
||||
$this->registry = new JRegistry('update');
|
||||
|
||||
if (JFile::exists($this->filename))
|
||||
{
|
||||
// Workaround for broken JRegistryFormatPHP API...
|
||||
@include_once $this->filename;
|
||||
|
||||
$className = 'LiveUpdate' . ucwords($extname) . 'Cache';
|
||||
|
||||
if (class_exists($className))
|
||||
{
|
||||
$object = new $className;
|
||||
$this->registry->loadObject($object);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function save()
|
||||
{
|
||||
JLoader::import('joomla.registry.registry');
|
||||
JLoader::import('joomla.filesystem.file');
|
||||
|
||||
$options = array(
|
||||
'class' => 'LiveUpdate' . ucwords($this->extname) . 'Cache'
|
||||
);
|
||||
$data = $this->registry->toString('PHP', $options);
|
||||
JFile::write($this->filename, $data);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,139 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
*------------------------------------------------------------------------------
|
||||
* iCagenda v3 by Jooml!C - Events Management Extension for Joomla! 2.5 / 3.x
|
||||
*------------------------------------------------------------------------------
|
||||
*
|
||||
* @package LiveUpdate 2.1.5 - 2.2.1
|
||||
* @copyright Copyright (c)2010-2013 Nicholas K. Dionysopoulos / AkeebaBackup.com
|
||||
* @license GNU LGPLv3 or later <http://www.gnu.org/copyleft/lesser.html>
|
||||
*
|
||||
* @version 3.1.8 2013-08-30
|
||||
* @since 1.2.6
|
||||
*/
|
||||
/**
|
||||
* Specific PHP 5.3 min control - iCagenda
|
||||
*/
|
||||
defined('_JEXEC') or die();
|
||||
|
||||
/**
|
||||
* Abstract class for the update parameters storage
|
||||
* @author nicholas
|
||||
*
|
||||
*/
|
||||
abstract class LiveUpdateStorage
|
||||
{
|
||||
/**
|
||||
* @var JRegistry The update data registry
|
||||
*/
|
||||
protected $registry = null;
|
||||
|
||||
/**
|
||||
* @var string The key prefix for the registry data
|
||||
*/
|
||||
protected $keyPrefix = 'update.';
|
||||
|
||||
/**
|
||||
* Singleton implementation
|
||||
*
|
||||
* @param string $type Storage tyme (file, component)
|
||||
* @param array $config Configuration array
|
||||
*
|
||||
* @return LiveUpdateStorage
|
||||
*/
|
||||
public static function getInstance($type, $config)
|
||||
{
|
||||
static $instances = array();
|
||||
|
||||
$sig = md5($type, serialize($config));
|
||||
if (!array_key_exists($sig, $instances))
|
||||
{
|
||||
$className = 'LiveUpdateStorage' . ucfirst($type);
|
||||
|
||||
if (!class_exists($className))
|
||||
{
|
||||
if (version_compare(phpversion(), '5.3.0', '<')) {
|
||||
require_once dirname(__FILE__).'/'.strtolower($type).'.php';
|
||||
} else {
|
||||
require_once __DIR__ . '/' . strtolower($type) . '.php';
|
||||
}
|
||||
}
|
||||
|
||||
$object = new $className($config);
|
||||
$object->load($config);
|
||||
|
||||
$instances[$sig] = $object;
|
||||
}
|
||||
|
||||
return $instances[$sig];
|
||||
}
|
||||
|
||||
/**
|
||||
* Set a value to the storage registry. Automatically encodes updatedata.
|
||||
*
|
||||
* @param string $key The key to set
|
||||
* @param mixed $value The value of the key to set
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public final function set($key, $value)
|
||||
{
|
||||
if ($key == 'updatedata')
|
||||
{
|
||||
if (function_exists('base64_encode') && function_exists('base64_decode'))
|
||||
{
|
||||
$value = base64_encode(serialize($value));
|
||||
}
|
||||
else
|
||||
{
|
||||
$value = serialize($value);
|
||||
}
|
||||
}
|
||||
|
||||
$this->registry->set($this->keyPrefix . $key, $value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Read a value from the storage registry
|
||||
*
|
||||
* @param string $key The key to read
|
||||
* @param mixed $default The default value of the key, if the key is not present
|
||||
*
|
||||
* @return mixed The value of the key
|
||||
*/
|
||||
public final function get($key, $default)
|
||||
{
|
||||
$value = $this->registry->get($this->keyPrefix . $key, $default);
|
||||
|
||||
if ($key == 'updatedata')
|
||||
{
|
||||
if (function_exists('base64_encode') && function_exists('base64_decode'))
|
||||
{
|
||||
$value = unserialize(base64_decode($value));
|
||||
}
|
||||
else
|
||||
{
|
||||
$value = unserialize($value);
|
||||
}
|
||||
}
|
||||
|
||||
return $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Save the contents of the registry to the appropriate storage
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
abstract public function save();
|
||||
|
||||
/**
|
||||
* Load data from the storage
|
||||
*
|
||||
* @param array The configuration options
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
abstract public function load($config);
|
||||
}
|
||||
@ -0,0 +1,41 @@
|
||||
<?php
|
||||
/**
|
||||
*------------------------------------------------------------------------------
|
||||
* iCagenda v3 by Jooml!C - Events Management Extension for Joomla! 2.5 / 3.x
|
||||
*------------------------------------------------------------------------------
|
||||
*
|
||||
* @package LiveUpdate 2.1.5 - 2.2.1
|
||||
* @copyright Copyright (c)2010-2013 Nicholas K. Dionysopoulos / AkeebaBackup.com
|
||||
* @license GNU LGPLv3 or later <http://www.gnu.org/copyleft/lesser.html>
|
||||
*
|
||||
* @version 3.1.7 2013-08-28
|
||||
* @since 1.2.6
|
||||
*/
|
||||
|
||||
defined( '_JEXEC' ) or die();
|
||||
|
||||
$state = $this->get('State');
|
||||
$message1 = $state->get('message');
|
||||
$message2 = $state->get('extmessage');
|
||||
?>
|
||||
<table class="adminform">
|
||||
<tbody>
|
||||
<?php if($message1) : ?>
|
||||
<tr>
|
||||
<th><?php echo JText::_($message1) ?></th>
|
||||
</tr>
|
||||
<?php endif; ?>
|
||||
<?php if($message2) : ?>
|
||||
<tr>
|
||||
<td><?php echo $message2; ?></td>
|
||||
</tr>
|
||||
<?php endif; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<p class="liveupdate-poweredby">
|
||||
Powered by <a href="https://www.akeebabackup.com/software/akeeba-live-update.html">Akeeba Live Update</a>
|
||||
</p>
|
||||
|
||||
<iframe style="width: 0px; height: 0px; border: none;" frameborder="0" marginheight="0" marginwidth="0" height="0" width="0"
|
||||
src="index.php?option=<?php echo JRequest::getCmd('option','')?>&view=<?php echo JRequest::getCmd('view','')?>&task=cleanup"></iframe>
|
||||
@ -0,0 +1,68 @@
|
||||
<?php
|
||||
/**
|
||||
*------------------------------------------------------------------------------
|
||||
* iCagenda v3 by Jooml!C - Events Management Extension for Joomla! 2.5 / 3.x
|
||||
*------------------------------------------------------------------------------
|
||||
*
|
||||
* @package LiveUpdate 2.1.5 - 2.2.1
|
||||
* @copyright Copyright (c)2010-2013 Nicholas K. Dionysopoulos / AkeebaBackup.com
|
||||
* @license GNU LGPLv3 or later <http://www.gnu.org/copyleft/lesser.html>
|
||||
*
|
||||
* @version 3.4.0 2014-12-21
|
||||
* @since 1.2.6
|
||||
*/
|
||||
/**
|
||||
* Specific strings iCagenda
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die();
|
||||
|
||||
$stability = JText::_('LIVEUPDATE_STABILITY_'.$this->updateInfo->stability);
|
||||
?>
|
||||
|
||||
<div class="liveupdate">
|
||||
|
||||
<div id="nagscreen">
|
||||
<h2><?php echo JText::_('LIVEUPDATE_NAGSCREEN_HEAD_ICAGENDA') ?></h2>
|
||||
|
||||
<p class="nagversioninfo">
|
||||
<?php echo JText::sprintf('LIVEUPDATE_NAGSCREEN_VERSION_ICAGENDA', $this->updateInfo->version, $stability) ?>
|
||||
</p>
|
||||
<?php if (JText::_('LIVEUPDATE_NAGSCREEN_BODY_ICAGENDA') != 'LIVEUPDATE_NAGSCREEN_BODY_ICAGENDA') : ?>
|
||||
<p class="nagtext">
|
||||
<?php echo JText::_('LIVEUPDATE_NAGSCREEN_BODY_ICAGENDA') ?>
|
||||
</p>
|
||||
<?php else : ?>
|
||||
<p class="nagtext">
|
||||
<?php echo JText::_('LIVEUPDATE_NAGSCREEN_BODY_PRE_RELEASES_ALERT_TOP') ?>
|
||||
</p>
|
||||
<p class="nagstability alert alert-danger">
|
||||
<strong><?php echo JText::_('LIVEUPDATE_NAGSCREEN_BODY_PRE_RELEASES_ICAGENDA_ALPHA') ?></strong>:
|
||||
<?php echo JText::_('LIVEUPDATE_NAGSCREEN_BODY_PRE_RELEASES_ALERT_ALPHA') ?>
|
||||
</p>
|
||||
<p class="nagstability alert alert-warning">
|
||||
<strong><?php echo JText::_('LIVEUPDATE_NAGSCREEN_BODY_PRE_RELEASES_ICAGENDA_BETA') ?></strong>:
|
||||
<?php echo JText::_('LIVEUPDATE_NAGSCREEN_BODY_PRE_RELEASES_ALERT_BETA') ?>
|
||||
</p>
|
||||
<p class="nagstability alert alert-info">
|
||||
<strong><?php echo JText::_('LIVEUPDATE_NAGSCREEN_BODY_PRE_RELEASES_ICAGENDA_RC') ?></strong>:
|
||||
<?php echo JText::_('LIVEUPDATE_NAGSCREEN_BODY_PRE_RELEASES_ALERT_RC') ?>
|
||||
</p>
|
||||
<p class="nagtext">
|
||||
<?php echo JText::_('LIVEUPDATE_NAGSCREEN_BODY_PRE_RELEASES_ALERT_BOTTOM') ?>
|
||||
</p>
|
||||
<?php endif; ?>
|
||||
<!--p>
|
||||
<small><?php echo JText::_('LIVEUPDATE_NAGSCREEN_FOOTER_ICAGENDA') ?>
|
||||
<a href="http://www.joomlic.com" target="_blank">www.joomlic.com</a></small>
|
||||
</p-->
|
||||
</div>
|
||||
<p class="liveupdate-buttons">
|
||||
<button class="btn btn-danger btn-large" onclick="window.location='<?php echo $this->runUpdateURL ?>'" ><?php echo JText::_('LIVEUPDATE_NAGSCREEN_BUTTON') ?></button>
|
||||
</p>
|
||||
|
||||
<p class="liveupdate-poweredby">
|
||||
Powered by <a href="https://www.akeebabackup.com/software/akeeba-live-update.html">Akeeba Live Update</a>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
@ -0,0 +1,153 @@
|
||||
<?php
|
||||
/**
|
||||
*------------------------------------------------------------------------------
|
||||
* iCagenda v3 by Jooml!C - Events Management Extension for Joomla! 2.5 / 3.x
|
||||
*------------------------------------------------------------------------------
|
||||
*
|
||||
* @package LiveUpdate 2.1.5 - 2.2.1
|
||||
* @copyright Copyright (c)2010-2013 Nicholas K. Dionysopoulos / AkeebaBackup.com
|
||||
* @license GNU LGPLv3 or later <http://www.gnu.org/copyleft/lesser.html>
|
||||
*
|
||||
* @version 3.4.0 2014-12-21
|
||||
* @since 1.2.6
|
||||
*/
|
||||
/**
|
||||
* Specific strings iCagenda
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die();
|
||||
|
||||
JHtml::_('behavior.framework');
|
||||
JHtml::_('behavior.modal');
|
||||
?>
|
||||
|
||||
<div class="liveupdate">
|
||||
|
||||
<?php if($this->updateInfo->releasenotes): ?>
|
||||
<div style="display:none;">
|
||||
<div id="liveupdate-releasenotes">
|
||||
<div class="liveupdate-releasenotes-text">
|
||||
<?php echo $this->updateInfo->releasenotes ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if(!$this->updateInfo->supported): ?>
|
||||
<div class="liveupdate-notsupported">
|
||||
<h3><?php echo JText::_('LIVEUPDATE_NOTSUPPORTED_HEAD') ?></h3>
|
||||
|
||||
<p><?php echo JText::_('LIVEUPDATE_NOTSUPPORTED_INFO'); ?></p>
|
||||
<p class="liveupdate-url">
|
||||
<?php echo $this->escape($this->updateInfo->extInfo->updateurl) ?>
|
||||
</p>
|
||||
<p><?php echo JText::sprintf('LIVEUPDATE_NOTSUPPORTED_ALTMETHOD', $this->escape($this->updateInfo->extInfo->title)); ?></p>
|
||||
<p class="liveupdate-buttons">
|
||||
<button onclick="window.location='<?php echo $this->requeryURL ?>'" ><?php echo JText::_('LIVEUPDATE_REFRESH_INFO') ?></button>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<?php elseif($this->updateInfo->stuck):?>
|
||||
<div class="liveupdate-stuck">
|
||||
<h3><?php echo JText::_('LIVEUPDATE_STUCK_HEAD') ?></h3>
|
||||
|
||||
<p><?php echo JText::_('LIVEUPDATE_STUCK_INFO'); ?></p>
|
||||
<p><?php echo JText::sprintf('LIVEUPDATE_NOTSUPPORTED_ALTMETHOD', $this->escape($this->updateInfo->extInfo->title)); ?></p>
|
||||
|
||||
<p class="liveupdate-buttons">
|
||||
<button onclick="window.location='<?php echo $this->requeryURL ?>'" ><?php echo JText::_('LIVEUPDATE_REFRESH_INFO') ?></button>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<?php else: ?>
|
||||
<?php
|
||||
$class = $this->updateInfo->hasUpdates ? 'hasupdates' : 'noupdates';
|
||||
$auth = $this->config->getAuthorization();
|
||||
$auth = empty($auth) ? '' : '?'.$auth;
|
||||
?>
|
||||
<?php if($this->needsAuth): ?>
|
||||
<p class="liveupdate-error-needsauth">
|
||||
<?php echo JText::_('LIVEUPDATE_ERROR_NEEDS_PRO_ID'); ?>
|
||||
</p>
|
||||
<?php endif; ?>
|
||||
<div class="liveupdate-<?php echo $class?>">
|
||||
<h3><?php echo JText::_('LIVEUPDATE_'.strtoupper($class).'_HEAD') ?><?php if ($class == 'hasupdates') : ?>!<?php endif; ?></h3>
|
||||
<div class="liveupdate-infotable">
|
||||
<div class="liveupdate-row row0">
|
||||
<span class="liveupdate-label"><?php echo JText::_('LIVEUPDATE_CURRENTVERSION') ?></span>
|
||||
<span class="liveupdate-data"><?php echo $this->updateInfo->extInfo->version ?></span>
|
||||
</div>
|
||||
<div class="liveupdate-row row1">
|
||||
<span class="liveupdate-label"><?php echo JText::_('LIVEUPDATE_LATESTVERSION') ?></span>
|
||||
<span class="liveupdate-data"><?php echo $this->updateInfo->version ?></span>
|
||||
</div>
|
||||
<div class="liveupdate-row row0">
|
||||
<span class="liveupdate-label"><?php echo JText::_('LIVEUPDATE_LATESTRELEASED') ?></span>
|
||||
<span class="liveupdate-data"><?php echo $this->updateInfo->date ?></span>
|
||||
</div>
|
||||
<div class="liveupdate-row row1">
|
||||
<span class="liveupdate-label"><?php echo JText::_('LIVEUPDATE_DOWNLOADURL') ?></span>
|
||||
<span class="liveupdate-data"><a href="<?php echo $this->updateInfo->downloadURL.$auth?>"><?php echo $this->escape($this->updateInfo->downloadURL)?></a></span>
|
||||
</div>
|
||||
<?php if(!empty($this->updateInfo->releasenotes) || !empty($this->updateInfo->infoURL)): ?>
|
||||
<div class="liveupdate-row row0">
|
||||
<span class="liveupdate-label"><?php echo JText::_('LIVEUPDATE_RELEASEINFO') ?></span>
|
||||
<span class="liveupdate-data">
|
||||
<?php if($this->updateInfo->releasenotes): ?>
|
||||
<a href="#" id="btnLiveUpdateReleaseNotes" class="btn btn-warning btn-small"><i class="icon-file"></i> <?php echo JText::_('LIVEUPDATE_RELEASENOTES') ?></a>
|
||||
<?php
|
||||
JHTML::_('behavior.framework');
|
||||
JHTML::_('behavior.modal');
|
||||
|
||||
$script = <<<ENDSCRIPT
|
||||
window.addEvent( 'domready' , function() {
|
||||
$('btnLiveUpdateReleaseNotes').addEvent('click', showLiveUpdateReleaseNotes);
|
||||
});
|
||||
|
||||
function showLiveUpdateReleaseNotes()
|
||||
{
|
||||
var liveupdateReleasenotes = $('liveupdate-releasenotes').clone();
|
||||
|
||||
SqueezeBox.fromElement(
|
||||
liveupdateReleasenotes, {
|
||||
handler: 'adopt',
|
||||
size: {
|
||||
x: 450,
|
||||
y: 350
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
ENDSCRIPT;
|
||||
$document = JFactory::getDocument();
|
||||
$document->addScriptDeclaration($script,'text/javascript');
|
||||
?>
|
||||
<?php endif; ?>
|
||||
<?php if($this->updateInfo->releasenotes && $this->updateInfo->infoURL): ?>
|
||||
<!-- • -->
|
||||
<?php endif; ?>
|
||||
<?php if($this->updateInfo->infoURL): ?>
|
||||
<!-- a class="btn btn-small" href="http://icagenda.joomlic.com" target="_blank"><?php echo JText::_('LIVEUPDATE_READMOREINFO') ?></a -->
|
||||
<?php endif; ?>
|
||||
<button class="btn btn-info btn-small" onclick="window.location='<?php echo $this->requeryURL ?>'" ><i class="icon-refresh"></i> <?php echo JText::_('LIVEUPDATE_REFRESH_INFO') ?></button>
|
||||
</span>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
|
||||
<p class="liveupdate-buttons">
|
||||
<?php if($this->updateInfo->hasUpdates):?>
|
||||
<?php $disabled = $this->needsAuth ? 'disabled="disabled"' : ''?>
|
||||
<button class="btn btn-success btn-large" <?php echo $disabled?> onclick="window.location='<?php echo $this->runUpdateURL ?>'" ><i class="icon-download"></i> <?php echo JText::_('LIVEUPDATE_DO_UPDATE') ?></button>
|
||||
<?php endif;?>
|
||||
<!--button class="btn btn-info btn-small" onclick="window.location='<?php echo $this->requeryURL ?>'" ><i class="icon-refresh"></i> <?php echo JText::_('LIVEUPDATE_REFRESH_INFO') ?></button-->
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<?php endif; ?>
|
||||
|
||||
<p class="liveupdate-poweredby">
|
||||
Powered by <a href="https://www.akeebabackup.com/software/akeeba-live-update.html">Akeeba Live Update</a>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
@ -0,0 +1,57 @@
|
||||
<?php
|
||||
/**
|
||||
*------------------------------------------------------------------------------
|
||||
* iCagenda v3 by Jooml!C - Events Management Extension for Joomla! 2.5 / 3.x
|
||||
*------------------------------------------------------------------------------
|
||||
*
|
||||
* @package LiveUpdate 2.1.5 - 2.2.1
|
||||
* @copyright Copyright (c)2010-2013 Nicholas K. Dionysopoulos / AkeebaBackup.com
|
||||
* @license GNU LGPLv3 or later <http://www.gnu.org/copyleft/lesser.html>
|
||||
*
|
||||
* @version 3.1.7 2013-08-28
|
||||
* @since 1.2.6
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die();
|
||||
?>
|
||||
|
||||
<div class="liveupdate">
|
||||
<div class="liveupdate-ftp">
|
||||
<p><?php echo JText::_('LIVEUPDATE_FTP_REQUIRED')?></p>
|
||||
<form name="adminForm" id="adminForm" action="index.php" method="get">
|
||||
<input name="option" value="<?php echo JRequest::getCmd('option','')?>" type="hidden" />
|
||||
<input name="view" value="<?php echo JRequest::getCmd('view','liveupdate')?>" type="hidden" />
|
||||
<input name="task" value="download" type="hidden" />
|
||||
<fieldset>
|
||||
<legend><?php echo JText::_('LIVEUPDATE_FTP') ?></legend>
|
||||
|
||||
<table class="adminform">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td width="120">
|
||||
<label for="username"><?php echo JText::_('LIVEUPDATE_FTPUSERNAME'); ?></label>
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" id="username" name="username" class="input_box" size="70" value="" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="120">
|
||||
<label for="password"><?php echo JText::_('LIVEUPDATE_FTPPASSWORD'); ?></label>
|
||||
</td>
|
||||
<td>
|
||||
<input type="password" id="password" name="password" class="input_box" size="70" value="" />
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<input type="submit" value="<?php echo JText::_('LIVEUPDATE_DOWNLOAD_AND_INSTALL'); ?>" />
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<p class="liveupdate-poweredby">
|
||||
Powered by <a href="https://www.akeebabackup.com/software/akeeba-live-update.html">Akeeba Live Update</a>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
@ -0,0 +1,357 @@
|
||||
<?php
|
||||
/**
|
||||
*------------------------------------------------------------------------------
|
||||
* iCagenda v3 by Jooml!C - Events Management Extension for Joomla! 2.5 / 3.x
|
||||
*------------------------------------------------------------------------------
|
||||
*
|
||||
* @package LiveUpdate 2.1.5 - 2.2.1
|
||||
* @copyright Copyright (c)2010-2013 Nicholas K. Dionysopoulos / AkeebaBackup.com
|
||||
* @license GNU LGPLv3 or later <http://www.gnu.org/copyleft/lesser.html>
|
||||
*
|
||||
* @version 3.1.7 2013-08-28
|
||||
* @since 1.2.6
|
||||
*/
|
||||
|
||||
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($force = false)
|
||||
{
|
||||
$updateInfo = $this->getUpdateInformation($force);
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
if(empty($updateInfo->version) && empty($updateInfo->date)) return 0;
|
||||
|
||||
// Use the version strategy to determine the availability of an update
|
||||
switch($config->getVersionStrategy()) {
|
||||
case 'newest':
|
||||
JLoader::import('joomla.utilities.date');
|
||||
if(empty($extInfo)) {
|
||||
$mine = new JDate('2000-01-01 00:00:00');
|
||||
} else {
|
||||
try {
|
||||
$mine = new JDate($extInfo['date']);
|
||||
} catch(Exception $e) {
|
||||
$mine = new JDate('2000-01-01 00:00:00');
|
||||
}
|
||||
}
|
||||
|
||||
$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']);
|
||||
|
||||
// If we are requested to forcibly reload the information, clear old data first
|
||||
if($force) {
|
||||
$this->storage->set('lastcheck', null);
|
||||
$this->storage->set('updatedata', null);
|
||||
$this->storage->save();
|
||||
}
|
||||
|
||||
// Fetch information from the cache
|
||||
$lastCheck = $this->storage->get('lastcheck', 0);
|
||||
$cachedData = $this->storage->get('updatedata', null);
|
||||
|
||||
if (!is_object($cachedData))
|
||||
{
|
||||
$cachedData = null;
|
||||
}
|
||||
|
||||
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', $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' => '',
|
||||
'infoURL' => '',
|
||||
'releasenotes' => ''
|
||||
);
|
||||
|
||||
// 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) != 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($url);
|
||||
}
|
||||
|
||||
/**
|
||||
* 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' => '',
|
||||
'infoURL' => '',
|
||||
'releasenotes' => ''
|
||||
);
|
||||
|
||||
// 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);
|
||||
|
||||
// Get the supported platforms
|
||||
$supportedPlatform = false;
|
||||
$versionParts = explode('.',JVERSION);
|
||||
$currentPlatform = $versionParts[0].'.'.$versionParts[1];
|
||||
|
||||
if(array_key_exists('platforms', $iniData)) {
|
||||
$rawPlatforms = explode(',', $iniData['platforms']);
|
||||
foreach($rawPlatforms as $platform) {
|
||||
$platform = trim($platform);
|
||||
if(substr($platform,0,7) != 'joomla/') {
|
||||
continue;
|
||||
}
|
||||
$platform = substr($platform, 7);
|
||||
if($currentPlatform == $platform) {
|
||||
$supportedPlatform = true;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// Lies, damn lies
|
||||
$supportedPlatform = true;
|
||||
}
|
||||
|
||||
if(!$supportedPlatform) {
|
||||
return $ret;
|
||||
}
|
||||
|
||||
$ret['version'] = array_key_exists('version', $iniData) ? $iniData['version'] : '';
|
||||
$ret['date'] = array_key_exists('date', $iniData) ? $iniData['date'] : '';
|
||||
$config = LiveUpdateConfig::getInstance();
|
||||
$auth = $config->getAuthorization();
|
||||
if(!array_key_exists('link', $iniData)) $iniData['link'] = '';
|
||||
$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;
|
||||
|
||||
if(array_key_exists('releasenotes', $iniData)) {
|
||||
$ret['releasenotes'] = $iniData['releasenotes'];
|
||||
}
|
||||
|
||||
if(array_key_exists('infourl', $iniData)) {
|
||||
$ret['infoURL'] = $iniData['infourl'];
|
||||
}
|
||||
|
||||
return $ret;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,110 @@
|
||||
<?php
|
||||
/**
|
||||
*------------------------------------------------------------------------------
|
||||
* iCagenda v3 by Jooml!C - Events Management Extension for Joomla! 2.5 / 3.x
|
||||
*------------------------------------------------------------------------------
|
||||
*
|
||||
* @package LiveUpdate 2.1.5 - 2.2.1
|
||||
* @copyright Copyright (c)2010-2013 Nicholas K. Dionysopoulos / AkeebaBackup.com
|
||||
* @license GNU LGPLv3 or later <http://www.gnu.org/copyleft/lesser.html>
|
||||
*
|
||||
* @version 3.1.7 2013-08-28
|
||||
* @since 1.2.6
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die();
|
||||
|
||||
JLoader::import('joomla.application.component.view');
|
||||
|
||||
if(!class_exists('JoomlaCompatView')) {
|
||||
if(interface_exists('JView')) {
|
||||
abstract class JoomlaCompatView extends JViewLegacy {}
|
||||
} else {
|
||||
class JoomlaCompatView extends JView {}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The Live Update MVC view
|
||||
*/
|
||||
class LiveUpdateView extends JoomlaCompatView
|
||||
{
|
||||
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 = rtrim(JURI::base(),'/').'/index.php?option='.JRequest::getCmd('option','').'&view='.JRequest::getCmd('view','liveupdate').'&force=1';
|
||||
$this->assign('requeryURL', $requeryURL);
|
||||
|
||||
$model = $this->getModel();
|
||||
|
||||
$extInfo = (object)$config->getExtensionInformation();
|
||||
JToolBarHelper::title($extInfo->title.' – '.JText::_('LIVEUPDATE_TASK_OVERVIEW'),'liveupdate');
|
||||
JToolBarHelper::back('JTOOLBAR_BACK', 'index.php?option='.JRequest::getCmd('option',''));
|
||||
|
||||
if(version_compare(JVERSION, '3.0', 'ge')) {
|
||||
$j3css = <<<ENDCSS
|
||||
div#toolbar div#toolbar-back button.btn span.icon-back::before {
|
||||
content: "";
|
||||
}
|
||||
ENDCSS;
|
||||
JFactory::getDocument()->addStyleDeclaration($j3css);
|
||||
}
|
||||
|
||||
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 'nagscreen':
|
||||
$this->setLayout('nagscreen');
|
||||
$this->assign('updateInfo', LiveUpdate::getUpdateInformation());
|
||||
$this->assign('runUpdateURL','index.php?option='.JRequest::getCmd('option','').'&view='.JRequest::getCmd('view','liveupdate').'&task=startupdate&skipnag=1');
|
||||
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);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,376 @@
|
||||
<?php
|
||||
/**
|
||||
*------------------------------------------------------------------------------
|
||||
* iCagenda v3 by Jooml!C - Events Management Extension for Joomla! 2.5 / 3.x
|
||||
*------------------------------------------------------------------------------
|
||||
*
|
||||
* @package LiveUpdate 2.1.5 - 2.2.1
|
||||
* @copyright Copyright (c)2010-2013 Nicholas K. Dionysopoulos / AkeebaBackup.com
|
||||
* @license GNU LGPLv3 or later <http://www.gnu.org/copyleft/lesser.html>
|
||||
*
|
||||
* @version 3.1.7 2013-08-28
|
||||
* @since 1.2.6
|
||||
*/
|
||||
|
||||
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);
|
||||
|
||||
JLoader::import('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' => '');
|
||||
}
|
||||
|
||||
try {
|
||||
$xml = new SimpleXMLElement($filename, LIBXML_NONET, true);
|
||||
} catch(Exception $e) {
|
||||
return array('version' => '', 'date' => '', 'xmlfile' => '');
|
||||
}
|
||||
|
||||
// Need to check for extension (since 1.6) and install (supported through 2.5)
|
||||
if ($xml->getName() != 'extension' && $xml->getName() != 'install') {
|
||||
unset($xml);
|
||||
return array('version' => '', 'date' => '', 'xmlfile' => '');
|
||||
}
|
||||
|
||||
$data['version'] = $xml->version ? (string) $xml->version : '';
|
||||
$data['date'] = $xml->creationDate ? (string) $xml->creationDate : '';
|
||||
$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);
|
||||
|
||||
JLoader::import('joomla.filesystem.folder');
|
||||
JLoader::import('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' => '');
|
||||
}
|
||||
|
||||
try {
|
||||
$xml = new SimpleXMLElement($filename, LIBXML_NONET, true);
|
||||
} catch(Exception $e) {
|
||||
return array('version' => '', 'date' => '', 'xmlfile' => '');
|
||||
}
|
||||
|
||||
// Need to check for extension (since 1.6) and install (supported through 2.5)
|
||||
if ($xml->getName() != 'extension' && $xml->getName() != 'install') {
|
||||
unset($xml);
|
||||
return array('version' => '', 'date' => '', 'xmlfile' => '');
|
||||
}
|
||||
|
||||
$data['version'] = $xml->version ? (string) $xml->version : '';
|
||||
$data['date'] = $xml->creationDate ? (string) $xml->creationDate : '';
|
||||
$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);
|
||||
|
||||
JLoader::import('joomla.filesystem.folder');
|
||||
JLoader::import('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' => '');
|
||||
}
|
||||
|
||||
try {
|
||||
$xml = new SimpleXMLElement($filename, LIBXML_NONET, true);
|
||||
} catch(Exception $e) {
|
||||
return array('version' => '', 'date' => '', 'xmlfile' => '');
|
||||
}
|
||||
|
||||
// Need to check for extension (since 1.6) and install (supported through 2.5)
|
||||
if ($xml->getName() != 'extension' && $xml->getName() != 'install') {
|
||||
unset($xml);
|
||||
return array('version' => '', 'date' => '', 'xmlfile' => '');
|
||||
}
|
||||
|
||||
$data['version'] = $xml->version ? (string) $xml->version : '';
|
||||
$data['date'] = $xml->creationDate ? (string) $xml->creationDate : '';
|
||||
$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);
|
||||
|
||||
JLoader::import('joomla.filesystem.folder');
|
||||
JLoader::import('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' => '');
|
||||
}
|
||||
|
||||
try {
|
||||
$xml = new SimpleXMLElement($filename, LIBXML_NONET, true);
|
||||
} catch(Exception $e) {
|
||||
return array('version' => '', 'date' => '', 'xmlfile' => '');
|
||||
}
|
||||
|
||||
// Need to check for extension (since 1.6) and install (supported through 2.5)
|
||||
if ($xml->getName() != 'extension' && $xml->getName() != 'install') {
|
||||
unset($xml);
|
||||
return array('version' => '', 'date' => '', 'xmlfile' => '');
|
||||
}
|
||||
|
||||
$data['version'] = $xml->version ? (string) $xml->version : '';
|
||||
$data['date'] = $xml->creationDate ? (string) $xml->creationDate : '';
|
||||
$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);
|
||||
|
||||
JLoader::import('joomla.filesystem.folder');
|
||||
JLoader::import('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' => '');
|
||||
}
|
||||
|
||||
try {
|
||||
$xml = new SimpleXMLElement($filename, LIBXML_NONET, true);
|
||||
} catch(Exception $e) {
|
||||
return array('version' => '', 'date' => '', 'xmlfile' => '');
|
||||
}
|
||||
|
||||
// Need to check for extension (since 1.6) and install (supported through 2.5)
|
||||
if ($xml->getName() != 'extension') {
|
||||
unset($xml);
|
||||
return array('version' => '', 'date' => '', 'xmlfile' => '');
|
||||
}
|
||||
|
||||
$data['version'] = $xml->version ? (string) $xml->version : '';
|
||||
$data['date'] = $xml->creationDate ? (string) $xml->creationDate : '';
|
||||
$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)
|
||||
{
|
||||
JLoader::import('joomla.filesystem.folder');
|
||||
$files = JFolder::files($path, '\.xml$', false, true);
|
||||
if(!empty($files)) foreach($files as $filename) {
|
||||
try {
|
||||
$xml = new SimpleXMLElement($filename, LIBXML_NONET, true);
|
||||
} catch(Exception $e) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// Check for extension (since 1.6) and install (supported through 2.5)
|
||||
if(($xml->getName() != 'extension' && $xml->getName() != 'install')) continue;
|
||||
unset($xml);
|
||||
return $filename;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,40 @@
|
||||
<?php
|
||||
/**
|
||||
*------------------------------------------------------------------------------
|
||||
* iCagenda v3 by Jooml!C - Events Management Extension for Joomla! 2.5 / 3.x
|
||||
*------------------------------------------------------------------------------
|
||||
*
|
||||
* @package LiveUpdate 2.1.5
|
||||
* @copyright Copyright ©2011-2013 Nicholas K. Dionysopoulos / AkeebaBackup.com
|
||||
* @license GNU LGPLv3 or later <http://www.gnu.org/copyleft/lesser.html>
|
||||
*
|
||||
* @version 3.1.7 2013-08-28
|
||||
* @since 1.2.6
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die();
|
||||
|
||||
/**
|
||||
* Configuration class for your extension's updates.
|
||||
*/
|
||||
class LiveUpdateConfig extends LiveUpdateAbstractConfig
|
||||
{
|
||||
var $_extensionName = 'com_icagenda';
|
||||
var $_extensionTitle = 'iCagenda Release System';
|
||||
var $_updateURL = 'https://www.joomlic.com/index.php?option=com_ars&view=update&format=ini&id=2';
|
||||
var $_requiresAuthorization = false;
|
||||
var $_versionStrategy = 'newest';
|
||||
var $_storageAdapter = 'file';
|
||||
var $_storageConfig = array('path' => JPATH_CACHE);
|
||||
|
||||
public function __construct() {
|
||||
JLoader::import('joomla.filesystem.file');
|
||||
|
||||
// Should I use our private CA store?
|
||||
if(@file_exists(dirname(__FILE__).'/../assets/cacert.pem')) {
|
||||
$this->_cacerts = dirname(__FILE__).'/../assets/cacert.pem';
|
||||
}
|
||||
|
||||
parent::__construct();
|
||||
}
|
||||
}
|
||||
@ -0,0 +1 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title></title></head><body></body></html>
|
||||
@ -0,0 +1,56 @@
|
||||
; Akeeba Live Update
|
||||
; Copyright (c)2010-2013 Nicholas K. Dionysopoulos / AkeebaBackup.com
|
||||
; Licensed under the GNU LGPLv3 or later <http://www.gnu.org/copyleft/lesser.html>
|
||||
|
||||
; LIVEUPDATE_TASK_OVERVIEW="Live Update"
|
||||
|
||||
; 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_NOTSUPPORTED_ALTMETHOD="You can always update <var>%s</var> by visiting our site manually, downloading the latest release and installing it using Joomla!'s extension installer."
|
||||
|
||||
; 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 "_QQ_"Refresh update information"_QQ_" 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="A new version is available"
|
||||
; LIVEUPDATE_NOUPDATES_HEAD="You already have the latest version"
|
||||
LIVEUPDATE_CURRENTVERSION="инсталирана версия"
|
||||
LIVEUPDATE_LATESTVERSION="последна налична версия"
|
||||
; LIVEUPDATE_LATESTRELEASED="Latest release date"
|
||||
LIVEUPDATE_DOWNLOADURL="директно сваляне от 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.<br/><br/>Please provide the FTP username and password below to proceed with the update."
|
||||
LIVEUPDATE_FTP="FTP информация"
|
||||
LIVEUPDATE_FTPUSERNAME="FTP потребителско име"
|
||||
LIVEUPDATE_FTPPASSWORD="FTP парола"
|
||||
LIVEUPDATE_DOWNLOAD_AND_INSTALL="изтегли и инсталирай актуализацията"
|
||||
|
||||
; 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_EXTRACT_FAILED="Extracting the update package failed. Please try updating the extension manually."
|
||||
|
||||
; LIVEUPDATE_INVALID_PACKAGE_TYPE="Invalid package type. The update can not proceed."
|
||||
LIVEUPDATE_INSTALLEXT="инсталирайте %s %s"
|
||||
LIVEUPDATE_ERROR="грешка"
|
||||
LIVEUPDATE_SUCCESS="успех"
|
||||
|
||||
; LIVEUPDATE_ICON_UNSUPPORTED="Live Update not supported"
|
||||
; LIVEUPDATE_ICON_CRASHED="Live Update crashed"
|
||||
LIVEUPDATE_ICON_CURRENT="Вие имате последната версия"
|
||||
LIVEUPDATE_ICON_UPDATES="НАМЕРЕНА Е АКТУАЛИЗАЦИЯ! ЩРАКНЕТЕ, ЗА ДА АКТУАЛИЗИРАТЕ."
|
||||
|
||||
LIVEUPDATE_RELEASEINFO="информация"
|
||||
; LIVEUPDATE_RELEASENOTES="Release notes"
|
||||
LIVEUPDATE_READMOREINFO="прочети още"
|
||||
|
||||
LIVEUPDATE_NAGSCREEN_HEAD="ПРЕДУПРЕЖДЕНИЕ! Вие се опитвате да инсталирате нестабилна версия."
|
||||
; LIVEUPDATE_NAGSCREEN_BODY="You are about to install an unstable version (%s - %s). Unstable versions may have undergone minimal or no testing and contain bugs which may have an serious adverse to the stability and functionality of your web site. If you are not sure about what you are about to do, please close this browser window. If you are absolutely certain you understand the risks involved with the installation of unstable releases, please click the button below to continue the installation of this unstable release."
|
||||
LIVEUPDATE_NAGSCREEN_BUTTON="разбирам какви са възможните рискове. Продължи с инсталацията."
|
||||
|
||||
LIVEUPDATE_STABILITY_ALPHA="алфа версия"
|
||||
LIVEUPDATE_STABILITY_BETA="бета версия"
|
||||
; LIVEUPDATE_STABILITY_RC="RC"
|
||||
LIVEUPDATE_STABILITY_STABLE="стабилна версия"
|
||||
; LIVEUPDATE_STABILITY_SVN="SVN"
|
||||
@ -0,0 +1,56 @@
|
||||
; Akeeba Live Update
|
||||
; Copyright (c)2010-2013 Nicholas K. Dionysopoulos / AkeebaBackup.com
|
||||
; Licensed under the GNU LGPLv3 or later <http://www.gnu.org/copyleft/lesser.html>
|
||||
|
||||
LIVEUPDATE_TASK_OVERVIEW="Nadogradnja uživo"
|
||||
|
||||
LIVEUPDATE_NOTSUPPORTED_HEAD="Nadogradnaj uživo nije podržana na ovo serveru"
|
||||
LIVEUPDATE_NOTSUPPORTED_INFO="Vaš server ukazuje da Nadogradnja uživo nije podržana. Molimo kontaktirajte vaš host i pitajte da omoguće cURL PHP ekstenziju ili aktiviraju URL fopen() omotače. Ako su ove već omogućene, molimo da ih pitate da podese vatreni zid kako bi dozvolio pristup sljedećem URL-u:"
|
||||
LIVEUPDATE_NOTSUPPORTED_ALTMETHOD="Možete uvijek nadograditi <var>%s</var> tako što će te ručno posjetiti našu stanicu, gdje možete preuzeti posljednje izdanje i instalirati upotrebom Joomla! instalera za ekstenzije."
|
||||
|
||||
LIVEUPDATE_STUCK_HEAD="Nadogradnja uživo se označila kao srušena"
|
||||
LIVEUPDATE_STUCK_INFO="Nadogradnja uživo je odredila da se srušila posljednji put pri pokušaju da kontaktira server za nadogradnu. Ovo pretežno ukazuje na host koji aktivno blokira komunikaciju sa eksternim stranicama. Ako želite pokušati povući informacije o nadogradnji, molimo kliknite na "_QQ_"Osvježi informacije o nadogradnji"_QQ_" dugme ispod. Ako to rezultira sa praznom stranicom, molimo kontaktirajte svoj host i prijavite ovaj problem."
|
||||
|
||||
LIVEUPDATE_ERROR_NEEDSAUTH="Morate obezbijediti vaše korisničko ime/šifru ili ID za preuzimanje na parametre komponente prije pokušavanja nadogradnej na zadnje izdanje. Dugme za nadogradnju će ostati isključeno sve dok to ne učinite."
|
||||
LIVEUPDATE_HASUPDATES_HEAD="Dostupna je nova verzija"
|
||||
LIVEUPDATE_NOUPDATES_HEAD="Već posjedujete posljednju verziju"
|
||||
LIVEUPDATE_CURRENTVERSION="Instalirana verzija"
|
||||
LIVEUPDATE_LATESTVERSION="Posljednja verzija"
|
||||
LIVEUPDATE_LATESTRELEASED="Datum posljednjeg izdanja"
|
||||
LIVEUPDATE_DOWNLOADURL="Direktan URL za preuzimanje"
|
||||
|
||||
LIVEUPDATE_REFRESH_INFO="Osvježi informacije o nadogradnji"
|
||||
LIVEUPDATE_DO_UPDATE="Nadogradi na posljednju verziju"
|
||||
|
||||
LIVEUPDATE_FTP_REQUIRED="Nadogradnja uživo je odredila da je potrebna upotreba FTP-a kako bi se preuzela i instalirala vaša nadogradnja, ali niste snimili vaše FTP informacije za prijavu u Joomla! globalnoj konfiguraciji.<br/><br/>Molimo da obezbjedite FTP korisničko ime i šifru ispod kako bi nastavili sa nadogradnjom."
|
||||
LIVEUPDATE_FTP="FTP informacija"
|
||||
LIVEUPDATE_FTPUSERNAME="FTP korisničko ime"
|
||||
LIVEUPDATE_FTPPASSWORD="FTP šifra"
|
||||
LIVEUPDATE_DOWNLOAD_AND_INSTALL="Preuzmi i instaliraj nadogradnju"
|
||||
|
||||
LIVEUPDATE_DOWNLOAD_FAILED="Preuzimanje paketa nadogradnje je neuspješno. Provjerite da li je vaš privremeni direktorij zapisiv ili da li imate uključene Joomla! FTP opcije na vašoj globalnoj konfiguraciji za stranicu."
|
||||
LIVEUPDATE_EXTRACT_FAILED="Otpakivanje paketa nadogradnje neuspješno. Molimo da pokušate ručno nadograditi ekstenziju."
|
||||
|
||||
LIVEUPDATE_INVALID_PACKAGE_TYPE="Nevažeći tip paketa. Nadogradnja se ne može nastaviti."
|
||||
LIVEUPDATE_INSTALLEXT="Instaliraj %s %s"
|
||||
LIVEUPDATE_ERROR="Greška"
|
||||
LIVEUPDATE_SUCCESS="Uspjeh"
|
||||
|
||||
LIVEUPDATE_ICON_UNSUPPORTED="Nadogradnja uživo nije podržana"
|
||||
LIVEUPDATE_ICON_CRASHED="Nadogradnja uživo se srušila"
|
||||
LIVEUPDATE_ICON_CURRENT="Posjedujete posljednju verziju"
|
||||
LIVEUPDATE_ICON_UPDATES="NADOGRADNJA PRONAĐENA! KLIKNITE ZA NADOGRADNJU."
|
||||
|
||||
LIVEUPDATE_RELEASEINFO="Informacije"
|
||||
LIVEUPDATE_RELEASENOTES="Obavijesti o izdanju"
|
||||
LIVEUPDATE_READMOREINFO="Pročitaj više"
|
||||
|
||||
LIVEUPDATE_NAGSCREEN_HEAD="UPOZORENJE! Upravo će te instalirati nestabilnu verziju."
|
||||
LIVEUPDATE_NAGSCREEN_BODY="Upravo će te instalirati nestabilnu verziju (%s - %s). Nestabilne verzije su prošle minimalno ili nikakvo testiranje i sadrže greške koje štete stabilnosti i funkcionalnosti vaše web-stranice. Ako niste sigurno šta će te raditi, molimo da zatvorite prozor preglednika. Ako se potpuno sigurni da razumijete rizike uključene za instalacijom nestabilnih izdanja, molimo da kliknete dugme ispod kako bi nastavili instalaciju ovog nestabilnog izdanja."
|
||||
LIVEUPDATE_NAGSCREEN_BUTTON="Razumijem rizike. Nastavi sa instalacijom."
|
||||
|
||||
LIVEUPDATE_STABILITY_ALPHA="Alfa"
|
||||
LIVEUPDATE_STABILITY_BETA="Beta"
|
||||
LIVEUPDATE_STABILITY_RC="RC"
|
||||
LIVEUPDATE_STABILITY_STABLE="Stabilna"
|
||||
LIVEUPDATE_STABILITY_SVN="SVN"
|
||||
@ -0,0 +1,56 @@
|
||||
; Akeeba Live Update
|
||||
; Copyright (c)2010-2013 Nicholas K. Dionysopoulos / AkeebaBackup.com
|
||||
; Licensed under the GNU LGPLv3 or later <http://www.gnu.org/copyleft/lesser.html>
|
||||
|
||||
LIVEUPDATE_TASK_OVERVIEW="Aktualizace"
|
||||
|
||||
LIVEUPDATE_NOTSUPPORTED_HEAD="Tento server nepodporuje kontrolu aktualizací"
|
||||
LIVEUPDATE_NOTSUPPORTED_INFO="Nastavení Vašeho serveru nedovoluje spustit aktualizaci. Kontaktujte prosím provozovatele serveru a požádejte ho o zprovoznění PHP rozšíření cUrl nebo o povolení možnosti allow_url_fopen. Pokud je jedna z těchto možností již povolena, požádejte o prověření nastavení firewall, zda je povolena komunikace s následující adresou URL:"
|
||||
LIVEUPDATE_NOTSUPPORTED_ALTMETHOD="Aktualizaci rozšíření <var>%s</var> můžete provést ručně, stažením nejnovější verze z našich stránek a instalací ve správci rozšíření."
|
||||
|
||||
LIVEUPDATE_STUCK_HEAD="Poslední pokus o získání aktualizace se nezdařil"
|
||||
LIVEUPDATE_STUCK_INFO="Poslední pokus o komunikaci se serverem aktualizací se nezdařil. Obvykle je to způsobeno nastavením serveru, které neumožňuje komunikaci s jinými servery. Pro opětovný pokus získání informací o aktualizacích stiskněte tlačítko "_QQ_"Aktualizovat informace"_QQ_". Pokud se Vám po stisknutí tohoto tlačítka zobrazí prázdná bílá stránka, kontaktujte prosím provozovatele serveru."
|
||||
|
||||
LIVEUPDATE_ERROR_NEEDSAUTH="Tato aktualizace vyžaduje vyplněné Přihlašovací jméno a Heslo, nebo Klientské ID (Download ID) v nastavení komponenty. Po vyplnění potřebných informací bude povoleno tlačítko Aktualizovat."
|
||||
LIVEUPDATE_HASUPDATES_HEAD="Je k dispozici nová verze"
|
||||
LIVEUPDATE_NOUPDATES_HEAD="Instalovaná verze je aktuální"
|
||||
LIVEUPDATE_CURRENTVERSION="Instalovaná verze"
|
||||
LIVEUPDATE_LATESTVERSION="Nejnovější verze"
|
||||
LIVEUPDATE_LATESTRELEASED="Datum nejnovější verze"
|
||||
LIVEUPDATE_DOWNLOADURL="Adresa pro ruční stažení"
|
||||
|
||||
LIVEUPDATE_REFRESH_INFO="Najít aktualizace"
|
||||
LIVEUPDATE_DO_UPDATE="Aktualizovat"
|
||||
|
||||
LIVEUPDATE_FTP_REQUIRED="Pro dokončení instalace na Vašem serveru je nutné využít vrstvu FTP, v globálním nastavení Joomla! však nejsou vyplněny všechna potřebná nastavení.<br/><br/>Vyplňte prosím informace pro připojení k serveru FTP níže."
|
||||
LIVEUPDATE_FTP="Nastavení FTP"
|
||||
LIVEUPDATE_FTPUSERNAME="FTP Přihlašovací jméno"
|
||||
LIVEUPDATE_FTPPASSWORD="FTP Heslo"
|
||||
LIVEUPDATE_DOWNLOAD_AND_INSTALL="Stáhnout a nainstalovat aktualizaci"
|
||||
|
||||
LIVEUPDATE_DOWNLOAD_FAILED="Nepodařilo se stáhnout aktualizační balíček. Ověřte prosím, zda je Vaše dočasná složka zapisovatelná, nebo zda máte povolenu Vrstvu FTP v globálním nastavení Joomla!."
|
||||
LIVEUPDATE_EXTRACT_FAILED="Nepodařilo se rozbalit aktualizační balíček. Zkuste prosím rozšíření aktualizovat ručně."
|
||||
|
||||
LIVEUPDATE_INVALID_PACKAGE_TYPE="Nebyl rozpoznán formát aktualizačního balíčku. V aktualizaci nelze pokračovat."
|
||||
LIVEUPDATE_INSTALLEXT="Instalovat %s %s"
|
||||
LIVEUPDATE_ERROR="Chyba"
|
||||
LIVEUPDATE_SUCCESS="Dokončeno"
|
||||
|
||||
LIVEUPDATE_ICON_UNSUPPORTED="Aktualizace není podporována"
|
||||
LIVEUPDATE_ICON_CRASHED="Aktualizace skončila chybou"
|
||||
LIVEUPDATE_ICON_CURRENT="Vaše verze je aktuální"
|
||||
LIVEUPDATE_ICON_UPDATES="NALEZENA NOVÁ VERZE! AKTUALIZOVAT"
|
||||
|
||||
LIVEUPDATE_RELEASEINFO="Informace"
|
||||
LIVEUPDATE_RELEASENOTES="Poznámky k verzi"
|
||||
LIVEUPDATE_READMOREINFO="Podrobnosti"
|
||||
|
||||
LIVEUPDATE_NAGSCREEN_HEAD="UPOZORNĚNÍ! Chystáte se instalovat nestabilní verzi."
|
||||
LIVEUPDATE_NAGSCREEN_BODY="Chystáte se instalovat nestabilní verzi (%s - %s). Nestabilní verze jsou minimálně, nebo nejsou vůbec testovány a mohou obsahovat chyby, ovlivňující stabilitu a funkčnost Vašich stránek. Pokud si nejste jisti tím co děláte, uzavřete prosím okno prohlížeče. Pokud jste si naprosto jisti a rozumíte rizikům spojeným s instalací nestabilní verze, klikněte na tlačítko níže pro pokračování v instalaci této nestabilní verze."
|
||||
LIVEUPDATE_NAGSCREEN_BUTTON="Rozumím rizikům. Pokračovat v instalaci."
|
||||
|
||||
LIVEUPDATE_STABILITY_ALPHA="Alfa"
|
||||
LIVEUPDATE_STABILITY_BETA="Beta"
|
||||
LIVEUPDATE_STABILITY_RC="RC"
|
||||
LIVEUPDATE_STABILITY_STABLE="Stable"
|
||||
LIVEUPDATE_STABILITY_SVN="SVN"
|
||||
@ -0,0 +1,56 @@
|
||||
; Akeeba Live Update
|
||||
; Copyright (c)2010-2013 Nicholas K. Dionysopoulos / AkeebaBackup.com
|
||||
; Licensed under the GNU LGPLv3 or later <http://www.gnu.org/copyleft/lesser.html>
|
||||
|
||||
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 <var>%s</var> ved at besøge vores hjemmeside manuelt og hente den seneste udgivelse og derefter installere den ved at bruge Joomla!'s udvidelsesinstalleren."
|
||||
|
||||
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å "_QQ_"Opdatér opdateringsinformation"_QQ_" herunder. Hvis det resulterer i en blank side, så kontakt venligst din udbyder og rapportér dette problem."
|
||||
|
||||
LIVEUPDATE_ERROR_NEEDSAUTH="Du skal angive dit brugernavn/adgangskode eller Overførsel's ID i komponenten's 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 link"
|
||||
|
||||
LIVEUPDATE_REFRESH_INFO="Opdatér opdateringsinformation"
|
||||
LIVEUPDATE_DO_UPDATE="Opdatér til seneste version"
|
||||
|
||||
LIVEUPDATE_FTP_REQUIRED="Live opdatering har opdaget at den skal bruge FTP for at kunne overføre og installere din opdatering, men du har ikke gemt en FTP log ind information i din Joomla!'s konfiguration.<br/><br/>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="Overfør og installér opdatering"
|
||||
|
||||
LIVEUPDATE_DOWNLOAD_FAILED="Overførsel af opdateringspakken fejlede. Vær venligst sikker på der kan skrives til din midlertidige mappe og at du har aktiveret Joomla!'s FTP mulighed i Joomla!'s konfiguration."
|
||||
LIVEUPDATE_EXTRACT_FAILED="Udpakning af opdateringspakken fejlede. Opdatér venligst udvidelsen manuelt."
|
||||
|
||||
LIVEUPDATE_INVALID_PACKAGE_TYPE="Ugyldig pakketype. Opdateringen kan ikke fortsætte."
|
||||
LIVEUPDATE_INSTALLEXT="Installér %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."
|
||||
|
||||
; LIVEUPDATE_RELEASEINFO="Information"
|
||||
; LIVEUPDATE_RELEASENOTES="Release notes"
|
||||
; LIVEUPDATE_READMOREINFO="Read more"
|
||||
|
||||
; LIVEUPDATE_NAGSCREEN_HEAD="WARNING! You are about to install an unstable version."
|
||||
; LIVEUPDATE_NAGSCREEN_BODY="You are about to install an unstable version (%s - %s). Unstable versions may have undergone minimal or no testing and contain bugs which may have an serious adverse to the stability and functionality of your web site. If you are not sure about what you are about to do, please close this browser window. If you are absolutely certain you understand the risks involved with the installation of unstable releases, please click the button below to continue the installation of this unstable release."
|
||||
; LIVEUPDATE_NAGSCREEN_BUTTON="I understand the risks. Continue with the installation."
|
||||
|
||||
; LIVEUPDATE_STABILITY_ALPHA="Alpha"
|
||||
; LIVEUPDATE_STABILITY_BETA="Beta"
|
||||
; LIVEUPDATE_STABILITY_RC="RC"
|
||||
; LIVEUPDATE_STABILITY_STABLE="Stable"
|
||||
; LIVEUPDATE_STABILITY_SVN="SVN"
|
||||
@ -0,0 +1,56 @@
|
||||
; Akeeba Live Update
|
||||
; Copyright (c)2010-2013 Nicholas K. Dionysopoulos / AkeebaBackup.com
|
||||
; Licensed under the GNU LGPLv3 or later <http://www.gnu.org/copyleft/lesser.html>
|
||||
|
||||
LIVEUPDATE_TASK_OVERVIEW="Echtzeitaktualisierung"
|
||||
|
||||
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:"_QQ_""
|
||||
LIVEUPDATE_NOTSUPPORTED_ALTMETHOD="Sie können immer aktualisieren <var>%s</var> indem Sie unsere Internetseite besuchen, die neueste Version herunterladen und ganz normal installieren."
|
||||
|
||||
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 "_QQ_"Aktualisierungsinformationen abrufen"_QQ_". Sollte dieser Versuch auf einer weißen Seite enden, melden Sie diesen Fehler ihrem Anbieter."
|
||||
|
||||
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_HASUPDATES_HEAD="Es gibt eine neue Version"
|
||||
LIVEUPDATE_NOUPDATES_HEAD="Sie haben die aktuelle Version"
|
||||
LIVEUPDATE_CURRENTVERSION="Installierte Version"
|
||||
LIVEUPDATE_LATESTVERSION="Neueste Version"
|
||||
LIVEUPDATE_LATESTRELEASED="Neuestes Veröffentlichungsdatum"
|
||||
LIVEUPDATE_DOWNLOADURL="Direkte Download-URL"
|
||||
|
||||
LIVEUPDATE_REFRESH_INFO="Aktualisierungsinformationen abrufen"
|
||||
LIVEUPDATE_DO_UPDATE="Auf die neueste Version aktualisieren"
|
||||
|
||||
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.<br/><br/>BItte geben Sie Ihre FTP-Daten ein, bevor Sie mit der Aktualisierung fortfahren."
|
||||
LIVEUPDATE_FTP="FTP Informationen"
|
||||
LIVEUPDATE_FTPUSERNAME="FTP Benutzername"
|
||||
LIVEUPDATE_FTPPASSWORD="FTP Passwort"
|
||||
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_EXTRACT_FAILED="Das Auspacken des Aktualisierungspakets ist fehlgeschlagen. Bitte aktualisieren Sie die Erweiterung manuell."
|
||||
|
||||
LIVEUPDATE_INVALID_PACKAGE_TYPE="Falscher Aktualisierungspakettyp. Die Aktualisierung kann nicht durchgeführt werden."
|
||||
LIVEUPDATE_INSTALLEXT="Installiere %s %s"
|
||||
LIVEUPDATE_ERROR="Fehler"
|
||||
LIVEUPDATE_SUCCESS="Erfolg"
|
||||
|
||||
LIVEUPDATE_ICON_UNSUPPORTED="Echtzeitaktualisierung nicht unterstützt"
|
||||
LIVEUPDATE_ICON_CRASHED="Live Update abgestürzt"
|
||||
LIVEUPDATE_ICON_CURRENT="Sie haben die aktuelle Version"
|
||||
LIVEUPDATE_ICON_UPDATES="AKTUALISIERUNG GEFUNDEN! JETZT AKTUALISIEREN."
|
||||
|
||||
LIVEUPDATE_RELEASEINFO="Information"
|
||||
LIVEUPDATE_RELEASENOTES="Infos zur Veröffentlichung"
|
||||
LIVEUPDATE_READMOREINFO="Weiterlesen"
|
||||
|
||||
LIVEUPDATE_NAGSCREEN_HEAD="ACHTUNG! Sie sind dabei, eine instabile Version zu installieren."
|
||||
LIVEUPDATE_NAGSCREEN_BODY="Sie sind dabei, eine instabile Version zu installieren (%s - %s). Instabile Versionen sind noch in Entwicklung oder nicht final getestet und können Bugs enthalten, die die Stabilität und Funktionalität Ihrer Webseite beeinträchtigen können. Wenn Sie nicht sicher sind, was Sie tun sollen, dann schließen Sie dieses Browserfenster. Sollten Sie absolut sicher sein, dass Sie das Risiko eingehen und die möglichen Folgen einer unfertigen Version auf eigene Gefahr in Kauf nehmen wollen, klicken Sie auf den unten stehenden Button um die instabile Version zu installieren."
|
||||
LIVEUPDATE_NAGSCREEN_BUTTON="Ich kenne die Risiken. Mit der Installation fortfahren."
|
||||
|
||||
; LIVEUPDATE_STABILITY_ALPHA="Alpha"
|
||||
; LIVEUPDATE_STABILITY_BETA="Beta"
|
||||
; LIVEUPDATE_STABILITY_RC="RC"
|
||||
; LIVEUPDATE_STABILITY_STABLE="Stable"
|
||||
; LIVEUPDATE_STABILITY_SVN="SVN"
|
||||
@ -0,0 +1,56 @@
|
||||
; Akeeba Live Update
|
||||
; Copyright (c)2010-2013 Nicholas K. Dionysopoulos / AkeebaBackup.com
|
||||
; Licensed under the GNU LGPLv3 or later <http://www.gnu.org/copyleft/lesser.html>
|
||||
|
||||
LIVEUPDATE_TASK_OVERVIEW="Απευθείας Ενημέρωση"
|
||||
|
||||
LIVEUPDATE_NOTSUPPORTED_HEAD="Η Απευθείας Ενημέρωση δεν υποστηρίζεται από αυτόν τον διακομιστή"
|
||||
LIVEUPDATE_NOTSUPPORTED_INFO="Ο διακομιστής σας δείχνει ότι η Απευθείας Ενημέρωση δεν υποστηρίζεται. Παρακαλώ επικοινωνήστε με τον πάροχο φιλοξενίας σας και ζητήστε του να ενεργοποιήσει την επέκταση cURL της PHP ή τους URL fopen() wrappers. Εάν είναι ήδη ενεργοποιημένα, παρακαλώ ζητήστε του να ανοίξει το τείχος ασφαλείας ώστε να επιτρέπει την πρόσβαση στην παρακάτω διεύθυνση URL:"_QQ_""
|
||||
LIVEUPDATE_NOTSUPPORTED_ALTMETHOD="Μπορείτε πάντα να ενημερώστε το λογισμικό <var>%s</var> επισκεπτόμενοι τον ιστότοπό μας, κατεβάζοντας την τελευταία έκδοση και εγκαθιστόντας την με την εγκατάσταση εφαρμογών του Joomla!."
|
||||
|
||||
LIVEUPDATE_STUCK_HEAD="Η Απευθείας Ενημέρωση ανίχνευσε αποτυχία λειτουργίας"
|
||||
LIVEUPDATE_STUCK_INFO="Η Απευθείας Ενημέρωση εντόπισε ότι η τελευταία απόπειρα επικοινωνίας με τον διακομιστή ενημερώσεων κατέληξε σε κόλλημα. Αυτό συνήθως υποδυκνείει έναν πάροχο φιλοξενίας που μπλοκάρει ενεργά τις προσπάθειες επικοινωνίας με εξωετρικούς ιστοχώρους. Εάν θα θέλατε να δοκιμάσετε να ξαναπροσπαθήσουμε να λάβουμε τις πληροφορίες ενημέρωσεις, παρακαλώ κάντε κλικ στο κουμπί "_QQ_"Ανανέωση πληροφοριών ενημερώσεων"_QQ_" πιο κάτω. Εάν αυτό οδηγήσει σε λευκή σελίδα, παρακαλώ επικοινωνήστε με τον πάροχο φιλοξενίας και αναφέρετε αυτό το πρόβλημα."
|
||||
|
||||
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!.<br/><br/>Παρακαλώ εισάγετε το όνομα χρήστη και το συνθηματικό για το 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="ΒΡΕΘΗΚΕ ΕΝΗΜΕΡΩΣΗ! ΚΑΝΤΕ ΚΛΙΚ ΓΙΑ ΑΝΑΒΑΘΜΙΣΗ."
|
||||
|
||||
LIVEUPDATE_RELEASEINFO="Πληροφορίες"
|
||||
LIVEUPDATE_RELEASENOTES="Σημειώσεις έκδοσης"
|
||||
LIVEUPDATE_READMOREINFO="Διαβάστε περισσότερα"
|
||||
|
||||
LIVEUPDATE_NAGSCREEN_HEAD="ΠΡΟΣΟΧΗ! Πρόκειται να εγκαταστήσετε μια ασταθή έκδοση."
|
||||
LIVEUPDATE_NAGSCREEN_BODY="Πρόκειται να εγκαταστήσετε μια ασταθή έκδοση (%s - %s). Οι ασταθείς εκδόσεις μπορεί να έχουν υποβληθεί σε ελάχιστο ή περιορισμένο ποιοτικό έλεγχο και να περιέχουν σφάλματα που μπορεί να έχουν σοβαρές παρενέργειες στην σταθερότητα και λειτουργία τουιστοχώρου σας. Εάν δεν είστε βέβαιος για αυτό που πρόκειται να κάνετε, παρακαλώ κλείστε αυτό το παράθυρο του περιηγητή σας. Εάν κατανοείτε πλήρως τους κινδύνους που συνοδεύουν την εγκατάσταση ασταθών εκδόσεων παρακαλώ κάντε κλικ στο παρακάτω κουμπί για να συνεχίσετε την εγκατάσταση αυτής της ασταθούς έκδοσης."
|
||||
LIVEUPDATE_NAGSCREEN_BUTTON="Καταννοώ τους κινδύνους. Συνέχισε την εγκατάσταση."
|
||||
|
||||
LIVEUPDATE_STABILITY_ALPHA="Άλφα"
|
||||
LIVEUPDATE_STABILITY_BETA="Βήτα"
|
||||
LIVEUPDATE_STABILITY_RC="Υποψήφια Έκδοσης"
|
||||
LIVEUPDATE_STABILITY_STABLE="Σταθερή"
|
||||
LIVEUPDATE_STABILITY_SVN="Έκδοση Προγραμματιστή"
|
||||
@ -0,0 +1,56 @@
|
||||
; Akeeba Live Update
|
||||
; Copyright (c)2010-2013 Nicholas K. Dionysopoulos / AkeebaBackup.com
|
||||
; Licensed under the GNU LGPLv3 or later <http://www.gnu.org/copyleft/lesser.html>
|
||||
|
||||
LIVEUPDATE_TASK_OVERVIEW="Live Update"
|
||||
|
||||
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_NOTSUPPORTED_ALTMETHOD="You can always update <var>%s</var> by visiting our site manually, downloading the latest release and installing it using Joomla!'s extension installer."
|
||||
|
||||
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 "_QQ_"Refresh update information"_QQ_" 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="A new version is available"
|
||||
LIVEUPDATE_NOUPDATES_HEAD="You already have the latest version"
|
||||
LIVEUPDATE_CURRENTVERSION="Installed version"
|
||||
LIVEUPDATE_LATESTVERSION="Latest version"
|
||||
LIVEUPDATE_LATESTRELEASED="Latest release date"
|
||||
LIVEUPDATE_DOWNLOADURL="Direct download URL"
|
||||
|
||||
LIVEUPDATE_REFRESH_INFO="Refresh update information"
|
||||
LIVEUPDATE_DO_UPDATE="Update to the latest version"
|
||||
|
||||
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.<br/><br/>Please provide the FTP username and password below to proceed with the update."
|
||||
LIVEUPDATE_FTP="FTP Information"
|
||||
LIVEUPDATE_FTPUSERNAME="FTP Username"
|
||||
LIVEUPDATE_FTPPASSWORD="FTP Password"
|
||||
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_EXTRACT_FAILED="Extracting the update package failed. Please try updating the extension manually."
|
||||
|
||||
LIVEUPDATE_INVALID_PACKAGE_TYPE="Invalid package type. The update can not proceed."
|
||||
LIVEUPDATE_INSTALLEXT="Install %s %s"
|
||||
LIVEUPDATE_ERROR="Error"
|
||||
LIVEUPDATE_SUCCESS="Success"
|
||||
|
||||
LIVEUPDATE_ICON_UNSUPPORTED="Live Update not supported"
|
||||
LIVEUPDATE_ICON_CRASHED="Live Update crashed"
|
||||
LIVEUPDATE_ICON_CURRENT="You have the latest version"
|
||||
LIVEUPDATE_ICON_UPDATES="UPDATE FOUND! CLICK TO UPDATE."
|
||||
|
||||
LIVEUPDATE_RELEASEINFO="Information"
|
||||
LIVEUPDATE_RELEASENOTES="Release notes"
|
||||
LIVEUPDATE_READMOREINFO="Read more"
|
||||
|
||||
LIVEUPDATE_NAGSCREEN_HEAD="WARNING! You are about to install an unstable version."
|
||||
LIVEUPDATE_NAGSCREEN_BODY="You are about to install an unstable version (%s - %s). Unstable versions may have undergone minimal or no testing and contain bugs which may have an adverse effect to the stability and functionality of your web site. If you are not sure about what you are about to do, please close this browser window. If you are absolutely certain you understand the risks involved with the installation of unstable releases, please click the button below to continue the installation of this unstable release."
|
||||
LIVEUPDATE_NAGSCREEN_BUTTON="I understand the risks. Continue with the installation."
|
||||
|
||||
LIVEUPDATE_STABILITY_ALPHA="Alpha"
|
||||
LIVEUPDATE_STABILITY_BETA="Beta"
|
||||
LIVEUPDATE_STABILITY_RC="RC"
|
||||
LIVEUPDATE_STABILITY_STABLE="Stable"
|
||||
LIVEUPDATE_STABILITY_SVN="SVN"
|
||||
@ -0,0 +1,56 @@
|
||||
; Akeeba Live Update
|
||||
; Copyright (c)2010-2013 Nicholas K. Dionysopoulos / AkeebaBackup.com
|
||||
; Licensed under the GNU LGPLv3 or later <http://www.gnu.org/copyleft/lesser.html>
|
||||
|
||||
LIVEUPDATE_TASK_OVERVIEW="Actualización automática"
|
||||
|
||||
LIVEUPDATE_NOTSUPPORTED_HEAD="Este servidor no soporta la Actualización automática"
|
||||
LIVEUPDATE_NOTSUPPORTED_INFO="Su servidor indica que no soporta la Actualización automática. Por favor, contacte con su proveedor de hosting y pídale que active la función cURL de PHP, o bien que active los wrappers de URL fopen(). Si alguna de las opciones anteriores ya está activada, por favor pídale que que configure su cortafuegos de manera que permita el acceso a la siguiente URL:"_QQ_""
|
||||
LIVEUPDATE_NOTSUPPORTED_ALTMETHOD="Siempre puede actualizar <var>%s</var> manualmente visitando nuestro sitio, descargando la última versión e instalándola mediante el instalador del gestor de extensiones de Joomla!"_QQ_""
|
||||
|
||||
LIVEUPDATE_STUCK_HEAD="La actualización automática informa de un fallo"
|
||||
LIVEUPDATE_STUCK_INFO="La actualización automática determinó que hubo un fallo la última vez que intentó contactar con el servidor de actualizaciones. Esto habitualmente ocurre cuando un host bloquea activamente las comunicaciones con sitios externos. Si desea trata de obtener de nuevo la información sobre nuevas actualizaciones, por favor haga clic en el botón "_QQ_"Refrescar la información sobre actualizaciones"_QQ_" que hay a continuación. Si tras hacerlo obtiene una página en blanco, por favor contacte con su proveedor de hosting y coméntele el problema."
|
||||
|
||||
LIVEUPDATE_ERROR_NEEDSAUTH="Debe introducir su nombre de usuario/contraseña su ID de Descarga (Download ID) en los parámetros de configuración del componente antes de intentar actualizar a la última versión. El botón de actualización permanecerá deshabilitado hasta que lo haga."
|
||||
LIVEUPDATE_HASUPDATES_HEAD="Hay disponible una nueva versión"
|
||||
LIVEUPDATE_NOUPDATES_HEAD="Ya tiene instalada la última vesión"
|
||||
LIVEUPDATE_CURRENTVERSION="Versión instalada"
|
||||
LIVEUPDATE_LATESTVERSION="Última versión"
|
||||
LIVEUPDATE_LATESTRELEASED="Fecha de la última versión"
|
||||
LIVEUPDATE_DOWNLOADURL="URL de descarga directa"
|
||||
|
||||
LIVEUPDATE_REFRESH_INFO="Refrescar la información de actualización"
|
||||
LIVEUPDATE_DO_UPDATE="Actualizar a la última versión"
|
||||
|
||||
LIVEUPDATE_FTP_REQUIRED="La actualización automática determinó que es necesario usar FTP para poder descargar e instalar su actualización, pero usted aún no ha guardado la información de inicio de sesión FTP en la configuración global de Joomla!.<br/><br/>Por favor introduzca el nombre de usuario y la contraseña de su cuenta FTP a continuación para proceder con la actualización."
|
||||
LIVEUPDATE_FTP="Información FTP"
|
||||
LIVEUPDATE_FTPUSERNAME="Usuario FTP"
|
||||
LIVEUPDATE_FTPPASSWORD="Contraseña FTP"
|
||||
LIVEUPDATE_DOWNLOAD_AND_INSTALL="Descargar e instalar la actualización"
|
||||
|
||||
LIVEUPDATE_DOWNLOAD_FAILED="La descarga del paquete de actualización no se pudo completar. Asegúrese de que su directorio temporal (temp) tiene permisos de escritura o de que ha habilitado la configuración de FTP en la configuración global de su sitio."
|
||||
LIVEUPDATE_EXTRACT_FAILED="La extracción de los archivos del paquete de actualización falló. Por favor, trate de actualizar la extensión manualmente."
|
||||
|
||||
LIVEUPDATE_INVALID_PACKAGE_TYPE="Tipo de paquete erróneo. No se puede proceder con la actualización."
|
||||
LIVEUPDATE_INSTALLEXT="Instalando %s %s"
|
||||
LIVEUPDATE_ERROR="Error"
|
||||
LIVEUPDATE_SUCCESS="Éxito"
|
||||
|
||||
LIVEUPDATE_ICON_UNSUPPORTED="La actualización automática no está soportada"
|
||||
LIVEUPDATE_ICON_CRASHED="La actualización automática falló"
|
||||
LIVEUPDATE_ICON_CURRENT="Ya tiene la última versión"
|
||||
LIVEUPDATE_ICON_UPDATES="¡ACTUALIZACIÓN DISPONIBLE! CLIC PARA INSTALAR."
|
||||
|
||||
LIVEUPDATE_RELEASEINFO="Información"
|
||||
LIVEUPDATE_RELEASENOTES="Notas de la versión"
|
||||
LIVEUPDATE_READMOREINFO="Leer más"
|
||||
|
||||
LIVEUPDATE_NAGSCREEN_HEAD="ATENCIÓN! Usted está a punto de instalar una versión inestable."
|
||||
LIVEUPDATE_NAGSCREEN_BODY="Usted está a punto de instalar una versión inestable (%s - %s). Las versiones inestables pueden tener mínimos o ningún test y contener errores que pueden causar serios problemas a la estabilidad y funcionalidad de su sitio web. Si usted no está seguro sobre qué hacer, por favor cierre esta ventana del explorador. Si usted está totalmente seguro de entender los riesgos involucrados con la instalación de versiones inestables, por favor pulse el botón de abajo para continuar con la instalación de esta versión inestable."
|
||||
LIVEUPDATE_NAGSCREEN_BUTTON="Entiendo los riesgos. Continuar con la instalación"
|
||||
|
||||
LIVEUPDATE_STABILITY_ALPHA="Alfa"
|
||||
LIVEUPDATE_STABILITY_BETA="Beta"
|
||||
LIVEUPDATE_STABILITY_RC="RC"
|
||||
LIVEUPDATE_STABILITY_STABLE="Estable"
|
||||
LIVEUPDATE_STABILITY_SVN="SVN"
|
||||
@ -0,0 +1,56 @@
|
||||
; Akeeba Live Update
|
||||
; Copyright (c)2010-2013 Nicholas K. Dionysopoulos / AkeebaBackup.com
|
||||
; Licensed under the GNU LGPLv3 or later <http://www.gnu.org/copyleft/lesser.html>
|
||||
|
||||
; LIVEUPDATE_TASK_OVERVIEW="Live Update"
|
||||
|
||||
; 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_NOTSUPPORTED_ALTMETHOD="You can always update <var>%s</var> by visiting our site manually, downloading the latest release and installing it using Joomla!'s extension installer."
|
||||
|
||||
; 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 "_QQ_"Refresh update information"_QQ_" 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="A new version is available"
|
||||
; LIVEUPDATE_NOUPDATES_HEAD="You already have the latest version"
|
||||
; LIVEUPDATE_CURRENTVERSION="Installed version"
|
||||
; LIVEUPDATE_LATESTVERSION="Latest version"
|
||||
; LIVEUPDATE_LATESTRELEASED="Latest release date"
|
||||
; LIVEUPDATE_DOWNLOADURL="Direct download URL"
|
||||
|
||||
; LIVEUPDATE_REFRESH_INFO="Refresh update information"
|
||||
; LIVEUPDATE_DO_UPDATE="Update to the latest version"
|
||||
|
||||
; 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.<br/><br/>Please provide the FTP username and password below to proceed with the update."
|
||||
; LIVEUPDATE_FTP="FTP Information"
|
||||
; LIVEUPDATE_FTPUSERNAME="FTP Username"
|
||||
; LIVEUPDATE_FTPPASSWORD="FTP Password"
|
||||
; 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_EXTRACT_FAILED="Extracting the update package failed. Please try updating the extension manually."
|
||||
|
||||
; LIVEUPDATE_INVALID_PACKAGE_TYPE="Invalid package type. The update can not proceed."
|
||||
; LIVEUPDATE_INSTALLEXT="Install %s %s"
|
||||
; LIVEUPDATE_ERROR="Error"
|
||||
; LIVEUPDATE_SUCCESS="Success"
|
||||
|
||||
; LIVEUPDATE_ICON_UNSUPPORTED="Live Update not supported"
|
||||
; LIVEUPDATE_ICON_CRASHED="Live Update crashed"
|
||||
; LIVEUPDATE_ICON_CURRENT="You have the latest version"
|
||||
; LIVEUPDATE_ICON_UPDATES="UPDATE FOUND! CLICK TO UPDATE."
|
||||
|
||||
; LIVEUPDATE_RELEASEINFO="Information"
|
||||
; LIVEUPDATE_RELEASENOTES="Release notes"
|
||||
; LIVEUPDATE_READMOREINFO="Read more"
|
||||
|
||||
; LIVEUPDATE_NAGSCREEN_HEAD="WARNING! You are about to install an unstable version."
|
||||
; LIVEUPDATE_NAGSCREEN_BODY="You are about to install an unstable version (%s - %s). Unstable versions may have undergone minimal or no testing and contain bugs which may have an serious adverse to the stability and functionality of your web site. If you are not sure about what you are about to do, please close this browser window. If you are absolutely certain you understand the risks involved with the installation of unstable releases, please click the button below to continue the installation of this unstable release."
|
||||
; LIVEUPDATE_NAGSCREEN_BUTTON="I understand the risks. Continue with the installation."
|
||||
|
||||
; LIVEUPDATE_STABILITY_ALPHA="Alpha"
|
||||
; LIVEUPDATE_STABILITY_BETA="Beta"
|
||||
; LIVEUPDATE_STABILITY_RC="RC"
|
||||
; LIVEUPDATE_STABILITY_STABLE="Stable"
|
||||
; LIVEUPDATE_STABILITY_SVN="SVN"
|
||||
@ -0,0 +1,56 @@
|
||||
; Akeeba Live Update
|
||||
; Copyright (c)2010-2013 Nicholas K. Dionysopoulos / AkeebaBackup.com
|
||||
; Licensed under the GNU LGPLv3 or later <http://www.gnu.org/copyleft/lesser.html>
|
||||
|
||||
LIVEUPDATE_TASK_OVERVIEW="به روز رسانی آنلاین"
|
||||
|
||||
LIVEUPDATE_NOTSUPPORTED_HEAD="به روز رسانی آنلاین در این سرور پشتیبانی نمی شود"
|
||||
LIVEUPDATE_NOTSUPPORTED_INFO="سرور شما نشان می دهد که به روز رسانی آنلاین پشتیبانی نمی شود. لطفا با میزبان خود تماس بگیرید و از آن ها بخواهید که افزونه cURL یا URL fopen() wrapper را در PHP فعال نمایند. اگر این در حال حاضر فعال است، لطفا از آن ها بخواهید که پیکربندی فایروال خود را به طوری که اجازه دسترسی به این آدرس را بدهد تنظیم نمایند:"
|
||||
LIVEUPDATE_NOTSUPPORTED_ALTMETHOD="شما همچنین می توانید با مراجعه به سایت ما و دانلود آخرین نسخه و نصب آن از طریق نصب کننده جوملا اقدام به به روز رسانی <var>%s</var> نمایید."
|
||||
|
||||
LIVEUPDATE_STUCK_HEAD="به روز رسانی آنلاین با مشکل مواجه شد."
|
||||
LIVEUPDATE_STUCK_INFO="به روز رسانی آنلاین در آخرین باری که تلاش برای ارتباط با سرور به روز رسانی نموده است، با مشکل مواجه شد. این معمولا در مورد میزبان هایی به وجود می آید که ارتباط با سایت های دیگر را مسدود می نمایند. در صورتی که می خواهید اطلاعات به روز رسانی را مجددا دریافت نمایید، روی دکمه "_QQ_"بازیابی مجدد اطلاعات به روز رسانی"_QQ_" در زیر کلیک نمایید. در صورتی که با صفحه ی خالی مواجه شدید، با میزبان خود تماس حاصل نموده و مشکل را گزارش دهید."
|
||||
|
||||
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 را در تنظیمات سراسری جوملا وارد نکرده اید.<br/><br/>لطفا نام کاربری و رمز عبور FTP را جهت اجرای عملیات به روز رسانی در قسمت های زیر وارد نمایید."
|
||||
LIVEUPDATE_FTP="اطلاعات FTP"
|
||||
LIVEUPDATE_FTPUSERNAME="نام کاربری FTP"
|
||||
LIVEUPDATE_FTPPASSWORD="رمز عبور FTP"
|
||||
LIVEUPDATE_DOWNLOAD_AND_INSTALL="دانلود و نصب به روز رسانی"
|
||||
|
||||
LIVEUPDATE_DOWNLOAD_FAILED="دانلود فایل به روز رسانی با شکست مواجه شد. جهت رفع این مشکل بررسی نمایید که پوشه موقت سایتتان (temp) قابل نوشتن بوده و یا تنظیمات 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="به روز رسانی جدیدی یافت شد! جهت به روز رسانی کلیک نمایید."
|
||||
|
||||
LIVEUPDATE_RELEASEINFO="اطلاعات"
|
||||
LIVEUPDATE_RELEASENOTES="اطلاعات نسخه"
|
||||
LIVEUPDATE_READMOREINFO="مطالعه بیشتر"
|
||||
|
||||
LIVEUPDATE_NAGSCREEN_HEAD="اخطار! شما در حال نصب نسخه ای ناپایدار هستید."
|
||||
LIVEUPDATE_NAGSCREEN_BODY="شما در حال نصب نسخه ای ناپایدار هستید (%s - %s). نسخه های ناپایدار ممکن است تحت آزمایش کم و یا هیچ بوده باشند و عوارض جانبی جدی برای پایداری سایت شما داشته باشند. در صورتی که اطلاعاتی در این مورد ندارید، لطفا این صفحه را ببندید. و در صورتی که از ریسک این موضوع مطلع هستید و می خواهید ادامه دهید، روی دکمه زیر جهت ادامه نصب این نسخه ناپایدار کلیک نمایید."
|
||||
LIVEUPDATE_NAGSCREEN_BUTTON="از خطرات این عمل آگاه هستم. عملیات نصب را ادامه بده."
|
||||
|
||||
LIVEUPDATE_STABILITY_ALPHA="آلفا"
|
||||
LIVEUPDATE_STABILITY_BETA="بتا"
|
||||
LIVEUPDATE_STABILITY_RC="کاندید"
|
||||
LIVEUPDATE_STABILITY_STABLE="پایدار"
|
||||
LIVEUPDATE_STABILITY_SVN="svn"
|
||||
@ -0,0 +1,56 @@
|
||||
; Akeeba Live Update
|
||||
; Copyright (c)2010-2013 Nicholas K. Dionysopoulos / AkeebaBackup.com
|
||||
; Licensed under the GNU LGPLv3 or later <http://www.gnu.org/copyleft/lesser.html>
|
||||
|
||||
LIVEUPDATE_TASK_OVERVIEW="Live Update"
|
||||
|
||||
LIVEUPDATE_NOTSUPPORTED_HEAD="Live Update ei ole tuettu tällä palvelimella"
|
||||
LIVEUPDATE_NOTSUPPORTED_INFO="Palvelimesi mukaan Live Update ei ole tuettu. Ota yhteyttä palveluntarjoajaasi ja pyydä heitä ottamaan cURL PHP laajennus tai URL fopen() lisätoiminnot käyttöön. Jos nämä ovat jo käytössä, pyydä heitä muuttamaan palomuurinsa asetuksia niin, että se sallii yhteydet seuraavaan osoitteeseen:"_QQ_""
|
||||
LIVEUPDATE_NOTSUPPORTED_ALTMETHOD="Voit aina päivittää <var>%s</var> lisäosan käymällä sivustollamme, lataamalla viimeisimmän version ja asentamalla sen Joomla! lisäosien asennuksella."
|
||||
|
||||
LIVEUPDATE_STUCK_HEAD="Live Update on havainnut kaatuneensa"
|
||||
LIVEUPDATE_STUCK_INFO="Live Update on havainnut, että se kaatui edellisellä kerralla päivitystä hakiessaan. Yleensä tämä johtuu palvelimestä, joka pyrkii estämään yhteydet muille palvelimille. Jos haluat yrittää päivitystietojen hakemista uudelleen, napsauta "_QQ_"Päivitä päivitystiedot"_QQ_" painiketta. Jos tästä seuraa tyhjä sivu, ota yhteyttä palveluntarjoajaasi ja ilmoita ongelmasta."
|
||||
|
||||
LIVEUPDATE_ERROR_NEEDSAUTH="Sinun täytyy syöttää pyydetty käyttäjätunniste komponentin asetuksissa ennenkuin voit päivittää viimeisimpään versioon. Päivityspainike pysyy estettynä siihen asti."
|
||||
LIVEUPDATE_HASUPDATES_HEAD="Uusi versio on saatavilla"
|
||||
LIVEUPDATE_NOUPDATES_HEAD="Sinulla on jo uusin versio"
|
||||
LIVEUPDATE_CURRENTVERSION="Asennettu versio"
|
||||
LIVEUPDATE_LATESTVERSION="Uusin versio"
|
||||
LIVEUPDATE_LATESTRELEASED="Uusimman julkaisupäivä"
|
||||
LIVEUPDATE_DOWNLOADURL="Suora latauslinkki"
|
||||
|
||||
LIVEUPDATE_REFRESH_INFO="Päivitä päivitystiedot"
|
||||
LIVEUPDATE_DO_UPDATE="Päivitä uusimpaan versioon"
|
||||
|
||||
LIVEUPDATE_FTP_REQUIRED="Live Update havaitsi, että se tarvitsee FTP yhteyden ladatakseen päivityksesi, mutta FTP tietoja ei ole asetettu Joomla! asetuksissa.<br/><br/>Syötä FTP tunnus ja salasana päivittääksesi."
|
||||
LIVEUPDATE_FTP="FTP tiedot"
|
||||
LIVEUPDATE_FTPUSERNAME="FTP käyttäjänimi"
|
||||
LIVEUPDATE_FTPPASSWORD="FTP salasana"
|
||||
LIVEUPDATE_DOWNLOAD_AND_INSTALL="Lataa ja asenna päivitys"
|
||||
|
||||
LIVEUPDATE_DOWNLOAD_FAILED="Päivityspaketin lataaminen epäonnistui. Varmista, että temp-kansioom voi kirjoittaa tai Joomla! FTP toiminnot on sallittu sivuston asetuksissa."
|
||||
LIVEUPDATE_EXTRACT_FAILED="Päivityspaketin purkaminen epäonnistui. Yritä päivittää lisäosa manuaalisesti."
|
||||
|
||||
LIVEUPDATE_INVALID_PACKAGE_TYPE="Paketin tyyppi ei kelpaa. Päivitystä ei voida tehdä."
|
||||
LIVEUPDATE_INSTALLEXT="Asenna %s %s"
|
||||
LIVEUPDATE_ERROR="Virhe"
|
||||
LIVEUPDATE_SUCCESS="Onnistui"
|
||||
|
||||
LIVEUPDATE_ICON_UNSUPPORTED="Live Update ei tuettu"
|
||||
LIVEUPDATE_ICON_CRASHED="Live Update kaatui"
|
||||
LIVEUPDATE_ICON_CURRENT="Sinulla on uusin versio"
|
||||
LIVEUPDATE_ICON_UPDATES="Päivitys löydetty! Napsauta päivittääksesi."
|
||||
|
||||
LIVEUPDATE_RELEASEINFO="Tietoja"
|
||||
LIVEUPDATE_RELEASENOTES="Julkaisutiedot"
|
||||
LIVEUPDATE_READMOREINFO="Lue lisää"
|
||||
|
||||
LIVEUPDATE_NAGSCREEN_HEAD="Varoitus. Olet asentamassa mahdollisesti epävakaata versiota."
|
||||
LIVEUPDATE_NAGSCREEN_BODY="Olet asentamassa epävakaata versiota (%s - %s). Epävakaita versiota ei ole testattu riittävästi ja ne voivat sisältää ohjelmointivirheitä jotka voivat vahingoittaa sivustosi vakautta ja toimintaa. Jos et ole varma siitä mitä olet tekemässä, sulje tämä selain ikkuna. Jos olet aivan varma, että ymmärrät epävakaiden versioiden asentamiseen liittyvät riskit, napsauta alla olevaa painiketta jatkaaksesi asennusta."
|
||||
; LIVEUPDATE_NAGSCREEN_BUTTON="I understand the risks. Continue with the installation."
|
||||
|
||||
LIVEUPDATE_STABILITY_ALPHA="Alpha"
|
||||
LIVEUPDATE_STABILITY_BETA="Beta"
|
||||
LIVEUPDATE_STABILITY_RC="RC"
|
||||
; LIVEUPDATE_STABILITY_STABLE="Stable"
|
||||
LIVEUPDATE_STABILITY_SVN="SVN"
|
||||
@ -0,0 +1,79 @@
|
||||
; Akeeba Live Update
|
||||
; Copyright (c)2010-2012 Nicholas K. Dionysopoulos / AkeebaBackup.com
|
||||
; Licensed under the GNU LGPLv3 or later <http://www.gnu.org/copyleft/lesser.html>
|
||||
;
|
||||
; ADMIN [com_icagenda/liveupdate] : liveupdate.ini
|
||||
; Translation on Transifex : https://www.transifex.com/projects/p/icagenda/
|
||||
; iCagenda Version : Copyright (c) 2013 JoomliC.com
|
||||
|
||||
|
||||
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 lui demander d'activer l'extension PHP cURL ou activer la fonction fopen URL (). Si ceux-ci sont déjà activés, veuillez lui demander d'adapter le pare-feu pour qu'il autorise l'accès à l'URL suivante:";
|
||||
LIVEUPDATE_NOTSUPPORTED_ALTMETHOD="Vous pouvez toujours mettre à jour <var>%s</ var> à partir de notre site internet, après avoir télécharger la dernière version et effectuer son installation via la gestion des extensions 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 se connecter au 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 indiquer vos identifiant/mot de passe ou votre Download ID dans les paramètres du composant. Le bouton de mise à niveau restera désactivé jusqu'à ce que vous le faites."
|
||||
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 direct"
|
||||
|
||||
LIVEUPDATE_REFRESH_INFO="Rafraîchir 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' de Joomla!<br/><br/>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 installer 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 être effectuée."
|
||||
LIVEUPDATE_INSTALLEXT="Installation %s %s"
|
||||
LIVEUPDATE_ERROR="Erreur"
|
||||
LIVEUPDATE_SUCCESS="effectuée avec succès"
|
||||
|
||||
; Added iCagenda
|
||||
LIVEUPDATE_INSTALL_ERROR="Erreur à l'installation %s"
|
||||
LIVEUPDATE_INSTALL_SUCCESS="Installation %s effectuée avec succès."
|
||||
LIVEUPDATE_INSTALL_TYPE_COMPONENT="du composant iCagenda"
|
||||
LIVEUPDATE_INSTALL_TYPE_FILE="du fichier"
|
||||
LIVEUPDATE_INSTALL_TYPE_LANGUAGE="de la langue"
|
||||
LIVEUPDATE_INSTALL_TYPE_LIBRARY="de la bibliothèque"
|
||||
LIVEUPDATE_INSTALL_TYPE_MODULE="du module"
|
||||
LIVEUPDATE_INSTALL_TYPE_PACKAGE="du paquet"
|
||||
LIVEUPDATE_INSTALL_TYPE_PLUGIN="du plug-in"
|
||||
LIVEUPDATE_INSTALL_TYPE_TEMPLATE="du template"
|
||||
|
||||
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 disponible! Cliquez pour mettre à jour."
|
||||
|
||||
LIVEUPDATE_RELEASEINFO="Informations"
|
||||
LIVEUPDATE_RELEASENOTES="Notes de version"
|
||||
LIVEUPDATE_READMOREINFO="Plus d'infos"
|
||||
|
||||
LIVEUPDATE_NAGSCREEN_HEAD="ATTENTION! Vous êtes sur le point d'installer une version instable."
|
||||
LIVEUPDATE_NAGSCREEN_BODY="Vous êtes sur le point d'installer une version dite instable (%s - %s). Les versions instables sont des versions ayant subi peu de tests, voir aucun, et qui peuvent contenir des bugs avec une conséquence importante sur la stabilité et la fonctionnalité de votre site internet. Si vous n'êtes pas sûr de ce que vous êtes sur le point de faire, merci de fermer cette fenêtre et de revenir en arrière. Si vous comprenez parfaitement les risques liés à l'utilisation d'une version instable, vous pouvez cliquer sur le bouton ci-dessous pour continuer l'installation de cette version."
|
||||
LIVEUPDATE_NAGSCREEN_BUTTON="Je comprends les risques. Poursuivre l'installation."
|
||||
|
||||
LIVEUPDATE_STABILITY_ALPHA="Alpha"
|
||||
LIVEUPDATE_STABILITY_BETA="Bêta"
|
||||
LIVEUPDATE_STABILITY_RC="RC"
|
||||
LIVEUPDATE_STABILITY_STABLE="Stable"
|
||||
|
||||
; Added iCagenda
|
||||
LIVEUPDATE_ERROR_NEEDS_PRO_ID="Pour activer le bouton de mise à jour, vous devez indiquer dans les paramètres d'iCagenda votre licence Pro ID de mise à jour."
|
||||
LIVEUPDATE_NAGSCREEN_HEAD_ICAGENDA = "ATTENTION! Vous êtes sur le point d'installer une version beta-test d'iCagenda."
|
||||
LIVEUPDATE_NAGSCREEN_VERSION_ICAGENDA = "Version de test et de développement(iCagenda %s - %s)."
|
||||
LIVEUPDATE_NAGSCREEN_BODY_ICAGENDA = "Le cycle de vie d'une version d'un logiciel est la somme des phases de développement, de tests et de maturité.<br/><b>Alpha :</b>peut être instable et peut causer des accidents ou des pertes de données.<br/><b>Beta :</b>a généralement plus de bugs que le logiciel terminée, cette version est destinée aux sites de tests uniquement.<br/><b>RC (Release Candidate) :</b> version bêta avec le potentiel pour être un produit final, qui est prête à être libérée à moins que des bugs importants émergent.<br/>Si vous n'êtes pas sûr de ce que vous êtes sur le point de faire, merci de fermer cette fenêtre et de revenir en arrière. Si vous êtes absolument certain que vous comprenez les risques liés à l'installation des versions instables, vous pouvez cliquer sur le bouton ci-dessous pour continuer l'installation de cette version.<br/>"
|
||||
LIVEUPDATE_NAGSCREEN_FOOTER_ICAGENDA = "info:"
|
||||
@ -0,0 +1,56 @@
|
||||
; Akeeba Live Update
|
||||
; Copyright (c)2010-2013 Nicholas K. Dionysopoulos / AkeebaBackup.com
|
||||
; Licensed under the GNU LGPLv3 or later <http://www.gnu.org/copyleft/lesser.html>
|
||||
|
||||
LIVEUPDATE_TASK_OVERVIEW="Live Update"
|
||||
|
||||
LIVEUPDATE_NOTSUPPORTED_HEAD="Ez a szerver nem támogatja a Live Update-ot"
|
||||
LIVEUPDATE_NOTSUPPORTED_INFO="A szerver nem támogatja a Live Update-et. Lépj kapcsolatba a szolgáltatóddal és kérd a cURL PHP bővítmény vagy az URL fopen() aktiválását. Ha ezek már engedélyezve vannak, akkor kérd meg őket, hogy úgy állítsák be a tűzfalukat, hogy hozzáférhető legyen a következő URL:"_QQ_""
|
||||
LIVEUPDATE_NOTSUPPORTED_ALTMETHOD="Bármikor frissítheted a(z) <var>%s</var> úgy, hogy meglátogatod a webhelyünket, letöltöd a legfrissebb verziót és a Joomla! bővítmény telepítőjével felrakod."
|
||||
|
||||
LIVEUPDATE_STUCK_HEAD="A saját jelzése szerint a Live Update összeomlott"
|
||||
LIVEUPDATE_STUCK_INFO="Az utolsó használat során a Live Update összeomlott amikor kapcsolatot próbált létesíteni a frissítő szerverrel. Ez általában azt jelzi, hogy a szolgáltató aktívan blokkolja a külső webhelyekkel való kommunikációt. Ha meg akarod ismételni a frissítési információk lekérését, akkor kattints alul a "_QQ_"Frissítési információk újra letöltése"_QQ_" gombra. Ha ez üres oldalt eredményez, akkor lépj kapcsolatba a szolgáltatóddal és jelezd nekik ezt a problémát"
|
||||
|
||||
LIVEUPDATE_ERROR_NEEDSAUTH="Mielőtt frissíteni szeretnél, meg kell adnod a felhasználói neved/jelszavad vagy a letöltési AZ-t a komponens paraméterekben. A frissítés gomb addig nem lesz aktív, amíg ezeket nem adod meg."
|
||||
LIVEUPDATE_HASUPDATES_HEAD="Elérhető az új verzió"
|
||||
LIVEUPDATE_NOUPDATES_HEAD="Már a legújabb verzióval rendelkezel"
|
||||
LIVEUPDATE_CURRENTVERSION="Telepített verzió"
|
||||
LIVEUPDATE_LATESTVERSION="Legújabb verzió"
|
||||
LIVEUPDATE_LATESTRELEASED="A legújabb verzió kiadási időpontja"
|
||||
LIVEUPDATE_DOWNLOADURL="Direkt letöltési URL"
|
||||
|
||||
LIVEUPDATE_REFRESH_INFO="Frissítési információk újratöltése"
|
||||
LIVEUPDATE_DO_UPDATE="Frissítés a legújabb verzióra"
|
||||
|
||||
LIVEUPDATE_FTP_REQUIRED="A Live Update-nek szüksége van az FTP használatára, hogy le tudja tölteni és feltelepíteni a frissítést, de te nem adtál meg FTP elérési adatokat a Joomla! globális beállításaiban.<br/><br/>Kérjük, hogy add meg az FTP felhasználói nevet és jelszót, hogy folytatni lehessen a frissítést."
|
||||
LIVEUPDATE_FTP="FTP információk"
|
||||
LIVEUPDATE_FTPUSERNAME="FTP felhasználói név"
|
||||
LIVEUPDATE_FTPPASSWORD="FTP jelszó"
|
||||
LIVEUPDATE_DOWNLOAD_AND_INSTALL="A frissítés letöltése és telepítése"
|
||||
|
||||
LIVEUPDATE_DOWNLOAD_FAILED="A frissítési csomag letöltése sikertelen. Ellenőrizd az átmeneti (temp) könyvtár írhatóságát vagy a globális beállításoknál engedélyezd a Joomla! FTP feltöltést."
|
||||
LIVEUPDATE_EXTRACT_FAILED="A frissítési csomag kitömörítése sikertelen. Kérjük, hogy a frissítést próbáld meg manuális módban."
|
||||
|
||||
LIVEUPDATE_INVALID_PACKAGE_TYPE="Hibás csomagtípus. A frissítés nem folytatható."
|
||||
LIVEUPDATE_INSTALLEXT="Telepítés %s %s"
|
||||
LIVEUPDATE_ERROR="Hiba"
|
||||
LIVEUPDATE_SUCCESS="Sikeres"
|
||||
|
||||
LIVEUPDATE_ICON_UNSUPPORTED="A Live Update nem támogatott"
|
||||
LIVEUPDATE_ICON_CRASHED="A Live Update összeomlott"
|
||||
LIVEUPDATE_ICON_CURRENT="A legfrissebb verzióval rendelkezel"
|
||||
LIVEUPDATE_ICON_UPDATES="FRISSÍTÉST TALÁLTAM! KATTINTS IDE."
|
||||
|
||||
LIVEUPDATE_RELEASEINFO="Információk"
|
||||
LIVEUPDATE_RELEASENOTES="Kiadási megjegyzések"
|
||||
LIVEUPDATE_READMOREINFO="Bővebben"
|
||||
|
||||
; LIVEUPDATE_NAGSCREEN_HEAD="WARNING! You are about to install an unstable version."
|
||||
; LIVEUPDATE_NAGSCREEN_BODY="You are about to install an unstable version (%s - %s). Unstable versions may have undergone minimal or no testing and contain bugs which may have an serious adverse to the stability and functionality of your web site. If you are not sure about what you are about to do, please close this browser window. If you are absolutely certain you understand the risks involved with the installation of unstable releases, please click the button below to continue the installation of this unstable release."
|
||||
; LIVEUPDATE_NAGSCREEN_BUTTON="I understand the risks. Continue with the installation."
|
||||
|
||||
; LIVEUPDATE_STABILITY_ALPHA="Alpha"
|
||||
; LIVEUPDATE_STABILITY_BETA="Beta"
|
||||
; LIVEUPDATE_STABILITY_RC="RC"
|
||||
; LIVEUPDATE_STABILITY_STABLE="Stable"
|
||||
; LIVEUPDATE_STABILITY_SVN="SVN"
|
||||
@ -0,0 +1,56 @@
|
||||
; Akeeba Live Update
|
||||
; Copyright (c)2010-2013 Nicholas K. Dionysopoulos / AkeebaBackup.com
|
||||
; Licensed under the GNU LGPLv3 or later <http://www.gnu.org/copyleft/lesser.html>
|
||||
|
||||
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. Contattate il fornitore e chiedete di abilitare l'estensione PHP cURL oppure attivare le funzionalità di URL fopen(). Se queste opzioni sono già attive, fate verificare la configurazione del firewall per permettere l'accesso al seguente URL:"_QQ_""
|
||||
LIVEUPDATE_NOTSUPPORTED_ALTMETHOD="E' sempre possibile aggiornare <var>%s</var> 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'operazione è fallita con un crash. Generalmente questo indica la presenza di un servizio che blocca la comunicazione con siti esterni. Se volete riprovare a recuperare le informazioni di aggiornamento utilizzate il pulsante "_QQ_"Verifica disponibilità aggiornamenti"_QQ_" più sotto. Se il risultato è una pagina vuota, contattate il vostro fornitore per segnalare il problema."
|
||||
|
||||
LIVEUPDATE_ERROR_NEEDSAUTH="E' necessario inserire Username e Password oppure il proprio Download ID tra i parametri di configurazione del componente prima di tentare l'aggiornamento all'ultima versione. Il pulsante di aggiornamento sarà attivato solamente dopo l'inserimento di tali informazioni."
|
||||
LIVEUPDATE_HASUPDATES_HEAD="E' disponibile una nuova versione"
|
||||
LIVEUPDATE_NOUPDATES_HEAD="Non sono disponibili nuovi 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 correttamente le informazioni di configurazione in Joomla. Inserite qui 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. Verificate 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 funziona correttamente"
|
||||
LIVEUPDATE_ICON_CURRENT="Non sono disponibili nuovi aggiornamenti"
|
||||
LIVEUPDATE_ICON_UPDATES="INSTALLA NUOVO AGGIORNAMENTO!"
|
||||
|
||||
; LIVEUPDATE_RELEASEINFO="Information"
|
||||
; LIVEUPDATE_RELEASENOTES="Release notes"
|
||||
; LIVEUPDATE_READMOREINFO="Read more"
|
||||
|
||||
; LIVEUPDATE_NAGSCREEN_HEAD="WARNING! You are about to install an unstable version."
|
||||
; LIVEUPDATE_NAGSCREEN_BODY="You are about to install an unstable version (%s - %s). Unstable versions may have undergone minimal or no testing and contain bugs which may have an serious adverse to the stability and functionality of your web site. If you are not sure about what you are about to do, please close this browser window. If you are absolutely certain you understand the risks involved with the installation of unstable releases, please click the button below to continue the installation of this unstable release."
|
||||
; LIVEUPDATE_NAGSCREEN_BUTTON="I understand the risks. Continue with the installation."
|
||||
|
||||
; LIVEUPDATE_STABILITY_ALPHA="Alpha"
|
||||
; LIVEUPDATE_STABILITY_BETA="Beta"
|
||||
; LIVEUPDATE_STABILITY_RC="RC"
|
||||
; LIVEUPDATE_STABILITY_STABLE="Stable"
|
||||
; LIVEUPDATE_STABILITY_SVN="SVN"
|
||||
@ -0,0 +1,56 @@
|
||||
; Akeeba Live Update
|
||||
; Copyright (c)2010-2013 Nicholas K. Dionysopoulos / AkeebaBackup.com
|
||||
; Licensed under the GNU LGPLv3 or later <http://www.gnu.org/copyleft/lesser.html>
|
||||
|
||||
LIVEUPDATE_TASK_OVERVIEW="Automatinis atnaujinimas"
|
||||
|
||||
LIVEUPDATE_NOTSUPPORTED_HEAD="Šiame serveryje automatinis atnaujinimas negalimas"
|
||||
LIVEUPDATE_NOTSUPPORTED_INFO="Jūsų serveris rodo, kad automatinis atnaujinimas yra negalimas. Prašome susisiekti su savo tinklapio talpintojais ir paprašyti įgalinti cURL PHP plėtinį arba aktyvuoti URL fopen(). Jei šie plėtiniai jau yra įgalinti, paprašykite jų sukonfigūruoti savo ugniasienę taip, kad ji leistų prieigą prie šios URL:"
|
||||
LIVEUPDATE_NOTSUPPORTED_ALTMETHOD="Jūs visada galite atnaujinti <var>%s</var> rankiniu būdu, aplankydami mūsų tinklapį, parsisiųsdami naujausią programos laidą ir įdiegdami standartiniu Joomla! Būdu."
|
||||
|
||||
LIVEUPDATE_STUCK_HEAD="Automatinis atnaujinimas nurodė, kad įvyko programinė klaida"
|
||||
LIVEUPDATE_STUCK_INFO="Automatinis atnaujinimas nurodė, kad bandant susisiekti su atnaujinimų serveriu įvyko programinė klaida. Paprastai tai rodo, kad tinklapio talpintojas aktyviai blokuoja ryšius su išorinėmis svetainėmis. Jei norite pabandyti iš naujo parsisiųsti atnaujinimo informaciją, prašome spragtelėti žemiau esantį mygtuką "_QQ_"Atnaujinti informaciją"_QQ_". Jei parodomas tuščias puslapis, norint išspręsti šią problemą turėsite kreiptis į savo tinklapio talpintoją."
|
||||
|
||||
LIVEUPDATE_ERROR_NEEDSAUTH="Norėdami atsinaujinti į naujausią programos versiją, turite nurodyti savo prisijungimo vardą/slaptažodį arba Parsisiuntimo ID komponento parametruose. Kol to nepadarysite, atnaujinimo mygtukas išliks neaktyvus."
|
||||
LIVEUPDATE_HASUPDATES_HEAD="Yra nauja versija"
|
||||
LIVEUPDATE_NOUPDATES_HEAD="Jūs turite naujausią programos versiją."
|
||||
LIVEUPDATE_CURRENTVERSION="Įdiegta versija"
|
||||
LIVEUPDATE_LATESTVERSION="Naujausia versija"
|
||||
LIVEUPDATE_LATESTRELEASED="Naujausios versijos išleidimo data"
|
||||
LIVEUPDATE_DOWNLOADURL="Tiesioginė parsisiuntimo nuoroda"
|
||||
|
||||
LIVEUPDATE_REFRESH_INFO="Atnaujinti informaciją"
|
||||
LIVEUPDATE_DO_UPDATE="Atnaujinti į naujausią versiją"
|
||||
|
||||
LIVEUPDATE_FTP_REQUIRED="Automatinis atnaujinimas nustatė, kad norint atsisiųsti ir įdiegti atnaujinimą turi būti naudojamas FTP sluoksnis, tačiau Jūs nenurodėte savo FTP prisijungimo duomenų globaliose savo tinklapio Joomla! nuostatose.<br/><br/>Jei norite įdiegti naujinimą, nurodykite FTP prisijungimo duomenis."
|
||||
LIVEUPDATE_FTP="FTP informacija"
|
||||
LIVEUPDATE_FTPUSERNAME="FTP naudotojo vardas"
|
||||
LIVEUPDATE_FTPPASSWORD="FTP slaptažodis"
|
||||
LIVEUPDATE_DOWNLOAD_AND_INSTALL="Atsisiųsti ir įdiegti naujinimą"
|
||||
|
||||
LIVEUPDATE_DOWNLOAD_FAILED="Nepavyko atsisiųsti atnaujinimo paketo. Įsitikinkite, kad į tinklapio laikinąjį aplanką leidžiama rašyti ir tai, kad Jūsų tinklapio globaliose Joomla! nuostatose įgalintas FTP naudojimas."
|
||||
LIVEUPDATE_EXTRACT_FAILED="Nepavyko išpakuoti atnaujinimo paketo. Prašome bandyti atsinaujinti rankiniu būdu."
|
||||
|
||||
LIVEUPDATE_INVALID_PACKAGE_TYPE="Neteisingas paketo tipas. Atnaujinimas negalimas"
|
||||
LIVEUPDATE_INSTALLEXT="Įdiegti %s %s"
|
||||
LIVEUPDATE_ERROR="Klaida"
|
||||
LIVEUPDATE_SUCCESS="Pavyko"
|
||||
|
||||
LIVEUPDATE_ICON_UNSUPPORTED="Automatinis atnaujinimas nepalaikomas"
|
||||
LIVEUPDATE_ICON_CRASHED="Įvyko automatinio atnaujinimo programinis lūžis"
|
||||
LIVEUPDATE_ICON_CURRENT="Jūs turite naujausią programos versiją."
|
||||
LIVEUPDATE_ICON_UPDATES="GALIMAS ATNAUJINIMAS! NORĖDAMI ATSINAUJINTI SPRAGTELĖKITE ČIA"
|
||||
|
||||
; LIVEUPDATE_RELEASEINFO="Information"
|
||||
; LIVEUPDATE_RELEASENOTES="Release notes"
|
||||
; LIVEUPDATE_READMOREINFO="Read more"
|
||||
|
||||
; LIVEUPDATE_NAGSCREEN_HEAD="WARNING! You are about to install an unstable version."
|
||||
; LIVEUPDATE_NAGSCREEN_BODY="You are about to install an unstable version (%s - %s). Unstable versions may have undergone minimal or no testing and contain bugs which may have an serious adverse to the stability and functionality of your web site. If you are not sure about what you are about to do, please close this browser window. If you are absolutely certain you understand the risks involved with the installation of unstable releases, please click the button below to continue the installation of this unstable release."
|
||||
; LIVEUPDATE_NAGSCREEN_BUTTON="I understand the risks. Continue with the installation."
|
||||
|
||||
; LIVEUPDATE_STABILITY_ALPHA="Alpha"
|
||||
; LIVEUPDATE_STABILITY_BETA="Beta"
|
||||
; LIVEUPDATE_STABILITY_RC="RC"
|
||||
; LIVEUPDATE_STABILITY_STABLE="Stable"
|
||||
; LIVEUPDATE_STABILITY_SVN="SVN"
|
||||
@ -0,0 +1,56 @@
|
||||
; Akeeba Live Update
|
||||
; Copyright (c)2010-2013 Nicholas K. Dionysopoulos / AkeebaBackup.com
|
||||
; Licensed under the GNU LGPLv3 or later <http://www.gnu.org/copyleft/lesser.html>
|
||||
|
||||
LIVEUPDATE_TASK_OVERVIEW="Direkteoppdatering"
|
||||
|
||||
LIVEUPDATE_NOTSUPPORTED_HEAD="Direkteoppdatering støttes ikke på denne serveren."
|
||||
LIVEUPDATE_NOTSUPPORTED_INFO="Din server indikerer at direkteoppdatering ikke støttes. Kontakt din leverandør og spør om de kan aktivere cURL PHP eller aktivere URL fopen(). Dersom disse allerede er aktivert kan du spørre om de kan konfigurere sin brannmur slik at den gir tilgang til følgende URL:"
|
||||
LIVEUPDATE_NOTSUPPORTED_ALTMETHOD="Du kan alltid oppdatere <var>%s</var> manuelt ved å besøke vår side. Laste ned og installer den nyeste versjonen ved hjelp av Joomlas installasjonsfunksjon."
|
||||
|
||||
LIVEUPDATE_STUCK_HEAD="Direkteoppdateringen har merket seg selv som krasjet."
|
||||
LIVEUPDATE_STUCK_INFO="Direkteoppdatering avdekket at den krasjet forrige gang den forsøkte å kontakte oppdateringsserveren. Dette betyr vanligvis at du benytter en leverandør av netthotell som aktivt blokkerer kommunikasjon med eksterne nettsteder. Hvis du ønsker å forsøke på nytt å hente oppdateringsinformasjonen, klikk på knappen "_QQ_"Oppdater informasjon"_QQ_" nedenfor. Dersom dette resulterer i en blank side bør du kontakte din leverandør av netthotell for å melde fra om dette problemet."
|
||||
|
||||
LIVEUPDATE_ERROR_NEEDSAUTH="Du må oppgi ditt brukernavn/passord eller nedlastnings-id i komponentens innstillinger før du forsøker å oppdatere til siste versjon. Oppdateringsknappen vil forbli deaktivert inntil du gjøre dette."
|
||||
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 informasjon"
|
||||
LIVEUPDATE_DO_UPDATE="Oppdater til siste versjon"
|
||||
|
||||
LIVEUPDATE_FTP_REQUIRED="Direkteoppdatering har avdekket at den må bruke FTP, for å laste ned og installere oppdateringen, men du har ikke angitt og lagret FTP-informasjonen under nettstedets globale konfigurasjon .<br /><br />Du må oppgi FTP-brukernavn og passord nedenfor for å kunne fortsette med oppdateringen."
|
||||
LIVEUPDATE_FTP="FTP-informasjon"
|
||||
LIVEUPDATE_FTPUSERNAME="FTP-brukernavn"
|
||||
LIVEUPDATE_FTPPASSWORD="FTP-passord"
|
||||
LIVEUPDATE_DOWNLOAD_AND_INSTALL="Last ned og installer oppdateringen"
|
||||
|
||||
LIVEUPDATE_DOWNLOAD_FAILED="Nedlasting av oppdateringspakke mislyktes. Påse at temp-mappen er skrivbar, eller at du har aktivert Joomlas FTP-innstillinger under nettstedets globale konfigurasjon."
|
||||
LIVEUPDATE_EXTRACT_FAILED="Utpakking av oppdateringspakken mislyktes. Forsøk å oppdatere utvidelsen manuelt."
|
||||
|
||||
LIVEUPDATE_INVALID_PACKAGE_TYPE="Ugyldig pakketype. Oppdateringen kan ikke fortsette."
|
||||
LIVEUPDATE_INSTALLEXT="Installer %s %s"
|
||||
LIVEUPDATE_ERROR="Feil"
|
||||
LIVEUPDATE_SUCCESS="Vellykket"
|
||||
|
||||
LIVEUPDATE_ICON_UNSUPPORTED="Direkteoppdatering støttes ikke."
|
||||
LIVEUPDATE_ICON_CRASHED="Direkteoppdatering krasjet."
|
||||
LIVEUPDATE_ICON_CURRENT="Du har den nyeste versjonen."
|
||||
LIVEUPDATE_ICON_UPDATES="OPPDATERING FUNNET! KLIKK FOR Å OPPDATERE."
|
||||
|
||||
; LIVEUPDATE_RELEASEINFO="Information"
|
||||
; LIVEUPDATE_RELEASENOTES="Release notes"
|
||||
; LIVEUPDATE_READMOREINFO="Read more"
|
||||
|
||||
; LIVEUPDATE_NAGSCREEN_HEAD="WARNING! You are about to install an unstable version."
|
||||
; LIVEUPDATE_NAGSCREEN_BODY="You are about to install an unstable version (%s - %s). Unstable versions may have undergone minimal or no testing and contain bugs which may have an serious adverse to the stability and functionality of your web site. If you are not sure about what you are about to do, please close this browser window. If you are absolutely certain you understand the risks involved with the installation of unstable releases, please click the button below to continue the installation of this unstable release."
|
||||
; LIVEUPDATE_NAGSCREEN_BUTTON="I understand the risks. Continue with the installation."
|
||||
|
||||
; LIVEUPDATE_STABILITY_ALPHA="Alpha"
|
||||
; LIVEUPDATE_STABILITY_BETA="Beta"
|
||||
; LIVEUPDATE_STABILITY_RC="RC"
|
||||
; LIVEUPDATE_STABILITY_STABLE="Stable"
|
||||
; LIVEUPDATE_STABILITY_SVN="SVN"
|
||||
@ -0,0 +1,56 @@
|
||||
; Akeeba Live Update
|
||||
; Copyright (c)2010-2013 Nicholas K. Dionysopoulos / AkeebaBackup.com
|
||||
; Licensed under the GNU LGPLv3 or later <http://www.gnu.org/copyleft/lesser.html>
|
||||
|
||||
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:"_QQ_""
|
||||
LIVEUPDATE_NOTSUPPORTED_ALTMETHOD="U kunt <var>%s</var> 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 "_QQ_"Ververs update informatie"_QQ_" 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.<br/><br/>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."
|
||||
|
||||
; LIVEUPDATE_RELEASEINFO="Information"
|
||||
; LIVEUPDATE_RELEASENOTES="Release notes"
|
||||
; LIVEUPDATE_READMOREINFO="Read more"
|
||||
|
||||
; LIVEUPDATE_NAGSCREEN_HEAD="WARNING! You are about to install an unstable version."
|
||||
; LIVEUPDATE_NAGSCREEN_BODY="You are about to install an unstable version (%s - %s). Unstable versions may have undergone minimal or no testing and contain bugs which may have an serious adverse to the stability and functionality of your web site. If you are not sure about what you are about to do, please close this browser window. If you are absolutely certain you understand the risks involved with the installation of unstable releases, please click the button below to continue the installation of this unstable release."
|
||||
; LIVEUPDATE_NAGSCREEN_BUTTON="I understand the risks. Continue with the installation."
|
||||
|
||||
; LIVEUPDATE_STABILITY_ALPHA="Alpha"
|
||||
; LIVEUPDATE_STABILITY_BETA="Beta"
|
||||
; LIVEUPDATE_STABILITY_RC="RC"
|
||||
; LIVEUPDATE_STABILITY_STABLE="Stable"
|
||||
; LIVEUPDATE_STABILITY_SVN="SVN"
|
||||
@ -0,0 +1,56 @@
|
||||
; Akeeba Live Update
|
||||
; Copyright (c)2010-2013 Nicholas K. Dionysopoulos / AkeebaBackup.com
|
||||
; Licensed under the GNU LGPLv3 or later <http://www.gnu.org/copyleft/lesser.html>
|
||||
|
||||
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:"_QQ_""
|
||||
LIVEUPDATE_NOTSUPPORTED_ALTMETHOD="Zawsze można zaktualizować <var>%s</var> 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 "_QQ_"Odśwież informacje o aktualizacji"_QQ_" 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!.<br/><br/>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!."
|
||||
|
||||
; LIVEUPDATE_RELEASEINFO="Information"
|
||||
; LIVEUPDATE_RELEASENOTES="Release notes"
|
||||
; LIVEUPDATE_READMOREINFO="Read more"
|
||||
|
||||
; LIVEUPDATE_NAGSCREEN_HEAD="WARNING! You are about to install an unstable version."
|
||||
; LIVEUPDATE_NAGSCREEN_BODY="You are about to install an unstable version (%s - %s). Unstable versions may have undergone minimal or no testing and contain bugs which may have an serious adverse to the stability and functionality of your web site. If you are not sure about what you are about to do, please close this browser window. If you are absolutely certain you understand the risks involved with the installation of unstable releases, please click the button below to continue the installation of this unstable release."
|
||||
; LIVEUPDATE_NAGSCREEN_BUTTON="I understand the risks. Continue with the installation."
|
||||
|
||||
; LIVEUPDATE_STABILITY_ALPHA="Alpha"
|
||||
; LIVEUPDATE_STABILITY_BETA="Beta"
|
||||
; LIVEUPDATE_STABILITY_RC="RC"
|
||||
; LIVEUPDATE_STABILITY_STABLE="Stable"
|
||||
; LIVEUPDATE_STABILITY_SVN="SVN"
|
||||
@ -0,0 +1,56 @@
|
||||
; Akeeba Live Update
|
||||
; Copyright (c)2010-2013 Nicholas K. Dionysopoulos / AkeebaBackup.com
|
||||
; Licensed under the GNU LGPLv3 or later <http://www.gnu.org/copyleft/lesser.html>
|
||||
|
||||
LIVEUPDATE_TASK_OVERVIEW="Actualização ao vivo"
|
||||
|
||||
LIVEUPDATE_NOTSUPPORTED_HEAD="A atualização ao vivo não esta suportada neste servidor"
|
||||
LIVEUPDATE_NOTSUPPORTED_INFO="O servidor indica que Atualização ao Vivo não é compatível. Entre em contato com seu Hosting e solicite que permitam a extensão cURL PHP ou desativem o URL fopen(). Se estão já desabilitadas, por favor, solicite que configurem seu firewall para que permita o acesso do seguinte endereço URL:"_QQ_""
|
||||
LIVEUPDATE_NOTSUPPORTED_ALTMETHOD="Sempre é possível atualizar <var>%s</var>, visite nosso site manualmente, baixe a última versão e instale usando o instalador de extensões Joomla!."
|
||||
|
||||
LIVEUPDATE_STUCK_HEAD="Actualização ao Vivo marcou como se danificou"
|
||||
LIVEUPDATE_STUCK_INFO="Live Update determinou que foi danificado a última vez que tratou de contatar com o servidor de atualizações. Isto d emodo geral indica uma série de bloqueios ativos de comunicação com sites externos. Se deseja voltar a tentar buscar a informação de atualização, por favor clique em 'Atualizar informação de atualização' no botão abaixo. Em caso de ontér uma página em branco como resultado, por favor contate com seu Hosting e informe sobre este tema."
|
||||
|
||||
LIVEUPDATE_ERROR_NEEDSAUTH="Tem que facilitar seu nome de usuário/senha ou ID de download nos parâmetros do componente antes de tentar atualizar a última versão. O botão de atualização permanecerá desativado até que não realize esta ação."
|
||||
LIVEUPDATE_HASUPDATES_HEAD="Existe uma versão nova disponível"
|
||||
LIVEUPDATE_NOUPDATES_HEAD="Você já tem a última versão"
|
||||
LIVEUPDATE_CURRENTVERSION="Versão instalada"
|
||||
LIVEUPDATE_LATESTVERSION="Última versão"
|
||||
LIVEUPDATE_LATESTRELEASED="Data do último lançamento"
|
||||
LIVEUPDATE_DOWNLOADURL="URL de download direto"
|
||||
|
||||
LIVEUPDATE_REFRESH_INFO="Refrescar a informação de atualização"
|
||||
LIVEUPDATE_DO_UPDATE="Atualizar a última versão"
|
||||
|
||||
LIVEUPDATE_FTP_REQUIRED="Live Update determina que é necessário o uso de FTP para baixar e instalar a atualização, mas não guardou sua informação de acesso FTP em seu site Joomla!, em Configuração Global. <br/><br/> Indique o nome de usuário FTP e senha para continuar com a atualização."
|
||||
LIVEUPDATE_FTP="Informação FTP"
|
||||
LIVEUPDATE_FTPUSERNAME="Usuário FTP"
|
||||
LIVEUPDATE_FTPPASSWORD="Senha FTP"
|
||||
LIVEUPDATE_DOWNLOAD_AND_INSTALL="Baixar e instalar a atualização"
|
||||
|
||||
LIVEUPDATE_DOWNLOAD_FAILED="O download do pacote de atualização falhou. Assegure-se que seu diretório /tmp pode escrever ou que habilitou as opções de FTP na Configuração Global do seu site Joomla!"
|
||||
LIVEUPDATE_EXTRACT_FAILED="Falhou a descompressão do pacote de atualização. Por favor, tente atualizar a extensão manualmente."
|
||||
|
||||
LIVEUPDATE_INVALID_PACKAGE_TYPE="Tipo de pacote não é válido. A atualização não pode continuar."
|
||||
LIVEUPDATE_INSTALLEXT="Instale %s %s"
|
||||
LIVEUPDATE_ERROR="Erro"
|
||||
LIVEUPDATE_SUCCESS="Êxito"
|
||||
|
||||
LIVEUPDATE_ICON_UNSUPPORTED="Atualização ao Vivo não suportadactualización en Vivo no soportada"
|
||||
LIVEUPDATE_ICON_CRASHED="Atualização ao Vivo foi danificada"
|
||||
LIVEUPDATE_ICON_CURRENT="Você tem a última versão"
|
||||
LIVEUPDATE_ICON_UPDATES="ATUALIZAÇÃO ENCONTRADA! CLIQUE PARA ATUALIZAR."
|
||||
|
||||
LIVEUPDATE_RELEASEINFO="Informações"
|
||||
LIVEUPDATE_RELEASENOTES="Notas de lançamento"
|
||||
LIVEUPDATE_READMOREINFO="Leia mais"
|
||||
|
||||
; LIVEUPDATE_NAGSCREEN_HEAD="WARNING! You are about to install an unstable version."
|
||||
; LIVEUPDATE_NAGSCREEN_BODY="You are about to install an unstable version (%s - %s). Unstable versions may have undergone minimal or no testing and contain bugs which may have an serious adverse to the stability and functionality of your web site. If you are not sure about what you are about to do, please close this browser window. If you are absolutely certain you understand the risks involved with the installation of unstable releases, please click the button below to continue the installation of this unstable release."
|
||||
; LIVEUPDATE_NAGSCREEN_BUTTON="I understand the risks. Continue with the installation."
|
||||
|
||||
; LIVEUPDATE_STABILITY_ALPHA="Alpha"
|
||||
; LIVEUPDATE_STABILITY_BETA="Beta"
|
||||
; LIVEUPDATE_STABILITY_RC="RC"
|
||||
; LIVEUPDATE_STABILITY_STABLE="Stable"
|
||||
; LIVEUPDATE_STABILITY_SVN="SVN"
|
||||
@ -0,0 +1,56 @@
|
||||
; Akeeba Live Update
|
||||
; Copyright (c)2010-2013 Nicholas K. Dionysopoulos / AkeebaBackup.com
|
||||
; Licensed under the GNU LGPLv3 or later <http://www.gnu.org/copyleft/lesser.html>
|
||||
|
||||
LIVEUPDATE_TASK_OVERVIEW="Atualizações"
|
||||
|
||||
LIVEUPDATE_NOTSUPPORTED_HEAD="Atualizações diretas não são suportadas neste servidor"
|
||||
LIVEUPDATE_NOTSUPPORTED_INFO="O seu servidor indica que a atualização direta não é suportada. Por favor contate o seu alojamento e peça-lhes para ativar a extensão cURL do PHP ou ativar a função fopen(). Se estas já estiverem ativadas, por favor peça-lhes para configurar o firewall para permitir o acesso à seguinte URL:"
|
||||
LIVEUPDATE_NOTSUPPORTED_ALTMETHOD="Pode sempre atualizar pelo processo normal <var>%s</var> visita o nosso sítio, descarrega a última versão e instala pelo instalador de extensões do Joomla."
|
||||
|
||||
LIVEUPDATE_STUCK_HEAD="O atualizador direto marcou-se a si mesmo como defeituoso"
|
||||
LIVEUPDATE_STUCK_INFO="O atualizador direto indica que bloqueou na última vez que tentou entrar em contato com o servidor de atualização. Isso geralmente indica um alojamento que bloqueia ativamente as comunicações com sites externos. Se quiser tentar novamente obter as informações de atualização, por favor clique no botão ATUALIZAR INFORMAÇÕES DE ATUALIZAÇÃO. Se isto resultar numa página em branco, carrtegue no botão voltar e depois contate seu gestor de alojamento e relate este problema."
|
||||
|
||||
LIVEUPDATE_ERROR_NEEDSAUTH="Deve indicar um nome de utilizador/senha ou Download ID para os parâmetros do componente antes de tentar fazer a atualização para a última versão. O botão de atualização continuará desativado até que faça isso."
|
||||
LIVEUPDATE_HASUPDATES_HEAD="Está disponível uma nova versão"
|
||||
LIVEUPDATE_NOUPDATES_HEAD="Existe uma nova versão disponível"
|
||||
LIVEUPDATE_CURRENTVERSION="Versão instalada"
|
||||
LIVEUPDATE_LATESTVERSION="Última versão"
|
||||
LIVEUPDATE_LATESTRELEASED="Data da última versão"
|
||||
LIVEUPDATE_DOWNLOADURL="URL de transferência direta"
|
||||
|
||||
LIVEUPDATE_REFRESH_INFO="Atualizar as informações de atualização"
|
||||
LIVEUPDATE_DO_UPDATE="Atualizar para versão mais recente"
|
||||
|
||||
LIVEUPDATE_FTP_REQUIRED="O atualizador direto indica necessitar de utilizar o FTP para descarregar e instalar a sua atualização, mas você não indicou as suas informações de autenticação FTP na Configuração Global do Joomla!.<br/><br/>Por favor, indique abaixo o nome de utilizador e senha FTP para prosseguir com a atualização."
|
||||
LIVEUPDATE_FTP="Informação de FTP"
|
||||
LIVEUPDATE_FTPUSERNAME="Nome de utilizador FTP"
|
||||
LIVEUPDATE_FTPPASSWORD="Senha FTP"
|
||||
LIVEUPDATE_DOWNLOAD_AND_INSTALL="Transferir e instalar atualização"
|
||||
|
||||
LIVEUPDATE_DOWNLOAD_FAILED="A transferência do pacote de atualização falhou. Certifique-se de que a pasta TEMP é editável ou que ativou as opções de FTP do Joomla nas configurações globais de seu sítio."
|
||||
LIVEUPDATE_EXTRACT_FAILED="A extração do pacote de atualização falhou. Por favor tente atualizar a extensão manualmente."
|
||||
|
||||
LIVEUPDATE_INVALID_PACKAGE_TYPE="Tipo de pacote inválido. A atualização não pode continuar."
|
||||
LIVEUPDATE_INSTALLEXT="Instalar %s %s"
|
||||
LIVEUPDATE_ERROR="Erro"
|
||||
LIVEUPDATE_SUCCESS="Sucesso"
|
||||
|
||||
LIVEUPDATE_ICON_UNSUPPORTED="Atualização direta não suportada"
|
||||
LIVEUPDATE_ICON_CRASHED="Atualização direta bloqueou"
|
||||
LIVEUPDATE_ICON_CURRENT="Tem a versão mais recente"
|
||||
LIVEUPDATE_ICON_UPDATES="ATUALIZAÇÃO ENCONTRADA! Clique para atualizar."
|
||||
|
||||
LIVEUPDATE_RELEASEINFO="Informação"
|
||||
LIVEUPDATE_RELEASENOTES="Notas da versão"
|
||||
LIVEUPDATE_READMOREINFO="Ver mais"
|
||||
|
||||
LIVEUPDATE_NAGSCREEN_HEAD="ATENÇÃO: Está prestes a instalar uma versão não estável!"
|
||||
LIVEUPDATE_NAGSCREEN_BODY="Está prestes a instalar uma versão instável (%s - %s). Versões instáveis destinam-se a programadores avançados já que podem podem ter sofrido testes mínimos ou mesmo nenhuns e conter falhas desconhecidas que podem ter um efeito adverso grave à estabilidade e funcionalidade do seu sítio. Se não tiver a certeza sobre o que está prestes a fazer, por favor, feche esta janela. Se estiver certo dos riscos envolvidos com a instalação de versões instáveis, então clique no botão abaixo para continuar a instalação desta versão instável."
|
||||
LIVEUPDATE_NAGSCREEN_BUTTON="Compreendo os riscos. Continuar com a instalação."
|
||||
|
||||
LIVEUPDATE_STABILITY_ALPHA="Alfa"
|
||||
LIVEUPDATE_STABILITY_BETA="Beta"
|
||||
LIVEUPDATE_STABILITY_RC="RC"
|
||||
LIVEUPDATE_STABILITY_STABLE="Estável"
|
||||
LIVEUPDATE_STABILITY_SVN="SVN"
|
||||
@ -0,0 +1,56 @@
|
||||
; Akeeba Live Update
|
||||
; Copyright (c)2010-2013 Nicholas K. Dionysopoulos / AkeebaBackup.com
|
||||
; Licensed under the GNU LGPLv3 or later <http://www.gnu.org/copyleft/lesser.html>
|
||||
|
||||
LIVEUPDATE_TASK_OVERVIEW="Автоматическое обновление"
|
||||
|
||||
LIVEUPDATE_NOTSUPPORTED_HEAD="Автоматическое обновление не поддерживается на этом сервере"
|
||||
LIVEUPDATE_NOTSUPPORTED_INFO="Ваш сервер сообщает, что автоматическое обновление не поддерживается. Пожалуйста, обратитесь к Вашему хостеру и попросите его разрешить CURL расширение для PHP или включить функцию URL FOPEN(). Если они уже включены, пожалуйста, попросите его настроить их сетевой экран так, чтобы она позволяла получить доступ к следующему адресу:"_QQ_""
|
||||
LIVEUPDATE_NOTSUPPORTED_ALTMETHOD="Вы всегда сможете обновить <var>%s</var> посетив наш сайт, вручную, загрузив последнюю версию и установив ее с помощью Joomla!."
|
||||
|
||||
LIVEUPDATE_STUCK_HEAD="Автоматическое обновление обнаружило ошибку"
|
||||
LIVEUPDATE_STUCK_INFO="Автоматическое обновление обнаружило, что произошла ошибка при последнем сеансе связи с сервером обновлений. Обычно это означает, что хост блокирует связи с внешними сайтами. Если Вы желаете снова получить информацию об обновлении, пожалуйста, нажмите кнопку "_QQ_"Освежить информацию об обновлении"_QQ_" , расположенную ниже. Если это приводит к появлению пустой страницы, пожалуйста, свяжитесь с Вашим хостером и сообщите об этой проблеме."
|
||||
|
||||
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!.<br/><br/>Просьба ввести свое имя пользователя и пароль 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="НАЙДЕНА НОВАЯ ВЕРСИЯ! НАЖМИТЕ ДЛЯ ОБНОВЛЕНИЯ."
|
||||
|
||||
; LIVEUPDATE_RELEASEINFO="Information"
|
||||
; LIVEUPDATE_RELEASENOTES="Release notes"
|
||||
; LIVEUPDATE_READMOREINFO="Read more"
|
||||
|
||||
; LIVEUPDATE_NAGSCREEN_HEAD="WARNING! You are about to install an unstable version."
|
||||
; LIVEUPDATE_NAGSCREEN_BODY="You are about to install an unstable version (%s - %s). Unstable versions may have undergone minimal or no testing and contain bugs which may have an serious adverse to the stability and functionality of your web site. If you are not sure about what you are about to do, please close this browser window. If you are absolutely certain you understand the risks involved with the installation of unstable releases, please click the button below to continue the installation of this unstable release."
|
||||
; LIVEUPDATE_NAGSCREEN_BUTTON="I understand the risks. Continue with the installation."
|
||||
|
||||
; LIVEUPDATE_STABILITY_ALPHA="Alpha"
|
||||
; LIVEUPDATE_STABILITY_BETA="Beta"
|
||||
; LIVEUPDATE_STABILITY_RC="RC"
|
||||
; LIVEUPDATE_STABILITY_STABLE="Stable"
|
||||
; LIVEUPDATE_STABILITY_SVN="SVN"
|
||||
@ -0,0 +1,56 @@
|
||||
; Akeeba Live Update
|
||||
; Copyright (c)2010-2013 Nicholas K. Dionysopoulos / AkeebaBackup.com
|
||||
; Licensed under the GNU LGPLv3 or later <http://www.gnu.org/copyleft/lesser.html>
|
||||
|
||||
; LIVEUPDATE_TASK_OVERVIEW="Live Update"
|
||||
|
||||
; 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_NOTSUPPORTED_ALTMETHOD="You can always update <var>%s</var> by visiting our site manually, downloading the latest release and installing it using Joomla!'s extension installer."
|
||||
|
||||
; 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 "_QQ_"Refresh update information"_QQ_" 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="A new version is available"
|
||||
; LIVEUPDATE_NOUPDATES_HEAD="You already have the latest version"
|
||||
; LIVEUPDATE_CURRENTVERSION="Installed version"
|
||||
; LIVEUPDATE_LATESTVERSION="Latest version"
|
||||
; LIVEUPDATE_LATESTRELEASED="Latest release date"
|
||||
; LIVEUPDATE_DOWNLOADURL="Direct download URL"
|
||||
|
||||
; LIVEUPDATE_REFRESH_INFO="Refresh update information"
|
||||
; LIVEUPDATE_DO_UPDATE="Update to the latest version"
|
||||
|
||||
; 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.<br/><br/>Please provide the FTP username and password below to proceed with the update."
|
||||
; LIVEUPDATE_FTP="FTP Information"
|
||||
; LIVEUPDATE_FTPUSERNAME="FTP Username"
|
||||
; LIVEUPDATE_FTPPASSWORD="FTP Password"
|
||||
; 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_EXTRACT_FAILED="Extracting the update package failed. Please try updating the extension manually."
|
||||
|
||||
; LIVEUPDATE_INVALID_PACKAGE_TYPE="Invalid package type. The update can not proceed."
|
||||
; LIVEUPDATE_INSTALLEXT="Install %s %s"
|
||||
; LIVEUPDATE_ERROR="Error"
|
||||
; LIVEUPDATE_SUCCESS="Success"
|
||||
|
||||
; LIVEUPDATE_ICON_UNSUPPORTED="Live Update not supported"
|
||||
; LIVEUPDATE_ICON_CRASHED="Live Update crashed"
|
||||
; LIVEUPDATE_ICON_CURRENT="You have the latest version"
|
||||
; LIVEUPDATE_ICON_UPDATES="UPDATE FOUND! CLICK TO UPDATE."
|
||||
|
||||
; LIVEUPDATE_RELEASEINFO="Information"
|
||||
; LIVEUPDATE_RELEASENOTES="Release notes"
|
||||
; LIVEUPDATE_READMOREINFO="Read more"
|
||||
|
||||
; LIVEUPDATE_NAGSCREEN_HEAD="WARNING! You are about to install an unstable version."
|
||||
; LIVEUPDATE_NAGSCREEN_BODY="You are about to install an unstable version (%s - %s). Unstable versions may have undergone minimal or no testing and contain bugs which may have an serious adverse to the stability and functionality of your web site. If you are not sure about what you are about to do, please close this browser window. If you are absolutely certain you understand the risks involved with the installation of unstable releases, please click the button below to continue the installation of this unstable release."
|
||||
; LIVEUPDATE_NAGSCREEN_BUTTON="I understand the risks. Continue with the installation."
|
||||
|
||||
; LIVEUPDATE_STABILITY_ALPHA="Alpha"
|
||||
; LIVEUPDATE_STABILITY_BETA="Beta"
|
||||
; LIVEUPDATE_STABILITY_RC="RC"
|
||||
; LIVEUPDATE_STABILITY_STABLE="Stable"
|
||||
; LIVEUPDATE_STABILITY_SVN="SVN"
|
||||
@ -0,0 +1,56 @@
|
||||
; Akeeba Live Update
|
||||
; Copyright (c)2010-2013 Nicholas K. Dionysopoulos / AkeebaBackup.com
|
||||
; Licensed under the GNU LGPLv3 or later <http://www.gnu.org/copyleft/lesser.html>
|
||||
|
||||
LIVEUPDATE_TASK_OVERVIEW="Posodobljanje v živo"
|
||||
|
||||
LIVEUPDATE_NOTSUPPORTED_HEAD="Posodabljanje v živo ni podprto na tem strežniku"
|
||||
LIVEUPDATE_NOTSUPPORTED_INFO="Vaš server ne podpira Live Posodobitev. Obrnite se na svojega gostitelja in ga prosite, da se omogoči razširitev CURL PHP ali aktivira URL fopen () ovoje. Če so ti že omogočeno, ga prosite, naj svoje požarni zid konfigurirate tako, da omogoča dostop do naslednjih URL:"
|
||||
LIVEUPDATE_NOTSUPPORTED_ALTMETHOD="Vedno lahko posodobite <var>%s</var> tako, da obiščete našo spletno stran, ročno prenesete najnovejše sprostitve in jih namestite z Joomla! 's namestitev razširitve."
|
||||
|
||||
LIVEUPDATE_STUCK_HEAD="Posodobitev v živo je označena kot spodletelo"
|
||||
LIVEUPDATE_STUCK_INFO="Posodobitev v živo je določila, da se je zrušila v zadnjem času, ko je poskušala stopiti v stik strežnika za posodabljanje. To ponavadi pomeni, gostitelja, ki aktivno blokira komunikacijo z zunanjimi spletnimi stranmi. Če želite ponoviti ljubek posodabljanje informacij, prosimo, kliknite "_QQ_"Osvežite informacije posodabljanja"_QQ_" spodnji gumb. Če bo rezultat prazna stran, prosimo, obrnite se na gostitelja, in poročajte o tej zadevi."
|
||||
|
||||
LIVEUPDATE_ERROR_NEEDSAUTH="Morate predloži svoje uporabniško ime / geslo ali ID Prenosa s parametri sestavnega dela, preden poskušate nadgraditi na najnovejšo različico. Gumb Nadgradnja bo ostal onemogočen."
|
||||
LIVEUPDATE_HASUPDATES_HEAD="Nova različica je na voljo"
|
||||
LIVEUPDATE_NOUPDATES_HEAD="Že imate zadnjo verzijo"
|
||||
LIVEUPDATE_CURRENTVERSION="Nameščena različica"
|
||||
LIVEUPDATE_LATESTVERSION="Zadnja različica"
|
||||
LIVEUPDATE_LATESTRELEASED="Zadnji Datum izdaje"
|
||||
LIVEUPDATE_DOWNLOADURL="Direktni prenos URL"
|
||||
|
||||
LIVEUPDATE_REFRESH_INFO="Osveži informacij posodobitev"
|
||||
LIVEUPDATE_DO_UPDATE="Posodobitev na najnovejšo različico"
|
||||
|
||||
LIVEUPDATE_FTP_REQUIRED="Posodobitev v živo določa, da morate uporabiti FTP, da prenesete in namestite posodobitev, vendar niste shranili FTP podatke za prijavo v vaši Joomla! Globalne Konfiguracije.<br/><br/>Prosimo, za FTP uporabniško ime in geslo za nadaljevanje posodobitve."
|
||||
LIVEUPDATE_FTP="FTP Informacije"
|
||||
LIVEUPDATE_FTPUSERNAME="FTP Uporabniško ime"
|
||||
LIVEUPDATE_FTPPASSWORD="FTP Geslo"
|
||||
LIVEUPDATE_DOWNLOAD_AND_INSTALL="Prenesite in namestite posodobitev"
|
||||
|
||||
LIVEUPDATE_DOWNLOAD_FAILED="Nalaganje posodobitvenega paketa ni uspela. Prepričajte se, da je vaš temp-imenik zapisljiv ali da ste omogočili Joomla! 'S FTP možnosti v vaše strani Globalne Konfiguracije."
|
||||
LIVEUPDATE_EXTRACT_FAILED="Pridobivanja posodobitvenega paketa ni uspela. Poskusite posodabljanje razširitve ročno."
|
||||
|
||||
LIVEUPDATE_INVALID_PACKAGE_TYPE="Neveljavna vrsta paketa.Posodobitev ne morem nadaljevati."
|
||||
LIVEUPDATE_INSTALLEXT="Nameščeno %s %s"
|
||||
LIVEUPDATE_ERROR="Napaka"
|
||||
LIVEUPDATE_SUCCESS="Uspešno"
|
||||
|
||||
LIVEUPDATE_ICON_UNSUPPORTED="Posodabljanje v živo ni podprto"
|
||||
LIVEUPDATE_ICON_CRASHED="Posodabljanje v živo je spodletelo"
|
||||
LIVEUPDATE_ICON_CURRENT="Imate najnovejšo različico"
|
||||
LIVEUPDATE_ICON_UPDATES="POSODOBITEV NA VOLJO! KLIKNITE ZA POSODOBITEV."
|
||||
|
||||
LIVEUPDATE_RELEASEINFO="Informacije"
|
||||
LIVEUPDATE_RELEASENOTES="Opombe ob izdaji"
|
||||
LIVEUPDATE_READMOREINFO="Preberite več"
|
||||
|
||||
LIVEUPDATE_NAGSCREEN_HEAD="OPOZORILO! Ste pred tem namestiti nestabilno različico."
|
||||
LIVEUPDATE_NAGSCREEN_BODY="Ste pred tem namestili nestabilno različico (%s - %s). Nestabilne različice so lahko opravili minimalno ali brez testiranja in vsebujejo napake, ki imajo lahko resno škodljivost za stabilnost in funkcionalnost vaše spletne strani. Če niste prepričani o tem, kaj si o tem narediti, zaprite to okno brskalnika. Če ste popolnoma prepričani, da razumete tveganja, povezana z namestitvijo nestabilnih izdaj, kliknite na spodnji gumb, da nadaljujte z namestitvijo te nestabilne izdaje."
|
||||
LIVEUPDATE_NAGSCREEN_BUTTON="Razumem tveganja. Nadaljujte z namestitvijo."
|
||||
|
||||
LIVEUPDATE_STABILITY_ALPHA="Alfa"
|
||||
LIVEUPDATE_STABILITY_BETA="Beta"
|
||||
LIVEUPDATE_STABILITY_RC="RC"
|
||||
LIVEUPDATE_STABILITY_STABLE="Stabilna"
|
||||
LIVEUPDATE_STABILITY_SVN="SVN"
|
||||
@ -0,0 +1,56 @@
|
||||
; Akeeba Live Update
|
||||
; Copyright (c)2010-2013 Nicholas K. Dionysopoulos / AkeebaBackup.com
|
||||
; Licensed under the GNU LGPLv3 or later <http://www.gnu.org/copyleft/lesser.html>
|
||||
|
||||
LIVEUPDATE_TASK_OVERVIEW="Live Update"
|
||||
|
||||
LIVEUPDATE_NOTSUPPORTED_HEAD="Live Update stöds inte på denna server"
|
||||
LIVEUPDATE_NOTSUPPORTED_INFO="Din server indikerar att Live Update inte stöds. Kontakta ditt webbhotell och be dem aktivera PHP-tillägget cURL och att aktivera URL fopen() wrappers. Om detta redan är aktiverat skall du be dem konfiurera brandväggen så att den accepterar anslutningar från följande URL:"_QQ_""
|
||||
LIVEUPDATE_NOTSUPPORTED_ALTMETHOD="Du kan alltid uppdatera <var>%s</var> manuellt genom att vår webbplats och ladda ned senaste utgåvan och installera via Joomla som vanligt."
|
||||
|
||||
LIVEUPDATE_STUCK_HEAD="Live Update har markerat sig själv som krashad"
|
||||
LIVEUPDATE_STUCK_INFO="Live Update har indikerat att den kraschade förra gången den försökte kontakta uppdateringsservern. Detta händer vanligen om kommunikationen med externa webbplatser aktivt har blockerats. Om du vill fortsätta hämta uppdateringsinformation, klicka på knappen "_QQ_"Hämta uppdateringsinfo på nytt"_QQ_" här nedan. Om detta resluterar i en blank sida skall du kontakta ditt webbhotell och rapportera ärendet."
|
||||
|
||||
LIVEUPDATE_ERROR_NEEDSAUTH="Du måste ange användarnamn/lösenord eller Nedladdnings-ID i komponentens Inställningar innan du försöker uppdatera till senaste version. Uppgraderingsknappen kommer att vara inaktiv till dess detta är gjort."
|
||||
LIVEUPDATE_HASUPDATES_HEAD="Det finns en ny version tillgänglig"
|
||||
LIVEUPDATE_NOUPDATES_HEAD="Du har den senatste versionen"
|
||||
LIVEUPDATE_CURRENTVERSION="Installerad version"
|
||||
LIVEUPDATE_LATESTVERSION="Senaste version"
|
||||
LIVEUPDATE_LATESTRELEASED="Senaste utgåvodatum"
|
||||
LIVEUPDATE_DOWNLOADURL="Direkt nedladdnings-URL"
|
||||
|
||||
LIVEUPDATE_REFRESH_INFO="Hämta uppdateringsinformation"
|
||||
LIVEUPDATE_DO_UPDATE="Uppdatera till senaste version"
|
||||
|
||||
LIVEUPDATE_FTP_REQUIRED="Live Update har upptäckt att den behöver använda FTP för att kunna ladda ned och installera uppdateringen. Du har inte sparat din FTP-inloggningsinfo i Joomlas globala inställningar.<br/><br/>Ange ditt FTP användarnamn och lösenord nedan för att fortsätta med uppdateringen."
|
||||
LIVEUPDATE_FTP="FTP-Information"
|
||||
LIVEUPDATE_FTPUSERNAME="FTP användarnamn"
|
||||
LIVEUPDATE_FTPPASSWORD="FTP Lösenord"
|
||||
LIVEUPDATE_DOWNLOAD_AND_INSTALL="Ladda ned och installera uppdateringen"
|
||||
|
||||
LIVEUPDATE_DOWNLOAD_FAILED="Nedladdningen av uppdateringen misslyckades. Kontrollera att temp-mappen är skrivbar och att du aktiverat Joomla!s FTP-lager i de globala inställningarna för din webbplats."
|
||||
LIVEUPDATE_EXTRACT_FAILED="Uppackningen av uppdaterinspaketet misslyckades. Försök att uppdatera tillägget manuellt."
|
||||
|
||||
LIVEUPDATE_INVALID_PACKAGE_TYPE="Ogiltig pakettyp. Uppdateringen kan inte fortsätta."
|
||||
LIVEUPDATE_INSTALLEXT="Installera %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."
|
||||
|
||||
LIVEUPDATE_RELEASEINFO="Information"
|
||||
LIVEUPDATE_RELEASENOTES="Release notes"
|
||||
LIVEUPDATE_READMOREINFO="Läs mer"
|
||||
|
||||
; LIVEUPDATE_NAGSCREEN_HEAD="WARNING! You are about to install an unstable version."
|
||||
; LIVEUPDATE_NAGSCREEN_BODY="You are about to install an unstable version (%s - %s). Unstable versions may have undergone minimal or no testing and contain bugs which may have an serious adverse to the stability and functionality of your web site. If you are not sure about what you are about to do, please close this browser window. If you are absolutely certain you understand the risks involved with the installation of unstable releases, please click the button below to continue the installation of this unstable release."
|
||||
; LIVEUPDATE_NAGSCREEN_BUTTON="I understand the risks. Continue with the installation."
|
||||
|
||||
; LIVEUPDATE_STABILITY_ALPHA="Alpha"
|
||||
; LIVEUPDATE_STABILITY_BETA="Beta"
|
||||
; LIVEUPDATE_STABILITY_RC="RC"
|
||||
; LIVEUPDATE_STABILITY_STABLE="Stable"
|
||||
; LIVEUPDATE_STABILITY_SVN="SVN"
|
||||
@ -0,0 +1,56 @@
|
||||
; Akeeba Live Update
|
||||
; Copyright (c)2010-2013 Nicholas K. Dionysopoulos / AkeebaBackup.com
|
||||
; Licensed under the GNU LGPLv3 or later <http://www.gnu.org/copyleft/lesser.html>
|
||||
|
||||
LIVEUPDATE_TASK_OVERVIEW="Canlı Güncelleme"
|
||||
|
||||
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="<var>%s</var> 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üncellemede bir sorun çıkmış"
|
||||
LIVEUPDATE_STUCK_INFO="Canlı Güncelleme, güncelleme sunucusuna son kez bağlanmaya çalıştığında bir sorun çıkmış. Bu duruma genellikle dışarıdaki sunuculara yapılan bağlantıları engelleyen bir ayar yol açar. Güncelleme bilgisini yeniden almak isterseniz lütfen aşağıdaki "_QQ_"Güncelleme bilgisini alın"_QQ_" düğmesine tıklayın. Boş beyaz bir sayfa ile karşılaşırsanız bu durumu sunucu yöneticinize iletin."
|
||||
|
||||
LIVEUPDATE_ERROR_NEEDSAUTH="Son sürüme güncellemeyi denemeden önce, bileşen ayarları bölümüne kullanıcı adınızı/parolanızı ya da indirme kodunuzu yazmalısınız. Bu bilgileri yazana kadar Güncelleyin düğmesi devre dışı kalır."
|
||||
LIVEUPDATE_HASUPDATES_HEAD="Yeni bir sürüm var"
|
||||
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ın"
|
||||
LIVEUPDATE_DO_UPDATE="Son sürüme güncelleyin"
|
||||
|
||||
LIVEUPDATE_FTP_REQUIRED="Canlı Güncelleme, güncellemeyi indirip kurmak yerine FTP kullanmaya gerek duyuyor, ancak FTP bilgilerinizi Joomla! Genel Ayarlarına kaydetmemişsiniz.<br/><br/>Bu güncellemeyi yapabilmek için FTP kullanıcı adı ve parolanızı aşağıya yazın."
|
||||
LIVEUPDATE_FTP="FTP Bilgileri"
|
||||
LIVEUPDATE_FTPUSERNAME="FTP Kullanıcı Adı"
|
||||
LIVEUPDATE_FTPPASSWORD="FTP Parolası"
|
||||
LIVEUPDATE_DOWNLOAD_AND_INSTALL="Güncellemeyi indirin ve yükleyin"
|
||||
|
||||
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 el ile güncellemeyi deneyin."
|
||||
|
||||
LIVEUPDATE_INVALID_PACKAGE_TYPE="Geçersiz paket tipi. Güncelleme yapılamıyor."
|
||||
LIVEUPDATE_INSTALLEXT="%s %s yükleyin"
|
||||
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."
|
||||
|
||||
LIVEUPDATE_RELEASEINFO="Bilgiler"
|
||||
LIVEUPDATE_RELEASENOTES="Yayın Notları"
|
||||
LIVEUPDATE_READMOREINFO="Devamını okuyun"
|
||||
|
||||
LIVEUPDATE_NAGSCREEN_HEAD="DİKKAT! Kararsız bir sürüm yüklemek üzeresiniz."
|
||||
LIVEUPDATE_NAGSCREEN_BODY="Kararsız bir sürüm yüklemek üzeresiniz (%s - %s). Kararsız sürümler çok az denendiği ya da hiç denenmediği için hatalar içerir ve web sitenizin düzgün çalışmasını engelleyebilir. Ne yaptığınızdan emin değilseniz bu tarayıcı penceresini kapatın. Kararsız sürümleri yüklemekle alacağınız risklerin farkındaysanız, yüklemeye devam etmek için aşağıdaki düğmeye tıklayın."
|
||||
LIVEUPDATE_NAGSCREEN_BUTTON="Riskleri anladım. Yüklemeye devam edeceğim."
|
||||
|
||||
LIVEUPDATE_STABILITY_ALPHA="Alfa"
|
||||
LIVEUPDATE_STABILITY_BETA="Beta"
|
||||
LIVEUPDATE_STABILITY_RC="Yayın adayı"
|
||||
LIVEUPDATE_STABILITY_STABLE="Kararlı"
|
||||
LIVEUPDATE_STABILITY_SVN="SVN"
|
||||
@ -0,0 +1,56 @@
|
||||
; Akeeba Live Update
|
||||
; Copyright (c)2010-2013 Nicholas K. Dionysopoulos / AkeebaBackup.com
|
||||
; Licensed under the GNU LGPLv3 or later <http://www.gnu.org/copyleft/lesser.html>
|
||||
|
||||
LIVEUPDATE_TASK_OVERVIEW="Live Update"
|
||||
|
||||
LIVEUPDATE_NOTSUPPORTED_HEAD="Live Update не підтримується на цьому сервері"
|
||||
LIVEUPDATE_NOTSUPPORTED_INFO="Ваш сервер сигналізує, що Live Update не підтримується. Будь ласка, зв’яжіться з вашим постачальником послуг хостингу і попросіть його ввімкнути розширення PHP cURL або активувати пакувальники URL fopen(). Якщо вони вже ввімкнені, будь ласка, попросіть його сконфігурувати мережеві екрани так, щоб вони дозволяли доступ до цих URL:"_QQ_""
|
||||
LIVEUPDATE_NOTSUPPORTED_ALTMETHOD="Ви можете завжди оновити <var>%s</var> відвідавши наш сайт персонально, завантажити останній випуск та встановити його, використовуючи інсталятор розширень Joomla!."
|
||||
|
||||
LIVEUPDATE_STUCK_HEAD="Live Update позначив себе таким, що зазнав краху"
|
||||
LIVEUPDATE_STUCK_INFO="Live Update визначив, що він зазнав краху останнього разу, коли намагався зв’язатися з сервером оновлень. Це зазвичай означає, що хост активно блокує комунікацію з зовнішніми сайтами. Якщо ви ви захочете спробувати знову отримати інформацію про оновлення, будь ласка, натисніть на кнопку "_QQ_"Оновити інформацію "_QQ_" нижче. Якщо це видасть пусту сторінку, будь ласка, зв’яжіться з постачальником послуг хостингу і опишіть цю проблему."
|
||||
|
||||
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! .<br/><br/>Будь ласка, надайте ім’я користувача і пароль 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="ЗНАЙДЕНО ОНОВЛЕННЯ! НАТИСНІТЬ ДЛЯ ЗАПУСКУ ОНОВЛЕННЯ."
|
||||
|
||||
; LIVEUPDATE_RELEASEINFO="Information"
|
||||
; LIVEUPDATE_RELEASENOTES="Release notes"
|
||||
; LIVEUPDATE_READMOREINFO="Read more"
|
||||
|
||||
; LIVEUPDATE_NAGSCREEN_HEAD="WARNING! You are about to install an unstable version."
|
||||
; LIVEUPDATE_NAGSCREEN_BODY="You are about to install an unstable version (%s - %s). Unstable versions may have undergone minimal or no testing and contain bugs which may have an serious adverse to the stability and functionality of your web site. If you are not sure about what you are about to do, please close this browser window. If you are absolutely certain you understand the risks involved with the installation of unstable releases, please click the button below to continue the installation of this unstable release."
|
||||
; LIVEUPDATE_NAGSCREEN_BUTTON="I understand the risks. Continue with the installation."
|
||||
|
||||
; LIVEUPDATE_STABILITY_ALPHA="Alpha"
|
||||
; LIVEUPDATE_STABILITY_BETA="Beta"
|
||||
; LIVEUPDATE_STABILITY_RC="RC"
|
||||
; LIVEUPDATE_STABILITY_STABLE="Stable"
|
||||
; LIVEUPDATE_STABILITY_SVN="SVN"
|
||||
@ -0,0 +1,163 @@
|
||||
<?php
|
||||
/**
|
||||
*------------------------------------------------------------------------------
|
||||
* iCagenda v3 by Jooml!C - Events Management Extension for Joomla! 2.5 / 3.x
|
||||
*------------------------------------------------------------------------------
|
||||
*
|
||||
* @package LiveUpdate 2.1.5 - 2.2.1
|
||||
* @copyright Copyright (c)2010-2013 Nicholas K. Dionysopoulos / AkeebaBackup.com
|
||||
* @license GNU LGPLv3 or later <http://www.gnu.org/copyleft/lesser.html>
|
||||
*
|
||||
* One-click updater for Joomla! extensions
|
||||
* Copyright (C) 2011-2013 Nicholas K. Dionysopoulos / AkeebaBackup.com
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* @version 3.6.0 2016-03-08
|
||||
* @since 1.2.6
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die();
|
||||
|
||||
require_once dirname(__FILE__).'/classes/abstractconfig.php';
|
||||
require_once dirname(__FILE__).'/config.php';
|
||||
|
||||
class LiveUpdate
|
||||
{
|
||||
/** @var string The current version of Akeeba Live Update */
|
||||
public static $version = '1.1';
|
||||
|
||||
/**
|
||||
* Loads the translation strings -- this is an internal function, called automatically
|
||||
*/
|
||||
private static function loadLanguage()
|
||||
{
|
||||
// Load translations
|
||||
$basePath = dirname(__FILE__);
|
||||
$jlang = JFactory::getLanguage();
|
||||
$jlang->load('liveupdate', $basePath, 'en-GB', true); // Load English (British)
|
||||
$jlang->load('liveupdate', $basePath, $jlang->getDefault(), true); // Load the site's default language
|
||||
$jlang->load('liveupdate', $basePath, null, true); // Load the currently selected language
|
||||
}
|
||||
|
||||
/**
|
||||
* Handles requests to the "liveupdate" view which is used to display
|
||||
* update information and perform the live updates
|
||||
*/
|
||||
public static function handleRequest()
|
||||
{
|
||||
// Load language strings
|
||||
self::loadLanguage();
|
||||
|
||||
// Load the controller and let it run the show
|
||||
require_once dirname(__FILE__).'/classes/controller.php';
|
||||
$controller = new LiveUpdateController();
|
||||
$controller->execute(JRequest::getCmd('task','overview'));
|
||||
$controller->redirect();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns update information about your extension, based on your configuration settings
|
||||
* @return stdClass
|
||||
*/
|
||||
public static function getUpdateInformation($force = false)
|
||||
{
|
||||
require_once dirname(__FILE__).'/classes/updatefetch.php';
|
||||
$update = new LiveUpdateFetch();
|
||||
$info = $update->getUpdateInformation($force);
|
||||
$hasUpdates = $update->hasUpdates($force);
|
||||
$info->hasUpdates = $hasUpdates;
|
||||
|
||||
$config = LiveUpdateConfig::getInstance();
|
||||
$extInfo = $config->getExtensionInformation();
|
||||
|
||||
$info->extInfo = (object)$extInfo;
|
||||
|
||||
return $info;
|
||||
}
|
||||
|
||||
public static function getIcon($config=array())
|
||||
{
|
||||
// Load language strings
|
||||
self::loadLanguage();
|
||||
|
||||
// Initialize the array of button options
|
||||
$button = array();
|
||||
|
||||
$defaultConfig = array(
|
||||
'option' => JRequest::getCmd('option',''),
|
||||
'view' => 'liveupdate',
|
||||
'mediaurl' => JURI::base().'components/'.JRequest::getCmd('option','').'/liveupdate/assets/'
|
||||
);
|
||||
$c = array_merge($defaultConfig, $config);
|
||||
|
||||
$button['link'] = 'index.php?option='.$c['option'].'&view='.$c['view'];
|
||||
$button['image'] = $c['mediaurl'];
|
||||
|
||||
$updateInfo = self::getUpdateInformation();
|
||||
if(!$updateInfo->supported) {
|
||||
// Unsupported
|
||||
$button['icon'] = 'liveupdate-icon-notsupported';
|
||||
$button['class'] = version_compare(JVERSION, '3.0', 'lt') ? 'liveupdate-icon-notsupported' : '';
|
||||
$button['suffix'] = version_compare(JVERSION, '3.0', 'lt') ? '' : '';
|
||||
$button['image'] .= 'nosupport-32.png';
|
||||
$button['text'] = JText::_('LIVEUPDATE_ICON_UNSUPPORTED');
|
||||
} elseif($updateInfo->stuck) {
|
||||
// Stuck
|
||||
$button['icon'] = 'liveupdate-icon-crashed';
|
||||
$button['class'] = version_compare(JVERSION, '3.0', 'lt') ? 'liveupdate-icon-crashed' : '';
|
||||
$button['suffix'] = version_compare(JVERSION, '3.0', 'lt') ? '' : '';
|
||||
$button['image'] .= 'nosupport-32.png';
|
||||
$button['text'] = JText::_('LIVEUPDATE_ICON_CRASHED');
|
||||
}
|
||||
|
||||
// Has updates
|
||||
elseif($updateInfo->hasUpdates)
|
||||
{
|
||||
$button['icon'] = version_compare(JVERSION, '3.0', 'lt') ? 'liveupdate-icon-updates' : 'icon-upload';
|
||||
$button['class'] = version_compare(JVERSION, '3.0', 'lt') ? 'liveupdate-icon-updates' : 'btn btn-danger';
|
||||
$button['suffix'] = version_compare(JVERSION, '3.0', 'lt') ? '' : 'danger';
|
||||
$button['text'] = '<strong>' . JText::_('LIVEUPDATE_ICON_UPDATES') . '</strong>';
|
||||
}
|
||||
|
||||
// Already in the latest release
|
||||
else
|
||||
{
|
||||
$button['icon'] = 'liveupdate-icon-noupdates';
|
||||
$button['class'] = version_compare(JVERSION, '3.0', 'lt') ? 'liveupdate-icon-noupdates' : '';
|
||||
$button['suffix'] = version_compare(JVERSION, '3.0', 'lt') ? '' : '';
|
||||
$button['image'] .= 'current-32.png';
|
||||
$button['text'] = JText::_('LIVEUPDATE_ICON_CURRENT');
|
||||
}
|
||||
|
||||
if (version_compare(JVERSION, '3.0', 'lt'))
|
||||
{
|
||||
$iCupdate = '<div class="icon"><a href="'.$button['link'].'">'.
|
||||
'<div style="text-align: center;"><img src="'.$button['image'].'" alt="" width="32" height="32" border="0" align="middle" style="float: none" /></div>'.
|
||||
'<span class="'.$button['class'].'">'.$button['text'].'</span></a></div>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$iCupdate = '<div class="icon ' . $button['suffix'] . '"><a href="' . $button['link'] . '">';
|
||||
$iCupdate.= '<div class="' . $button['class'] . '">';
|
||||
$iCupdate.= (isset($button['image']) && $button['image'] != $c['mediaurl'])
|
||||
? '<img src="' . $button['image'] . '" alt="" width="32" height="32" border="0" align="middle" style="float: none" />'
|
||||
: '<big><span class="' . $button['icon'] . '"></span></big>';
|
||||
$iCupdate.= '<br />' . $button['text'] . '</div>';
|
||||
$iCupdate.= '</a></div>';
|
||||
}
|
||||
|
||||
return $iCupdate;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,163 @@
|
||||
<?php
|
||||
/**
|
||||
*----------------------------------------------------------------------------
|
||||
* iCagenda Events Management Extension for Joomla!
|
||||
*----------------------------------------------------------------------------
|
||||
* @version 3.6.14 2018-04-20
|
||||
*
|
||||
* @package iCagenda.Admin
|
||||
* @link https://icagenda.joomlic.com
|
||||
*
|
||||
* @author Cyril Rezé
|
||||
* @copyright (c) 2012-2019 Jooml!C / Cyril Rezé. All rights reserved.
|
||||
* @license GNU General Public License version 3 or later; see LICENSE.txt
|
||||
*
|
||||
* @since 1.0
|
||||
*----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
jimport('joomla.application.component.modellist'); // Joomla 2.5
|
||||
|
||||
/**
|
||||
* Categories Model.
|
||||
*/
|
||||
class iCagendaModelcategories extends JModelList
|
||||
{
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param array $config An optional associative array of configuration settings.
|
||||
*
|
||||
* @since 1.0
|
||||
* @see JControllerLegacy
|
||||
*/
|
||||
public function __construct($config = array())
|
||||
{
|
||||
if (empty($config['filter_fields']))
|
||||
{
|
||||
$config['filter_fields'] = array(
|
||||
'id', 'a.id',
|
||||
'ordering', 'a.ordering',
|
||||
'state', 'a.state',
|
||||
'title', 'a.title',
|
||||
'color', 'a.color',
|
||||
'desc', 'a.desc',
|
||||
);
|
||||
}
|
||||
|
||||
parent::__construct($config);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to auto-populate the model state.
|
||||
*
|
||||
* Note. Calling getState in this method will result in recursion.
|
||||
*/
|
||||
protected function populateState($ordering = null, $direction = null)
|
||||
{
|
||||
// Initialise variables.
|
||||
$app = JFactory::getApplication('administrator');
|
||||
|
||||
// Load the filter state.
|
||||
$search = $app->getUserStateFromRequest($this->context . '.filter.search', 'filter_search');
|
||||
$this->setState('filter.search', $search);
|
||||
|
||||
$published = $app->getUserStateFromRequest($this->context . '.filter.state', 'filter_published', '', 'string');
|
||||
$this->setState('filter.state', $published);
|
||||
|
||||
// Load the parameters.
|
||||
$params = JComponentHelper::getParams('com_icagenda');
|
||||
$this->setState('params', $params);
|
||||
|
||||
// List state information.
|
||||
parent::populateState('a.title', 'asc');
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to get a store id based on model configuration state.
|
||||
*
|
||||
* This is necessary because the model is used by the component and
|
||||
* different modules that might need different sets of data or different
|
||||
* ordering requirements.
|
||||
*
|
||||
* @param string $id A prefix for the store id.
|
||||
*
|
||||
* @return string A store id.
|
||||
*
|
||||
* @since 1.0
|
||||
*/
|
||||
protected function getStoreId($id = '')
|
||||
{
|
||||
// Compile the store id.
|
||||
$id.= ':' . $this->getState('filter.search');
|
||||
$id.= ':' . $this->getState('filter.state');
|
||||
|
||||
return parent::getStoreId($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Build an SQL query to load the list data.
|
||||
*
|
||||
* @return JDatabaseQuery
|
||||
* @since 1.0
|
||||
*/
|
||||
protected function getListQuery()
|
||||
{
|
||||
$db = $this->getDbo();
|
||||
$query = $db->getQuery(true);
|
||||
|
||||
// Select the required fields from the table.
|
||||
$query->select(
|
||||
$this->getState(
|
||||
'list.select',
|
||||
'a.*'
|
||||
)
|
||||
);
|
||||
$query->from('#__icagenda_category AS a');
|
||||
|
||||
// Join over the users for the checked out user.
|
||||
$query->select('uc.name AS editor')
|
||||
->join('LEFT', '#__users AS uc ON uc.id = a.checked_out');
|
||||
|
||||
// Filter by published state
|
||||
$published = $this->getState('filter.state');
|
||||
|
||||
if (is_numeric($published))
|
||||
{
|
||||
$query->where('a.state = ' . (int) $published);
|
||||
}
|
||||
elseif ($published === '')
|
||||
{
|
||||
$query->where('(a.state IN (0, 1))');
|
||||
}
|
||||
|
||||
// Filter by search in title
|
||||
$search = $this->getState('filter.search');
|
||||
|
||||
if ( ! empty($search))
|
||||
{
|
||||
if (stripos($search, 'id:') === 0)
|
||||
{
|
||||
$query->where('a.id = ' . (int) substr($search, 3));
|
||||
}
|
||||
else
|
||||
{
|
||||
$search = $db->Quote('%' . $db->escape($search, true) . '%');
|
||||
$query->where('( a.title LIKE ' . $search . ' OR a.color LIKE ' . $search . ' OR a.desc LIKE ' . $search . ' )');
|
||||
}
|
||||
}
|
||||
|
||||
// Add the list ordering clause.
|
||||
$orderCol = $this->state->get('list.ordering');
|
||||
$orderDirn = $this->state->get('list.direction');
|
||||
|
||||
if ($orderCol && $orderDirn)
|
||||
{
|
||||
$query->order($db->escape($orderCol . ' ' . $orderDirn));
|
||||
}
|
||||
|
||||
return $query;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,179 @@
|
||||
<?php
|
||||
/**
|
||||
*------------------------------------------------------------------------------
|
||||
* iCagenda v3 by Jooml!C - Events Management Extension for Joomla! 2.5 / 3.x
|
||||
*------------------------------------------------------------------------------
|
||||
* @package com_icagenda
|
||||
* @copyright Copyright (c)2012-2019 Cyril Rezé, Jooml!C - All rights reserved
|
||||
*
|
||||
* @license GNU General Public License version 3 or later; see LICENSE.txt
|
||||
* @author Cyril Rezé (Lyr!C)
|
||||
* @link http://www.joomlic.com
|
||||
*
|
||||
* @version 3.6.0 2016-06-03
|
||||
* @since 1.0
|
||||
*------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die();
|
||||
|
||||
jimport('joomla.application.component.modeladmin');
|
||||
|
||||
|
||||
/**
|
||||
* iCagenda model.
|
||||
*/
|
||||
class iCagendaModelCategory extends JModelAdmin
|
||||
{
|
||||
/**
|
||||
* @var string The prefix to use with controller messages.
|
||||
* @since 1.6
|
||||
*/
|
||||
protected $text_prefix = 'COM_ICAGENDA';
|
||||
|
||||
|
||||
/**
|
||||
* Returns a reference to the a Table object, always creating it.
|
||||
*
|
||||
* @param type The table type to instantiate
|
||||
* @param string A prefix for the table class name. Optional.
|
||||
* @param array Configuration array for model. Optional.
|
||||
* @return JTable A database object
|
||||
* @since 1.6
|
||||
*/
|
||||
public function getTable($type = 'Category', $prefix = 'iCagendaTable', $config = array())
|
||||
{
|
||||
return JTable::getInstance($type, $prefix, $config);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to get the record form.
|
||||
*
|
||||
* @param array $data An optional array of data for the form to interogate.
|
||||
* @param boolean $loadData True if the form is to load its own data (default case), false if not.
|
||||
* @return JForm A JForm object on success, false on failure
|
||||
* @since 1.6
|
||||
*/
|
||||
public function getForm($data = array(), $loadData = true)
|
||||
{
|
||||
// Get the form.
|
||||
$form = $this->loadForm('com_icagenda.category', 'category',
|
||||
array('control' => 'jform', 'load_data' => $loadData));
|
||||
|
||||
if (empty($form))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return $form;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to get the data that should be injected in the form.
|
||||
*
|
||||
* @return mixed The data for the form.
|
||||
* @since 1.6
|
||||
*/
|
||||
protected function loadFormData()
|
||||
{
|
||||
// Check the session for previously entered form data.
|
||||
$data = JFactory::getApplication()->getUserState('com_icagenda.edit.category.data', array());
|
||||
|
||||
if (empty($data)) {
|
||||
$data = $this->getItem();
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to get a single record.
|
||||
*
|
||||
* @param integer The id of the primary key.
|
||||
*
|
||||
* @return mixed Object on success, false on failure.
|
||||
* @since 1.6
|
||||
*/
|
||||
public function getItem($pk = null)
|
||||
{
|
||||
if ($item = parent::getItem($pk)) {
|
||||
|
||||
//Do any procesing on fields here if needed
|
||||
|
||||
}
|
||||
|
||||
return $item;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepare and sanitise the table prior to saving.
|
||||
*
|
||||
* @since 1.0
|
||||
*/
|
||||
|
||||
protected function prepareTable( $table )
|
||||
{
|
||||
if (empty($table->id)) {
|
||||
|
||||
// Set ordering to the last item if not set
|
||||
if (@$table->ordering === '') {
|
||||
$db = JFactory::getDbo();
|
||||
$db->setQuery('SELECT MAX(ordering) FROM #__icagenda_category');
|
||||
$max = $db->loadResult();
|
||||
$table->ordering = $max+1;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to save the form data.
|
||||
*
|
||||
* @param array $data The form data.
|
||||
*
|
||||
* @return boolean True on success.
|
||||
*
|
||||
* @since 3.4.0
|
||||
*/
|
||||
public function save($data)
|
||||
{
|
||||
$jinput = JFactory::getApplication()->input;
|
||||
$date = JFactory::getDate();
|
||||
|
||||
// Fix version before 3.4.0 to set a created date (will use last modified date if exists, or current date)
|
||||
if (empty($data['created']))
|
||||
{
|
||||
$data['created'] = ! empty($data['modified']) ? $data['modified'] : $date->toSql();
|
||||
}
|
||||
|
||||
// Automatic handling of alias if empty
|
||||
if (in_array($jinput->get('task'), array('apply', 'save', 'save2new')) && $data['alias'] == null)
|
||||
{
|
||||
if (JFactory::getConfig()->get('unicodeslugs') == 1)
|
||||
{
|
||||
$data['alias'] = JFilterOutput::stringURLUnicodeSlug($data['title']);
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['alias'] = JFilterOutput::stringURLSafe($data['title']);
|
||||
}
|
||||
}
|
||||
|
||||
// Use created date in case alias is still empty
|
||||
if ($data['alias'] == null || empty($data['alias']))
|
||||
{
|
||||
$data['alias'] = JFilterOutput::stringURLSafe($data['created']);
|
||||
}
|
||||
|
||||
// Force to not add unicode characters if unicodeslugs is not enabled
|
||||
if (JFactory::getConfig()->get('unicodeslugs') != 1)
|
||||
{
|
||||
$data['alias'] = JFilterOutput::stringURLSafe($data['alias']);
|
||||
}
|
||||
|
||||
$return = parent::save($data);
|
||||
|
||||
return $return;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,183 @@
|
||||
<?php
|
||||
/**
|
||||
*------------------------------------------------------------------------------
|
||||
* iCagenda v3 by Jooml!C - Events Management Extension for Joomla! 2.5 / 3.x
|
||||
*------------------------------------------------------------------------------
|
||||
* @package com_icagenda
|
||||
* @copyright Copyright (c)2012-2019 Cyril Rezé, Jooml!C - All rights reserved
|
||||
*
|
||||
* @license GNU General Public License version 3 or later; see LICENSE.txt
|
||||
* @author Cyril Rezé (Lyr!C)
|
||||
* @link http://www.joomlic.com
|
||||
*
|
||||
* @version 3.6.0 2016-07-07
|
||||
* @since 3.4.0
|
||||
*------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die();
|
||||
|
||||
jimport('joomla.application.component.modeladmin');
|
||||
|
||||
|
||||
/**
|
||||
* iCagenda model.
|
||||
*/
|
||||
class iCagendaModelCustomfield extends JModelAdmin
|
||||
{
|
||||
/**
|
||||
* @var string The prefix to use with controller messages.
|
||||
* @since 3.4.0
|
||||
*/
|
||||
protected $text_prefix = 'COM_ICAGENDA';
|
||||
|
||||
/**
|
||||
* Returns a reference to the a Table object, always creating it.
|
||||
*
|
||||
* @param type The table type to instantiate
|
||||
* @param string A prefix for the table class name. Optional.
|
||||
* @param array Configuration array for model. Optional.
|
||||
* @return JTable A database object
|
||||
* @since 3.4.0
|
||||
*/
|
||||
public function getTable($type = 'Customfield', $prefix = 'iCagendaTable', $config = array())
|
||||
{
|
||||
return JTable::getInstance($type, $prefix, $config);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to get the record form.
|
||||
*
|
||||
* @param array $data An optional array of data for the form to interogate.
|
||||
* @param boolean $loadData True if the form is to load its own data (default case), false if not.
|
||||
* @return JForm A JForm object on success, false on failure
|
||||
* @since 3.4.0
|
||||
*/
|
||||
public function getForm($data = array(), $loadData = true)
|
||||
{
|
||||
// Get the form.
|
||||
$form = $this->loadForm('com_icagenda.customfield', 'customfield',
|
||||
array('control' => 'jform', 'load_data' => $loadData));
|
||||
|
||||
if (empty($form))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return $form;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to get the data that should be injected in the form.
|
||||
*
|
||||
* @return mixed The data for the form.
|
||||
* @since 3.4.0
|
||||
*/
|
||||
protected function loadFormData()
|
||||
{
|
||||
// Check the session for previously entered form data.
|
||||
$data = JFactory::getApplication()->getUserState('com_icagenda.edit.customfield.data', array());
|
||||
|
||||
if (empty($data))
|
||||
{
|
||||
$data = $this->getItem();
|
||||
}
|
||||
|
||||
// Set Options to placeholder, and unset options (if input type with hint)
|
||||
$hintFields = array('text', 'url', 'tel', 'email', 'core_name', 'core_email', 'core_phone');
|
||||
|
||||
if (isset($data->options)
|
||||
&& in_array($data->type, $hintFields))
|
||||
{
|
||||
$data->placeholder = $data->options;
|
||||
unset($data->options);
|
||||
}
|
||||
|
||||
// Set Options to spacer_class, and unset options (if input type is spacer)
|
||||
$spacerFields = array('spacer_label', 'spacer_description');
|
||||
|
||||
if (isset($data->options)
|
||||
&& in_array($data->type, $spacerFields))
|
||||
{
|
||||
$data->spacer_class = $data->options;
|
||||
unset($data->options);
|
||||
}
|
||||
|
||||
// If not array, creates array with custom forms data
|
||||
if ( ! is_array($data->groups))
|
||||
{
|
||||
$data->groups = explode(',', $data->groups);
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to get a single record.
|
||||
*
|
||||
* @param integer The id of the primary key.
|
||||
*
|
||||
* @return mixed Object on success, false on failure.
|
||||
* @since 3.4.0
|
||||
*/
|
||||
public function getItem($pk = null)
|
||||
{
|
||||
if ($item = parent::getItem($pk))
|
||||
{
|
||||
// Get custom forms
|
||||
// $registry = new JRegistry;
|
||||
// $registry->loadString($item->groups);
|
||||
// $item->groups = $registry->toArray();
|
||||
}
|
||||
|
||||
return $item;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepare and sanitise the table prior to saving.
|
||||
*
|
||||
* @since 3.4.0
|
||||
*/
|
||||
protected function prepareTable($table)
|
||||
{
|
||||
$app = JFactory::getApplication();
|
||||
|
||||
$date = JFactory::getDate();
|
||||
$user = JFactory::getUser();
|
||||
|
||||
if (empty($table->id))
|
||||
{
|
||||
// Set the values
|
||||
$table->created = $date->toSql();
|
||||
|
||||
// Set ordering to the last item if not set
|
||||
if (empty($table->ordering))
|
||||
{
|
||||
$db = JFactory::getDbo();
|
||||
$query = $db->getQuery(true)
|
||||
->select('MAX(ordering)')
|
||||
->from($db->quoteName('#__icagenda_customfields'));
|
||||
$db->setQuery($query);
|
||||
$max = $db->loadResult();
|
||||
|
||||
$table->ordering = $max + 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Set the values
|
||||
$table->modified = $date->toSql();
|
||||
$table->modified_by = $user->get('id');
|
||||
}
|
||||
|
||||
// Alter the title for save as copy
|
||||
if ($app->input->get('task') == 'save2copy')
|
||||
{
|
||||
$table->title = iCString::increment($table->title);
|
||||
$table->alias = iCString::increment($table->alias, 'dash');
|
||||
$table->slug = iCString::increment($table->slug, 'underscore');
|
||||
$table->state = '0';
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,309 @@
|
||||
<?php
|
||||
/**
|
||||
*----------------------------------------------------------------------------
|
||||
* iCagenda Events Management Extension for Joomla!
|
||||
*----------------------------------------------------------------------------
|
||||
* @version 3.6.14 2018-04-24
|
||||
*
|
||||
* @package iCagenda.Admin
|
||||
* @link https://icagenda.joomlic.com
|
||||
*
|
||||
* @author Cyril Rezé
|
||||
* @copyright (c) 2012-2019 Jooml!C / Cyril Rezé. All rights reserved.
|
||||
* @license GNU General Public License version 3 or later; see LICENSE.txt
|
||||
*
|
||||
* @since 3.4.0
|
||||
*----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
jimport('joomla.application.component.modellist'); // Joomla 2.5
|
||||
|
||||
/**
|
||||
* Custom Fields Model.
|
||||
*/
|
||||
class iCagendaModelcustomfields extends JModelList
|
||||
{
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param array $config An optional associative array of configuration settings.
|
||||
*
|
||||
* @since 3.4.0
|
||||
* @see JControllerLegacy
|
||||
*/
|
||||
public function __construct($config = array())
|
||||
{
|
||||
if (empty($config['filter_fields']))
|
||||
{
|
||||
$config['filter_fields'] = array(
|
||||
'id', 'cf.id',
|
||||
'ordering', 'cf.ordering',
|
||||
'state', 'cf.state',
|
||||
'title', 'cf.title',
|
||||
'slug', 'cf.slug',
|
||||
'parent_form', 'cf.parent_form',
|
||||
'type', 'cf.type',
|
||||
'required', 'cf.required',
|
||||
);
|
||||
}
|
||||
|
||||
parent::__construct($config);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to auto-populate the model state.
|
||||
*
|
||||
* Note. Calling getState in this method will result in recursion.
|
||||
*
|
||||
* @since 3.4.0
|
||||
*/
|
||||
protected function populateState($ordering = null, $direction = null)
|
||||
{
|
||||
// Initialise variables.
|
||||
$app = JFactory::getApplication('administrator');
|
||||
|
||||
// Load the filter state.
|
||||
$search = $app->getUserStateFromRequest($this->context . '.filter.search', 'filter_search');
|
||||
$this->setState('filter.search', $search);
|
||||
|
||||
$published = $app->getUserStateFromRequest($this->context . '.filter.state', 'filter_published', '', 'string');
|
||||
$this->setState('filter.state', $published);
|
||||
|
||||
// Filter (dropdown) parent form
|
||||
$parent_form = $this->getUserStateFromRequest($this->context . '.filter.parent_form', 'filter_parent_form', '', 'string');
|
||||
$this->setState('filter.parent_form', $parent_form);
|
||||
|
||||
// Filter (dropdown) field type
|
||||
$type = $this->getUserStateFromRequest($this->context . '.filter.type', 'filter_type', '', 'string');
|
||||
$this->setState('filter.type', $type);
|
||||
|
||||
// Filter (dropdown) custom field group
|
||||
$group = $this->getUserStateFromRequest($this->context . '.filter.group', 'filter_group', '', 'string');
|
||||
$this->setState('filter.group', $group);
|
||||
|
||||
// Load the parameters.
|
||||
$params = JComponentHelper::getParams('com_icagenda');
|
||||
$this->setState('params', $params);
|
||||
|
||||
// List state information.
|
||||
parent::populateState('cf.ordering', 'asc');
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to get a store id based on model configuration state.
|
||||
*
|
||||
* This is necessary because the model is used by the component and
|
||||
* different modules that might need different sets of data or different
|
||||
* ordering requirements.
|
||||
*
|
||||
* @param string $id A prefix for the store id.
|
||||
*
|
||||
* @return string A store id.
|
||||
*
|
||||
* @since 3.4.0
|
||||
*/
|
||||
protected function getStoreId($id = '')
|
||||
{
|
||||
// Compile the store id.
|
||||
$id.= ':' . $this->getState('filter.search');
|
||||
$id.= ':' . $this->getState('filter.state');
|
||||
|
||||
return parent::getStoreId($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Build an SQL query to load the list data.
|
||||
*
|
||||
* @return JDatabaseQuery
|
||||
*
|
||||
* @since 3.4.0
|
||||
*/
|
||||
protected function getListQuery()
|
||||
{
|
||||
// Create a new query object.
|
||||
$db = $this->getDbo();
|
||||
$query = $db->getQuery(true);
|
||||
|
||||
// Select the required fields from the table.
|
||||
$query->select(
|
||||
$this->getState(
|
||||
'list.select',
|
||||
'cf.*'
|
||||
)
|
||||
);
|
||||
$query->from('#__icagenda_customfields AS cf');
|
||||
|
||||
// Join over the users for the checked out user.
|
||||
$query->select('uc.name AS editor');
|
||||
$query->join('LEFT', '#__users AS uc ON uc.id = cf.checked_out');
|
||||
|
||||
// Filter by published state
|
||||
$published = $this->getState('filter.state');
|
||||
|
||||
if (is_numeric($published))
|
||||
{
|
||||
$query->where($db->qn('cf.state') . ' = ' . (int) $published);
|
||||
}
|
||||
elseif ($published === '')
|
||||
{
|
||||
$query->where($db->qn('cf.state') . ' IN (0, 1)');
|
||||
}
|
||||
|
||||
// Filter by Parent Form
|
||||
$parent_form = $db->escape($this->getState('filter.parent_form'));
|
||||
|
||||
if ( ! empty($parent_form))
|
||||
{
|
||||
$query->where($db->qn('cf.parent_form') . ' = ' . (int) $parent_form);
|
||||
}
|
||||
|
||||
// Filter by Group
|
||||
$group = $db->escape($this->getState('filter.group'));
|
||||
|
||||
if ( ! empty($group))
|
||||
{
|
||||
$query->where($db->qn('cf.groups') . ' LIKE "%' . $group . '%"');
|
||||
}
|
||||
|
||||
// Filter by Field Type
|
||||
$type = $db->escape($this->getState('filter.type'));
|
||||
|
||||
if ( ! empty($type))
|
||||
{
|
||||
$query->where($db->qn('cf.type') . ' = ' . (string) $db->q($type));
|
||||
}
|
||||
|
||||
// Search Filters
|
||||
$search = $this->getState('filter.search');
|
||||
|
||||
if ( ! empty($search))
|
||||
{
|
||||
if (stripos($search, 'id:') === 0)
|
||||
{
|
||||
$query->where($db->qn('cf.id') . ' = ' . (int) substr($search, 3));
|
||||
}
|
||||
else
|
||||
{
|
||||
$search = $db->Quote('%' . $db->escape($search, true) . '%');
|
||||
$query->where('( cf.title LIKE ' . $search . ' OR cf.slug LIKE ' . $search . ' OR cf.type LIKE ' . $search . ' )');
|
||||
}
|
||||
}
|
||||
|
||||
// Add the list ordering clause.
|
||||
$orderCol = $this->state->get('list.ordering');
|
||||
$orderDirn = $this->state->get('list.direction');
|
||||
|
||||
if ($orderCol && $orderDirn)
|
||||
{
|
||||
$query->order($db->escape($orderCol . ' ' . $orderDirn));
|
||||
}
|
||||
|
||||
return $query;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a list of Parent Forms.
|
||||
*
|
||||
* @since 3.4.0
|
||||
*/
|
||||
function getParentForm()
|
||||
{
|
||||
$list['1'] = JText::_('COM_ICAGENDA_CUSTOMFIELD_PARENT_REGISTRATION_FORM');
|
||||
$list['2'] = JText::_('COM_ICAGENDA_CUSTOMFIELD_PARENT_EVENT_EDIT');
|
||||
|
||||
return $list;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets list of Custom Field Groups.
|
||||
*
|
||||
* @since 3.6.0
|
||||
*/
|
||||
function getGroups()
|
||||
{
|
||||
$db = $this->getDbo();
|
||||
$query = $db->getQuery(true);
|
||||
$query->select('f.value, f.option');
|
||||
$query->from('#__icagenda_filters AS f');
|
||||
$query->where('f.type = "customfield"');
|
||||
$query->where('f.filter = "groups"');
|
||||
$query->order('f.option ASC');
|
||||
$db->setQuery($query);
|
||||
$groups = $db->loadObjectList();
|
||||
|
||||
$list = array();
|
||||
|
||||
foreach ($groups AS $g)
|
||||
{
|
||||
$list[$g->value] = $g->option;
|
||||
}
|
||||
|
||||
return $list;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a list of Field Types.
|
||||
*
|
||||
* @since 3.4.0
|
||||
*/
|
||||
function getFieldTypes()
|
||||
{
|
||||
$type['text'] = JText::_('COM_ICAGENDA_CUSTOMFIELD_TYPE_TEXT');
|
||||
$type['list'] = JText::_('COM_ICAGENDA_CUSTOMFIELD_TYPE_LIST');
|
||||
$type['radio'] = JText::_('COM_ICAGENDA_CUSTOMFIELD_TYPE_RADIO');
|
||||
$type['calendar'] = JText::_('COM_ICAGENDA_CUSTOMFIELD_TYPE_DATE');
|
||||
$type['url'] = JText::_('COM_ICAGENDA_CUSTOMFIELD_TYPE_URL');
|
||||
$type['email'] = JText::_('COM_ICAGENDA_CUSTOMFIELD_TYPE_EMAIL');
|
||||
$type['spacer_label'] = JText::_('COM_ICAGENDA_CUSTOMFIELD_TYPE_SPACER_LABEL');
|
||||
$type['spacer_description'] = JText::_('COM_ICAGENDA_CUSTOMFIELD_TYPE_SPACER_DESCRIPTION');
|
||||
$type['core_name'] = JText::_('COM_ICAGENDA_LABEL_OVERRIDE') . ': ' . JText::_('COM_ICAGENDA_REGISTRATION_NAME');
|
||||
$type['core_email'] = JText::_('COM_ICAGENDA_LABEL_OVERRIDE') . ': ' . JText::_('COM_ICAGENDA_REGISTRATION_EMAIL');
|
||||
$type['core_phone'] = JText::_('COM_ICAGENDA_LABEL_OVERRIDE') . ': ' . JText::_('COM_ICAGENDA_REGISTRATION_PHONE');
|
||||
$type['core_date'] = JText::_('COM_ICAGENDA_LABEL_OVERRIDE') . ': ' . JText::_('COM_ICAGENDA_REGISTRATION_DATE');
|
||||
$type['core_people'] = JText::_('COM_ICAGENDA_LABEL_OVERRIDE') . ': ' . JText::_('COM_ICAGENDA_REGISTRATION_TICKETS');
|
||||
|
||||
return $type;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to get an array of data items.
|
||||
*
|
||||
* @return mixed An array of data items on success, false on failure.
|
||||
*
|
||||
* @since 3.6.0
|
||||
*/
|
||||
public function getItems()
|
||||
{
|
||||
if ($items = parent::getItems())
|
||||
{
|
||||
// Do any procesing on fields here if needed
|
||||
foreach ($items AS $item)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
return $items;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets list of Custom Field Groups.
|
||||
*
|
||||
* @since 3.6.0
|
||||
*/
|
||||
function getCustomFieldGroups()
|
||||
{
|
||||
$db = $this->getDbo();
|
||||
$query = $db->getQuery(true);
|
||||
$query->select('f.value, f.option');
|
||||
$query->from('#__icagenda_filters AS f');
|
||||
$query->where('f.type = "customfield"');
|
||||
$query->where('f.filter = "groups"');
|
||||
$query->order('f.option ASC');
|
||||
$db->setQuery($query);
|
||||
$groups = $db->loadObjectList();
|
||||
|
||||
return $groups;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,96 @@
|
||||
<?php
|
||||
/**
|
||||
*----------------------------------------------------------------------------
|
||||
* iCagenda Events Management Extension for Joomla!
|
||||
*----------------------------------------------------------------------------
|
||||
* @version 3.6.14 2018-04-27
|
||||
*
|
||||
* @package iCagenda.Admin
|
||||
* @link https://icagenda.joomlic.com
|
||||
*
|
||||
* @author Cyril Rezé
|
||||
* @copyright (c) 2012-2019 Jooml!C / Cyril Rezé. All rights reserved.
|
||||
* @license GNU General Public License version 3 or later; see LICENSE.txt
|
||||
*
|
||||
* @since 3.5.0
|
||||
*----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
// Joomla 2.5 import
|
||||
jimport('joomla.application.component.modelform');
|
||||
|
||||
/**
|
||||
* Download Model.
|
||||
*/
|
||||
class icagendaModelDownload extends JModelForm
|
||||
{
|
||||
protected $_context = 'com_icagenda.registrations';
|
||||
|
||||
/**
|
||||
* Auto-populate the model state.
|
||||
*
|
||||
* Note. Calling getState in this method will result in recursion.
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @since 3.5.0
|
||||
*/
|
||||
protected function populateState()
|
||||
{
|
||||
$input = JFactory::getApplication()->input;
|
||||
|
||||
$basename = $input->cookie->getString(JApplicationHelper::getHash($this->_context . '.basename'), '__SITE__');
|
||||
$this->setState('basename', $basename);
|
||||
|
||||
$compressed = $input->cookie->getInt(JApplicationHelper::getHash($this->_context . '.compressed'), 1);
|
||||
$this->setState('compressed', $compressed);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to get the record form.
|
||||
*
|
||||
* @param array $data Data for the form.
|
||||
* @param boolean $loadData True if the form is to load its own data (default case), false if not.
|
||||
*
|
||||
* @return mixed A JForm object on success, false on failure
|
||||
*
|
||||
* @since 3.5.0
|
||||
*/
|
||||
public function getForm($data = array(), $loadData = true)
|
||||
{
|
||||
// Get the form.
|
||||
$form = $this->loadForm('com_icagenda.download', 'download', array('control' => 'jform', 'load_data' => $loadData));
|
||||
|
||||
if (empty($form))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return $form;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to get the data that should be injected in the form.
|
||||
*
|
||||
* @return mixed The data for the form.
|
||||
*
|
||||
* @since 3.5.0
|
||||
*/
|
||||
protected function loadFormData()
|
||||
{
|
||||
$data = array(
|
||||
'basename' => $this->getState('basename'),
|
||||
'compressed' => $this->getState('compressed')
|
||||
);
|
||||
|
||||
// Joomla 3
|
||||
if (version_compare(JVERSION, '3.0', 'ge'))
|
||||
{
|
||||
$this->preprocessData('com_icagenda.download', $data);
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,942 @@
|
||||
<?php
|
||||
/**
|
||||
*----------------------------------------------------------------------------
|
||||
* iCagenda Events Management Extension for Joomla!
|
||||
*----------------------------------------------------------------------------
|
||||
* @version 3.7.12 2020-03-25
|
||||
*
|
||||
* @package iCagenda.Admin
|
||||
* @link https://icagenda.joomlic.com
|
||||
*
|
||||
* @author Cyril Rezé
|
||||
* @copyright (c) 2012-2020 Jooml!C / Cyril Rezé. All rights reserved.
|
||||
* @license GNU General Public License version 3 or later; see LICENSE.txt
|
||||
*
|
||||
* @since 1.0
|
||||
*----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
jimport('joomla.application.component.modeladmin');
|
||||
jimport('joomla.filesystem.file');
|
||||
jimport('joomla.filesystem.folder');
|
||||
|
||||
/**
|
||||
* Event Model.
|
||||
*/
|
||||
class iCagendaModelEvent extends JModelAdmin
|
||||
{
|
||||
/**
|
||||
* @var string The prefix to use with controller messages.
|
||||
* @since 1.0
|
||||
*/
|
||||
protected $text_prefix = 'COM_ICAGENDA';
|
||||
|
||||
/**
|
||||
* Method to test whether a record can be deleted.
|
||||
*
|
||||
* @param object $record A record object.
|
||||
*
|
||||
* @return boolean True if allowed to delete the record. Defaults to the permission set in the component.
|
||||
*
|
||||
* @since 3.5.6
|
||||
*/
|
||||
protected function canDelete($record)
|
||||
{
|
||||
if ( ! empty($record->id))
|
||||
{
|
||||
if ($record->state != -2)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
$user = JFactory::getUser();
|
||||
|
||||
if ($user->authorise('core.delete'))
|
||||
{
|
||||
icagendaCustomfields::deleteData($record->id, 2);
|
||||
icagendaCustomfields::cleanData(2);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepare and sanitise the table prior to saving.
|
||||
*
|
||||
* @param JTable $table A JTable object.
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @since 1.0
|
||||
*/
|
||||
protected function prepareTable( $table )
|
||||
{
|
||||
$date = JFactory::getDate();
|
||||
$user = JFactory::getUser();
|
||||
|
||||
$table->name = htmlspecialchars_decode($table->name, ENT_QUOTES);
|
||||
|
||||
if (empty($table->id))
|
||||
{
|
||||
// Set the values
|
||||
$table->created = $date->toSql();
|
||||
|
||||
// Set ordering to the last item if not set
|
||||
if (empty($table->ordering))
|
||||
{
|
||||
$db = JFactory::getDbo();
|
||||
$query = $db->getQuery(true)
|
||||
->select('MAX(ordering)')
|
||||
->from($db->quoteName('#__icagenda_events'));
|
||||
$db->setQuery($query);
|
||||
$max = $db->loadResult();
|
||||
|
||||
$table->ordering = $max + 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Set the values
|
||||
$table->modified = $date->toSql();
|
||||
$table->modified_by = $user->get('id');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a Table object, always creating it.
|
||||
*
|
||||
* @param string $type The table type to instantiate
|
||||
* @param string $prefix A prefix for the table class name. Optional.
|
||||
* @param array $config Configuration array for model. Optional.
|
||||
*
|
||||
* @return JTable A database object
|
||||
*
|
||||
* @since 1.0
|
||||
*/
|
||||
public function getTable($type = 'Event', $prefix = 'iCagendaTable', $config = array())
|
||||
{
|
||||
return JTable::getInstance($type, $prefix, $config);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to get a single record.
|
||||
*
|
||||
* @param integer $pk The id of the primary key.
|
||||
*
|
||||
* @return mixed Object on success, false on failure.
|
||||
*
|
||||
* @since 1.0
|
||||
*/
|
||||
public function getItem($pk = null)
|
||||
{
|
||||
if ($item = parent::getItem($pk))
|
||||
{
|
||||
// Do any procesing on fields here if needed
|
||||
}
|
||||
|
||||
return $item;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to get the record form.
|
||||
*
|
||||
* @param array $data Data for the form.
|
||||
* @param boolean $loadData True if the form is to load its own data (default case), false if not.
|
||||
*
|
||||
* @return mixed A JForm object on success, false on failure
|
||||
*
|
||||
* @since 1.0
|
||||
*/
|
||||
public function getForm($data = array(), $loadData = true)
|
||||
{
|
||||
// Get the form.
|
||||
$form = $this->loadForm('com_icagenda.event', 'event',
|
||||
array('control' => 'jform', 'load_data' => $loadData));
|
||||
if (empty($form))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return $form;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to get the data that should be injected in the form.
|
||||
*
|
||||
* @return mixed The data for the form.
|
||||
*
|
||||
* @since 1.0
|
||||
*/
|
||||
protected function loadFormData()
|
||||
{
|
||||
// Check the session for previously entered form data.
|
||||
$app = JFactory::getApplication();
|
||||
$data_array = $app->getUserState('com_icagenda.edit.event.data', array());
|
||||
|
||||
if (empty($data_array))
|
||||
{
|
||||
$data = $this->getItem();
|
||||
}
|
||||
else
|
||||
{
|
||||
$data = new JObject;
|
||||
$data->setProperties($data_array);
|
||||
}
|
||||
|
||||
// if (JFactory::getUser($data->created_by)->get('name') == false)
|
||||
// {
|
||||
// JLog::add(JText::_('The author of this event is no longer a user on this site'), JLog::WARNING, 'jerror');
|
||||
// }
|
||||
|
||||
// Set correctly param 'first_published_and_approved' if not set (for frontend submitted and approved events)
|
||||
if ($data->state == 1
|
||||
&& $data->approval == 0)
|
||||
{
|
||||
$data->params['first_published_and_approved'] = 1;
|
||||
}
|
||||
|
||||
// If not array, creates array with week days data
|
||||
if ( ! is_array($data->weekdays))
|
||||
{
|
||||
$data->weekdays = explode(',', $data->weekdays);
|
||||
}
|
||||
|
||||
// Retrieves data, to display selected week days
|
||||
$arrayWeekDays = $data->weekdays;
|
||||
|
||||
foreach ($arrayWeekDays as $allTest)
|
||||
{
|
||||
if ($allTest == '')
|
||||
{
|
||||
$data->weekdays = '0,1,2,3,4,5,6';
|
||||
}
|
||||
}
|
||||
|
||||
// Set displaytime default value
|
||||
if ( ! isset($data->displaytime))
|
||||
{
|
||||
$data->displaytime = JComponentHelper::getParams('com_icagenda')->get('displaytime', '1');
|
||||
}
|
||||
|
||||
// Set Features
|
||||
$data->features = $this->getFeatures($data->id);
|
||||
|
||||
// Convert features into an array so that the form control can be set
|
||||
if ( ! isset($data->features))
|
||||
{
|
||||
$data->features = array();
|
||||
}
|
||||
|
||||
if ( ! is_array($data->features))
|
||||
{
|
||||
$data->features = explode(',', $data->features);
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to save the form data.
|
||||
*
|
||||
* @param array $data The form data.
|
||||
*
|
||||
* @return boolean True on success.
|
||||
*
|
||||
* @since 3.4.0
|
||||
*/
|
||||
public function save($data)
|
||||
{
|
||||
$jinput = JFactory::getApplication()->input;
|
||||
$date = JFactory::getDate();
|
||||
$user = JFactory::getUser();
|
||||
|
||||
// Fix version before 3.4.0 to set a created date (will use last modified date if exists, or current date)
|
||||
if (empty($data['created']))
|
||||
{
|
||||
$data['created'] = ( ! empty($data['modified'])) ? $data['modified'] : $date->toSql();
|
||||
}
|
||||
|
||||
// Event cancelled date
|
||||
if (empty($data['params']['event_cancelled_date']) && $data['params']['event_cancelled'] == 1)
|
||||
{
|
||||
$data['params']['event_cancelled_date'] = $date->toSql();
|
||||
}
|
||||
elseif ($data['params']['event_cancelled'] == 0)
|
||||
{
|
||||
unset($data['params']['event_cancelled_date']);
|
||||
}
|
||||
|
||||
// Check first published and approved
|
||||
if ($data['state'] == 1
|
||||
&& $data['approval'] == 0
|
||||
&& $data['params']['first_published_and_approved'] == 0)
|
||||
{
|
||||
$data['params']['first_published_and_approved'] = 1;
|
||||
$first_published_and_approved = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$first_published_and_approved = false;
|
||||
}
|
||||
|
||||
// Alter the title for save as copy
|
||||
if ($jinput->get('task') == 'save2copy')
|
||||
{
|
||||
$origTable = clone $this->getTable();
|
||||
$origTable->load($jinput->getInt('id'));
|
||||
|
||||
if ($data['title'] == $origTable->title)
|
||||
{
|
||||
list($title, $alias) = $this->generateNewTitle($data['catid'], $data['alias'], $data['title']);
|
||||
$data['title'] = $title;
|
||||
$data['alias'] = $alias;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($data['alias'] == $origTable->alias)
|
||||
{
|
||||
$data['alias'] = '';
|
||||
}
|
||||
}
|
||||
$data['state'] = 0;
|
||||
}
|
||||
|
||||
// Automatic handling of alias if empty
|
||||
if (in_array($jinput->get('task'), array('apply', 'save', 'save2new')) && $data['alias'] == null)
|
||||
{
|
||||
if (JFactory::getConfig()->get('unicodeslugs') == 1)
|
||||
{
|
||||
$data['alias'] = JFilterOutput::stringURLUnicodeSlug($data['title']);
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['alias'] = JFilterOutput::stringURLSafe($data['title']);
|
||||
}
|
||||
}
|
||||
|
||||
// Use created date in case alias is still empty
|
||||
if ($data['alias'] == null || empty($data['alias']))
|
||||
{
|
||||
$data['alias'] = JFilterOutput::stringURLSafe($data['created']);
|
||||
}
|
||||
|
||||
// Force to not add unicode characters if unicodeslugs is not enabled
|
||||
if (JFactory::getConfig()->get('unicodeslugs') != 1)
|
||||
{
|
||||
$data['alias'] = JFilterOutput::stringURLSafe($data['alias']);
|
||||
}
|
||||
|
||||
// Check start and end date format (am/pm to sql date)
|
||||
$data['startdate'] = iCDate::isDate($data['startdate']) ? date('Y-m-d H:i:s', strtotime($data['startdate'])) : $data['startdate'];
|
||||
$data['enddate'] = iCDate::isDate($data['enddate']) ? date('Y-m-d H:i:s', strtotime($data['enddate'])) : $data['enddate'];
|
||||
|
||||
// Set File Uploaded
|
||||
if ( ! isset($data['file']))
|
||||
{
|
||||
$files = $jinput->files->get('jform', null);
|
||||
$fileUrl = ! empty($files['file']['name']) ? $this->upload($files['file']) : '';
|
||||
$data['file'] = $fileUrl;
|
||||
}
|
||||
|
||||
// Set Creator infos
|
||||
$userId = $user->get('id');
|
||||
$userName = $user->get('name');
|
||||
|
||||
// Event created in admin, set current logged-in user as creator
|
||||
if (empty($data['created_by']) && empty($data['username']))
|
||||
{
|
||||
$data['created_by'] = (int) $userId;
|
||||
$data['username'] = $userName;
|
||||
}
|
||||
|
||||
// Event edited in admin, created_by not empty, but creator is not the current logged-in user
|
||||
elseif ( ! empty($data['created_by']) && $data['created_by'] != $userId)
|
||||
{
|
||||
$data['username'] = JFactory::getUser($data['created_by'])->get('name', '');
|
||||
}
|
||||
|
||||
// Set Params
|
||||
if (isset($data['params']) && is_array($data['params']))
|
||||
{
|
||||
// Keep params for later control
|
||||
$params = $data['params'];
|
||||
|
||||
// Convert the params field to a string.
|
||||
$parameter = new JRegistry;
|
||||
$parameter->loadArray($data['params']);
|
||||
|
||||
$data['params'] = (string)$parameter;
|
||||
}
|
||||
|
||||
// Get Event ID from the result back to the Table after saving.
|
||||
$table = $this->getTable();
|
||||
|
||||
if ($table->save($data) === true)
|
||||
{
|
||||
$data['id'] = $table->id;
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['id'] = null;
|
||||
}
|
||||
|
||||
if (parent::save($data))
|
||||
{
|
||||
// Save Features to database
|
||||
$this->maintainFeatures($data);
|
||||
|
||||
// Save Custom Fields to database
|
||||
if (isset($data['custom_fields']) && is_array($data['custom_fields']))
|
||||
{
|
||||
icagendaCustomfields::saveToData($data['custom_fields'], $data['id'], 2);
|
||||
}
|
||||
|
||||
// ====================================
|
||||
// START : HACK FOR A FEW PRO USERS !!!
|
||||
// ====================================
|
||||
|
||||
$mail_new_event = JComponentHelper::getParams('com_icagenda')->get('mail_new_event', '0');
|
||||
|
||||
if ($mail_new_event == 1)
|
||||
{
|
||||
$new_event = $jinput->get('new_event');
|
||||
|
||||
// Send notification email if new event
|
||||
if ($new_event == '1' && $data['id'] && $data['state'] == '1' && $data['approval'] == '0')
|
||||
{
|
||||
self::notificationNewEvent($data);
|
||||
}
|
||||
}
|
||||
|
||||
// ====================================
|
||||
// END : HACK FOR A FEW PRO USERS !!!
|
||||
// ====================================
|
||||
|
||||
// Plugin Event handler 'iCagendaOnNewEvent'
|
||||
if ($first_published_and_approved)
|
||||
{
|
||||
// JOOMLA 3.x/2.5 SWITCH
|
||||
if (version_compare(JVERSION, '3.0', 'ge'))
|
||||
{
|
||||
$dispatcher = JEventDispatcher::getInstance();
|
||||
}
|
||||
else
|
||||
{
|
||||
$dispatcher = JDispatcher::getInstance();
|
||||
}
|
||||
|
||||
JPluginHelper::importPlugin('icagenda');
|
||||
|
||||
$dispatcher->trigger('iCagendaOnNewEvent', array((object) $data));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Upload File
|
||||
*
|
||||
* @since 3.5.3
|
||||
*/
|
||||
protected function upload($file)
|
||||
{
|
||||
// Get Joomla Images PATH setting
|
||||
$image_path = JComponentHelper::getParams('com_media')->get('image_path', 'images');
|
||||
|
||||
// Get filename (name + ext)
|
||||
$filename = $file['name'];
|
||||
|
||||
// Get file extension
|
||||
$fileExtension = JFile::getExt($filename);
|
||||
|
||||
// Clean up file name to url safe string
|
||||
$fileTitle = iCFilterOutput::stringToSlug(JFile::stripExt($filename), '-');
|
||||
|
||||
// If slug generated is empty, new slug based on current date/time
|
||||
if ( ! $fileTitle)
|
||||
{
|
||||
$fileTitle = JFactory::getDate()->format("YmdHis");
|
||||
}
|
||||
|
||||
// Return new filename
|
||||
$filename = $fileTitle . '.' . $fileExtension;
|
||||
|
||||
// Increment file name if filename already exists
|
||||
while (JFile::exists(JPATH_SITE . '/' . $image_path . '/icagenda/files/' . $filename))
|
||||
{
|
||||
// Get file extension
|
||||
$fileExtension = JFile::getExt($filename);
|
||||
|
||||
// Get file title
|
||||
$fileTitle = JFile::stripExt($filename);
|
||||
|
||||
// Increment file title (eg. filename-3.jpg)
|
||||
$fileTitle = iCString::increment($fileTitle, 'dash');
|
||||
|
||||
$filename = $fileTitle . '.' . $fileExtension;
|
||||
}
|
||||
|
||||
// Save file
|
||||
if ($filename != '')
|
||||
{
|
||||
// Set up the temporary source and destination of the file
|
||||
$src = $file['tmp_name'];
|
||||
$dest = JPATH_SITE . '/' . $image_path . '/icagenda/files/' . $filename;
|
||||
|
||||
// Create folder 'files' in ROOT/IMAGES_PATH/icagenda/ if does not exist
|
||||
$folder[0][0] = 'icagenda/files/' ;
|
||||
$folder[0][1] = JPATH_SITE . '/' . $image_path . '/' . $folder[0][0];
|
||||
|
||||
$error = array();
|
||||
|
||||
foreach ($folder as $key => $value)
|
||||
{
|
||||
if ( ! JFolder::exists( $value[1]))
|
||||
{
|
||||
if (JFolder::create( $value[1], 0755 ))
|
||||
{
|
||||
$this->data = "<html>\n<body bgcolor=\"#FFFFFF\">\n</body>\n</html>";
|
||||
JFile::write($value[1] . "/index.html", $this->data);
|
||||
$error[] = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
$error[] = 1;
|
||||
}
|
||||
}
|
||||
else //Folder exist
|
||||
{
|
||||
$error[] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
// Return file path on success
|
||||
if ( JFile::upload($src, $dest, false) )
|
||||
{
|
||||
return $image_path . '/icagenda/files/' . $filename;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Maintain features to data
|
||||
*
|
||||
* @since 3.4.0
|
||||
*/
|
||||
protected function maintainFeatures($data)
|
||||
{
|
||||
// Get the list of feature ids to be linked to the event
|
||||
$features = isset($data['features']) && is_array($data['features']) ? implode(',', $data['features']) : '';
|
||||
|
||||
$db = JFactory::getDbo();
|
||||
|
||||
// Write any new feature records to the icagenda_feature_xref table
|
||||
if ( ! empty($features))
|
||||
{
|
||||
// Get a list of the valid features already present for this event
|
||||
$query = $db->getQuery(true);
|
||||
|
||||
$query->select('feature_id')
|
||||
->from($db->qn('#__icagenda_feature_xref'));
|
||||
|
||||
$query->where('event_id = ' . (int) $data['id']);
|
||||
$query->where('feature_id IN (' . $features . ')');
|
||||
|
||||
$db->setQuery($query);
|
||||
|
||||
$existing_features = $db->loadColumn(0);
|
||||
|
||||
// Identify the insert list
|
||||
if (empty($existing_features))
|
||||
{
|
||||
$new_features = $data['features'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$new_features = array();
|
||||
|
||||
foreach ($data['features'] as $feature)
|
||||
{
|
||||
if ( ! in_array($feature, $existing_features))
|
||||
{
|
||||
$new_features[] = $feature;
|
||||
}
|
||||
}
|
||||
}
|
||||
// Write the needed xref records
|
||||
if ( ! empty($new_features))
|
||||
{
|
||||
$xref = new JObject;
|
||||
$xref->set('event_id', $data['id']);
|
||||
|
||||
foreach ($new_features as $feature)
|
||||
{
|
||||
$xref->set('feature_id', $feature);
|
||||
$db->insertObject('#__icagenda_feature_xref', $xref);
|
||||
$db->setQuery($query);
|
||||
|
||||
if ( ! $db->execute())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Delete any unwanted feature records from the icagenda_feature_xref table
|
||||
$query = $db->getQuery(true);
|
||||
$query->delete($db->qn('#__icagenda_feature_xref'));
|
||||
$query->where('event_id = ' . (int) $data['id']);
|
||||
|
||||
if ( ! empty($features))
|
||||
{
|
||||
// Delete only unwanted features
|
||||
$query->where('feature_id NOT IN (' . $features . ')');
|
||||
}
|
||||
|
||||
$db->setQuery($query);
|
||||
$db->execute($query);
|
||||
|
||||
if ( ! $db->execute())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Extracts the list of Feature IDs linked to the event and returns an array
|
||||
*
|
||||
* @param integer $event_id
|
||||
*
|
||||
* @return array/integer Set of Feature IDs
|
||||
*
|
||||
* @since 3.5.3
|
||||
*/
|
||||
protected function getFeatures($event_id)
|
||||
{
|
||||
// Write any new feature records to the icagenda_feature_xref table
|
||||
if (empty($event_id))
|
||||
{
|
||||
return '';
|
||||
}
|
||||
else
|
||||
{
|
||||
$db = JFactory::getDbo();
|
||||
|
||||
// Get a comma separated list of the ids of features present for this event
|
||||
// Note: Direct extraction of a comma separated list is avoided because each db type uses proprietary syntax
|
||||
$query = $db->getQuery(true);
|
||||
$query->select('fx.feature_id')
|
||||
->from($db->qn('#__icagenda_events', 'e'))
|
||||
->innerJoin('#__icagenda_feature_xref AS fx ON e.id=fx.event_id')
|
||||
->innerJoin('#__icagenda_feature AS f ON fx.feature_id=f.id AND f.state=1');
|
||||
$query->where('e.id = ' . (int) $event_id);
|
||||
$db->setQuery($query);
|
||||
$features = $db->loadColumn(0);
|
||||
|
||||
// Return a comma separated list
|
||||
return implode(',', $features);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Approve Function.
|
||||
*
|
||||
* @since 3.2.0
|
||||
*/
|
||||
function approve($cid, $approval = 0)
|
||||
{
|
||||
if (count($cid))
|
||||
{
|
||||
JArrayHelper::toInteger($cid);
|
||||
$cids = implode( ',', $cid );
|
||||
$query = 'UPDATE #__icagenda_events'
|
||||
. ' SET approval = ' . (int) $approval
|
||||
. ' WHERE id IN (' . $cids . ')';
|
||||
$this->_db->setQuery( $query );
|
||||
|
||||
if ( ! $this->_db->query())
|
||||
{
|
||||
$this->setError($this->_db->getErrorMsg());
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to test whether a record can be deleted.
|
||||
*
|
||||
* @param object $record A record object.
|
||||
*
|
||||
* @return boolean True if allowed to delete the record. Defaults to the permission set in the component.
|
||||
*
|
||||
* @since 3.6.0
|
||||
*/
|
||||
// protected function canDelete($record)
|
||||
// {
|
||||
// if ( ! empty($record->id))
|
||||
// {
|
||||
// if ($record->state != -2)
|
||||
// {
|
||||
// return false;
|
||||
// }
|
||||
|
||||
// $user = JFactory::getUser();
|
||||
|
||||
// return $user->authorise('core.delete', 'com_icagenda.event.' . (int) $record->id);
|
||||
// }
|
||||
|
||||
// return false;
|
||||
// }
|
||||
|
||||
/**
|
||||
* Method to test whether a record can have its state edited.
|
||||
*
|
||||
* @param object $record A record object.
|
||||
*
|
||||
* @return boolean True if allowed to change the state of the record. Defaults to the permission set in the component.
|
||||
*
|
||||
* @since 3.6.0
|
||||
*/
|
||||
// protected function canEditState($record)
|
||||
// {
|
||||
// $user = JFactory::getUser();
|
||||
|
||||
// Check for existing event.
|
||||
// if (!empty($record->id))
|
||||
// {
|
||||
// return $user->authorise('core.edit.state', 'com_icagenda.event.' . (int) $record->id);
|
||||
// }
|
||||
// New event, so check against the category.
|
||||
// elseif (!empty($record->catid))
|
||||
// {
|
||||
// return $user->authorise('core.edit.state', 'com_icagenda.event.' . (int) $record->catid);
|
||||
// }
|
||||
// Default to component settings if neither event nor category known.
|
||||
// else
|
||||
// {
|
||||
// return parent::canEditState('com_icagenda');
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* HACK FOR A FEW PRO USERS !!!
|
||||
*
|
||||
* Will be removed when creation of a notification plugin
|
||||
*
|
||||
*/
|
||||
function notificationNewEvent($data)
|
||||
{
|
||||
$eventID = $data['id'];
|
||||
$title = $data['title'];
|
||||
$description = $data['desc'];
|
||||
|
||||
$venue = '';
|
||||
$venue.= $data['place'] ? $data['place'] . ' - ' : '';
|
||||
$venue.= $data['city'] ?: '';
|
||||
$venue.= ($data['city'] && $data['country']) ? ', ' : '';
|
||||
$venue.= $data['country'] ?: '';
|
||||
|
||||
// Set Date
|
||||
$date = strtotime($data['startdate'])
|
||||
? 'Du ' . $data['startdate'] . ' au ' . $data['startdate']
|
||||
: $data['next'];
|
||||
|
||||
// Set Image tag if exists
|
||||
$baseURL = JURI::base();
|
||||
$baseURL = str_replace('/administrator', '', $baseURL);
|
||||
$baseURL = ltrim($baseURL, '/');
|
||||
|
||||
$image = $data['image'] ? '<img src="' . $baseURL . '/' . $data['image'] . '" alt="' . $data['image'] . '" />' : '';
|
||||
|
||||
// Load iCagenda Global Options
|
||||
$iCparams = JComponentHelper::getParams('com_icagenda');
|
||||
|
||||
// Load Joomla Config
|
||||
$config = JFactory::getConfig();
|
||||
|
||||
// Switch Joomla 3.x / 2.5
|
||||
if (version_compare(JVERSION, '3.0', 'ge'))
|
||||
{
|
||||
// Get the site name
|
||||
$sitename = $config->get('sitename');
|
||||
|
||||
// Get Global Joomla Contact Infos
|
||||
$mailfrom = $config->get('mailfrom');
|
||||
$fromname = $config->get('fromname');
|
||||
|
||||
// Get default language
|
||||
$langdefault = $config->get('language');
|
||||
}
|
||||
else
|
||||
{
|
||||
// Get the site name
|
||||
$sitename = $config->getValue('config.sitename');
|
||||
|
||||
// Get Global Joomla Contact Infos
|
||||
$mailfrom = $config->getValue('config.mailfrom');
|
||||
$fromname = $config->getValue('config.fromname');
|
||||
|
||||
// Get default language
|
||||
$langdefault = $config->getValue('config.language');
|
||||
}
|
||||
|
||||
$siteURL = JURI::base();
|
||||
$siteURL = rtrim($siteURL,'/');
|
||||
|
||||
$iCmenuitem = false;
|
||||
|
||||
// Itemid Request (automatic detection of the first iCagenda menu-link, by menuID, and depending of current language)
|
||||
|
||||
$langFrontend = $langdefault;
|
||||
$db = JFactory::getDbo();
|
||||
$query = $db->getQuery(true);
|
||||
$query->select('id AS idm')
|
||||
->from('#__menu')
|
||||
->where( "(link = 'index.php?option=com_icagenda&view=list') AND (published > 0) AND (language = '$langFrontend')" );
|
||||
$db->setQuery($query);
|
||||
$idm = $db->loadResult();
|
||||
$mItemid = $idm;
|
||||
|
||||
if ($mItemid == NULL)
|
||||
{
|
||||
$db = JFactory::getDbo();
|
||||
$query = $db->getQuery(true);
|
||||
$query->select('id AS noidm')
|
||||
->from('#__menu')
|
||||
->where( "(link = 'index.php?option=com_icagenda&view=list') AND (published > 0) AND (language = '*')" );
|
||||
$db->setQuery($query);
|
||||
$noidm = $db->loadResult();
|
||||
}
|
||||
|
||||
$nolink = '';
|
||||
|
||||
if ($noidm == NULL && $mItemid == NULL)
|
||||
{
|
||||
$nolink = 1;
|
||||
}
|
||||
|
||||
if (is_numeric($iCmenuitem))
|
||||
{
|
||||
$lien = $iCmenuitem;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($mItemid == NULL)
|
||||
{
|
||||
$lien = $noidm;
|
||||
}
|
||||
else
|
||||
{
|
||||
$lien = $mItemid;
|
||||
}
|
||||
}
|
||||
|
||||
// Set Notification Email to each User groups allowed to receive a notification email when a new event created
|
||||
$groupid = $iCparams->get('newevent_Groups', array("8"));
|
||||
|
||||
jimport( 'joomla.access.access' );
|
||||
$newevent_Groups_Array = array();
|
||||
|
||||
foreach ($groupid AS $gp)
|
||||
{
|
||||
$GroupUsers = JAccess::getUsersByGroup($gp, False);
|
||||
$newevent_Groups_Array = array_merge($newevent_Groups_Array, $GroupUsers);
|
||||
}
|
||||
|
||||
$db = JFactory::getDbo();
|
||||
$query = $db->getQuery(true);
|
||||
|
||||
$matches = implode(',', $newevent_Groups_Array);
|
||||
$query->select('ui.username AS username, ui.email AS email, ui.password AS passw, ui.block AS block, ui.activation AS activation')
|
||||
->from('#__users AS ui')
|
||||
->where( "ui.id IN ($matches) ");
|
||||
$db->setQuery($query);
|
||||
$users = $db->loadObjectList();
|
||||
|
||||
foreach ($users AS $user)
|
||||
{
|
||||
// Create Notification Mailer
|
||||
$new_mailer = JFactory::getMailer();
|
||||
|
||||
// Set Sender of Notification Email
|
||||
$new_mailer->setSender(array( $mailfrom, $fromname ));
|
||||
|
||||
$username = $user->username;
|
||||
$passw = $user->passw;
|
||||
$email = $user->email;
|
||||
|
||||
// Set Recipient of Notification Email
|
||||
$new_recipient = $email;
|
||||
$new_mailer->addRecipient($email);
|
||||
|
||||
// Set Subject of New Event Notification Email
|
||||
$new_subject = 'Nouvel évènement, '.$sitename;
|
||||
$new_mailer->setSubject($new_subject);
|
||||
|
||||
// Set Url to preview new event
|
||||
$baseURL = JURI::base();
|
||||
$baseURL = str_replace('/administrator', '', $baseURL);
|
||||
|
||||
$urlpreview = str_replace('&','&', JRoute::_($baseURL . 'index.php?option=com_icagenda&view=event&id=' . (int) $eventID . '&Itemid=' . (int) $lien));
|
||||
|
||||
// Set Body of User Notification Email
|
||||
$new_body_hello = 'Bonjour,';
|
||||
$new_bodycontent = $new_body_hello.'<br /><br />';
|
||||
$new_body_text = $sitename.' vous propose un nouvel évènement :';
|
||||
$new_bodycontent.= $new_body_text.'<br /><br />';
|
||||
|
||||
// Event Details
|
||||
$new_bodycontent.= $title ? 'Titre: '.$title.'<br />' : '';
|
||||
$new_bodycontent.= $description ? 'Description: '.$description.'<br />' : '';
|
||||
$new_bodycontent.= $venue ? 'Lieu: '.$venue.'<br />' : '';
|
||||
$new_bodycontent.= $date ? 'Date: '.$date.'<br /><br />' : '';
|
||||
$new_bodycontent.= $image.'<br /><br />';
|
||||
|
||||
// Link to event details view
|
||||
$new_bodycontent.= '<a href="'.$urlpreview.'">'.$urlpreview.'</a><br /><br />';
|
||||
|
||||
// Footer
|
||||
$new_body_footer = 'Do not answer to this e-mail notification as it is a generated e-mail. You are receiving this email message because you are registered at '.$sitename.'.';
|
||||
$new_bodycontent.= '<hr><small>'.$new_body_footer.'<small>';
|
||||
|
||||
// Removes spaces (leading, ending) from Body
|
||||
$new_body = rtrim($new_bodycontent);
|
||||
|
||||
// Authorizes HTML
|
||||
$new_mailer->isHTML(true);
|
||||
|
||||
// JDocs: When sending HTML emails you should normally set the Encoding to base64
|
||||
// in order to avoid unwanted characters in the output.
|
||||
// See https://docs.joomla.org/Sending_email_from_extensions
|
||||
$new_mailer->Encoding = 'base64'; // JDocs Sending HTML Email
|
||||
|
||||
// Set Body
|
||||
$new_mailer->setBody($new_body);
|
||||
|
||||
// Send User Notification Email
|
||||
if (isset($email))
|
||||
{
|
||||
if ($user->block == '0' && empty($user->activation))
|
||||
{
|
||||
$send = $new_mailer->Send();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,452 @@
|
||||
<?php
|
||||
/**
|
||||
*----------------------------------------------------------------------------
|
||||
* iCagenda Events Management Extension for Joomla!
|
||||
*----------------------------------------------------------------------------
|
||||
* @version 3.7.15 2020-05-27
|
||||
*
|
||||
* @package iCagenda.Admin
|
||||
* @link https://icagenda.joomlic.com
|
||||
*
|
||||
* @author Cyril Rezé
|
||||
* @copyright (c) 2012-2020 Jooml!C / Cyril Rezé. All rights reserved.
|
||||
* @license GNU General Public License version 3 or later; see LICENSE.txt
|
||||
*
|
||||
* @since 1.0
|
||||
*----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
jimport('joomla.application.component.modellist'); // Joomla 2.5
|
||||
|
||||
/**
|
||||
* Events Model.
|
||||
*/
|
||||
class iCagendaModelEvents extends JModelList
|
||||
{
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param array $config An optional associative array of configuration settings.
|
||||
*
|
||||
* @since 1.0
|
||||
* @see JControllerLegacy
|
||||
*/
|
||||
public function __construct($config = array())
|
||||
{
|
||||
if (empty($config['filter_fields']))
|
||||
{
|
||||
$config['filter_fields'] = array(
|
||||
'id', 'e.id',
|
||||
'ordering', 'e.ordering',
|
||||
'state', 'e.state',
|
||||
'approval', 'e.approval',
|
||||
'created', 'e.created',
|
||||
'title', 'e.title',
|
||||
'username', 'e.username',
|
||||
'email', 'e.email',
|
||||
'category', 'category',
|
||||
'image', 'e.image',
|
||||
'file', 'e.file',
|
||||
'next', 'e.next',
|
||||
'place', 'e.place',
|
||||
'city', 'e.city',
|
||||
'country', 'e.country',
|
||||
'desc', 'e.desc',
|
||||
'params', 'e.params',
|
||||
// 'location', 'e.location',
|
||||
'category_id',
|
||||
'site_itemid', 'e.site_itemid',
|
||||
'language', 'e.language',
|
||||
'hits', 'e.hits',
|
||||
'author_username', 'author_name',
|
||||
);
|
||||
}
|
||||
|
||||
parent::__construct($config);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to auto-populate the model state.
|
||||
*
|
||||
* Note. Calling getState in this method will result in recursion.
|
||||
* @since 1.0
|
||||
*/
|
||||
protected function populateState($ordering = null, $direction = null)
|
||||
{
|
||||
// Initialise variables.
|
||||
$app = JFactory::getApplication('administrator');
|
||||
|
||||
// Load the filter search.
|
||||
$search = $app->getUserStateFromRequest($this->context . '.filter.search', 'filter_search');
|
||||
$this->setState('filter.search', $search);
|
||||
|
||||
// Load the filter state.
|
||||
$published = $app->getUserStateFromRequest($this->context . '.filter.state', 'filter_published', '', 'string');
|
||||
$this->setState('filter.state', $published);
|
||||
|
||||
// Load the filter approval.
|
||||
$approval = $app->getUserStateFromRequest($this->context . '.filter.approval', 'filter_approval');
|
||||
$this->setState('filter.approval', $approval);
|
||||
|
||||
// Filter (dropdown) category
|
||||
$category = $this->getUserStateFromRequest($this->context . '.filter.category', 'filter_category');
|
||||
$this->setState('filter.category', $category);
|
||||
|
||||
// Filter categoryId
|
||||
$categoryId = $this->getUserStateFromRequest($this->context . '.filter.category_id', 'filter_category_id');
|
||||
$this->setState('filter.category_id', $categoryId);
|
||||
|
||||
// Filter (dropdown) upcoming
|
||||
$upcoming = $this->getUserStateFromRequest($this->context . '.filter.upcoming', 'filter_upcoming', '', 'string');
|
||||
$this->setState('filter.upcoming', $upcoming);
|
||||
|
||||
// Filter (dropdown) Frontend Menu Itemid
|
||||
$site_itemid = $this->getUserStateFromRequest($this->context . '.filter.site_itemid', 'filter_site_itemid', '', 'string');
|
||||
$this->setState('filter.site_itemid', $site_itemid);
|
||||
|
||||
// Load the parameters.
|
||||
$params = JComponentHelper::getParams('com_icagenda');
|
||||
$this->setState('params', $params);
|
||||
|
||||
// List state information.
|
||||
parent::populateState('e.id', 'desc');
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to get a store id based on model configuration state.
|
||||
*
|
||||
* This is necessary because the model is used by the component and
|
||||
* different modules that might need different sets of data or different
|
||||
* ordering requirements.
|
||||
*
|
||||
* @param string $id A prefix for the store id.
|
||||
*
|
||||
* @return string A store id.
|
||||
*
|
||||
* @since 1.0
|
||||
*/
|
||||
protected function getStoreId($id = '')
|
||||
{
|
||||
// Compile the store id.
|
||||
$id.= ':' . $this->getState('filter.search');
|
||||
$id.= ':' . $this->getState('filter.state');
|
||||
$id.= ':' . $this->getState('filter.approval');
|
||||
$id.= ':' . $this->getState('filter.category_id');
|
||||
$id.= ':' . $this->getState('filter.site_itemid');
|
||||
|
||||
return parent::getStoreId($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Build an SQL query to load the list data.
|
||||
*
|
||||
* @return JDatabaseQuery
|
||||
*
|
||||
* @since 1.0
|
||||
*/
|
||||
protected function getListQuery()
|
||||
{
|
||||
// Create a new query object.
|
||||
$db = $this->getDbo();
|
||||
$query = $db->getQuery(true);
|
||||
|
||||
// Select the required fields from the table.
|
||||
$query->select(
|
||||
$this->getState(
|
||||
'list.select',
|
||||
'e.*'
|
||||
)
|
||||
);
|
||||
$query->from('#__icagenda_events AS e');
|
||||
|
||||
// Join over the users for the checked out user.
|
||||
$query->select('uc.name AS editor');
|
||||
$query->join('LEFT', '#__users AS uc ON uc.id = e.checked_out');
|
||||
|
||||
// Join over the asset groups.
|
||||
$query->select('ag.title AS access_level')
|
||||
->join('LEFT', '#__viewlevels AS ag ON ag.id = e.access');
|
||||
|
||||
// Join the category
|
||||
$query->select('c.title AS category');
|
||||
$query->join('LEFT', '#__icagenda_category AS c ON c.id = e.catid');
|
||||
|
||||
// Join over the users for the author.
|
||||
$query->select('CASE WHEN e.created_by = "0" THEN e.username ELSE ua.name END AS author_name, ua.username AS author_username')
|
||||
->join('LEFT', '#__users AS ua ON ua.id = e.created_by');
|
||||
|
||||
// Filter by published state
|
||||
$published = $this->getState('filter.state');
|
||||
|
||||
if (is_numeric($published))
|
||||
{
|
||||
$query->where('e.state = ' . (int) $published);
|
||||
}
|
||||
elseif ($published === '')
|
||||
{
|
||||
$query->where('(e.state IN (0, 1))');
|
||||
}
|
||||
|
||||
// Filter by approval state
|
||||
$approval = $this->getState('filter.approval');
|
||||
|
||||
if ($approval == '1')
|
||||
{
|
||||
$query->where('e.approval = "1"');
|
||||
}
|
||||
elseif ($approval == '0')
|
||||
{
|
||||
$query->where('e.approval = "0"');
|
||||
}
|
||||
|
||||
// Filter by search in title
|
||||
$search = $this->getState('filter.search');
|
||||
|
||||
if ( ! empty($search))
|
||||
{
|
||||
if (stripos($search, 'id:') === 0)
|
||||
{
|
||||
$query->where('e.id = ' . (int) substr($search, 3));
|
||||
}
|
||||
else
|
||||
{
|
||||
if (iCDate::isDate($search))
|
||||
{
|
||||
$search = $db->quote('%' . $db->escape($search, true) . '%');
|
||||
|
||||
$query->where('( e.startdate LIKE ' . $search .
|
||||
' OR e.enddate LIKE ' . $search .
|
||||
' OR e.period LIKE ' . $search .
|
||||
' OR e.dates LIKE ' . $search . ')');
|
||||
}
|
||||
else
|
||||
{
|
||||
$search = $db->quote('%' . $db->escape($search, true) . '%');
|
||||
|
||||
$query->where('( e.title LIKE ' . $search .
|
||||
' OR e.username LIKE ' . $search .
|
||||
' OR e.id LIKE ' . $search .
|
||||
' OR e.email LIKE ' . $search .
|
||||
' OR e.file LIKE ' . $search .
|
||||
' OR e.place LIKE ' . $search .
|
||||
' OR e.city LIKE ' . $search .
|
||||
' OR e.country LIKE ' . $search .
|
||||
' OR e.desc LIKE ' . $search .
|
||||
' OR e.period LIKE ' . $search .
|
||||
' OR e.dates LIKE ' . $search .
|
||||
' OR c.title LIKE ' . $search . ')');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Filter category (admin)
|
||||
$category = $db->escape($this->getState('filter.category'));
|
||||
|
||||
if (!empty($category))
|
||||
{
|
||||
$query->where('(e.catid = ' . $category . ')');
|
||||
}
|
||||
|
||||
// Filter Frontend Menu Itemid (admin)
|
||||
$site_itemid = $db->escape($this->getState('filter.site_itemid'));
|
||||
|
||||
if ($site_itemid == '0')
|
||||
{
|
||||
$query->where('(e.site_itemid = "0")');
|
||||
}
|
||||
elseif ($site_itemid)
|
||||
{
|
||||
$query->where('(e.site_itemid = ' . (int) $site_itemid . ')');
|
||||
}
|
||||
|
||||
// Filter by categories. (NOT USED (multiple-categories filter))
|
||||
$categoryId = $this->getState('filter.category_id');
|
||||
|
||||
if (is_numeric($categoryId) && ! empty($categoryId))
|
||||
{
|
||||
$query->where('e.catid = ' . (int) $categoryId . '');
|
||||
}
|
||||
elseif (is_array($categoryId) && ! empty($categoryId))
|
||||
{
|
||||
JArrayHelper::toInteger($categoryId);
|
||||
$categoryId = implode(',', $categoryId);
|
||||
$query->where('e.catid IN (' . $categoryId . ')');
|
||||
}
|
||||
|
||||
|
||||
// Filter Upcoming Dates
|
||||
$upcoming = $db->escape($this->getState('filter.upcoming'));
|
||||
|
||||
if ( ! empty($upcoming))
|
||||
{
|
||||
if ($upcoming == '1')
|
||||
{
|
||||
$query->where(' e.next >= CURDATE()');
|
||||
}
|
||||
elseif ($upcoming == '2')
|
||||
{
|
||||
$query->where(' e.next < CURDATE() ');
|
||||
}
|
||||
elseif ($upcoming == '3')
|
||||
{
|
||||
$query->where(' e.next >= NOW() ');
|
||||
}
|
||||
elseif ($upcoming == '4')
|
||||
{
|
||||
$query->where(' e.next >= CURDATE() AND e.next < ( CURDATE() + INTERVAL 1 DAY ) ');
|
||||
}
|
||||
}
|
||||
|
||||
// Add the list ordering clause.
|
||||
$orderCol = $this->state->get('list.ordering');
|
||||
$orderDirn = $this->state->get('list.direction');
|
||||
|
||||
if ($orderCol && $orderDirn)
|
||||
{
|
||||
$query->order($db->escape($orderCol.' '.$orderDirn));
|
||||
}
|
||||
|
||||
return $query;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Method to get an array of data items.
|
||||
*
|
||||
* @return mixed An array of data items on success, false on failure.
|
||||
*
|
||||
* @since 3.6.0
|
||||
*/
|
||||
public function getItems()
|
||||
{
|
||||
// Since Joomla 3.6.0, need to check if user ID exists to prevent alert message in list
|
||||
$usersTable = JUser::getTable();
|
||||
|
||||
if ($items = parent::getItems())
|
||||
{
|
||||
// Do any procesing on fields here if needed
|
||||
foreach ($items AS $item)
|
||||
{
|
||||
if ($item->created_by && $usersTable->load($item->created_by))
|
||||
{
|
||||
$item->username = JFactory::getUser($item->created_by)->get('name');
|
||||
}
|
||||
|
||||
// Check Next Date
|
||||
$item->next = icagendaEvent::getNextDate($item);
|
||||
}
|
||||
}
|
||||
|
||||
return $items;
|
||||
}
|
||||
|
||||
/**
|
||||
* Build an SQL query to load the list of all categories.
|
||||
*
|
||||
* @return JDatabaseQuery
|
||||
* @since 3.3.0
|
||||
*/
|
||||
function getCategories()
|
||||
{
|
||||
// Create a new query object.
|
||||
$db = JFactory::getDBO();
|
||||
$query = $db->getQuery(true);
|
||||
|
||||
// Select the required fields from the table.
|
||||
$query->select('c.id AS catid, c.title AS category');
|
||||
$query->from('#__icagenda_category AS c');
|
||||
|
||||
// Filter by published state
|
||||
$query->where('(c.state IN (0,1))');
|
||||
|
||||
// Order Ordering ASC
|
||||
$query->order('c.ordering ASC');
|
||||
|
||||
$db->setQuery($query);
|
||||
$categories = $db->loadObjectList();
|
||||
|
||||
if (count($categories) > 0)
|
||||
{
|
||||
foreach ($categories as $cat)
|
||||
{
|
||||
$list[$cat->catid] = $cat->category;
|
||||
}
|
||||
|
||||
return $list;
|
||||
}
|
||||
else
|
||||
{
|
||||
return array();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Build an SQL query to load the list of menu item itemid.
|
||||
*
|
||||
* @return JDatabaseQuery
|
||||
* @since 3.3.0
|
||||
*/
|
||||
function getMenuItemID()
|
||||
{
|
||||
// Create a new query object.
|
||||
$db = JFactory::getDBO();
|
||||
$query = $db->getQuery(true);
|
||||
|
||||
// Select the required fields from the table.
|
||||
$query->select('m.id AS itemid, m.link AS menu_link, m.title AS menu_title');
|
||||
$query->from('#__menu AS m');
|
||||
|
||||
// Filter by published state
|
||||
$query->where('(m.link = "index.php?option=com_icagenda&view=submit")');
|
||||
$query->where('(m.published IN (0,1))');
|
||||
|
||||
$db->setQuery($query);
|
||||
$itemids = $db->loadObjectList();
|
||||
|
||||
$list['0'] = 'Created in admin';
|
||||
|
||||
if (count($itemids) > 0)
|
||||
{
|
||||
foreach ($itemids as $itemid)
|
||||
{
|
||||
$list[$itemid->itemid] = $itemid->itemid . ' - ' . $itemid->menu_title;
|
||||
}
|
||||
|
||||
return $list;
|
||||
}
|
||||
else
|
||||
{
|
||||
return array();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a list of options for Upcoming (Events) Filter.
|
||||
*
|
||||
* @since 3.3.0
|
||||
*/
|
||||
function getUpcoming()
|
||||
{
|
||||
$list['1'] = JText::_('COM_ICAGENDA_OPTION_TODAY_AND_UPCOMING');
|
||||
$list['2'] = JText::_('COM_ICAGENDA_OPTION_PAST_EVENTS');
|
||||
$list['3'] = JText::_('COM_ICAGENDA_OPTION_UPCOMING_EVENTS');
|
||||
$list['4'] = JText::_('COM_ICAGENDA_OPTION_TODAY');
|
||||
|
||||
return $list;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a list of options for Approval Filter.
|
||||
*
|
||||
* @since 3.6.12
|
||||
*/
|
||||
function getApprovalOptions()
|
||||
{
|
||||
$list['0'] = JText::_('COM_ICAGENDA_APPROVED');
|
||||
$list['1'] = JText::_('COM_ICAGENDA_UNAPPROVED');
|
||||
|
||||
return $list;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,172 @@
|
||||
<?php
|
||||
/**
|
||||
*------------------------------------------------------------------------------
|
||||
* iCagenda v3 by Jooml!C - Events Management Extension for Joomla! 2.5 / 3.x
|
||||
*------------------------------------------------------------------------------
|
||||
* @package com_icagenda
|
||||
* @copyright Copyright (c)2012-2019 Cyril Rezé, Jooml!C - All rights reserved
|
||||
*
|
||||
* @license GNU General Public License version 3 or later; see LICENSE.txt
|
||||
* @author doorknob
|
||||
* @link http://www.joomlic.com
|
||||
*
|
||||
* @version 3.4.0 2014-12-05
|
||||
* @since 3.4.0
|
||||
*------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die();
|
||||
|
||||
jimport('joomla.application.component.modeladmin');
|
||||
|
||||
/**
|
||||
* iCagenda model.
|
||||
*/
|
||||
class iCagendaModelfeature extends JModelAdmin
|
||||
{
|
||||
/**
|
||||
* @var string The prefix to use with controller messages.
|
||||
* @since 3.4.0
|
||||
*/
|
||||
protected $text_prefix = 'COM_ICAGENDA';
|
||||
|
||||
/**
|
||||
* Returns a reference to the a Table object, always creating it.
|
||||
*
|
||||
* @param type The table type to instantiate
|
||||
* @param string A prefix for the table class name. Optional.
|
||||
* @param array Configuration array for model. Optional.
|
||||
* @return JTable A database object
|
||||
* @since 3.4.0
|
||||
*/
|
||||
public function getTable($type = 'Feature', $prefix = 'iCagendaTable', $config = array())
|
||||
{
|
||||
return JTable::getInstance($type, $prefix, $config);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to get the record form.
|
||||
*
|
||||
* @param array $data An optional array of data for the form to interogate.
|
||||
* @param boolean $loadData True if the form is to load its own data (default case), false if not.
|
||||
* @return JForm A JForm object on success, false on failure
|
||||
* @since 3.4.0
|
||||
*/
|
||||
public function getForm($data = array(), $loadData = true)
|
||||
{
|
||||
// Initialise variables.
|
||||
$app = JFactory::getApplication();
|
||||
|
||||
// Get the form.
|
||||
$form = $this->loadForm('com_icagenda.feature', 'feature', array('control' => 'jform', 'load_data' => $loadData));
|
||||
|
||||
if (empty($form))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return $form;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to get the data that should be injected in the form.
|
||||
*
|
||||
* @return mixed The data for the form.
|
||||
* @since 3.4.0
|
||||
*/
|
||||
protected function loadFormData()
|
||||
{
|
||||
// Check the session for previously entered form data.
|
||||
$data = JFactory::getApplication()->getUserState('com_icagenda.edit.feature.data', array());
|
||||
|
||||
if (empty($data))
|
||||
{
|
||||
$data = $this->getItem();
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to get a single record.
|
||||
*
|
||||
* @param integer The id of the primary key.
|
||||
*
|
||||
* @return mixed Object on success, false on failure.
|
||||
* @since 3.4.0
|
||||
*/
|
||||
public function getItem($pk = null)
|
||||
{
|
||||
if ($item = parent::getItem($pk))
|
||||
{
|
||||
//Do any procesing on fields here if needed
|
||||
}
|
||||
|
||||
return $item;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepare and sanitise the table prior to saving.
|
||||
*
|
||||
* @since 3.4.0
|
||||
*/
|
||||
protected function prepareTable($table)
|
||||
{
|
||||
jimport('joomla.filter.output');
|
||||
|
||||
if (empty($table->id))
|
||||
{
|
||||
// Set ordering to the last item if not set
|
||||
if (@$table->ordering === '')
|
||||
{
|
||||
$db = JFactory::getDbo();
|
||||
$db->setQuery('SELECT MAX(ordering) FROM #__icagenda_feature');
|
||||
$max = $db->loadResult();
|
||||
$table->ordering = $max+1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to save the form data.
|
||||
*
|
||||
* @param array $data The form data.
|
||||
*
|
||||
* @return boolean True on success.
|
||||
*
|
||||
* @since 3.4.0
|
||||
*/
|
||||
public function save($data)
|
||||
{
|
||||
$date = JFactory::getDate();
|
||||
|
||||
if (empty($data['created']))
|
||||
{
|
||||
$data['created'] = !empty($data['created']) ? $data['created'] : $date->toSql();
|
||||
}
|
||||
|
||||
// Generates Alias if empty
|
||||
// Alias is not generated if non-latin characters, so we fix it by using created date, or title if unicode is activated, as alias
|
||||
if ($data['alias'] == null || empty($data['alias']))
|
||||
{
|
||||
$data['alias'] = JFilterOutput::stringURLSafe($data['title']);
|
||||
|
||||
if ($data['alias'] == null || empty($data['alias']))
|
||||
{
|
||||
if (JFactory::getConfig()->get('unicodeslugs') == 1)
|
||||
{
|
||||
$data['alias'] = JFilterOutput::stringURLUnicodeSlug($data['title']);
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['alias'] = JFilterOutput::stringURLSafe($data['created']);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$return = parent::save($data);
|
||||
|
||||
return $return;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,164 @@
|
||||
<?php
|
||||
/**
|
||||
*------------------------------------------------------------------------------
|
||||
* iCagenda v3 by Jooml!C - Events Management Extension for Joomla! 2.5 / 3.x
|
||||
*------------------------------------------------------------------------------
|
||||
* @package com_icagenda
|
||||
* @copyright Copyright (c)2012-2019 Cyril Rezé, Jooml!C - All rights reserved
|
||||
*
|
||||
* @license GNU General Public License version 3 or later; see LICENSE.txt
|
||||
* @author doorknob & Cyril Rezé
|
||||
* @link http://www.joomlic.com
|
||||
*
|
||||
* @version 3.4.0 2014-07-02
|
||||
* @since 3.4.0
|
||||
*------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die();
|
||||
|
||||
jimport('joomla.application.component.modellist');
|
||||
|
||||
/**
|
||||
* Methods supporting a list of iCagenda records.
|
||||
*/
|
||||
class iCagendaModelfeatures extends JModelList
|
||||
{
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param array An optional associative array of configuration settings.
|
||||
* @see JController
|
||||
* @since 3.4.0
|
||||
*/
|
||||
public function __construct($config = array())
|
||||
{
|
||||
if (empty($config['filter_fields']))
|
||||
{
|
||||
$config['filter_fields'] = array(
|
||||
'id', 'a.id',
|
||||
'ordering', 'a.ordering',
|
||||
'state', 'a.state',
|
||||
'desc', 'a.desc',
|
||||
'icon', 'a.icon',
|
||||
'icon_alt', 'a.icon_alt',
|
||||
'show_filter', 'a.show_filter',
|
||||
);
|
||||
}
|
||||
|
||||
parent::__construct($config);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Method to auto-populate the model state.
|
||||
*
|
||||
* Note. Calling getState in this method will result in recursion.
|
||||
*
|
||||
* @since 3.4.0
|
||||
*/
|
||||
protected function populateState($ordering = null, $direction = null)
|
||||
{
|
||||
// Initialise variables.
|
||||
$app = JFactory::getApplication('administrator');
|
||||
|
||||
// Load the filter state.
|
||||
$search = $app->getUserStateFromRequest($this->context.'.filter.search', 'filter_search');
|
||||
$this->setState('filter.search', $search);
|
||||
|
||||
$published = $app->getUserStateFromRequest($this->context.'.filter.state', 'filter_published', '', 'string');
|
||||
$this->setState('filter.state', $published);
|
||||
|
||||
// Load the parameters.
|
||||
$params = JComponentHelper::getParams('com_icagenda');
|
||||
$this->setState('params', $params);
|
||||
|
||||
// List state information.
|
||||
parent::populateState('a.title', 'asc');
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to get a store id based on model configuration state.
|
||||
*
|
||||
* This is necessary because the model is used by the component and
|
||||
* different modules that might need different sets of data or different
|
||||
* ordering requirements.
|
||||
*
|
||||
* @param string $id A prefix for the store id.
|
||||
* @return string A store id.
|
||||
* @since 3.4.0
|
||||
*/
|
||||
protected function getStoreId($id = '')
|
||||
{
|
||||
// Compile the store id.
|
||||
$id.= ':' . $this->getState('filter.search');
|
||||
$id.= ':' . $this->getState('filter.state');
|
||||
|
||||
return parent::getStoreId($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Build an SQL query to load the list data.
|
||||
*
|
||||
* @return JDatabaseQuery
|
||||
* @since 3.4.0
|
||||
*/
|
||||
protected function getListQuery()
|
||||
{
|
||||
// Create a new query object.
|
||||
$db = $this->getDbo();
|
||||
$query = $db->getQuery(true);
|
||||
|
||||
// Select the required fields from the table.
|
||||
$query->select(
|
||||
$this->getState(
|
||||
'list.select',
|
||||
'a.*'
|
||||
)
|
||||
);
|
||||
$query->from('#__icagenda_feature AS a');
|
||||
|
||||
// Join over the users for the checked out user.
|
||||
$query->select('uc.name AS editor');
|
||||
$query->leftJoin('#__users AS uc ON uc.id=a.checked_out');
|
||||
|
||||
// Filter by published state
|
||||
$published = $this->getState('filter.state');
|
||||
if (is_numeric($published))
|
||||
{
|
||||
$query->where('a.state=' . (int) $published);
|
||||
}
|
||||
elseif ($published === '')
|
||||
{
|
||||
$query->where('(a.state IN (0, 1))');
|
||||
}
|
||||
|
||||
// Filter by search in title
|
||||
$search = $this->getState('filter.search');
|
||||
|
||||
if (!empty($search))
|
||||
{
|
||||
if (stripos($search, 'id:') === 0)
|
||||
{
|
||||
$query->where('a.id = ' . (int) substr($search, 3));
|
||||
}
|
||||
else
|
||||
{
|
||||
$search = $db->Quote('%'.$db->escape($search, true).'%');
|
||||
$query->where("(a.title LIKE $search OR a.desc LIKE $search)");
|
||||
}
|
||||
}
|
||||
|
||||
// Add the list ordering clause.
|
||||
$orderCol = $this->state->get('list.ordering');
|
||||
$orderDirn = $this->state->get('list.direction');
|
||||
|
||||
if ($orderCol && $orderDirn)
|
||||
{
|
||||
$query->order($db->escape("$orderCol $orderDirn"));
|
||||
}
|
||||
|
||||
return $query;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,26 @@
|
||||
<?php
|
||||
/**
|
||||
* iCagenda
|
||||
*----------------------------------------------------------------------------
|
||||
* @package com_icagenda
|
||||
* @copyright Copyright (C) 2012 JOOMLIC - All rights reserved.
|
||||
* @license GNU General Public License version 3 or later; see LICENSE.txt
|
||||
* @author Jooml!C - http://www.joomlic.com
|
||||
*
|
||||
* @since 1.2.6
|
||||
*----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
// No direct access to this file
|
||||
defined( '_JEXEC' ) or die( 'Restricted access' );
|
||||
|
||||
jimport('joomla.application.component.modellist');
|
||||
|
||||
/**
|
||||
* Methods supporting a list of iCagenda records.
|
||||
*/
|
||||
class iCagendaModelfields extends JModelList
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,315 @@
|
||||
<?php
|
||||
/**
|
||||
*------------------------------------------------------------------------------
|
||||
* iCagenda v3 by Jooml!C - Events Management Extension for Joomla! 2.5 / 3.x
|
||||
*------------------------------------------------------------------------------
|
||||
* @package com_icagenda
|
||||
* @copyright Copyright (c)2012-2019 Cyril Rezé, Jooml!C - All rights reserved
|
||||
*
|
||||
* @license GNU General Public License version 3 or later; see LICENSE.txt
|
||||
* @author Cyril Rezé (Lyr!C)
|
||||
* @link http://www.joomlic.com
|
||||
*
|
||||
* @version 3.5.7 2015-07-12
|
||||
* @since 2.1.7
|
||||
*------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die();
|
||||
|
||||
jimport( 'joomla.filesystem.path' );
|
||||
jimport('joomla.form.formfield');
|
||||
|
||||
class JFormFieldiClist_globalization extends JFormField
|
||||
{
|
||||
protected $type='iclist_globalization';
|
||||
|
||||
protected function getInput()
|
||||
{
|
||||
$lang = JFactory::getLanguage();
|
||||
$langTag = $lang->getTag();
|
||||
$langName = $lang->getName();
|
||||
|
||||
if ( ! file_exists(JPATH_LIBRARIES . '/ic_library/globalize/culture/' . $langTag . '.php'))
|
||||
{
|
||||
$langTag = 'en-GB';
|
||||
$currentText = JTEXT::_('COM_ICAGENDA_DATE_FORMAT_DEFAULT') . ' [' . $langTag . '] :';
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
$currentText = JTEXT::_('COM_ICAGENDA_DATE_FORMAT_CURRENT') . ' [' . $langTag . '] :';
|
||||
}
|
||||
|
||||
$globalize = JPATH_LIBRARIES . '/ic_library/globalize/culture/' . $langTag . '.php';
|
||||
$iso = JPATH_LIBRARIES . '/ic_library/globalize/culture/iso.php';
|
||||
|
||||
require_once $globalize;
|
||||
require_once $iso;
|
||||
|
||||
$class = isset($class) ? ' class="' . $class . '"' : '';
|
||||
$selected = ' selected="selected" style="background:#D4D4D4;"';
|
||||
|
||||
// Start Select List of Date Formats
|
||||
$html = '<select id="' . $this->id . '_id"' . $class . ' name="' . $this->name . '" style="width:250px;" >';
|
||||
|
||||
if ($this->name != 'jform[format]' && $this->name != 'format')
|
||||
{
|
||||
$html.= '<option value="" style="text-align:center;">- ' . JTEXT::_('COM_ICAGENDA_SELECT_FORMAT') . ' -</option>';
|
||||
}
|
||||
|
||||
// Date Formats in Current Language of User (admin)
|
||||
if (version_compare(JVERSION, '3.0', 'lt'))
|
||||
{
|
||||
$html.= '<optgroup label=" "></optgroup>';
|
||||
$html.= '<optgroup label="' . $currentText . '" style="font-style:normal; color:#333333;"></optgroup>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$html.= '<optgroup label="' . $currentText . '">';
|
||||
}
|
||||
|
||||
$dateglobalize_array[] = array();
|
||||
$dateglobalize_array[] = $dateglobalize_1;
|
||||
$dateglobalize_array[] = $dateglobalize_2;
|
||||
$dateglobalize_array[] = $dateglobalize_3;
|
||||
$dateglobalize_array[] = $dateglobalize_4;
|
||||
$dateglobalize_array[] = isset($dateglobalize_5) ? $dateglobalize_5 : ''; // en-GB, en-US
|
||||
$dateglobalize_array[] = $dateglobalize_6;
|
||||
$dateglobalize_array[] = $dateglobalize_7;
|
||||
$dateglobalize_array[] = $dateglobalize_8;
|
||||
$dateglobalize_array[] = isset($dateglobalize_9) ? $dateglobalize_9 : ''; // en-GB
|
||||
$dateglobalize_array[] = isset($dateglobalize_10) ? $dateglobalize_10 : ''; // en-GB
|
||||
$dateglobalize_array[] = $dateglobalize_11;
|
||||
$dateglobalize_array[] = $dateglobalize_12;
|
||||
|
||||
foreach ($dateglobalize_array as $format => $label)
|
||||
{
|
||||
if (isset($label) && $label)
|
||||
{
|
||||
$html.= '<option value="' . $format . '"';
|
||||
$html.= ($this->value == $format) ? $selected : '';
|
||||
$html.= '>' . $label . '</option>';
|
||||
}
|
||||
}
|
||||
|
||||
if (version_compare(JVERSION, '3.0', 'ge'))
|
||||
{
|
||||
$html.= '</optgroup>';
|
||||
}
|
||||
|
||||
|
||||
// Other date format in English (if 'en-GB' is current language)
|
||||
if ($langTag == 'en-GB')
|
||||
{
|
||||
// Extra en-US
|
||||
if (version_compare(JVERSION, '3.0', 'lt'))
|
||||
{
|
||||
$html.= '<optgroup label=" "></optgroup>';
|
||||
$html.= '<optgroup label="Other date format in English" style="font-style:normal; color:#333333;"></optgroup>';
|
||||
$html.= '<optgroup label="en-US (more formats if current language) :" style="font-weight:normal; color:#777777;"></optgroup>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$html.= '<optgroup label="en-US (more formats if current language) :">';
|
||||
}
|
||||
|
||||
$extra_array = array(
|
||||
$extravalue_1 => $extra_1,
|
||||
$extravalue_2 => $extra_2,
|
||||
$extravalue_3 => $extra_3,
|
||||
$extravalue_4 => $extra_4,
|
||||
$extravalue_5 => $extra_5,
|
||||
);
|
||||
|
||||
foreach ($extra_array as $format => $label)
|
||||
{
|
||||
$html.= '<option value="' . $format . '"';
|
||||
$html.= ($this->value == $format) ? $selected : '';
|
||||
$html.= '>' . $label . '</option>';
|
||||
}
|
||||
|
||||
if (version_compare(JVERSION, '3.0', 'ge'))
|
||||
{
|
||||
$html.= '</optgroup>';
|
||||
}
|
||||
|
||||
// Extra en-CA
|
||||
if (version_compare(JVERSION, '3.0', 'lt'))
|
||||
{
|
||||
$html.= '<optgroup label="en-CA :" style="font-weight:normal; color:#777777;"></optgroup>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$html.= '<optgroup label="en-CA :">';
|
||||
}
|
||||
|
||||
$html.= '<option value="' . $extravalue_6 . '"';
|
||||
$html.= ($this->value == $extravalue_6) ? $selected : '';
|
||||
$html.= '>' . $extra_6 . '</option>';
|
||||
|
||||
if (version_compare(JVERSION, '3.0', 'ge'))
|
||||
{
|
||||
$html.= '</optgroup>';
|
||||
}
|
||||
|
||||
// Extra en-SG
|
||||
if (version_compare(JVERSION, '3.0', 'lt'))
|
||||
{
|
||||
$html.= '<optgroup label="en-SG :" style="font-weight:normal; color:#777777;"></optgroup>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$html.= '<optgroup label="en-SG :">';
|
||||
}
|
||||
|
||||
$html.= '<option value="' . $extravalue_7 . '"';
|
||||
$html.= ($this->value == $extravalue_7) ? $selected : '';
|
||||
$html.= '>' . $extra_7 . '</option>';
|
||||
|
||||
if (version_compare(JVERSION, '3.0', 'ge'))
|
||||
{
|
||||
$html.= '</optgroup>';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// International Date Format (ISO)
|
||||
if (version_compare(JVERSION, '3.0', 'lt'))
|
||||
{
|
||||
$html.= '<optgroup label=" "></optgroup>';
|
||||
$html.= '<optgroup label="' . JTEXT::_('COM_ICAGENDA_DATE_FORMAT_ISO') . '" style="font-style:normal; color:#333333;"></optgroup>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$html.= '<optgroup label="' . JTEXT::_('COM_ICAGENDA_DATE_FORMAT_ISO') . '">';
|
||||
}
|
||||
|
||||
$html.= '<option value="' . $iso . '"';
|
||||
$html.= ($this->value == $iso) ? $selected : '';
|
||||
$html.= '>1993-04-30</option>';
|
||||
|
||||
if (version_compare(JVERSION, '3.0', 'ge'))
|
||||
{
|
||||
$html.= '</optgroup>';
|
||||
}
|
||||
|
||||
|
||||
// Global date formats with separator
|
||||
if (version_compare(JVERSION, '3.0', 'lt'))
|
||||
{
|
||||
$html.= '<optgroup label=" "></optgroup>';
|
||||
$html.= '<optgroup label="' . JTEXT::_('COM_ICAGENDA_DATE_FORMAT_SEPARATOR') . '" style="font-style:normal; color:#333333;"></optgroup>';
|
||||
}
|
||||
|
||||
|
||||
// DMY Little-endian (day, month, year), e.g. 22.04.96 or 22/04/96
|
||||
if (version_compare(JVERSION, '3.0', 'lt'))
|
||||
{
|
||||
$html.= '<optgroup label="' . JTEXT::_('COM_ICAGENDA_DATE_FORMAT_DMY') . ' :" style="font-weight:normal; color:#777777;"></optgroup>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$html.= '<optgroup label="' . JTEXT::_('COM_ICAGENDA_DATE_FORMAT_DMY') . '">';
|
||||
}
|
||||
|
||||
$dmy_array = array(
|
||||
$dmy_1 => '30␣04␣1993',
|
||||
$dmy_2 => '30␣04␣93',
|
||||
$dmy_3 => '30␣04',
|
||||
$dmy_4 => '04␣93',
|
||||
$dmy_5 => isset($dmy_text_5) ? $dmy_text_5 : '',
|
||||
$dmy_6 => isset($dmy_text_6) ? $dmy_text_6 : ''
|
||||
);
|
||||
|
||||
foreach ($dmy_array as $format => $label)
|
||||
{
|
||||
if ($label)
|
||||
{
|
||||
$html.= '<option value="' . $format . '"';
|
||||
$html.= ($this->value == $format) ? $selected : '';
|
||||
$html.= '>' . $label . '</option>';
|
||||
}
|
||||
}
|
||||
|
||||
if (version_compare(JVERSION, '3.0', 'ge'))
|
||||
{
|
||||
$html.= '</optgroup>';
|
||||
}
|
||||
|
||||
|
||||
// MDY Middle-endian (month, day, year), e.g. 04/22/96
|
||||
if (version_compare(JVERSION, '3.0', 'lt'))
|
||||
{
|
||||
$html.= '<optgroup label="' . JTEXT::_('COM_ICAGENDA_DATE_FORMAT_MDY') . ' :" style="font-weight:normal; color:#777777;"></optgroup>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$html.= '<optgroup label="' . JTEXT::_('COM_ICAGENDA_DATE_FORMAT_MDY') . '">';
|
||||
}
|
||||
|
||||
$mdy_array = array(
|
||||
$mdy_1 => '04␣30␣1993',
|
||||
$mdy_2 => '04␣30␣93',
|
||||
$mdy_3 => '04␣30',
|
||||
$mdy_4 => '04␣93',
|
||||
$mdy_5 => isset($mdy_text_5) ? $mdy_text_5 : '',
|
||||
$mdy_6 => isset($mdy_text_6) ? $mdy_text_6 : ''
|
||||
);
|
||||
|
||||
foreach ($mdy_array as $format => $label)
|
||||
{
|
||||
if ($label)
|
||||
{
|
||||
$html.= '<option value="' . $format . '"';
|
||||
$html.= ($this->value == $format) ? $selected : '';
|
||||
$html.= '>' . $label . '</option>';
|
||||
}
|
||||
}
|
||||
|
||||
if (version_compare(JVERSION, '3.0', 'ge'))
|
||||
{
|
||||
$html.= '</optgroup>';
|
||||
}
|
||||
|
||||
|
||||
// YMD Big-endian (year, month, day), e.g. 1996-04-22
|
||||
if (version_compare(JVERSION, '3.0', 'lt'))
|
||||
{
|
||||
$html.= '<optgroup label="' . JTEXT::_('COM_ICAGENDA_DATE_FORMAT_YMD') . ' :" style="font-weight:normal; color:#777777;"></optgroup>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$html.= '<optgroup label="' . JTEXT::_('COM_ICAGENDA_DATE_FORMAT_YMD') . '">';
|
||||
}
|
||||
|
||||
$ymd_array = array(
|
||||
$ymd_1 => '1993␣04␣30',
|
||||
$ymd_2 => '93␣04␣30',
|
||||
$ymd_3 => '04␣30',
|
||||
$ymd_4 => '93␣04',
|
||||
$ymd_5 => isset($ymd_text_5) ? $ymd_text_5 : '',
|
||||
$ymd_6 => isset($ymd_text_6) ? $ymd_text_6 : ''
|
||||
);
|
||||
|
||||
foreach ($ymd_array as $format => $label)
|
||||
{
|
||||
if ($label)
|
||||
{
|
||||
$html.= '<option value="' . $format . '"';
|
||||
$html.= ($this->value == $format) ? $selected : '';
|
||||
$html.= '>' . $label . '</option>';
|
||||
}
|
||||
}
|
||||
|
||||
if (version_compare(JVERSION, '3.0', 'ge'))
|
||||
{
|
||||
$html.= '</optgroup>';
|
||||
}
|
||||
|
||||
$html.= '</select>';
|
||||
|
||||
return $html;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1 @@
|
||||
<html><body></body></html>
|
||||
@ -0,0 +1,48 @@
|
||||
<?php
|
||||
/**
|
||||
*------------------------------------------------------------------------------
|
||||
* iCagenda v3 by Jooml!C - Events Management Extension for Joomla! 2.5 / 3.x
|
||||
*------------------------------------------------------------------------------
|
||||
* @package com_icagenda
|
||||
* @copyright Copyright (c)2012-2019 Cyril Rezé, Jooml!C - All rights reserved
|
||||
*
|
||||
* @license GNU General Public License version 3 or later; see LICENSE.txt
|
||||
* @author Cyril Rezé (Lyr!C)
|
||||
* @link http://www.joomlic.com
|
||||
*
|
||||
* @version 3.5.0 2015-02-25
|
||||
* @since 1.0
|
||||
*------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die();
|
||||
|
||||
jimport( 'joomla.filesystem.path' );
|
||||
jimport('joomla.form.formfield');
|
||||
|
||||
/**
|
||||
* Returns City from Google Maps address auto-complete field.
|
||||
*/
|
||||
class JFormFieldiCmap_city extends JFormField
|
||||
{
|
||||
protected $type='icmap_city';
|
||||
|
||||
protected function getInput()
|
||||
{
|
||||
$session = JFactory::getSession();
|
||||
$ic_submit_city = $session->get('ic_submit_city', '');
|
||||
|
||||
$city_value = $ic_submit_city ? $ic_submit_city : $this->value;
|
||||
|
||||
$class = isset($this->class) ? ' class="' . $this->class . '"' : '';
|
||||
|
||||
$html = '<div class="clr"></div>';
|
||||
$html.= '<label class="icmap-label">' . JText::_('COM_ICAGENDA_FORM_LBL_EVENT_CITY') . '</label> <input name="' . $this->name . '" id="locality" type="text"' . $class . ' value="' . $city_value . '"/>';
|
||||
|
||||
// clear the data so we don't process it again
|
||||
$session->clear('ic_submit_city');
|
||||
|
||||
return $html;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,48 @@
|
||||
<?php
|
||||
/**
|
||||
*------------------------------------------------------------------------------
|
||||
* iCagenda v3 by Jooml!C - Events Management Extension for Joomla! 2.5 / 3.x
|
||||
*------------------------------------------------------------------------------
|
||||
* @package com_icagenda
|
||||
* @copyright Copyright (c)2012-2019 Cyril Rezé, Jooml!C - All rights reserved
|
||||
*
|
||||
* @license GNU General Public License version 3 or later; see LICENSE.txt
|
||||
* @author Cyril Rezé (Lyr!C)
|
||||
* @link http://www.joomlic.com
|
||||
*
|
||||
* @version 3.5.0 2015-02-25
|
||||
* @since 1.0
|
||||
*------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die();
|
||||
|
||||
jimport( 'joomla.filesystem.path' );
|
||||
jimport('joomla.form.formfield');
|
||||
|
||||
/**
|
||||
* Returns Country from Google Maps address auto-complete field.
|
||||
*/
|
||||
class JFormFieldiCmap_country extends JFormField
|
||||
{
|
||||
protected $type='icmap_country';
|
||||
|
||||
protected function getInput()
|
||||
{
|
||||
$session = JFactory::getSession();
|
||||
$ic_submit_country = $session->get('ic_submit_country', '');
|
||||
|
||||
$country_value = $ic_submit_country ? $ic_submit_country : $this->value;
|
||||
|
||||
$class = isset($this->class) ? ' class="' . $this->class . '"' : '';
|
||||
|
||||
$html = '<div class="clr"></div>';
|
||||
$html.= '<label class="icmap-label">' . JText::_('COM_ICAGENDA_FORM_LBL_EVENT_COUNTRY') . '</label> <input name="' . $this->name . '" id="country" type="text"' . $class . ' value="' . $country_value . '" />';
|
||||
|
||||
// clear the data so we don't process it again
|
||||
$session->clear('ic_submit_country');
|
||||
|
||||
return $html;
|
||||
}
|
||||
}
|
||||