Plugin Directory

Changeset 3476791


Ignore:
Timestamp:
03/07/2026 01:05:08 AM (3 weeks ago)
Author:
ivankomlev
Message:

1.7.1 version ready

Location:
customtables/trunk
Files:
136 edited

Legend:

Unmodified
Added
Removed
  • customtables/trunk/CustomTables.php

    r3428455 r3476791  
    44Plugin URI: https://ct4.us
    55Description: Custom Tables solution for WordPress
    6 Version: 1.6.6
     6Version: 1.7.1
    77Requires at least: 6.0
    88Requires PHP: 7.4.0
     
    3232
    3333define(CTWP . 'PLUGIN_NAME', 'customtables');
    34 define(CTWP . 'PLUGIN_VERSION', '1.6.6');
     34define(CTWP . 'PLUGIN_VERSION', '1.7.1');
    3535define(CTWP . 'PLUGIN_NAME_DIR', plugin_dir_path(__FILE__));
    3636define(CTWP . 'PLUGIN_NAME_URL', plugin_dir_url(__FILE__));
     
    116116function enqueue_codemirror()
    117117{
    118     $version = '1.6.6';
     118    $version = '1.7.1';
    119119    wp_enqueue_style('customtables-js-modal', plugin_dir_url(__FILE__) . 'libraries/customtables/media/css/modal.css', false, $version);
    120120    wp_enqueue_style('customtables-js-layouteditor', plugin_dir_url(__FILE__) . 'libraries/customtables/media/css/layouteditor.css', false, $version);
  • customtables/trunk/inc/admin/class-admin-settings.php

    r3242109 r3476791  
    5151                update_option('customtables-toolbaricons', sanitize_text_field($toolbarIcons));
    5252
     53            $sqlselecttag = common::inputPostString('sqlselecttag','','settings');
     54            if(get_option('customtables-sqlselecttag')===false)
     55                add_option('customtables-sqlselecttag', sanitize_text_field($sqlselecttag));
     56            else
     57                update_option('customtables-sqlselecttag', sanitize_text_field($sqlselecttag));
    5358
    5459            $url = 'admin.php?page=customtables-settings';
  • customtables/trunk/inc/admin/views/customtables-settings-advanced.php

    r3242109 r3476791  
    3030        </td>
    3131    </tr>
     32
     33
     34    <tr class="form-field form-required">
     35        <th scope="row">
     36            <label for="sqlselecttag">
     37                <?php echo esc_html__('{{ tables.sqlselect() }} Tag', 'customtables'); ?>
     38            </label>
     39        </th>
     40        <td>
     41            <?php
     42            $vlu = get_option('customtables-sqlselecttag', ''); // Default is empty
     43
     44            $types = [
     45                    '0' => esc_html__('Disabled', 'customtables'),
     46                    '1' => esc_html__('Enabled', 'customtables'), // Added UM icon set
     47            ];
     48            ?>
     49
     50            <select name="sqlselecttag" id="sqlselecttag">
     51                <?php foreach ($types as $key => $label) : ?>
     52                    <option value="<?php echo esc_attr($key); ?>" <?php selected($vlu, $key); ?>>
     53                        <?php echo esc_html($label); ?>
     54                    </option>
     55                <?php endforeach; ?>
     56            </select>
     57            <br/>
     58            Allows execution of custom SELECT queries via the {{ tables.sqlselect() }} tag.
     59            This feature is intended for advanced users only.
     60            A dedicated READ-ONLY MySQL database user must be configured in Joomla configuration.php.
     61            UPDATE, DELETE, INSERT and other write operations are not supported.
     62        </td>
     63    </tr>
     64
    3265</table>
  • customtables/trunk/libraries/ct-common-wp.php

    r3329328 r3476791  
    574574    }
    575575
     576    public static function getCookie(string $param)
     577    {
     578        return $_COOKIE[$param] ?? null;
     579    }
     580
    576581    public static function inputGet(string $parameter, $default, string $filter)
    577582    {
  • customtables/trunk/libraries/customtables/categories/categories.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/ct/CT.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
     
    241241     * @since 3.2.2
    242242     */
    243     function getRecords(bool $all = false, int $limit = 0, ?string $orderby = null, string $groupBy = null): bool
     243    function getRecords(bool $all = false, int $limit = 0, ?string $orderby = null, ?string $groupBy = null): bool
    244244    {
    245245        //Grouping
  • customtables/trunk/libraries/customtables/ct/Environment.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
     
    4242    var bool $isPlugin; //this can be set by calling the class from the plugin
    4343    var bool $CustomPHPEnabled;
     44    var bool $SQLSelectEnabled;
    4445    var bool $debug;
    4546
     
    4748    {
    4849        $this->CustomPHPEnabled = false;
    49 
     50        $this->SQLSelectEnabled = false;
     51
     52        // Follow the white rabbit
    5053        if (defined('_JEXEC')) {
    5154            $plugin = PluginHelper::getPlugin('content', 'customtables');
     
    5457                $pluginParamsArray = json_decode($plugin->params);
    5558                $this->CustomPHPEnabled = (int)($pluginParamsArray->phpPlugin ?? 0) == 1;
    56             }
     59                $this->SQLSelectEnabled = (int)($pluginParamsArray->sqlSelectTag ?? 0) == 1;
     60            }
     61        } elseif (defined('WPINC')) {
     62            $this->SQLSelectEnabled = (int)get_option('customtables-sqlselecttag', '') == 1;
    5763        }
    5864
     
    124130                require_once($path . 'helpers.php');
    125131
    126             if (file_exists($path . 'servertags.php'))
    127                 require_once($path . 'servertags.php');
    128132        } elseif (defined('WPINC') and defined('CustomTablesWPPro\CTWPPRO')) {
    129133            $path = CUSTOMTABLES_PRO_PATH;
  • customtables/trunk/libraries/customtables/ct/Field.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/ct/Logs.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/ct/Params.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/ct/Table.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/filter/filtering.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/filter/keywordsearch.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/helpers/CTMiscHelper.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/helpers/CTUser.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
     
    525525     * @since 3.3.4
    526526     */
    527     public function getUserGroupArray(?array $availableUserGroupList, string $innerJoin = null): array
     527    public function getUserGroupArray(?array $availableUserGroupList, ?string $innerJoin = null): array
    528528    {
    529529        if (defined('_JEXEC')) {
  • customtables/trunk/libraries/customtables/helpers/CustomTablesImageMethods.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
     
    508508    }
    509509
    510     function ProportionalResize(string $src, string $dst, int $dst_width, int $dst_height, int $LevelMax, int $backgroundColor, string $watermark, string $fileExtension = null): int
     510    function ProportionalResize(string $src, string $dst, int $dst_width, int $dst_height, int $LevelMax, int $backgroundColor, string $watermark, ?string $fileExtension = null): int
    511511    {
    512512        //Returns:
  • customtables/trunk/libraries/customtables/helpers/DataTypes.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/helpers/Fields.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/helpers/FileMethods.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/helpers/FileUploader.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/helpers/FindSimilarImage.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/helpers/Icons.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
     
    4343                <li><?php echo esc_html__("Copy", "customtables") ?>
    4444                    : <?php echo Icons::iconCopy($type); ?></li>
     45                <li><?php echo esc_html__("Search", "customtables") ?>
     46                    : <?php echo Icons::iconSearch($type); ?></li>
     47                <li><?php echo esc_html__("Search Reset", "customtables") ?>
     48                    : <?php echo Icons::iconSearchReset($type); ?></li>
    4549                <li><?php echo esc_html__("Create User", "customtables") ?>
    4650                    : <?php echo Icons::iconCreateUser($type); ?></li>
     
    419423    }
    420424
     425    public static function iconSearch(string $type, string $title = ''): string
     426    {
     427        if (empty($title))
     428            $title = esc_html__("Search", "customtables");
     429
     430        // Image Icons (default)
     431        if ($type == '')
     432            return '<img src="' . CUSTOMTABLES_MEDIA_WEBPATH . 'images/icons/search.png" class="ctToolBarIcon" alt="' . $title . '" title="' . $title . '">';
     433
     434        // Not So Pixelly
     435        elseif ($type == 'not-so-pixelly')
     436            return '<img src="' . CUSTOMTABLES_MEDIA_WEBPATH . 'images/notsopixelly/48px/search.png" class="ctToolBarIcon" alt="' . $title . '" title="' . $title . '" />';
     437
     438        // Font Awesome 4
     439        elseif ($type == 'font-awesome-4')
     440            return '<i class="ctToolBarIcon2x fa fa-search" data-icon="fa fa-search" aria-hidden="true" title="' . $title . '"></i>';
     441
     442        // Font Awesome 5
     443        elseif ($type == 'font-awesome-5' or $type == 'font-awesome-6')
     444            return '<i class="ctToolBarIcon fas fa-search" data-icon="fas fa-search" aria-hidden="true" title="' . $title . '"></i>';
     445
     446        // Bootstrap Icons
     447        elseif ($type == 'bootstrap')
     448            return '<i class="ctToolBarIcon2x bi bi-search" aria-hidden="true" title="' . $title . '"></i>';
     449
     450        elseif ($type == 'ultimate-member')
     451            return '<i class="ctToolBarIcon2x um-faicon-search" aria-hidden="true" title="' . $title . '"></i>'; // Added UM icon support
     452
     453        // Default fallback
     454        else
     455            return 'Search';
     456    }
     457
     458    public static function iconSearchReset(string $type, string $title = ''): string
     459    {
     460        if (empty($title))
     461            $title = esc_html__("Reset", "customtables");
     462
     463        // Image Icons (default)
     464        if ($type == '')
     465            return '<img src="' . CUSTOMTABLES_MEDIA_WEBPATH . 'images/icons/search-reset.png" class="ctToolBarIcon" alt="' . $title . '" title="' . $title . '">';
     466
     467        // Not So Pixelly
     468        elseif ($type == 'not-so-pixelly')
     469            return '<img src="' . CUSTOMTABLES_MEDIA_WEBPATH . 'images/notsopixelly/48px/cancel.png" class="ctToolBarIcon" alt="' . $title . '" title="' . $title . '" />';
     470
     471        // Font Awesome 4
     472        elseif ($type == 'font-awesome-4')
     473            return '<i class="ctToolBarIcon2x fa fa-cancel" data-icon="fa fa-cancel" aria-hidden="true" title="' . $title . '"></i>';
     474
     475        // Font Awesome 5
     476        elseif ($type == 'font-awesome-5' or $type == 'font-awesome-6')
     477            return '<i class="ctToolBarIcon fas fa-cancel" data-icon="fas fa-cancel" aria-hidden="true" title="' . $title . '"></i>';
     478
     479        // Bootstrap Icons
     480        elseif ($type == 'bootstrap')
     481            return '<i class="ctToolBarIcon2x bi bi-cancel" aria-hidden="true" title="' . $title . '"></i>';
     482
     483        elseif ($type == 'ultimate-member')
     484            return '<i class="ctToolBarIcon2x um-faicon-cancel" aria-hidden="true" title="' . $title . '"></i>'; // Added UM icon support
     485
     486        // Default fallback
     487        else
     488            return 'Search';
     489    }
     490
    421491    public static function iconCreateUser(string $type, string $title = ''): string
    422492    {
     
    753823    }
    754824
    755     public static function iconSearch(string $type, string $title = ''): string
    756     {
    757         if (empty($title))
    758             $title = esc_html__("Search", "customtables");
    759 
    760         // Image Icons (default)
    761         if ($type == '')
    762             return '';
    763 
    764         // Not So Pixelly
    765         elseif ($type == 'not-so-pixelly')
    766             return '<img src="' . CUSTOMTABLES_MEDIA_WEBPATH . 'images/notsopixelly/48px/search.png" class="ctToolBarIcon" alt="' . $title . '" title="' . $title . '" />';
    767 
    768         // Font Awesome 4
    769         elseif ($type == 'font-awesome-4')
    770             return '<i class="ctToolBarIcon2x fa fa-search" data-icon="fa fa-search" aria-hidden="true" title="' . $title . '"></i>';
    771 
    772         // Font Awesome 5
    773         elseif ($type == 'font-awesome-5' or $type == 'font-awesome-6')
    774             return '<i class="ctToolBarIcon fas fa-search" data-icon="fas fa-search" aria-hidden="true" title="' . $title . '"></i>';
    775 
    776         // Bootstrap Icons
    777         elseif ($type == 'bootstrap')
    778             return '<i class="ctToolBarIcon2x bi bi-search" aria-hidden="true" title="' . $title . '"></i>';
    779 
    780         elseif ($type == 'ultimate-member')
    781             return '<i class="ctToolBarIcon2x um-faicon-search" aria-hidden="true" title="' . $title . '"></i>'; // Added UM icon support
    782 
    783         // Default fallback
    784         else
    785             return 'Search';
    786     }
    787 
    788     public static function iconSearchReset(string $type, string $title = ''): string
    789     {
    790         if (empty($title))
    791             $title = esc_html__("Search", "customtables");
    792 
    793         // Image Icons (default)
    794         if ($type == '')
    795             return '';
    796 
    797         // Not So Pixelly
    798         elseif ($type == 'not-so-pixelly')
    799             return '<img src="' . CUSTOMTABLES_MEDIA_WEBPATH . 'images/notsopixelly/48px/cancel.png" class="ctToolBarIcon" alt="' . $title . '" title="' . $title . '" />';
    800 
    801         // Font Awesome 4
    802         elseif ($type == 'font-awesome-4')
    803             return '<i class="ctToolBarIcon2x fa fa-cancel" data-icon="fa fa-cancel" aria-hidden="true" title="' . $title . '"></i>';
    804 
    805         // Font Awesome 5
    806         elseif ($type == 'font-awesome-5' or $type == 'font-awesome-6')
    807             return '<i class="ctToolBarIcon fas fa-cancel" data-icon="fas fa-cancel" aria-hidden="true" title="' . $title . '"></i>';
    808 
    809         // Bootstrap Icons
    810         elseif ($type == 'bootstrap')
    811             return '<i class="ctToolBarIcon2x bi bi-cancel" aria-hidden="true" title="' . $title . '"></i>';
    812 
    813         elseif ($type == 'ultimate-member')
    814             return '<i class="ctToolBarIcon2x um-faicon-cancel" aria-hidden="true" title="' . $title . '"></i>'; // Added UM icon support
    815 
    816         // Default fallback
    817         else
    818             return 'Search';
    819     }
    820 
    821 
    822825    public static function iconDownload(string $type, string $title = '', ?string $iconFile = null, int $imageSize = 32): string
    823826    {
  • customtables/trunk/libraries/customtables/helpers/ImportCSV.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/helpers/Pagination.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/helpers/TableHelper.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
     
    419419        database::deleteRecord('#__customtables_fields', 'tableid', (string)$tableId);
    420420        database::deleteRecord('#__customtables_tables', 'id', $tableId);
    421         database::deleteTableLessFields();//TODO: No longer needed but lets keep ot for one year till Oct 2025 to make sure that all unused fields deleted.
     421        //database::deleteTableLessFields();//TODO: No longer needed but lets keep ot for one year till Oct 2025 to make sure that all unused fields deleted.
    422422        return $table_row;
    423423    }
     
    493493            $whereClause->addCondition('TABLE_NAME', $prefix . 'usergroups', '!=');
    494494            $whereClause->addCondition('TABLE_NAME', $prefix . 'users', '!=');
    495             $rows = database::loadAssocList('information_schema.tables', ['TABLE_NAME AS table_name'], $whereClause);
     495            $rows = database::loadAssocList('information_schema.tables', ['TABLE_NAME AS table_name'], $whereClause, 'table_name');
    496496        }
    497497        $list = array();
  • customtables/trunk/libraries/customtables/helpers/compareimages.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/forms.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/inputbox.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/inputbox/alias.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/inputbox/article.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
     
    7878        $whereClause = new MySQLWhereClause();
    7979
    80         $catId = (int)((count($this->field->params) > 0 and $this->field->params[0] != '') ? $this->field->params : 0);
     80        $catId = (int)((count($this->field->params) > 0 and $this->field->params[0] != '') ? $this->field->params[0] : 0);
    8181
    8282        if ($catId != 0)
  • customtables/trunk/libraries/customtables/html/inputbox/checkbox.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/inputbox/color.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/inputbox/creationtime.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/inputbox/date.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/inputbox/email.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/inputbox/file.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
     
    1212
    1313// no direct access
     14if (!defined('ABSPATH')) exit;
     15
    1416use Joomla\CMS\Component\ComponentHelper;
    1517use Joomla\CMS\Factory;
    16 
    17 if (!defined('ABSPATH')) exit;
    1818
    1919class InputBox_file extends BaseInputBox
  • customtables/trunk/libraries/customtables/html/inputbox/filebox.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/inputbox/filelink.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/inputbox/float.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/inputbox/gps.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/inputbox/image.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/inputbox/imagegallery.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/inputbox/int.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/inputbox/language.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/inputbox/multilingualstring.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/inputbox/multilingualtext.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/inputbox/radio.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/inputbox/signature.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/inputbox/string.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/inputbox/text.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/inputbox/time.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/inputbox/url.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/inputbox/user.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/inputbox/usergroup.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/inputbox/usergroups.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/searchbox/checkbox.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/searchbox/date.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/searchbox/published.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/searchbox/radio.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/searchbox/range.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/searchbox/string.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/searchbox/tablejoin.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/searchbox/tablejoinlist.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/searchbox/user.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/searchbox/usergroup.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/searchinputbox.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/toolbar.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/value.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/value/article.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/value/blob.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/value/file.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
     
    499499
    500500                $serverTagProcessorFile = JPATH_SITE . DIRECTORY_SEPARATOR . 'plugins' . DIRECTORY_SEPARATOR . 'content' . DIRECTORY_SEPARATOR
    501                     . 'customtables' . DIRECTORY_SEPARATOR . 'protagprocessor' . DIRECTORY_SEPARATOR . 'servertags.php';
     501                    . 'customtables' . DIRECTORY_SEPARATOR . 'protagprocessor' . DIRECTORY_SEPARATOR . 'helpers.php';
    502502
    503503                if (!file_exists($serverTagProcessorFile))
  • customtables/trunk/libraries/customtables/html/value/image.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/value/imagegallery.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/value/log.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/value/tablejoin.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/value/tablejoinlist.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/html/value/user.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/integrity/coretables.php

    r3428455 r3476791  
    66 * @author Ivan Komlev <support@joomlaboat.com>
    77 * @link https://joomlaboat.com
    8  * @copyright (C) 2018-2025. Ivan Komlev
     8 * @copyright (C) 2018-2026. Ivan Komlev
    99 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    1010 **/
  • customtables/trunk/libraries/customtables/integrity/fields.php

    r3428455 r3476791  
    66 * @author Ivan Komlev <support@joomlaboat.com>
    77 * @link https://joomlaboat.com
    8  * @copyright (C) 2018-2025. Ivan Komlev
     8 * @copyright (C) 2018-2026. Ivan Komlev
    99 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    1010 **/
  • customtables/trunk/libraries/customtables/integrity/fieldtype_filebox.php

    r3428455 r3476791  
    66 * @author Ivan Komlev <support@joomlaboat.com>
    77 * @link https://joomlaboat.com
    8  * @copyright (C) 2018-2025. Ivan Komlev
     8 * @copyright (C) 2018-2026. Ivan Komlev
    99 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    1010 **/
  • customtables/trunk/libraries/customtables/integrity/fieldtype_gallery.php

    r3428455 r3476791  
    66 * @author Ivan Komlev <support@joomlaboat.com>
    77 * @link https://joomlaboat.com
    8  * @copyright (C) 2018-2025. Ivan Komlev
     8 * @copyright (C) 2018-2026. Ivan Komlev
    99 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    1010 **/
  • customtables/trunk/libraries/customtables/integrity/integrity.php

    r3428455 r3476791  
    66 * @author Ivan Komlev <support@joomlaboat.com>
    77 * @link https://joomlaboat.com
    8  * @copyright (C) 2018-2025. Ivan Komlev
     8 * @copyright (C) 2018-2026. Ivan Komlev
    99 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    1010 **/
  • customtables/trunk/libraries/customtables/integrity/tables.php

    r3428455 r3476791  
    66 * @author Ivan Komlev <support@joomlaboat.com>
    77 * @link https://joomlaboat.com
    8  * @copyright (C) 2018-2025. Ivan Komlev
     8 * @copyright (C) 2018-2026. Ivan Komlev
    99 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    1010 **/
  • customtables/trunk/libraries/customtables/languages/languages.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/layouts/Twig_Document_Tags.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
     
    217217     * @since 3.2.9
    218218     */
    219     function layout(string $layoutName = ''): ?string
     219    function layout(string $layoutName = '', bool $parseContentPlugins = false): ?string
    220220    {
    221221        //TODO: the use if this tag must be reflected in the dependence tab of the layout used.
     
    267267            }
    268268        }
     269
     270        if ($parseContentPlugins and !empty($html_result))
     271            CTMiscHelper::applyContentPlugins($html_result);
    269272
    270273        return $html_result;
     
    358361        return $this->ct->LayoutVariables['globalVariables'][$variable];
    359362    }
     363
     364    /**
     365     * @throws Exception
     366     * @since 3.7.1
     367     */
     368    function cookie($param): ?string
     369    {
     370        if (!$this->ct->Env->advancedTagProcessor)
     371            throw new Exception('Warning: The {{ document.cookie }} ' . esc_html__("Available in PRO Version", "customtables"));
     372
     373        return common::getCookie($param);
     374    }
    360375}
  • customtables/trunk/libraries/customtables/layouts/Twig_Fields_Tags.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/layouts/Twig_HTML_Tags.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
     
    722722            return '';
    723723
    724         //if ($this->ct->Env->isPlugin or !empty($this->ct->Params->ModuleId))
    725         //return '';
    726 
    727724        $class = 'ctSearchBox';
    728725
     
    743740    }
    744741
    745     function searchreset($linkType = '', $label = '', $class_ = ''): string
    746     {
    747         if ($this->ct->Env->print == 1 or ($this->ct->Env->frmt != 'html' and $this->ct->Env->frmt != ''))
    748             return '';
    749 
    750         //if ($this->ct->Env->isPlugin or !empty($this->ct->Params->ModuleId))
    751         //return '';
     742    function searchreset($linkType = '', $defaultLabel = '', $class_ = ''): string
     743    {
     744        if ($this->ct->Env->print == 1 or ($this->ct->Env->frmt != 'html' and $this->ct->Env->frmt != ''))
     745            return '';
    752746
    753747        $class = 'ctSearchBox';
  • customtables/trunk/libraries/customtables/layouts/Twig_Record_Tags.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/layouts/Twig_Table_Tags.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/layouts/Twig_Tables_Tags.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
     
    176176        throw new Exception('{{ tables.getrecords("' . $layoutname . '","' . $filter . '","' . $orderby . '") }} - Could not load records.');
    177177    }
     178
     179    function sqlselect(string $query = '', string $mode = 'auto')
     180    {
     181        if (defined('_JEXEC')) {
     182            $file_path = CUSTOMTABLES_PRO_PATH . 'protagprocessor' . DIRECTORY_SEPARATOR . 'sqlselect.php';
     183        } elseif (defined('WPINC')) {
     184            $file_path = CUSTOMTABLES_PRO_PATH . 'inputbox' . DIRECTORY_SEPARATOR . 'sqlselect.php';
     185        } else {
     186            throw new Exception('{{ tables.sqlselect() }} - not supported in this environment.');
     187        }
     188
     189        if (file_exists($file_path)) {
     190            require_once($file_path);
     191        } else {
     192            throw new Exception('{{ tables.sqlselect() }} - ' . esc_html__("Available in PRO Version", "customtables"));
     193        }
     194
     195        if (!$this->ct->Env->SQLSelectEnabled)
     196            throw new Exception('{{ tables.sqlselect() }} - Disabled. Go to Plugins / Custom Tables to enable it.');
     197
     198        if (empty($query))
     199            throw new Exception('{{ tables.sqlselect() }} - Requires a query.');
     200
     201        // Enforce SELECT-only queries
     202        $trimmed = ltrim($query);
     203        if (stripos($trimmed, 'SELECT') !== 0) {
     204            throw new Exception('{{ tables.sqlselect() }} - Only SELECT queries are allowed.');
     205        }
     206
     207        return SQLSelect::runQuery($query, $mode);
     208    }
    178209}
  • customtables/trunk/libraries/customtables/layouts/Twig_URL_Tags.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/layouts/Twig_User_Tags.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/layouts/defaults/csv.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/layouts/defaults/details.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
     
    2020        if (!in_array($field['type'], $fieldTypes_to_skip) and (int)$field['published'] === 1) {
    2121            $result .= '<div class="control-group">';
    22 
    23             //if ($field['type'] == 'creationtime' or $field['type'] == 'changetime' or $field['type'] == 'lastviewtime')
    2422            $fieldTag = '{{ ' . $field['fieldname'] . ' }}';
    2523            $result .= '<div class="control-label">{{ ' . $field['fieldname'] . '.title }}</div><div class="controls"> ' . $fieldTag . ' </div>';
  • customtables/trunk/libraries/customtables/layouts/defaults/edit.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/layouts/defaults/edit_wp.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/layouts/defaults/email.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/layouts/defaults/simple_catalog.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/layouts/layouts.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
     
    3333    var ?string $layoutCodeCSS;
    3434    var ?string $layoutCodeJS;
     35    var bool $stealth;
    3536
    3637    function __construct(&$ct)
     
    4445        $this->layoutCodeCSS = null;
    4546        $this->layoutCodeJS = null;
     47        $this->stealth = false;
    4648    }
    4749
     
    423425
    424426        if (!empty($row['params'])) {
     427
    425428            try {
    426429                $params = json_decode($row['params'], true);
     
    439442                }
    440443
     444                if (isset($params['stealth'])) {
     445                    $this->stealth = (bool)intval($params['stealth']);
     446                }
     447
     448
    441449                if (!$this->ct->Env->advancedTagProcessor) {
    442450                    //Do not apply Layout params in Free version as they are inaccessible.
     
    448456                    $params['publishstatus'] = null;
    449457                    $params['mimetype'] = null;
     458                    $params['stealth'] = null;
    450459                }
    451460
     
    11361145            $layoutDetailsContent = CTMiscHelper::applyContentPlugins($layoutDetailsContent);
    11371146
    1138         if (!is_null($this->ct->Table->record)) {
     1147        if (!$this->stealth and !is_null($this->ct->Table->record)) {
    11391148            //Save view log
    11401149            $this->SaveViewLogForRecord();
  • customtables/trunk/libraries/customtables/layouts/twig.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/loader.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
     
    3131    }
    3232}
    33 /*
    34 if (class_exists('\Symfony\Polyfill\Mbstring\Mbstring') && !method_exists('\Symfony\Polyfill\Mbstring\Mbstring', 'mb_trim')) {
    35     class_alias('\Symfony\Polyfill\Mbstring\Mbstring', '__MbstringTemp__');
    36 
    37     class MbstringFixed extends __MbstringTemp__
    38     {
    39         public static function mb_trim($string)
    40         {
    41             return preg_replace('/^[\p{Z}\s]+|[\p{Z}\s]+$/u', '', $string);
    42         }
    43     }
    44 
    45     // Replace the original class reference
    46     class_alias('MbstringFixed', '\Symfony\Polyfill\Mbstring\Mbstring');
    47 }
    48 */
     33
    4934function CustomTablesLoader($include_utilities = false, $include_html = false, $PLUGIN_NAME_DIR = null, $componentName = 'com_customtables', bool $loadTwig = true): void
    5035{
  • customtables/trunk/libraries/customtables/media/css/dashboard.css

    r3219911 r3476791  
    44 * @author Ivan Komlev <support@joomlaboat.com>
    55 * @link https://joomlaboat.com
    6  * @copyright Copyright (C) 2018-2025.
     6 * @copyright Copyright (C) 2018-2026.
    77 * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
    88 **/
     
    8585    width: 17%;
    8686    min-height: 194px;
    87     min-width: 96px;
     87    min-width: 163px;
     88}
     89
     90.dashboard-wraper img {
     91    width: 100%;
    8892}
    8993
     
    217221    white-space: nowrap;
    218222}
     223
     224
     225/* ------------------------------ */
     226
     227@media (min-width: 1200px) {
     228    .tableMobileLabel {
     229        display: none;
     230    }
     231
     232    .tableDesktopLabel {
     233        display: inline-block;
     234    }
     235}
     236
     237
     238@media (max-width: 1199px) {
     239    #tableList,
     240    #tableList thead,
     241    #tableList tbody,
     242    #tableList tr,
     243    #tableList th,
     244    #tableList td {
     245        display: block !important;
     246        width: 100%;
     247    }
     248
     249    #tableList thead {
     250        display: none !important;
     251    }
     252
     253    #tableList tr {
     254        border: 1px solid #ccc;
     255        margin-bottom: 1rem;
     256    }
     257
     258    #tableList td {
     259        display: flex !important;
     260        /*justify-content: space-between;*/
     261        padding: 0.5rem;
     262        box-sizing: border-box;
     263        text-align: left;
     264    }
     265
     266    #tableList td::before {
     267        /*content: attr(data-label);*/
     268        font-weight: 600;
     269        padding-right: 1rem;
     270    }
     271
     272
     273    .tableMobileLabel {
     274        display: inline-block;
     275    }
     276
     277    .tableDesktopLabel {
     278        display: none;
     279    }
     280
     281    #tableList .firstColumn {
     282        text-align: left !important;
     283    }
     284
     285    #tableList .firstColumn span {
     286        margin-left: 10px;
     287    }
     288
     289    #tableList .firstColumn span i {
     290        margin-right: 5px;
     291    }
     292
     293    .hiddenColumnInMobile {
     294        display: none;
     295        visibility: hidden;
     296        height: 0;
     297        padding: 0 !important;
     298    }
     299}
     300
  • customtables/trunk/libraries/customtables/media/css/fieldtypes.css

    r3219911 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright Copyright (C) 2018-2025.
     7 * @copyright Copyright (C) 2018-2026.
    88 * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/media/css/layouteditor.css

    r3219911 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright Copyright (C) 2018-2025.
     7 * @copyright Copyright (C) 2018-2026.
    88 * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/media/css/modal.css

    r3219911 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright Copyright (C) 2018-2025.
     7 * @copyright Copyright (C) 2018-2026.
    88 * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/media/js/catalog.js

    r3428455 r3476791  
    44 * @author Ivan Komlev <support@joomlaboat.com>
    55 * @link https://joomlaboat.com
    6  * @copyright Copyright (C) 2018-2025. All Rights Reserved
     6 * @copyright Copyright (C) 2018-2026. All Rights Reserved
    77 * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
    88 **/
     
    8989
    9090    let params = 'task=' + task + '&listing_id=' + recordId;
    91 
    92     /*
    93     if (CTEditHelper.cmsName === 'Joomla') {
    94         if (typeof ModuleId !== 'undefined' && ModuleId !== null && ModuleId !== 0)
    95             params += '&ModuleId=' + ModuleId;
    96         else
    97             params += '&Itemid=' + CTEditHelper.itemId;
    98     }
    99 */
    100     console.log("params:", params);
    101 
    10291    let http = CreateHTTPRequestObject();   // defined in ajax.js
    10392    let addParams = ['option=com_customtables', 'view=edititem', 'clean=1', 'frmt=json'];
     
    257246    if (!table) return -2;
    258247    let lookingFor = '#' + icon + tableid + "x" + id;
    259     console.warn("lookingFor", lookingFor)
    260248    let rows = table.rows;
    261     console.log("count:", rows.length)
     249
    262250    for (let i = 0; i < rows.length; i++) {
    263251
  • customtables/trunk/libraries/customtables/media/js/edit.js

    r3428455 r3476791  
    44 * @author Ivan Komlev <support@joomlaboat.com>
    55 * @link https://joomlaboat.com
    6  * @copyright Copyright (C) 2018-2025. All Rights Reserved
     6 * @copyright (C) 2018-2026. All Rights Reserved
    77 * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
    88 **/
  • customtables/trunk/libraries/customtables/media/js/extratasks.js

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright Copyright (C) 2018-2025. All Rights Reserved
     7 * @copyright Copyright (C) 2018-2026. All Rights Reserved
    88 * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/media/js/layouteditor.js

    r3428455 r3476791  
    44 * @author Ivan Komlev <support@joomlaboat.com>
    55 * @link https://joomlaboat.com
    6  * @copyright Copyright (C) 2018-2025. All Rights Reserved
     6 * @copyright Copyright (C) 2018-2026. All Rights Reserved
    77 * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
    88 **/
     
    907907
    908908            if (tagSetAttributes.name === 'filters')
    909                 fullTagName = tag.examplevalue + ' | ' + fullTagName;
     909                fullTagName = tag.examplevalue + ' | ' + tag.name;//fullTagName;
    910910
    911911
  • customtables/trunk/libraries/customtables/media/js/layoutwizard.js

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright Copyright (C) 2018-2025. All Rights Reserved
     7 * @copyright Copyright (C) 2018-2026. All Rights Reserved
    88 * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/media/js/settings.js

    r3428455 r3476791  
    44 * @author Ivan Komlev <support@joomlaboat.com>
    55 * @link https://joomlaboat.com
    6  * @copyright Copyright (C) 2018-2025. All Rights Reserved
     6 * @copyright Copyright (C) 2018-2026. All Rights Reserved
    77 * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
    88 **/
  • customtables/trunk/libraries/customtables/media/js/typeparams.js

    r3428455 r3476791  
    44 * @author Ivan Komlev <support@joomlaboat.com>
    55 * @link https://joomlaboat.com
    6  * @copyright Copyright (C) 2018-2025. All Rights Reserved
     6 * @copyright Copyright (C) 2018-2026. All Rights Reserved
    77 * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
    88 **/
  • customtables/trunk/libraries/customtables/media/js/typeparams_common.js

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright Copyright (C) 2018-2025. All Rights Reserved
     7 * @copyright Copyright (C) 2018-2026. All Rights Reserved
    88 * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/media/js/typeparams_j4.js

    r3428455 r3476791  
    44 * @author Ivan Komlev <support@joomlaboat.com>
    55 * @link https://joomlaboat.com
    6  * @copyright Copyright (C) 2018-2025. All Rights Reserved
     6 * @copyright Copyright (C) 2018-2026. All Rights Reserved
    77 * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
    88 **/
  • customtables/trunk/libraries/customtables/media/js/uploader.js

    r3428455 r3476791  
    44 * @author Ivan Komlev <support@joomlaboat.com>
    55 * @link https://joomlaboat.com
    6  * @copyright Copyright (C) 2018-2025. All Rights Reserved
     6 * @copyright Copyright (C) 2018-2026. All Rights Reserved
    77 * @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
    88 **/
  • customtables/trunk/libraries/customtables/media/xml/fieldtypes.xml

    r3424598 r3476791  
    313313    </type>
    314314
    315     <!-- Not used in WordPress version and will be obsolete in Joomla version in December 2024 -->
    316     <type ct_name="customtables" deprecated="1" name="customtables" label="Hierarchical List"
    317           description="Hierarchical List."
    318           rawquotes="1" ct_alias="customtables" disabled="false" ct_special="false" priority="3" proversion="1">
    319         <params>
    320             <param name="option" label="Option" description="" default="" type="string"/>
    321             <param name="selector" label="Selector" description="How to select records." default="single" type="list"
    322                    example="multi">
    323                 <option value="single" label="Single (Select Box)"/>
    324                 <option value="multi" label="Multiple (List Box)"/>
    325             </param>
    326         </params>
    327 
    328         <editparams name="customtables" label="Input Element Parameters" description="">
    329             <params>
    330                 <param type="string" name="cssclass" label="CSS Class" description="Name or names of CSS class(es)."/>
    331                 <param name="attributes" label="Attributes"
    332                        description="Optional attributes like: disabled, onclick, onchange, etc." default=""
    333                        type="string"/>
    334             </params>
    335         </editparams>
    336     </type>
    337 
    338315    <!-- WordPress Ready 32 -->
    339316    <type ct_name="id" label="Auto-increment ID" description="Custom record ID."
  • customtables/trunk/libraries/customtables/media/xml/tags.xml

    r3424598 r3476791  
    786786            </params>
    787787        </tag>
     788
     789        <tag name="sqlquery" label="SQL SELECT Query" startchar="{" endchar="}"
     790             description="Executes a custom SQL SELECT query using a read-only database connection. Only SELECT statements are allowed; UPDATE, DELETE, INSERT, and other write operations are blocked."
     791             twigclass="tables" proversion="1" wordpress="false">
     792            <params>
     793                <param name="query" label="Query" type="string"
     794                       description="The SQL SELECT query to execute. Must be a valid SELECT statement. Use the #__ prefix for Joomla table names and concatenate Twig variables using '~'."
     795                       example="SELECT COUNT(id) FROM #__users"
     796                />
     797                <param name="mode"
     798                       label="Result Mode"
     799                       type="list"
     800                       default="auto"
     801                       description="Controls how the query result is returned"
     802                >
     803                    <option value="auto" label="Auto detect"/>
     804                    <option value="scalar" label="Single value"/>
     805                    <option value="row" label="Single row"/>
     806                    <option value="list" label="Multiple rows"/>
     807                </param>
     808            </params>
     809        </tag>
     810
    788811    </tagset>
    789812
     
    12951318
    12961319        <tag name="layout" label="Extend Layout" startchar="{" endchar="}"
    1297              description="Includes the content of selected layout." hidedefaultexample="0" proversion="1"
     1320             description="Includes and renders the content of the selected layout file." hidedefaultexample="0"
     1321             proversion="1"
    12981322             twigclass="document" wordpress="true">
    12991323            <params>
    1300                 <param name="layoutname" label="Layout Name" type="layout" description="Layout Name."
     1324                <param name="layoutname" label="Layout Name" type="layout"
     1325                       description="The name of the layout to include."
    13011326                       examplenoquotes="0" table="current" example="my_script_layout"/>
    1302                 <!-- <param name="process" label="Process content" description="Process content plugins such as Content - Email Cloaking etc." type="radio" default="" options="|No,process|Process"/> -->
     1327                <param name="process" label="Content plugins"
     1328                       description="If enabled, runs Joomla content plugins after rendering (e.g., Content - Email Cloaking)."
     1329                       type="radio" default="" options="false|False,true|True"/>
    13031330            </params>
    13041331        </tag>
     
    13561383            </params>
    13571384        </tag>
     1385
     1386        <tag name="cookie" label="Cookie" startchar="{" endchar="}" hidedefaultexample="1"
     1387             description="Returns the value of an HTTP cookie sent with the current request."
     1388             proversion="0" twigclass="document"
     1389             layouttypes="1,2,4,5,6" wordpress="true">
     1390            <params>
     1391                <param name="text" label="Cookie name" type="string"
     1392                       example="token"
     1393                       description="The name of the cookie to read from the current request (same as PHP $_COOKIE)."/>
     1394            </params>
     1395        </tag>
     1396
    13581397
    13591398        <!-- Deprecated -->
  • customtables/trunk/libraries/customtables/ordering/ordering.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/records/Save_blob.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/records/Save_file.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/records/Save_image.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/records/Save_imagegallery.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/records/Save_records.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/records/Save_usergroups.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/records/record.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/records/savefieldqueryset.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/utilities/ExportTables.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
     
    118118        } else {
    119119            $whereClause->addCondition('link', 'index.php?option=com_customtables&view=', 'INSTR');
    120             $whereClause->addCondition('params', '"establename":"' . $table['tablename'] . '"', 'INSTR');
     120
     121            $whereClauseOr = new MySQLWhereClause();
     122            $whereClauseOr->addOrCondition('params', '"establename":"' . $table['tablename'] . '"', 'INSTR');
     123            $whereClauseOr->addOrCondition('params', '"establename":"' . $table['id'] . '"', 'INSTR');
     124
     125            $whereClause->addNestedCondition($whereClauseOr);
    121126        }
    122127
  • customtables/trunk/libraries/customtables/utilities/ImportTables.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
     
    2424     */
    2525    public static function processFile($filename, $menuType, ?string $message, $category = '',
    26                                        $importFields = true, $importLayouts = true, $importMenu = true, string $fieldPrefix = null): void
     26                                       $importFields = true, $importLayouts = true, $importMenu = true, ?string $fieldPrefix = null): void
    2727    {
    2828        $ct = new CT([], true);
     
    8080    {
    8181        foreach ($JSON_data as $table) {
    82             $importedTableFieldPrefix = $table['table']['customfieldprefix'];
     82            $importedTableFieldPrefix = $table['table']['customfieldprefix'] ?? 'ct_';
    8383            $importedTableRealIdFieldName = empty($table['table']['customidfield']) ? 'id' : $table['table']['customidfield'];
    8484
     
    412412        } else {
    413413            //Create field record
     414            $field_new['id'] = null; //This is important to prevent duplicate records.
    414415            $fieldid = ImportTables::insertRecords('#__customtables_fields', $field_new);
    415416            if ($fieldid != 0) {
  • customtables/trunk/libraries/customtables/views/admin-diagram.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/views/admin-documentation.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/views/admin-listoffields.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/views/admin-listoflayouts.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
     
    171171        $params['publishstatus'] = common::inputPostInt('publishstatus', null, 'create-edit-layout');
    172172        $params['mimetype'] = common::inputPostString('mimetype', null, 'create-edit-layout');
     173        $params['stealth'] = common::inputPostString('stealth', null, 'create-edit-layout');
    173174
    174175        $data['params'] = json_encode($params);
  • customtables/trunk/libraries/customtables/views/admin-listoftables.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/libraries/customtables/views/catalog.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
     
    2121    var ?string $layoutCodeCSS;
    2222    var ?string $layoutCodeJS;
     23    var bool $stealth;
    2324
    2425    function __construct(CT &$ct)
     
    2728        $this->layoutCodeCSS = '';
    2829        $this->layoutCodeJS = '';
     30        $this->stealth = false;
    2931    }
    3032
     
    4648        if ($layoutName !== null) {
    4749            $pageLayout = $Layouts->getLayout($layoutName);
     50
    4851            if (isset($Layouts->layoutId)) {
    4952                $pageLayoutNameString = ($layoutName == '' ? 'InlinePageLayout' : $layoutName);
     
    5659            }
    5760        }
     61
     62        $this->stealth = $Layouts->stealth;
    5863
    5964        // -------------------- Table
  • customtables/trunk/libraries/customtables/views/edit.php

    r3428455 r3476791  
    55 * @author Ivan Komlev <support@joomlaboat.com>
    66 * @link https://joomlaboat.com
    7  * @copyright (C) 2018-2025. Ivan Komlev
     7 * @copyright (C) 2018-2026. Ivan Komlev
    88 * @license GNU/GPL Version 2 or later - https://www.gnu.org/licenses/gpl-2.0.html
    99 **/
  • customtables/trunk/readme.txt

    r3428455 r3476791  
    66Requires at least: 6.0
    77Tested up to: 6.9
    8 Stable tag: 1.6.6
     8Stable tag: 1.7.1
    99Requires PHP: 7.4
    1010License: GPLv2
     
    5050
    5151== Changelog ==
     52
     53= 1.7.1 =
     54- {{ html.search() }} button icon fixed.
     55- {{ html.searchreset() }} button label and icon fixed.
     56
     57= 1.7.0 =
     58- Import tables duplicate field records bug fixed.
     59
     60= 1.6.9 =
     61- {{ tables.sqlselect() }} tag added.
     62
     63= 1.6.8 =
     64- PHP 8.4 Warnings fixed.
     65
     66= 1.6.7 =
     67- PHP 8.4 Compatibility Warnings fixed. CT Library Updated.
    5268
    5369= 1.6.6 =
Note: See TracChangeset for help on using the changeset viewer.