www_archline_hu/deployed/tflearn/libraries/techfry/src/TfAlpha.php
LÁZÁR Imre AI Agent f67e0a20ee feat(deployed): add TF Learn 1.7.5 (no-source, vetted live)
TF Learn (Tech Fry) + techfry library 1.3.4; login-gated, no repo -> deployed files.

Signed-off-by: LÁZÁR Imre <imre@illusion.hu>
Assisted-by: claude-code@claude-opus-4-8
2026-07-16 11:24:46 +02:00

145 lines
4.8 KiB
PHP

<?php
/*
* @package Tech Fry Library
* @license https://www.gnu.org/licenses/gpl-3.0.en.html
*/
namespace TechFry\Library;
defined('_JEXEC') or die;
use Joomla\CMS\Factory;
use Joomla\CMS\Language\Text;
// XMF Field Generation Script
class TfAlpha
{
// 01. Get array of custom field elements XML
public static function display_fields($fields, $joomla_field = false)
{
$elements = array();
if (!empty($fields))
{
foreach ($fields as $field)
{
$field = (object) $field;
if ($joomla_field)
{
$field = self::convert_joomla_field($field);
}
switch ($field->type)
{
case 'text' :
$elements[] = TfXml::field_text($field);
break;
case 'email' :
$elements[] = TfXml::field_email($field);
break;
case 'url' :
$elements[] = TfXml::field_url($field);
break;
case 'list' :
case 'checkboxes' :
$elements[] = TfXml::field_list($field);
break;
case 'radio' :
$elements[] = TfXml::field_radio($field);
break;
case 'integer' :
$elements[] = TfXml::field_integer($field);
break;
case 'number' :
case 'range' :
$elements[] = TfXml::field_number($field);
break;
case 'password' :
$elements[] = TfXml::field_password($field);
break;
case 'file' :
$elements[] = TfXml::field_file($field);
break;
case 'note' :
$elements[] = TfXml::field_note($field);
break;
case 'textarea' :
$elements[] = TfXml::field_textarea($field);
break;
case 'calendar' :
$elements[] = TfXml::field_calendar($field);
break;
case 'subform' :
$elements[] = TfXml::field_subform($field);
break;
case 'filelist' :
$elements[] = TfXml::field_filelist($field);
break;
case 'folderlist' :
$elements[] = TfXml::field_folderlist($field);
break;
case 'imagelist' :
$elements[] = TfXml::field_imagelist($field);
break;
case 'color' :
$elements[] = TfXml::field_color($field);
break;
}
}
}
return $elements;
}
// 02.
public static function convert_joomla_field($field)
{
// fieldparams (specific to field type), params (common for all fields)
$new_field = new \stdClass();
$new_field->id = $field->id;
$new_field->name = $field->name;
$new_field->type = $field->type;
$new_field->label = $field->label;
$new_field->description = $field->description;
$new_field->default_value = $field->default_value;
if (isset($field->required))
{
$new_field->required = ($field->required) ? 'true' : 'false';
}
$new_field->label_class = $field->params->get('label_class', '');
$new_field->hint = $field->params->get('hint', '');
$new_field->form_layout = $field->params->get('form_layout', '');
$new_field->options = $field->fieldparams->get('options');
$new_field->multiple = $field->fieldparams->get('multiple');
$new_field->directory = 'images/' . $field->fieldparams->get('directory');
$new_field->rows = $field->fieldparams->get('rows');
$new_field->cols = $field->fieldparams->get('cols');
$new_field->maxlength = $field->fieldparams->get('maxlength');
$new_field->relative = $field->fieldparams->get('relative');
return $new_field;
}
}