| Current Path : /home/azimutno/azimutno/azimutno/azimutno/www/demo/modules/mod_pwebbox/form/fields/ |
| Current File : /home/azimutno/azimutno/azimutno/azimutno/www/demo/modules/mod_pwebbox/form/fields/pwebdlid.php |
<?php
/**
* @package pwebbox
* @version 2.0.0
*
* @copyright Copyright (C) 2015 Perfect Web. All rights reserved. http://www.perfect-web.co
* @license GNU General Public Licence http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
JFormHelper::loadFieldClass('Text');
/**
* Download ID
*/
class JFormFieldPwebDlid extends JFormFieldText
{
protected $type = 'PwebDlid';
/**
* Method to attach a JForm object to the field.
*
* @param SimpleXMLElement $element The SimpleXMLElement object representing the <field /> tag for the form field object.
* @param mixed $value The form field value to validate.
* @param string $group The field name group control value. This acts as as an array container for the field.
* For example if the field has name="foo" and the group value is set to "bar" then the
* full field name would end up being "bar[foo]".
*
* @return boolean True on success.
*
* @since 11.1
*/
public function setup(SimpleXMLElement $element, $value, $group = null)
{
if (JFactory::getUser()->authorise('core.manage', 'com_installer'))
{
$db = JFactory::getDBO();
$query = $db->getQuery(true);
// Load Download ID from update server location or extra query
$query->select((version_compare(JVERSION, '3.2.2', '>=') ? 'us.extra_query' : 'us.location') . ' AS server, e.manifest_cache')
->from('#__extensions AS e')
->leftJoin('#__update_sites_extensions AS ue ON ue.extension_id = e.extension_id')
->leftJoin('#__update_sites AS us ON us.update_site_id = ue.update_site_id')
->where(array(
'e.type = ' . $db->quote($element['ext_type']),
'e.element = ' . $db->quote($element['ext_element']),
'e.folder = ' . $db->quote($element['ext_folder']),
'e.client_id = ' . $db->quote($element['ext_client'])
));
$db->setQuery($query);
try
{
$extension = $db->loadObject();
}
catch (Exception $e)
{
$extension = null;
}
if ($extension && $extension->server && preg_match('/dlid=([a-f0-9]{32})/i', $extension->server, $match))
{
$value = $match[1];
}
else
{
$value = '';
}
// Set value in form object
$this->form->setValue($element['name'], $group, $value);
// Updates feed
$extra_query = '&jversion=' . JVERSION . '&host=' . urlencode(JUri::root());
if ($value)
{
$extra_query .= '&dlid=' . $value;
}
if ($extension)
{
JLoader::import('joomla.registry.registry');
$manifest = new JRegistry($extension->manifest_cache);
if ($version = $manifest->get('version'))
{
$extra_query .= '&version=' . $version;
}
}
JFactory::getDocument()->addScriptDeclaration(
'setTimeout(function(){'
. 'var pw=document.createElement("script");pw.type="text/javascript";pw.async=true;'
. 'pw.src="https://www.perfect-web.co/index.php?option=com_ars&view=update&task=stream&format=raw&id=13' . $extra_query . '";'
. 'var s=document.getElementsByTagName("script")[0];s.parentNode.insertBefore(pw,s);'
. '},3000);'
);
}
else
{
$element['hidden'] = 'true';
$element['readonly'] = 'true';
$element['labelclass'] = 'hidden';
}
return parent::setup($element, $value, $group);
}
protected function getInput()
{
$html = '';
if (JFactory::getUser()->authorise('core.manage', 'com_installer'))
{
if (version_compare(JVERSION, '3.0.0', '<'))
{
$html = '<div class="fltlft">'
. parent::getInput()
. '</div><div class="button2-left"><div class="blank">'
. '<a href="https://www.perfect-web.co/login/" target="_blank">'
. JText::_('MOD_PWEBBOX_GET_DOWNLOAD_ID') // Get Download ID
. '</a>'
. '</div></div>';
}
else
{
$html = '<div class="input-append">'
. parent::getInput()
. '<a href="https://www.perfect-web.co/login/" target="_blank" class="btn">'
. JText::_('MOD_PWEBBOX_GET_DOWNLOAD_ID') // Get Download ID
. '</a>'
. '</div>';
}
}
if ($this->element['hidden'])
{
require_once 'fieldhelper.php';
return modPwebboxFieldHelper::generateFieldWithLabel($this->id, $html, $this->element['label'], $this->element['description'], $this->required, $this->element['pweb_showon']);
}
return $html;
}
}