Your IP : 216.73.216.247


Current Path : /home/azimutno/azimutno/azimutno/azimutno/www/demo/modules/mod_pwebbox/form/fields/
Upload File :
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;
    }

}