Plugin Directory

Changeset 3418327


Ignore:
Timestamp:
12/12/2025 01:51:41 PM (2 months ago)
Author:
audiotyped
Message:

1.4.2

  • Fixed default styling on fresh installations.
  • Prevented empty values from overwriting CSS defaults.
  • Improved stability of bubble colors and arrow pointers.
Location:
audiotyped-ux/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • audiotyped-ux/trunk/audiotyped-ux.php

    r3415586 r3418327  
    99License URI: https://www.gnu.org/licenses/gpl-2.0.html
    1010Text Domain: audiotyped-ux
    11 Version: 1.4.1
     11Version: 1.4.2
    1212*/
    1313
    14 define( 'AUDIOTYPED_UX_VERSION', '1.4.1' );
     14define( 'AUDIOTYPED_UX_VERSION', '1.4.2' );
     15
     16function audiotyped_ux_defaults() {
     17  return [
     18    'audiotyped_tb_color'  => '#f3f5f7',
     19    'audiotyped_hb_color'  => '#6fa81e',
     20    'audiotyped_gb_color'  => '#4a90e2',
     21    'audiotyped_g2b_color' => '#9b59b6',
     22    'audiotyped_hf_color'  => '#ffffff',
     23    'audiotyped_gf_color'  => '#ffffff',
     24    'audiotyped_g2f_color' => '#ffffff',
     25
     26    'audiotyped_avatar'      => 12,
     27    'audiotyped_bubble'      => 8,
     28    'audiotyped_shadow_blur' => 10,
     29
     30    'audiotyped_df_size'   => 18,
     31    'audiotyped_dc_size'   => 80,
     32    'audiotyped_dgap_size' => 12,
     33    'audiotyped_dbpv_size' => 10,
     34    'audiotyped_dbph_size' => 16,
     35
     36    'audiotyped_mf_size'   => 15,
     37    'audiotyped_ma_size'   => 50,
     38    'audiotyped_md_size'   => 35,
     39    'audiotyped_mgap_size' => 10,
     40    'audiotyped_mbpv_size' => 4,
     41    'audiotyped_mbph_size' => 12,
     42  ];
     43}
     44
     45function audiotyped_ux_get( $key ) {
     46  $defaults = audiotyped_ux_defaults();
     47  $value    = get_option( $key, null );
     48
     49  if ( $value === null || $value === '' ) {
     50    return $defaults[ $key ] ?? '';
     51  }
     52  return $value;
     53}
     54
     55register_activation_hook( __FILE__, function () {
     56  foreach ( audiotyped_ux_defaults() as $key => $default ) {
     57    if ( get_option( $key, null ) === null ) {
     58      add_option( $key, $default );
     59    }
     60  }
     61});
    1562
    1663// Insert function here - before use in hooks etc.
     
    1966  $file_url  = plugin_dir_url( __FILE__ ) . $relative_path;
    2067
    21   $version = defined( 'AUDIOTYPED_UX_VERSION' ) ? AUDIOTYPED_UX_VERSION : '1.4.1';
     68  $version = defined( 'AUDIOTYPED_UX_VERSION' ) ? AUDIOTYPED_UX_VERSION : '1.4.2';
    2269  if ( file_exists( $file_path ) ) {
    2370      $version = filemtime( $file_path );
     
    3986
    4087// Admin stylesheets for WP Backend Plugin Settings
    41 if( !function_exists("update_audiotyped_settings") )
    42 {
    43   function audiotyped_admin_styles($hook) {
     88if ( ! function_exists( 'audiotyped_admin_styles' ) ) {
     89  function audiotyped_admin_styles( $hook ) {
     90    if ( $hook !== 'settings_page_audiotyped-settings' ) {
     91      return;
     92    }                 
    4493    // Optional: load only on plugin settings page
    4594    if ($hook !== 'settings_page_audiotyped-settings') {
     
    69118    );
    70119    wp_localize_script( 'audiotyped-transcript-js', 'vname',  array(
    71        'tbcolor' => get_option( 'audiotyped_tb_color' ),
    72        'gbcolor' => get_option( 'audiotyped_gb_color' ),
    73        'hbcolor' => get_option( 'audiotyped_hb_color' ),
    74        'gfcolor' => get_option( 'audiotyped_gf_color' ),
    75        'hfcolor' => get_option( 'audiotyped_hf_color' ),       
    76        'aradius' => get_option( 'audiotyped_avatar' ),
    77        'bcorner' => get_option( 'audiotyped_bubble' ),
    78        'mfsize' => get_option( 'audiotyped_mf_size' ),
    79        'dfsize' => get_option( 'audiotyped_df_size' ),
    80        'sradius' => get_option( 'audiotyped_shadow_blur' ),
    81        'dgapsize' => get_option( 'audiotyped_dgap_size' ),
    82        'dcsize' => get_option( 'audiotyped_dc_size' ),
    83        'masize' => get_option( 'audiotyped_ma_size' ),
    84        'mdsize' => get_option( 'audiotyped_md_size' ),
    85        'mbpvsize' => get_option( 'audiotyped_mbpv_size' ),
    86        'mbphsize' => get_option( 'audiotyped_mbph_size' ),
    87        'dbpvsize' => get_option( 'audiotyped_dbpv_size' ),
    88        'dbphsize' => get_option( 'audiotyped_dbph_size' ),
    89        'mgapsize' => get_option( 'audiotyped_mgap_size' ),
    90        'g2bcolor' => get_option( 'audiotyped_g2b_color' ),
    91        'g2fcolor' => get_option( 'audiotyped_g2f_color' )
     120       'tbcolor' => audiotyped_ux_get( 'audiotyped_tb_color' ),
     121       'gbcolor' => audiotyped_ux_get( 'audiotyped_gb_color' ),
     122       'hbcolor' => audiotyped_ux_get( 'audiotyped_hb_color' ),
     123       'gfcolor' => audiotyped_ux_get( 'audiotyped_gf_color' ),
     124       'hfcolor' => audiotyped_ux_get( 'audiotyped_hf_color' ),       
     125       'aradius' => audiotyped_ux_get( 'audiotyped_avatar' ),
     126       'bcorner' => audiotyped_ux_get( 'audiotyped_bubble' ),
     127       'mfsize' => audiotyped_ux_get( 'audiotyped_mf_size' ),
     128       'dfsize' => audiotyped_ux_get( 'audiotyped_df_size' ),
     129       'sradius' => audiotyped_ux_get( 'audiotyped_shadow_blur' ),
     130       'dgapsize' => audiotyped_ux_get( 'audiotyped_dgap_size' ),
     131       'dcsize' => audiotyped_ux_get( 'audiotyped_dc_size' ),
     132       'masize' => audiotyped_ux_get( 'audiotyped_ma_size' ),
     133       'mdsize' => audiotyped_ux_get( 'audiotyped_md_size' ),
     134       'mbpvsize' => audiotyped_ux_get( 'audiotyped_mbpv_size' ),
     135       'mbphsize' => audiotyped_ux_get( 'audiotyped_mbph_size' ),
     136       'dbpvsize' => audiotyped_ux_get( 'audiotyped_dbpv_size' ),
     137       'dbphsize' => audiotyped_ux_get( 'audiotyped_dbph_size' ),
     138       'mgapsize' => audiotyped_ux_get( 'audiotyped_mgap_size' ),
     139       'g2bcolor' => audiotyped_ux_get( 'audiotyped_g2b_color' ),
     140       'g2fcolor' => audiotyped_ux_get( 'audiotyped_g2f_color' )
    92141    ) );
    93142 
     
    99148        AUDIOTYPED_UX_VERSION,
    100149        true
    101     );
     150    ); 
    102151 }
    103152}
     
    133182
    134183}
    135 }
    136 
    137 // Set default vaulues if not set
    138 if( !function_exists("initialize_default_values") ) {
    139   $default_audiotyped_dc_size = get_option('audiotyped_dc_size');
    140   $default_audiotyped_ma_size = get_option('audiotyped_ma_size');
    141   $default_audiotyped_md_size = get_option('audiotyped_md_size');
    142   $default_audiotyped_md_size = get_option('audiotyped_mbpv_size');
    143   $default_audiotyped_md_size = get_option('audiotyped_mbph_size');
    144   $default_audiotyped_md_size = get_option('audiotyped_dbpv_size');
    145   $default_audiotyped_md_size = get_option('audiotyped_dbph_size');
    146     if($default_audiotyped_dc_size == ""){
    147          add_option('audiotyped_dc_size', '80');
    148          $default_audiotyped_dc_size= get_option('audiotyped_dc_size');
    149   }
    150     if($default_audiotyped_ma_size == ""){
    151          add_option('audiotyped_ma_size', '50');
    152          $default_audiotyped_ma_size= get_option('audiotyped_ma_size');
    153   }
    154     if($default_audiotyped_md_size == ""){
    155          add_option('audiotyped_md_size', '35');
    156          $default_audiotyped_md_size= get_option('audiotyped_md_size');
    157   }
    158     if($default_audiotyped_mbpv_size == ""){
    159          add_option('audiotyped_mbpv_size', '4');
    160          $default_audiotyped_md_size= get_option('audiotyped_mbpv_size');
    161   }
    162     if($default_audiotyped_mbph_size == ""){
    163          add_option('audiotyped_mbph_size', '12');
    164          $default_audiotyped_md_size= get_option('audiotyped_mbph_size');
    165   }
    166     if($default_audiotyped_dbpv_size == ""){
    167          add_option('audiotyped_dbpv_size', '10');
    168          $default_audiotyped_md_size= get_option('audiotyped_dbpv_size');
    169   }
    170     if($default_audiotyped_dbph_size == ""){
    171          add_option('audiotyped_dbph_size', '16');
    172          $default_audiotyped_md_size= get_option('audiotyped_dbph_size');
    173   }
    174184}
    175185
     
    300310        </span>         
    301311      </th>
    302       <td><input type="text" name="audiotyped_tb_color" value="<?php echo esc_attr( get_option('audiotyped_tb_color') ); ?>" class="my-color-field" /></td>
     312      <td><input type="text" name="audiotyped_tb_color" value="<?php echo esc_attr( audiotyped_ux_get('audiotyped_tb_color') ); ?>" class="my-color-field" /></td>
    303313      </tr>
    304314      <tr valign="top">
     
    324334        </span>         
    325335      </th>
    326       <td><input type="text" name="audiotyped_gb_color" value="<?php echo esc_attr( get_option('audiotyped_gb_color') ); ?>" class="my-color-field" /></td>
     336      <td><input type="text" name="audiotyped_gb_color" value="<?php echo esc_attr( audiotyped_ux_get('audiotyped_gb_color') ); ?>" class="my-color-field" /></td>
    327337      </tr>
    328338      <tr valign="top">
     
    348358        </span>         
    349359      </th>
    350       <td><input type="text" name="audiotyped_hf_color" value="<?php echo esc_attr( get_option('audiotyped_hf_color') ); ?>" class="my-color-field" /></td>
     360      <td><input type="text" name="audiotyped_hf_color" value="<?php echo esc_attr( audiotyped_ux_get('audiotyped_hf_color') ); ?>" class="my-color-field" /></td>
    351361      </tr>   
    352362      <tr valign="top">
     
    372382        </span>
    373383      </th>
    374       <td><input type="text" name="audiotyped_g2f_color" value="<?php echo esc_attr( get_option('audiotyped_g2f_color') ); ?>" class="my-color-field" /></td>
     384      <td><input type="text" name="audiotyped_g2f_color" value="<?php echo esc_attr( audiotyped_ux_get('audiotyped_g2f_color') ); ?>" class="my-color-field" /></td>
    375385      </tr>
    376386
     
    397407        </span>           
    398408      </th>
    399       <td><input type="number" min="0" max="10" name="audiotyped_bubble" value="<?php echo esc_attr( get_option('audiotyped_bubble') ); ?>"/> (Numbers from 0 to 10)</td>
     409      <td><input type="number" min="0" max="10" name="audiotyped_bubble" value="<?php echo esc_attr( audiotyped_ux_get('audiotyped_bubble') ); ?>"/> (Numbers from 0 to 10)</td>
    400410      </tr>   
    401411      <tr valign="top">
     
    421431        </span>         
    422432      </th>
    423       <td><input type="number" min="45" max="100" name="audiotyped_dc_size" value="<?php echo esc_attr( get_option('audiotyped_dc_size') ); ?>"/> (from 45 to 100 px)</td>
     433      <td><input type="number" min="45" max="100" name="audiotyped_dc_size" value="<?php echo esc_attr( audiotyped_ux_get('audiotyped_dc_size') ); ?>"/> (from 45 to 100 px)</td>
    424434      </tr> 
    425435      <tr valign="top">
     
    445455        </span>       
    446456      </th>
    447       <td><input type="number" min="0" max="30" name="audiotyped_dgap_size" value="<?php echo esc_attr( get_option('audiotyped_dgap_size') ); ?>"/> (from 0 to 30 px)</td>
     457      <td><input type="number" min="0" max="30" name="audiotyped_dgap_size" value="<?php echo esc_attr( audiotyped_ux_get('audiotyped_dgap_size') ); ?>"/> (from 0 to 30 px)</td>
    448458      </tr> 
    449459      <tr valign="top">
     
    469479        </span>       
    470480      </th>
    471       <td><input type="number" min="6" max="50" name="audiotyped_dbph_size" value="<?php echo esc_attr( get_option('audiotyped_dbph_size') ); ?>"/> (from 6 to 50 px)</td>
     481      <td><input type="number" min="6" max="50" name="audiotyped_dbph_size" value="<?php echo esc_attr( audiotyped_ux_get('audiotyped_dbph_size') ); ?>"/> (from 6 to 50 px)</td>
    472482      </tr> 
    473483      <tr valign="top">
     
    493503        </span>         
    494504      </th>
    495       <td><input type="number" min="10" max="20" name="audiotyped_mf_size" value="<?php echo esc_attr( get_option('audiotyped_mf_size') ); ?>"/> (from 10 to 20 px)</td>
     505      <td><input type="number" min="10" max="20" name="audiotyped_mf_size" value="<?php echo esc_attr( audiotyped_ux_get('audiotyped_mf_size') ); ?>"/> (from 10 to 20 px)</td>
    496506      </tr> 
    497507      <tr valign="top">
     
    517527        </span>         
    518528      </th>
    519       <td><input type="number" min="30" max="80" name="audiotyped_md_size" value="<?php echo esc_attr( get_option('audiotyped_md_size') ); ?>"/> (from 30 to 80 px)</td>
     529      <td><input type="number" min="30" max="80" name="audiotyped_md_size" value="<?php echo esc_attr( audiotyped_ux_get('audiotyped_md_size') ); ?>"/> (from 30 to 80 px)</td>
    520530      </tr>   
    521531      <tr valign="top">
     
    541551        </span>       
    542552      </th>
    543       <td><input type="number" min="6" max="30" name="audiotyped_mbph_size" value="<?php echo esc_attr( get_option('audiotyped_mbph_size') ); ?>"/> (from 6 to 30 px)</td>
     553      <td><input type="number" min="6" max="30" name="audiotyped_mbph_size" value="<?php echo esc_attr( audiotyped_ux_get('audiotyped_mbph_size') ); ?>"/> (from 6 to 30 px)</td>
    544554      </tr>   
    545555    </table>
  • audiotyped-ux/trunk/audiotyped.js

    r3409061 r3418327  
    1 window.onload = function () {
    2     document.documentElement.style.setProperty('--tscrpttbcolor',  vname.tbcolor );
    3     document.documentElement.style.setProperty('--tscrptgbcolor',  vname.gbcolor );
    4     document.documentElement.style.setProperty('--tscrpthbcolor',  vname.hbcolor );
    5     document.documentElement.style.setProperty('--tscrptgfcolor',  vname.gfcolor );
    6     document.documentElement.style.setProperty('--tscrpthfcolor',  vname.hfcolor );
    7     document.documentElement.style.setProperty('--tscrptaradius', vname.aradius + '%' );
    8     document.documentElement.style.setProperty('--tscrptbcorner', vname.bcorner + 'px' );
    9     document.documentElement.style.setProperty('--tscrptmfsize', vname.mfsize + 'px' );
    10     document.documentElement.style.setProperty('--tscrptdfsize', vname.dfsize + 'px' );
    11     document.documentElement.style.setProperty('--tscrptsradius', vname.sradius + 'px' );
    12     document.documentElement.style.setProperty('--tscrptdgapp', vname.dgapsize + 'px' );
    13     document.documentElement.style.setProperty('--tscrptdgapn', '-' + vname.dgapsize + 'px' );
    14     document.documentElement.style.setProperty('--tscrptdcsize', vname.dcsize + 'px' );
    15     document.documentElement.style.setProperty('--tscrptmasize', vname.masize + 'px' );
    16     document.documentElement.style.setProperty('--tscrptmatsize', '-' + vname.masize + 'px' ); 
    17     document.documentElement.style.setProperty('--tscrptmdsize', vname.mdsize + 'px' );
    18     document.documentElement.style.setProperty('--tscrptmbpvsize', vname.mbpvsize + 'px' );
    19     document.documentElement.style.setProperty('--tscrptmbphsize', vname.mbphsize + 'px' ); 
    20     document.documentElement.style.setProperty('--tscrptdbpvsize', vname.dbpvsize + 'px' );
    21     document.documentElement.style.setProperty('--tscrptdbphsize', vname.dbphsize + 'px' );
    22     document.documentElement.style.setProperty('--tscrptmgapp', vname.mgapsize + 'px' );
    23     document.documentElement.style.setProperty('--tscrptmgapn', '-' + vname.mgapsize + 'px' );
    24     document.documentElement.style.setProperty('--tscrptg2bcolor', vname.g2bcolor );
    25     document.documentElement.style.setProperty('--tscrptg2fcolor', vname.g2fcolor );   
    26 }
     1window.addEventListener('load', function () {
     2
     3  function hasValue(v) {
     4    return v !== undefined && v !== null && v !== '';
     5  }
     6
     7  function setVar(name, value) {
     8    if (hasValue(value)) {
     9      document.documentElement.style.setProperty(name, value);
     10    }
     11  }
     12
     13  function setPx(name, value) {
     14    if (hasValue(value) && !isNaN(Number(value))) {
     15      setVar(name, Number(value) + 'px');
     16    }
     17  }
     18
     19  function setPercent(name, value) {
     20    if (hasValue(value) && !isNaN(Number(value))) {
     21      setVar(name, Number(value) + '%');
     22    }
     23  }
     24
     25  function setNegPx(name, value) {
     26    if (hasValue(value) && !isNaN(Number(value))) {
     27      setVar(name, '-' + Number(value) + 'px');
     28    }
     29  }
     30
     31  // Colors
     32  setVar('--tscrpttbcolor',  vname.tbcolor);
     33  setVar('--tscrptgbcolor',  vname.gbcolor);
     34  setVar('--tscrpthbcolor',  vname.hbcolor);
     35  setVar('--tscrptgfcolor',  vname.gfcolor);
     36  setVar('--tscrpthfcolor',  vname.hfcolor);
     37  setVar('--tscrptg2bcolor', vname.g2bcolor);
     38  setVar('--tscrptg2fcolor', vname.g2fcolor);
     39
     40  // Numbers
     41  setPercent('--tscrptaradius', vname.aradius);
     42  setPx('--tscrptbcorner', vname.bcorner);
     43
     44  setPx('--tscrptmfsize', vname.mfsize);
     45  setPx('--tscrptdfsize', vname.dfsize);
     46  setPx('--tscrptsradius', vname.sradius);
     47
     48  setPx('--tscrptdgapp', vname.dgapsize);
     49  setNegPx('--tscrptdgapn', vname.dgapsize);
     50
     51  setPx('--tscrptdcsize', vname.dcsize);
     52
     53  setPx('--tscrptmasize', vname.masize);
     54  setNegPx('--tscrptmatsize', vname.masize);
     55
     56  setPx('--tscrptmdsize', vname.mdsize);
     57
     58  setPx('--tscrptmbpvsize', vname.mbpvsize);
     59  setPx('--tscrptmbphsize', vname.mbphsize);
     60
     61  setPx('--tscrptdbpvsize', vname.dbpvsize);
     62  setPx('--tscrptdbphsize', vname.dbphsize);
     63
     64  setPx('--tscrptmgapp', vname.mgapsize);
     65  setNegPx('--tscrptmgapn', vname.mgapsize);
     66
     67});
  • audiotyped-ux/trunk/readme.txt

    r3415586 r3418327  
    1 === AudioTyped UX – Transcripts for SEO & Content Visibility ===
     1=== AudioTyped UX – Transcripts improving Content Visibility ===
    22Contributors: audiotyped
    33Tags: podcast, transcript, text, chat bubbles, interview, avatar, html, color, block, chat
    44Requires at least: 5.4.2
    55Tested up to: 6.9
    6 Stable tag: 1.4.1
     6Stable tag: 1.4.2
    77Requires PHP: 7.0
    88License: GPLv2 or later
Note: See TracChangeset for help on using the changeset viewer.