Compare commits

...

49 Commits

Author SHA1 Message Date
roshelrao
945724ae3c invoice changes 2021-07-19 13:46:12 +05:30
ddave
72c8b4774c Adding the action manager for the extension 2021-07-16 08:17:30 +02:00
roshelrao
9a1ee350c3 Invoice PDF builder 2021-07-14 13:10:39 +05:30
ddave
7228bb2922 Pdf builder for invoices 2021-07-09 11:24:04 +02:00
roshelrao
5416bdb840 added missing fields 2021-07-08 15:03:32 +05:30
roshelrao
1332448d72 invoice module 2021-07-01 15:51:04 +05:30
Thilina
9f47df5613 Ability to compile extensions 2021-06-29 11:37:46 +02:00
Thilina
731073a133 Merge tag 'v30.0.0.OS' into develop
v30.0.0.OS
2021-06-28 11:48:07 +02:00
Thilina
f44b9ec8dd Merge branch 'release/v30.0.0.OS' 2021-06-28 11:48:05 +02:00
Thilina
ad4fe1cc29 Update release notes 2021-06-28 11:46:49 +02:00
Thilina
8fbf8f2152 Update S3 settings 2021-06-28 10:58:39 +02:00
Thilina
74309fc922 compiled assets and connection module 2021-06-28 08:14:48 +02:00
Thilina
a042ee67ec Add missing classes 2021-06-28 08:14:01 +02:00
Thilina
41ebd61c8e Updates to package json 2021-06-27 18:13:40 +02:00
Thilina
111781b327 Improve naming in custom fields 2021-06-27 18:12:26 +02:00
Thilina
74e448bf5d Add clientBaseUrl and download PDF 2021-06-27 18:12:01 +02:00
Thilina
66b3f006e6 Improve naming in custom fields 2021-06-27 18:07:18 +02:00
Thilina
40df433580 Show viewable files based on extension 2021-06-27 18:06:24 +02:00
Thilina
499c52516e Add connection module to gulp 2021-06-27 18:05:05 +02:00
Thilina
e94a365d71 Just empty spaces 2021-06-27 18:03:57 +02:00
Thilina
e88f5f8a1a Deny access to data directory in development environment 2021-06-27 18:03:23 +02:00
Thilina
c0ce41ed2f Fix typo 2021-06-27 18:01:09 +02:00
Thilina
944d5f1f88 Fix code style issue 2021-06-27 17:49:24 +02:00
Thilina
47871d9551 Add connection module 2021-06-27 17:49:05 +02:00
Thilina
46e3bf439e Fix type in setting 2021-06-27 17:45:45 +02:00
Thilina
b858a62d42 Module builder improvements 2021-06-27 17:45:09 +02:00
Thilina
6da42b4842 Fix issue with non UTF employee names and allow secure file downloads 2021-06-27 17:44:24 +02:00
Thilina
b7b128f9a7 Getting sysdata and checking subordinates 2021-06-27 17:42:39 +02:00
Thilina
7a9f7ec36e Fix usort warning 2021-06-27 17:41:27 +02:00
Thilina
a7218a6666 Update migration list 2021-06-27 17:40:18 +02:00
Thilina
87dc692faa Migration for adding system data table 2021-06-27 17:40:05 +02:00
Thilina
042180b805 Migration for setting AWS region via settings 2021-06-27 17:39:45 +02:00
Thilina
49a22ebdf0 Add migration for S3 settings 2021-06-27 17:39:22 +02:00
Thilina
f1d4b3915e Fix SAML user redirection issue 2021-06-27 17:36:31 +02:00
Thilina
b4bec17934 Update lib files 2021-06-27 17:35:35 +02:00
Thilina
24db01729d Define client base url for each module adapter 2021-06-27 17:10:42 +02:00
Thilina
b4fc0db4de Get AWS region from settings 2021-06-27 17:09:25 +02:00
Thilina
c00fb95319 Download files securely 2021-06-27 17:09:00 +02:00
Thilina
142395591e Generated PDF download action and the data file download wrapper 2021-06-27 17:08:16 +02:00
Thilina
235924f80b Remove unwanted log 2021-06-27 17:02:53 +02:00
Thilina
8f8034556a Fix showing leave tab when its not needed 2021-06-27 17:01:55 +02:00
Thilina
f12a467099 Deny calls to icehrm/core (for nginx need to set location rules) 2021-06-27 16:59:13 +02:00
Thilina
91c2c32c0c File upload fix from react components 2021-06-27 16:58:18 +02:00
Thilina
aacff040bb During the installation set directory permission of data directory to 755 2021-06-27 16:56:04 +02:00
Thilina
e889b856bc Fix extensions loading issue 2021-06-27 16:51:53 +02:00
Thilina
548df6f408 Add eslintrc 2021-06-27 16:50:34 +02:00
Thilina
2ca9eaa083 Soft fix to prevent directory listing 2021-06-27 16:48:38 +02:00
Alan Cell
3eaf290a58 Fix employee filed not loading issue 2021-05-07 08:16:06 +02:00
Alan Cell
c276009bd8 Update release notes 2021-05-07 08:11:21 +02:00
150 changed files with 430496 additions and 37830 deletions

5
.eslintrc Normal file
View File

@@ -0,0 +1,5 @@
// Use this file as a starting point for your project's .eslintrc.
// Copy this file, and add rule overrides as needed.
{
"extends": "airbnb"
}

2
.gitignore vendored
View File

@@ -13,6 +13,8 @@ keys.dev.pub
/app/icehrm.key /app/icehrm.key
/app/data/*.* /app/data/*.*
/app/data/keys/* /app/data/keys/*
!/app/data/index.php
!/app/data/.htaccess
icehrm.key icehrm.key
cache.properties cache.properties
node_modules/* node_modules/*

49
.vscode/launch.json vendored Normal file
View File

@@ -0,0 +1,49 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9003
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 0,
"runtimeArgs": [
"-dxdebug.start_with_request=yes"
],
"env": {
"XDEBUG_MODE": "debug,develop",
"XDEBUG_CONFIG": "client_port=${port}"
}
},
{
"name": "Launch Built-in web server",
"type": "php",
"request": "launch",
"runtimeArgs": [
"-dxdebug.mode=debug",
"-dxdebug.start_with_request=yes",
"-S",
"localhost:0"
],
"program": "",
"cwd": "${workspaceRoot}",
"port": 9003,
"serverReadyAction": {
"pattern": "Development Server \\(http://localhost:([0-9]+)\\) started",
"uriFormat": "http://localhost:%s",
"action": "openExternally"
}
}
]
}

2
app/data/.htaccess Normal file
View File

@@ -0,0 +1,2 @@
order deny,allow
deny from all

1
app/data/index.php Normal file
View File

@@ -0,0 +1 @@
<?php

3
app/fileupload-new.php Normal file
View File

@@ -0,0 +1,3 @@
<?php
include ('config.php');
include (APP_BASE_PATH.'fileupload-new.php');

View File

@@ -5,7 +5,7 @@ if(!file_exists('config.php')){
} }
include ('config.php'); include ('config.php');
if(!isset($_REQUEST['g']) || !isset($_REQUEST['n'])){ if(!isset($_REQUEST['g']) || !isset($_REQUEST['n'])){
header("Location:".CLIENT_BASE_URL."login.php"); header("Location:".CLIENT_BASE_URL."login.php");
exit(); exit();
} }
$group = $_REQUEST['g']; $group = $_REQUEST['g'];
@@ -14,7 +14,7 @@ $name= $_REQUEST['n'];
$groups = array('admin','modules'); $groups = array('admin','modules');
if($group == 'admin' || $group == 'modules'){ if($group == 'admin' || $group == 'modules'){
$name = str_replace("..","",$name); $name = str_replace("..","",$name);
$name = str_replace("/","",$name); $name = str_replace("/","",$name);
include APP_BASE_PATH.'/'.$group.'/'.$name.'/index.php'; include APP_BASE_PATH.'/'.$group.'/'.$name.'/index.php';
}else if ($group == 'extension'){ }else if ($group == 'extension'){
@@ -23,7 +23,7 @@ if($group == 'admin' || $group == 'modules'){
$moduleName = $name; $moduleName = $name;
$moduleGroup = 'extensions'; $moduleGroup = 'extensions';
$extensionIndex = APP_BASE_PATH.'/../extensions/'.$name.'/web/index.php'; $extensionIndex = APP_BASE_PATH.'/../extensions/'.$name.'/web/index.php';
include $extensionIndex; include APP_BASE_PATH.'extensions/wrapper.php';
}else{ }else{
exit(); exit();
} }

View File

@@ -19,7 +19,10 @@ $isConfigFileWriteable = is_writable(CLIENT_APP_PATH."config.php");
error_log("Config writable ".$isConfigFileWriteable); error_log("Config writable ".$isConfigFileWriteable);
error_log("Config exists ".file_exists(CLIENT_APP_PATH."config.php")); error_log("Config exists ".file_exists(CLIENT_APP_PATH."config.php"));
if(!$isConfigFileWriteable){ if(!$isConfigFileWriteable){
$errorMap[] = array("important","Configuration file [".CLIENT_APP_PATH."config.php] is not writable","Make this file writable",array("sudo touch ".CLIENT_APP_PATH."config.php","sudo chmod 777 ".CLIENT_APP_PATH."config.php")); $errorMap[] = array("important","Configuration file [".CLIENT_APP_PATH."config.php] is not writable","Make this file writable",array(
"sudo touch ".CLIENT_APP_PATH."config.php","sudo chmod 755 ".CLIENT_APP_PATH."config.php",
"sudo chown -R ".shell_exec('whoami')." ".CLIENT_APP_PATH,
));
} }
$isConfigSampleFileExists = file_exists(CLIENT_APP_PATH."config.sample.php"); $isConfigSampleFileExists = file_exists(CLIENT_APP_PATH."config.sample.php");
@@ -48,7 +51,7 @@ if(!$isDataFolderExists){
unlink(CLIENT_APP_PATH."data/test.txt"); unlink(CLIENT_APP_PATH."data/test.txt");
} }
if(!$isDataFolderWritable){ if(!$isDataFolderWritable){
$errorMap[] = array("important","Data folder is not writable","Provide wirte permission to the web server user to ".CLIENT_APP_PATH."data",array("sudo chmod 777 ".CLIENT_APP_PATH."data")); $errorMap[] = array("important","Data folder is not writable","Provide wirte permission to the web server user to ".CLIENT_APP_PATH."data",array("sudo chmod 755 ".CLIENT_APP_PATH."data"));
} }
} }

2
core/.htaccess Normal file
View File

@@ -0,0 +1,2 @@
order deny,allow
deny from all

View File

@@ -0,0 +1,59 @@
<?php
use Classes\StatsHelper;
use Connection\Common\ConnectionService;
$moduleName = 'connection';
$moduleGroup = 'admin';
define('MODULE_PATH',dirname(__FILE__));
include APP_BASE_PATH.'header.php';
include APP_BASE_PATH.'modulejslibs.inc.php';
$isIceHrmPro = false;
if (class_exists('\\Classes\\ProVersion')) {
$data = \Classes\ProVersion::$data;
$isIceHrmPro = true;
$data = json_decode($data, true);
}
$employeeCount = StatsHelper::getEmployeeCount();
$userCount = StatsHelper::getUserCount();
$connectionService = new ConnectionService();
?><div class="span9">
<ul class="nav nav-tabs" id="modTab" style="margin-bottom:0px;margin-left:5px;border-bottom: none;">
<li class="active"><a id="tabConnection" href="#tabConnection"><?=t('Connection')?></a></li>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="tabConnection">
<div class="reviewBlock" data-content="List">
<div id="connectionData"></div>
</div>
</div>
</div>
</div>
<div id="dataGroup"></div>
<?php
$moduleData = [
'user_level' => $user->user_level,
'components' => [
'employeeCount' => [
'isIceHrmPro' => $isIceHrmPro,
'count' => $employeeCount,
'allowed' => $isIceHrmPro ? intval($data['employees']) : 'N/A',
'validUntil' => $data['licenseActivated'],
'licenseId' => $data['key'],
],
'systemData' => [
'data' => $connectionService->getSystemReport(),
'issues' => $connectionService->getSystemErrors(),
],
]
];
?>
<script>
initAdminConnection(<?=json_encode($moduleData)?>);
</script>
<?php include APP_BASE_PATH.'footer.php';?>

View File

@@ -0,0 +1,12 @@
{
"label": "Ice Connect",
"menu": "System",
"order": "9",
"icon": "fa-wifi",
"user_levels": [
"Admin"
],
"permissions": [],
"model_namespace": "\\Connection\\Common\\Model",
"manager": "\\Connection\\Admin\\Api\\ConnectionAdminManager"
}

View File

@@ -19,6 +19,9 @@ include APP_BASE_PATH.'modulejslibs.inc.php';
<div class="tab-pane active" id="tabPageEmployeeFieldName"> <div class="tab-pane active" id="tabPageEmployeeFieldName">
<div id="EmployeeFieldName" class="reviewBlock" data-content="List" style="padding-left:5px;"> <div id="EmployeeFieldName" class="reviewBlock" data-content="List" style="padding-left:5px;">
</div>
<div id="EmployeeFieldNameForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
</div> </div>
</div> </div>
</div> </div>

View File

@@ -6,6 +6,7 @@
use Classes\ModuleBuilder\ModuleBuilder; use Classes\ModuleBuilder\ModuleBuilder;
use Classes\ModuleBuilder\ModuleTab; use Classes\ModuleBuilder\ModuleTab;
use Classes\UIManager;
$moduleName = 'settings'; $moduleName = 'settings';
$moduleGroup = 'admin'; $moduleGroup = 'admin';
@@ -32,7 +33,7 @@ if ( $notCloud ) {
'EmailSetting', 'Setting', 'Email', 'SettingAdapter', '{"category":"Email"}', 'name', false, $options1 'EmailSetting', 'Setting', 'Email', 'SettingAdapter', '{"category":"Email"}', 'name', false, $options1
)); ));
} }
if(!defined('LEAVE_ENABLED') || LDAP_ENABLED == true) { if(defined('LEAVE_ENABLED') && LEAVE_ENABLED == true) {
$moduleBuilder->addModuleOrGroup(new ModuleTab( $moduleBuilder->addModuleOrGroup(new ModuleTab(
'LeaveSetting', 'Setting', 'Leave', 'SettingAdapter', '{"category":"Leave"}', 'name', false, $options1 'LeaveSetting', 'Setting', 'Leave', 'SettingAdapter', '{"category":"Leave"}', 'name', false, $options1
)); ));
@@ -58,7 +59,7 @@ if(!defined('SAML_ENABLED') || SAML_ENABLED == true){
$moduleBuilder->addModuleOrGroup(new ModuleTab( $moduleBuilder->addModuleOrGroup(new ModuleTab(
'OtherSetting','Setting','Other','SettingAdapter','{"category":["Projects","Recruitment","Notifications","Expense","Travel","Api","Overtime"]}','name',false,$options1 'OtherSetting','Setting','Other','SettingAdapter','{"category":["Projects","Recruitment","Notifications","Expense","Travel","Api","Overtime"]}','name',false,$options1
)); ));
echo \Classes\UIManager::getInstance()->renderModule($moduleBuilder); echo UIManager::getInstance()->renderModule($moduleBuilder);
?> ?>
</div> </div>
<script> <script>

View File

@@ -6,8 +6,6 @@ include("server.includes.inc.php");
if(\Classes\SettingsManager::getInstance()->getSetting('Api: REST Api Enabled') == '1') { if(\Classes\SettingsManager::getInstance()->getSetting('Api: REST Api Enabled') == '1') {
\Utils\LogManager::getInstance()->info("Request: " . $_REQUEST);
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') { if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
http_response_code(200); http_response_code(200);
exit(); exit();
@@ -38,4 +36,4 @@ if(\Classes\SettingsManager::getInstance()->getSetting('Api: REST Api Enabled')
}else{ }else{
echo "REST Api is not enabled. Please set 'Api: REST Api Enabled' setting to true"; echo "REST Api is not enabled. Please set 'Api: REST Api Enabled' setting to true";
} }

View File

@@ -13,10 +13,10 @@ if(!defined('HOME_LINK_OTHERS')){
} }
//Version //Version
define('VERSION', '29.0.0.OS'); define('VERSION', '30.0.0.OS');
define('CACHE_VALUE', '29.0.0.OS.2020-04021509'); define('CACHE_VALUE', '30.0.0.OS.2021-06261009');
define('VERSION_NUMBER', '290000'); define('VERSION_NUMBER', '300000');
define('VERSION_DATE', '02/04/2021'); define('VERSION_DATE', '26/06/2021');
if(!defined('CONTACT_EMAIL')){define('CONTACT_EMAIL','icehrm@gamonoid.com');} if(!defined('CONTACT_EMAIL')){define('CONTACT_EMAIL','icehrm@gamonoid.com');}
if(!defined('KEY_PREFIX')){define('KEY_PREFIX','IceHrm');} if(!defined('KEY_PREFIX')){define('KEY_PREFIX','IceHrm');}

View File

@@ -0,0 +1,31 @@
<?php
use Classes\ExtensionManager;
use Utils\LogManager;
if (!isset($extensionIndex)) {
exit();
}
define('MODULE_PATH',APP_BASE_PATH.'extensions/'.$moduleName);
include APP_BASE_PATH.'header.php';
$extensionManager = new ExtensionManager();
$meta = $extensionManager->getExtensionMetaData($moduleName);
if (!$meta) {
LogManager::getInstance()->error("Extension metadata.json not found for $moduleName");
exit();
}
if ($meta->headless) {
LogManager::getInstance()->error("Extension running in headless mode for $moduleName");
exit();
}
?>
<script type="text/javascript" src="<?=BASE_URL.'dist/vendorReact.js'?>?v=<?=$jsVersion?>"></script>
<script type="text/javascript" src="<?=BASE_URL.'dist/vendorAntd.js'?>?v=<?=$jsVersion?>"></script>
<script type="text/javascript" src="<?=BASE_URL.'dist/vendorAntdIcons.js'?>?v=<?=$jsVersion?>"></script>
<script type="text/javascript" src="<?=BASE_URL.'dist/vendorAntv.js'?>?v=<?=$jsVersion?>"></script>
<script type="text/javascript" src="<?=BASE_URL.'dist/vendorOther.js'?>?v=<?=$jsVersion?>"></script>
<script type="text/javascript" src="<?=EXTENSIONS_URL.$moduleName.'/dist/'.$moduleName.'.js'?>?v=<?=$jsVersion?>"></script>
<?php
include $extensionIndex;
include APP_BASE_PATH.'footer.php';
?>

View File

@@ -139,7 +139,7 @@ $result = $uploader->handleUpload(CLIENT_BASE_PATH.'data/',$saveFileName);
$uploadFilesToS3 = \Classes\SettingsManager::getInstance()->getSetting("Files: Upload Files to S3"); $uploadFilesToS3 = \Classes\SettingsManager::getInstance()->getSetting("Files: Upload Files to S3");
$uploadFilesToS3Key = \Classes\SettingsManager::getInstance()->getSetting("Files: Amazon S3 Key for File Upload"); $uploadFilesToS3Key = \Classes\SettingsManager::getInstance()->getSetting("Files: Amazon S3 Key for File Upload");
$uploadFilesToS3Secret = \Classes\SettingsManager::getInstance()->getSetting( $uploadFilesToS3Secret = \Classes\SettingsManager::getInstance()->getSetting(
"Files: Amazone S3 Secret for File Upload" "Files: Amazon S3 Secret for File Upload"
); );
$s3Bucket = \Classes\SettingsManager::getInstance()->getSetting("Files: S3 Bucket"); $s3Bucket = \Classes\SettingsManager::getInstance()->getSetting("Files: S3 Bucket");
$s3WebUrl = \Classes\SettingsManager::getInstance()->getSetting("Files: S3 Web Url"); $s3WebUrl = \Classes\SettingsManager::getInstance()->getSetting("Files: S3 Web Url");
@@ -188,7 +188,7 @@ if($result['success'] == 1){
if($uploadedToS3){ if($uploadedToS3){
$result['data'] = $file_url; $result['data'] = $file_url;
}else{ }else{
$result['data'] = CLIENT_BASE_URL.'data/'.$result['filename']; $result['data'] = \Classes\FileService::getInstance()->getLocalSecureUrl($result['filename']);
} }
$result['data'] .= "|".$saveFileName; $result['data'] .= "|".$saveFileName;
$result['data'] .= "|".$file->id; $result['data'] .= "|".$file->id;

View File

@@ -18,6 +18,7 @@
modJsList[prop].setUser(<?=json_encode(\Classes\BaseService::getInstance()->cleanUpUser($user))?>); modJsList[prop].setUser(<?=json_encode(\Classes\BaseService::getInstance()->cleanUpUser($user))?>);
modJsList[prop].initSourceMappings(); modJsList[prop].initSourceMappings();
modJsList[prop].setBaseUrl('<?=BASE_URL?>'); modJsList[prop].setBaseUrl('<?=BASE_URL?>');
modJsList[prop].setClientUrl('<?=CLIENT_BASE_URL?>');
modJsList[prop].setCurrentProfile(<?=json_encode($activeProfile)?>); modJsList[prop].setCurrentProfile(<?=json_encode($activeProfile)?>);
modJsList[prop].setInstanceId('<?=\Classes\BaseService::getInstance()->getInstanceId()?>'); modJsList[prop].setInstanceId('<?=\Classes\BaseService::getInstance()->getInstanceId()?>');
modJsList[prop].setGoogleAnalytics(ga); modJsList[prop].setGoogleAnalytics(ga);
@@ -146,7 +147,9 @@
</script> </script>
<?php include 'popups.php';?> <?php
include 'popups.php';
?>
<script src="<?=BASE_URL?>js/bootstrap-datatable.js"></script> <script src="<?=BASE_URL?>js/bootstrap-datatable.js"></script>
<div id="jt" t="<?=$jwtService->create(3600)?>"></div> <div id="jt" t="<?=$jwtService->create(3600)?>"></div>
</body> </body>

View File

@@ -1,17 +1,17 @@
Contributing to Gettext Contributing to Gettext
======================= =======================
Looking to contribute something to this library? Here's how you can help. Looking to contribute something to this library? Here's how you can help.
## Bugs ## Bugs
A bug is a demonstrable problem that is caused by the code in the repository. Good bug reports are extremely helpful thank you! A bug is a demonstrable problem that is caused by the code in the repository. Good bug reports are extremely helpful thank you!
Please try to be as detailed as possible in your report. Include specific information about the environment version of PHP, version of gettext, etc, and steps required to reproduce the issue. Please try to be as detailed as possible in your report. Include specific information about the environment version of PHP, version of gettext, etc, and steps required to reproduce the issue.
## Pull Requests ## Pull Requests
Good pull requests patches, improvements, new features are a fantastic help. New extractors or generator are welcome. Before create a pull request, please follow these instructions: Good pull requests patches, improvements, new features are a fantastic help. New extractors or generator are welcome. Before create a pull request, please follow these instructions:
* The code must be PSR-2 compliant * The code must be PSR-2 compliant
* Write some tests * Write some tests

View File

@@ -1,45 +1,45 @@
@echo off @echo off
REM This file is part of PHP Mess Detector. REM This file is part of PHP Mess Detector.
REM REM
REM Copyright (c) 2008-2012, Manuel Pichler <mapi@phpmd.org>. REM Copyright (c) 2008-2012, Manuel Pichler <mapi@phpmd.org>.
REM All rights reserved. REM All rights reserved.
REM REM
REM Redistribution and use in source and binary forms, with or without REM Redistribution and use in source and binary forms, with or without
REM modification, are permitted provided that the following conditions REM modification, are permitted provided that the following conditions
REM are met: REM are met:
REM REM
REM * Redistributions of source code must retain the above copyright REM * Redistributions of source code must retain the above copyright
REM notice, this list of conditions and the following disclaimer. REM notice, this list of conditions and the following disclaimer.
REM REM
REM * Redistributions in binary form must reproduce the above copyright REM * Redistributions in binary form must reproduce the above copyright
REM notice, this list of conditions and the following disclaimer in REM notice, this list of conditions and the following disclaimer in
REM the documentation and/or other materials provided with the REM the documentation and/or other materials provided with the
REM distribution. REM distribution.
REM REM
REM * Neither the name of Manuel Pichler nor the names of his REM * Neither the name of Manuel Pichler nor the names of his
REM contributors may be used to endorse or promote products derived REM contributors may be used to endorse or promote products derived
REM from this software without specific prior written permission. REM from this software without specific prior written permission.
REM REM
REM THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS REM THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
REM "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT REM "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
REM LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS REM LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
REM FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REM FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
REM COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, REM COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
REM INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, REM INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
REM BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; REM BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
REM LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER REM LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
REM CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC REM CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
REM LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN REM LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
REM ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE REM ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
REM POSSIBILITY OF SUCH DAMAGE. REM POSSIBILITY OF SUCH DAMAGE.
REM REM
REM $Id$ REM $Id$
REM REM
if "%PHPBIN%" == "" set PHPBIN=@php_bin@ if "%PHPBIN%" == "" set PHPBIN=@php_bin@
if not exist "%PHPBIN%" if "%PHP_PEAR_PHP_BIN%" neq "" goto USE_PEAR_PATH if not exist "%PHPBIN%" if "%PHP_PEAR_PHP_BIN%" neq "" goto USE_PEAR_PATH
GOTO RUN GOTO RUN
:USE_PEAR_PATH :USE_PEAR_PATH
set PHPBIN=%PHP_PEAR_PHP_BIN% set PHPBIN=%PHP_PEAR_PHP_BIN%
:RUN :RUN
"%PHPBIN%" "@bin_dir@\phpmd" %* "%PHPBIN%" "@bin_dir@\phpmd" %*

File diff suppressed because it is too large Load Diff

View File

@@ -1,2 +1,2 @@
+----------------------------------------------------------------------------------+ +----------------------------------------------------------------------------------+
+----------------------------------------------------------------------------------+ +----------------------------------------------------------------------------------+

View File

@@ -1,6 +1,6 @@
 1 / 10 [+++++>------------------------------------------------------] 10.00%  1 / 10 [+++++>------------------------------------------------------] 10.00%
 2 / 10 [+++++++++++>------------------------------------------------] 20.00%  2 / 10 [+++++++++++>------------------------------------------------] 20.00%
 3 / 10 [+++++++++++++++++>------------------------------------------] 30.00%  3 / 10 [+++++++++++++++++>------------------------------------------] 30.00%
 4 / 10 [+++++++++++++++++++++++>------------------------------------] 40.00%  4 / 10 [+++++++++++++++++++++++>------------------------------------] 40.00%
 5 / 10 [+++++++++++++++++++++++++++++>------------------------------] 50.00%  5 / 10 [+++++++++++++++++++++++++++++>------------------------------] 50.00%
10 / 10 [+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>] 100.00% 10 / 10 [+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>] 100.00%

View File

@@ -1,3 +1,3 @@
+-----+ +-----+
| foo | | foo |
+-----+ +-----+

View File

@@ -1,4 +1,4 @@
13 / 42 [+++++++++++++++++++>----------------------------------------] 30.95% 13 / 42 [+++++++++++++++++++>----------------------------------------] 30.95%
26 / 42 [+++++++++++++++++++++++++++++++++++++++>--------------------] 61.90% 26 / 42 [+++++++++++++++++++++++++++++++++++++++>--------------------] 61.90%
39 / 42 [+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>] 92.86% 39 / 42 [+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>] 92.86%
42 / 42 [+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>] 100.00% 42 / 42 [+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>] 100.00%

View File

@@ -1,10 +1,10 @@
 10 / 100 [+++++>----------------------------------------------------] 10.00%  10 / 100 [+++++>----------------------------------------------------] 10.00%
 20 / 100 [+++++++++++>----------------------------------------------] 20.00%  20 / 100 [+++++++++++>----------------------------------------------] 20.00%
 30 / 100 [+++++++++++++++++>----------------------------------------] 30.00%  30 / 100 [+++++++++++++++++>----------------------------------------] 30.00%
 40 / 100 [+++++++++++++++++++++++>----------------------------------] 40.00%  40 / 100 [+++++++++++++++++++++++>----------------------------------] 40.00%
 50 / 100 [++++++++++++++++++++++++++++>-----------------------------] 50.00%  50 / 100 [++++++++++++++++++++++++++++>-----------------------------] 50.00%
 60 / 100 [++++++++++++++++++++++++++++++++++>-----------------------] 60.00%  60 / 100 [++++++++++++++++++++++++++++++++++>-----------------------] 60.00%
 70 / 100 [++++++++++++++++++++++++++++++++++++++++>-----------------] 70.00%  70 / 100 [++++++++++++++++++++++++++++++++++++++++>-----------------] 70.00%
 80 / 100 [++++++++++++++++++++++++++++++++++++++++++++++>-----------] 80.00%  80 / 100 [++++++++++++++++++++++++++++++++++++++++++++++>-----------] 80.00%
 90 / 100 [++++++++++++++++++++++++++++++++++++++++++++++++++++>-----] 90.00%  90 / 100 [++++++++++++++++++++++++++++++++++++++++++++++++++++>-----] 90.00%
100 / 100 [+++++++++++++++++++++++++++++++++++++++++++++++++++++++++>] 100.00% 100 / 100 [+++++++++++++++++++++++++++++++++++++++++++++++++++++++++>] 100.00%

View File

@@ -1,40 +1,40 @@
 2.50 / 100.00 [+>--------------------------------------------------] 2.50%  2.50 / 100.00 [+>--------------------------------------------------] 2.50%
 5.00 / 100.00 [++>-------------------------------------------------] 5.00%  5.00 / 100.00 [++>-------------------------------------------------] 5.00%
 7.50 / 100.00 [+++>------------------------------------------------] 7.50%  7.50 / 100.00 [+++>------------------------------------------------] 7.50%
 10.00 / 100.00 [+++++>----------------------------------------------] 10.00%  10.00 / 100.00 [+++++>----------------------------------------------] 10.00%
 12.50 / 100.00 [++++++>---------------------------------------------] 12.50%  12.50 / 100.00 [++++++>---------------------------------------------] 12.50%
 15.00 / 100.00 [+++++++>--------------------------------------------] 15.00%  15.00 / 100.00 [+++++++>--------------------------------------------] 15.00%
 17.50 / 100.00 [+++++++++>------------------------------------------] 17.50%  17.50 / 100.00 [+++++++++>------------------------------------------] 17.50%
 20.00 / 100.00 [++++++++++>-----------------------------------------] 20.00%  20.00 / 100.00 [++++++++++>-----------------------------------------] 20.00%
 22.50 / 100.00 [+++++++++++>----------------------------------------] 22.50%  22.50 / 100.00 [+++++++++++>----------------------------------------] 22.50%
 25.00 / 100.00 [++++++++++++>---------------------------------------] 25.00%  25.00 / 100.00 [++++++++++++>---------------------------------------] 25.00%
 27.50 / 100.00 [++++++++++++++>-------------------------------------] 27.50%  27.50 / 100.00 [++++++++++++++>-------------------------------------] 27.50%
 30.00 / 100.00 [+++++++++++++++>------------------------------------] 30.00%  30.00 / 100.00 [+++++++++++++++>------------------------------------] 30.00%
 32.50 / 100.00 [++++++++++++++++>-----------------------------------] 32.50%  32.50 / 100.00 [++++++++++++++++>-----------------------------------] 32.50%
 35.00 / 100.00 [++++++++++++++++++>---------------------------------] 35.00%  35.00 / 100.00 [++++++++++++++++++>---------------------------------] 35.00%
 37.50 / 100.00 [+++++++++++++++++++>--------------------------------] 37.50%  37.50 / 100.00 [+++++++++++++++++++>--------------------------------] 37.50%
 40.00 / 100.00 [++++++++++++++++++++>-------------------------------] 40.00%  40.00 / 100.00 [++++++++++++++++++++>-------------------------------] 40.00%
 42.50 / 100.00 [++++++++++++++++++++++>-----------------------------] 42.50%  42.50 / 100.00 [++++++++++++++++++++++>-----------------------------] 42.50%
 45.00 / 100.00 [+++++++++++++++++++++++>----------------------------] 45.00%  45.00 / 100.00 [+++++++++++++++++++++++>----------------------------] 45.00%
 47.50 / 100.00 [++++++++++++++++++++++++>---------------------------] 47.50%  47.50 / 100.00 [++++++++++++++++++++++++>---------------------------] 47.50%
 50.00 / 100.00 [+++++++++++++++++++++++++>--------------------------] 50.00%  50.00 / 100.00 [+++++++++++++++++++++++++>--------------------------] 50.00%
 52.50 / 100.00 [+++++++++++++++++++++++++++>------------------------] 52.50%  52.50 / 100.00 [+++++++++++++++++++++++++++>------------------------] 52.50%
 55.00 / 100.00 [++++++++++++++++++++++++++++>-----------------------] 55.00%  55.00 / 100.00 [++++++++++++++++++++++++++++>-----------------------] 55.00%
 57.50 / 100.00 [+++++++++++++++++++++++++++++>----------------------] 57.50%  57.50 / 100.00 [+++++++++++++++++++++++++++++>----------------------] 57.50%
 60.00 / 100.00 [+++++++++++++++++++++++++++++++>--------------------] 60.00%  60.00 / 100.00 [+++++++++++++++++++++++++++++++>--------------------] 60.00%
 62.50 / 100.00 [++++++++++++++++++++++++++++++++>-------------------] 62.50%  62.50 / 100.00 [++++++++++++++++++++++++++++++++>-------------------] 62.50%
 65.00 / 100.00 [+++++++++++++++++++++++++++++++++>------------------] 65.00%  65.00 / 100.00 [+++++++++++++++++++++++++++++++++>------------------] 65.00%
 67.50 / 100.00 [+++++++++++++++++++++++++++++++++++>----------------] 67.50%  67.50 / 100.00 [+++++++++++++++++++++++++++++++++++>----------------] 67.50%
 70.00 / 100.00 [++++++++++++++++++++++++++++++++++++>---------------] 70.00%  70.00 / 100.00 [++++++++++++++++++++++++++++++++++++>---------------] 70.00%
 72.50 / 100.00 [+++++++++++++++++++++++++++++++++++++>--------------] 72.50%  72.50 / 100.00 [+++++++++++++++++++++++++++++++++++++>--------------] 72.50%
 75.00 / 100.00 [++++++++++++++++++++++++++++++++++++++>-------------] 75.00%  75.00 / 100.00 [++++++++++++++++++++++++++++++++++++++>-------------] 75.00%
 77.50 / 100.00 [++++++++++++++++++++++++++++++++++++++++>-----------] 77.50%  77.50 / 100.00 [++++++++++++++++++++++++++++++++++++++++>-----------] 77.50%
 80.00 / 100.00 [+++++++++++++++++++++++++++++++++++++++++>----------] 80.00%  80.00 / 100.00 [+++++++++++++++++++++++++++++++++++++++++>----------] 80.00%
 82.50 / 100.00 [++++++++++++++++++++++++++++++++++++++++++>---------] 82.50%  82.50 / 100.00 [++++++++++++++++++++++++++++++++++++++++++>---------] 82.50%
 85.00 / 100.00 [++++++++++++++++++++++++++++++++++++++++++++>-------] 85.00%  85.00 / 100.00 [++++++++++++++++++++++++++++++++++++++++++++>-------] 85.00%
 87.50 / 100.00 [+++++++++++++++++++++++++++++++++++++++++++++>------] 87.50%  87.50 / 100.00 [+++++++++++++++++++++++++++++++++++++++++++++>------] 87.50%
 90.00 / 100.00 [++++++++++++++++++++++++++++++++++++++++++++++>-----] 90.00%  90.00 / 100.00 [++++++++++++++++++++++++++++++++++++++++++++++>-----] 90.00%
 92.50 / 100.00 [++++++++++++++++++++++++++++++++++++++++++++++++>---] 92.50%  92.50 / 100.00 [++++++++++++++++++++++++++++++++++++++++++++++++>---] 92.50%
 95.00 / 100.00 [+++++++++++++++++++++++++++++++++++++++++++++++++>--] 95.00%  95.00 / 100.00 [+++++++++++++++++++++++++++++++++++++++++++++++++>--] 95.00%
 97.50 / 100.00 [++++++++++++++++++++++++++++++++++++++++++++++++++>-] 97.50%  97.50 / 100.00 [++++++++++++++++++++++++++++++++++++++++++++++++++>-] 97.50%
100.00 / 100.00 [+++++++++++++++++++++++++++++++++++++++++++++++++++>] 100.00% 100.00 / 100.00 [+++++++++++++++++++++++++++++++++++++++++++++++++++>] 100.00%

View File

@@ -1,40 +1,40 @@
 2.50 / 100.00000000 [+>--------------------------------------------] 2.50%  2.50 / 100.00000000 [+>--------------------------------------------] 2.50%
 5.00 / 100.00000000 [++>-------------------------------------------] 5.00%  5.00 / 100.00000000 [++>-------------------------------------------] 5.00%
 7.50 / 100.00000000 [+++>------------------------------------------] 7.50%  7.50 / 100.00000000 [+++>------------------------------------------] 7.50%
 10.00 / 100.00000000 [++++>-----------------------------------------] 10.00%  10.00 / 100.00000000 [++++>-----------------------------------------] 10.00%
 12.50 / 100.00000000 [+++++>----------------------------------------] 12.50%  12.50 / 100.00000000 [+++++>----------------------------------------] 12.50%
 15.00 / 100.00000000 [++++++>---------------------------------------] 15.00%  15.00 / 100.00000000 [++++++>---------------------------------------] 15.00%
 17.50 / 100.00000000 [++++++++>-------------------------------------] 17.50%  17.50 / 100.00000000 [++++++++>-------------------------------------] 17.50%
 20.00 / 100.00000000 [+++++++++>------------------------------------] 20.00%  20.00 / 100.00000000 [+++++++++>------------------------------------] 20.00%
 22.50 / 100.00000000 [++++++++++>-----------------------------------] 22.50%  22.50 / 100.00000000 [++++++++++>-----------------------------------] 22.50%
 25.00 / 100.00000000 [+++++++++++>----------------------------------] 25.00%  25.00 / 100.00000000 [+++++++++++>----------------------------------] 25.00%
 27.50 / 100.00000000 [++++++++++++>---------------------------------] 27.50%  27.50 / 100.00000000 [++++++++++++>---------------------------------] 27.50%
 30.00 / 100.00000000 [+++++++++++++>--------------------------------] 30.00%  30.00 / 100.00000000 [+++++++++++++>--------------------------------] 30.00%
 32.50 / 100.00000000 [++++++++++++++>-------------------------------] 32.50%  32.50 / 100.00000000 [++++++++++++++>-------------------------------] 32.50%
 35.00 / 100.00000000 [++++++++++++++++>-----------------------------] 35.00%  35.00 / 100.00000000 [++++++++++++++++>-----------------------------] 35.00%
 37.50 / 100.00000000 [+++++++++++++++++>----------------------------] 37.50%  37.50 / 100.00000000 [+++++++++++++++++>----------------------------] 37.50%
 40.00 / 100.00000000 [++++++++++++++++++>---------------------------] 40.00%  40.00 / 100.00000000 [++++++++++++++++++>---------------------------] 40.00%
 42.50 / 100.00000000 [+++++++++++++++++++>--------------------------] 42.50%  42.50 / 100.00000000 [+++++++++++++++++++>--------------------------] 42.50%
 45.00 / 100.00000000 [++++++++++++++++++++>-------------------------] 45.00%  45.00 / 100.00000000 [++++++++++++++++++++>-------------------------] 45.00%
 47.50 / 100.00000000 [+++++++++++++++++++++>------------------------] 47.50%  47.50 / 100.00000000 [+++++++++++++++++++++>------------------------] 47.50%
 50.00 / 100.00000000 [++++++++++++++++++++++>-----------------------] 50.00%  50.00 / 100.00000000 [++++++++++++++++++++++>-----------------------] 50.00%
 52.50 / 100.00000000 [++++++++++++++++++++++++>---------------------] 52.50%  52.50 / 100.00000000 [++++++++++++++++++++++++>---------------------] 52.50%
 55.00 / 100.00000000 [+++++++++++++++++++++++++>--------------------] 55.00%  55.00 / 100.00000000 [+++++++++++++++++++++++++>--------------------] 55.00%
 57.50 / 100.00000000 [++++++++++++++++++++++++++>-------------------] 57.50%  57.50 / 100.00000000 [++++++++++++++++++++++++++>-------------------] 57.50%
 60.00 / 100.00000000 [+++++++++++++++++++++++++++>------------------] 60.00%  60.00 / 100.00000000 [+++++++++++++++++++++++++++>------------------] 60.00%
 62.50 / 100.00000000 [++++++++++++++++++++++++++++>-----------------] 62.50%  62.50 / 100.00000000 [++++++++++++++++++++++++++++>-----------------] 62.50%
 65.00 / 100.00000000 [+++++++++++++++++++++++++++++>----------------] 65.00%  65.00 / 100.00000000 [+++++++++++++++++++++++++++++>----------------] 65.00%
 67.50 / 100.00000000 [+++++++++++++++++++++++++++++++>--------------] 67.50%  67.50 / 100.00000000 [+++++++++++++++++++++++++++++++>--------------] 67.50%
 70.00 / 100.00000000 [++++++++++++++++++++++++++++++++>-------------] 70.00%  70.00 / 100.00000000 [++++++++++++++++++++++++++++++++>-------------] 70.00%
 72.50 / 100.00000000 [+++++++++++++++++++++++++++++++++>------------] 72.50%  72.50 / 100.00000000 [+++++++++++++++++++++++++++++++++>------------] 72.50%
 75.00 / 100.00000000 [++++++++++++++++++++++++++++++++++>-----------] 75.00%  75.00 / 100.00000000 [++++++++++++++++++++++++++++++++++>-----------] 75.00%
 77.50 / 100.00000000 [+++++++++++++++++++++++++++++++++++>----------] 77.50%  77.50 / 100.00000000 [+++++++++++++++++++++++++++++++++++>----------] 77.50%
 80.00 / 100.00000000 [++++++++++++++++++++++++++++++++++++>---------] 80.00%  80.00 / 100.00000000 [++++++++++++++++++++++++++++++++++++>---------] 80.00%
 82.50 / 100.00000000 [+++++++++++++++++++++++++++++++++++++>--------] 82.50%  82.50 / 100.00000000 [+++++++++++++++++++++++++++++++++++++>--------] 82.50%
 85.00 / 100.00000000 [+++++++++++++++++++++++++++++++++++++++>------] 85.00%  85.00 / 100.00000000 [+++++++++++++++++++++++++++++++++++++++>------] 85.00%
 87.50 / 100.00000000 [++++++++++++++++++++++++++++++++++++++++>-----] 87.50%  87.50 / 100.00000000 [++++++++++++++++++++++++++++++++++++++++>-----] 87.50%
 90.00 / 100.00000000 [+++++++++++++++++++++++++++++++++++++++++>----] 90.00%  90.00 / 100.00000000 [+++++++++++++++++++++++++++++++++++++++++>----] 90.00%
 92.50 / 100.00000000 [++++++++++++++++++++++++++++++++++++++++++>---] 92.50%  92.50 / 100.00000000 [++++++++++++++++++++++++++++++++++++++++++>---] 92.50%
 95.00 / 100.00000000 [+++++++++++++++++++++++++++++++++++++++++++>--] 95.00%  95.00 / 100.00000000 [+++++++++++++++++++++++++++++++++++++++++++>--] 95.00%
 97.50 / 100.00000000 [++++++++++++++++++++++++++++++++++++++++++++>-] 97.50%  97.50 / 100.00000000 [++++++++++++++++++++++++++++++++++++++++++++>-] 97.50%
100.00 / 100.00000000 [+++++++++++++++++++++++++++++++++++++++++++++>] 100.00% 100.00 / 100.00000000 [+++++++++++++++++++++++++++++++++++++++++++++>] 100.00%

View File

@@ -1,40 +1,40 @@
 2.50000000 / 100.00 [+>--------------------------------------------] 2.50%  2.50000000 / 100.00 [+>--------------------------------------------] 2.50%
 5.00000000 / 100.00 [++>-------------------------------------------] 5.00%  5.00000000 / 100.00 [++>-------------------------------------------] 5.00%
 7.50000000 / 100.00 [+++>------------------------------------------] 7.50%  7.50000000 / 100.00 [+++>------------------------------------------] 7.50%
 10.00000000 / 100.00 [++++>-----------------------------------------] 10.00%  10.00000000 / 100.00 [++++>-----------------------------------------] 10.00%
 12.50000000 / 100.00 [+++++>----------------------------------------] 12.50%  12.50000000 / 100.00 [+++++>----------------------------------------] 12.50%
 15.00000000 / 100.00 [++++++>---------------------------------------] 15.00%  15.00000000 / 100.00 [++++++>---------------------------------------] 15.00%
 17.50000000 / 100.00 [++++++++>-------------------------------------] 17.50%  17.50000000 / 100.00 [++++++++>-------------------------------------] 17.50%
 20.00000000 / 100.00 [+++++++++>------------------------------------] 20.00%  20.00000000 / 100.00 [+++++++++>------------------------------------] 20.00%
 22.50000000 / 100.00 [++++++++++>-----------------------------------] 22.50%  22.50000000 / 100.00 [++++++++++>-----------------------------------] 22.50%
 25.00000000 / 100.00 [+++++++++++>----------------------------------] 25.00%  25.00000000 / 100.00 [+++++++++++>----------------------------------] 25.00%
 27.50000000 / 100.00 [++++++++++++>---------------------------------] 27.50%  27.50000000 / 100.00 [++++++++++++>---------------------------------] 27.50%
 30.00000000 / 100.00 [+++++++++++++>--------------------------------] 30.00%  30.00000000 / 100.00 [+++++++++++++>--------------------------------] 30.00%
 32.50000000 / 100.00 [++++++++++++++>-------------------------------] 32.50%  32.50000000 / 100.00 [++++++++++++++>-------------------------------] 32.50%
 35.00000000 / 100.00 [++++++++++++++++>-----------------------------] 35.00%  35.00000000 / 100.00 [++++++++++++++++>-----------------------------] 35.00%
 37.50000000 / 100.00 [+++++++++++++++++>----------------------------] 37.50%  37.50000000 / 100.00 [+++++++++++++++++>----------------------------] 37.50%
 40.00000000 / 100.00 [++++++++++++++++++>---------------------------] 40.00%  40.00000000 / 100.00 [++++++++++++++++++>---------------------------] 40.00%
 42.50000000 / 100.00 [+++++++++++++++++++>--------------------------] 42.50%  42.50000000 / 100.00 [+++++++++++++++++++>--------------------------] 42.50%
 45.00000000 / 100.00 [++++++++++++++++++++>-------------------------] 45.00%  45.00000000 / 100.00 [++++++++++++++++++++>-------------------------] 45.00%
 47.50000000 / 100.00 [+++++++++++++++++++++>------------------------] 47.50%  47.50000000 / 100.00 [+++++++++++++++++++++>------------------------] 47.50%
 50.00000000 / 100.00 [++++++++++++++++++++++>-----------------------] 50.00%  50.00000000 / 100.00 [++++++++++++++++++++++>-----------------------] 50.00%
 52.50000000 / 100.00 [++++++++++++++++++++++++>---------------------] 52.50%  52.50000000 / 100.00 [++++++++++++++++++++++++>---------------------] 52.50%
 55.00000000 / 100.00 [+++++++++++++++++++++++++>--------------------] 55.00%  55.00000000 / 100.00 [+++++++++++++++++++++++++>--------------------] 55.00%
 57.50000000 / 100.00 [++++++++++++++++++++++++++>-------------------] 57.50%  57.50000000 / 100.00 [++++++++++++++++++++++++++>-------------------] 57.50%
 60.00000000 / 100.00 [+++++++++++++++++++++++++++>------------------] 60.00%  60.00000000 / 100.00 [+++++++++++++++++++++++++++>------------------] 60.00%
 62.50000000 / 100.00 [++++++++++++++++++++++++++++>-----------------] 62.50%  62.50000000 / 100.00 [++++++++++++++++++++++++++++>-----------------] 62.50%
 65.00000000 / 100.00 [+++++++++++++++++++++++++++++>----------------] 65.00%  65.00000000 / 100.00 [+++++++++++++++++++++++++++++>----------------] 65.00%
 67.50000000 / 100.00 [+++++++++++++++++++++++++++++++>--------------] 67.50%  67.50000000 / 100.00 [+++++++++++++++++++++++++++++++>--------------] 67.50%
 70.00000000 / 100.00 [++++++++++++++++++++++++++++++++>-------------] 70.00%  70.00000000 / 100.00 [++++++++++++++++++++++++++++++++>-------------] 70.00%
 72.50000000 / 100.00 [+++++++++++++++++++++++++++++++++>------------] 72.50%  72.50000000 / 100.00 [+++++++++++++++++++++++++++++++++>------------] 72.50%
 75.00000000 / 100.00 [++++++++++++++++++++++++++++++++++>-----------] 75.00%  75.00000000 / 100.00 [++++++++++++++++++++++++++++++++++>-----------] 75.00%
 77.50000000 / 100.00 [+++++++++++++++++++++++++++++++++++>----------] 77.50%  77.50000000 / 100.00 [+++++++++++++++++++++++++++++++++++>----------] 77.50%
 80.00000000 / 100.00 [++++++++++++++++++++++++++++++++++++>---------] 80.00%  80.00000000 / 100.00 [++++++++++++++++++++++++++++++++++++>---------] 80.00%
 82.50000000 / 100.00 [+++++++++++++++++++++++++++++++++++++>--------] 82.50%  82.50000000 / 100.00 [+++++++++++++++++++++++++++++++++++++>--------] 82.50%
 85.00000000 / 100.00 [+++++++++++++++++++++++++++++++++++++++>------] 85.00%  85.00000000 / 100.00 [+++++++++++++++++++++++++++++++++++++++>------] 85.00%
 87.50000000 / 100.00 [++++++++++++++++++++++++++++++++++++++++>-----] 87.50%  87.50000000 / 100.00 [++++++++++++++++++++++++++++++++++++++++>-----] 87.50%
 90.00000000 / 100.00 [+++++++++++++++++++++++++++++++++++++++++>----] 90.00%  90.00000000 / 100.00 [+++++++++++++++++++++++++++++++++++++++++>----] 90.00%
 92.50000000 / 100.00 [++++++++++++++++++++++++++++++++++++++++++>---] 92.50%  92.50000000 / 100.00 [++++++++++++++++++++++++++++++++++++++++++>---] 92.50%
 95.00000000 / 100.00 [+++++++++++++++++++++++++++++++++++++++++++>--] 95.00%  95.00000000 / 100.00 [+++++++++++++++++++++++++++++++++++++++++++>--] 95.00%
 97.50000000 / 100.00 [++++++++++++++++++++++++++++++++++++++++++++>-] 97.50%  97.50000000 / 100.00 [++++++++++++++++++++++++++++++++++++++++++++>-] 97.50%
100.00000000 / 100.00 [+++++++++++++++++++++++++++++++++++++++++++++>] 100.00% 100.00000000 / 100.00 [+++++++++++++++++++++++++++++++++++++++++++++>] 100.00%

View File

@@ -1,4 +1,4 @@
13 / 42 [###################>****************************************] 30.95% 13 / 42 [###################>****************************************] 30.95%
26 / 42 [#######################################>********************] 61.90% 26 / 42 [#######################################>********************] 61.90%
39 / 42 [###########################################################>] 92.86% 39 / 42 [###########################################################>] 92.86%
42 / 42 [###########################################################>] 100.00% 42 / 42 [###########################################################>] 100.00%

View File

@@ -1,3 +1,3 @@
19 / 55 [+++++++++++++++++++&----------------------------------------] 34.55% 19 / 55 [+++++++++++++++++++&----------------------------------------] 34.55%
38 / 55 [+++++++++++++++++++++++++++++++++++++++&--------------------] 69.09% 38 / 55 [+++++++++++++++++++++++++++++++++++++++&--------------------] 69.09%
55 / 55 [+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++&] 100.00% 55 / 55 [+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++&] 100.00%

View File

@@ -1,4 +1,4 @@
13 / 42 [++++++++++++&------------------------] 30.95% 13 / 42 [++++++++++++&------------------------] 30.95%
26 / 42 [++++++++++++++++++++++++&------------] 61.90% 26 / 42 [++++++++++++++++++++++++&------------] 61.90%
39 / 42 [++++++++++++++++++++++++++++++++++++&] 92.86% 39 / 42 [++++++++++++++++++++++++++++++++++++&] 92.86%
42 / 42 [++++++++++++++++++++++++++++++++++++&] 100.00% 42 / 42 [++++++++++++++++++++++++++++++++++++&] 100.00%

View File

@@ -1,8 +1,8 @@
 3 / 22 [########&******************************************************] 13.64%  3 / 22 [########&******************************************************] 13.64%
 6 / 22 [#################&*********************************************] 27.27%  6 / 22 [#################&*********************************************] 27.27%
 9 / 22 [##########################&************************************] 40.91%  9 / 22 [##########################&************************************] 40.91%
12 / 22 [###################################&***************************] 54.55% 12 / 22 [###################################&***************************] 54.55%
15 / 22 [############################################&******************] 68.18% 15 / 22 [############################################&******************] 68.18%
18 / 22 [#####################################################&*********] 81.82% 18 / 22 [#####################################################&*********] 81.82%
21 / 22 [##############################################################&] 95.45% 21 / 22 [##############################################################&] 95.45%
22 / 22 [##############################################################&] 100.00% 22 / 22 [##############################################################&] 100.00%

View File

@@ -1,6 +1,6 @@
 7 / 42 [123412341>98769876987698769876987698769876987698769876987698] 16.67%  7 / 42 [123412341>98769876987698769876987698769876987698769876987698] 16.67%
14 / 42 [1234123412341234123>9876987698769876987698769876987698769876] 33.33% 14 / 42 [1234123412341234123>9876987698769876987698769876987698769876] 33.33%
21 / 42 [12341234123412341234123412341>987698769876987698769876987698] 50.00% 21 / 42 [12341234123412341234123412341>987698769876987698769876987698] 50.00%
28 / 42 [123412341234123412341234123412341234123>98769876987698769876] 66.67% 28 / 42 [123412341234123412341234123412341234123>98769876987698769876] 66.67%
35 / 42 [1234123412341234123412341234123412341234123412341>9876987698] 83.33% 35 / 42 [1234123412341234123412341234123412341234123412341>9876987698] 83.33%
42 / 42 [12341234123412341234123412341234123412341234123412341234123>] 100.00% 42 / 42 [12341234123412341234123412341234123412341234123412341234123>] 100.00%

View File

@@ -1,6 +1,6 @@
 7 / 42 [1231231---98798798798798798798798798798798798798798798798798] 16.67%  7 / 42 [1231231---98798798798798798798798798798798798798798798798798] 16.67%
14 / 42 [12312312312312312---9879879879879879879879879879879879879879] 33.33% 14 / 42 [12312312312312312---9879879879879879879879879879879879879879] 33.33%
21 / 42 [123123123123123123123123123---987987987987987987987987987987] 50.00% 21 / 42 [123123123123123123123123123---987987987987987987987987987987] 50.00%
28 / 42 [1231231231231231231231231231231231231---98798798798798798798] 66.67% 28 / 42 [1231231231231231231231231231231231231---98798798798798798798] 66.67%
35 / 42 [12312312312312312312312312312312312312312312312---9879879879] 83.33% 35 / 42 [12312312312312312312312312312312312312312312312---9879879879] 83.33%
42 / 42 [123123123123123123123123123123123123123123123123123123123---] 100.00% 42 / 42 [123123123123123123123123123123123123123123123123123123123---] 100.00%

View File

@@ -1,9 +1,9 @@
Actual progress: <123123---98798798798798798798798798798798798798798798798798798798798798798> 13 Actual progress: <123123---98798798798798798798798798798798798798798798798798798798798798798> 13
Actual progress: <12312312312312---987987987987987987987987987987987987987987987987987987987> 26 Actual progress: <12312312312312---987987987987987987987987987987987987987987987987987987987> 26
Actual progress: <1231231231231231231231---9879879879879879879879879879879879879879879879879> 42 Actual progress: <1231231231231231231231---9879879879879879879879879879879879879879879879879> 42
Actual progress: <123123123123123123123123123123---98798798798798798798798798798798798798798> 55 Actual progress: <123123123123123123123123123123---98798798798798798798798798798798798798798> 55
Actual progress: <123123123123123123123123123123123123123---98798798798798798798798798798798> 71 Actual progress: <123123123123123123123123123123123123123---98798798798798798798798798798798> 71
Actual progress: <12312312312312312312312312312312312312312312312---987987987987987987987987> 104 Actual progress: <12312312312312312312312312312312312312312312312---987987987987987987987987> 104
Actual progress: <1231231231231231231231231231231231231231231231231231231---9879879879879879> 120 Actual progress: <1231231231231231231231231231231231231231231231231231231---9879879879879879> 120
Actual progress: <123123123123123123123123123123123123123123123123123123123123123---98798798> 133 Actual progress: <123123123123123123123123123123123123123123123123123123123123123---98798798> 133
Actual progress: <12312312312312312312312312312312312312312312312312312312312312312312312---> 144 Actual progress: <12312312312312312312312312312312312312312312312312312312312312312312312---> 144

View File

@@ -1,10 +1,10 @@
10.0% UPLOAD /var/upload/test.php 10.0% UPLOAD /var/upload/test.php
20.0% UPLOAD /var/upload/testing.php 20.0% UPLOAD /var/upload/testing.php
30.0% UPLOAD /var/upload/foo.php 30.0% UPLOAD /var/upload/foo.php
40.0% UPLOAD /var/upload/bar.php 40.0% UPLOAD /var/upload/bar.php
50.0% UPLOAD /var/upload/baz.png 50.0% UPLOAD /var/upload/baz.png
60.0% UPLOAD /var/upload/image.jpg 60.0% UPLOAD /var/upload/image.jpg
70.0% UPLOAD /var/upload/bar.gif 70.0% UPLOAD /var/upload/bar.gif
80.0% UPLOAD /var/upload/ez-logo.jpg 80.0% UPLOAD /var/upload/ez-logo.jpg
90.0% UPLOAD /var/upload/ez-logo.png 90.0% UPLOAD /var/upload/ez-logo.png
100.0% UPLOAD /var/upload/ez-components.png 100.0% UPLOAD /var/upload/ez-components.png

View File

@@ -1,7 +1,7 @@
14.3% UPLOAD /var/upload/test.php 14.3% UPLOAD /var/upload/test.php
28.6% UPLOAD /var/upload/testing.php 28.6% UPLOAD /var/upload/testing.php
42.9% UPLOAD /var/upload/foo.php 42.9% UPLOAD /var/upload/foo.php
57.1% UPLOAD /var/upload/bar.php 57.1% UPLOAD /var/upload/bar.php
71.4% UPLOAD /var/upload/baz.png 71.4% UPLOAD /var/upload/baz.png
85.7% UPLOAD /var/upload/image.jpg 85.7% UPLOAD /var/upload/image.jpg
100.0% UPLOAD /var/upload/bar.gif 100.0% UPLOAD /var/upload/bar.gif

View File

@@ -1,7 +1,7 @@
UPLOAD 14.29% /var/upload/test.php UPLOAD 14.29% /var/upload/test.php
UPLOAD 28.57% /var/upload/testing.php UPLOAD 28.57% /var/upload/testing.php
UPLOAD 42.86% /var/upload/foo.php UPLOAD 42.86% /var/upload/foo.php
UPLOAD 57.14% /var/upload/bar.php UPLOAD 57.14% /var/upload/bar.php
UPLOAD 71.43% /var/upload/baz.png UPLOAD 71.43% /var/upload/baz.png
UPLOAD 85.71% /var/upload/image.jpg UPLOAD 85.71% /var/upload/image.jpg
UPLOAD 100.00% /var/upload/bar.gif UPLOAD 100.00% /var/upload/bar.gif

View File

@@ -1,7 +1,7 @@
UPLOAD 14.29% /var/upload/test.php UPLOAD 14.29% /var/upload/test.php
UPLOAD 28.57% /var/upload/testing.php UPLOAD 28.57% /var/upload/testing.php
UPLOAD 42.86% /var/upload/foo.php UPLOAD 42.86% /var/upload/foo.php
UPLOAD 57.14% /var/upload/bar.php UPLOAD 57.14% /var/upload/bar.php
UPLOAD 71.43% /var/upload/baz.png UPLOAD 71.43% /var/upload/baz.png
UPLOAD 85.71% /var/upload/image.jpg UPLOAD 85.71% /var/upload/image.jpg
UPLOAD 100.00% /var/upload/bar.gif UPLOAD 100.00% /var/upload/bar.gif

View File

@@ -1,5 +1,5 @@
 2 / 10 [ööööööööööö>------------------------------------------------] 20.00%  2 / 10 [ööööööööööö>------------------------------------------------] 20.00%
 4 / 10 [ööööööööööööööööööööööö>------------------------------------] 40.00%  4 / 10 [ööööööööööööööööööööööö>------------------------------------] 40.00%
 6 / 10 [ööööööööööööööööööööööööööööööööööö>------------------------] 60.00%  6 / 10 [ööööööööööööööööööööööööööööööööööö>------------------------] 60.00%
 8 / 10 [ööööööööööööööööööööööööööööööööööööööööööööööö>------------] 80.00%  8 / 10 [ööööööööööööööööööööööööööööööööööööööööööööööö>------------] 80.00%
10 / 10 [ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö>] 100.00% 10 / 10 [ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö>] 100.00%

View File

@@ -1,5 +1,5 @@
 2ö/ä10ü[ööööööööööö>------------------------------------------------]ß 20.00%  2ö/ä10ü[ööööööööööö>------------------------------------------------]ß 20.00%
 4ö/ä10ü[ööööööööööööööööööööööö>------------------------------------]ß 40.00%  4ö/ä10ü[ööööööööööööööööööööööö>------------------------------------]ß 40.00%
 6ö/ä10ü[ööööööööööööööööööööööööööööööööööö>------------------------]ß 60.00%  6ö/ä10ü[ööööööööööööööööööööööööööööööööööö>------------------------]ß 60.00%
 8ö/ä10ü[ööööööööööööööööööööööööööööööööööööööööööööööö>------------]ß 80.00%  8ö/ä10ü[ööööööööööööööööööööööööööööööööööööööööööööööö>------------]ß 80.00%
10ö/ä10ü[ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö>]ß100.00% 10ö/ä10ü[ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö>]ß100.00%

View File

@@ -1,5 +1,5 @@
 2ö/ä10ü[+++++++++++>------------------------------------------------]ß 20.00%  2ö/ä10ü[+++++++++++>------------------------------------------------]ß 20.00%
 4ö/ä10ü[+++++++++++++++++++++++>------------------------------------]ß 40.00%  4ö/ä10ü[+++++++++++++++++++++++>------------------------------------]ß 40.00%
 6ö/ä10ü[+++++++++++++++++++++++++++++++++++>------------------------]ß 60.00%  6ö/ä10ü[+++++++++++++++++++++++++++++++++++>------------------------]ß 60.00%
 8ö/ä10ü[+++++++++++++++++++++++++++++++++++++++++++++++>------------]ß 80.00%  8ö/ä10ü[+++++++++++++++++++++++++++++++++++++++++++++++>------------]ß 80.00%
10ö/ä10ü[+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>]ß100.00% 10ö/ä10ü[+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>]ß100.00%

View File

@@ -1,11 +1,11 @@
+----------------------------------------+----------------------+-------------+ +----------------------------------------+----------------------+-------------+
| Heading no. 1 | Longer heading no. 2 | Head 3 | | Heading no. 1 | Longer heading no. 2 | Head 3 |
+----------------------------------------+----------------------+-------------+ +----------------------------------------+----------------------+-------------+
| Data cell 1 | Data cell 2 | Data cell 3 | | Data cell 1 | Data cell 2 | Data cell 3 |
+----------------------------------------+----------------------+-------------+ +----------------------------------------+----------------------+-------------+
| Long long data cell with even more | Data cell 4 | Data cell 5 | | Long long data cell with even more | Data cell 4 | Data cell 5 |
| text in it... | | | | text in it... | | |
+----------------------------------------+----------------------+-------------+ +----------------------------------------+----------------------+-------------+
| a b c d e f g h i j k l m n o p q r s | Data cell | Data cell | | a b c d e f g h i j k l m n o p q r s | Data cell | Data cell |
| t u v w x | | | | t u v w x | | |
+----------------------------------------+----------------------+-------------+ +----------------------------------------+----------------------+-------------+

View File

@@ -1,20 +1,20 @@
+------------+------------+------------+ +------------+------------+------------+
| Heading | Longer | Head 3 | | Heading | Longer | Head 3 |
| no. 1 | heading | | | no. 1 | heading | |
| | no. 2 | | | | no. 2 | |
+------------+------------+------------+ +------------+------------+------------+
| Data cell | Data cell | Data cell | | Data cell | Data cell | Data cell |
| 1 | 2 | 3 | | 1 | 2 | 3 |
+------------+------------+------------+ +------------+------------+------------+
| Long long | Data cell | Data cell | | Long long | Data cell | Data cell |
| data cell | 4 | 5 | | data cell | 4 | 5 |
| with even | | | | with even | | |
| more text | | | | more text | | |
| in it... | | | | in it... | | |
+------------+------------+------------+ +------------+------------+------------+
| a b c d e | Data cell | Data cell | | a b c d e | Data cell | Data cell |
| f g h i j | | | | f g h i j | | |
| k l m n o | | | | k l m n o | | |
| p q r s t | | | | p q r s t | | |
| u v w x | | | | u v w x | | |
+------------+------------+------------+ +------------+------------+------------+

View File

@@ -1,5 +1,5 @@
+---------+---------+---------+---------+---------+--------+ +---------+---------+---------+---------+---------+--------+
| a | b | c | d | e | f | | a | b | c | d | e | f |
+---------+---------+---------+---------+---------+--------+ +---------+---------+---------+---------+---------+--------+
| g | h | i | j | k | l | | g | h | i | j | k | l |
+---------+---------+---------+---------+---------+--------+ +---------+---------+---------+---------+---------+--------+

View File

@@ -1,5 +1,5 @@
+---+---+---+---+---+---+ +---+---+---+---+---+---+
| a | b | c | d | e | f | | a | b | c | d | e | f |
+---+---+---+---+---+---+ +---+---+---+---+---+---+
| g | h | i | j | k | l | | g | h | i | j | k | l |
+---+---+---+---+---+---+ +---+---+---+---+---+---+

View File

@@ -1,11 +1,11 @@
######################################################################################################################### #########################################################################################################################
# Parameter # Shortcut # Descrition # # Parameter # Shortcut # Descrition #
######################################################################################################################### #########################################################################################################################
# Append text to a file. This parameter takes a string value and may be used multiple times. # --append # -a # # Append text to a file. This parameter takes a string value and may be used multiple times. # --append # -a #
######################################################################################################################### #########################################################################################################################
# Prepend text to a file. This parameter takes a string value and may be used multiple times. # --prepend # -p # # Prepend text to a file. This parameter takes a string value and may be used multiple times. # --prepend # -p #
######################################################################################################################### #########################################################################################################################
# Forces the action desired without paying attention to any errors. # --force # -f # # Forces the action desired without paying attention to any errors. # --force # -f #
######################################################################################################################### #########################################################################################################################
# Silence all kinds of warnings issued by this program. # --silent # -s # # Silence all kinds of warnings issued by this program. # --silent # -s #
######################################################################################################################### #########################################################################################################################

View File

@@ -1,15 +1,15 @@
cvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvcvvvvvvvvvvvcvvvvvvvvvvvvc cvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvcvvvvvvvvvvvcvvvvvvvvvvvvc
h Parameter h Shortcut h Descrition h h Parameter h Shortcut h Descrition h
cvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvcvvvvvvvvvvvcvvvvvvvvvvvvc cvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvcvvvvvvvvvvvcvvvvvvvvvvvvc
h Append text to a file. This parameter takes a h --append h -a h h Append text to a file. This parameter takes a h --append h -a h
h string value and may be used multiple times. h h h h string value and may be used multiple times. h h h
cvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvcvvvvvvvvvvvcvvvvvvvvvvvvc cvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvcvvvvvvvvvvvcvvvvvvvvvvvvc
h Prepend text to a file. This parameter takes a h --prepend h -p h h Prepend text to a file. This parameter takes a h --prepend h -p h
h string value and may be used multiple times. h h h h string value and may be used multiple times. h h h
cvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvcvvvvvvvvvvvcvvvvvvvvvvvvc cvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvcvvvvvvvvvvvcvvvvvvvvvvvvc
h Forces the action desired without paying attention h --force h -f h h Forces the action desired without paying attention h --force h -f h
h to any errors. h h h h to any errors. h h h
cvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvcvvvvvvvvvvvcvvvvvvvvvvvvc cvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvcvvvvvvvvvvvcvvvvvvvvvvvvc
h Silence all kinds of warnings issued by this h --silent h -s h h Silence all kinds of warnings issued by this h --silent h -s h
h program. h h h h program. h h h
cvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvcvvvvvvvvvvvcvvvvvvvvvvvvc cvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvcvvvvvvvvvvvcvvvvvvvvvvvvc

View File

@@ -1,11 +1,11 @@
+---------+---------+---------+ +---------+---------+---------+
| Parameter | Shortcut | Descrition | | Parameter | Shortcut | Descrition |
+---------+---------+---------+ +---------+---------+---------+
| Append text to a file. This parameter takes a string value and may be used multiple times. | --append | -a | | Append text to a file. This parameter takes a string value and may be used multiple times. | --append | -a |
+---------+---------+---------+ +---------+---------+---------+
| Prepend text to a file. This parameter takes a string value and may be used multiple times. | --prepend | -p | | Prepend text to a file. This parameter takes a string value and may be used multiple times. | --prepend | -p |
+---------+---------+---------+ +---------+---------+---------+
| Forces the action desired without paying attention to any errors. | --force | -f | | Forces the action desired without paying attention to any errors. | --force | -f |
+---------+---------+---------+ +---------+---------+---------+
| Silence all kinds of warnings issued by this program. | --silent | -s | | Silence all kinds of warnings issued by this program. | --silent | -s |
+---------+---------+---------+ +---------+---------+---------+

View File

@@ -1,11 +1,11 @@
+-----+-----+-----+ +-----+-----+-----+
| Par | Sho | Des | | Par | Sho | Des |
+-----+-----+-----+ +-----+-----+-----+
| App | --a | -a | | App | --a | -a |
+-----+-----+-----+ +-----+-----+-----+
| Pre | --p | -p | | Pre | --p | -p |
+-----+-----+-----+ +-----+-----+-----+
| For | --f | -f | | For | --f | -f |
+-----+-----+-----+ +-----+-----+-----+
| Sil | --s | -s | | Sil | --s | -s |
+-----+-----+-----+ +-----+-----+-----+

View File

@@ -1,9 +1,9 @@
+-----------------------------+-----------------------------+-----------------------------+-----------------------------+ +-----------------------------+-----------------------------+-----------------------------+-----------------------------+
| Some very very long data he | Short | Some very very long data he | Short | | Some very very long data he | Short | Some very very long data he | Short |
+-----------------------------+-----------------------------+-----------------------------+-----------------------------+ +-----------------------------+-----------------------------+-----------------------------+-----------------------------+
| Short | Some very very long data he | Short | Some very very long data he | | Short | Some very very long data he | Short | Some very very long data he |
| | | | | | | | | |
| | and it becomes even much mu | | | | | and it becomes even much mu | | |
| | | | | | | | | |
| | and even longer.... | | | | | and even longer.... | | |
+-----------------------------+-----------------------------+-----------------------------+-----------------------------+ +-----------------------------+-----------------------------+-----------------------------+-----------------------------+

View File

@@ -1,14 +1,14 @@
+-----------------------------+-----------------------------+-----------------------------+-----------------------------+ +-----------------------------+-----------------------------+-----------------------------+-----------------------------+
| Some very very long data | Short | Some very very long data | Short | | Some very very long data | Short | Some very very long data | Short |
| here.... and it becomes | | here.... and it becomes | | | here.... and it becomes | | here.... and it becomes | |
| even much much longer... | | even much much longer... | | | even much much longer... | | even much much longer... | |
| and even longer.... | | and even longer.... | | | and even longer.... | | and even longer.... | |
+-----------------------------+-----------------------------+-----------------------------+-----------------------------+ +-----------------------------+-----------------------------+-----------------------------+-----------------------------+
| Short | Some very very long data | Short | Some very very long data | | Short | Some very very long data | Short | Some very very long data |
| | here.... | | here.... and it becomes | | | here.... | | here.... and it becomes |
| | | | even much much longer... | | | | | even much much longer... |
| | and it becomes even much | | and even longer.... | | | and it becomes even much | | and even longer.... |
| | much longer... | | | | | much longer... | | |
| | | | | | | | | |
| | and even longer.... | | | | | and even longer.... | | |
+-----------------------------+-----------------------------+-----------------------------+-----------------------------+ +-----------------------------+-----------------------------+-----------------------------+-----------------------------+

View File

@@ -1,9 +1,9 @@
+-----------------------------+-----------------------------+-----------------------------+-----------------------------+ +-----------------------------+-----------------------------+-----------------------------+-----------------------------+
| Some very very long data he | Short | Some very very long data he | Short | | Some very very long data he | Short | Some very very long data he | Short |
+-----------------------------+-----------------------------+-----------------------------+-----------------------------+ +-----------------------------+-----------------------------+-----------------------------+-----------------------------+
| Short | Some very very long data he | Short | Some very very long data he | | Short | Some very very long data he | Short | Some very very long data he |
| | | | | | | | | |
| | and it becomes even much mu | | | | | and it becomes even much mu | | |
| | | | | | | | | |
| | and even longer.... | | | | | and even longer.... | | |
+-----------------------------+-----------------------------+-----------------------------+-----------------------------+ +-----------------------------+-----------------------------+-----------------------------+-----------------------------+

View File

@@ -1,12 +1,12 @@
+-----------------------------------------------------------+-----------------------------------------------------------+ +-----------------------------------------------------------+-----------------------------------------------------------+
| Short text | More short text | | Short text | More short text |
+-----------------------------------------------------------+-----------------------------------------------------------+ +-----------------------------------------------------------+-----------------------------------------------------------+
| Short text | More short text | | Short text | More short text |
| Short text | More short text | | Short text | More short text |
| Short text | More short text | | Short text | More short text |
| Short text | Short text | | Short text | Short text |
| Short text | | | Short text | |
| Short text | | | Short text | |
| Short text | | | Short text | |
| | | | | |
+-----------------------------------------------------------+-----------------------------------------------------------+ +-----------------------------------------------------------+-----------------------------------------------------------+

View File

@@ -1,5 +1,5 @@
+----------------+----------------+----------------+----------------+----------------+-------------+ +----------------+----------------+----------------+----------------+----------------+-------------+
|~~~ a ~~~|~~~ b ~~~|~~~ c ~~~|~~~ d ~~~|~~~ e ~~~|~~~ f ~~~| |~~~ a ~~~|~~~ b ~~~|~~~ c ~~~|~~~ d ~~~|~~~ e ~~~|~~~ f ~~~|
+----------------+----------------+----------------+----------------+----------------+-------------+ +----------------+----------------+----------------+----------------+----------------+-------------+
|~~~ g ~~~|~~~ h ~~~|~~~ i ~~~|~~~ j ~~~|~~~ k ~~~|~~~ l ~~~| |~~~ g ~~~|~~~ h ~~~|~~~ i ~~~|~~~ j ~~~|~~~ k ~~~|~~~ l ~~~|
+----------------+----------------+----------------+----------------+----------------+-------------+ +----------------+----------------+----------------+----------------+----------------+-------------+

View File

@@ -1,5 +1,5 @@
+-------+-------+-------+-------+-------+-------+ +-------+-------+-------+-------+-------+-------+
|~~~a~~~|~~~b~~~|~~~c~~~|~~~d~~~|~~~e~~~|~~~f~~~| |~~~a~~~|~~~b~~~|~~~c~~~|~~~d~~~|~~~e~~~|~~~f~~~|
+-------+-------+-------+-------+-------+-------+ +-------+-------+-------+-------+-------+-------+
|~~~g~~~|~~~h~~~|~~~i~~~|~~~j~~~|~~~k~~~|~~~l~~~| |~~~g~~~|~~~h~~~|~~~i~~~|~~~j~~~|~~~k~~~|~~~l~~~|
+-------+-------+-------+-------+-------+-------+ +-------+-------+-------+-------+-------+-------+

View File

@@ -1,14 +1,14 @@
Some very very long data Short Some very very long data Short Some very very long data Short Some very very long data Short
here.... and it becomes here.... and it becomes here.... and it becomes here.... and it becomes
even much much longer... even much much longer... even much much longer... even much much longer...
and even longer.... and even longer.... and even longer.... and even longer....
Short Some very very long data Short Some very very long data Short Some very very long data Short Some very very long data
here.... here.... and it becomes here.... here.... and it becomes
even much much longer... even much much longer...
and it becomes even much and even longer.... and it becomes even much and even longer....
much longer... much longer...
and even longer.... and even longer....

View File

@@ -1,11 +1,11 @@
Some very very long data Short Some very very long data Short Some very very long data Short Some very very long data Short
here.... and it becomes even here.... and it becomes even here.... and it becomes even here.... and it becomes even
much much longer... and even much much longer... and even much much longer... and even much much longer... and even
longer.... longer.... longer.... longer....
Short Some very very long data Short Some very very long data Short Some very very long data Short Some very very long data
here.... here.... and it becomes even here.... here.... and it becomes even
much much longer... and even much much longer... and even
and it becomes even much longer.... and it becomes even much longer....
much longer... much longer...
and even longer.... and even longer....

View File

@@ -1,5 +1,5 @@
+---+---+---+---+---+---+ +---+---+---+---+---+---+
| a | b | c | d | e | f | | a | b | c | d | e | f |
+---+---+---+---+---+---+ +---+---+---+---+---+---+
| g | h | i | j | k | l | | g | h | i | j | k | l |
+---+---+---+---+---+---+ +---+---+---+---+---+---+

View File

@@ -1,14 +1,14 @@
------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------
Some very very long data Short Some very very long data Short Some very very long data Short Some very very long data Short
here.... and it becomes even here.... and it becomes even here.... and it becomes even here.... and it becomes even
much much longer... and even much much longer... and even much much longer... and even much much longer... and even
longer.... longer.... longer.... longer....
------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------
Short Some very very long data Short Some very very long data Short Some very very long data Short Some very very long data
here.... here.... and it becomes even here.... here.... and it becomes even
much much longer... and even much much longer... and even
and it becomes even much longer.... and it becomes even much longer....
much longer... much longer...
and even longer.... and even longer....
------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------

View File

@@ -1,11 +1,11 @@
| Some very very long data | Short | Some very very long data | Short | | Some very very long data | Short | Some very very long data | Short |
| here.... and it becomes | | here.... and it becomes | | | here.... and it becomes | | here.... and it becomes | |
| even much much longer... | | even much much longer... | | | even much much longer... | | even much much longer... | |
| and even longer.... | | and even longer.... | | | and even longer.... | | and even longer.... | |
| Short | Some very very long data | Short | Some very very long data | | Short | Some very very long data | Short | Some very very long data |
| | here.... | | here.... and it becomes | | | here.... | | here.... and it becomes |
| | | | even much much longer... | | | | | even much much longer... |
| | and it becomes even much | | and even longer.... | | | and it becomes even much | | and even longer.... |
| | much longer... | | | | | much longer... | | |
| | | | | | | | | |
| | and even longer.... | | | | | and even longer.... | | |

View File

@@ -1,7 +1,7 @@
+--------------------+--------------------+-----------------------------------+ +--------------------+--------------------+-----------------------------------+
| Non UTF-8 column 1 | Non UTF-8 column 2 | Long long long long long long | | Non UTF-8 column 1 | Non UTF-8 column 2 | Long long long long long long |
| | | long non UTF-8 column | | | | long non UTF-8 column |
+--------------------+--------------------+-----------------------------------+ +--------------------+--------------------+-----------------------------------+
| Nön UTF-8 cölümn 1 | Nön UTF-8 cölümn 2 | Löng löng löng löng löng löng | | Nön UTF-8 cölümn 1 | Nön UTF-8 cölümn 2 | Löng löng löng löng löng löng |
| | | löng nön UTF-8 cölümn | | | | löng nön UTF-8 cölümn |
+--------------------+--------------------+-----------------------------------+ +--------------------+--------------------+-----------------------------------+

View File

@@ -1,7 +1,7 @@
+--------------------+--------------------+-----------------------------------+ +--------------------+--------------------+-----------------------------------+
| Nön UTF-8 cölümn 1 | Nön UTF-8 cölümn 2 | Löng löng löng löng löng löng | | Nön UTF-8 cölümn 1 | Nön UTF-8 cölümn 2 | Löng löng löng löng löng löng |
| | | löng nön UTF-8 cölümn | | | | löng nön UTF-8 cölümn |
+--------------------+--------------------+-----------------------------------+ +--------------------+--------------------+-----------------------------------+
| Non UTF-8 column 1 | Non UTF-8 column 2 | Long long long long long long | | Non UTF-8 column 1 | Non UTF-8 column 2 | Long long long long long long |
| | | long non UTF-8 column | | | | long non UTF-8 column |
+--------------------+--------------------+-----------------------------------+ +--------------------+--------------------+-----------------------------------+

171
core/lib/fpdf/changelog.htm Normal file
View File

@@ -0,0 +1,171 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Changelog</title>
<link type="text/css" rel="stylesheet" href="fpdf.css">
<style type="text/css">
dd {margin:1em 0 1em 1em}
</style>
</head>
<body>
<h1>Changelog</h1>
<dl>
<dt><strong>v1.83</strong> (2021-04-18)</dt>
<dd>
- Fixed an issue related to annotations.<br>
</dd>
<dt><strong>v1.82</strong> (2019-12-07)</dt>
<dd>
- Removed a deprecation notice under PHP 7.4.<br>
</dd>
<dt><strong>v1.81</strong> (2015-12-20)</dt>
<dd>
- Added GetPageWidth() and GetPageHeight().<br>
- Fixed a bug in SetXY().<br>
</dd>
<dt><strong>v1.8</strong> (2015-11-29)</dt>
<dd>
- PHP 5.1.0 or higher is now required.<br>
- The MakeFont utility now subsets fonts, which can greatly reduce font sizes.<br>
- Added ToUnicode CMaps to improve text extraction.<br>
- Added a parameter to AddPage() to rotate the page.<br>
- Added a parameter to SetY() to indicate whether the x position should be reset or not.<br>
- Added a parameter to Output() to specify the encoding of the name, and special characters are now properly encoded. Additionally the order of the first two parameters was reversed to be more logical (however the old order is still supported for compatibility).<br>
- The Error() method now throws an exception.<br>
- Adding contents before the first AddPage() or after Close() now raises an error.<br>
- Outputting text with no font selected now raises an error.<br>
</dd>
<dt><strong>v1.7</strong> (2011-06-18)</dt>
<dd>
- The MakeFont utility has been completely rewritten and doesn't depend on ttf2pt1 anymore.<br>
- Alpha channel is now supported for PNGs.<br>
- When inserting an image, it's now possible to specify its resolution.<br>
- Default resolution for images was increased from 72 to 96 dpi.<br>
- When inserting a GIF image, no temporary file is used anymore if the PHP version is 5.1 or higher.<br>
- When output buffering is enabled and the PDF is about to be sent, the buffer is now cleared if it contains only a UTF-8 BOM and/or whitespace (instead of throwing an error).<br>
- Symbol and ZapfDingbats fonts now support underline style.<br>
- Custom page sizes are now checked to ensure that width is smaller than height.<br>
- Standard font files were changed to use the same format as user fonts.<br>
- A bug in the embedding of Type1 fonts was fixed.<br>
- A bug related to SetDisplayMode() and the current locale was fixed.<br>
- A display issue occurring with the Adobe Reader X plug-in was fixed.<br>
- An issue related to transparency with some versions of Adobe Reader was fixed.<br>
- The Content-Length header was removed because it caused an issue when the HTTP server applies compression.<br>
</dd>
<dt><strong>v1.6</strong> (2008-08-03)</dt>
<dd>
- PHP 4.3.10 or higher is now required.<br>
- GIF image support.<br>
- Images can now trigger page breaks.<br>
- Possibility to have different page formats in a single document.<br>
- Document properties (author, creator, keywords, subject and title) can now be specified in UTF-8.<br>
- Fixed a bug: when a PNG was inserted through a URL, an error sometimes occurred.<br>
- An automatic page break in Header() doesn't cause an infinite loop any more.<br>
- Removed some warning messages appearing with recent PHP versions.<br>
- Added HTTP headers to reduce problems with IE.<br>
</dd>
<dt><strong>v1.53</strong> (2004-12-31)</dt>
<dd>
- When the font subdirectory is in the same directory as fpdf.php, it's no longer necessary to define the FPDF_FONTPATH constant.<br>
- The array $HTTP_SERVER_VARS is no longer used. It could cause trouble on PHP5-based configurations with the register_long_arrays option disabled.<br>
- Fixed a problem related to Type1 font embedding which caused trouble to some PDF processors.<br>
- The file name sent to the browser could not contain a space character.<br>
- The Cell() method could not print the number 0 (you had to pass the string '0').<br>
</dd>
<dt><strong>v1.52</strong> (2003-12-30)</dt>
<dd>
- Image() now displays the image at 72 dpi if no dimension is given.<br>
- Output() takes a string as second parameter to indicate destination.<br>
- Open() is now called automatically by AddPage().<br>
- Inserting remote JPEG images doesn't generate an error any longer.<br>
- Decimal separator is forced to dot in the constructor.<br>
- Added several encodings (Turkish, Thai, Hebrew, Ukrainian and Vietnamese).<br>
- The last line of a right-aligned MultiCell() was not correctly aligned if it was terminated by a carriage return.<br>
- No more error message about already sent headers when outputting the PDF to the standard output from the command line.<br>
- The underlining was going too far for text containing characters \, ( or ).<br>
- $HTTP_ENV_VARS has been replaced by $HTTP_SERVER_VARS.<br>
</dd>
<dt><strong>v1.51</strong> (2002-08-03)</dt>
<dd>
- Type1 font support.<br>
- Added Baltic encoding.<br>
- The class now works internally in points with the origin at the bottom in order to avoid two bugs occurring with Acrobat 5:<br>&nbsp;&nbsp;* The line thickness was too large when printed under Windows 98 SE and ME.<br>&nbsp;&nbsp;* TrueType fonts didn't appear immediately inside the plug-in (a substitution font was used), one had to cause a window refresh to make them show up.<br>
- It's no longer necessary to set the decimal separator as dot to produce valid documents.<br>
- The clickable area in a cell was always on the left independently from the text alignment.<br>
- JPEG images in CMYK mode appeared in inverted colors.<br>
- Transparent PNG images in grayscale or true color mode were incorrectly handled.<br>
- Adding new fonts now works correctly even with the magic_quotes_runtime option set to on.<br>
</dd>
<dt><strong>v1.5</strong> (2002-05-28)</dt>
<dd>
- TrueType font (AddFont()) and encoding support (Western and Eastern Europe, Cyrillic and Greek).<br>
- Added Write() method.<br>
- Added underlined style.<br>
- Internal and external link support (AddLink(), SetLink(), Link()).<br>
- Added right margin management and methods SetRightMargin(), SetTopMargin().<br>
- Modification of SetDisplayMode() to select page layout.<br>
- The border parameter of MultiCell() now lets choose borders to draw as Cell().<br>
- When a document contains no page, Close() now calls AddPage() instead of causing a fatal error.<br>
</dd>
<dt><strong>v1.41</strong> (2002-03-13)</dt>
<dd>
- Fixed SetDisplayMode() which no longer worked (the PDF viewer used its default display).<br>
</dd>
<dt><strong>v1.4</strong> (2002-03-02)</dt>
<dd>
- PHP3 is no longer supported.<br>
- Page compression (SetCompression()).<br>
- Choice of page format and possibility to change orientation inside document.<br>
- Added AcceptPageBreak() method.<br>
- Ability to print the total number of pages (AliasNbPages()).<br>
- Choice of cell borders to draw.<br>
- New mode for Cell(): the current position can now move under the cell.<br>
- Ability to include an image by specifying height only (width is calculated automatically).<br>
- Fixed a bug: when a justified line triggered a page break, the footer inherited the corresponding word spacing.<br>
</dd>
<dt><strong>v1.31</strong> (2002-01-12)</dt>
<dd>
- Fixed a bug in drawing frame with MultiCell(): the last line always started from the left margin.<br>
- Removed Expires HTTP header (gives trouble in some situations).<br>
- Added Content-disposition HTTP header (seems to help in some situations).<br>
</dd>
<dt><strong>v1.3</strong> (2001-12-03)</dt>
<dd>
- Line break and text justification support (MultiCell()).<br>
- Color support (SetDrawColor(), SetFillColor(), SetTextColor()). Possibility to draw filled rectangles and paint cell background.<br>
- A cell whose width is declared null extends up to the right margin of the page.<br>
- Line width is now retained from page to page and defaults to 0.2 mm.<br>
- Added SetXY() method.<br>
- Fixed a passing by reference done in a deprecated manner for PHP4.<br>
</dd>
<dt><strong>v1.2</strong> (2001-11-11)</dt>
<dd>
- Added font metric files and GetStringWidth() method.<br>
- Centering and right-aligning text in cells.<br>
- Display mode control (SetDisplayMode()).<br>
- Added methods to set document properties (SetAuthor(), SetCreator(), SetKeywords(), SetSubject(), SetTitle()).<br>
- Possibility to force PDF download by browser.<br>
- Added SetX() and GetX() methods.<br>
- During automatic page break, current abscissa is now retained.<br>
</dd>
<dt><strong>v1.11</strong> (2001-10-20)</dt>
<dd>
- PNG support doesn't require PHP4/zlib any more. Data are now put directly into PDF without any decompression/recompression stage.<br>
- Image insertion now works correctly even with magic_quotes_runtime option set to on.<br>
</dd>
<dt><strong>v1.1</strong> (2001-10-07)</dt>
<dd>
- JPEG and PNG image support.<br>
</dd>
<dt><strong>v1.01</strong> (2001-10-03)</dt>
<dd>
- Fixed a bug involving page break: in case when Header() doesn't specify a font, the one from previous page was not restored and produced an incorrect document.<br>
</dd>
<dt><strong>v1.0</strong> (2001-09-17)</dt>
<dd>
- First version.<br>
</dd>
</dl>
</body>
</html>

View File

@@ -0,0 +1,10 @@
<?php
$type = 'Core';
$name = 'Courier';
$up = -100;
$ut = 50;
for($i=0;$i<=255;$i++)
$cw[chr($i)] = 600;
$enc = 'cp1252';
$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));
?>

View File

@@ -0,0 +1,10 @@
<?php
$type = 'Core';
$name = 'Courier-Bold';
$up = -100;
$ut = 50;
for($i=0;$i<=255;$i++)
$cw[chr($i)] = 600;
$enc = 'cp1252';
$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));
?>

View File

@@ -0,0 +1,10 @@
<?php
$type = 'Core';
$name = 'Courier-BoldOblique';
$up = -100;
$ut = 50;
for($i=0;$i<=255;$i++)
$cw[chr($i)] = 600;
$enc = 'cp1252';
$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));
?>

View File

@@ -0,0 +1,10 @@
<?php
$type = 'Core';
$name = 'Courier-Oblique';
$up = -100;
$ut = 50;
for($i=0;$i<=255;$i++)
$cw[chr($i)] = 600;
$enc = 'cp1252';
$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));
?>

View File

@@ -0,0 +1,21 @@
<?php
$type = 'Core';
$name = 'Helvetica';
$up = -100;
$ut = 50;
$cw = array(
chr(0)=>278,chr(1)=>278,chr(2)=>278,chr(3)=>278,chr(4)=>278,chr(5)=>278,chr(6)=>278,chr(7)=>278,chr(8)=>278,chr(9)=>278,chr(10)=>278,chr(11)=>278,chr(12)=>278,chr(13)=>278,chr(14)=>278,chr(15)=>278,chr(16)=>278,chr(17)=>278,chr(18)=>278,chr(19)=>278,chr(20)=>278,chr(21)=>278,
chr(22)=>278,chr(23)=>278,chr(24)=>278,chr(25)=>278,chr(26)=>278,chr(27)=>278,chr(28)=>278,chr(29)=>278,chr(30)=>278,chr(31)=>278,' '=>278,'!'=>278,'"'=>355,'#'=>556,'$'=>556,'%'=>889,'&'=>667,'\''=>191,'('=>333,')'=>333,'*'=>389,'+'=>584,
','=>278,'-'=>333,'.'=>278,'/'=>278,'0'=>556,'1'=>556,'2'=>556,'3'=>556,'4'=>556,'5'=>556,'6'=>556,'7'=>556,'8'=>556,'9'=>556,':'=>278,';'=>278,'<'=>584,'='=>584,'>'=>584,'?'=>556,'@'=>1015,'A'=>667,
'B'=>667,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>722,'I'=>278,'J'=>500,'K'=>667,'L'=>556,'M'=>833,'N'=>722,'O'=>778,'P'=>667,'Q'=>778,'R'=>722,'S'=>667,'T'=>611,'U'=>722,'V'=>667,'W'=>944,
'X'=>667,'Y'=>667,'Z'=>611,'['=>278,'\\'=>278,']'=>278,'^'=>469,'_'=>556,'`'=>333,'a'=>556,'b'=>556,'c'=>500,'d'=>556,'e'=>556,'f'=>278,'g'=>556,'h'=>556,'i'=>222,'j'=>222,'k'=>500,'l'=>222,'m'=>833,
'n'=>556,'o'=>556,'p'=>556,'q'=>556,'r'=>333,'s'=>500,'t'=>278,'u'=>556,'v'=>500,'w'=>722,'x'=>500,'y'=>500,'z'=>500,'{'=>334,'|'=>260,'}'=>334,'~'=>584,chr(127)=>350,chr(128)=>556,chr(129)=>350,chr(130)=>222,chr(131)=>556,
chr(132)=>333,chr(133)=>1000,chr(134)=>556,chr(135)=>556,chr(136)=>333,chr(137)=>1000,chr(138)=>667,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>222,chr(146)=>222,chr(147)=>333,chr(148)=>333,chr(149)=>350,chr(150)=>556,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,
chr(154)=>500,chr(155)=>333,chr(156)=>944,chr(157)=>350,chr(158)=>500,chr(159)=>667,chr(160)=>278,chr(161)=>333,chr(162)=>556,chr(163)=>556,chr(164)=>556,chr(165)=>556,chr(166)=>260,chr(167)=>556,chr(168)=>333,chr(169)=>737,chr(170)=>370,chr(171)=>556,chr(172)=>584,chr(173)=>333,chr(174)=>737,chr(175)=>333,
chr(176)=>400,chr(177)=>584,chr(178)=>333,chr(179)=>333,chr(180)=>333,chr(181)=>556,chr(182)=>537,chr(183)=>278,chr(184)=>333,chr(185)=>333,chr(186)=>365,chr(187)=>556,chr(188)=>834,chr(189)=>834,chr(190)=>834,chr(191)=>611,chr(192)=>667,chr(193)=>667,chr(194)=>667,chr(195)=>667,chr(196)=>667,chr(197)=>667,
chr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>278,chr(205)=>278,chr(206)=>278,chr(207)=>278,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>584,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722,
chr(220)=>722,chr(221)=>667,chr(222)=>667,chr(223)=>611,chr(224)=>556,chr(225)=>556,chr(226)=>556,chr(227)=>556,chr(228)=>556,chr(229)=>556,chr(230)=>889,chr(231)=>500,chr(232)=>556,chr(233)=>556,chr(234)=>556,chr(235)=>556,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>556,chr(241)=>556,
chr(242)=>556,chr(243)=>556,chr(244)=>556,chr(245)=>556,chr(246)=>556,chr(247)=>584,chr(248)=>611,chr(249)=>556,chr(250)=>556,chr(251)=>556,chr(252)=>556,chr(253)=>500,chr(254)=>556,chr(255)=>500);
$enc = 'cp1252';
$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));
?>

View File

@@ -0,0 +1,21 @@
<?php
$type = 'Core';
$name = 'Helvetica-Bold';
$up = -100;
$ut = 50;
$cw = array(
chr(0)=>278,chr(1)=>278,chr(2)=>278,chr(3)=>278,chr(4)=>278,chr(5)=>278,chr(6)=>278,chr(7)=>278,chr(8)=>278,chr(9)=>278,chr(10)=>278,chr(11)=>278,chr(12)=>278,chr(13)=>278,chr(14)=>278,chr(15)=>278,chr(16)=>278,chr(17)=>278,chr(18)=>278,chr(19)=>278,chr(20)=>278,chr(21)=>278,
chr(22)=>278,chr(23)=>278,chr(24)=>278,chr(25)=>278,chr(26)=>278,chr(27)=>278,chr(28)=>278,chr(29)=>278,chr(30)=>278,chr(31)=>278,' '=>278,'!'=>333,'"'=>474,'#'=>556,'$'=>556,'%'=>889,'&'=>722,'\''=>238,'('=>333,')'=>333,'*'=>389,'+'=>584,
','=>278,'-'=>333,'.'=>278,'/'=>278,'0'=>556,'1'=>556,'2'=>556,'3'=>556,'4'=>556,'5'=>556,'6'=>556,'7'=>556,'8'=>556,'9'=>556,':'=>333,';'=>333,'<'=>584,'='=>584,'>'=>584,'?'=>611,'@'=>975,'A'=>722,
'B'=>722,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>722,'I'=>278,'J'=>556,'K'=>722,'L'=>611,'M'=>833,'N'=>722,'O'=>778,'P'=>667,'Q'=>778,'R'=>722,'S'=>667,'T'=>611,'U'=>722,'V'=>667,'W'=>944,
'X'=>667,'Y'=>667,'Z'=>611,'['=>333,'\\'=>278,']'=>333,'^'=>584,'_'=>556,'`'=>333,'a'=>556,'b'=>611,'c'=>556,'d'=>611,'e'=>556,'f'=>333,'g'=>611,'h'=>611,'i'=>278,'j'=>278,'k'=>556,'l'=>278,'m'=>889,
'n'=>611,'o'=>611,'p'=>611,'q'=>611,'r'=>389,'s'=>556,'t'=>333,'u'=>611,'v'=>556,'w'=>778,'x'=>556,'y'=>556,'z'=>500,'{'=>389,'|'=>280,'}'=>389,'~'=>584,chr(127)=>350,chr(128)=>556,chr(129)=>350,chr(130)=>278,chr(131)=>556,
chr(132)=>500,chr(133)=>1000,chr(134)=>556,chr(135)=>556,chr(136)=>333,chr(137)=>1000,chr(138)=>667,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>278,chr(146)=>278,chr(147)=>500,chr(148)=>500,chr(149)=>350,chr(150)=>556,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,
chr(154)=>556,chr(155)=>333,chr(156)=>944,chr(157)=>350,chr(158)=>500,chr(159)=>667,chr(160)=>278,chr(161)=>333,chr(162)=>556,chr(163)=>556,chr(164)=>556,chr(165)=>556,chr(166)=>280,chr(167)=>556,chr(168)=>333,chr(169)=>737,chr(170)=>370,chr(171)=>556,chr(172)=>584,chr(173)=>333,chr(174)=>737,chr(175)=>333,
chr(176)=>400,chr(177)=>584,chr(178)=>333,chr(179)=>333,chr(180)=>333,chr(181)=>611,chr(182)=>556,chr(183)=>278,chr(184)=>333,chr(185)=>333,chr(186)=>365,chr(187)=>556,chr(188)=>834,chr(189)=>834,chr(190)=>834,chr(191)=>611,chr(192)=>722,chr(193)=>722,chr(194)=>722,chr(195)=>722,chr(196)=>722,chr(197)=>722,
chr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>278,chr(205)=>278,chr(206)=>278,chr(207)=>278,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>584,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722,
chr(220)=>722,chr(221)=>667,chr(222)=>667,chr(223)=>611,chr(224)=>556,chr(225)=>556,chr(226)=>556,chr(227)=>556,chr(228)=>556,chr(229)=>556,chr(230)=>889,chr(231)=>556,chr(232)=>556,chr(233)=>556,chr(234)=>556,chr(235)=>556,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>611,chr(241)=>611,
chr(242)=>611,chr(243)=>611,chr(244)=>611,chr(245)=>611,chr(246)=>611,chr(247)=>584,chr(248)=>611,chr(249)=>611,chr(250)=>611,chr(251)=>611,chr(252)=>611,chr(253)=>556,chr(254)=>611,chr(255)=>556);
$enc = 'cp1252';
$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));
?>

View File

@@ -0,0 +1,21 @@
<?php
$type = 'Core';
$name = 'Helvetica-BoldOblique';
$up = -100;
$ut = 50;
$cw = array(
chr(0)=>278,chr(1)=>278,chr(2)=>278,chr(3)=>278,chr(4)=>278,chr(5)=>278,chr(6)=>278,chr(7)=>278,chr(8)=>278,chr(9)=>278,chr(10)=>278,chr(11)=>278,chr(12)=>278,chr(13)=>278,chr(14)=>278,chr(15)=>278,chr(16)=>278,chr(17)=>278,chr(18)=>278,chr(19)=>278,chr(20)=>278,chr(21)=>278,
chr(22)=>278,chr(23)=>278,chr(24)=>278,chr(25)=>278,chr(26)=>278,chr(27)=>278,chr(28)=>278,chr(29)=>278,chr(30)=>278,chr(31)=>278,' '=>278,'!'=>333,'"'=>474,'#'=>556,'$'=>556,'%'=>889,'&'=>722,'\''=>238,'('=>333,')'=>333,'*'=>389,'+'=>584,
','=>278,'-'=>333,'.'=>278,'/'=>278,'0'=>556,'1'=>556,'2'=>556,'3'=>556,'4'=>556,'5'=>556,'6'=>556,'7'=>556,'8'=>556,'9'=>556,':'=>333,';'=>333,'<'=>584,'='=>584,'>'=>584,'?'=>611,'@'=>975,'A'=>722,
'B'=>722,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>722,'I'=>278,'J'=>556,'K'=>722,'L'=>611,'M'=>833,'N'=>722,'O'=>778,'P'=>667,'Q'=>778,'R'=>722,'S'=>667,'T'=>611,'U'=>722,'V'=>667,'W'=>944,
'X'=>667,'Y'=>667,'Z'=>611,'['=>333,'\\'=>278,']'=>333,'^'=>584,'_'=>556,'`'=>333,'a'=>556,'b'=>611,'c'=>556,'d'=>611,'e'=>556,'f'=>333,'g'=>611,'h'=>611,'i'=>278,'j'=>278,'k'=>556,'l'=>278,'m'=>889,
'n'=>611,'o'=>611,'p'=>611,'q'=>611,'r'=>389,'s'=>556,'t'=>333,'u'=>611,'v'=>556,'w'=>778,'x'=>556,'y'=>556,'z'=>500,'{'=>389,'|'=>280,'}'=>389,'~'=>584,chr(127)=>350,chr(128)=>556,chr(129)=>350,chr(130)=>278,chr(131)=>556,
chr(132)=>500,chr(133)=>1000,chr(134)=>556,chr(135)=>556,chr(136)=>333,chr(137)=>1000,chr(138)=>667,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>278,chr(146)=>278,chr(147)=>500,chr(148)=>500,chr(149)=>350,chr(150)=>556,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,
chr(154)=>556,chr(155)=>333,chr(156)=>944,chr(157)=>350,chr(158)=>500,chr(159)=>667,chr(160)=>278,chr(161)=>333,chr(162)=>556,chr(163)=>556,chr(164)=>556,chr(165)=>556,chr(166)=>280,chr(167)=>556,chr(168)=>333,chr(169)=>737,chr(170)=>370,chr(171)=>556,chr(172)=>584,chr(173)=>333,chr(174)=>737,chr(175)=>333,
chr(176)=>400,chr(177)=>584,chr(178)=>333,chr(179)=>333,chr(180)=>333,chr(181)=>611,chr(182)=>556,chr(183)=>278,chr(184)=>333,chr(185)=>333,chr(186)=>365,chr(187)=>556,chr(188)=>834,chr(189)=>834,chr(190)=>834,chr(191)=>611,chr(192)=>722,chr(193)=>722,chr(194)=>722,chr(195)=>722,chr(196)=>722,chr(197)=>722,
chr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>278,chr(205)=>278,chr(206)=>278,chr(207)=>278,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>584,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722,
chr(220)=>722,chr(221)=>667,chr(222)=>667,chr(223)=>611,chr(224)=>556,chr(225)=>556,chr(226)=>556,chr(227)=>556,chr(228)=>556,chr(229)=>556,chr(230)=>889,chr(231)=>556,chr(232)=>556,chr(233)=>556,chr(234)=>556,chr(235)=>556,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>611,chr(241)=>611,
chr(242)=>611,chr(243)=>611,chr(244)=>611,chr(245)=>611,chr(246)=>611,chr(247)=>584,chr(248)=>611,chr(249)=>611,chr(250)=>611,chr(251)=>611,chr(252)=>611,chr(253)=>556,chr(254)=>611,chr(255)=>556);
$enc = 'cp1252';
$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));
?>

View File

@@ -0,0 +1,21 @@
<?php
$type = 'Core';
$name = 'Helvetica-Oblique';
$up = -100;
$ut = 50;
$cw = array(
chr(0)=>278,chr(1)=>278,chr(2)=>278,chr(3)=>278,chr(4)=>278,chr(5)=>278,chr(6)=>278,chr(7)=>278,chr(8)=>278,chr(9)=>278,chr(10)=>278,chr(11)=>278,chr(12)=>278,chr(13)=>278,chr(14)=>278,chr(15)=>278,chr(16)=>278,chr(17)=>278,chr(18)=>278,chr(19)=>278,chr(20)=>278,chr(21)=>278,
chr(22)=>278,chr(23)=>278,chr(24)=>278,chr(25)=>278,chr(26)=>278,chr(27)=>278,chr(28)=>278,chr(29)=>278,chr(30)=>278,chr(31)=>278,' '=>278,'!'=>278,'"'=>355,'#'=>556,'$'=>556,'%'=>889,'&'=>667,'\''=>191,'('=>333,')'=>333,'*'=>389,'+'=>584,
','=>278,'-'=>333,'.'=>278,'/'=>278,'0'=>556,'1'=>556,'2'=>556,'3'=>556,'4'=>556,'5'=>556,'6'=>556,'7'=>556,'8'=>556,'9'=>556,':'=>278,';'=>278,'<'=>584,'='=>584,'>'=>584,'?'=>556,'@'=>1015,'A'=>667,
'B'=>667,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>722,'I'=>278,'J'=>500,'K'=>667,'L'=>556,'M'=>833,'N'=>722,'O'=>778,'P'=>667,'Q'=>778,'R'=>722,'S'=>667,'T'=>611,'U'=>722,'V'=>667,'W'=>944,
'X'=>667,'Y'=>667,'Z'=>611,'['=>278,'\\'=>278,']'=>278,'^'=>469,'_'=>556,'`'=>333,'a'=>556,'b'=>556,'c'=>500,'d'=>556,'e'=>556,'f'=>278,'g'=>556,'h'=>556,'i'=>222,'j'=>222,'k'=>500,'l'=>222,'m'=>833,
'n'=>556,'o'=>556,'p'=>556,'q'=>556,'r'=>333,'s'=>500,'t'=>278,'u'=>556,'v'=>500,'w'=>722,'x'=>500,'y'=>500,'z'=>500,'{'=>334,'|'=>260,'}'=>334,'~'=>584,chr(127)=>350,chr(128)=>556,chr(129)=>350,chr(130)=>222,chr(131)=>556,
chr(132)=>333,chr(133)=>1000,chr(134)=>556,chr(135)=>556,chr(136)=>333,chr(137)=>1000,chr(138)=>667,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>222,chr(146)=>222,chr(147)=>333,chr(148)=>333,chr(149)=>350,chr(150)=>556,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,
chr(154)=>500,chr(155)=>333,chr(156)=>944,chr(157)=>350,chr(158)=>500,chr(159)=>667,chr(160)=>278,chr(161)=>333,chr(162)=>556,chr(163)=>556,chr(164)=>556,chr(165)=>556,chr(166)=>260,chr(167)=>556,chr(168)=>333,chr(169)=>737,chr(170)=>370,chr(171)=>556,chr(172)=>584,chr(173)=>333,chr(174)=>737,chr(175)=>333,
chr(176)=>400,chr(177)=>584,chr(178)=>333,chr(179)=>333,chr(180)=>333,chr(181)=>556,chr(182)=>537,chr(183)=>278,chr(184)=>333,chr(185)=>333,chr(186)=>365,chr(187)=>556,chr(188)=>834,chr(189)=>834,chr(190)=>834,chr(191)=>611,chr(192)=>667,chr(193)=>667,chr(194)=>667,chr(195)=>667,chr(196)=>667,chr(197)=>667,
chr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>278,chr(205)=>278,chr(206)=>278,chr(207)=>278,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>584,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722,
chr(220)=>722,chr(221)=>667,chr(222)=>667,chr(223)=>611,chr(224)=>556,chr(225)=>556,chr(226)=>556,chr(227)=>556,chr(228)=>556,chr(229)=>556,chr(230)=>889,chr(231)=>500,chr(232)=>556,chr(233)=>556,chr(234)=>556,chr(235)=>556,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>556,chr(241)=>556,
chr(242)=>556,chr(243)=>556,chr(244)=>556,chr(245)=>556,chr(246)=>556,chr(247)=>584,chr(248)=>611,chr(249)=>556,chr(250)=>556,chr(251)=>556,chr(252)=>556,chr(253)=>500,chr(254)=>556,chr(255)=>500);
$enc = 'cp1252';
$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));
?>

View File

@@ -0,0 +1,20 @@
<?php
$type = 'Core';
$name = 'Symbol';
$up = -100;
$ut = 50;
$cw = array(
chr(0)=>250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250,
chr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>333,'"'=>713,'#'=>500,'$'=>549,'%'=>833,'&'=>778,'\''=>439,'('=>333,')'=>333,'*'=>500,'+'=>549,
','=>250,'-'=>549,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>278,';'=>278,'<'=>549,'='=>549,'>'=>549,'?'=>444,'@'=>549,'A'=>722,
'B'=>667,'C'=>722,'D'=>612,'E'=>611,'F'=>763,'G'=>603,'H'=>722,'I'=>333,'J'=>631,'K'=>722,'L'=>686,'M'=>889,'N'=>722,'O'=>722,'P'=>768,'Q'=>741,'R'=>556,'S'=>592,'T'=>611,'U'=>690,'V'=>439,'W'=>768,
'X'=>645,'Y'=>795,'Z'=>611,'['=>333,'\\'=>863,']'=>333,'^'=>658,'_'=>500,'`'=>500,'a'=>631,'b'=>549,'c'=>549,'d'=>494,'e'=>439,'f'=>521,'g'=>411,'h'=>603,'i'=>329,'j'=>603,'k'=>549,'l'=>549,'m'=>576,
'n'=>521,'o'=>549,'p'=>549,'q'=>521,'r'=>549,'s'=>603,'t'=>439,'u'=>576,'v'=>713,'w'=>686,'x'=>493,'y'=>686,'z'=>494,'{'=>480,'|'=>200,'}'=>480,'~'=>549,chr(127)=>0,chr(128)=>0,chr(129)=>0,chr(130)=>0,chr(131)=>0,
chr(132)=>0,chr(133)=>0,chr(134)=>0,chr(135)=>0,chr(136)=>0,chr(137)=>0,chr(138)=>0,chr(139)=>0,chr(140)=>0,chr(141)=>0,chr(142)=>0,chr(143)=>0,chr(144)=>0,chr(145)=>0,chr(146)=>0,chr(147)=>0,chr(148)=>0,chr(149)=>0,chr(150)=>0,chr(151)=>0,chr(152)=>0,chr(153)=>0,
chr(154)=>0,chr(155)=>0,chr(156)=>0,chr(157)=>0,chr(158)=>0,chr(159)=>0,chr(160)=>750,chr(161)=>620,chr(162)=>247,chr(163)=>549,chr(164)=>167,chr(165)=>713,chr(166)=>500,chr(167)=>753,chr(168)=>753,chr(169)=>753,chr(170)=>753,chr(171)=>1042,chr(172)=>987,chr(173)=>603,chr(174)=>987,chr(175)=>603,
chr(176)=>400,chr(177)=>549,chr(178)=>411,chr(179)=>549,chr(180)=>549,chr(181)=>713,chr(182)=>494,chr(183)=>460,chr(184)=>549,chr(185)=>549,chr(186)=>549,chr(187)=>549,chr(188)=>1000,chr(189)=>603,chr(190)=>1000,chr(191)=>658,chr(192)=>823,chr(193)=>686,chr(194)=>795,chr(195)=>987,chr(196)=>768,chr(197)=>768,
chr(198)=>823,chr(199)=>768,chr(200)=>768,chr(201)=>713,chr(202)=>713,chr(203)=>713,chr(204)=>713,chr(205)=>713,chr(206)=>713,chr(207)=>713,chr(208)=>768,chr(209)=>713,chr(210)=>790,chr(211)=>790,chr(212)=>890,chr(213)=>823,chr(214)=>549,chr(215)=>250,chr(216)=>713,chr(217)=>603,chr(218)=>603,chr(219)=>1042,
chr(220)=>987,chr(221)=>603,chr(222)=>987,chr(223)=>603,chr(224)=>494,chr(225)=>329,chr(226)=>790,chr(227)=>790,chr(228)=>786,chr(229)=>713,chr(230)=>384,chr(231)=>384,chr(232)=>384,chr(233)=>384,chr(234)=>384,chr(235)=>384,chr(236)=>494,chr(237)=>494,chr(238)=>494,chr(239)=>494,chr(240)=>0,chr(241)=>329,
chr(242)=>274,chr(243)=>686,chr(244)=>686,chr(245)=>686,chr(246)=>384,chr(247)=>384,chr(248)=>384,chr(249)=>384,chr(250)=>384,chr(251)=>384,chr(252)=>494,chr(253)=>494,chr(254)=>494,chr(255)=>0);
$uv = array(32=>160,33=>33,34=>8704,35=>35,36=>8707,37=>array(37,2),39=>8715,40=>array(40,2),42=>8727,43=>array(43,2),45=>8722,46=>array(46,18),64=>8773,65=>array(913,2),67=>935,68=>array(916,2),70=>934,71=>915,72=>919,73=>921,74=>977,75=>array(922,4),79=>array(927,2),81=>920,82=>929,83=>array(931,3),86=>962,87=>937,88=>926,89=>936,90=>918,91=>91,92=>8756,93=>93,94=>8869,95=>95,96=>63717,97=>array(945,2),99=>967,100=>array(948,2),102=>966,103=>947,104=>951,105=>953,106=>981,107=>array(954,4),111=>array(959,2),113=>952,114=>961,115=>array(963,3),118=>982,119=>969,120=>958,121=>968,122=>950,123=>array(123,3),126=>8764,160=>8364,161=>978,162=>8242,163=>8804,164=>8725,165=>8734,166=>402,167=>9827,168=>9830,169=>9829,170=>9824,171=>8596,172=>array(8592,4),176=>array(176,2),178=>8243,179=>8805,180=>215,181=>8733,182=>8706,183=>8226,184=>247,185=>array(8800,2),187=>8776,188=>8230,189=>array(63718,2),191=>8629,192=>8501,193=>8465,194=>8476,195=>8472,196=>8855,197=>8853,198=>8709,199=>array(8745,2),201=>8835,202=>8839,203=>8836,204=>8834,205=>8838,206=>array(8712,2),208=>8736,209=>8711,210=>63194,211=>63193,212=>63195,213=>8719,214=>8730,215=>8901,216=>172,217=>array(8743,2),219=>8660,220=>array(8656,4),224=>9674,225=>9001,226=>array(63720,3),229=>8721,230=>array(63723,10),241=>9002,242=>8747,243=>8992,244=>63733,245=>8993,246=>array(63734,9));
?>

View File

@@ -0,0 +1,21 @@
<?php
$type = 'Core';
$name = 'Times-Roman';
$up = -100;
$ut = 50;
$cw = array(
chr(0)=>250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250,
chr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>333,'"'=>408,'#'=>500,'$'=>500,'%'=>833,'&'=>778,'\''=>180,'('=>333,')'=>333,'*'=>500,'+'=>564,
','=>250,'-'=>333,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>278,';'=>278,'<'=>564,'='=>564,'>'=>564,'?'=>444,'@'=>921,'A'=>722,
'B'=>667,'C'=>667,'D'=>722,'E'=>611,'F'=>556,'G'=>722,'H'=>722,'I'=>333,'J'=>389,'K'=>722,'L'=>611,'M'=>889,'N'=>722,'O'=>722,'P'=>556,'Q'=>722,'R'=>667,'S'=>556,'T'=>611,'U'=>722,'V'=>722,'W'=>944,
'X'=>722,'Y'=>722,'Z'=>611,'['=>333,'\\'=>278,']'=>333,'^'=>469,'_'=>500,'`'=>333,'a'=>444,'b'=>500,'c'=>444,'d'=>500,'e'=>444,'f'=>333,'g'=>500,'h'=>500,'i'=>278,'j'=>278,'k'=>500,'l'=>278,'m'=>778,
'n'=>500,'o'=>500,'p'=>500,'q'=>500,'r'=>333,'s'=>389,'t'=>278,'u'=>500,'v'=>500,'w'=>722,'x'=>500,'y'=>500,'z'=>444,'{'=>480,'|'=>200,'}'=>480,'~'=>541,chr(127)=>350,chr(128)=>500,chr(129)=>350,chr(130)=>333,chr(131)=>500,
chr(132)=>444,chr(133)=>1000,chr(134)=>500,chr(135)=>500,chr(136)=>333,chr(137)=>1000,chr(138)=>556,chr(139)=>333,chr(140)=>889,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>333,chr(146)=>333,chr(147)=>444,chr(148)=>444,chr(149)=>350,chr(150)=>500,chr(151)=>1000,chr(152)=>333,chr(153)=>980,
chr(154)=>389,chr(155)=>333,chr(156)=>722,chr(157)=>350,chr(158)=>444,chr(159)=>722,chr(160)=>250,chr(161)=>333,chr(162)=>500,chr(163)=>500,chr(164)=>500,chr(165)=>500,chr(166)=>200,chr(167)=>500,chr(168)=>333,chr(169)=>760,chr(170)=>276,chr(171)=>500,chr(172)=>564,chr(173)=>333,chr(174)=>760,chr(175)=>333,
chr(176)=>400,chr(177)=>564,chr(178)=>300,chr(179)=>300,chr(180)=>333,chr(181)=>500,chr(182)=>453,chr(183)=>250,chr(184)=>333,chr(185)=>300,chr(186)=>310,chr(187)=>500,chr(188)=>750,chr(189)=>750,chr(190)=>750,chr(191)=>444,chr(192)=>722,chr(193)=>722,chr(194)=>722,chr(195)=>722,chr(196)=>722,chr(197)=>722,
chr(198)=>889,chr(199)=>667,chr(200)=>611,chr(201)=>611,chr(202)=>611,chr(203)=>611,chr(204)=>333,chr(205)=>333,chr(206)=>333,chr(207)=>333,chr(208)=>722,chr(209)=>722,chr(210)=>722,chr(211)=>722,chr(212)=>722,chr(213)=>722,chr(214)=>722,chr(215)=>564,chr(216)=>722,chr(217)=>722,chr(218)=>722,chr(219)=>722,
chr(220)=>722,chr(221)=>722,chr(222)=>556,chr(223)=>500,chr(224)=>444,chr(225)=>444,chr(226)=>444,chr(227)=>444,chr(228)=>444,chr(229)=>444,chr(230)=>667,chr(231)=>444,chr(232)=>444,chr(233)=>444,chr(234)=>444,chr(235)=>444,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>500,chr(241)=>500,
chr(242)=>500,chr(243)=>500,chr(244)=>500,chr(245)=>500,chr(246)=>500,chr(247)=>564,chr(248)=>500,chr(249)=>500,chr(250)=>500,chr(251)=>500,chr(252)=>500,chr(253)=>500,chr(254)=>500,chr(255)=>500);
$enc = 'cp1252';
$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));
?>

View File

@@ -0,0 +1,21 @@
<?php
$type = 'Core';
$name = 'Times-Bold';
$up = -100;
$ut = 50;
$cw = array(
chr(0)=>250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250,
chr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>333,'"'=>555,'#'=>500,'$'=>500,'%'=>1000,'&'=>833,'\''=>278,'('=>333,')'=>333,'*'=>500,'+'=>570,
','=>250,'-'=>333,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>333,';'=>333,'<'=>570,'='=>570,'>'=>570,'?'=>500,'@'=>930,'A'=>722,
'B'=>667,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>778,'I'=>389,'J'=>500,'K'=>778,'L'=>667,'M'=>944,'N'=>722,'O'=>778,'P'=>611,'Q'=>778,'R'=>722,'S'=>556,'T'=>667,'U'=>722,'V'=>722,'W'=>1000,
'X'=>722,'Y'=>722,'Z'=>667,'['=>333,'\\'=>278,']'=>333,'^'=>581,'_'=>500,'`'=>333,'a'=>500,'b'=>556,'c'=>444,'d'=>556,'e'=>444,'f'=>333,'g'=>500,'h'=>556,'i'=>278,'j'=>333,'k'=>556,'l'=>278,'m'=>833,
'n'=>556,'o'=>500,'p'=>556,'q'=>556,'r'=>444,'s'=>389,'t'=>333,'u'=>556,'v'=>500,'w'=>722,'x'=>500,'y'=>500,'z'=>444,'{'=>394,'|'=>220,'}'=>394,'~'=>520,chr(127)=>350,chr(128)=>500,chr(129)=>350,chr(130)=>333,chr(131)=>500,
chr(132)=>500,chr(133)=>1000,chr(134)=>500,chr(135)=>500,chr(136)=>333,chr(137)=>1000,chr(138)=>556,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>667,chr(143)=>350,chr(144)=>350,chr(145)=>333,chr(146)=>333,chr(147)=>500,chr(148)=>500,chr(149)=>350,chr(150)=>500,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,
chr(154)=>389,chr(155)=>333,chr(156)=>722,chr(157)=>350,chr(158)=>444,chr(159)=>722,chr(160)=>250,chr(161)=>333,chr(162)=>500,chr(163)=>500,chr(164)=>500,chr(165)=>500,chr(166)=>220,chr(167)=>500,chr(168)=>333,chr(169)=>747,chr(170)=>300,chr(171)=>500,chr(172)=>570,chr(173)=>333,chr(174)=>747,chr(175)=>333,
chr(176)=>400,chr(177)=>570,chr(178)=>300,chr(179)=>300,chr(180)=>333,chr(181)=>556,chr(182)=>540,chr(183)=>250,chr(184)=>333,chr(185)=>300,chr(186)=>330,chr(187)=>500,chr(188)=>750,chr(189)=>750,chr(190)=>750,chr(191)=>500,chr(192)=>722,chr(193)=>722,chr(194)=>722,chr(195)=>722,chr(196)=>722,chr(197)=>722,
chr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>389,chr(205)=>389,chr(206)=>389,chr(207)=>389,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>570,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722,
chr(220)=>722,chr(221)=>722,chr(222)=>611,chr(223)=>556,chr(224)=>500,chr(225)=>500,chr(226)=>500,chr(227)=>500,chr(228)=>500,chr(229)=>500,chr(230)=>722,chr(231)=>444,chr(232)=>444,chr(233)=>444,chr(234)=>444,chr(235)=>444,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>500,chr(241)=>556,
chr(242)=>500,chr(243)=>500,chr(244)=>500,chr(245)=>500,chr(246)=>500,chr(247)=>570,chr(248)=>500,chr(249)=>556,chr(250)=>556,chr(251)=>556,chr(252)=>556,chr(253)=>500,chr(254)=>556,chr(255)=>500);
$enc = 'cp1252';
$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));
?>

View File

@@ -0,0 +1,21 @@
<?php
$type = 'Core';
$name = 'Times-BoldItalic';
$up = -100;
$ut = 50;
$cw = array(
chr(0)=>250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250,
chr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>389,'"'=>555,'#'=>500,'$'=>500,'%'=>833,'&'=>778,'\''=>278,'('=>333,')'=>333,'*'=>500,'+'=>570,
','=>250,'-'=>333,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>333,';'=>333,'<'=>570,'='=>570,'>'=>570,'?'=>500,'@'=>832,'A'=>667,
'B'=>667,'C'=>667,'D'=>722,'E'=>667,'F'=>667,'G'=>722,'H'=>778,'I'=>389,'J'=>500,'K'=>667,'L'=>611,'M'=>889,'N'=>722,'O'=>722,'P'=>611,'Q'=>722,'R'=>667,'S'=>556,'T'=>611,'U'=>722,'V'=>667,'W'=>889,
'X'=>667,'Y'=>611,'Z'=>611,'['=>333,'\\'=>278,']'=>333,'^'=>570,'_'=>500,'`'=>333,'a'=>500,'b'=>500,'c'=>444,'d'=>500,'e'=>444,'f'=>333,'g'=>500,'h'=>556,'i'=>278,'j'=>278,'k'=>500,'l'=>278,'m'=>778,
'n'=>556,'o'=>500,'p'=>500,'q'=>500,'r'=>389,'s'=>389,'t'=>278,'u'=>556,'v'=>444,'w'=>667,'x'=>500,'y'=>444,'z'=>389,'{'=>348,'|'=>220,'}'=>348,'~'=>570,chr(127)=>350,chr(128)=>500,chr(129)=>350,chr(130)=>333,chr(131)=>500,
chr(132)=>500,chr(133)=>1000,chr(134)=>500,chr(135)=>500,chr(136)=>333,chr(137)=>1000,chr(138)=>556,chr(139)=>333,chr(140)=>944,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>333,chr(146)=>333,chr(147)=>500,chr(148)=>500,chr(149)=>350,chr(150)=>500,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,
chr(154)=>389,chr(155)=>333,chr(156)=>722,chr(157)=>350,chr(158)=>389,chr(159)=>611,chr(160)=>250,chr(161)=>389,chr(162)=>500,chr(163)=>500,chr(164)=>500,chr(165)=>500,chr(166)=>220,chr(167)=>500,chr(168)=>333,chr(169)=>747,chr(170)=>266,chr(171)=>500,chr(172)=>606,chr(173)=>333,chr(174)=>747,chr(175)=>333,
chr(176)=>400,chr(177)=>570,chr(178)=>300,chr(179)=>300,chr(180)=>333,chr(181)=>576,chr(182)=>500,chr(183)=>250,chr(184)=>333,chr(185)=>300,chr(186)=>300,chr(187)=>500,chr(188)=>750,chr(189)=>750,chr(190)=>750,chr(191)=>500,chr(192)=>667,chr(193)=>667,chr(194)=>667,chr(195)=>667,chr(196)=>667,chr(197)=>667,
chr(198)=>944,chr(199)=>667,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>389,chr(205)=>389,chr(206)=>389,chr(207)=>389,chr(208)=>722,chr(209)=>722,chr(210)=>722,chr(211)=>722,chr(212)=>722,chr(213)=>722,chr(214)=>722,chr(215)=>570,chr(216)=>722,chr(217)=>722,chr(218)=>722,chr(219)=>722,
chr(220)=>722,chr(221)=>611,chr(222)=>611,chr(223)=>500,chr(224)=>500,chr(225)=>500,chr(226)=>500,chr(227)=>500,chr(228)=>500,chr(229)=>500,chr(230)=>722,chr(231)=>444,chr(232)=>444,chr(233)=>444,chr(234)=>444,chr(235)=>444,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>500,chr(241)=>556,
chr(242)=>500,chr(243)=>500,chr(244)=>500,chr(245)=>500,chr(246)=>500,chr(247)=>570,chr(248)=>500,chr(249)=>556,chr(250)=>556,chr(251)=>556,chr(252)=>556,chr(253)=>444,chr(254)=>500,chr(255)=>444);
$enc = 'cp1252';
$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));
?>

View File

@@ -0,0 +1,21 @@
<?php
$type = 'Core';
$name = 'Times-Italic';
$up = -100;
$ut = 50;
$cw = array(
chr(0)=>250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250,
chr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>333,'"'=>420,'#'=>500,'$'=>500,'%'=>833,'&'=>778,'\''=>214,'('=>333,')'=>333,'*'=>500,'+'=>675,
','=>250,'-'=>333,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>333,';'=>333,'<'=>675,'='=>675,'>'=>675,'?'=>500,'@'=>920,'A'=>611,
'B'=>611,'C'=>667,'D'=>722,'E'=>611,'F'=>611,'G'=>722,'H'=>722,'I'=>333,'J'=>444,'K'=>667,'L'=>556,'M'=>833,'N'=>667,'O'=>722,'P'=>611,'Q'=>722,'R'=>611,'S'=>500,'T'=>556,'U'=>722,'V'=>611,'W'=>833,
'X'=>611,'Y'=>556,'Z'=>556,'['=>389,'\\'=>278,']'=>389,'^'=>422,'_'=>500,'`'=>333,'a'=>500,'b'=>500,'c'=>444,'d'=>500,'e'=>444,'f'=>278,'g'=>500,'h'=>500,'i'=>278,'j'=>278,'k'=>444,'l'=>278,'m'=>722,
'n'=>500,'o'=>500,'p'=>500,'q'=>500,'r'=>389,'s'=>389,'t'=>278,'u'=>500,'v'=>444,'w'=>667,'x'=>444,'y'=>444,'z'=>389,'{'=>400,'|'=>275,'}'=>400,'~'=>541,chr(127)=>350,chr(128)=>500,chr(129)=>350,chr(130)=>333,chr(131)=>500,
chr(132)=>556,chr(133)=>889,chr(134)=>500,chr(135)=>500,chr(136)=>333,chr(137)=>1000,chr(138)=>500,chr(139)=>333,chr(140)=>944,chr(141)=>350,chr(142)=>556,chr(143)=>350,chr(144)=>350,chr(145)=>333,chr(146)=>333,chr(147)=>556,chr(148)=>556,chr(149)=>350,chr(150)=>500,chr(151)=>889,chr(152)=>333,chr(153)=>980,
chr(154)=>389,chr(155)=>333,chr(156)=>667,chr(157)=>350,chr(158)=>389,chr(159)=>556,chr(160)=>250,chr(161)=>389,chr(162)=>500,chr(163)=>500,chr(164)=>500,chr(165)=>500,chr(166)=>275,chr(167)=>500,chr(168)=>333,chr(169)=>760,chr(170)=>276,chr(171)=>500,chr(172)=>675,chr(173)=>333,chr(174)=>760,chr(175)=>333,
chr(176)=>400,chr(177)=>675,chr(178)=>300,chr(179)=>300,chr(180)=>333,chr(181)=>500,chr(182)=>523,chr(183)=>250,chr(184)=>333,chr(185)=>300,chr(186)=>310,chr(187)=>500,chr(188)=>750,chr(189)=>750,chr(190)=>750,chr(191)=>500,chr(192)=>611,chr(193)=>611,chr(194)=>611,chr(195)=>611,chr(196)=>611,chr(197)=>611,
chr(198)=>889,chr(199)=>667,chr(200)=>611,chr(201)=>611,chr(202)=>611,chr(203)=>611,chr(204)=>333,chr(205)=>333,chr(206)=>333,chr(207)=>333,chr(208)=>722,chr(209)=>667,chr(210)=>722,chr(211)=>722,chr(212)=>722,chr(213)=>722,chr(214)=>722,chr(215)=>675,chr(216)=>722,chr(217)=>722,chr(218)=>722,chr(219)=>722,
chr(220)=>722,chr(221)=>556,chr(222)=>611,chr(223)=>500,chr(224)=>500,chr(225)=>500,chr(226)=>500,chr(227)=>500,chr(228)=>500,chr(229)=>500,chr(230)=>667,chr(231)=>444,chr(232)=>444,chr(233)=>444,chr(234)=>444,chr(235)=>444,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>500,chr(241)=>500,
chr(242)=>500,chr(243)=>500,chr(244)=>500,chr(245)=>500,chr(246)=>500,chr(247)=>675,chr(248)=>500,chr(249)=>500,chr(250)=>500,chr(251)=>500,chr(252)=>500,chr(253)=>444,chr(254)=>500,chr(255)=>444);
$enc = 'cp1252';
$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));
?>

View File

@@ -0,0 +1,20 @@
<?php
$type = 'Core';
$name = 'ZapfDingbats';
$up = -100;
$ut = 50;
$cw = array(
chr(0)=>0,chr(1)=>0,chr(2)=>0,chr(3)=>0,chr(4)=>0,chr(5)=>0,chr(6)=>0,chr(7)=>0,chr(8)=>0,chr(9)=>0,chr(10)=>0,chr(11)=>0,chr(12)=>0,chr(13)=>0,chr(14)=>0,chr(15)=>0,chr(16)=>0,chr(17)=>0,chr(18)=>0,chr(19)=>0,chr(20)=>0,chr(21)=>0,
chr(22)=>0,chr(23)=>0,chr(24)=>0,chr(25)=>0,chr(26)=>0,chr(27)=>0,chr(28)=>0,chr(29)=>0,chr(30)=>0,chr(31)=>0,' '=>278,'!'=>974,'"'=>961,'#'=>974,'$'=>980,'%'=>719,'&'=>789,'\''=>790,'('=>791,')'=>690,'*'=>960,'+'=>939,
','=>549,'-'=>855,'.'=>911,'/'=>933,'0'=>911,'1'=>945,'2'=>974,'3'=>755,'4'=>846,'5'=>762,'6'=>761,'7'=>571,'8'=>677,'9'=>763,':'=>760,';'=>759,'<'=>754,'='=>494,'>'=>552,'?'=>537,'@'=>577,'A'=>692,
'B'=>786,'C'=>788,'D'=>788,'E'=>790,'F'=>793,'G'=>794,'H'=>816,'I'=>823,'J'=>789,'K'=>841,'L'=>823,'M'=>833,'N'=>816,'O'=>831,'P'=>923,'Q'=>744,'R'=>723,'S'=>749,'T'=>790,'U'=>792,'V'=>695,'W'=>776,
'X'=>768,'Y'=>792,'Z'=>759,'['=>707,'\\'=>708,']'=>682,'^'=>701,'_'=>826,'`'=>815,'a'=>789,'b'=>789,'c'=>707,'d'=>687,'e'=>696,'f'=>689,'g'=>786,'h'=>787,'i'=>713,'j'=>791,'k'=>785,'l'=>791,'m'=>873,
'n'=>761,'o'=>762,'p'=>762,'q'=>759,'r'=>759,'s'=>892,'t'=>892,'u'=>788,'v'=>784,'w'=>438,'x'=>138,'y'=>277,'z'=>415,'{'=>392,'|'=>392,'}'=>668,'~'=>668,chr(127)=>0,chr(128)=>390,chr(129)=>390,chr(130)=>317,chr(131)=>317,
chr(132)=>276,chr(133)=>276,chr(134)=>509,chr(135)=>509,chr(136)=>410,chr(137)=>410,chr(138)=>234,chr(139)=>234,chr(140)=>334,chr(141)=>334,chr(142)=>0,chr(143)=>0,chr(144)=>0,chr(145)=>0,chr(146)=>0,chr(147)=>0,chr(148)=>0,chr(149)=>0,chr(150)=>0,chr(151)=>0,chr(152)=>0,chr(153)=>0,
chr(154)=>0,chr(155)=>0,chr(156)=>0,chr(157)=>0,chr(158)=>0,chr(159)=>0,chr(160)=>0,chr(161)=>732,chr(162)=>544,chr(163)=>544,chr(164)=>910,chr(165)=>667,chr(166)=>760,chr(167)=>760,chr(168)=>776,chr(169)=>595,chr(170)=>694,chr(171)=>626,chr(172)=>788,chr(173)=>788,chr(174)=>788,chr(175)=>788,
chr(176)=>788,chr(177)=>788,chr(178)=>788,chr(179)=>788,chr(180)=>788,chr(181)=>788,chr(182)=>788,chr(183)=>788,chr(184)=>788,chr(185)=>788,chr(186)=>788,chr(187)=>788,chr(188)=>788,chr(189)=>788,chr(190)=>788,chr(191)=>788,chr(192)=>788,chr(193)=>788,chr(194)=>788,chr(195)=>788,chr(196)=>788,chr(197)=>788,
chr(198)=>788,chr(199)=>788,chr(200)=>788,chr(201)=>788,chr(202)=>788,chr(203)=>788,chr(204)=>788,chr(205)=>788,chr(206)=>788,chr(207)=>788,chr(208)=>788,chr(209)=>788,chr(210)=>788,chr(211)=>788,chr(212)=>894,chr(213)=>838,chr(214)=>1016,chr(215)=>458,chr(216)=>748,chr(217)=>924,chr(218)=>748,chr(219)=>918,
chr(220)=>927,chr(221)=>928,chr(222)=>928,chr(223)=>834,chr(224)=>873,chr(225)=>828,chr(226)=>924,chr(227)=>924,chr(228)=>917,chr(229)=>930,chr(230)=>931,chr(231)=>463,chr(232)=>883,chr(233)=>836,chr(234)=>836,chr(235)=>867,chr(236)=>867,chr(237)=>696,chr(238)=>696,chr(239)=>874,chr(240)=>0,chr(241)=>874,
chr(242)=>760,chr(243)=>946,chr(244)=>771,chr(245)=>865,chr(246)=>771,chr(247)=>888,chr(248)=>967,chr(249)=>888,chr(250)=>831,chr(251)=>873,chr(252)=>927,chr(253)=>970,chr(254)=>918,chr(255)=>0);
$uv = array(32=>32,33=>array(9985,4),37=>9742,38=>array(9990,4),42=>9755,43=>9758,44=>array(9996,28),72=>9733,73=>array(10025,35),108=>9679,109=>10061,110=>9632,111=>array(10063,4),115=>9650,116=>9660,117=>9670,118=>10070,119=>9687,120=>array(10072,7),128=>array(10088,14),161=>array(10081,7),168=>9827,169=>9830,170=>9829,171=>9824,172=>array(9312,10),182=>array(10102,31),213=>8594,214=>array(8596,2),216=>array(10136,24),241=>array(10161,14));
?>

1910
core/lib/fpdf/fpdf.php Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -69,9 +69,9 @@ if (empty($user) || empty($user->email)) {
$suser->Load("email = ?", array($ssoUserEmail)); $suser->Load("email = ?", array($ssoUserEmail));
} }
LogManager::getInstance()->info('SSO SAML User:'.print_r($suser, true)); LogManager::getInstance()->info('SSO SAML User:'.print_r($suser->email, true));
if (empty($suser)) { if (empty($suser) || empty($suser->id)) {
header("Location:" . CLIENT_BASE_URL . "login.php?f=1"); header("Location:" . CLIENT_BASE_URL . "logout.php");
exit(); exit();
} }
$ssoUserLoaded = true; $ssoUserLoaded = true;

View File

@@ -1,5 +1,9 @@
<?php <?php
$migrationList = []; $migrationList = [];
$migrationList[] = 'v20210626_290004_add_s3_settings';
$migrationList[] = 'v20210606_290003_system_meta_data';
$migrationList[] = 'v20210606_290002_add_aws_region';
$migrationList[] = 'v20210606_290001_update_s3_config';
$migrationList[] = 'v20210402_280006_modify_attendance_rep'; $migrationList[] = 'v20210402_280006_modify_attendance_rep';
$migrationList[] = 'v20210327_280005_saml_settings'; $migrationList[] = 'v20210327_280005_saml_settings';
$migrationList[] = 'v20210228_280003_add_share_with_employee'; $migrationList[] = 'v20210228_280003_add_share_with_employee';

View File

@@ -0,0 +1,31 @@
<?php
namespace Classes\Migration;
class v20210606_290001_update_s3_config extends AbstractMigration
{
public function up()
{
$sql = <<<'SQL'
UPDATE `Settings`
SET name = 'Files: Amazon S3 Secret for File Upload'
WHERE name = 'Files: Amazone S3 Secret for File Upload';
SQL;
$this->executeQuery($sql);
$sql = <<<'SQL'
UPDATE `Settings`
SET category = 'System'
WHERE name like 'Files:%';
SQL;
return $this->executeQuery($sql);
}
public function down()
{
return true;
}
}

View File

@@ -0,0 +1,31 @@
<?php
namespace Classes\Migration;
class v20210606_290002_add_aws_region extends AbstractMigration {
public function up(){
$sql[] = <<<'SQL'
REPLACE INTO `Settings` (`name`, `value`, `description`, `meta`, `category`)
VALUES (
'System: AWS Region',
'us-east-1',
'Amazon SWS Region used for file storage',
'',
'System'
);
SQL;
$result = true;
foreach ($sql as $query) {
$result = $result && $this->executeQuery($query);
}
return $result;
}
public function down(){
return true;
}
}

View File

@@ -0,0 +1,22 @@
<?php
namespace Classes\Migration;
class v20210606_290003_system_meta_data extends AbstractMigration {
public function up(){
$sql = <<<'SQL'
create table `SystemData` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(50) not null,
`value` text default null,
primary key (`id`),
unique key `name` (`name`)
) engine=innodb default charset=utf8;
SQL;
return $this->executeQuery($sql);
}
public function down(){
return true;
}
}

View File

@@ -0,0 +1,28 @@
<?php
namespace Classes\Migration;
class v20210626_290004_add_s3_settings extends AbstractMigration
{
public function up()
{
$sql = <<<'SQL'
REPLACE INTO `Settings` (`name`, `value`, `description`, `meta`, `category`) VALUES
('Files: Upload Files to S3', '0', '','["value", {"label":"Value","type":"select","source":[["1","Yes"],["0","No"]]}]', 'System'),
('Files: Amazon S3 Key for File Upload', '', 'Please provide S3 Key for uploading files','', 'System'),
('Files: Amazon S3 Secret for File Upload', '', 'Please provide S3 Secret for uploading files','', 'System'),
('Files: S3 Bucket', '', 'Please provide S3 Bucket name for uploading files','', 'System'),
('Files: S3 Web Url', '', 'Please provide Url to the s3 bucket','', 'System'),
('System: AWS Region', 'us-east-1', 'Amazon AWS Region used for file storage','', 'System');
SQL;
return $this->executeQuery($sql);
}
public function down()
{
return true;
}
}

View File

@@ -3,20 +3,28 @@
use Classes\BaseService; use Classes\BaseService;
use Classes\CustomFieldManager; use Classes\CustomFieldManager;
use Classes\JwtTokenService; use Classes\JwtTokenService;
use Classes\MemoryCacheService;
use Classes\Migration\MigrationManager; use Classes\Migration\MigrationManager;
use Classes\NotificationManager; use Classes\NotificationManager;
use Classes\RedisCacheService;
use Classes\ReportHandler; use Classes\ReportHandler;
use Classes\SettingsManager; use Classes\SettingsManager;
use Model\Audit;
use Model\BaseModel; use Model\BaseModel;
use Model\DataEntryBackup;
use Model\File;
use Model\Notification;
use Model\Report;
use Model\RestAccessToken;
use Model\Setting;
use Utils\LogManager; use Utils\LogManager;
if (!defined("AWS_REGION")) {
define('AWS_REGION', 'us-east-1');
}
include(APP_BASE_PATH.'lib/adodb512/adodb.inc.php'); include(APP_BASE_PATH.'lib/adodb512/adodb.inc.php');
include(APP_BASE_PATH.'lib/adodb512/adodb-active-record.inc.php'); include(APP_BASE_PATH.'lib/adodb512/adodb-active-record.inc.php');
$ADODB_ASSOC_CASE = 2; $ADODB_ASSOC_CASE = 2;
include(APP_BASE_PATH.'lib/fpdf/fpdf.php');
//detect admin and user modules //detect admin and user modules
if (defined("MODULE_PATH")) { if (defined("MODULE_PATH")) {
$tArr = explode("/", MODULE_PATH); $tArr = explode("/", MODULE_PATH);
@@ -38,13 +46,13 @@ $dbLocal = NewADOConnection('mysqli');
$res = $dbLocal->Connect(APP_HOST, APP_USERNAME, APP_PASSWORD, APP_DB); $res = $dbLocal->Connect(APP_HOST, APP_USERNAME, APP_PASSWORD, APP_DB);
\Model\File::SetDatabaseAdapter($dbLocal); File::SetDatabaseAdapter($dbLocal);
\Model\Setting::SetDatabaseAdapter($dbLocal); Setting::SetDatabaseAdapter($dbLocal);
\Model\Report::SetDatabaseAdapter($dbLocal); Report::SetDatabaseAdapter($dbLocal);
\Model\DataEntryBackup::SetDatabaseAdapter($dbLocal); DataEntryBackup::SetDatabaseAdapter($dbLocal);
\Model\Audit::SetDatabaseAdapter($dbLocal); Audit::SetDatabaseAdapter($dbLocal);
\Model\Notification::SetDatabaseAdapter($dbLocal); Notification::SetDatabaseAdapter($dbLocal);
\Model\RestAccessToken::SetDatabaseAdapter($dbLocal); RestAccessToken::SetDatabaseAdapter($dbLocal);
$baseService = BaseService::getInstance(); $baseService = BaseService::getInstance();
@@ -72,14 +80,19 @@ if (defined('REDIS_SERVER_URI')
&& QUERY_CACHE_TYPE === 'redis' && QUERY_CACHE_TYPE === 'redis'
) { ) {
BaseService::getInstance()->setCacheService( BaseService::getInstance()->setCacheService(
new \Classes\RedisCacheService(REDIS_SERVER_URI, CLIENT_NAME) new RedisCacheService(REDIS_SERVER_URI, CLIENT_NAME)
); );
} else { } else {
BaseService::getInstance()->setCacheService( BaseService::getInstance()->setCacheService(
new \Classes\MemoryCacheService(CLIENT_NAME) new MemoryCacheService(CLIENT_NAME)
); );
} }
$awsRegion = SettingsManager::getInstance()->getSetting("System: AWS Region");
if (!defined("AWS_REGION")) {
define('AWS_REGION', empty($awsRegion) ? 'us-east-1' : $awsRegion);
}
$samlEnabled = SettingsManager::getInstance()->getSetting("SAML: Enabled"); $samlEnabled = SettingsManager::getInstance()->getSetting("SAML: Enabled");
if ($samlEnabled === '1') { if ($samlEnabled === '1') {
include APP_BASE_PATH . 'lib/saml2/Utilities.php'; include APP_BASE_PATH . 'lib/saml2/Utilities.php';

View File

@@ -3,7 +3,10 @@
use Classes\BaseService; use Classes\BaseService;
use Classes\IceResponse; use Classes\IceResponse;
use Classes\PasswordManager; use Classes\PasswordManager;
use Classes\Pdf\PDFRegister;
use Classes\SettingsManager;
use Metadata\Common\Model\SupportedLanguage; use Metadata\Common\Model\SupportedLanguage;
use Model\File;
use Users\Common\Model\User; use Users\Common\Model\User;
use Utils\LogManager; use Utils\LogManager;
use Classes\Exception\IceHttpException; use Classes\Exception\IceHttpException;
@@ -173,19 +176,20 @@ try {// Domain aware input cleanup
$type = strtolower(substr($file->filename, strrpos($file->filename, ".") + 1)); $type = strtolower(substr($file->filename, strrpos($file->filename, ".") + 1));
if ($file->name == $name) { if ($file->name == $name) {
$ret['status'] = "SUCCESS"; $ret['status'] = "SUCCESS";
if (\Classes\SettingsManager::getInstance()->getSetting("Files: Upload Files to S3") == '1') { $file->ext = explode('.', $file->filename)[1];
$uploadFilesToS3Key = \Classes\SettingsManager::getInstance()->getSetting("Files: Amazon S3 Key for File Upload"); if (SettingsManager::getInstance()->getSetting("Files: Upload Files to S3") == '1') {
$uploadFilesToS3Secret = \Classes\SettingsManager::getInstance()->getSetting("Files: Amazone S3 Secret for File Upload"); $uploadFilesToS3Key = SettingsManager::getInstance()->getSetting("Files: Amazon S3 Key for File Upload");
$uploadFilesToS3Secret = SettingsManager::getInstance()->getSetting("Files: Amazon S3 Secret for File Upload");
$s3FileSys = new \Classes\S3FileSystem($uploadFilesToS3Key, $uploadFilesToS3Secret); $s3FileSys = new \Classes\S3FileSystem($uploadFilesToS3Key, $uploadFilesToS3Secret);
$s3WebUrl = \Classes\SettingsManager::getInstance()->getSetting("Files: S3 Web Url"); $s3WebUrl = SettingsManager::getInstance()->getSetting("Files: S3 Web Url");
$fileUrl = $s3WebUrl . CLIENT_NAME . "/" . $file->filename; $fileUrl = $s3WebUrl . CLIENT_NAME . "/" . $file->filename;
$fileUrl = $s3FileSys->generateExpiringURL($fileUrl); $fileUrl = $s3FileSys->generateExpiringURL($fileUrl);
$file->filename = $fileUrl; $file->filename = $fileUrl;
} else { } else {
$file->filename = CLIENT_BASE_URL . 'data/' . $file->filename; $file->filename = \Classes\FileService::getInstance()->getLocalSecureUrl($file->filename);
} }
$ret['data'] = $file; $ret['data'] = BaseService::getInstance()->cleanUpAll($file);
} else { } else {
$ret['status'] = "ERROR"; $ret['status'] = "ERROR";
} }
@@ -193,21 +197,49 @@ try {// Domain aware input cleanup
$fileName = $_REQUEST['file']; $fileName = $_REQUEST['file'];
$fileName = str_replace("..", "", $fileName); $fileName = str_replace("..", "", $fileName);
$fileName = str_replace("/", "", $fileName); $fileName = str_replace("/", "", $fileName);
$fileName = CLIENT_BASE_PATH . 'data/' . $fileName;
if (!file_exists($fileName)) { $file = new File();
$file->Load('name = ?', array($fileName));
if ($fileName !== $file->name) {
$file->Load('filename = ?', array($fileName));
}
if (empty($file->id)) {
exit; exit;
} }
if (!file_exists(CLIENT_BASE_PATH . 'data/' . $file->filename)) {
exit;
}
$extension = explode('.', $file->filename)[1];
header('Content-Description: File Transfer'); header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream'); if ('png' === $extension) {
header('Content-Disposition: attachment; filename=' . basename($fileName)); header('Content-Type: image/png');
header('Content-Transfer-Encoding: binary'); } elseif ('gif' === $extension) {
header('Expires: 0'); header('Content-Type: image/png');
header('Cache-Control: must-revalidate'); } elseif ('jpg' === $extension || 'jpeg' === $extension) {
header('Pragma: public'); header('Content-Type: image/jpeg');
header('Content-Length: ' . filesize($fileName)); } elseif ('pdf' === $extension) {
header('Content-Type: application/pdf');
} elseif ('xml' === $extension) {
header('Content-Type: application/xml');
} else {
header('Content-Type: application/octet-stream');
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
}
header('Content-Disposition: attachment; filename=' . basename($file->filename));
header('Content-Length: ' . filesize(CLIENT_BASE_PATH . 'data/' . $file->filename));
ob_clean(); ob_clean();
flush(); flush();
readfile($fileName); readfile(CLIENT_BASE_PATH . 'data/' . $file->filename);
exit; exit;
} else if ($action == 'rsp') { // linked clicked from password change email } else if ($action == 'rsp') { // linked clicked from password change email
@@ -305,13 +337,31 @@ try {// Domain aware input cleanup
} }
} }
} }
try {
echo BaseService::getInstance()->safeJsonEncode($ret); if ($action == 'pdf') {
} catch (Exception $e) { $data = $_REQUEST['data'];
LogManager::getInstance()->error($e->getMessage()); $hash = $_REQUEST['h'];
LogManager::getInstance()->notifyException($e); PDFRegister::init();
echo json_encode(['status' => 'Error']); $callback = PDFRegister::get($hash);
if (empty($callback) || !$callback($data)->granted()) {
$ret['status'] = "ERROR";
$ret['message'] = "Invalid request";
} else {
$pdfBuilder = $callback($data);
$pdf = $pdfBuilder->createPdf();
$pdf->SetAuthor(SettingsManager::getInstance()->getSetting('Company: Name'));
$pdf->Output();
}
} else {
try {
echo BaseService::getInstance()->safeJsonEncode($ret);
} catch (Exception $e) {
LogManager::getInstance()->error($e->getMessage());
LogManager::getInstance()->notifyException($e);
echo json_encode(['status' => 'Error']);
}
} }
} catch (IceHttpException $e) { } catch (IceHttpException $e) {
http_response_code($e->getCode()); http_response_code($e->getCode());
echo json_encode(['message' => $e->getMessage()]); echo json_encode(['message' => $e->getMessage()]);

View File

@@ -109,11 +109,10 @@ class AttendanceStatus extends BaseModel
$data[] = $entry; $data[] = $entry;
} }
function cmp($a, $b)
{ usort($data, function ($a, $b) {
return $a->statusId - $b->statusId; return $a->statusId - $b->statusId;
} });
usort($data, "cmp");
return $data; return $data;
} }

View File

@@ -0,0 +1,8 @@
<?php
namespace Classes;
interface Authorizable
{
public function granted() : bool;
}

View File

@@ -22,6 +22,7 @@ use Metadata\Common\Model\CalculationHook;
use Model\BaseModel; use Model\BaseModel;
use Model\DataEntryBackup; use Model\DataEntryBackup;
use Model\Setting; use Model\Setting;
use Model\SystemData;
use Modules\Common\Model\Module; use Modules\Common\Model\Module;
use Permissions\Common\Model\Permission; use Permissions\Common\Model\Permission;
use Users\Common\Model\User; use Users\Common\Model\User;
@@ -1978,4 +1979,38 @@ END;
$dbUser = $this->getCurrentDBUser(); $dbUser = $this->getCurrentDBUser();
return RestApiManager::getInstance()->getAccessTokenForUser($dbUser); return RestApiManager::getInstance()->getAccessTokenForUser($dbUser);
} }
public function isSubordinateEmployee($supervisorId, $subordinateId)
{
$employee = new Employee();
$employee->Load('id = ? and supervisor = ?', [$subordinateId, $supervisorId]);
return ($supervisorId == $employee->supervisor && $subordinateId == $employee->id);
}
public function setSystemData($name, $value)
{
$sysData = new SystemData();
$sysData->Load('name = ?', [$name]);
if (!empty($sysData->id)) {
$sysData->value = $value;
} else {
$sysData->name = $name;
$sysData->value = $value;
}
return $sysData->Save();
}
public function getSystemData($name)
{
$sysData = new SystemData();
$sysData->Load('name = ?', [$name]);
if (!empty($sysData->id) && $sysData->name === $name) {
return $sysData->value;
}
return null;
}
} }

View File

@@ -76,15 +76,20 @@ class FileService
if (file_exists("/tmp/".$file->filename."_orig")) { if (file_exists("/tmp/".$file->filename."_orig")) {
//Resize image to 100 //Resize image to 100
$img = new \Classes\SimpleImage("/tmp/".$file->filename."_orig"); try {
$img->fitToWidth(140); $img = new \Classes\SimpleImage("/tmp/" . $file->filename . "_orig");
$img->save("/tmp/".$file->filename); $img->fitToWidth(140);
$img->save("/tmp/" . $file->filename);
} catch (\Exception $e) {
LogManager::getInstance()->error($e->getTraceAsString());
return null;
}
$uploadFilesToS3Key = SettingsManager::getInstance()->getSetting( $uploadFilesToS3Key = SettingsManager::getInstance()->getSetting(
"Files: Amazon S3 Key for File Upload" "Files: Amazon S3 Key for File Upload"
); );
$uploadFilesToS3Secret = SettingsManager::getInstance()->getSetting( $uploadFilesToS3Secret = SettingsManager::getInstance()->getSetting(
"Files: Amazone S3 Secret for File Upload" "Files: Amazon S3 Secret for File Upload"
); );
$s3Bucket = SettingsManager::getInstance()->getSetting("Files: S3 Bucket"); $s3Bucket = SettingsManager::getInstance()->getSetting("Files: S3 Bucket");
@@ -132,11 +137,7 @@ class FileService
if (empty($file->id)) { if (empty($file->id)) {
LogManager::getInstance()->info("Small profile image ".$profileImage->name."_small not found"); LogManager::getInstance()->info("Small profile image ".$profileImage->name."_small not found");
$largeFileUrl = $this->getFileUrl($profileImage->name); if (file_exists(CLIENT_BASE_PATH.'data/'.$profileImage->filename)) {
file_put_contents("/tmp/".$profileImage->filename."_orig", file_get_contents($largeFileUrl));
if (file_exists("/tmp/".$profileImage->filename."_orig")) {
//Resize image to 100 //Resize image to 100
$file->name = $profileImage->name."_small"; $file->name = $profileImage->name."_small";
@@ -144,16 +145,19 @@ class FileService
$file->$signInMappingField = $profileImage->$signInMappingField; $file->$signInMappingField = $profileImage->$signInMappingField;
$file->filename = $file->name.str_replace($profileImage->name, "", $profileImage->filename); $file->filename = $file->name.str_replace($profileImage->name, "", $profileImage->filename);
$img = new \Classes\SimpleImage("/tmp/".$profileImage->filename."_orig"); try {
$img->fitToWidth(140); $img = new \Classes\SimpleImage(CLIENT_BASE_PATH . 'data/' . $profileImage->filename);
$img->fitToWidth(140);
$img->save(CLIENT_BASE_PATH.'data/'.$file->filename); $img->save(CLIENT_BASE_PATH . 'data/' . $file->filename);
$file->employee = $profileImage->employee; $file->employee = $profileImage->employee;
$file->file_group = 'profile_image_small'; $file->file_group = 'profile_image_small';
$file->size = filesize(CLIENT_BASE_PATH.'data/'.$file->filename); $file->size = filesize(CLIENT_BASE_PATH . 'data/' . $file->filename);
$file->size_text = $this->getReadableSize($file->size); $file->size_text = $this->getReadableSize($file->size);
$file->Save(); $file->Save();
unlink("/tmp/".$file->filename."_orig"); } catch (\Exception $e) {
LogManager::getInstance()->error($e->getTraceAsString());
return null;
}
return $file; return $file;
} }
@@ -182,7 +186,7 @@ class FileService
"Files: Amazon S3 Key for File Upload" "Files: Amazon S3 Key for File Upload"
); );
$uploadFilesToS3Secret = SettingsManager::getInstance()->getSetting( $uploadFilesToS3Secret = SettingsManager::getInstance()->getSetting(
"Files: Amazone S3 Secret for File Upload" "Files: Amazon S3 Secret for File Upload"
); );
$s3FileSys = new S3FileSystem($uploadFilesToS3Key, $uploadFilesToS3Secret); $s3FileSys = new S3FileSystem($uploadFilesToS3Key, $uploadFilesToS3Secret);
$s3WebUrl = SettingsManager::getInstance()->getSetting("Files: S3 Web Url"); $s3WebUrl = SettingsManager::getInstance()->getSetting("Files: S3 Web Url");
@@ -204,7 +208,7 @@ class FileService
$profile->image = $file->filename; $profile->image = $file->filename;
} else { } else {
$fileNew = $this->checkAddSmallProfileImage($file); $fileNew = $this->checkAddSmallProfileImage($file);
$profile->image = CLIENT_BASE_URL.'data/'.$fileNew->filename; $profile->image = $this->getFileUrl($fileNew->filename);
} }
} else { } else {
$profile->image = $this->generateProfileImage($profile->first_name, $profile->last_name); $profile->image = $this->generateProfileImage($profile->first_name, $profile->last_name);
@@ -225,7 +229,7 @@ class FileService
"Files: Amazon S3 Key for File Upload" "Files: Amazon S3 Key for File Upload"
); );
$uploadFilesToS3Secret = SettingsManager::getInstance()->getSetting( $uploadFilesToS3Secret = SettingsManager::getInstance()->getSetting(
"Files: Amazone S3 Secret for File Upload" "Files: Amazon S3 Secret for File Upload"
); );
$s3FileSys = new S3FileSystem($uploadFilesToS3Key, $uploadFilesToS3Secret); $s3FileSys = new S3FileSystem($uploadFilesToS3Key, $uploadFilesToS3Secret);
$s3WebUrl = SettingsManager::getInstance()->getSetting("Files: S3 Web Url"); $s3WebUrl = SettingsManager::getInstance()->getSetting("Files: S3 Web Url");
@@ -241,7 +245,7 @@ class FileService
} elseif (substr($file->filename, 0, 8) === 'https://') { } elseif (substr($file->filename, 0, 8) === 'https://') {
$profile->image = $file->filename; $profile->image = $file->filename;
} else { } else {
$profile->image = CLIENT_BASE_URL.'data/'.$file->filename; $profile->image = $this->getLocalSecureUrl($file->filename);
} }
} else { } else {
$profile->image = $this->generateProfileImage($profile->first_name, $profile->last_name); $profile->image = $this->generateProfileImage($profile->first_name, $profile->last_name);
@@ -255,6 +259,10 @@ class FileService
$file = new File(); $file = new File();
$file->Load('name = ?', array($fileName)); $file->Load('name = ?', array($fileName));
if ($fileName !== $file->name) {
$file->Load('filename = ?', array($fileName));
}
$uploadFilesToS3 = SettingsManager::getInstance()->getSetting("Files: Upload Files to S3"); $uploadFilesToS3 = SettingsManager::getInstance()->getSetting("Files: Upload Files to S3");
if ($uploadFilesToS3 == "1") { if ($uploadFilesToS3 == "1") {
@@ -262,7 +270,7 @@ class FileService
"Files: Amazon S3 Key for File Upload" "Files: Amazon S3 Key for File Upload"
); );
$uploadFilesToS3Secret = SettingsManager::getInstance()->getSetting( $uploadFilesToS3Secret = SettingsManager::getInstance()->getSetting(
"Files: Amazone S3 Secret for File Upload" "Files: Amazon S3 Secret for File Upload"
); );
$s3FileSys = new S3FileSystem($uploadFilesToS3Key, $uploadFilesToS3Secret); $s3FileSys = new S3FileSystem($uploadFilesToS3Key, $uploadFilesToS3Secret);
$s3WebUrl = SettingsManager::getInstance()->getSetting("Files: S3 Web Url"); $s3WebUrl = SettingsManager::getInstance()->getSetting("Files: S3 Web Url");
@@ -282,10 +290,22 @@ class FileService
return $expireUrl; return $expireUrl;
} else { } else {
return CLIENT_BASE_URL.'data/'.$file->filename; return CLIENT_BASE_URL.'service.php?a=download&file='.$file->filename;
} }
} }
public function getLocalSecureUrl($fileName)
{
$file = new File();
$file->Load('name = ?', array($fileName));
if ($fileName !== $file->name) {
$file->Load('filename = ?', array($fileName));
}
return CLIENT_BASE_URL.'service.php?a=download&file='.$file->filename;
}
public function deleteProfileImage($profileId) public function deleteProfileImage($profileId)
{ {
$file = new File(); $file = new File();
@@ -325,7 +345,7 @@ class FileService
"Files: Amazon S3 Key for File Upload" "Files: Amazon S3 Key for File Upload"
); );
$uploadFilesToS3Secret = SettingsManager::getInstance()->getSetting( $uploadFilesToS3Secret = SettingsManager::getInstance()->getSetting(
"Files: Amazone S3 Secret for File Upload" "Files: Amazon S3 Secret for File Upload"
); );
$s3Bucket = SettingsManager::getInstance()->getSetting("Files: S3 Bucket"); $s3Bucket = SettingsManager::getInstance()->getSetting("Files: S3 Bucket");
@@ -355,7 +375,7 @@ class FileService
"Files: Amazon S3 Key for File Upload" "Files: Amazon S3 Key for File Upload"
); );
$uploadFilesToS3Secret = SettingsManager::getInstance()->getSetting( $uploadFilesToS3Secret = SettingsManager::getInstance()->getSetting(
"Files: Amazone S3 Secret for File Upload" "Files: Amazon S3 Secret for File Upload"
); );
$s3Bucket = SettingsManager::getInstance()->getSetting("Files: S3 Bucket"); $s3Bucket = SettingsManager::getInstance()->getSetting("Files: S3 Bucket");
@@ -400,15 +420,34 @@ class FileService
{ {
$seed = substr($first, 0, 1); $seed = substr($first, 0, 1);
if (empty($last)) { if (empty($last)) {
$seed .= substr($first, -1); $seed .= utf8_encode(substr($first, -1));
} else { } else {
$seed .= substr($last, 0, 1); $seed .= utf8_encode(substr($last, 0, 1));
} }
md5($seed . $last); // TODO - remove code after chinese character issue is resolved
// if(strlen($seed) != mb_strlen($seed, 'utf-8')) {
// $char1 = substr($first, 0, 1);
// $char1 = chr($this->uniord($char1) % 26 + 65);
// if (empty($last)) {
// $char2 = substr($first, -1);
// } else {
// $char2 = substr($last, 0, 1);
// }
// $char2 = chr($this->uniord($char2) % 26 + 65);
// $seed = $char1.$char2;
// }
return sprintf( return sprintf(
'https://avatars.dicebear.com/api/initials/:%s.svg', 'https://avatars.dicebear.com/api/initials/:%s.svg',
$seed . substr(md5($first . $last), -5) $seed . substr(md5($first . $last), -5)
); );
} }
private function uniord($u)
{
$k = mb_convert_encoding($u, 'UCS-2LE', 'UTF-8');
$k1 = ord(substr($k, 0, 1));
$k2 = ord(substr($k, 1, 1));
return $k2 * 256 + $k1;
}
} }

View File

@@ -8,6 +8,7 @@
namespace Classes\ModuleBuilderV2; namespace Classes\ModuleBuilderV2;
use Classes\BaseService;
use Classes\PermissionManager; use Classes\PermissionManager;
class ModuleBuilder class ModuleBuilder
@@ -17,7 +18,7 @@ class ModuleBuilder
public function __construct() public function __construct()
{ {
$this->user = \Classes\BaseService::getInstance()->getCurrentUser(); $this->user = BaseService::getInstance()->getCurrentUser();
} }
/** /**

View File

@@ -0,0 +1,162 @@
<?php
namespace Classes\Pdf;
use Classes\SettingsManager;
class BasePdfTemplate extends \FPDF
{
protected $title;
protected $date;
const WIDTH = 210;
public function initialize($title)
{
$this->AliasNbPages();
$this->AddPage();
$this->SetTitle($title);
$this->date = $date = date('c');
}
// @codingStandardsIgnoreStart
function Header()
{
// Logo
try {
$this->Image(\Classes\UIManager::getInstance()->getCompanyLogoUrl(), 10, 10, 0, 10);
} catch (\Exception $e) {
}
PdfColour::setTextColor($this, PdfColour::GREY_100);
// Arial bold 15
$this->SetFont('Arial', '', 9);
// Company name
$companyName = SettingsManager::getInstance()->getSetting('Company: Name');
$this->Cell(30, 23, $companyName, 0, 0, 'L');
PdfColour::setDrawColor($this, PdfColour::GREY_100);
$this->Line(10, 26, self::WIDTH - 10, 26);
// Line break
$this->Ln(20);
}
function Footer()
{
PdfColour::setTextColor($this, PdfColour::GREY_100);
// Position at 1.5 cm from bottom
$this->SetY(-15);
// Arial italic 8
$this->SetFont('Arial', 'I', 8);
// Page number
$this->Cell(0, 10, 'Page '.$this->PageNo().'/{nb}, Date:'.$this->date, 0, 0, 'C');
}
// @codingStandardsIgnoreEnd
public function addH1($title, $style = 'B', $textAlignment = 'C')
{
$this->addH($title, $style, $textAlignment, 21);
}
public function addH2($title, $style = 'B', $textAlignment = 'C')
{
$this->addH($title, $style, $textAlignment, 17);
}
public function addH3($title, $style = 'B', $textAlignment = 'C')
{
$this->addH($title, $style, $textAlignment, 14);
}
public function addH($title, $style = 'B', $textAlignment = 'C', $fontSize = 16)
{
PdfColour::setTextColor($this, PdfColour::BLACK_LIGHT);
$this->SetFont('Arial', $style, $fontSize);
$this->Cell(0, 10, $title, 0, 1, $textAlignment);
}
public function addBorderedText($text)
{
$this->addText($text, '', 'L', 10, PdfColour::BLACK_LIGHT, 1, PdfColour::GREY_DARK);
}
public function addText(
$text,
$style = '',
$textAlignment = 'L',
$fontSize = 10,
$color = PdfColour::BLACK_LIGHT,
$cellBorder = 0,
$cellBorderColor = PdfColour::GREY_DARK
) {
PdfColour::setTextColor($this, $color);
$this->SetFont('Arial', $style, $fontSize);
if ($cellBorder === 1) {
PdfColour::setDrawColor($this, $cellBorderColor);
}
PdfColour::setFillColor($this, PdfColour::WHITE);
$this->MultiCell(0, 5, $text, $cellBorder, 1, $textAlignment);
}
public function addKeyValue($key, $value, $type = 'text')
{
PdfColour::setDrawColor($this, PdfColour::GREY_DARK);
PdfColour::setFillColor($this, PdfColour::GREY);
if ($type === 'textarea') {
$this->Cell(0, 10, $key, 1, 1, 'L', true);
} else {
$this->Cell(80, 10, $key, 1, 0, 'L', true);
}
PdfColour::setFillColor($this, PdfColour::WHITE);
if ($type === 'textarea') {
$this->MultiCell(0, 5, $value, 1, 1, 'L');
} elseif ($type === 'date') {
$value = date('Y-m-d', strtotime($value));
$this->Cell(110, 10, $value, 1, 1, 'L', true);
} elseif ($type === 'select2multi') {
$value = json_decode($value, true);
$value = !empty($value) ? join(',', $value) : '';
$this->Cell(110, 10, $value, 1, 1, 'L', true);
} else {
$this->Cell(110, 10, $value, 1, 1, 'L', true);
}
}
public function addKeyValueObject($key, $value)
{
PdfColour::setDrawColor($this, PdfColour::GREY_DARK);
PdfColour::setFillColor($this, PdfColour::GREY);
$this->Cell(80, 10, $key, 1, 0, 'L', true);
PdfColour::setFillColor($this, PdfColour::WHITE);
$this->MultiCell(110, 10, $value, 1, 1, true);
}
public function addHR($width = 0)
{
$this->Ln(2);
PdfColour::setDrawColor($this, PdfColour::GREY_DARK);
PdfColour::setFillColor($this, PdfColour::GREY_DARK);
$this->Cell($width, 0.2, '', 0, 0, '', true);
// Line break
$this->Ln(3);
}
public function getImageFromDataURI($dataURI)
{
$img = explode(',', $dataURI, 2)[1];
return 'data://text/plain;base64,'. $img;
}
public function addSignature($name, $data)
{
$image = $this->getImageFromDataURI($data);
$this->Ln(10);
$this->Image($image, $this->GetX(), $this->GetY(), 30, 0, 'png');
$this->Ln(30);
$this->addHR(30);
$this->addText($name);
}
}

View File

@@ -0,0 +1,27 @@
<?php
namespace Classes\Pdf;
use Invoices\InvoicePDFBuilder;
class PDFRegister
{
protected static $register = [];
public static function init()
{
self::put('invoice', function ($data) {
return new InvoicePDFBuilder($data);
});
}
public static function put($key, $callback)
{
self::$register[$key] = $callback;
}
public static function get($key)
{
return self::$register[$key];
}
}

View File

@@ -0,0 +1,8 @@
<?php
namespace Classes\Pdf;
interface PdfBuilder
{
public function createPdf();
}

View File

@@ -0,0 +1,27 @@
<?php
namespace Classes\Pdf;
class PdfColour
{
const GREY = [224, 224, 224];
const GREY_DARK = [160, 160, 160];
const WHITE = [255, 255, 255];
const BLACK_LIGHT = [84, 84, 84];
const GREY_100 = [100, 100, 100];
public static function setFillColor(\FPDF $pdf, $color)
{
$pdf->SetFillColor($color[0], $color[1], $color[2]);
}
public static function setTextColor(\FPDF $pdf, $color)
{
$pdf->SetTextColor($color[0], $color[1], $color[2]);
}
public static function setDrawColor(\FPDF $pdf, $color)
{
$pdf->SetDrawColor($color[0], $color[1], $color[2]);
}
}

View File

@@ -0,0 +1,33 @@
<?php
namespace Classes;
use Employees\Common\Model\Employee;
use Users\Common\Model\User;
class StatsHelper
{
public static function getEmployeeCount()
{
$employee = new Employee();
$employeeCount = $employee->DB()->Execute("select count(id) from Employees");
if ($employeeCount) {
$employeeCount = intval($employeeCount->fields[0]);
return $employeeCount;
}
return 0;
}
public static function getUserCount()
{
$user = new User();
$userCount = $user->DB()->Execute("select count(id) from Users");
if ($userCount) {
$userCount = intval($userCount->fields[0]);
return $userCount;
}
return 0;
}
}

View File

@@ -121,7 +121,7 @@ class Uploader
$uploadFilesToS3 = SettingsManager::getInstance()->getSetting("Files: Upload Files to S3"); $uploadFilesToS3 = SettingsManager::getInstance()->getSetting("Files: Upload Files to S3");
$uploadFilesToS3Key = SettingsManager::getInstance()->getSetting("Files: Amazon S3 Key for File Upload"); $uploadFilesToS3Key = SettingsManager::getInstance()->getSetting("Files: Amazon S3 Key for File Upload");
$uploadFilesToS3Secret = SettingsManager::getInstance()->getSetting( $uploadFilesToS3Secret = SettingsManager::getInstance()->getSetting(
"Files: Amazone S3 Secret for File Upload" "Files: Amazon S3 Secret for File Upload"
); );
$s3Bucket = SettingsManager::getInstance()->getSetting("Files: S3 Bucket"); $s3Bucket = SettingsManager::getInstance()->getSetting("Files: S3 Bucket");
$s3WebUrl = SettingsManager::getInstance()->getSetting("Files: S3 Web Url"); $s3WebUrl = SettingsManager::getInstance()->getSetting("Files: S3 Web Url");

View File

@@ -0,0 +1,9 @@
<?php
namespace Connection\Admin\Api;
use Classes\SubActionManager;
class ConnectionActionManager extends SubActionManager
{
}

Some files were not shown because too many files have changed in this diff Show More