first commit

This commit is contained in:
2026-02-08 21:16:11 +01:00
commit e17b7026fd
8881 changed files with 1160453 additions and 0 deletions

View File

@@ -0,0 +1,248 @@
<?php
/**
* @package Convert Forms
* @version 3.2.12 Free
*
* @author Tassos Marinos <info@tassos.gr>
* @link http://www.tassos.gr
* @copyright Copyright © 2020 Tassos Marinos All Rights Reserved
* @license GNU GPLv3 <http://www.gnu.org/licenses/gpl.html> or later
*/
defined('_JEXEC') or die('Restricted access');
use Joomla\CMS\HTML\HTMLHelper;
use NRFramework\HTML;
HTMLHelper::_('behavior.formvalidator');
HTMLHelper::_('behavior.keepalive');
HTMLHelper::_('bootstrap.dropdown');
JHtml::script('com_convertforms/admin.js', ['relative' => true, 'version' => 'auto']);
JHtml::stylesheet('com_convertforms/editor.css', ['relative' => true, 'version' => 'auto']);
if (defined('nrJ4'))
{
JFactory::getDocument()->addScript(JURI::root(true) . '/media/vendor/tinymce/tinymce.js');
HTML::fixFieldTooltips();
} else
{
JFactory::getDocument()->addScript(JURI::root(true) . '/media/editors/tinymce/tinymce.min.js');
JHtml::script('com_convertforms/cookie.js', ['relative' => true, 'version' => 'auto']);
}
$fonts = new NRFonts();
JFactory::getDocument()->addScriptDeclaration('var ConvertFormsGoogleFonts = '. json_encode($fonts->getFontGroup('google')));
$tabState = JFactory::getApplication()->input->cookie->get("ConvertFormsState" . $this->item->id, 'fields');
$tabStateParts = explode("-", $tabState);
$tabActive = $tabStateParts[0];
// Smart Tags Box
echo NRFramework\HTML::smartTagsBox();
NRFramework\HTML::renderProOnlyModal();
if (!$this->isnew) {
// Render Embed popup
echo \JHtml::_('bootstrap.renderModal', 'embedForm', [
'title' => 'Embed Form',
'footer' => '<button type="button" class="btn btn-secondary" data-bs-dismiss="modal" data-dismiss="modal" aria-hidden="true">'. JText::_('JLIB_HTML_BEHAVIOR_CLOSE') . '</button>',
], '
<p>You are almost done! To embed this form on your site, please paste the following shortcode inside an article or a module.</p>
<input class="shortcode" readonly value="{convertforms ' . $this->item->id . '}"/>
<p>or you can follow the instructions from this <a target="_blank" href="https://www.tassos.gr/joomla-extensions/convert-forms/docs/how-to-display-a-form-on-the-frontend">page</a>.</p>
');
}
function tabSetStart($active)
{
echo defined('nrJ4') ? HTMLHelper::_('uitab.startTabSet', 'sections', ['active' => $active, 'orientation' => 'vertical']) : JHtml::_('bootstrap.startTabSet', 'sections', ['active' => $active]);;
}
function tabSetEnd()
{
echo defined('nrJ4') ? HTMLHelper::_('uitab.endTabSet') : JHtml::_('bootstrap.endTabSet');;
}
function tabStart($name, $title)
{
echo defined('nrJ4') ? HTMLHelper::_('uitab.addTab', 'sections', $name, JText::_($title)) : JHtml::_('bootstrap.addTab', 'sections', $name, JText::_($title));
}
function tabEnd()
{
echo defined('nrJ4') ? HTMLHelper::_('uitab.endTab') : JHtml::_('bootstrap.endTab');
}
if (defined('nrJ4'))
{
NRFramework\HTML::fixFieldTooltips();
}
?>
<div class="cfEditor">
<?php
JPluginHelper::importPlugin('convertformstools');
JFactory::getApplication()->triggerEvent('onConvertFormsEditorView');
?>
<div class="nrEditor" data-root="<?php echo JURI::root(); ?>">
<?php if (defined('nrJ4')) { ?>
<div class="cfe-top">
<div>
<img height="18px" src="<?php echo JURI::root() ?>media/templates/administrator/atum/images/logos/brand-small.svg"/>
</div>
<div>
<span><?php echo JVERSION ?></span>
<span class="pl-3"><?php echo JFactory::getApplication()->get('sitename') ?></span>
</div>
</div>
<?php } ?>
<div class="cfe-header">
<div class="cfe-logo">
<img width="150px" src="<?php echo JURI::root() ?>/media/com_convertforms/img/logo.svg"/>
</div>
<div class="cfe-title">
<label for="formname"><?php echo $this->isnew ? JText::_('COM_CONVERTFORMS_NEW_FORM') : JText::_('COM_CONVERTFORMS_EDIT_FORM') ?>:</label>
<input type="text" data-fallback="<?php echo JText::_("COM_CONVERTFORMS_UNTITLED_BOX") ?>" id="formname" value="<?php echo $this->name ?>"/>
</div>
<div class="cfe-toolbar">
<ul class="cf-menu">
<li>
<a href="#" class="btn btn-success save cf-menu-item saveForm" title="Save form" data-cfaction="save">
<i class="cf-icon-ok up-state"><?php echo JText::_('JAPPLY') ?></i>
<i class="cf-icon-spin hover-state">Saving..</i>
</a>
</li>
<li class="cf-menu-parent">
<a href="#" class="cf-icon-dots cf-menu-item " role="button" id="dropdownMenuLink" data-bs-toggle="dropdown" data-toggle="dropdown" title="View more"></a>
<ul class="dropdown <?php echo defined('nrJ4') ? 'dropdown-menu' : '' ?>">
<li>
<a class="<?php echo $this->isnew ? 'disabled' : '' ?>" data-bs-toggle="modal" data-bs-target="#embedForm" data-toggle="modal" data-target="#embedForm" href="#">
<span class="cf-icon-link"></span>
<?php echo JText::_('NR_EMBED') ?>
</a>
</li>
<li>
<a class="<?php echo $this->isnew ? 'disabled' : '' ?>" target="_blank" href="<?php echo JURI::base() ?>index.php?option=com_convertforms&view=conversions&filter.form_id=<?php echo $this->item->id ?>">
<span class="cf-icon-users"></span>
<?php echo JText::_('COM_CONVERTFORMS_SUBMISSIONS')?>
</a>
</li>
<li class="separator"></li>
<li>
<a href="#" data-pro-only>
<span class="cf-icon-heart"></span>
<?php echo JText::_('NR_UPGRADE_TO_PRO') ?>
</a>
</li>
<li class="separator"></li>
<li>
<a href="https://extensions.joomla.org/extension/convert-forms/" target="_blank">
<span class="cf-icon-thumbs-up"></span>
<?php echo JText::sprintf('NR_RATE', JText::_('CONVERTFORMS')) ?>
</a>
</li>
<li>
<a href="http://www.tassos.gr/contact?topic=Bug Report&extension=Convert Forms" target="_blank">
<span class="cf-icon-attention"></span>
<?php echo JText::_('NR_REPORT_ISSUE') ?>
</a>
</li>
<li>
<a href="http://www.tassos.gr/joomla-extensions/convert-forms/docs" target="_blank">
<span class="cf-icon-help"></span>
<?php echo JText::_('JHELP') ?>
</a>
</li>
</ul>
</li>
<li>
<a href="<?php echo JRoute::_('index.php?option=com_convertforms&view=forms') ?>" class="cf-icon-cancel cf-menu-item" title="Close and return to forms list"></a>
</li>
</ul>
</div>
</div>
<div class="cfe-main">
<div class="nrEditorOptions inputSettings">
<form action="<?php echo JRoute::_('index.php?option=com_convertforms&layout=edit&id='.(int) $this->item->id); ?>" method="post" name="adminForm" id="adminForm" class="form-vertical" pk="<?php echo (int) $this->item->id ?>">
<div class="tabs-left">
<?php
tabSetStart($tabActive);
foreach ($this->tabs as $key => $tab)
{
$tabName = $key;
$tabLabel = JText::_($tab["label"]);
tabStart($tabName, '<span data-label="' . $tabLabel . '" class="' . $tab["icon"] . '"></span>');
$panelActive = $tabActive == $key ? $tabState : "";
echo JHtml::_('bootstrap.startAccordion', $tabName, array('active' => $panelActive));
echo "<h2>" . $tabLabel . "</h2>";
$single = count($tab["fields"]) == 1 ? true : false;
foreach ($tab["fields"] as $key => $field)
{
if ($single)
{
echo '<div class="accordion-inner"> ' . $this->form->renderFieldset($field["name"]) . '</div>';
continue;
}
echo JHtml::_('bootstrap.addSlide', $tabName, JText::_($field["label"]), $tabName.'-' . $field["name"], $field["name"]);
$fieldset = $this->form->renderFieldset($field["name"]);
JFactory::getApplication()->triggerEvent('onConvertFormsBackendFormPrepareFieldset', [$field["name"], &$fieldset]);
echo $fieldset;
echo JHtml::_('bootstrap.endSlide');
}
echo JHtml::_('bootstrap.endAccordion');
tabEnd();
}
tabSetEnd();
?>
<input type="hidden" name="task" value="form.edit" />
<?php echo JHtml::_('form.token'); ?>
</div>
</form>
</div>
<div class="nrEditorPreview hidden-phone">
<div class="nrEditorTools inputSettings">
<div class="l nrEditorTabs">
<ul class="nrNav">
<li class="nrCheckbox">
<input value="1" type="checkbox" id="preview-successmsg">
<label for="preview-successmsg"><?php echo JText::_("COM_CONVERTFORMS_PREVIEW_SUCCESS") ?></label>
</li>
</ul>
</div>
<div class="r">
</div>
</div>
<div class="nrEditorPreviewContainer"></div>
<div class="loader"></div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,17 @@
<?php
/**
* @package Convert Forms
* @version 3.2.12 Free
*
* @author Tassos Marinos <info@tassos.gr>
* @link http://www.tassos.gr
* @copyright Copyright © 2020 Tassos Marinos All Rights Reserved
* @license GNU GPLv3 <http://www.gnu.org/licenses/gpl.html> or later
*/
defined('_JEXEC') or die('Restricted access');
?>
<?php echo $this->field; ?>

View File

@@ -0,0 +1,57 @@
<?php
/**
* @package Convert Forms
* @version 3.2.12 Free
*
* @author Tassos Marinos <info@tassos.gr>
* @link http://www.tassos.gr
* @copyright Copyright © 2020 Tassos Marinos All Rights Reserved
* @license GNU GPLv3 <http://www.gnu.org/licenses/gpl.html> or later
*/
defined('_JEXEC') or die('Restricted access');
// import Joomla view library
jimport('joomla.application.component.view');
/**
* Item View
*/
class ConvertFormsViewForm extends JViewLegacy
{
/**
* display method of Item view
* @return void
*/
public function display($tpl = null)
{
// Access check.
ConvertForms\Helper::authorise('convertforms.forms.manage', true);
// Check for errors.
if (!is_null($this->get('Errors')) && count($errors = $this->get('Errors')))
{
JFactory::getApplication()->enqueueMessage(implode("\n", $errors), 'error');
return false;
}
// Assign the Data
$this->form = $this->get('Form');
$this->item = $this->get('Item');
$this->isnew = (!isset($_REQUEST["id"])) ? true : false;
$this->tabs = $this->get('Tabs');
$this->name = $this->item->name ?: JText::_('COM_CONVERTFORMS_UNTITLED_BOX');
\JPluginHelper::importPlugin('convertformstools');
\JFactory::getApplication()->triggerEvent('onConvertFormsBackendEditorDisplay');
$title = JText::_('COM_CONVERTFORMS') . ' - ' . ($this->isnew ? JText::_("COM_CONVERTFORMS_UNTITLED_BOX") : $this->name);
JFactory::getDocument()->setTitle($title);
JToolbarHelper::title($title);
// Display the template
parent::display($tpl);
}
}

View File

@@ -0,0 +1,76 @@
<?php
/**
* @package Convert Forms
* @version 3.2.12 Free
*
* @author Tassos Marinos <info@tassos.gr>
* @link http://www.tassos.gr
* @copyright Copyright © 2020 Tassos Marinos All Rights Reserved
* @license GNU GPLv3 <http://www.gnu.org/licenses/gpl.html> or later
*/
defined('_JEXEC') or die('Restricted access');
jimport('joomla.application.component.view');
/**
* Item View
*/
class ConvertFormsViewForm extends JViewLegacy
{
/**
* display method of Item view
* @return void
*/
public function display($tpl = null)
{
$app = JFactory::getApplication();
// Check for errors.
if (count($errors = $this->get('Errors')))
{
$app->enqueueMessage(implode('\n', $errors), 'error');
return false;
}
$layout = $app->input->get('layout', 'default');
if ($layout == 'preview')
{
//$data = json_decode($app->input->get('jform', null, 'RAW'));
$input = json_decode(file_get_contents('php://input'));
$data = json_decode($input);
$xx = new JRegistry();
foreach ($data as $value)
{
$key = str_replace(['jform[', ']', '['], ['', '', '.'], $value->name);
$xx->set($key, $value->value);
}
$xx = $xx->toArray();
$this->data = $this->getModel('Form')->validate('jform', $xx);
$this->data['params'] = json_decode($this->data['params'], true);
$this->data['fields'] = $this->data['params']['fields'];
unset($this->data['params']['fields']);
$this->form = ConvertForms\Helper::renderForm($this->data);
}
if ($layout == 'field')
{
$formControl = urldecode($app->input->get('formcontrol', null, 'RAW'));
$loadData = $app->input->get('field', array(), 'ARRAY');
$this->field = ConvertForms\FieldsHelper::getFieldClass($loadData['type'])->getOptionsForm($formControl, $loadData);
}
// Display the template
parent::display($tpl);
}
}