WordPress.org

Plugin Directory

Changeset 1593802


Ignore:
Timestamp:
02/11/17 11:29:18 (6 months ago)
Author:
gfazioli
Message:

improve countdown

Location:
wpx-cron-manager-light
Files:
152 added
14 edited

Legend:

Unmodified
Added
Removed
  • wpx-cron-manager-light/trunk/index.php

    r1587524 r1593802  
    55 * Plugin URI: http://undolog.com 
    66 * Description: Cron Manager displays and manages any kind WordPress registered cron job 
    7  * Version: 2.3.1 
     7 * Version: 2.3.2 
    88 * Author: Giovambattista Fazioli 
    99 * Author URI: http://undolog.com 
  • wpx-cron-manager-light/trunk/plugin/Http/Controllers/Dashboard/CronListTable.php

    r1559855 r1593802  
    11<?php 
     2 
    23namespace WPXCronManagerLight\Http\Controllers\Dashboard; 
    34 
     
    910use WPXCronManagerLight\PureCSSSwitch\Html\HtmlTagSwitchButton; 
    1011 
    11 if ( ! defined( 'ABSPATH' ) ) exit; 
     12if ( ! defined( 'ABSPATH' ) ) { 
     13  exit; 
     14} 
    1215 
    1316final class CronListTable extends \WP_List_Table 
     
    2629  const STATUS_DISABLED = 'disabled'; 
    2730 
    28   protected $_where = [ ]; 
     31  protected $_where = []; 
    2932 
    3033  public function __construct() 
     
    3437        'singular' => __( 'Cron', 'wpx-cron-manager-light' ), 
    3538        'plural'   => __( 'Crons', 'wpx-cron-manager-light' ), 
    36         'ajax'     => false 
     39        'ajax'     => false, 
    3740      ] ); 
    3841  } 
    3942 
    40   protected function get_table_classes() { 
    41         return array( 'widefat', 'striped', $this->_args['plural'] ); 
    42     } 
     43  protected function get_table_classes() 
     44  { 
     45    return [ 'widefat', 'striped', $this->_args[ 'plural' ] ]; 
     46  } 
    4347 
    4448  /** 
     
    6973  public function get_sortable_columns() 
    7074  { 
    71     return [ ]; 
     75    return []; 
    7276  } 
    7377 
     
    121125 
    122126      if ( ! empty( $time ) ) { 
    123         $in  = ( $time > time() ) ? __( 'in' ) . ' ' : ''; 
    124         $ago = ( $time < time() ) ? ' ' . __( 'ago' ) : ''; 
    125  
    126         // Javascript real-time count down 
    127         if ( empty( $in ) ) { 
    128           return $this->elapsedString( $item[ self::COLUMN_NEXT_RUN ] ); 
    129         } 
    130         else { 
    131           $wait = __( 'wait...' ); 
    132  
    133           return sprintf( '%s <span data-cron="%s" class="wpxcm-ui-countdown" data-time="%s">%s</span>', $in, $item[ self::COLUMN_HOOK_NAME ], ( $time - time() ) * 1000, $wait ); 
    134         } 
     127        $prepost  = ( $time > time() ) ? __( 'in' ) : __( 'late' ); 
     128 
     129        $wait = __( 'wait...' ); 
     130 
     131        return sprintf( '<span data-prepost="%s" data-cron="%s" class="wpxcm-ui-countdown" data-time="%s">%s</span>', 
     132                        $prepost, 
     133                        $item[ self::COLUMN_HOOK_NAME ], 
     134                        ( $time - time() ) * 1000, 
     135                        $wait ); 
    135136      } 
    136137    } 
     
    159160 
    160161    $button = HtmlTagSwitchButton::name( $hook_name ) 
    161       ->data( 'hook_name', $hook_name ) 
    162       ->checked( ( 'on' == $item[ self::COLUMN_STATUS ] ) ) 
    163       ->class( $class ); 
     162                                 ->data( 'hook_name', $hook_name ) 
     163                                 ->checked( ( 'on' == $item[ self::COLUMN_STATUS ] ) ) 
     164                                 ->class( $class ); 
    164165 
    165166//    if ( 'on' == $item[ self::COLUMN_STATUS ] ) { 
     
    185186  public function get_bulk_actions() 
    186187  { 
    187     $actions = [ ]; 
     188    $actions = []; 
    188189 
    189190    return $actions; 
     
    241242        'total_items' => $total_items, 
    242243        'per_page'    => $per_page, 
    243         'total_pages' => ceil( $total_items / $per_page ) 
     244        'total_pages' => ceil( $total_items / $per_page ), 
    244245      ] 
    245246    ); 
     
    303304  } 
    304305 
    305   protected function getItems( $args = [ ] ) 
    306   { 
    307     $items     = array(); 
     306  protected function getItems( $args = [] ) 
     307  { 
     308    $items     = []; 
    308309    $crons     = _get_cron_array(); 
    309310    $schedules = wp_get_schedules(); 
    310     $disabled  = get_site_option( 'wpxcm_disabled_cron', [ ] ); 
     311    $disabled  = get_site_option( 'wpxcm_disabled_cron', [] ); 
    311312 
    312313    // Defaults args 
    313     $defaults = array( 
     314    $defaults = [ 
    314315      self::COLUMN_STATUS    => '', 
    315       self::COLUMN_HOOK_NAME => [ ] 
    316     ); 
     316      self::COLUMN_HOOK_NAME => [], 
     317    ]; 
    317318 
    318319    // Merging 
     
    331332                 'all', 
    332333                 self::STATUS_DISABLED, 
    333                  self::STATUS_ENABLED 
     334                 self::STATUS_ENABLED, 
    334335               ] ) 
    335336          ) { 
     
    343344          } 
    344345 
    345           $item = array( 
     346          $item = [ 
    346347            self::COLUMN_HOOK_NAME => $hook, 
    347348            self::COLUMN_SIGNATURE => $sig, 
    348349            self::COLUMN_NEXT_RUN  => wp_next_scheduled( $hook ), 
    349             self::COLUMN_STATUS    => in_array( $hook, $disabled ) ? 'off' : 'on' 
    350           ); 
     350            self::COLUMN_STATUS    => in_array( $hook, $disabled ) ? 'off' : 'on', 
     351          ]; 
    351352 
    352353          if ( $event[ 'schedule' ] ) { 
     
    366367      foreach ( $this->disabled as $hook ) { 
    367368        if ( ! isset( $items[ $hook ] ) ) { 
    368           $items[ $hook ] = array( 
     369          $items[ $hook ] = [ 
    369370            self::COLUMN_HOOK_NAME => $hook, 
    370371            self::COLUMN_NEXT_RUN  => false, 
    371372            self::COLUMN_SCHEDULE  => false, 
    372             self::COLUMN_STATUS    => 'off' 
    373           ); 
     373            self::COLUMN_STATUS    => 'off', 
     374          ]; 
    374375        } 
    375376      } 
     
    394395        'key'        => func_get_arg( 0 ), 
    395396        'condiction' => '=', 
    396         'value'      => func_get_arg( 1 ) 
     397        'value'      => func_get_arg( 1 ), 
    397398      ]; 
    398399    } 
     
    404405  { 
    405406    $args = [ 
    406       $this->_where[ 0 ][ 'key' ] => $this->_where[ 0 ][ 'value' ] 
     407      $this->_where[ 0 ][ 'key' ] => $this->_where[ 0 ][ 'value' ], 
    407408    ]; 
    408409 
     
    442443 
    443444    // Key and string output 
    444     $useful = array( 
    445       'y' => array( __( 'Year' ), __( 'Years' ) ), 
    446       'm' => array( __( 'Month' ), __( 'Months' ) ), 
    447       'd' => array( __( 'Day' ), __( 'Days' ) ), 
    448       'h' => array( __( 'Hour' ), __( 'Hours' ) ), 
    449       'i' => array( __( 'Minute' ), __( 'Minutes' ) ), 
    450       's' => array( __( 'Second' ), __( 'Seconds' ) ), 
    451     ); 
    452  
    453     $matrix = array( 
    454       'y' => array( 12 * 30 * 24 * 60 * 60, 12 ), 
    455       'm' => array( 30 * 24 * 60 * 60, 30 ), 
    456       'd' => array( 24 * 60 * 60, 24 ), 
    457       'h' => array( 60 * 60, 60 ), 
    458       'i' => array( 60, 60 ), 
    459       's' => array( 1, 60 ), 
    460     ); 
     445    $useful = [ 
     446      'y' => [ __( 'Year' ), __( 'Years' ) ], 
     447      'm' => [ __( 'Month' ), __( 'Months' ) ], 
     448      'd' => [ __( 'Day' ), __( 'Days' ) ], 
     449      'h' => [ __( 'Hour' ), __( 'Hours' ) ], 
     450      'i' => [ __( 'Minute' ), __( 'Minutes' ) ], 
     451      's' => [ __( 'Second' ), __( 'Seconds' ) ], 
     452    ]; 
     453 
     454    $matrix = [ 
     455      'y' => [ 12 * 30 * 24 * 60 * 60, 12 ], 
     456      'm' => [ 30 * 24 * 60 * 60, 30 ], 
     457      'd' => [ 24 * 60 * 60, 24 ], 
     458      'h' => [ 60 * 60, 60 ], 
     459      'i' => [ 60, 60 ], 
     460      's' => [ 1, 60 ], 
     461    ]; 
    461462 
    462463    $diff = $timestamp - $to; 
    463464 
    464     $stack = array(); 
     465    $stack = []; 
    465466    foreach ( $useful as $w => $strings ) { 
    466467 
  • wpx-cron-manager-light/trunk/public/css/wpxcm.css

    r1559855 r1593802  
    1616  width: 50px; 
    1717} 
     18table.crons .wpxcm-ui-countdown-red { 
     19  color: #ff7658; 
     20} 
  • wpx-cron-manager-light/trunk/public/css/wpxcm.min.css

    r1559855 r1593802  
    1 table.crons td.column-hook_name{font-weight:700;white-space:nowrap}table.crons td.column-execute,table.crons td.column-status{width:50px} 
     1table.crons td.column-hook_name{font-weight:700;white-space:nowrap}table.crons td.column-execute,table.crons td.column-status{width:50px}table.crons .wpxcm-ui-countdown-red{color:#ff7658} 
  • wpx-cron-manager-light/trunk/public/js/wpxcm-main.js

    r1540785 r1593802  
    2121 
    2222          var diff  = parseInt( $item.data( 'time' ) ), 
    23               days  = Math.floor( diff / (1000 * 60 * 60 * 24) ), 
    24               hours = Math.floor( diff / (1000 * 60 * 60) ), 
    25               mins  = Math.floor( diff / (1000 * 60) ), 
    26               secs  = Math.floor( diff / 1000 ); 
     23              mul   = ( diff < 0 ) ? -1 : 1, 
     24              days  = Math.floor( diff / (1000 * 60 * 60 * 24 * mul ) ), 
     25              hours = Math.floor( diff / (1000 * 60 * 60 * mul) ), 
     26              mins  = Math.floor( diff / (1000 * 60 * mul ) ), 
     27              secs  = Math.floor( diff / 1000 * mul ); 
    2728 
    2829          var dd = days, 
     
    4344          output += _pad( ss ); 
    4445 
    45           $item.html( output ); 
     46          if( mul > 0 ) { 
     47            $item.html( $item.data( 'prepost' ) + " " + output ); 
     48          } 
     49          else { 
     50            $item.html( output + " " + $item.data( 'prepost' ) ); 
     51          } 
    4652 
    4753          // Stop timer 
    48           if( 0 == ( hh | mm | ss ) ) { 
    49             $item.removeClass( 'wpxcm-ui-countdown' ); 
     54          if( 0 === ( hh | mm | ss ) || mul < 0 ) { 
     55            $item.addClass( 'wpxcm-ui-countdown-red' ); 
    5056            //_refreshRow( $item ); 
    5157          } 
  • wpx-cron-manager-light/trunk/public/js/wpxcm-main.min.js

    r1540785 r1593802  
    1 !function(t){"use strict";window.WPXCronManager=function(){setInterval(function(){t(".wpxcm-ui-countdown").each(function(){function a(t){return t>9?t:"0"+t}var e=t(this),n=parseInt(e.data("time")),o=Math.floor(n/864e5),c=Math.floor(n/36e5),i=Math.floor(n/6e4),r=Math.floor(n/1e3),s=o,u=c-24*o,l=i-60*c,d=r-60*i,m="";m+=0>=s?"":s+" days ",m+=a(u)+":",m+=a(l)+":",m+=a(d),e.html(m),0==(u|l|d)&&e.removeClass("wpxcm-ui-countdown"),e.data("time",n-1e3)})},1e3),t(document).on("click",".wpxcm-button-execute",function(a){a.preventDefault();var e=t(this);e.attr("disabled","disabled").html(e.data("label_execute")),t.post(ajaxurl,{action:"wpxcm_action_execute",hook_name:e.data("hook_name"),signature:e.data("signature")},function(t){t.success?e.parents("tr").replaceWith(t.data.row):alert(t.data.description),e.removeAttr("disabled").html(e.data("label"))})}),t(document).on("click",".wpxcm-button-disable",function(a){var e=t(this);t.post(ajaxurl,{action:"wpxcm_action_disable",hook_name:e.data("hook_name")},function(t){t.success?e.parents("tr").replaceWith(t.data.row):alert(t.data.description)})}),t(document).on("click",".wpxcm-button-enable",function(a){var e=t(this);t.post(ajaxurl,{action:"wpxcm_action_enable",hook_name:e.data("hook_name")},function(t){t.success?e.parents("tr").replaceWith(t.data.row):alert(t.data.description)})})}()}(jQuery); 
     1!function(t){"use strict";window.WPXCronManager=function(){setInterval(function(){t(".wpxcm-ui-countdown").each(function(){function a(t){return t>9?t:"0"+t}var e=t(this),n=parseInt(e.data("time")),o=0>n?-1:1,c=Math.floor(n/(864e5*o)),i=Math.floor(n/(36e5*o)),r=Math.floor(n/(6e4*o)),s=Math.floor(n/1e3*o),d=c,u=i-24*c,l=r-60*i,p=s-60*r,m="";m+=0>=d?"":d+" days ",m+=a(u)+":",m+=a(l)+":",m+=a(p),o>0?e.html(e.data("prepost")+" "+m):e.html(m+" "+e.data("prepost")),(0===(u|l|p)||0>o)&&e.addClass("wpxcm-ui-countdown-red"),e.data("time",n-1e3)})},1e3),t(document).on("click",".wpxcm-button-execute",function(a){a.preventDefault();var e=t(this);e.attr("disabled","disabled").html(e.data("label_execute")),t.post(ajaxurl,{action:"wpxcm_action_execute",hook_name:e.data("hook_name"),signature:e.data("signature")},function(t){t.success?e.parents("tr").replaceWith(t.data.row):alert(t.data.description),e.removeAttr("disabled").html(e.data("label"))})}),t(document).on("click",".wpxcm-button-disable",function(a){var e=t(this);t.post(ajaxurl,{action:"wpxcm_action_disable",hook_name:e.data("hook_name")},function(t){t.success?e.parents("tr").replaceWith(t.data.row):alert(t.data.description)})}),t(document).on("click",".wpxcm-button-enable",function(a){var e=t(this);t.post(ajaxurl,{action:"wpxcm_action_enable",hook_name:e.data("hook_name")},function(t){t.success?e.parents("tr").replaceWith(t.data.row):alert(t.data.description)})})}()}(jQuery); 
  • wpx-cron-manager-light/trunk/readme.txt

    r1587524 r1593802  
    55Requires at least: 4.6.1 
    66Tested up to: 4.7.2 
    7 Stable tag: 2.3.1 
     7Stable tag: 2.3.2 
    88License: GPLv2 or later 
    99License URI: http://www.gnu.org/licenses/gpl-2.0.html 
     
    4242== Changelog == 
    4343 
     44= 2.3.2 = 
     45 
     46* add reverse count down for late (thanks to [@cantuaria](https://wordpress.org/support/users/cantuaria/ "@cantuaria") ) 
     47 
    4448= 2.3.0 = 
    4549 
  • wpx-cron-manager-light/trunk/vendor/autoload.php

    r1587524 r1593802  
    55require_once __DIR__ . '/composer' . '/autoload_real.php'; 
    66 
    7 return ComposerAutoloaderInit02071b6167aeb8abbeb2b360b1169bf5::getLoader(); 
     7return ComposerAutoloaderInit0905795bef12c3388ffed4ee9b92c9ec::getLoader(); 
  • wpx-cron-manager-light/trunk/vendor/composer/autoload_classmap.php

    r1540785 r1593802  
    1818    'WPXCronManagerLight\\WPBones\\Contracts\\Foundation\\Plugin' => $vendorDir . '/wpbones/wpbones/src/Contracts/Foundation/Plugin.php', 
    1919    'WPXCronManagerLight\\WPBones\\Database\\Migrations\\Migration' => $vendorDir . '/wpbones/wpbones/src/Database/Migrations/Migration.php', 
     20    'WPXCronManagerLight\\WPBones\\Database\\Seeder' => $vendorDir . '/wpbones/wpbones/src/Database/Seeder.php', 
    2021    'WPXCronManagerLight\\WPBones\\Database\\WordPressOption' => $vendorDir . '/wpbones/wpbones/src/Database/WordPressOption.php', 
    2122    'WPXCronManagerLight\\WPBones\\Foundation\\Console\\Kernel' => $vendorDir . '/wpbones/wpbones/src/Foundation/Console/Kernel.php', 
  • wpx-cron-manager-light/trunk/vendor/composer/autoload_real.php

    r1587524 r1593802  
    33// autoload_real.php @generated by Composer 
    44 
    5 class ComposerAutoloaderInit02071b6167aeb8abbeb2b360b1169bf5 
     5class ComposerAutoloaderInit0905795bef12c3388ffed4ee9b92c9ec 
    66{ 
    77    private static $loader; 
     
    2020        } 
    2121 
    22         spl_autoload_register(array('ComposerAutoloaderInit02071b6167aeb8abbeb2b360b1169bf5', 'loadClassLoader'), true, true); 
     22        spl_autoload_register(array('ComposerAutoloaderInit0905795bef12c3388ffed4ee9b92c9ec', 'loadClassLoader'), true, true); 
    2323        self::$loader = $loader = new \Composer\Autoload\ClassLoader(); 
    24         spl_autoload_unregister(array('ComposerAutoloaderInit02071b6167aeb8abbeb2b360b1169bf5', 'loadClassLoader')); 
     24        spl_autoload_unregister(array('ComposerAutoloaderInit0905795bef12c3388ffed4ee9b92c9ec', 'loadClassLoader')); 
    2525 
    2626        $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION'); 
     
    2828            require_once __DIR__ . '/autoload_static.php'; 
    2929 
    30             call_user_func(\Composer\Autoload\ComposerStaticInit02071b6167aeb8abbeb2b360b1169bf5::getInitializer($loader)); 
     30            call_user_func(\Composer\Autoload\ComposerStaticInit0905795bef12c3388ffed4ee9b92c9ec::getInitializer($loader)); 
    3131        } else { 
    3232            $map = require __DIR__ . '/autoload_namespaces.php'; 
     
    4949 
    5050        if ($useStaticLoader) { 
    51             $includeFiles = Composer\Autoload\ComposerStaticInit02071b6167aeb8abbeb2b360b1169bf5::$files; 
     51            $includeFiles = Composer\Autoload\ComposerStaticInit0905795bef12c3388ffed4ee9b92c9ec::$files; 
    5252        } else { 
    5353            $includeFiles = require __DIR__ . '/autoload_files.php'; 
    5454        } 
    5555        foreach ($includeFiles as $fileIdentifier => $file) { 
    56             composerRequire02071b6167aeb8abbeb2b360b1169bf5($fileIdentifier, $file); 
     56            composerRequire0905795bef12c3388ffed4ee9b92c9ec($fileIdentifier, $file); 
    5757        } 
    5858 
     
    6161} 
    6262 
    63 function composerRequire02071b6167aeb8abbeb2b360b1169bf5($fileIdentifier, $file) 
     63function composerRequire0905795bef12c3388ffed4ee9b92c9ec($fileIdentifier, $file) 
    6464{ 
    6565    if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { 
  • wpx-cron-manager-light/trunk/vendor/composer/autoload_static.php

    r1587524 r1593802  
    55namespace Composer\Autoload; 
    66 
    7 class ComposerStaticInit02071b6167aeb8abbeb2b360b1169bf5 
     7class ComposerStaticInit0905795bef12c3388ffed4ee9b92c9ec 
    88{ 
    99    public static $files = array ( 
     
    4747        'WPXCronManagerLight\\WPBones\\Contracts\\Foundation\\Plugin' => __DIR__ . '/..' . '/wpbones/wpbones/src/Contracts/Foundation/Plugin.php', 
    4848        'WPXCronManagerLight\\WPBones\\Database\\Migrations\\Migration' => __DIR__ . '/..' . '/wpbones/wpbones/src/Database/Migrations/Migration.php', 
     49        'WPXCronManagerLight\\WPBones\\Database\\Seeder' => __DIR__ . '/..' . '/wpbones/wpbones/src/Database/Seeder.php', 
    4950        'WPXCronManagerLight\\WPBones\\Database\\WordPressOption' => __DIR__ . '/..' . '/wpbones/wpbones/src/Database/WordPressOption.php', 
    5051        'WPXCronManagerLight\\WPBones\\Foundation\\Console\\Kernel' => __DIR__ . '/..' . '/wpbones/wpbones/src/Foundation/Console/Kernel.php', 
     
    8081    { 
    8182        return \Closure::bind(function () use ($loader) { 
    82             $loader->prefixLengthsPsr4 = ComposerStaticInit02071b6167aeb8abbeb2b360b1169bf5::$prefixLengthsPsr4; 
    83             $loader->prefixDirsPsr4 = ComposerStaticInit02071b6167aeb8abbeb2b360b1169bf5::$prefixDirsPsr4; 
    84             $loader->classMap = ComposerStaticInit02071b6167aeb8abbeb2b360b1169bf5::$classMap; 
     83            $loader->prefixLengthsPsr4 = ComposerStaticInit0905795bef12c3388ffed4ee9b92c9ec::$prefixLengthsPsr4; 
     84            $loader->prefixDirsPsr4 = ComposerStaticInit0905795bef12c3388ffed4ee9b92c9ec::$prefixDirsPsr4; 
     85            $loader->classMap = ComposerStaticInit0905795bef12c3388ffed4ee9b92c9ec::$classMap; 
    8586 
    8687        }, null, ClassLoader::class); 
  • wpx-cron-manager-light/trunk/vendor/composer/installed.json

    r1587524 r1593802  
    22    { 
    33        "name": "wpbones/wpbones", 
    4         "version": "0.8.32", 
    5         "version_normalized": "0.8.32.0", 
     4        "version": "0.8.33", 
     5        "version_normalized": "0.8.33.0", 
    66        "source": { 
    77            "type": "git", 
    88            "url": "https://github.com/wpbones/WPBones.git", 
    9             "reference": "b6b45f0aa7ff20da31978f8f28000d0122f7e07e" 
     9            "reference": "6fd769ff19d15a7a97842d7097da48998382af1d" 
    1010        }, 
    1111        "dist": { 
    1212            "type": "zip", 
    13             "url": "https://api.github.com/repos/wpbones/WPBones/zipball/b6b45f0aa7ff20da31978f8f28000d0122f7e07e", 
    14             "reference": "b6b45f0aa7ff20da31978f8f28000d0122f7e07e", 
     13            "url": "https://api.github.com/repos/wpbones/WPBones/zipball/6fd769ff19d15a7a97842d7097da48998382af1d", 
     14            "reference": "6fd769ff19d15a7a97842d7097da48998382af1d", 
    1515            "shasum": "" 
    1616        }, 
     
    1818            "php": ">=5.5.9" 
    1919        }, 
    20         "time": "2017-01-31 16:35:19", 
     20        "time": "2017-02-03 16:44:08", 
    2121        "type": "library", 
    2222        "installation-source": "dist", 
  • wpx-cron-manager-light/trunk/vendor/wpbones/wpbones/composer.json

    r1587524 r1593802  
    11{ 
    22  "name": "wpbones/wpbones", 
    3   "version": "0.8.32", 
     3  "version": "0.8.33", 
    44  "homepage": "https://github.com/wpbones/wpbones", 
    55  "type": "library", 
  • wpx-cron-manager-light/trunk/vendor/wpbones/wpbones/src/Foundation/Plugin.php

    r1540785 r1593802  
    370370      } 
    371371    } 
     372 
     373    // seeders 
     374    foreach ( glob( $this->basePath . '/database/seeds/*.php' ) as $filename ) { 
     375      include $filename; 
     376      foreach ( $this->getFileClasses( $filename ) as $className ) { 
     377        $instance = new $className; 
     378      } 
     379    } 
    372380  } 
    373381 
Note: See TracChangeset for help on using the changeset viewer.