public static function execute()
 {
     $OSCOM_Cache = Registry::get('Cache');
     $result = array('entries' => array());
     if ($OSCOM_Cache->read('coreupdate-availablepackages', 360)) {
         $versions = $OSCOM_Cache->getCache();
     } else {
         $versions = HttpRequest::getResponse(array('url' => 'http://www.oscommerce.com/version/online_merchant/3', 'method' => 'get'));
         $OSCOM_Cache->write($versions);
     }
     $versions_array = explode("\n", $versions);
     $counter = 0;
     foreach ($versions_array as $v) {
         $v_info = explode('|', $v);
         if (version_compare(OSCOM::getVersion(), $v_info[0], '<')) {
             $result['entries'][] = array('key' => $counter, 'version' => $v_info[0], 'date' => DateTime::getShort(DateTime::fromUnixTimestamp(DateTime::getTimestamp($v_info[1], 'Ymd'))), 'announcement' => $v_info[2], 'update_package' => isset($v_info[3]) ? $v_info[3] : null);
             $counter++;
         }
     }
     usort($result['entries'], function ($a, $b) {
         return version_compare($a['version'], $b['version'], '>');
     });
     $result['total'] = count($result['entries']);
     return $result;
 }
 public static function execute($datetime)
 {
     $errors = ErrorHandler::getAll(100);
     $from_timestamp = DateTime::getTimestamp($datetime, 'Y-m-d H:i:s');
     $result = 0;
     foreach ($errors as $error) {
         if ($error['timestamp'] > $from_timestamp) {
             $result++;
         }
     }
     return $result;
 }
 public static function execute($log)
 {
     $log = basename($log);
     if (substr($log, 0, -4) != '.txt') {
         $log .= '.txt';
     }
     $result = array('entries' => array());
     foreach (file(OSCOM::BASE_DIRECTORY . 'Work/Logs/' . $log) as $l) {
         if (preg_match('/^\\[([0-9]{2})-([A-Za-z]{3})-([0-9]{4}) ([0-9]{2}):([0-5][0-9]):([0-5][0-9])\\] (.*)$/', $l)) {
             $result['entries'][] = array('date' => DateTime::getShort(DateTime::fromUnixTimestamp(DateTime::getTimestamp(substr($l, 1, 20), 'd-M-Y H:i:s')), true), 'message' => substr($l, 23));
         }
     }
     $result['total'] = count($result['entries']);
     return $result;
 }
echo OSCOM::getDef('field_last_name');
?>
</label><?php 
echo HTML::inputField('lastname', $new_customer ? null : $OSCOM_ObjectInfo->get('customers_lastname'));
?>
</p>

<?php 
if (ACCOUNT_DATE_OF_BIRTH == '1') {
    ?>

      <p><label for="dob"><?php 
    echo OSCOM::getDef('field_date_of_birth');
    ?>
</label><?php 
    echo HTML::inputField('dob', $new_customer ? null : DateTime::fromUnixTimestamp(DateTime::getTimestamp($OSCOM_ObjectInfo->get('customers_dob')), 'Y-m-d'));
    ?>
</p>

      <script>$('#dob').datepicker({dateFormat: 'yy-mm-dd', changeMonth: true, changeYear: true, yearRange: '-100:+0'});</script>

<?php 
}
?>

      <p><label for="email_address"><?php 
echo OSCOM::getDef('field_email_address');
?>
</label><?php 
echo HTML::inputField('email_address', $new_customer ? null : $OSCOM_ObjectInfo->get('customers_email_address'));
?>
 public static function import($filename)
 {
     if (!is_resource(self::$_dbh) && !self::connect()) {
         return false;
     }
     $error_log = file($filename);
     unlink($filename);
     foreach ($error_log as $error) {
         $error = Language::toUTF8($error);
         if (preg_match('/^\\[([0-9]{2})-([A-Za-z]{3})-([0-9]{4}) ([0-9]{2}):([0-5][0-9]):([0-5][0-9])\\] (.*)$/', $error)) {
             $timestamp = DateTime::getTimestamp(substr($error, 1, 20), 'd-M-Y H:i:s');
             $message = substr($error, 23);
             $Qinsert = self::$_dbh->prepare('insert into error_log (timestamp, message) values (:timestamp, :message)');
             $Qinsert->bindInt(':timestamp', $timestamp);
             $Qinsert->bindValue(':message', $message);
             $Qinsert->execute();
         }
     }
 }