Calendar and PDF plugins moved to their own repos.
https://github.com/e107inc/calendar_menu https://github.com/e107inc/pdf
@ -1,282 +0,0 @@
|
||||
<?php
|
||||
/*
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2013 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
* Event calendar plugin - large calendar display
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* e107 Event calendar plugin
|
||||
*
|
||||
* Event calendar plugin - large calendar display
|
||||
*
|
||||
* @package e107_plugins
|
||||
* @subpackage event_calendar
|
||||
*/
|
||||
|
||||
if (!defined('e_SINGLE_ENTRY'))
|
||||
{
|
||||
require_once('../../class2.php');
|
||||
}
|
||||
|
||||
$e107 = e107::getInstance();
|
||||
$tp = e107::getParser();
|
||||
|
||||
if (!$e107->isInstalled('calendar_menu')) header('Location: '.e_BASE.'index.php');
|
||||
|
||||
if (isset($_POST['viewallevents']))
|
||||
{
|
||||
Header('Location: '.e_PLUGIN_ABS.'calendar_menu/event.php?' . $_POST['enter_new_val']);
|
||||
exit();
|
||||
}
|
||||
if (isset($_POST['doit']))
|
||||
{
|
||||
Header('Location: '.e_PLUGIN_ABS.'calendar_menu/event.php?ne.' . $_POST['enter_new_val']);
|
||||
exit();
|
||||
}
|
||||
if (isset($_POST['subs']))
|
||||
{
|
||||
Header('Location: '.e_PLUGIN_ABS.'calendar_menu/subscribe.php');
|
||||
exit();
|
||||
}
|
||||
if (isset($_POST['printlists']))
|
||||
{
|
||||
Header('Location: '.e_PLUGIN_ABS.'calendar_menu/ec_pf_page.php');
|
||||
exit();
|
||||
}
|
||||
|
||||
|
||||
require_once(e_PLUGIN.'calendar_menu/calendar_shortcodes.php');
|
||||
$calSc = new event_calendar_shortcodes();
|
||||
|
||||
include_lan(e_PLUGIN.'calendar_menu/languages/'.e_LANGUAGE.'.php');
|
||||
define('PAGE_NAME', EC_LAN_121);
|
||||
|
||||
require_once(e_PLUGIN.'calendar_menu/ecal_class.php');
|
||||
$ecal_class = new ecal_class;
|
||||
|
||||
if (is_readable(THEME.'calendar_template.php'))
|
||||
{
|
||||
require(THEME.'calendar_template.php');
|
||||
}
|
||||
else
|
||||
{
|
||||
require(e_PLUGIN.'calendar_menu/calendar_template.php');
|
||||
}
|
||||
|
||||
|
||||
$cat_filter = intval(varset($_POST['event_cat_ids'],-1));
|
||||
if ($cat_filter == -1) $cat_filter = '*';
|
||||
|
||||
require_once(HEADERF);
|
||||
|
||||
|
||||
// get date within area to display
|
||||
unset($dateArray);
|
||||
if (e_QUERY)
|
||||
{
|
||||
$qs = explode('.', e_QUERY); // Get date from query
|
||||
$dateArray = $ecal_class->gmgetdate($qs[0]);
|
||||
}
|
||||
if (!isset($dateArray))
|
||||
{ // Show current month
|
||||
$dateArray = $ecal_class->cal_date;
|
||||
}
|
||||
|
||||
// These are used in the day display loop
|
||||
$month = $dateArray['mon']; // Number of month being shown
|
||||
$year = $dateArray['year']; // Number of year being shown
|
||||
$nowmonth = $ecal_class->cal_date['mon'];
|
||||
$nowyear = $ecal_class->cal_date['year'];
|
||||
$nowday = $ecal_class->cal_date['mday'];
|
||||
|
||||
|
||||
// Set date window for display
|
||||
$monthstart = gmmktime(0, 0, 0, $month, 1, $year); // Start of month to be shown
|
||||
$monthend = gmmktime(0, 0, 0, $month + 1, 1, $year) - 1; // End of month to be shown
|
||||
|
||||
|
||||
$calSc->ecalClass = &$ecal_class;
|
||||
$calSc->setCalDate($dateArray);
|
||||
$calSc->catFilter = $cat_filter;
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// Start calculating text to display
|
||||
//-------------------------------------------------
|
||||
|
||||
// time switch buttons
|
||||
$cal_text = $tp->parseTemplate($CALENDAR_TIME_TABLE, FALSE, $calSc);
|
||||
|
||||
// navigation buttons
|
||||
$nav_text = $tp->parseTemplate($CALENDAR_NAVIGATION_TABLE, FALSE, $calSc);
|
||||
|
||||
// We'll need virtually all of the event-related fields, so get them regardless. Just cut back on category fields
|
||||
$ev_list = $ecal_class->get_events($monthstart, $monthend, FALSE, $cat_filter, TRUE, '*', 'event_cat_name,event_cat_icon');
|
||||
|
||||
// We create an array $events[] which has a 'primary' index of each day of the current month - 1..31 potentially
|
||||
// For each day there is then a sub-array entry for each event
|
||||
// Note that the new class-based retrieval adds an 'is_recent' flag to the data if changed according to the configured criteria
|
||||
$events = array();
|
||||
foreach ($ev_list as $row)
|
||||
{
|
||||
$row['startofevent'] = TRUE; // This sets 'large print' and so on for the first day of an event
|
||||
|
||||
// check for recurring events in this month (could also use is_array($row['event_start']) as a test)
|
||||
if($row['event_recurring'] != '0')
|
||||
{ // There could be several dates for the same event, if its a daily/weekly event
|
||||
$t_start = $row['event_start'];
|
||||
foreach ($t_start as $ev_start)
|
||||
{
|
||||
// Need to save event, copy marker for date
|
||||
$row['event_start'] = $ev_start;
|
||||
$events[gmdate('j',$ev_start)][] = $row;
|
||||
}
|
||||
}
|
||||
else
|
||||
{ // Its a 'normal' event
|
||||
$tmp = gmdate('j',$row['event_start']); // Day of month for start
|
||||
if ($row['event_allday'])
|
||||
{
|
||||
$tmp2 = $tmp; // Same day for start and end
|
||||
}
|
||||
else
|
||||
{
|
||||
$tmp2 = gmdate('j',$row['event_end']-1); // Day of month for end - knock off a second to allow for BST and suchlike
|
||||
}
|
||||
if(($row['event_start']>=$monthstart) && ($row['event_start']<=$monthend))
|
||||
{ // Start within month
|
||||
$events[$tmp][] = $row;
|
||||
$tmp++;
|
||||
if ($row['event_end']>$monthend)
|
||||
{ // End outside month
|
||||
$tmp2 = gmdate("t", $monthstart); // number of days in this month
|
||||
}
|
||||
}
|
||||
else
|
||||
{ // Start before month
|
||||
$tmp = 1;
|
||||
if ($row['event_end']>$monthend)
|
||||
{ // End outside month
|
||||
$tmp2 = gmdate("t", $monthstart); // number of days in this month
|
||||
}
|
||||
}
|
||||
// Now put in markers for all 'non-start' days within current month
|
||||
$row['startofevent'] = FALSE;
|
||||
for ($c= $tmp; $c<=$tmp2; $c++)
|
||||
{
|
||||
$events[$c][] = $row;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// ****** CAUTION - the category dropdown also used $sql object - take care to avoid interference!
|
||||
|
||||
$start = $monthstart;
|
||||
$numberdays = gmdate("t", $start); // number of days in this month
|
||||
|
||||
$text = "";
|
||||
$text .= $tp->parseTemplate($CALENDAR_CALENDAR_START, FALSE, $calSc);
|
||||
$text .= $tp->parseTemplate($CALENDAR_CALENDAR_HEADER_START, FALSE, $calSc);
|
||||
|
||||
// Display the column headers
|
||||
for ($i = 0; $i < 7; $i++)
|
||||
{
|
||||
$calSc->headerDay = $ecal_class->day_offset_string($i);
|
||||
$text .= $tp->parseTemplate($CALENDAR_CALENDAR_HEADER, FALSE, $calSc);
|
||||
}
|
||||
$text .= $tp->parseTemplate($CALENDAR_CALENDAR_HEADER_END, FALSE, $calSc);
|
||||
|
||||
|
||||
// Calculate number of days to skip before 'real' days on first line of calendar
|
||||
$firstdayoffset = gmdate('w',$start) - $ecal_class->ec_first_day_of_week;
|
||||
if ($firstdayoffset < 0) $firstdayoffset+= 7;
|
||||
|
||||
for ($i=0; $i<$firstdayoffset; $i++)
|
||||
{
|
||||
$text .= $tp->parseTemplate($CALENDAR_CALENDAR_DAY_NON, FALSE, $calSc);
|
||||
}
|
||||
|
||||
$loop = $firstdayoffset;
|
||||
|
||||
for ($c = 1; $c <= $numberdays; $c++)
|
||||
{ // Loop through the number of days in this month
|
||||
$calSc->todayStart = $start; // Start of current day
|
||||
$calSc->curDay = $c; // Current day of month
|
||||
|
||||
$got_ev = array_key_exists($c, $events) && is_array($events[$c]) && count($events[$c]) > 0; // Flag set if events on this day
|
||||
|
||||
// Highlight the current day.
|
||||
if ($nowday == $c && $month == $nowmonth && $year == $nowyear)
|
||||
{ //today
|
||||
$text .= $tp->parseTemplate($CALENDAR_CALENDAR_DAY_TODAY, FALSE, $calSc);
|
||||
}
|
||||
elseif ($got_ev)
|
||||
{ //day has events
|
||||
$text .= $tp->parseTemplate($CALENDAR_CALENDAR_DAY_EVENT, FALSE, $calSc);
|
||||
}
|
||||
else
|
||||
{ // no events and not today
|
||||
$text .= $tp->parseTemplate($CALENDAR_CALENDAR_DAY_EMPTY, FALSE, $calSc);
|
||||
}
|
||||
if ($got_ev)
|
||||
{
|
||||
foreach($events[$c] as $ev)
|
||||
{
|
||||
if ($ev['startofevent'])
|
||||
{
|
||||
$ev['indicat'] = '';
|
||||
$ev['imagesize'] = '8';
|
||||
$ev['fulltopic'] = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
$ev['indicat'] = '';
|
||||
$ev['imagesize'] = '4';
|
||||
$ev['fulltopic'] = FALSE;
|
||||
}
|
||||
//setScVar('event_calendar_shortcodes', 'event', $ev); // Give shortcodes the event data
|
||||
$calSc->event = $ev;
|
||||
$text .= $tp->parseTemplate($CALENDAR_SHOWEVENT, FALSE, $calSc);
|
||||
}
|
||||
}
|
||||
$text .= $tp->parseTemplate($CALENDAR_CALENDAR_DAY_END, FALSE, $calSc);
|
||||
|
||||
$loop++;
|
||||
if ($loop == 7)
|
||||
{
|
||||
$loop = 0;
|
||||
if($c != $numberdays)
|
||||
{
|
||||
$text .= $tp->parseTemplate($CALENDAR_CALENDAR_WEEKSWITCH, FALSE, $calSc);
|
||||
}
|
||||
}
|
||||
$start += 86400;
|
||||
}
|
||||
|
||||
//remainder cells to end the row properly with empty cells
|
||||
if($loop!=0)
|
||||
{
|
||||
for ($c=$loop; $c<7; $c++)
|
||||
{
|
||||
$text .= $tp->parseTemplate($CALENDAR_CALENDAR_DAY_NON, FALSE, $calSc);
|
||||
}
|
||||
}
|
||||
$text .= $tp->parseTemplate($CALENDAR_CALENDAR_END, FALSE, $calSc);
|
||||
|
||||
$ns->tablerender(EC_LAN_79, $cal_text . $nav_text . $text);
|
||||
|
||||
// Claim back memory from key variables
|
||||
unset($ev_list);
|
||||
unset($text);
|
||||
|
||||
require_once(FOOTERF);
|
||||
|
||||
?>
|
@ -1,231 +0,0 @@
|
||||
<?php
|
||||
/*
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2013 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
* Event calendar plugin - calendar menu display
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* e107 Event calendar plugin
|
||||
*
|
||||
* Event calendar plugin - calendar menu display
|
||||
*
|
||||
* @package e107_plugins
|
||||
* @subpackage event_calendar
|
||||
*/
|
||||
|
||||
|
||||
if (!defined('e107_INIT')) { exit; }
|
||||
$e107 = e107::getInstance();
|
||||
$tp = e107::getParser();
|
||||
|
||||
if (!$e107->isInstalled('calendar_menu')) return '';
|
||||
|
||||
if (!isset($ecal_class))
|
||||
{
|
||||
require_once(e_PLUGIN.'calendar_menu/ecal_class.php');
|
||||
$ecal_class = new ecal_class;
|
||||
}
|
||||
|
||||
// See if the page is already in the cache
|
||||
$cache_tag = 'nq_event_cal_cal';
|
||||
if($cacheData = $e107->ecache->retrieve($cache_tag, $ecal_class->max_cache_time))
|
||||
{
|
||||
echo $cacheData;
|
||||
return;
|
||||
}
|
||||
include_lan(e_PLUGIN.'calendar_menu/languages/'.e_LANGUAGE.'.php');
|
||||
|
||||
// Doesn't use shortcodes - rather a specific format for that
|
||||
if (is_readable(THEME.'calendar_template.php'))
|
||||
{ // Has to be require
|
||||
require(THEME.'calendar_template.php');
|
||||
}
|
||||
else
|
||||
{
|
||||
require(e_PLUGIN.'calendar_menu/calendar_template.php');
|
||||
}
|
||||
|
||||
$show_recurring = TRUE; // Could be pref later
|
||||
$cat_filter = '*'; // Could be another pref later.
|
||||
$cal_datearray = $ecal_class->cal_date;
|
||||
$cal_current_month = $cal_datearray['mon'];
|
||||
$cal_current_year = $cal_datearray['year'];
|
||||
$numberdays = date("t", $ecal_class->cal_timedate); // number of days in this month
|
||||
$cal_monthstart = gmmktime(0, 0, 0, $cal_current_month, 1, $cal_current_year); // Time stamp for first day of month
|
||||
$cal_firstdayarray = $ecal_class->gmgetdate($cal_monthstart);
|
||||
$cal_monthend = gmmktime(0, 0, 0, $cal_current_month + 1, 1, $cal_current_year) -1; // Time stamp for last day of month
|
||||
//$cal_thismonth = $cal_datearray['mon'];
|
||||
$cal_thisday = $cal_datearray['mday']; // Today
|
||||
$cal_events = array();
|
||||
$cal_titles = array();
|
||||
$cal_recent = array();
|
||||
$cal_totev = 0;
|
||||
|
||||
$ev_list = $ecal_class->get_events($cal_monthstart, $cal_monthend, TRUE, $cat_filter, $show_recurring,
|
||||
'event_start, event_thread, event_title, event_recurring, event_allday', 'event_cat_icon');
|
||||
$cal_totev = count($ev_list);
|
||||
|
||||
// Generate an array, one element per day of the month, and assign events to them
|
||||
foreach ($ev_list as $cal_row)
|
||||
{
|
||||
if (is_array($cal_row['event_start'])) $temp = $cal_row['event_start']; else $temp = array($cal_row['event_start']);
|
||||
foreach ($temp as $ts)
|
||||
{ // Split up any recurring events
|
||||
$cal_start_day = date('j',$ts); // Day of month for start
|
||||
// Mark start day of each event
|
||||
$cal_events[$cal_start_day][] = $cal_row['event_cat_icon']; // Only first is actually used
|
||||
if (isset($cal_row['is_recent'])) $cal_recent[$cal_start_day] = TRUE;
|
||||
$cal_titles[$cal_start_day][] = $cal_row['event_title']; // In case titles displayed on mouseover
|
||||
}
|
||||
}
|
||||
|
||||
// set up month array for calendar display
|
||||
$cal_months = array(EC_LAN_0, EC_LAN_1, EC_LAN_2, EC_LAN_3, EC_LAN_4, EC_LAN_5, EC_LAN_6, EC_LAN_7, EC_LAN_8, EC_LAN_9, EC_LAN_10, EC_LAN_11);
|
||||
if ($ecal_class->pref['eventpost_dateformat'] == 'my')
|
||||
{
|
||||
$calendar_title = $cal_months[$cal_current_month-1] .' '. $cal_current_year;
|
||||
}
|
||||
else
|
||||
{
|
||||
$calendar_title = $cal_current_year .' '. $cal_months[$cal_current_month-1];
|
||||
}
|
||||
|
||||
switch ($ecal_class->pref['eventpost_menulink'])
|
||||
{
|
||||
case 0 :
|
||||
$calendar_title = "<a {$CALENDAR_MENU_HDG_LINK_CLASS} href='".e_PLUGIN."calendar_menu/event.php' >".$calendar_title."</a>";
|
||||
break;
|
||||
case 1 :
|
||||
$calendar_title = "<a {$CALENDAR_MENU_HDG_LINK_CLASS} href='".e_PLUGIN."calendar_menu/calendar.php' >".$calendar_title."</a>";
|
||||
break;
|
||||
default : ;
|
||||
}
|
||||
|
||||
$cal_text = $CALENDAR_MENU_START;
|
||||
if ($ecal_class->pref['eventpost_showeventcount']=='1')
|
||||
{
|
||||
if ($cal_totev)
|
||||
{
|
||||
$cal_text .= EC_LAN_26 . ": " . $cal_totev;
|
||||
}
|
||||
else
|
||||
{
|
||||
$cal_text .= EC_LAN_27;
|
||||
}
|
||||
$cal_text .= "<br /><br />";
|
||||
}
|
||||
|
||||
$cal_start = $cal_monthstart; // First day of month as time stamp
|
||||
// Start the table
|
||||
$cal_text .= $CALENDAR_MENU_TABLE_START;
|
||||
// Open header row
|
||||
$cal_text .= $CALENDAR_MENU_HEADER_START;
|
||||
// Now do the headings (days of week)
|
||||
for ($i = 0; $i < 7; $i++)
|
||||
{
|
||||
$cal_day = $ecal_class->day_offset_string($i);
|
||||
$cal_text .= $CALENDAR_MENU_HEADER_FRONT;
|
||||
$cal_text .= $tp->text_truncate($cal_day, 1, ''); // Unlikely to have room for more than 1 letter
|
||||
$cal_text .= $CALENDAR_MENU_HEADER_BACK;
|
||||
}
|
||||
$cal_text .= $CALENDAR_MENU_HEADER_END; // Close off header row, open first date row
|
||||
// Calculate number of days to skip before 'real' days on first line of calendar
|
||||
$firstdayoffset = gmdate('w',$cal_start) - $ecal_class->ec_first_day_of_week;
|
||||
if ($firstdayoffset < 0) $firstdayoffset+= 7;
|
||||
for ($cal_c = 0; $cal_c < $firstdayoffset; $cal_c++)
|
||||
{
|
||||
$cal_text .= $CALENDAR_MENU_DAY_NON;
|
||||
}
|
||||
$cal_loop = $firstdayoffset;
|
||||
// Now do the days of the month
|
||||
for($cal_c = 1; $cal_c <= $numberdays; $cal_c++)
|
||||
{ // Six cases to decode:
|
||||
// 1 - Today, no events
|
||||
// 2 - Some other day, no events
|
||||
// 3 - Today with events
|
||||
// 4 - Some other day with events
|
||||
// 5 - Today with recently added events
|
||||
// 6 - Some other day with recently added events
|
||||
$cal_css = 2; // The default - not today, no events
|
||||
$cal_img = $cal_c; // Default 'image' is the day of the month
|
||||
$cal_event_count = 0;
|
||||
$title = "";
|
||||
if ($cal_thisday == $cal_c) $cal_css = 1;
|
||||
$cal_linkut = gmmktime(0 , 0 , 0 , $cal_current_month, $cal_c, $cal_current_year).".one"; // Always need "one"
|
||||
if (array_key_exists($cal_c, $cal_events))
|
||||
{ // There are events today
|
||||
$cal_event_count = count($cal_events[$cal_c]); // See how many events today
|
||||
if ($cal_event_count)
|
||||
{ // Show icon if it exists
|
||||
$cal_css += 2; // Gives 3 for today, 4 for other day
|
||||
if (isset($ecal_class->pref['eventpost_showmouseover']) && ($ecal_class->pref['eventpost_showmouseover'] == 1))
|
||||
{
|
||||
$cal_ins = " title='";
|
||||
foreach ($cal_titles[$cal_c] as $cur_title)
|
||||
{ // New line would be better, but doesn't get displayed
|
||||
$title .= $cal_ins.trim($cur_title);
|
||||
$cal_ins = ", ";
|
||||
}
|
||||
$title .= "'";
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($cal_event_count == 1)
|
||||
{
|
||||
$title = " title='1 ".EC_LAN_135."' ";
|
||||
}
|
||||
else
|
||||
{
|
||||
$title = " title='{$cal_event_count} " . EC_LAN_106 . "' ";
|
||||
}
|
||||
}
|
||||
if (isset($cal_recent[$cal_c]) && $cal_recent[$cal_c])
|
||||
{
|
||||
$cal_css += 2;
|
||||
}
|
||||
|
||||
if (!empty($cal_events[$cal_c]['0']))
|
||||
{
|
||||
$cal_event_icon = 'calendar_menu/images/'.$cal_events[$cal_c]['0']; // Icon file could be NULL
|
||||
if (is_readable(e_PLUGIN.$cal_event_icon))
|
||||
{
|
||||
$cal_img = "<img src='".e_PLUGIN_ABS.$cal_event_icon."' alt='' />";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$cal_text .= $CALENDAR_MENU_DAY_START[$cal_css]."<a {$title} href='" . e_PLUGIN_ABS."calendar_menu/event.php?{$cal_linkut}'>{$cal_img}</a>";
|
||||
$cal_text .= $CALENDAR_MENU_DAY_END[$cal_css];
|
||||
$cal_loop++;
|
||||
if ($cal_loop == 7)
|
||||
{ // Start next row
|
||||
$cal_loop = 0;
|
||||
if ($cal_c != $numberdays)
|
||||
{
|
||||
$cal_text .= $CALENDAR_MENU_WEEKSWITCH;
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($cal_loop != 0)
|
||||
{
|
||||
for($cal_a = ($cal_loop + 1); $cal_a <= 7; $cal_a++)
|
||||
{
|
||||
$cal_text .= $CALENDAR_MENU_DAY_NON;
|
||||
}
|
||||
}
|
||||
// Close table
|
||||
$cal_text .= $CALENDAR_MENU_END;
|
||||
// Now handle the data, cache as well
|
||||
ob_start(); // Set up a new output buffer
|
||||
e107::getRender()->tablerender($calendar_title, $cal_text, 'calendar_menu');
|
||||
$cache_data = ob_get_flush(); // Get the page content, and display it
|
||||
$e107->ecache->set($cache_tag, $cache_data); // Save to cache
|
||||
unset($ev_list);
|
||||
unset($cal_text);
|
||||
?>
|
@ -1,205 +0,0 @@
|
||||
<?php
|
||||
/*
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2013 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
* Installation and update handler for event calendar plugin
|
||||
*
|
||||
* $Source: /cvs_backup/e107_0.8/e107_plugins/calendar_menu/languages/English_admin_calendar_menu.php,v $
|
||||
* $Revision$
|
||||
* $Date$
|
||||
* $Author$
|
||||
*/
|
||||
|
||||
/**
|
||||
* e107 Event calendar plugin
|
||||
*
|
||||
* Plugin file - installation and update handling
|
||||
*
|
||||
* @package e107_plugins
|
||||
* @subpackage event_calendar
|
||||
* @version $Id$;
|
||||
*/
|
||||
|
||||
if (!defined('e107_INIT')) { exit; }
|
||||
|
||||
|
||||
|
||||
|
||||
class calendar_menu_setup // must match folder name ie. <pluginfolder>_setup
|
||||
{
|
||||
|
||||
function install_post($param)
|
||||
{
|
||||
$somethingFailed = FALSE;
|
||||
|
||||
$mes = eMessage::getInstance();
|
||||
if ($this->insertDefaultCategory(FALSE, $mes) == FALSE)
|
||||
{
|
||||
$somethingFailed = TRUE;
|
||||
}
|
||||
|
||||
|
||||
if ($somethingFailed)
|
||||
{
|
||||
$mes->add(EC_ADINST_LAN_04, E_MESSAGE_SUCCESS);
|
||||
}
|
||||
else
|
||||
{
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
function install_pre($param)
|
||||
{
|
||||
// echo "Calendar uninstall routine<br />";
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Called to see if plugin upgrade is required
|
||||
*
|
||||
* @param $param mixed - no purpose currently
|
||||
* @return boolean TRUE if upgrade required, FALSE otherwise
|
||||
*/
|
||||
function upgrade_required($param = FALSE)
|
||||
{
|
||||
$required = FALSE;
|
||||
|
||||
$data = e107::pref('calendar_menu');
|
||||
if (count($data) == 0)
|
||||
{
|
||||
$required = TRUE;
|
||||
}
|
||||
$pref = e107::pref('core'); // Core Prefs Array.
|
||||
|
||||
foreach($pref as $k=>$v)
|
||||
{
|
||||
if(substr($k, 0, 10) == 'eventpost_')
|
||||
{
|
||||
$required = TRUE; // Need to remove core prefs
|
||||
break;
|
||||
}
|
||||
}
|
||||
//print_a($data);
|
||||
return $required;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Upgrade stage 1
|
||||
*
|
||||
* @param $param mixed - no purpose currently
|
||||
* @return - none
|
||||
*/
|
||||
function upgrade_pre($param = FALSE)
|
||||
{
|
||||
$mes = eMessage::getInstance();
|
||||
$calPref = e107::pref('calendar_menu');
|
||||
if (count($calPref) == 0)
|
||||
{ // Need to move prefs over
|
||||
unset($calPref);
|
||||
|
||||
$calNew = e107::getPlugConfig('calendar_menu'); // Initialize calendar_menu prefs.
|
||||
$corePrefs = e107::getConfig('core'); // Core Prefs Object.
|
||||
$pref = e107::pref('core'); // Core Prefs Array.
|
||||
|
||||
foreach($pref as $k=>$v)
|
||||
{
|
||||
if(substr($k, 0, 10) == 'eventpost_')
|
||||
{
|
||||
$calNew->add($k, $v);
|
||||
$corePrefs->remove($k);
|
||||
}
|
||||
}
|
||||
$calNew->save();
|
||||
$corePrefs->save();
|
||||
|
||||
$calPref = e107::pref('calendar_menu'); // retrieve calendar_menu pref array.
|
||||
//print_a($calPref);
|
||||
|
||||
|
||||
$mes->add(EC_ADINST_LAN_10, E_MESSAGE_SUCCESS);
|
||||
}
|
||||
else
|
||||
{
|
||||
$corePrefs = e107::getConfig('core'); // Core Prefs Object.
|
||||
$pref = e107::pref('core'); // Core Prefs Array.
|
||||
$removed = FALSE;
|
||||
|
||||
foreach ($calPref as $k => $v)
|
||||
{
|
||||
if (isset($pref[$k]))
|
||||
{
|
||||
$corePrefs->remove($k);
|
||||
$removed = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
if ($removed)
|
||||
{
|
||||
$corePrefs->save();
|
||||
$mes->add(EC_ADINST_LAN_11, E_MESSAGE_INFO); // Old prefs removed from core
|
||||
}
|
||||
else
|
||||
{
|
||||
$mes->add(EC_ADINST_LAN_09, E_MESSAGE_INFO); // Nothing to do - prefs already moved
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Upgrade final stage - add default category
|
||||
*
|
||||
* @param $param mixed - no purpose currently
|
||||
* @return - none
|
||||
*/
|
||||
function upgrade_post($param)
|
||||
{
|
||||
$this->insertDefaultCategory(TRUE);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Make sure default category is in calendar database; add it if not.
|
||||
*
|
||||
* Adds an appropriate message to the passed message handler.
|
||||
* Returns TRUE if the call can be deemed a success (category present or added); FALSE on error
|
||||
*/
|
||||
function insertDefaultCategory($isUpgrade) // Insert the text for the default category into the DB here
|
||||
{
|
||||
$mes = eMessage::getInstance();
|
||||
$sql = e107::getDb();
|
||||
|
||||
require_once(e_PLUGIN.'calendar_menu/ecal_class.php'); // Gets the define for the 'Default' category
|
||||
if ($isUpgrade && $sql->db_Select('event_cat','event_cat_name',"event_cat_name='".EC_DEFAULT_CATEGORY."' "))
|
||||
{
|
||||
$mes->add(EC_ADINST_LAN_08, E_MESSAGE_INFO); // Nothing to do - default category already present
|
||||
return TRUE;
|
||||
}
|
||||
$ec_insert_entries = "INSERT INTO `#event_cat` (event_cat_name, event_cat_description, event_cat_ahead, event_cat_msg1, event_cat_msg2, event_cat_lastupdate)
|
||||
VALUES ('".EC_DEFAULT_CATEGORY."', '".EC_ADINST_LAN_03."', 5,
|
||||
'".EC_ADINST_LAN_01."', '".EC_ADINST_LAN_02."',
|
||||
'".intval(time())."') ";
|
||||
|
||||
if ($result = $sql->db_Select_gen($ec_insert_entries))
|
||||
{
|
||||
$mes->add(EC_ADINST_LAN_06, E_MESSAGE_SUCCESS);
|
||||
}
|
||||
else
|
||||
{
|
||||
$mes->add(EC_ADINST_LAN_07, E_MESSAGE_ERROR);
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
@ -1,43 +0,0 @@
|
||||
CREATE TABLE event (
|
||||
event_id int(11) unsigned NOT NULL auto_increment,
|
||||
event_start int(10) NOT NULL default '0',
|
||||
event_end int(10) NOT NULL default '0',
|
||||
event_allday tinyint(1) unsigned NOT NULL default '0',
|
||||
event_recurring tinyint(1) unsigned NOT NULL default '0',
|
||||
event_datestamp int(10) unsigned NOT NULL default '0',
|
||||
event_title varchar(200) NOT NULL default '',
|
||||
event_location text NOT NULL,
|
||||
event_details text NOT NULL,
|
||||
event_author varchar(100) NOT NULL default '',
|
||||
event_contact varchar(200) NOT NULL default '',
|
||||
event_category smallint(5) unsigned NOT NULL default '0',
|
||||
event_thread varchar(100) NOT NULL default '',
|
||||
event_rec_m tinyint(2) unsigned NOT NULL default '0',
|
||||
event_rec_y tinyint(2) unsigned NOT NULL default '0',
|
||||
PRIMARY KEY (event_id),
|
||||
KEY event_start (event_start)
|
||||
) ENGINE=MyISAM;,
|
||||
CREATE TABLE event_cat (
|
||||
event_cat_id smallint(5) unsigned NOT NULL auto_increment,
|
||||
event_cat_name varchar(100) NOT NULL default '',
|
||||
event_cat_icon varchar(100) NOT NULL default '',
|
||||
event_cat_class int(10) unsigned NOT NULL default '0',
|
||||
event_cat_subs tinyint(3) unsigned NOT NULL default '0',
|
||||
event_cat_ahead tinyint(3) unsigned NOT NULL default '0',
|
||||
event_cat_msg1 text,
|
||||
event_cat_msg2 text,
|
||||
event_cat_notify tinyint(3) unsigned NOT NULL default '0',
|
||||
event_cat_last int(10) unsigned NOT NULL default '0',
|
||||
event_cat_today int(10) unsigned NOT NULL default '0',
|
||||
event_cat_lastupdate int(10) unsigned NOT NULL default '0',
|
||||
event_cat_addclass int(10) unsigned NOT NULL default '0',
|
||||
event_cat_description text,
|
||||
event_cat_force_class int(10) unsigned NOT NULL default '0',
|
||||
PRIMARY KEY (event_cat_id)
|
||||
) ENGINE=MyISAM;,
|
||||
CREATE TABLE event_subs (
|
||||
event_subid int(10) unsigned NOT NULL auto_increment,
|
||||
event_userid int(10) unsigned NOT NULL default '0',
|
||||
event_cat int(10) unsigned NOT NULL default '0',
|
||||
PRIMARY KEY (event_subid)
|
||||
) ENGINE=MyISAM;
|
@ -1,322 +0,0 @@
|
||||
<?php
|
||||
/*
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2013 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
* Templates for event calendar displays
|
||||
*
|
||||
* $Source: /cvs_backup/e107_0.8/e107_plugins/calendar_menu/calendar_template.php,v $
|
||||
* $Revision$
|
||||
* $Date$
|
||||
* $Author$
|
||||
*/
|
||||
|
||||
/**
|
||||
* e107 Event calendar plugin
|
||||
*
|
||||
* Templates for event calendar displays
|
||||
*
|
||||
* @package e107_plugins
|
||||
* @subpackage event_calendar
|
||||
* @version $Id$;
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
if (!defined('e107_INIT')) { exit; }
|
||||
if (!defined('USER_WIDTH')){ define('USER_WIDTH','width:auto'); }
|
||||
|
||||
//global $sc_style;
|
||||
|
||||
$ec_images_path = e_IMAGE;
|
||||
$ec_images_path_abs = e_IMAGE_ABS;
|
||||
if (!defined('EC_RECENT_ICON'))
|
||||
{
|
||||
define('EC_RECENT_ICON',e_IMAGE.'generic/new.png');
|
||||
define('EC_RECENT_ICON_ABS',e_IMAGE_ABS.'generic/new.png');
|
||||
} // Filename of icon used to flag recent events
|
||||
|
||||
|
||||
|
||||
|
||||
// TIME SWITCH BUTTONS ------------------------------------------------------------
|
||||
$sc_style['EC_PREV_MONTH']['pre'] = "<span class='defaulttext'>";
|
||||
$sc_style['EC_PREV_MONTH']['post'] = "</span>";
|
||||
|
||||
$sc_style['EC_CURRENT_MONTH']['pre'] = "<b>";
|
||||
$sc_style['EC_CURRENT_MONTH']['post'] = "</b>";
|
||||
|
||||
$sc_style['EC_NEXT_MONTH']['pre'] = "<span class='defaulttext'>";
|
||||
$sc_style['EC_NEXT_MONTH']['post'] = "</span>";
|
||||
|
||||
$sc_style['EC_PREV_YEAR']['pre'] = '';
|
||||
$sc_style['EC_PREV_YEAR']['post'] = '';
|
||||
|
||||
$sc_style['EC_MONTH_LIST']['pre'] = '';
|
||||
$sc_style['EC_MONTH_LIST']['post'] = '';
|
||||
|
||||
$sc_style['EC_NEXT_YEAR']['pre'] = '';
|
||||
$sc_style['EC_NEXT_YEAR']['post'] = '';
|
||||
|
||||
|
||||
$CALENDAR_TIME_TABLE = "
|
||||
<table cellpadding='0' cellspacing='1' class='table fborder'>
|
||||
<tr>
|
||||
<td class='forumheader' style='width:18%; text-align:left'>{EC_PREV_MONTH}</td>
|
||||
<td class='fcaption' style='width:64%; text-align:center'>{EC_CURRENT_MONTH}</td>
|
||||
<td class='forumheader' style='width:18%; text-align:right'>{EC_NEXT_MONTH}</td>
|
||||
</tr>\n
|
||||
<tr>
|
||||
<td class='forumheader3' style='text-align:left'>{EC_PREV_YEAR}</td>
|
||||
<td class='fcaption' style='text-align:center; vertical-align:middle'>{EC_MONTH_LIST}</td>
|
||||
<td class='forumheader3' style='text-align:right'>{EC_NEXT_YEAR}</td>
|
||||
</tr>\n
|
||||
</table>";
|
||||
|
||||
|
||||
|
||||
// NAVIGATION BUTTONS
|
||||
//$sc_style['NAV_LINKCURRENTMONTH']['pre'] = "<span class='btn button' style='width:120px; '>";
|
||||
//$sc_style['NAV_LINKCURRENTMONTH']['post'] = "</span>";
|
||||
$sc_style['EC_NAV_LINKCURRENTMONTH']['pre'] = "";
|
||||
$sc_style['EC_NAV_LINKCURRENTMONTH']['post'] = "";
|
||||
|
||||
$CALENDAR_NAVIGATION_TABLE = "
|
||||
<div style='text-align:center; margin-bottom:20px;'>
|
||||
<form method='post' action='" . e_SELF . "?" . e_QUERY . "' id='calform'>
|
||||
<table class='table'>
|
||||
<tr>
|
||||
<td style='text-align:center;'>{EC_NAV_CATEGORIES} {EC_NAV_BUT_ALLEVENTS} {EC_NAV_BUT_VIEWCAT} {EC_NAV_BUT_ENTEREVENT} {EC_NAV_BUT_SUBSCRIPTION} {EC_NAV_BUT_PRINTLISTS} {EC_NAV_LINKCURRENTMONTH}</td>
|
||||
</tr>\n
|
||||
</table>
|
||||
</form>
|
||||
</div>";
|
||||
|
||||
|
||||
|
||||
// EVENT LIST ------------------------------------------------------------
|
||||
$sc_style['EC_EVENTLIST_CAPTION']['pre'] = "<tr><td class='fcaption' colspan='2'>";
|
||||
$sc_style['EC_EVENTLIST_CAPTION']['post'] = ":<br /><br /></td></tr>\n";
|
||||
|
||||
$EVENT_EVENTLIST_TABLE_START = "<table class='table fborder'>{EC_EVENTLIST_CAPTION}";
|
||||
$EVENT_EVENTLIST_TABLE_END = "</table>";
|
||||
|
||||
|
||||
|
||||
// EVENT ARCHIVE ------------------------------------------------------------
|
||||
$sc_style['EC_EVENTARCHIVE_CAPTION']['pre'] = "<tr><td colspan='2' class='fcaption'>";
|
||||
$sc_style['EC_EVENTARCHIVE_CAPTION']['post'] = "</td></tr>\n";
|
||||
|
||||
$EVENT_ARCHIVE_TABLE_START = "<br /><table class='table fborder'>{EC_EVENTARCHIVE_CAPTION}";
|
||||
$EVENT_ARCHIVE_TABLE = "
|
||||
<tr>
|
||||
<td style='width:35%; vertical-align:top' class='forumheader3'>{EC_EVENT_RECENT_ICON}{EC_EVENTARCHIVE_DATE}</td>
|
||||
<td style='width:65%' class='forumheader3'>{EC_EVENTARCHIVE_HEADING}</td>
|
||||
</tr>\n";
|
||||
//<br />{EVENTARCHIVE_DETAILS}
|
||||
$EVENT_ARCHIVE_TABLE_EMPTY = "<tr><td colspan='2' class='forumheader3'>{EC_EVENTARCHIVE_EMPTY}</td></tr>\n";
|
||||
$EVENT_ARCHIVE_TABLE_END = "</table>";
|
||||
|
||||
|
||||
|
||||
// EVENT SHOW EVENT ------------------------------------------------------------
|
||||
$EVENT_EVENT_TABLE_START = "<table class='table fborder' cellspacing='0' cellpadding='0'>";
|
||||
$EVENT_EVENT_TABLE_END = "</table>";
|
||||
|
||||
$sc_style['EC_EVENT_HEADING_DATE']['pre'] = "";
|
||||
$sc_style['EC_EVENT_HEADING_DATE']['post'] = "";
|
||||
|
||||
$sc_style['EC_EVENT_DETAILS']['pre'] = "<tr><td colspan='2' class='forumheader3'>";
|
||||
$sc_style['EC_EVENT_DETAILS']['post'] = "</td></tr>\n";
|
||||
|
||||
$sc_style['EC_EVENT_LOCATION']['pre'] = "<tr><td colspan='2' class='forumheader3'><b>".EC_LAN_32."</b> ";
|
||||
$sc_style['EC_EVENT_LOCATION']['post'] = "</td></tr>";
|
||||
|
||||
$sc_style['EC_EVENT_AUTHOR']['pre'] = "<b>".EC_LAN_31."</b> ";
|
||||
$sc_style['EC_EVENT_AUTHOR']['post'] = " ";
|
||||
|
||||
$sc_style['EC_EVENT_CONTACT']['pre'] = "<b>".EC_LAN_33."</b> ";
|
||||
$sc_style['EC_EVENT_CONTACT']['post'] = " ";
|
||||
|
||||
$sc_style['EC_EVENT_THREAD']['pre'] = "<tr><td colspan='2' class='forumheader3'><span class='smalltext'>";
|
||||
$sc_style['EC_EVENT_THREAD']['post'] = "</span></td></tr>\n";
|
||||
|
||||
$sc_style['EC_EVENT_CATEGORY']['pre'] = "<b>".EC_LAN_30."</b> ";
|
||||
$sc_style['EC_EVENT_CATEGORY']['post'] = " ";
|
||||
|
||||
$sc_style['EC_EVENT_DATE_START']['pre'] = '';
|
||||
$sc_style['EC_EVENT_DATE_START']['post'] = '';
|
||||
|
||||
$sc_style['EC_EVENT_TIME_START']['pre'] = '';
|
||||
$sc_style['EC_EVENT_TIME_START']['post'] = '';
|
||||
|
||||
$sc_style['EC_EVENT_DATE_END']['pre'] = '';
|
||||
$sc_style['EC_EVENT_DATE_END']['post'] = '';
|
||||
|
||||
$sc_style['EC_EVENT_TIME_END']['pre'] = '';
|
||||
$sc_style['EC_EVENT_TIME_END']['post'] = '';
|
||||
|
||||
$sc_style['EC_EVENT_EVENT_DATE_TIME']['pre'] = "<b>".EC_LAN_29."</b> ";
|
||||
$sc_style['EC_EVENT_EVENT_DATE_TIME']['post'] = '';
|
||||
|
||||
$sc_style['EC_IFNOT_ALLDAY']['pre'] = EC_LAN_144;
|
||||
$sc_style['EC_IFNOT_ALLDAY']['post'] = "";
|
||||
|
||||
// The $EVENT_EVENT_DATETIME strings are used with the EC_EVENT_EVENT_DATE_TIME shortcode.
|
||||
// There are four cases, each with a corresponding index into $EVENT_EVENT_DATETIME:
|
||||
// 0 - Normal event, starting and finishing on different dates (the 'original' default)
|
||||
// 1 - Normal event, starting and finishing on the same day
|
||||
// 2 - All-day event, starting and finishing on different days
|
||||
// 3 - All-day event, starting and finishing on the same day
|
||||
$EVENT_EVENT_DATETIME[0] = "{EC_EVENT_DATE_START}".EC_LAN_144."{EC_EVENT_TIME_START}<b> ".EC_LAN_69."</b> {EC_EVENT_DATE_END}{EC_IFNOT_ALLDAY=EC_EVENT_TIME_END}";
|
||||
$EVENT_EVENT_DATETIME[1] = "{EC_EVENT_DATE_START} ".EC_LAN_84." {EC_EVENT_TIME_START}".EC_LAN_85."{EC_EVENT_TIME_END}";
|
||||
$EVENT_EVENT_DATETIME[2] = "{EC_EVENT_DATE_START} <b>".EC_LAN_69."</b> {EC_EVENT_DATE_END}";
|
||||
$EVENT_EVENT_DATETIME[3] = "{EC_EVENT_DATE_START}";
|
||||
|
||||
|
||||
$EVENT_EVENT_TABLE = "
|
||||
<tr>
|
||||
<td >
|
||||
<a href='#{EC_EVENT_ID}' class='e-show-if-js e-expandit fcaption' style='display:inline-block; cursor:pointer; text-align:left; border:0px solid #000; width:100%' title='".EC_LAN_132."'>{EC_EVENT_RECENT_ICON}{EC_EVENT_CAT_ICON}{EC_EVENT_HEADING_DATE}{EC_IFNOT_ALLDAY=EC_EVENT_TIME_START} - {EC_EVENT_TITLE}</a>
|
||||
<div id='{EC_EVENT_ID}' {EC_EVENT_DISPLAYCLASS} style='padding-top:10px; padding-bottom:10px; text-align:left;'>
|
||||
<table style='width:100%;' cellspacing='0' cellpadding='0'>
|
||||
<tr><td colspan='2' class='forumheader3'>{EC_EVENT_AUTHOR} {EC_EVENT_CAT_ICON} {EC_EVENT_CATEGORY} {EC_EVENT_CONTACT} {EC_EVENT_OPTIONS}</td></tr>
|
||||
<tr><td colspan='2' class='forumheader3'>{EC_EVENT_EVENT_DATE_TIME}</td></tr>\n
|
||||
{EC_EVENT_LOCATION}
|
||||
{EC_EVENT_DETAILS}
|
||||
{EC_EVENT_THREAD}
|
||||
</table>
|
||||
</div>
|
||||
</td>
|
||||
</tr>\n
|
||||
";
|
||||
|
||||
//------------------------------------------
|
||||
// CALENDAR CALENDAR - 'Big' calendar
|
||||
//------------------------------------------
|
||||
$CALENDAR_CALENDAR_START = "
|
||||
<div style='text-align:center'>
|
||||
<table class='table fborder' style='background-color:#DDDDDD; width:100%'>
|
||||
<colgroup>
|
||||
<col style='width:14%; padding-bottom:0px;padding-right:0px; margin-right:0px; padding:2px;' />
|
||||
<col style='width:14%; padding-bottom:0px;padding-right:0px; margin-right:0px; padding:2px;' />
|
||||
<col style='width:14%; padding-bottom:0px;padding-right:0px; margin-right:0px; padding:2px;' />
|
||||
<col style='width:14%; padding-bottom:0px;padding-right:0px; margin-right:0px; padding:2px;' />
|
||||
<col style='width:14%; padding-bottom:0px;padding-right:0px; margin-right:0px; padding:2px;' />
|
||||
<col style='width:14%; padding-bottom:0px;padding-right:0px; margin-right:0px; padding:2px;' />
|
||||
<col style='width:14%; padding-bottom:0px;padding-right:0px; margin-right:0px; padding:2px;' />
|
||||
</colgroup>";
|
||||
|
||||
$CALENDAR_CALENDAR_END = "
|
||||
</tr>\n</table></div>";
|
||||
|
||||
// 'Empty' cells where there's not a day at all
|
||||
$CALENDAR_CALENDAR_DAY_NON = "<td style='width:14%;height:90px;'></td>";
|
||||
|
||||
//header row
|
||||
$CALENDAR_CALENDAR_HEADER_START = "<tr>";
|
||||
$CALENDAR_CALENDAR_HEADER = "<td class='fcaption' style='z-index: -1; background-color:#000; color:#FFF; width:90px; height:20px; text-align:center; vertical-align:middle;'>{EC_CALENDAR_CALENDAR_HEADER_DAY}</td>";
|
||||
$CALENDAR_CALENDAR_HEADER_END = "</tr>\n<tr>";
|
||||
|
||||
|
||||
$CALENDAR_CALENDAR_WEEKSWITCH = "</tr>\n<tr>";
|
||||
|
||||
//today
|
||||
$CALENDAR_CALENDAR_DAY_TODAY = "
|
||||
<td class='forumheader3' style='vertical-align:top;height:90px;'>
|
||||
<span style='z-index: 2; position:relative; top:1px; height:10px;padding-right:0px'>{EC_CALENDAR_CALENDAR_DAY_TODAY_HEADING}</span>";
|
||||
|
||||
//day has events
|
||||
$CALENDAR_CALENDAR_DAY_EVENT = "
|
||||
<td class='forumheader3' style='z-index: 1;vertical-align:top;height:90px;'>
|
||||
<span style='z-index: 2; position:relative; top:1px; height:10px;padding-right:0px'><b>{EC_CALENDAR_CALENDAR_DAY_EVENT_HEADING}</b></span>";
|
||||
|
||||
// no events and not today
|
||||
$CALENDAR_CALENDAR_DAY_EMPTY = "
|
||||
<td class='forumheader2' style='z-index: 1;vertical-align:top;height:90px;'>
|
||||
<span style='z-index: 2; position:relative; top:1px; height:10px;padding-right:0px'><b>{EC_CALENDAR_CALENDAR_DAY_EMPTY_HEADING}</b></span>";
|
||||
|
||||
$CALENDAR_CALENDAR_DAY_END = "</td>";
|
||||
|
||||
// CALENDAR SHOW EVENT
|
||||
$sc_style['EC_CALENDAR_CALENDAR_RECENT_ICON']['pre'] = "<td style='vertical-align:top; color: #0; background-color: #ff00; width:10px;'>";
|
||||
$sc_style['EC_CALENDAR_CALENDAR_RECENT_ICON']['post'] = "</td>";
|
||||
$CALENDAR_SHOWEVENT = "<table cellspacing='0' cellpadding='0' style='width:100%;'><tr>{EC_CALENDAR_CALENDAR_RECENT_ICON}<td style='vertical-align:top; width:10px;'>{EC_SHOWEVENT_IMAGE}</td><td style='vertical-align:top; width:2%;'>{EC_SHOWEVENT_INDICAT}</td><td style='vertical-align:top;'>{EC_SHOWEVENT_HEADING}</td></tr>\n</table>";
|
||||
|
||||
|
||||
//------------------------------------------
|
||||
// Calendar menu - 'Small' calendar
|
||||
//------------------------------------------
|
||||
$CALENDAR_MENU_HDG_LINK_CLASS = "class='forumlink'"; // Class, and optional style, for menu heading if its a clickable link
|
||||
$CALENDAR_MENU_START = "<div style='text-align:center'>";
|
||||
$CALENDAR_MENU_TABLE_START = "<table cellpadding='0' cellspacing='1' style='width:100%;' class='table fborder'>"; // colgroup doesn't work!
|
||||
|
||||
$CALENDAR_MENU_END = "</tr></table></div>";
|
||||
|
||||
// Blank cells at beginning and end
|
||||
$CALENDAR_MENU_DAY_NON = "<td class='forumheader3' style='width:14.28%; padding:1px; text-align:center; '> </td>";
|
||||
|
||||
//header row
|
||||
$CALENDAR_MENU_HEADER_START = "<tr>\n";
|
||||
$CALENDAR_MENU_HEADER_FRONT = "<th class='forumheader' style='text-align:center; vertical-align:middle;'><span class='smalltext'>";
|
||||
$CALENDAR_MENU_HEADER_BACK = "</span></th>";
|
||||
$CALENDAR_MENU_HEADER_END = "</tr>\n<tr>";
|
||||
|
||||
|
||||
$CALENDAR_MENU_WEEKSWITCH = "</tr>\n<tr>";
|
||||
|
||||
// Start and end CSS for date cells - six cases to decode, determined by array index:
|
||||
// 1 - Today, no events
|
||||
// 2 - Some other day, no events
|
||||
// 3 - Today with events
|
||||
// 4 - Some other day with events
|
||||
// 5 - today with events, one or more of which has recently been added/updated
|
||||
// 6 - Some other day with events, one or more of which has recently been added/updated
|
||||
|
||||
|
||||
//today, no events
|
||||
$CALENDAR_MENU_DAY_START['1'] = "<td class='indent' style='width:14.28%; padding:1px; text-align:center; '>";
|
||||
|
||||
// no events and not today
|
||||
$CALENDAR_MENU_DAY_START['2'] = "<td class='forumheader3' style='width:14.28%; padding:1px; text-align:center; '>";
|
||||
|
||||
//day has events - same whether its today or not
|
||||
$CALENDAR_MENU_DAY_START['3'] = "<td class='indent' style='width:14.28%; padding:1px; text-align:center; '>";
|
||||
$CALENDAR_MENU_DAY_START['4'] = "<td class='indent' style='width:14.28%; padding:1px; text-align:center; '>";
|
||||
// day has events, one which is recently added/updated
|
||||
$CALENDAR_MENU_DAY_START['5'] = "<td class='indent' style='width:14.28%; padding:1px; text-align:center; '>";
|
||||
$CALENDAR_MENU_DAY_START['6'] = "<td class='indent' style='width:14.28%; padding:1px; text-align:center; '>";
|
||||
// Example highlight using background colour:
|
||||
//$CALENDAR_MENU_DAY_START['5'] = "<td class='indent' style='width:14.28%; padding:1px; text-align:center; background-color: #FF8000;'>";
|
||||
//$CALENDAR_MENU_DAY_START['6'] = "<td class='indent' style='width:14.28%; padding:1px; text-align:center; background-color: #FF0000; '>";
|
||||
|
||||
|
||||
$CALENDAR_MENU_DAY_END['1'] = "</td>";
|
||||
$CALENDAR_MENU_DAY_END['2'] = "</td>";
|
||||
$CALENDAR_MENU_DAY_END['3'] = "</td>";
|
||||
$CALENDAR_MENU_DAY_END['4'] = "</td>";
|
||||
$CALENDAR_MENU_DAY_END['5'] = "</td>";
|
||||
$CALENDAR_MENU_DAY_END['6'] = "</td>";
|
||||
|
||||
//============================================================================
|
||||
// Next event menu template
|
||||
$sc_style['EC_NEXT_EVENT_TIME']['pre'] = EC_LAN_144;
|
||||
$sc_style['EC_NEXT_EVENT_TIME']['post'] = "";
|
||||
// Following are original styles
|
||||
//$sc_style['NEXT_EVENT_ICON']['pre'] = "<img style='border:0px' src='";
|
||||
//$sc_style['NEXT_EVENT_ICON']['post'] = "' alt='' /> ";
|
||||
// Following to 'float right' on a larger icon
|
||||
$sc_style['EC_NEXT_EVENT_ICON']['pre'] = "<img style='clear: right; float: left; margin: 0px 3px 0px 0px; padding:1px; border: 0px;' src='";
|
||||
$sc_style['EC_NEXT_EVENT_ICON']['post'] = "' alt='' />";
|
||||
|
||||
|
||||
if (!isset($EVENT_CAL_FE_LINE))
|
||||
{
|
||||
$EVENT_CAL_FE_LINE = "{EC_NEXT_EVENT_RECENT_ICON}{EC_NEXT_EVENT_ICON}{EC_NEXT_EVENT_DATE}{EC_NEXT_EVENT_TIME}<br /><strong>{EC_NEXT_EVENT_TITLE}</strong>{EC_NEXT_EVENT_GAP}";
|
||||
}
|
||||
|
||||
|
||||
?>
|
@ -1,37 +0,0 @@
|
||||
<?php
|
||||
/*
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2013 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
* BBCode template for calendar menu (pretend we're custom page)
|
||||
*
|
||||
* $Source: /cvs_backup/e107_0.8/e107_plugins/calendar_menu/e_bb.php,v $
|
||||
* $Revision$
|
||||
* $Date$
|
||||
* $Author$
|
||||
*/
|
||||
|
||||
/**
|
||||
* e107 Event calendar plugin
|
||||
*
|
||||
* BBCode template
|
||||
*
|
||||
* @package e107_plugins
|
||||
* @subpackage event_calendar
|
||||
* @version $Id$;
|
||||
*/
|
||||
|
||||
$temp['event'] = "
|
||||
{BB_HELP=ec_event}<br />
|
||||
{BB=link}{BB=b}{BB=i}{BB=u}{BB=img}{BB=center}{BB=left}{BB=right}
|
||||
{BB=bq}{BB=list}{BB=fontcol}{BB=fontsize}{BB=emotes}
|
||||
{BB_PREIMAGEDIR=".e_IMAGE."newspost_images/}
|
||||
{BB=preimage}{BB=prefile}
|
||||
";
|
||||
|
||||
|
||||
|
||||
?>
|
@ -1,411 +0,0 @@
|
||||
<?php
|
||||
/*
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2001-2013 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
* Event calendar plugin - cron task
|
||||
*
|
||||
* $URL$
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
/**
|
||||
* e107 Event calendar plugin
|
||||
*
|
||||
* Event calendar plugin - cron task
|
||||
*
|
||||
* @package e107_plugins
|
||||
* @subpackage event_calendar
|
||||
* @version $Id$;
|
||||
*/
|
||||
|
||||
if (!defined('e107_INIT')) { exit; }
|
||||
|
||||
|
||||
include_lan(e_PLUGIN.'/calendar_menu/languages/English_mailer.php');
|
||||
|
||||
class calendar_menu_cron // include plugin-folder in the name.
|
||||
{
|
||||
private $logRequirement = 0; // Flag to determine logging level
|
||||
private $debugLevel = 0; // Used for internal debugging
|
||||
private $logHandle = NULL;
|
||||
private $ecalClass; // Calendar library routines
|
||||
private $e107;
|
||||
private $defaultMessage = array(); // Used where nothing special defined
|
||||
private $startTime; // Start date for processing
|
||||
private $mailManager;
|
||||
private $ourDB; // Used for some things
|
||||
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->e107 = e107::getInstance();
|
||||
//$this->debugLevel = 2;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Cron configuration
|
||||
*
|
||||
* Defines one or more cron tasks to be performed
|
||||
*
|
||||
* @return array of task arrays
|
||||
*/
|
||||
public function config()
|
||||
{
|
||||
$cron = array();
|
||||
$cron[] = array('name' => LAN_EC_MAIL_04, 'category' => 'plugin', 'function' => 'processSubs', 'description' => LAN_EC_MAIL_05);
|
||||
return $cron;
|
||||
}
|
||||
|
||||
|
||||
private function checkDB()
|
||||
{
|
||||
if ($this->ourDB == NULL)
|
||||
{
|
||||
$this->ourDB = new db;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Logging routine - writes lines to a text file
|
||||
*
|
||||
* Auto-opens log file (if necessary) on first call
|
||||
*
|
||||
* @param string $logText - body of text to write
|
||||
* @param boolean $closeAfter - if TRUE, log file closed before exit; otherwise left open
|
||||
*
|
||||
* @return none
|
||||
*/
|
||||
function logLine($logText, $closeAfter = FALSE, $addTimeDate = FALSE)
|
||||
{
|
||||
if ($this->logRequirement == 0) return;
|
||||
|
||||
$logFilename = e_LOG.'calendar_mail.txt';
|
||||
if ($this->logHandle == NULL)
|
||||
{
|
||||
if (!($this->logHandle = fopen($logFilename, "a")))
|
||||
{ // Problem creating file?
|
||||
echo "File open failed!<br />";
|
||||
$this->logRequirement = 0;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (fwrite($this->logHandle,($addTimeDate ? date('D j M Y G:i:s').': ' : '').$logText."\r\n") == FALSE)
|
||||
{
|
||||
$this->logRequirement = 0;
|
||||
echo 'File write failed!<br />';
|
||||
}
|
||||
|
||||
if ($closeAfter)
|
||||
{
|
||||
fclose($this->logHandle);
|
||||
$this->logHandle = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Called to process the calendar menu subscriptions list - the cron task must be set to call us once/day (typically at about 0100)
|
||||
*
|
||||
* Emails are added to the queue.
|
||||
* Various events are logged in a text file
|
||||
*
|
||||
* @return none
|
||||
*/
|
||||
public function processSubs()
|
||||
{
|
||||
require_once(e_PLUGIN.'calendar_menu/ecal_class.php');
|
||||
$this->ecalClass = new ecal_class;
|
||||
|
||||
e107::getScParser();
|
||||
require_once(e_PLUGIN.'calendar_menu/calendar_shortcodes.php');
|
||||
if (is_readable(THEME.'ec_mailout_template.php'))
|
||||
{ // Has to be require
|
||||
require(THEME.'ec_mailout_template.php');
|
||||
}
|
||||
else
|
||||
{
|
||||
require(e_PLUGIN.'calendar_menu/ec_mailout_template.php');
|
||||
}
|
||||
|
||||
|
||||
$this->startTime = mktime(0, 0, 0, date('n'), date('d'), date('Y')); // Date for start processing
|
||||
setScVar('event_calendar_shortcodes', 'ecalClass', &$this->ecalClass); // Give shortcode a pointer to calendar class
|
||||
|
||||
|
||||
$this->logRequirement = varset($this->ecal_class->pref['eventpost_emaillog'], 0);
|
||||
if ($this->debugLevel >= 2) $this->logRequirement = 2; // Force full logging if debug
|
||||
|
||||
|
||||
// Start of the 'real' code
|
||||
$this->logLine("\r\n\r\n".LAN_EC_MAIL_06.date('D j M Y G:i:s'));
|
||||
|
||||
|
||||
// Start with the 'in advance' emails
|
||||
$cal_args = "select * from #event left join #event_cat on event_category=event_cat_id where (event_cat_subs>0 OR event_cat_force_class>0) and
|
||||
event_cat_last < " . intval($this->startTime) . " and
|
||||
event_cat_ahead > 0 and
|
||||
event_start >= (" . intval($this->startTime) . "+(86400*(event_cat_ahead))) and
|
||||
event_start < (" . intval($this->startTime) . "+(86400*(event_cat_ahead+1))) and
|
||||
find_in_set(event_cat_notify,'1,3,5,7')";
|
||||
|
||||
$this->sendMailshot($cal_args, 'Advance',1, $calendar_shortcodes);
|
||||
|
||||
|
||||
$insertString = 'event_cat_today < '.intval($this->startTime).' and';
|
||||
if ($this->debugLevel > 0) $insertString = ''; // Allows us to so a mailshot every call of cron tick
|
||||
|
||||
// then for today
|
||||
$cal_args = "select * from #event left join #event_cat on event_category=event_cat_id where (event_cat_subs>0 OR event_cat_force_class>0) and
|
||||
{$insertString} event_start >= (" . intval($this->startTime) . ") and
|
||||
event_start < (86400+" . intval($this->startTime) . ") and
|
||||
find_in_set(event_cat_notify,'2,3,6,7')";
|
||||
|
||||
$this->sendMailshot($cal_args, 'today',2, $calendar_shortcodes);
|
||||
|
||||
|
||||
// Finally do 'day before' emails (its an alternative to 'today' emails)
|
||||
$cal_args = "select * from #event left join #event_cat on event_category=event_cat_id where (event_cat_subs>0 OR event_cat_force_class>0) and
|
||||
{$insertString} event_start >= (" . intval($this->startTime) ." + 86400 ) and
|
||||
event_start < (" . intval($this->startTime) ." + 172800) and
|
||||
find_in_set(event_cat_notify,'4,5,6,7')";
|
||||
|
||||
$this->sendMailshot($cal_args, 'tomorrow',2, $calendar_shortcodes);
|
||||
|
||||
|
||||
$this->logLine(' .. Run completed',TRUE, TRUE);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
// Function called to load in default templates (messages) if required - only accesses database once
|
||||
function loadDefaultMessages()
|
||||
{
|
||||
if (($this->defaultMessage[1] != '') && ($this->defaultMessage[2] != '')) return;
|
||||
$this->checkDB();
|
||||
if ($this->ourDB->db_Select('event_cat', 'event_cat_msg1,event_cat_msg2', "event_cat_name = '".EC_DEFAULT_CATEGORY."' "))
|
||||
{
|
||||
if ($row = $this->ourDB->db_Fetch())
|
||||
{
|
||||
$this->defaultMessage[1] = $row['event_cat_msg1'];
|
||||
$this->defaultMessage[2] = $row['event_cat_msg2'];
|
||||
}
|
||||
}
|
||||
// Put in generic message rather than nothing - will help flag omission
|
||||
if ($this->defaultMessage[1] == '') $this->defaultMessage[1] = EC_LAN_146;
|
||||
if ($this->defaultMessage[2] == '') $this->defaultMessage[2] = EC_LAN_147;
|
||||
}
|
||||
|
||||
|
||||
private function checkMailManager()
|
||||
{
|
||||
if ($this->mailManager == NULL)
|
||||
{
|
||||
require_once(e_HANDLER .'mail_manager_class.php');
|
||||
$this->mailManager = new e107MailManager();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Function to actually send a mailshot
|
||||
*/
|
||||
function sendMailshot($cal_query, $shot_type, $msg_num, $calendar_shortcodes)
|
||||
{
|
||||
if ($this->logRequirement > 1)
|
||||
{
|
||||
$this->logLine(' Starting emails for '.$shot_type, FALSE, TRUE);
|
||||
if ($this->debugLevel >= 2) $this->logLine("\r\n Query is: ".$cal_query);
|
||||
}
|
||||
|
||||
if ($num_cat_proc = e107::getDb()->gen($cal_query))
|
||||
{ // Got at least one event to process here
|
||||
if ($this->logRequirement > 1)
|
||||
$this->logLine(' - '.$num_cat_proc.' categories found to process');
|
||||
|
||||
$this->checkDB(); // Make sure we've got another DB object
|
||||
while ($thisevent = e107::getDb()->fetch())
|
||||
{ // Process one event at a time
|
||||
|
||||
$this->logLine(' Processing event: '.$event_title);
|
||||
setScVar('event_calendar_shortcodes', 'event', $thisevent); // Save current values in shortcode
|
||||
|
||||
// Note that event processed, and generate the email
|
||||
if ($msg_num == 1)
|
||||
{
|
||||
$this->ourDB->db_Update('event_cat', 'event_cat_last='.time().' where event_cat_id='.intval($event_cat_id));
|
||||
$cal_msg = $thisevent['event_cat_msg1'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->ourDB->db_Update('event_cat', 'event_cat_today='.time().' where event_cat_id='.intval($event_cat_id));
|
||||
$cal_msg = $thisevent['event_cat_msg2'];
|
||||
}
|
||||
|
||||
if (trim($cal_msg) == '')
|
||||
{
|
||||
$this->loadDefaultMessages();
|
||||
$cal_msg = $this->defaultMessage[$msg_num];
|
||||
}
|
||||
|
||||
|
||||
// Parsing the template here means we can't use USER-related shortcodes
|
||||
// Main ones which are relevant: MAIL_DATE_START, MAIL_TIME_START, MAIL_DATE_END,
|
||||
// MAIL_TIME_END, MAIL_TITLE, MAIL_DETAILS, MAIL_CATEGORY, MAIL_LOCATION,
|
||||
// MAIL_CONTACT, MAIL_THREAD (maybe). Also MAIL_LINK, MAIL_SHORT_DATE
|
||||
// Best to strip entities here rather than at entry - handles old events as well
|
||||
// Note that certain user-related substitutions will work, however - |USERID|, |USERNAME|, |DISPLAYNAME|
|
||||
$cal_title = html_entity_decode(e107::getParser()->parseTemplate($this->ecal_class->pref['eventpost_mailsubject'], TRUE),ENT_QUOTES,CHARSET);
|
||||
$cal_msg = html_entity_decode(e107::getParser()->parseTemplate($cal_msg, TRUE),ENT_QUOTES,CHARSET);
|
||||
|
||||
// Four cases for the query:
|
||||
// 1. No forced mailshots - based on event_subs table only Need INNER JOIN
|
||||
// 2. Forced mailshot to members - send to all users (don't care about subscriptions) Don't need JOIN
|
||||
// 3. Forced mailshot to group of members - based on user table only Don't need JOIN
|
||||
// 4. Forced mailshot to group, plus optional subscriptions - use the lot! Need LEFT JOIN
|
||||
// (Always block sent to banned members)
|
||||
$manual_subs = (isset($this->ecal_class->pref['eventpost_asubs']) && ($this->ecal_class->pref['eventpost_asubs'] == '1'));
|
||||
$subs_fields = '';
|
||||
$subs_join = '';
|
||||
$whereClause = '';
|
||||
$group_clause = '';
|
||||
|
||||
if ($event_cat_force_class != e_UC_MEMBER)
|
||||
{ // Cases 1, 3, 4 (basic query does for case 2)
|
||||
if ((!$thisevent['event_cat_force_class']) || ($manual_subs))
|
||||
{ // Cases 1 & 4 - need to join with event_subs database
|
||||
$subs_fields = ", es.* ";
|
||||
if ($thisevent['event_cat_force_class']) $subs_join = 'LEFT'; else $subs_join = 'INNER';
|
||||
$subs_join .= ' join `#event_subs` AS es on u.`user_id`=es.`event_userid` ';
|
||||
$whereClause = ' es.`event_cat`='.intval($thisevent['event_category']).' ';
|
||||
$group_clause = ' GROUP BY u.`user_id`';
|
||||
}
|
||||
|
||||
if ($event_cat_force_class)
|
||||
{ // cases 3 and 4 - ... and check for involuntary subscribers
|
||||
if ($whereClause) $whereClause .= ' OR ';
|
||||
if ($thisevent['event_cat_force_class'] == e_UC_ADMIN)
|
||||
{
|
||||
$whereClause .= '(u.`user_admin` = 1 )';
|
||||
}
|
||||
else
|
||||
{
|
||||
$whereClause .= "find_in_set('".intval($thisevent['event_cat_force_class'])."', u.`user_class`)";
|
||||
$group_clause = ' GROUP BY u.`user_id`';
|
||||
}
|
||||
}
|
||||
|
||||
if ($whereClause) $whereClause = ' AND ('.$whereClause.' ) ';
|
||||
} // End of cases 1, 3, 4
|
||||
|
||||
$cal_emilargs = "SELECT u.`user_id`, u.`user_class`, u.`user_email`, u.`user_name`, u.`user_ban`, u.`user_admin`{$subs_fields}
|
||||
from `#user` AS u {$subs_join}
|
||||
WHERE u.`user_ban` = 0 {$whereClause} {$group_clause}";
|
||||
|
||||
|
||||
if ($this->debugLevel >= 2)
|
||||
{
|
||||
$this->logLine("\r\n Email selection query is: ".$cal_emilargs);
|
||||
}
|
||||
if ($num_shots = $this->ourDB->db_Select_gen($cal_emilargs))
|
||||
{
|
||||
$this->logLine(' - '.$num_shots.' emails found to send');
|
||||
|
||||
// Definitely got some emails to send here
|
||||
$this->checkMailManager(); // Make sure our mail manager is loaded
|
||||
|
||||
// Start by adding the email details
|
||||
$email = array(
|
||||
'mail_create_app' => 'calendar_menu',
|
||||
'mail_title' => str_replace('--REF--', intval(time()/3600), LAN_EC_MAIL_07),
|
||||
'mail_subject' => $cal_title,
|
||||
'mail_body' => $cal_msg,
|
||||
'mail_sender_email' => $this->ecal_class->pref['eventpost_mailaddress'],
|
||||
'mail_sender_name' => $this->ecal_class->pref['eventpost_mailfrom'],
|
||||
'mail_send_style' => 'textonly'
|
||||
);
|
||||
if (FALSE === ($mailMainID = $this->mailManager->saveEmail($email, TRUE)))
|
||||
{
|
||||
$this->logLine('Error adding mail body to database - run abandoned');
|
||||
break;
|
||||
}
|
||||
$this->mailManager->mailInitCounters($mailMainID); // Initialise counters for emails added
|
||||
|
||||
|
||||
// Now loop through adding users
|
||||
while ($row = $this->ourDB->db_Fetch())
|
||||
{
|
||||
if ($this->debugLevel == 0)
|
||||
{
|
||||
$recipient = array(
|
||||
'mail_recipient_id' => $row['user_id'],
|
||||
'mail_recipient_name' => $row['user_name'],
|
||||
'mail_recipient_email' => $row['user_email'],
|
||||
'mail_target_info' => array( // Adding this info means it could be substituted
|
||||
'USERID' => $row['user_id'],
|
||||
'DISPLAYNAME' => $row['user_name'],
|
||||
'USERNAME' => $row['user_loginname']
|
||||
)
|
||||
);
|
||||
$result = $this->mailManager->mailAddNoDup($mailMainID, $recipient, MAIL_STATUS_TEMP);
|
||||
if ($result === FALSE)
|
||||
{
|
||||
$this->logLine("Error adding recipient {$row['user_id']}");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$send_result = " **DEBUG**";
|
||||
}
|
||||
if ($this->logRequirement > 1)
|
||||
{
|
||||
$this->logLine(' Send to '.$user_id.':'.$user_email.' Name: '.$user_name.' Result = '.$send_result);
|
||||
}
|
||||
}
|
||||
$this->mailManager->mailUpdateCounters($mailMainID); // Save counters to DB
|
||||
if ($this->mailManager->activateEmail($mailMainID, FALSE, time() + 80000) === TRUE)
|
||||
{
|
||||
$this->logLine("Email {$mailMainID} activated");
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->logLine("Error activating email {$mailMainID}");
|
||||
}
|
||||
}
|
||||
elseif ($num_cat === FALSE)
|
||||
{
|
||||
$this->logLine(' User read error for '.$shot_type.': '.$this->ourDB->$mySQLlastErrNum.':'.$this->ourDB->$mySQLlastErrText);
|
||||
}
|
||||
elseif ($this->logRequirement > 1)
|
||||
{
|
||||
$this->logLine(' - no users found.');
|
||||
}
|
||||
} // while
|
||||
|
||||
if ($this->logRequirement > 1)
|
||||
{
|
||||
$this->logLine(' Completed emails for '.$shot_type.' at '.date('D j M Y G:i:s'));
|
||||
}
|
||||
}
|
||||
elseif ($num_cat === FALSE)
|
||||
{
|
||||
$this->logLine(' DB read error for '.$shot_type.': '.e107::getDb()->$mySQLlastErrNum.':'.e107::getDb()->$mySQLlastErrText);
|
||||
}
|
||||
elseif ($this->logRequirement > 1)
|
||||
{
|
||||
$this->logLine(' - no records found.');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
?>
|
@ -1,39 +0,0 @@
|
||||
<?php
|
||||
/*
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2013 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
* Event calendar plugin - Front page
|
||||
*
|
||||
* $Source: /cvs_backup/e107_0.8/e107_plugins/calendar_menu/e_frontpage.php,v $
|
||||
* $Revision$
|
||||
* $Date$
|
||||
* $Author$
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* e107 Event calendar plugin
|
||||
*
|
||||
* Event calendar plugin - Front page
|
||||
*
|
||||
* @package e107_plugins
|
||||
* @subpackage event_calendar
|
||||
* @version $Id$;
|
||||
*/
|
||||
|
||||
if (!defined('e107_INIT')) { exit; }
|
||||
|
||||
include_lan(e_PLUGIN.'calendar_menu/languages/'.e_LANGUAGE.'_admin_calendar_menu.php');
|
||||
|
||||
$front_page['calendar'] = array(
|
||||
'title' => EC_ADLAN_1,
|
||||
'page' => array(
|
||||
array('page' => e_PLUGIN_ABS.'calendar_menu/calendar.php', 'title' => EC_ADLAN_A09 ),
|
||||
array('page' => e_PLUGIN_ABS.'calendar_menu/event.php', 'title' => EC_LAN_163 ))
|
||||
);
|
||||
|
||||
?>
|
@ -1,112 +0,0 @@
|
||||
<?php
|
||||
/*
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2013 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
* Calendar e_list Handler
|
||||
*
|
||||
* $Source: /cvs_backup/e107_0.8/e107_plugins/calendar_menu/e_list.php,v $
|
||||
* $Revision$
|
||||
* $Date$
|
||||
* $Author$
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* e107 Event calendar plugin
|
||||
*
|
||||
* Calendar e_list Handler
|
||||
*
|
||||
* @package e107_plugins
|
||||
* @subpackage event_calendar
|
||||
* @version $Id$;
|
||||
*/
|
||||
|
||||
if (!defined('e107_INIT')) { exit; }
|
||||
|
||||
class list_calendar_menu
|
||||
{
|
||||
function list_calendar_menu($parent)
|
||||
{
|
||||
$this->parent = $parent;
|
||||
}
|
||||
|
||||
function getListData()
|
||||
{
|
||||
$list_caption = $this->parent->settings['caption'];
|
||||
$list_display = ($this->parent->settings['open'] ? "" : "none");
|
||||
|
||||
require_once('ecal_class.php');
|
||||
$ecal_class = new ecal_class;
|
||||
|
||||
$current_day = $ecal_class->cal_date['mday'];
|
||||
$current_month = $ecal_class->cal_date['mon'];
|
||||
$current_year = $ecal_class->cal_date['year'];
|
||||
|
||||
$current = mktime(0,0,0,$current_month, $current_day, $current_year);
|
||||
|
||||
if($this->parent->mode == "new_page" || $this->parent->mode == "new_menu" )
|
||||
{
|
||||
$lvisit = $this->parent->getlvisit();
|
||||
$qry = " event_datestamp>".intval($lvisit)." AND ";
|
||||
}
|
||||
else
|
||||
{
|
||||
$qry = "";
|
||||
}
|
||||
|
||||
$bullet = $this->parent->getBullet($this->parent->settings['icon']);
|
||||
|
||||
$qry = "
|
||||
SELECT e.*, c.event_cat_name
|
||||
FROM #event AS e
|
||||
LEFT JOIN #event_cat AS c ON c.event_cat_id = e.event_category
|
||||
WHERE ".$qry." e.event_start>='$current' AND c.event_cat_class REGEXP '".e_CLASS_REGEXP."'
|
||||
ORDER BY e.event_start ASC LIMIT 0,".intval($this->parent->settings['amount']);
|
||||
|
||||
if(!$event_items = $this->parent->e107->sql->db_Select_gen($qry))
|
||||
{
|
||||
$list_data = LIST_CALENDAR_2;
|
||||
}
|
||||
else
|
||||
{
|
||||
while($row = $this->parent->e107->sql->db_Fetch())
|
||||
{
|
||||
$record = array();
|
||||
$tmp = explode(".", $row['event_author']);
|
||||
if($tmp[0] == "0")
|
||||
{
|
||||
$record['author'] = $tmp[1];
|
||||
}
|
||||
elseif(is_numeric($tmp[0]) && $tmp[0] != "0")
|
||||
{
|
||||
$record['author'] = (USER ? "<a href='".e_BASE."user.php?id.".$tmp[0]."'>".$tmp[1]."</a>" : $tmp[1]);
|
||||
}
|
||||
else
|
||||
{
|
||||
$record['author'] = "";
|
||||
}
|
||||
|
||||
$rowheading = $this->parent->parse_heading($row['event_title']);
|
||||
$record['icon'] = $bullet;
|
||||
$record['heading'] = "<a href='".e_PLUGIN."calendar_menu/event.php?".$row['event_start'].".event.".$row['event_id']."'>".$rowheading."</a>";
|
||||
$record['category'] = $row['event_cat_name'];
|
||||
$record['date'] = ($this->parent->settings['date'] ? ($row['event_start'] ? $this->parent->getListDate($row['event_start']) : "") : "");
|
||||
$record['info'] = '';
|
||||
|
||||
$list_data[] = $record;
|
||||
}
|
||||
}
|
||||
//return array with 'records', (global)'caption', 'display'
|
||||
return array(
|
||||
'records'=>$list_data,
|
||||
'caption'=>$list_caption,
|
||||
'display'=>$list_display
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
@ -1,210 +0,0 @@
|
||||
<?php
|
||||
/*
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2013 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
* Event calendar - mailout function
|
||||
*
|
||||
* $Source: /cvs_backup/e107_0.8/e107_plugins/calendar_menu/e_mailout.php,v $
|
||||
* $Revision$
|
||||
* $Date$
|
||||
* $Author$
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* e107 Event calendar plugin
|
||||
*
|
||||
* Event calendar - mailout function
|
||||
*
|
||||
* @package e107_plugins
|
||||
* @subpackage event_calendar
|
||||
* @version $Id$;
|
||||
*/
|
||||
|
||||
if (!defined('e107_INIT')) { exit(); }
|
||||
|
||||
|
||||
include_lan(e_PLUGIN.'/calendar_menu/languages/'.e_LANGUAGE.'_mailer.php');
|
||||
|
||||
/*
|
||||
Class for event calendar mailout function
|
||||
|
||||
Allows admins to send mail to those subscribed to calendar events
|
||||
*/
|
||||
// These variables determine the circumstances under which this class is loaded (only used during loading, and may be overwritten later)
|
||||
$mailerIncludeWithDefault = TRUE; // Mandatory - if false, show only when mailout for this specific plugin is enabled
|
||||
$mailerExcludeDefault = FALSE; // Mandatory - if TRUE, when this plugin's mailout is active, the default (core) isn't loaded
|
||||
|
||||
class calendar_menu_mailout
|
||||
{
|
||||
protected $mailCount = 0;
|
||||
protected $mailRead = 0;
|
||||
//public $mailerSource = 'calendar_menu'; //FIXME should be auto-detected // Plugin name (core mailer is special case) Must be directory for this file
|
||||
public $mailerName = LAN_EC_MAIL_01; // Text to identify the source of selector (displayed on left of admin page)
|
||||
public $mailerEnabled = TRUE; // Mandatory - set to FALSE to disable this plugin (e.g. due to permissions restrictions)
|
||||
private $selectorActive = FALSE; // Set TRUE if we've got a valid selector to start returning entries
|
||||
|
||||
|
||||
// Constructor
|
||||
public function __construct()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Return data representing the user's selection criteria as entered in the $_POST array.
|
||||
*
|
||||
* This is stored in the DB with a saved email. (Just return an empty string or array if this is undesirable)
|
||||
* The returned value is passed back to selectInit() and showSelect when needed.
|
||||
*
|
||||
* @return string Selection data - comma-separated list of category IDs
|
||||
*/
|
||||
public function returnSelectors()
|
||||
{
|
||||
$res = array();
|
||||
if (is_array($_POST['ec_category_sel']))
|
||||
{
|
||||
foreach ($_POST['ec_category_sel'] as $k => $v)
|
||||
{
|
||||
$res[] = intval($v);
|
||||
}
|
||||
}
|
||||
return implode(',',$res);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Called to initialise data selection routine.
|
||||
* Needs to save any queries or other information into internal variables, do initial DB queries as appropriate.
|
||||
* Could in principle read all addresses and buffer them for later routines, if this is more convenient
|
||||
*
|
||||
* @param string $selectVals - array of selection criteria as returned by returnSelectors()
|
||||
*
|
||||
* @return integer Return number of records available (or 1 if unknown) on success, FALSE on failure
|
||||
*/
|
||||
public function selectInit($selectVals = FALSE)
|
||||
{
|
||||
|
||||
$sql = e107::getDb();
|
||||
|
||||
if (($selectVals === FALSE) || ($selectVals == ''))
|
||||
{
|
||||
return 0; // No valid selector - so no valid records
|
||||
}
|
||||
|
||||
$where = array();
|
||||
$qry = 'SELECT u.user_id, u.user_name, u.user_email, u.user_loginname, u.user_sess, u.user_lastvisit FROM `#event_subs` AS es';
|
||||
$qry .= ' LEFT JOIN `#user` AS u ON es.`event_subid` = u.`user_id` WHERE es.`event_cat` IN (\''.$selectVals.'\') AND u.`user_id` IS NOT NULL';
|
||||
$qry .= ' GROUP BY u.`user_id`';
|
||||
// echo "Selector query: ".$qry.'<br />';
|
||||
if (!( $this->mail_count = $sql->db_Select_gen($qry))) return FALSE;
|
||||
$this->selectorActive = TRUE;
|
||||
$this->mail_read = 0;
|
||||
return $this->mail_count;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Return an email address to add to the recipients list. Return FALSE if no more addresses to add
|
||||
*
|
||||
* @return array|boolean FALSE if no more addresses available; else an array:
|
||||
* 'mail_recipient_id' - non-zero if a registered user, zero if a non-registered user. (Always non-zero from this class)
|
||||
* 'mail_recipient_name' - user name
|
||||
* 'mail_recipient_email' - email address to use
|
||||
* 'mail_target_info' - array of info which might be substituted into email, usually using the codes defined by the editor.
|
||||
* Array key is the code within '|...|', value is the string for substitution
|
||||
*/
|
||||
public function selectAdd()
|
||||
{
|
||||
$sql = e107::getDb();
|
||||
|
||||
if (!$this->selectorActive) return FALSE;
|
||||
if (!($row = $sql->db_Fetch(MYSQL_ASSOC))) return FALSE;
|
||||
$ret = array('mail_recipient_id' => $row['user_id'],
|
||||
'mail_recipient_name' => $row['user_name'], // Should this use realname?
|
||||
'mail_recipient_email' => $row['user_email'],
|
||||
'mail_target_info' => array(
|
||||
'USERID' => $row['user_id'],
|
||||
'DISPLAYNAME' => $row['user_name'],
|
||||
'SIGNUP_LINK' => $row['user_sess'],
|
||||
'USERNAME' => $row['user_loginname'],
|
||||
'USERLASTVISIT' => $row['user_lastvisit']
|
||||
)
|
||||
);
|
||||
$this->mail_read++;
|
||||
return $ret;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Called once all email addresses read, to do any housekeeping needed
|
||||
*
|
||||
* @return none
|
||||
*/
|
||||
public function select_close()
|
||||
{
|
||||
// Nothing to do here
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Called to show current selection criteria, and optionally allow edit
|
||||
*
|
||||
* @param boolean $allow_edit is TRUE to allow user to change the selection; FALSE to just display current settings
|
||||
* @param string $selectVals is the current selection information - in the same format as returned by returnSelectors()
|
||||
*
|
||||
* @return array Returns array which is displayed in a table cell.
|
||||
*/
|
||||
public function showSelect($allow_edit = FALSE, $selectVals = FALSE)
|
||||
{
|
||||
$sql = e107::getDb();
|
||||
$frm = e107::getForm();
|
||||
$var = array();
|
||||
// $ret = "<table style='width:95%'>";
|
||||
$selects = array_flip(explode(',', $selectVals));
|
||||
|
||||
if ($sql->db_Select('event_cat', 'event_cat_id, event_cat_name', "event_cat_name != 'Default'"))
|
||||
{
|
||||
$c=0;
|
||||
while ($row = $sql->db_Fetch(MYSQL_ASSOC))
|
||||
{
|
||||
$checked = (isset($selects[$row['event_cat_id']])) ? " checked='checked'" : '';
|
||||
if ($allow_edit)
|
||||
{
|
||||
$var[$c]['caption'] = $row['event_cat_name'];
|
||||
$var[$c]['html'] = $frm->checkbox('ec_category_sel[]',$row['event_cat_id'],$checked);
|
||||
|
||||
/*$ret .= "<tr><td><input type='checkbox' name='ec_category_sel[]' value='{$row['event_cat_id']}' {$checked}/></td><td>
|
||||
".$row['event_cat_name']."</td></tr>";*/
|
||||
}
|
||||
elseif($checked)
|
||||
{
|
||||
$var[$c]['html'] = $row['event_cat_name'];
|
||||
$var[$c]['caption'] = LAN_EC_MAIL_03;
|
||||
|
||||
/*$ret .= "<tr><td>".LAN_EC_MAIL_03."</td><td>
|
||||
".$row['event_cat_name']."</td></tr>";*/
|
||||
}
|
||||
$c++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$var[0]['caption'] = LAN_EC_MAIL_02;
|
||||
$var[0]['html'] = '';
|
||||
}
|
||||
|
||||
return $var;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
?>
|
@ -1,55 +0,0 @@
|
||||
<?php
|
||||
/*
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2013 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
*/
|
||||
|
||||
if (!defined('e107_INIT')) { exit; }
|
||||
|
||||
// v2.x Standard
|
||||
class calendar_menu_notify extends notify
|
||||
{
|
||||
function config()
|
||||
{
|
||||
|
||||
$config = array();
|
||||
|
||||
$config[] = array(
|
||||
'name' => NT_LAN_EC_7,
|
||||
'function' => "ecalnew",
|
||||
'category' => ''
|
||||
);
|
||||
|
||||
$config[] = array(
|
||||
'name' => NT_LAN_EC_2,
|
||||
'function' => "ecaledit",
|
||||
'category' => ''
|
||||
);
|
||||
|
||||
return $config;
|
||||
}
|
||||
|
||||
function ecalnew($data)
|
||||
{
|
||||
$message = NT_LAN_EC_3.': '.USERNAME.' ('.NT_LAN_EC_4.': '.$data['ip'].' )<br />';
|
||||
$message .= NT_LAN_EC_5.':<br />'.$data['cmessage'].'<br /><br />';
|
||||
|
||||
$this->send('ecalnew', NT_LAN_EC_6, $message);
|
||||
}
|
||||
|
||||
function ecaledit($data)
|
||||
{
|
||||
$message = NT_LAN_EC_3.': '.USERNAME.' ('.NT_LAN_EC_4.': '.$data['ip'].' )<br />';
|
||||
$message .= NT_LAN_EC_5.':<br />'.$data['cmessage'].'<br /><br />';
|
||||
|
||||
$this->send('ecaledit', NT_LAN_EC_8, $message);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
?>
|
@ -1,94 +0,0 @@
|
||||
<?php
|
||||
/*
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2013 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
* RSS calendar feed
|
||||
*/
|
||||
|
||||
// TODO LAN
|
||||
|
||||
if (!defined('e107_INIT')) { exit; }
|
||||
|
||||
// v2.x Standard
|
||||
class calendar_menu_rss
|
||||
{
|
||||
/**
|
||||
* Admin RSS Configuration
|
||||
*/
|
||||
function config()
|
||||
{
|
||||
$config = array();
|
||||
|
||||
$config[] = array(
|
||||
'name' => 'Calendar',
|
||||
'url' => 'calendar',
|
||||
'topic_id' => '',
|
||||
'description' => 'This is the rss feed for the calendar entries', // that's 'description' not 'text'
|
||||
'class' => '0',
|
||||
'limit' => '9'
|
||||
);
|
||||
|
||||
return $config;
|
||||
}
|
||||
|
||||
/**
|
||||
* Compile RSS Data
|
||||
* @param $parms array url, limit, id
|
||||
* @return array
|
||||
*/
|
||||
function data($parms='')
|
||||
{
|
||||
$sql = e107::getDb();
|
||||
|
||||
require_once('ecal_class.php');
|
||||
$ecal_class = new ecal_class;
|
||||
|
||||
$current_day = $ecal_class->cal_date['mday'];
|
||||
$current_month = $ecal_class->cal_date['mon'];
|
||||
$current_year = $ecal_class->cal_date['year'];
|
||||
$current = mktime(0,0,0,$current_month, $current_day, $current_year);
|
||||
|
||||
$rss = array();
|
||||
$i=0;
|
||||
|
||||
$query = "
|
||||
SELECT e.*, c.event_cat_name
|
||||
FROM `#event` AS e
|
||||
LEFT JOIN `#event_cat` AS c ON c.event_cat_id = e.event_category
|
||||
WHERE e.event_start>='{$current}' AND c.event_cat_class REGEXP '".e_CLASS_REGEXP."'
|
||||
ORDER BY e.event_start ASC LIMIT 0,".$parms['limit'];
|
||||
|
||||
if($items = $sql->gen($query))
|
||||
{
|
||||
|
||||
while($row = $sql->fetch())
|
||||
{
|
||||
$tmp = explode(".", $row['event_author']);
|
||||
$rss[$i]['author'] = $tmp[1];
|
||||
$rss[$i]['author_email'] = '';
|
||||
$rss[$i]['link'] = "calendar_menu/event.php?".$row['event_start'].".event.".$row['event_id'];
|
||||
$rss[$i]['linkid'] = $row['event_id'];
|
||||
$rss[$i]['title'] = $row['event_title'];
|
||||
$rss[$i]['description'] = '';
|
||||
$rss[$i]['category_name'] = $row['event_cat_name'];
|
||||
$rss[$i]['category_link'] = '';
|
||||
$rss[$i]['datestamp'] = $row['event_start'];
|
||||
$rss[$i]['enc_url'] = "";
|
||||
$rss[$i]['enc_leng'] = "";
|
||||
$rss[$i]['enc_type'] = "";
|
||||
$i++;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return $rss;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
?>
|
@ -1,32 +0,0 @@
|
||||
<?php
|
||||
/*
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2009 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
* Search shim for event calendar
|
||||
*
|
||||
* $Source: /cvs_backup/e107_0.8/e107_plugins/calendar_menu/e_search.php,v $
|
||||
* $Revision$
|
||||
* $Date$
|
||||
* $Author$
|
||||
*/
|
||||
|
||||
/**
|
||||
* e107 Event calendar plugin
|
||||
*
|
||||
* Search shim for event calendar
|
||||
*
|
||||
* @package e107_plugins
|
||||
* @subpackage event_calendar
|
||||
* @version $Id$;
|
||||
*/
|
||||
|
||||
if (!defined('e107_INIT')) { exit(); }
|
||||
|
||||
include_lan(e_PLUGIN.'calendar_menu/languages/'.e_LANGUAGE.'_search.php');
|
||||
|
||||
$search_info[] = array('sfile' => e_PLUGIN.'calendar_menu/search/search_parser.php', 'qtype' => CM_SCH_LAN_1, 'refpage' => 'calendar.php');
|
||||
|
@ -1,71 +0,0 @@
|
||||
<?php
|
||||
/*
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2013 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
* Tagwords shim for event calendar
|
||||
*
|
||||
* $Source: /cvs_backup/e107_0.8/e107_plugins/calendar_menu/e_tagwords.php,v $
|
||||
* $Revision$
|
||||
* $Date$
|
||||
* $Author$
|
||||
*/
|
||||
|
||||
/**
|
||||
* e107 Event calendar plugin
|
||||
*
|
||||
* Tagwords shim
|
||||
*
|
||||
* @package e107_plugins
|
||||
* @subpackage event_calendar
|
||||
* @version $Id$;
|
||||
*/
|
||||
|
||||
if (!defined('e107_INIT')) { exit; }
|
||||
|
||||
class e_tagwords_calendar_menu
|
||||
{
|
||||
function e_tagwords_calendar_menu()
|
||||
{
|
||||
$this->settings = array();
|
||||
|
||||
$this->settings['plugin'] = 'calendar_menu';
|
||||
$this->settings['table'] = 'event';
|
||||
$this->settings['db_id'] = 'event_id';
|
||||
$this->settings['caption'] = 'calendar';
|
||||
}
|
||||
|
||||
function getLink($id)
|
||||
{
|
||||
if($this->row=='')
|
||||
{
|
||||
if ($this->row = $this->getRecord($id))
|
||||
{
|
||||
$url = e_PLUGIN."calendar_menu/event.php?{$this->row['event_start']}.event.{$this->row['event_id']}";
|
||||
return "<a href='".$url."'>".e107::getParser()->toHTML($this->row['event_title'], TRUE, '')."</a>";
|
||||
}
|
||||
}
|
||||
return '';
|
||||
}
|
||||
|
||||
|
||||
function getRecord($id)
|
||||
{
|
||||
$sql = e107::getDb();
|
||||
|
||||
$this->row = '';
|
||||
$qry = "SELECT * FROM #event as e WHERE e.event_id='{$id}'";
|
||||
|
||||
if($sql->db_Select_gen($qry))
|
||||
{
|
||||
$this->row=$sql->db_Fetch();
|
||||
return $this->row;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
@ -1,91 +0,0 @@
|
||||
<?php
|
||||
/*
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2013 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
* Event calendar mailout - template file
|
||||
*
|
||||
* $Source: /cvs_backup/e107_0.8/e107_plugins/calendar_menu/ec_mailout_template.php,v $
|
||||
* $Revision$
|
||||
* $Date$
|
||||
* $Author$
|
||||
*/
|
||||
|
||||
/**
|
||||
* e107 Event calendar plugin
|
||||
*
|
||||
* Event calendar mailout - template file
|
||||
*
|
||||
* @package e107_plugins
|
||||
* @subpackage event_calendar
|
||||
* @version $Id$;
|
||||
*/
|
||||
|
||||
/*
|
||||
This template is used during the subscription mailouts - it is inserted at the front of the text
|
||||
defined for each category.
|
||||
Main purpose is to define the 'pre' and 'post' styles, but it can be used much as any E107 template
|
||||
|
||||
Language constants should be in the English_mailer.php file
|
||||
*/
|
||||
|
||||
if (!defined('e107_INIT')) { exit; }
|
||||
|
||||
include_lan(e_PLUGIN.'calendar_menu/languages/'.e_LANGUAGE.'_mailer.php');
|
||||
|
||||
global $sc_style;
|
||||
|
||||
$sc_style['EC_MAIL_HEADING_DATE']['pre'] = '';
|
||||
$sc_style['EC_MAIL_HEADING_DATE']['post'] = '';
|
||||
|
||||
$sc_style['EC_MAIL_SHORT_DATE']['pre'] = '';
|
||||
$sc_style['EC_MAIL_SHORT_DATE']['post'] = '';
|
||||
|
||||
$sc_style['EC_MAIL_TITLE']['pre'] = '';
|
||||
$sc_style['EC_MAIL_TITLE']['post'] = '';
|
||||
|
||||
$sc_style['EC_MAIL_ID']['pre'] = '';
|
||||
$sc_style['EC_MAIL_ID']['post'] = '';
|
||||
|
||||
$sc_style['EC_MAIL_DETAILS']['pre'] = '';
|
||||
$sc_style['EC_MAIL_DETAILS']['post'] = '';
|
||||
|
||||
$sc_style['EC_MAIL_LOCATION']['pre'] = LAN_EC_MAIL_100.' ';
|
||||
$sc_style['EC_MAIL_LOCATION']['post'] = '';
|
||||
|
||||
$sc_style['EC_MAIL_AUTHOR']['pre'] = LAN_EC_MAIL_101.' ';
|
||||
$sc_style['EC_MAIL_AUTHOR']['post'] = '';
|
||||
|
||||
$sc_style['EC_MAIL_CONTACT']['pre'] = LAN_EC_MAIL_102.' ';
|
||||
$sc_style['EC_MAIL_CONTACT']['post'] = '';
|
||||
|
||||
$sc_style['EC_MAIL_THREAD']['pre'] = '';
|
||||
$sc_style['EC_MAIL_THREAD']['post'] = '';
|
||||
|
||||
$sc_style['EC_MAIL_LINK']['pre'] = '';
|
||||
$sc_style['EC_MAIL_LINK']['post'] = '';
|
||||
|
||||
$sc_style['EC_MAIL_CATEGORY']['pre'] = '';
|
||||
$sc_style['EC_MAIL_CATEGORY']['post'] = '';
|
||||
|
||||
$sc_style['EC_MAIL_DATE_START']['pre'] = '';
|
||||
$sc_style['EC_MAIL_DATE_START']['post'] = '';
|
||||
$sc_style['EC_MAIL_DATE_START_ALLDAY']['pre'] = LAN_EC_MAIL_103.' ';
|
||||
$sc_style['EC_MAIL_DATE_START_ALLDAY']['post'] = '';
|
||||
$sc_style['EC_MAIL_DATE_START_TIMED']['pre'] = LAN_EC_MAIL_104.' ';
|
||||
$sc_style['EC_MAIL_DATE_START_TIMED']['post'] = '';
|
||||
|
||||
$sc_style['EC_MAIL_TIME_START']['pre'] = LAN_EC_MAIL_105;
|
||||
$sc_style['EC_MAIL_TIME_START']['post'] = '';
|
||||
|
||||
$sc_style['EC_MAIL_DATE_END']['pre'] = LAN_EC_MAIL_106.' ';
|
||||
$sc_style['EC_MAIL_DATE_END']['post'] = '';
|
||||
|
||||
$sc_style['EC_MAIL_TIME_END']['pre'] = LAN_EC_MAIL_105;
|
||||
$sc_style['EC_MAIL_TIME_END']['post'] = '';
|
||||
|
||||
|
||||
?>
|
@ -1,467 +0,0 @@
|
||||
<?php
|
||||
/*
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2013 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
* Event calendar - generate lists
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* e107 Event calendar plugin
|
||||
*
|
||||
* Event calendar - generate lists
|
||||
*
|
||||
* @package e107_plugins
|
||||
* @subpackage event_calendar
|
||||
*/
|
||||
|
||||
/*
|
||||
|
|
||||
| Generate a printer-friendly page of calendar events
|
||||
| Query is: ec_pf_page.php?ssssss.eeeeee[[[.cat].template].output]
|
||||
|
|
||||
| Date format is yyyymmdd or yyyymm to make it easy to generate fixed queries.
|
||||
| cat is a number corresponding to a category ID. '*' or blank gives all categories
|
||||
| template determines output style ('*' selects the default template)
|
||||
| output can be 'display' (default), 'print' or 'pdf'
|
||||
|
|
||||
| Mostly the template can use the EVENT and MAIL shortcodes - pretty much anything that
|
||||
| uses $thisevent as a parameter. MAIL is best since it's never used elsewhere at the same time
|
||||
+----------------------------------------------------------------------------+
|
||||
*/
|
||||
|
||||
if (!defined('e_SINGLE_ENTRY'))
|
||||
{
|
||||
require_once('../../class2.php');
|
||||
}
|
||||
$e107 = e107::getInstance();
|
||||
$tp = e107::getParser();
|
||||
|
||||
if (!$e107->isInstalled('calendar_menu')) header('Location: '.e_BASE.'index.php');
|
||||
include_lan(e_PLUGIN.'calendar_menu/languages/'.e_LANGUAGE.'.php');
|
||||
define('PAGE_NAME', EC_LAN_80);
|
||||
|
||||
require_once(e_PLUGIN.'calendar_menu/ecal_class.php');
|
||||
$ecal_class = new ecal_class;
|
||||
|
||||
|
||||
require_once(e_PLUGIN.'calendar_menu/calendar_shortcodes.php');
|
||||
$calSc = new event_calendar_shortcodes();
|
||||
$calSc->ecalClass = &$ecal_class; // Give shortcodes a pointer to calendar class
|
||||
|
||||
$message = '';
|
||||
unset($ec_qs);
|
||||
if (e_QUERY) $ec_qs = explode('.', e_QUERY);
|
||||
else
|
||||
{
|
||||
if (!isset($ecal_class->pref['eventpost_printlists']) || ($ecal_class->pref['eventpost_printlists'] == 0))
|
||||
header('location:'.SITEURL); // If disabled, just go back to index page
|
||||
}
|
||||
|
||||
if (isset($_POST['set_dates']) && isset($_POST['start_date']) && (isset($_POST['end_date'])))
|
||||
{
|
||||
$ec_qs[0] = $_POST['start_date'];
|
||||
$ec_qs[1] = $_POST['end_date'];
|
||||
if (isset($_POST['event_cat_ids']))
|
||||
{
|
||||
$ec_qs[2] = $_POST['event_cat_ids'];
|
||||
if ($ec_qs[2] == 'all') $ec_qs[2] = '*';
|
||||
}
|
||||
if (isset($_POST['template_choice'])) $ec_qs[3] = $_POST['template_choice'];
|
||||
}
|
||||
|
||||
if (!isset($ec_qs[3])) $ec_qs[3] = 'default'; // Template
|
||||
|
||||
if (isset($_POST['output_type'])) $ec_qs[4] = $_POST['output_type'];
|
||||
if (!isset($ec_qs[4]) || (($ec_qs[4]) != 'print') && ($ec_qs[4] != 'pdf') ) $ec_qs[4] = 'display';
|
||||
|
||||
|
||||
|
||||
$cal_super = $ecal_class->cal_super;
|
||||
|
||||
// Get templates, since we may have to give a choice if we're displaying something
|
||||
// Actually load three in order so they can accumulate, and give the option of overriding other settings
|
||||
$EVENT_CAL_PDF_HEADER = array();
|
||||
$EVENT_CAL_PDF_BODY = array();
|
||||
$EVENT_CAL_PDF_FOOTER = array();
|
||||
if (is_readable(e_PLUGIN.'calendar_menu/ec_pf_template.php')) require_once(e_PLUGIN.'calendar_menu/ec_pf_template.php');
|
||||
if (is_readable(e_PLUGIN.'calendar_menu/ec_pf_user_template.php')) require_once(e_PLUGIN.'calendar_menu/ec_pf_user_template.php');
|
||||
if (is_readable(THEME.'ec_pf_template.php')) require_once(THEME.'ec_pf_template.php');
|
||||
|
||||
// Hard-coded alternatives
|
||||
if (!count($EVENT_CAL_PDF_HEADER)) $EVENT_CAL_PDF_HEADER['default'] = '<br />';
|
||||
if (!count($EVENT_CAL_PDF_BODY)) $EVENT_CAL_PDF_BODY['default'] = '{EC_MAIL_DATE_START} {EC_MAIL_TIME_START} {EC_MAIL_TITLE}<br />';
|
||||
if (!count($EVENT_CAL_PDF_FOOTER)) $EVENT_CAL_PDF_FOOTER['default'] = '<br />';
|
||||
if (!count($EVENT_CAL_PDF_NAMES)) $ec_pdf_template = 'default';
|
||||
// If one name only, we just assign that
|
||||
if (count($EVENT_CAL_PDF_NAMES) == 1)
|
||||
{
|
||||
$ec_pdf_template = array_pop(array_keys($EVENT_CAL_PDF_NAMES));
|
||||
// echo "Assign template: ".$ec_pdf_template."<br />";
|
||||
}
|
||||
|
||||
$ec_enable_pdf = ($ecal_class->pref['eventpost_printlists'] > 1) && is_readable(e_PLUGIN."pdf/e107pdf.php");
|
||||
|
||||
if (!isset($ec_qs[0]) || !isset($ec_qs[1]))
|
||||
{
|
||||
// Put up a prompt to get the view period
|
||||
require_once(HEADERF);
|
||||
$cal_text = "<div style='text-align:center'>
|
||||
<form method='post' action='".e_SELF."'>
|
||||
<table style='".USER_WIDTH."' class='fborder'>
|
||||
<colgroup>
|
||||
<col style='width:60%;vertical-align:top;' />
|
||||
<col style='width:40%;vertical-align:top;' />
|
||||
</colgroup>";
|
||||
$cal_text .= "<tr>
|
||||
<td class='forumheader3'>".EC_LAN_153."</td>
|
||||
<td class='forumheader3' style='text_align:center'>";
|
||||
$cal_text .= gen_drop(FALSE, $ecal_class)."</td>
|
||||
</tr><tr>
|
||||
<td class='forumheader3'>".EC_LAN_154."</td>
|
||||
<td class='forumheader3' style='text_align:center'>".gen_drop(TRUE, $ecal_class)."</td>
|
||||
</tr><tr>
|
||||
<td class='forumheader3'>".EC_LAN_155."</td>
|
||||
<td class='forumheader3' style='text_align:center'>";
|
||||
$cal_text .= $tp->parseTemplate('{EC_NAV_CATEGORIES=nosubmit}', FALSE, $calSc);
|
||||
$cal_text .= "</td>
|
||||
</tr>";
|
||||
if (isset($EVENT_CAL_PDF_NAMES) && is_array($EVENT_CAL_PDF_NAMES) && (count($EVENT_CAL_PDF_NAMES) > 1))
|
||||
{ // Offer choice of templates
|
||||
$cal_text .= "<tr>
|
||||
<td class='forumheader3'>".EC_LAN_157."</td>
|
||||
<td class='forumheader3' style='text_align:center'><select name='template_choice' class='tbox' style='width:140px;' >\n";
|
||||
foreach($EVENT_CAL_PDF_NAMES as $ec_template_name => $ec_template_choice)
|
||||
{
|
||||
$cal_text .= "<option value='{$ec_template_name}'>{$ec_template_choice}</option>\n";
|
||||
}
|
||||
$cal_text .= "</select></td>
|
||||
</tr>\n";
|
||||
}
|
||||
// Radio buttons to select output type
|
||||
$cal_text .= "<tr>
|
||||
<td class='forumheader3'>".EC_LAN_158."</td>
|
||||
<td class='forumheader3' style='text_align:center'>";
|
||||
$cal_text .= "
|
||||
<input type='radio' name='output_type' value='display' checked='checked' /> ".EC_LAN_159."<br />
|
||||
<input type='radio' name='output_type' value='print' /> ".EC_LAN_160."<br />";
|
||||
if ($ec_enable_pdf)
|
||||
{
|
||||
$cal_text .= "<input type='radio' name='output_type' value='pdf' /> ".EC_LAN_161;
|
||||
}
|
||||
$cal_text .="</td></tr>";
|
||||
|
||||
$cal_text .= "<tr><td colspan='2' style='text-align:center' class='fcaption'><input class='btn button' type='submit' name='set_dates' value='".EC_LAN_156."' /></td></tr>";
|
||||
|
||||
$cal_text .= "</table></form></div>";
|
||||
$ns->tablerender(EC_LAN_150, $cal_text);
|
||||
require_once(FOOTERF);
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
if (!is_numeric($ec_start_date = decode_date($ec_qs[0],FALSE)))
|
||||
{
|
||||
$message = $ec_start_date;
|
||||
}
|
||||
elseif (!is_numeric($ec_end_date = decode_date($ec_qs[1],TRUE)))
|
||||
{
|
||||
$message = $ec_end_date;
|
||||
}
|
||||
elseif ($ec_start_date >= $ec_end_date)
|
||||
{
|
||||
$message = EC_LAN_151;
|
||||
}
|
||||
elseif (($ec_end_date - $ec_start_date) > 366*86400)
|
||||
{
|
||||
$message = EC_LAN_152;
|
||||
}
|
||||
|
||||
// That's the vetting of the query done (as much as we'll do)
|
||||
if ($message !== "")
|
||||
{
|
||||
require_once(HEADERF);
|
||||
$ns->tablerender(EC_LAN_80, $message);
|
||||
require_once(FOOTERF);
|
||||
exit;
|
||||
}
|
||||
|
||||
$calSc->catFilter = $cat_filter; // Category filter
|
||||
|
||||
$ec_output_type = $ec_qs[4];
|
||||
if (isset($ec_qs[5])) $ec_list_title = $ec_qs[5]; else $ec_list_title = EC_LAN_163;
|
||||
$ec_list_title = str_replace('_',' ',$ec_list_title);
|
||||
|
||||
if (($ec_output_type == 'pdf') && !$ec_enable_pdf) $ec_output_type = 'display';
|
||||
if ($ec_output_type == 'display') require_once(HEADERF);
|
||||
|
||||
|
||||
// Allow a number of categories separated by a '&'
|
||||
$cat_filter = 0;
|
||||
$ec_category_list = EC_LAN_97; // Displayable version of categories - default to 'all'
|
||||
if (isset($ec_qs[2]) && ($ec_qs[2] != '*'))
|
||||
{
|
||||
$ec_category_list = array();
|
||||
$temp = explode('&',$ec_qs[2]);
|
||||
foreach($temp as $t1)
|
||||
{
|
||||
if (!is_numeric($t1)) unset($t1);
|
||||
}
|
||||
|
||||
// Now look up the category names in the database - check access rights at the same time
|
||||
$temp = array(); // Accumulate valid category IDs
|
||||
$cal_qry = "SELECT event_cat_id, event_cat_name FROM #event_cat WHERE find_in_set(event_cat_id, '{$ec_qs[2]}') ".$ecal_class->extra_query;
|
||||
if ($sql->db_Select_gen($cal_qry))
|
||||
{
|
||||
while ($thiscat = $sql->db_Fetch())
|
||||
{
|
||||
$temp [] = $thiscat['event_cat_id'];
|
||||
$ec_category_list[] = $thiscat['event_cat_name'];
|
||||
}
|
||||
$cat_filter = implode(',',$temp); // Gives us a comma separated numeric set of categories
|
||||
}
|
||||
else
|
||||
{
|
||||
echo EC_LAN_100."<br /><br />";
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
// $ec_start_date - earliest date of period
|
||||
// $ec_end_date - latest date of period
|
||||
|
||||
// We'll potentially need virtually all of the event-related fields, so get them regardless. Just cut back on category fields
|
||||
$ev_list = $ecal_class->get_events($ec_start_date, $ec_end_date, FALSE, $cat_filter, TRUE, '*', 'event_cat_name,event_cat_icon');
|
||||
// Now go through and multiply up any recurring records
|
||||
$tim_arr = array();
|
||||
foreach ($ev_list as $k=>$event)
|
||||
{
|
||||
if (is_array($event['event_start']))
|
||||
{
|
||||
foreach ($event['event_start'] as $t)
|
||||
{
|
||||
$tim_arr[$t] = $k;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$tim_arr[$event['event_start']] = $k;
|
||||
}
|
||||
}
|
||||
|
||||
ksort($tim_arr); // Sort into time order
|
||||
|
||||
|
||||
|
||||
if (isset($ec_qs[3])) $ec_pdf_template = $ec_qs[3];
|
||||
if (!isset($ec_pdf_template) || !array_key_exists($ec_pdf_template,$EVENT_CAL_PDF_NAMES)) $ec_pdf_template = 'default';
|
||||
|
||||
/*
|
||||
// These available to templates/shortcodes to pick up change of start day/month/year
|
||||
global $ec_last_year, $ec_last_month, $ec_last_day, $ec_year_change, $ec_month_change, $ec_day_change;
|
||||
global $ec_start_date, $ec_end_date, $ec_pdf_options;
|
||||
global $ec_current_month, $thisevent_start_date, $thisevent_end_date ;
|
||||
*/
|
||||
|
||||
$calSc->printVars = array('lt' => $ec_list_title, 'cat' => $ec_category_list, 'ot' => $ec_output_type,
|
||||
'sd' => $ec_start_date, 'ed' => $ec_end_date); // Give shortcodes the event data
|
||||
|
||||
$ec_last_year = 0;
|
||||
$ec_last_month = 0;
|
||||
$ec_last_day = 0;
|
||||
|
||||
$cal_text = '';
|
||||
$cal_totev = count($ev_list);
|
||||
if ($cal_totev > 0)
|
||||
{
|
||||
if (isset($ec_template_styles[$ec_pdf_template]) && is_array($ec_template_styles[$ec_pdf_template]))
|
||||
{
|
||||
$ec_current_overrides = $ec_template_styles[$ec_pdf_template]; // Possible array of codes to override standard $sc_style
|
||||
$sc_style = array_merge($sc_style,$ec_current_overrides); // Override as necessary
|
||||
}
|
||||
|
||||
// If printing, wrap in a form so the button works
|
||||
if ($ec_output_type == 'print') $cal_text .= "<form action=''>\n";
|
||||
// Add header
|
||||
$cal_text .= $tp->parseTemplate($EVENT_CAL_PDF_HEADER[$ec_pdf_template], FALSE, $calSc);
|
||||
// Debug code
|
||||
// echo "Start date: ".strftime("%d-%m-%Y %H:%M:%S",$ec_start_date)."<br />";
|
||||
// echo "End date: ".strftime("%d-%m-%Y %H:%M:%S",$ec_end_date)."<br />";
|
||||
// echo "Template: ".$ec_pdf_template,"<br />";
|
||||
// echo "Header: ".$EVENT_CAL_PDF_HEADER[$ec_pdf_template]."<br />";
|
||||
// echo "Body: ".$EVENT_CAL_PDF_BODY[$ec_pdf_template]."<br />";
|
||||
// echo "Footer: ".$EVENT_CAL_PDF_FOOTER[$ec_pdf_template]."<br />";
|
||||
|
||||
foreach ($tim_arr as $tim => $ptr)
|
||||
{
|
||||
$ev_list[$ptr]['event_start'] = $tim;
|
||||
$thisevent = $ev_list[$ptr];
|
||||
// Decode dates into individual fields - we're bound to want them
|
||||
$thisevent_start_date = $ecal_class->gmgetdate($thisevent['event_start']);
|
||||
$thisevent_end_date = $ecal_class->gmgetdate($thisevent['event_end']);
|
||||
|
||||
$ec_year_change = ($ec_last_year != $thisevent_start_date['year']);
|
||||
$ec_month_change = ($ec_last_month != $thisevent_start_date['mon']);
|
||||
$ec_day_change = ($ec_last_day != $thisevent_start_date['mday']);
|
||||
|
||||
$cal_totev --; // Can use this to modify inter-event gap
|
||||
$calSc->numEvents = $cal_totev; // Number of events to display
|
||||
$calSc->event = $thisevent; // Give shortcodes the event data
|
||||
$calSc->changeFlags = array('yc' => $ec_year_change, 'mc' => $ec_month_change, 'dc' => $ec_day_change); // Give shortcodes the event data
|
||||
$cal_text .= $tp->parseTemplate($EVENT_CAL_PDF_BODY[$ec_pdf_template], FALSE, $calSc);
|
||||
|
||||
$ec_last_year = $thisevent_start_date['year'];
|
||||
$ec_last_month = $thisevent_start_date['mon'];
|
||||
$ec_last_day = $thisevent_start_date['mday'];
|
||||
}
|
||||
|
||||
// Add footer
|
||||
$cal_text .= $tp->parseTemplate($EVENT_CAL_PDF_FOOTER[$ec_pdf_template], FALSE, $calSc);
|
||||
if ($ec_output_type == 'print') $cal_text .= "</form>\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
$cal_text.= EC_LAN_148;
|
||||
}
|
||||
|
||||
switch($ec_output_type)
|
||||
{
|
||||
case 'display':
|
||||
$ns->tablerender(EC_LAN_80, $cal_text, 'ec_pf_page');
|
||||
require_once (FOOTERF);
|
||||
break;
|
||||
|
||||
case 'print':
|
||||
echo $cal_text;
|
||||
break;
|
||||
|
||||
case 'pdf':
|
||||
//TODO find a way to pass initialisation options etc to PDF driver
|
||||
//include_lan(e_PLUGIN.'pdf/languages/'.e_LANGUAGE.'_admin_pdf.php'); - shouldn't be needed
|
||||
require_once (e_PLUGIN.'pdf/e107pdf.php');
|
||||
$pdf = new e107PDF();
|
||||
// $text = array($text, $creator, $author, $title, $subject, $keywords, $url);
|
||||
$text = array(
|
||||
$cal_text,
|
||||
'',
|
||||
'',
|
||||
EC_LAN_163, // Title
|
||||
'',
|
||||
'',
|
||||
e_SELF.'?'.e_QUERY, // URL
|
||||
'' // Page orientation
|
||||
);
|
||||
$pdf->makePDF($text);
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
// We're assuming $date_string is a string of digits
|
||||
// Which could begin with 'now' or 'now+'
|
||||
function decode_date($date_string, $last_day = FALSE)
|
||||
{ // Decode a date string
|
||||
if (strpos($date_string, 'now') === 0)
|
||||
{
|
||||
// decode special dates
|
||||
$today = getdate();
|
||||
// Knock off the 'now'
|
||||
$date_string = trim(substr($date_string, 3));
|
||||
if (($date_string != '') && ($date_string[0] == '+'))
|
||||
{
|
||||
// Knock off the '+'
|
||||
$date_string = trim(substr($date_string, 1));
|
||||
if (is_numeric($date_string) && ($date_string >= 0) && ($date_string <= 12))
|
||||
{
|
||||
$today['mon'] += $date_string;
|
||||
if ($today['mon'] > 12)
|
||||
{
|
||||
$today['mon'] -= 12;
|
||||
$today['year'] += 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return EC_LAN_149;
|
||||
}
|
||||
}
|
||||
$date_string = $today['year'].$today['mon'];
|
||||
}
|
||||
|
||||
// Here, $date_string is a string of 5, 6 or 8 digits
|
||||
// use preg_match()
|
||||
if(preg_match('/^\d{5,8}$/D', $date_string))
|
||||
{
|
||||
$month = 0;
|
||||
$day = 1;
|
||||
if (strlen($date_string) == 5)
|
||||
$date_string = substr_replace($date_string, '0', -1, 0);
|
||||
if (strlen($date_string) == 8)
|
||||
{
|
||||
$day = substr($date_string, -2, 2);
|
||||
if ($last_day)
|
||||
$day += 1;
|
||||
}
|
||||
elseif (strlen($date_string) == 6)
|
||||
{
|
||||
if ($last_day)
|
||||
$month = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Error
|
||||
return EC_LAN_149;
|
||||
}
|
||||
$month += substr($date_string, 4, 2);
|
||||
$year = substr($date_string, 0, 4);
|
||||
$temp = mktime(0, 0, 0, $month, $day, $year);
|
||||
// Always do this to get whole of last day
|
||||
if ($last_day)
|
||||
$temp -= 1;
|
||||
return $temp;
|
||||
}
|
||||
else
|
||||
{ // Error
|
||||
return EC_LAN_149;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Generate monthly drop-down - FALSE = first, TRUE = last
|
||||
// For the first date we want beginning of previous year to end of current year
|
||||
// For the last date we want end of next
|
||||
function gen_drop($drop_type, $ecal_class)
|
||||
{
|
||||
$text = "<select name='".($drop_type ? 'end_date' : 'start_date')."' class='tbox' style='width:140px;' >\n";
|
||||
if ($drop_type)
|
||||
{
|
||||
$start_date = strtotime('-3 months');
|
||||
$match_date = strtotime('+3 months'); // Propose 3-month list
|
||||
}
|
||||
else
|
||||
{
|
||||
$start_date = strtotime('-9 months');
|
||||
// $match_date = strtotime('-1 months');
|
||||
$match_date = time(); // Use current month for start date
|
||||
}
|
||||
|
||||
// Get date to be 1st of month
|
||||
$date = $ecal_class->gmgetdate($match_date);
|
||||
$match_date = gmmktime(0,0,0,$date['mon'],1,$date['year'],FALSE);
|
||||
|
||||
for ($i = 0; $i < 24; $i++)
|
||||
{
|
||||
$sel_text = (($match_date == $start_date) ? "selected='selected'" : "");
|
||||
$date = $ecal_class->gmgetdate($start_date);
|
||||
$text .= "<option value = '{$date['year']}{$date['mon']}' {$sel_text}>{$date['month']} {$date['year']} </option>\n";
|
||||
$start_date = gmmktime(0,0,0,$date['mon']+1,1,$date['year'],FALSE);
|
||||
}
|
||||
$text .= "</select>\n";
|
||||
return $text;
|
||||
}
|
||||
?>
|
@ -1,110 +0,0 @@
|
||||
<?php
|
||||
/*
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2013 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
* Event calendar - template file for list generator
|
||||
*
|
||||
* $Source: /cvs_backup/e107_0.8/e107_plugins/calendar_menu/ec_pf_template.php,v $
|
||||
* $Revision$
|
||||
* $Date$
|
||||
* $Author$
|
||||
*/
|
||||
|
||||
/**
|
||||
* e107 Event calendar plugin
|
||||
*
|
||||
* Event calendar - template file for list generator
|
||||
*
|
||||
* @package e107_plugins
|
||||
* @subpackage event_calendar
|
||||
* @version $Id$;
|
||||
*/
|
||||
|
||||
/*
|
||||
Templates file for the event calendar listings (display/print/pdf).
|
||||
There can be more than one template defined, in which case they are selectable.
|
||||
There are four strings to define:
|
||||
$EVENT_CAL_PDF_NAMES[] - a 'user-friendly' name/description (shown in selection box)
|
||||
$EVENT_CAL_PDF_HEADER[] - the template for the header - displayed once at the top pf the list
|
||||
$EVENT_CAL_PDF_BODY[] - template for each individual entry
|
||||
$EVENT_CAL_PDF_FOOTER[] - template for a footer (to close off the list)
|
||||
|
||||
The array index defines the name of the template - if there is an entry in the $EVENT_CAL_PDF_NAMES[]
|
||||
array, there must be a corresponding entry in each of the other three arrays.
|
||||
|
||||
There are two ways of managing the styling of the various shortcodes:
|
||||
a) The $sc_style array works in the usual way, and should be used where the styling is the same
|
||||
for all templates, or where you can set a 'default' styling which applies to most uses of the shortcode
|
||||
b) An $ec_template_styles array sets styles for an individual template. This need only contain the
|
||||
styles which override a default $sc_style entry.
|
||||
*/
|
||||
|
||||
if (!defined('e107_INIT')) { exit; }
|
||||
if (!defined('USER_WIDTH')){ define('USER_WIDTH','width:auto'); }
|
||||
|
||||
$sc_style['EC_PR_CHANGE_YEAR']['pre'] = '<br /><em><strong>';
|
||||
$sc_style['EC_PR_CHANGE_YEAR']['post'] = '</strong></em>';
|
||||
$sc_style['EC_PR_CHANGE_MONTH']['pre'] = '<br /><strong>';
|
||||
$sc_style['EC_PR_CHANGE_MONTH']['post'] = '</strong><br />';
|
||||
$sc_style['EC_PRINT_BUTTON']['pre'] = "<br /><div style='text-align:center'>";
|
||||
$sc_style['EC_PRINT_BUTTON']['post'] = "</div>";
|
||||
$sc_style['EC_NOW_DATE']['pre'] = EC_LAN_170;
|
||||
$sc_style['EC_NOW_DATE']['post'] = "";
|
||||
$sc_style['EC_NOW_TIME']['pre'] = EC_LAN_144;
|
||||
$sc_style['EC_NOW_TIME']['post'] = "";
|
||||
$sc_style['EC_PR_CAT_LIST']['pre'] = EC_LAN_172;
|
||||
$sc_style['EC_PR_CAT_LIST']['post'] = "";
|
||||
$sc_style['EC_PR_LIST_TITLE']['pre'] = "<h3>";
|
||||
$sc_style['EC_PR_LIST_TITLE']['post'] = "</h3>";
|
||||
|
||||
// - Default style - very basic
|
||||
$EVENT_CAL_PDF_NAMES['default'] = EC_LAN_165;
|
||||
$EVENT_CAL_PDF_HEADER['default'] = "{EC_PR_LIST_TITLE}<br />{EC_PR_CAT_LIST}<br />".EC_LAN_168."{EC_PR_LIST_START=%d-%m-%Y}<br />".EC_LAN_169."{EC_PR_LIST_END=%d-%m-%Y}<br />";
|
||||
$EVENT_CAL_PDF_BODY['default'] = "{EC_PR_CHANGE_YEAR}{EC_PR_CHANGE_MONTH}{EC_MAIL_SHORT_DATE} {EC_MAIL_TIME_START} {EC_MAIL_TITLE}<br />\n";
|
||||
$EVENT_CAL_PDF_FOOTER['default'] = EC_LAN_138."<br /><br />{EC_IFNOT_DISPLAY=EC_NOW_DATE}{EC_IFNOT_DISPLAY=EC_NOW_TIME}<br />{EC_PRINT_BUTTON}";
|
||||
|
||||
|
||||
// - A simple tabular style
|
||||
$ec_template_styles['simple']['EC_PR_CHANGE_YEAR']['pre'] = "<tr><td colspan='4'><em><strong><br />";
|
||||
$ec_template_styles['simple']['EC_PR_CHANGE_YEAR']['post'] = '</strong></em></td></tr>';
|
||||
$ec_template_styles['simple']['EC_PR_CHANGE_MONTH']['pre'] = '<strong>';
|
||||
$ec_template_styles['simple']['EC_PR_CHANGE_MONTH']['post'] = '</strong>';
|
||||
|
||||
$EVENT_CAL_PDF_NAMES['simple'] = EC_LAN_166;
|
||||
$EVENT_CAL_PDF_HEADER['simple'] = "{EC_IF_PRINT=LOGO}<table border='0px' cellspacing='10px' cellpadding='5px'>
|
||||
<colgroup> <col width='15%'><col width='10%'><col width='10%'><col width='65%'></colgroup>
|
||||
<tr ><td colspan='4' style='text-align:center'>".EC_LAN_163."<br />".EC_LAN_168."{EC_PR_LIST_START=%d-%m-%Y}<br />".EC_LAN_169."{EC_PR_LIST_END=%d-%m-%Y}</td></tr>";
|
||||
$EVENT_CAL_PDF_BODY['simple'] = "{EC_PR_CHANGE_YEAR}<tr><td>{EC_PR_CHANGE_MONTH} </td>
|
||||
<td>{EC_MAIL_DATE_START=%a %d}</td><td>{EC_MAIL_TIME_START}</td><td>{EC_MAIL_TITLE}</td></tr>\n";
|
||||
$EVENT_CAL_PDF_FOOTER['simple'] = "</table><br /><br />{EC_IFNOT_DISPLAY=EC_NOW_DATE}{EC_IFNOT_DISPLAY=EC_NOW_TIME} <br />{EC_PRINT_BUTTON}";
|
||||
|
||||
|
||||
// - A tabular style with lines round the cells
|
||||
$ec_template_styles['tlinclines']['EC_PR_CHANGE_YEAR']['pre'] = "<tr><td colspan='3'><em><strong><br />";
|
||||
$ec_template_styles['tlinclines']['EC_PR_CHANGE_YEAR']['post'] = '</strong></em></td></tr>';
|
||||
|
||||
$EVENT_CAL_PDF_NAMES['tlinclines'] = EC_LAN_167;
|
||||
$EVENT_CAL_PDF_HEADER['tlinclines'] = "<table border='1px' cellspacing='0px' cellpadding='5px'>
|
||||
<colgroup> <col width='22%'><col width='8%'><col width='70%'></colgroup>
|
||||
<tr ><td colspan='4' style='text-align:center'>".EC_LAN_163."<br />".EC_LAN_168."{EC_PR_LIST_START=%d-%m-%Y}<br />".EC_LAN_169."{EC_PR_LIST_END=%d-%m-%Y}<br /></td></tr>";
|
||||
$EVENT_CAL_PDF_BODY['tlinclines'] = "{EC_PR_CHANGE_YEAR}<tr>
|
||||
<td>{EC_MAIL_DATE_START}</td><td>{EC_MAIL_TIME_START}</td><td>{EC_MAIL_TITLE}</td></tr>\n";
|
||||
$EVENT_CAL_PDF_FOOTER['tlinclines'] = "</table><br /><br />{EC_IFNOT_DISPLAY=EC_NOW_DATE=%d-%m-%y}{EC_IFNOT_DISPLAY=EC_NOW_TIME}{EC_PRINT_BUTTON}";
|
||||
|
||||
// - A tabular style with lines round the cells and categories
|
||||
$ec_template_styles['tlinccatlines']['EC_PR_CHANGE_YEAR']['pre'] = "<tr><td colspan='4'><em><strong><br />";
|
||||
$ec_template_styles['tlinccatlines']['EC_PR_CHANGE_YEAR']['post'] = '</strong></em></td></tr>';
|
||||
|
||||
$EVENT_CAL_PDF_NAMES['tlinccatlines'] = EC_LAN_171;
|
||||
$EVENT_CAL_PDF_HEADER['tlinccatlines'] = "<table border='1px' cellspacing='0px' cellpadding='5px'>
|
||||
<colgroup> <col width='12%'><col width='8%'><col width='18%'><col width='62%'></colgroup>
|
||||
<tr ><td colspan='4' style='text-align:center'>".EC_LAN_163."<br />".EC_LAN_168."{EC_PR_LIST_START=%d-%m-%Y}<br />".EC_LAN_169."{EC_PR_LIST_END=%d-%m-%Y}<br /></td></tr>";
|
||||
$EVENT_CAL_PDF_BODY['tlinccatlines'] = "{EC_PR_CHANGE_YEAR}<tr>
|
||||
<td>{EC_MAIL_DATE_START=%D %d %b}</td><td>{EC_MAIL_TIME_START}</td><td>{EC_MAIL_CATEGORY}</td><td>{EC_MAIL_TITLE}</td></tr>\n";
|
||||
$EVENT_CAL_PDF_FOOTER['tlinccatlines'] = "</table><br /><br />{EC_IFNOT_DISPLAY=EC_NOW_DATE=%d-%m-%y}{EC_IFNOT_DISPLAY=EC_NOW_TIME}{EC_PRINT_BUTTON}";
|
||||
|
||||
?>
|
@ -1,945 +0,0 @@
|
||||
<?php
|
||||
/*
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2013 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
* Event calendar class
|
||||
* Pre-calculates/caches many useful values
|
||||
* Implements functions used in most of the code
|
||||
*
|
||||
* $Source: /cvs_backup/e107_0.8/e107_plugins/calendar_menu/ecal_class.php,v $
|
||||
* $Revision$
|
||||
* $Date$
|
||||
* $Author$
|
||||
*/
|
||||
|
||||
/**
|
||||
* e107 Event calendar plugin
|
||||
*
|
||||
* Class with useful functions
|
||||
*
|
||||
* @package e107_plugins
|
||||
* @subpackage event_calendar
|
||||
* @version $Id$;
|
||||
*/
|
||||
|
||||
/*
|
||||
Preferences used:
|
||||
eventpost_caltime 1 = server, 2 = site, 3 = user
|
||||
eventpost_timedisplay 1 = 24 hour hhmm, 2 = 12 hour default, 3 = custom, 4 = 24 hour hh:mm
|
||||
eventpost_timecustom String for custom time display
|
||||
*/
|
||||
|
||||
if (!defined('e107_INIT')) { exit; }
|
||||
|
||||
if (!defined('EC_DEFAULT_CATEGORY')) { define('EC_DEFAULT_CATEGORY','Default'); }
|
||||
|
||||
include_lan(e_PLUGIN.'calendar_menu/languages/'.e_LANGUAGE.'_class.php');
|
||||
|
||||
|
||||
/**
|
||||
* Class of useful data and functions for the event calendar plugin
|
||||
* Included in all application files
|
||||
*/
|
||||
class ecal_class
|
||||
{
|
||||
public $pref; // Calendar prefs - now in a separate DB record. Use same name as legacy array to simplify change
|
||||
|
||||
// Useful time/date variables - set up on creation, and available externally
|
||||
// (All the times and dates are consistent, being derived from $time_now, which is the time the constructor was
|
||||
// called - probably doesn't matter, but may help someone.
|
||||
var $time_now; // Current time/date stamp
|
||||
var $site_timedate; // Site time/date stamp - adjusted for time zone
|
||||
var $user_timedate; // Time/date based on user's time zone
|
||||
var $cal_timedate; // Time/date stamp used by event calendar (user set)
|
||||
var $now_date; // Time/date array from $time_now
|
||||
var $site_date; // Time/date array from $site_timedate
|
||||
var $cal_date; // Time/date array from $cal_timedate
|
||||
|
||||
var $cal_super; // True if current user is a calendar supervisor
|
||||
var $extra_query; // Extra bit of mysql query used for non-supervisor (read) queries
|
||||
|
||||
var $time_format_string; // String to format times on the site
|
||||
var $cal_format_string; // String to format the displayed date on event entry ("Y-m-d" or "d-m-Y")
|
||||
var $dcal_format_string; // Format string to pass to DHTML calendar
|
||||
var $java_format_code; // Code to pass to Javascript re date format
|
||||
|
||||
var $event_date_format_string; // String to format the date in the event calendar
|
||||
var $next_date_format_string; // String to format the date in the 'forthcoming event' menu
|
||||
|
||||
var $date_separator = '-'; // Used for separating off fields on date entry
|
||||
|
||||
var $max_cache_time; // Oldest permissible age of any cached pages relating to event calendar
|
||||
var $max_recent_show; // Time in seconds for highlighting 'recent events' (0 = disable)
|
||||
var $cat_text_cache = array(); // Used to cache category text as read
|
||||
|
||||
var $ec_first_day_of_week = 0; // First day of the week
|
||||
public $days = array(EC_LAN_25, EC_LAN_19, EC_LAN_20, EC_LAN_21, EC_LAN_22, EC_LAN_23, EC_LAN_24); // Array Sunday..Saturday
|
||||
private $months = array(EC_LAN_0, EC_LAN_1, EC_LAN_2, EC_LAN_3, EC_LAN_4, EC_LAN_5, EC_LAN_6,
|
||||
EC_LAN_7, EC_LAN_8, EC_LAN_9, EC_LAN_10, EC_LAN_11); // 'Long' month names
|
||||
|
||||
public $recur_type = array(
|
||||
'0' => EC_LAN_RECUR_00, // 'no'
|
||||
'1' => EC_LAN_RECUR_01, //'annual'
|
||||
'2' => EC_LAN_RECUR_02, //'biannual'
|
||||
'3' => EC_LAN_RECUR_03, //'quarterly'
|
||||
'4' => EC_LAN_RECUR_04, //'monthly'
|
||||
'5' => EC_LAN_RECUR_05, //'four weekly'
|
||||
'6' => EC_LAN_RECUR_06, //'fortnightly'
|
||||
'7' => EC_LAN_RECUR_07, // 'weekly'
|
||||
'8' => EC_LAN_RECUR_00, // 'daily'
|
||||
'100' => EC_LAN_RECUR_100, // 'Sunday in month'
|
||||
'101' => EC_LAN_RECUR_101, // 'Monday in month'
|
||||
'102' => EC_LAN_RECUR_102, // 'Tuesday in month'
|
||||
'103' => EC_LAN_RECUR_103, // 'Wednesday in month'
|
||||
'104' => EC_LAN_RECUR_104, // 'Thursday in month'
|
||||
'105' => EC_LAN_RECUR_105, // 'Friday in month'
|
||||
'106' => EC_LAN_RECUR_106 // 'Saturday in month'
|
||||
);
|
||||
var $recur_week = array(
|
||||
'100' => EC_LAN_RECUR_1100, //'First'
|
||||
'200' => EC_LAN_RECUR_1200, //'Second'
|
||||
'300' => EC_LAN_RECUR_1300, // 'Third'
|
||||
'400' => EC_LAN_RECUR_1400 // 'Fourth'
|
||||
);
|
||||
|
||||
|
||||
public function __construct()
|
||||
{ // Constructor
|
||||
$this->pref = e107::pref('calendar_menu'); // retrieve calendar_menu pref array.
|
||||
|
||||
|
||||
// Get all the times in terms of 'clock time' - i.e. allowing for TZ, DST, etc
|
||||
// All the times in the DB should be 'absolute' - so if we compare with 'clock time' it should work out.
|
||||
$this->time_now = $this->clockToAbs(time());
|
||||
$this->site_timedate = $this->time_now + ($this->pref['time_offset'] * 3600); // Check sign of offset
|
||||
$this->user_timedate = $this->time_now + TIMEOFFSET;
|
||||
switch ($this->pref['eventpost_caltime'])
|
||||
{
|
||||
case 1 :
|
||||
$this->cal_timedate = $this->site_timedate; // Site time
|
||||
break;
|
||||
case 2 :
|
||||
$this->cal_timedate = $this->user_timedate; // User
|
||||
break;
|
||||
default :
|
||||
$this->cal_timedate = $this->time_now; // Server time - default
|
||||
}
|
||||
$this->now_date = getdate($this->time_now);
|
||||
$this->site_date = getdate($this->site_timedate); // Array with h,m,s, day, month year etc
|
||||
$this->cal_date = getdate($this->cal_timedate);
|
||||
|
||||
$this->max_cache_time = $this->site_date['minutes'] + 60*$this->site_date['hours'];
|
||||
|
||||
$this->cal_super = check_class($this->pref['eventpost_super']);
|
||||
if ($this->cal_super) $this->extra_query = ""; else $this->extra_query = " AND find_in_set(event_cat_class,'".USERCLASS_LIST."')";
|
||||
|
||||
$this->max_recent_show = 0;
|
||||
if (isset($this->pref['eventpost_recentshow']))
|
||||
{
|
||||
if ($this->pref['eventpost_recentshow'] == 'LV')
|
||||
{
|
||||
if (USER) $this->max_recent_show = time() - USERLV;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->max_recent_show = 3600 * $this->pref['eventpost_recentshow'];
|
||||
}
|
||||
}
|
||||
|
||||
switch ($this->pref['eventpost_timedisplay'])
|
||||
{
|
||||
case 2 :
|
||||
$this->time_format_string = "%I:%M %p"; // 12-hour display
|
||||
break;
|
||||
case 3 :
|
||||
$this->time_format_string = $this->pref['eventpost_timecustom']; // custom display
|
||||
if (isset($this->time_format_string)) break;
|
||||
case 4 :
|
||||
$this->time_format_string = "%H:%M"; // 24-hour display with separator
|
||||
break;
|
||||
default :
|
||||
$this->time_format_string = "%H%M"; // default to 24-hour display
|
||||
}
|
||||
|
||||
if (!isset($this->pref['eventpost_datedisplay'])) $this->pref['eventpost_datedisplay'] = 1;
|
||||
$temp = $this->pref['eventpost_datedisplay'];
|
||||
if ($temp >3)
|
||||
{
|
||||
$temp-= 3;
|
||||
$this->date_separator = '.';
|
||||
if ($temp > 3)
|
||||
{
|
||||
$temp -= 3;
|
||||
$this->date_separator = '/';
|
||||
}
|
||||
}
|
||||
|
||||
switch ($temp)
|
||||
{ // Event entry calendar
|
||||
case 2 :
|
||||
$this->cal_format_string = "d".$this->date_separator."m".$this->date_separator."Y";
|
||||
$this->dcal_format_string = "%d".$this->date_separator."%m".$this->date_separator."%Y";
|
||||
$this->java_format_code = 2;
|
||||
break;
|
||||
case 3 :
|
||||
$this->cal_format_string = "m".$this->date_separator."d".$this->date_separator."Y";
|
||||
$this->dcal_format_string = "%m".$this->date_separator."%d".$this->date_separator."%Y";
|
||||
$this->java_format_code = 3;
|
||||
break;
|
||||
default : // 'original' defaults
|
||||
$this->cal_format_string = "Y".$this->date_separator."m".$this->date_separator."d";
|
||||
$this->dcal_format_string = "%Y".$this->date_separator."%m".$this->date_separator."%d";
|
||||
$this->java_format_code = 1;
|
||||
}
|
||||
|
||||
if (!isset($this->pref['eventpost_dateevent'])) $this->pref['eventpost_dateevent'] = 1;
|
||||
switch ($this->pref['eventpost_dateevent'])
|
||||
{ // Event list date display
|
||||
case 0 :
|
||||
$this->event_date_format_string = $this->pref['eventpost_eventdatecustom'];
|
||||
break;
|
||||
case 2 :
|
||||
$this->event_date_format_string = "%a %d %b %Y";
|
||||
break;
|
||||
case 3 :
|
||||
$this->event_date_format_string = "%a %d-%m-%y";
|
||||
break;
|
||||
default :
|
||||
$this->event_date_format_string = "%A %d %B %Y";
|
||||
}
|
||||
|
||||
if (!isset($this->pref['eventpost_datenext'])) $this->pref['eventpost_datenext'] = 1;
|
||||
switch ($this->pref['eventpost_datenext'])
|
||||
{ // Forthcoming event date display
|
||||
case 0 :
|
||||
$this->next_date_format_string = $this->pref['eventpost_nextdatecustom'];
|
||||
break;
|
||||
case 2 :
|
||||
$this->next_date_format_string = "%d %b";
|
||||
break;
|
||||
case 3 :
|
||||
$this->next_date_format_string = "%B %d";
|
||||
break;
|
||||
case 4 :
|
||||
$this->next_date_format_string = "%b %d";
|
||||
break;
|
||||
default :
|
||||
$this->next_date_format_string = "%d %B";
|
||||
}
|
||||
|
||||
switch (varset($this->pref['eventpost_weekstart'],'sun'))
|
||||
{
|
||||
case 'sun' : $this->ec_first_day_of_week = 0; break;
|
||||
case 'mon' : $this->ec_first_day_of_week = 1; break;
|
||||
case 0 :
|
||||
case 1 :
|
||||
case 2 :
|
||||
case 3 :
|
||||
case 4 :
|
||||
case 5 :
|
||||
case 6 :
|
||||
$this->ec_first_day_of_week = $this->pref['eventpost_weekstart']; break;
|
||||
default :
|
||||
$this->ec_first_day_of_week = 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Returns a time string from a time stamp, formatted as 24-hour, 12-hour or custom as set in prefs
|
||||
*/
|
||||
public function time_string($convtime)
|
||||
{
|
||||
return gmstrftime($this->time_format_string, $convtime);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns a date string from a date stamp, formatted for display in event list
|
||||
*/
|
||||
public function event_date_string($convdate)
|
||||
{
|
||||
return gmstrftime($this->event_date_format_string,$convdate);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns a date string from a date stamp, formatted for display in forthcoming event menu
|
||||
*/
|
||||
public function next_date_string($convdate)
|
||||
{
|
||||
return gmstrftime($this->next_date_format_string,$convdate);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns a date as dd-mm-yyyy or yyyy-mm-dd according to prefs (for event entry)
|
||||
*/
|
||||
public function full_date($convdate)
|
||||
{
|
||||
return gmdate($this->cal_format_string, $convdate);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Turns a date as entered in the calendar into a time stamp (for event entry)
|
||||
*/
|
||||
public function make_date($new_hour, $new_minute, $date_string)
|
||||
{
|
||||
$tmp = explode($this->date_separator, $date_string);
|
||||
switch ($this->java_format_code)
|
||||
{
|
||||
case 2 :
|
||||
return gmmktime($new_hour, $new_minute, 0, $tmp[1], $tmp[0], $tmp[2]); // dd-mm-yyyy
|
||||
case 3 :
|
||||
return gmmktime($new_hour, $new_minute, 0, $tmp[0], $tmp[1], $tmp[2]); // mm-dd-yyyy
|
||||
default :
|
||||
return gmmktime($new_hour, $new_minute, 0, $tmp[1], $tmp[2], $tmp[0]); // yyyy-mm-dd
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Generate code to display a date entry box with date picker
|
||||
*
|
||||
* @param string $boxname - name of the date picker
|
||||
* @param integer $boxvalue - Unix time stamp for initial value
|
||||
*
|
||||
* @return string - html to display date box
|
||||
*/
|
||||
public function makeCalendar($boxname, $boxvalue)
|
||||
{
|
||||
$frm = e107::getForm();
|
||||
|
||||
$opt = array(
|
||||
'type' => 'date',
|
||||
'format' => $this->dcal_format_string,
|
||||
'firstDay' => $this->ec_first_day_of_week, // 0 = Sunday.
|
||||
'size' => 12
|
||||
);
|
||||
return $frm->datepicker($boxname, $boxvalue, $opt);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Generate code to display time entry dropdowns for hours and minutes
|
||||
*
|
||||
* @param string $boxname - name of the date picker
|
||||
* @param integer $cur_hour - time
|
||||
* @param integer $cur_minute - time
|
||||
*
|
||||
* @return string - html to display time dropdowns
|
||||
*
|
||||
* @TODO: dropdowns need to be smaller
|
||||
*/
|
||||
public function makeHourmin($boxname,$cur_hour,$cur_minute)
|
||||
{
|
||||
if (isset($this->pref['eventpost_fivemins'])) $incval = 5; else $incval = 1;
|
||||
// @TODO: Need to restrict width of select box
|
||||
$retval = " <select name='{$boxname}hour' id='{$boxname}hour' class='tbox select' style='width:70px'>\n";
|
||||
for($count = '00'; $count <= '23'; $count++)
|
||||
{
|
||||
$val = sprintf("%02d", $count);
|
||||
$retval .= "<option value='{$val}' ".(isset($cur_hour) && $count == $cur_hour ? "selected='selected'" :"")." >".$val."</option>\n";
|
||||
}
|
||||
$retval .= "</select>\n
|
||||
<select name='{$boxname}minute' class='tbox select' style='width:70px'>\n";
|
||||
for($count = '00'; $count <= '59'; $count+= $incval)
|
||||
{
|
||||
$val = sprintf("%02d", $count);
|
||||
$retval .= "<option ".(isset($cur_minute) && $count == $cur_minute ? "selected='selected'" :"")." value='{$val}'>".$val."</option>\n";
|
||||
}
|
||||
$retval .= "</select>\n";
|
||||
return $retval;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Generate HTML for 'recurring event' options
|
||||
*
|
||||
* @param integer $curval - code for current setting
|
||||
*/
|
||||
public function recurSelect($curval)
|
||||
{
|
||||
while ($curval > 150) { $curval -= 100; } // Could have values up to about 406
|
||||
$ret = "<select class='tbox' name='ec_recur_type' onchange=\"proc_recur(this.value);\">";
|
||||
foreach ($this->recur_type as $k => $v)
|
||||
{
|
||||
$selected = ($curval == $k) ? " selected = 'selected'" : "";
|
||||
$ret .= "<option value='{$k}'{$selected}>{$v}</option>\n";
|
||||
}
|
||||
$ret .= "</select>\n";
|
||||
return $ret;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Generate HTML for recurring week options
|
||||
*/
|
||||
public function recurWeekSelect($curval)
|
||||
{
|
||||
$disp = $curval < 100 ? " style='display:none;'" : "";
|
||||
$curval -= intval($curval % 10); // Should make it an exact multiple of 100
|
||||
$ret = "<span id='rec_week_sel'{$disp}><select class='tbox' name='ec_recur_week'>";
|
||||
foreach ($this->recur_week as $k => $v)
|
||||
{
|
||||
$selected = ($curval == $k) ? " selected = 'selected'" : "";
|
||||
$ret .= "<option value='{$k}'{$selected}>{$v}</option>\n";
|
||||
}
|
||||
$ret .= "</select></span>\n";
|
||||
return $ret;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Return day of week string relative to the start of the week
|
||||
*/
|
||||
public function day_offset_string($doff)
|
||||
{
|
||||
return $this->days[($doff+$this->ec_first_day_of_week) % 7];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Single entry point for all calendar-related logging.
|
||||
*
|
||||
* Also triggers a 'notify' event:
|
||||
* 'ecalnew' when single or multiple events added
|
||||
* 'ecaledit' when an event changed or deleted
|
||||
*
|
||||
* @param integer $event_type - type of event being logged:
|
||||
* 1 - add event
|
||||
* 2 - edit event
|
||||
* 3 - delete event
|
||||
* 4 - Bulk delete
|
||||
* 5 - add multiple events
|
||||
* @param string $event_title - included in logged message
|
||||
* @param string $event_string - included in logged message
|
||||
* @param integer $event_start - start time of event where appropriate
|
||||
*
|
||||
* @return - none
|
||||
*/
|
||||
public function cal_log($event_type, $event_title = '', $event_string='', $event_start=0)
|
||||
{
|
||||
$e107 = e107::getInstance();
|
||||
|
||||
$log_titles = array('1' => 'EC_ADM_01',
|
||||
'2' => 'EC_ADM_02',
|
||||
'3' => 'EC_ADM_03',
|
||||
'4' => 'EC_ADM_04',
|
||||
'5' => 'EC_ADM_05',
|
||||
'6' => 'EC_ADM_06',
|
||||
'7' => 'EC_ADM_07',
|
||||
'8' => 'EC_ADM_08',
|
||||
'9' => 'EC_ADM_09',
|
||||
'10' => 'EC_ADM_10',
|
||||
'11' => 'EC_ADM_11'
|
||||
);
|
||||
|
||||
// Do the notifies first
|
||||
$cmessage = $log_titles[$event_type]."<br />";
|
||||
if ($event_start > 0)
|
||||
{
|
||||
$cmessage .= 'Event Start: '.strftime("%d-%B-%Y",$event_start)."<br />";
|
||||
$cmessage .= 'Event Link: '.SITEURL.e_PLUGIN_ABS. 'calendar_menu/event.php?'.$event_start." <br />";
|
||||
}
|
||||
else
|
||||
$cmessage .= "Event Start unknown<br />";
|
||||
$edata_ec = array('cmessage' => $cmessage, 'ip' => e107::getIPHandler()->getIP(FALSE));
|
||||
switch ($event_type)
|
||||
{
|
||||
case 5 :
|
||||
case 1 :
|
||||
$e107->e_event->trigger('ecalnew', $edata_ec);
|
||||
break;
|
||||
case 2 :
|
||||
case 3 :
|
||||
case 4 :
|
||||
$e107->e_event->trigger('ecaledit', $edata_ec);
|
||||
break;
|
||||
}
|
||||
|
||||
switch ($this->pref['eventpost_adminlog'])
|
||||
{
|
||||
case 1 : if ($event_type == '1') return;
|
||||
case 2 : break; // Continue
|
||||
default : return; // Invalid or undefined option
|
||||
}
|
||||
$log_detail = array( '1' => EC_ADLAN_A221.strftime("%d-%B-%Y",$event_start), // Add event
|
||||
'2' => EC_ADLAN_A222.strftime("%d-%B-%Y",$event_start), // Edit event
|
||||
'3' => EC_ADLAN_A223.strftime("%d-%B-%Y",$event_start), // Delete event
|
||||
'4' => EC_ADLAN_A224, // Bulk delete events
|
||||
'5' => EC_ADLAN_A225.strftime("%d-%B-%Y",$event_start) // Multiple add events
|
||||
);
|
||||
$e107->admin_log->log_event($log_titles[$event_type],$event_title." \n".$log_detail[$event_type]."\n".$event_string,'');
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get text related to a numeric event category
|
||||
*/
|
||||
function get_category_text($ev_cat)
|
||||
{
|
||||
$sql = e107::getDb();
|
||||
if (!isset($this->cat_text_cache[$ev_cat]))
|
||||
{
|
||||
$sql->db_Select('event_cat','event_cat_name',"event_cat_id='{$ev_cat}'");
|
||||
$row = $sql->db_Fetch();
|
||||
$this->cat_text_cache[$ev_cat] = $row['event_cat_name'];
|
||||
}
|
||||
return $this->cat_text_cache[$ev_cat];
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Implements a version of getdate that expects a GMT date and doesn't do TZ/DST adjustments
|
||||
* time() -date('Z') gives the correction to 'null out' the TZ and DST adjustments that getdate() does
|
||||
* (The difference needs to reflect DST for the specified date, not today)
|
||||
*/
|
||||
function gmgetdate($date)
|
||||
{
|
||||
// $value = getdate($date-date('Z') + (date('I') ? 3600 : 0));
|
||||
$value = getdate($date-date('Z', $date));
|
||||
|
||||
$value['month'] = $this->months[$value['mon'] - 1]; // Looks like getdate doesn't use the specified site language
|
||||
return $value;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Turn a 'clock time' into an absolute time
|
||||
*/
|
||||
function clockToAbs($val)
|
||||
{
|
||||
$temp = getdate($val);
|
||||
$temp['month'] = $this->months[$temp['mon'] - 1]; // Looks like getdate doesn't use the specified site language
|
||||
return gmmktime($temp['hours'], $temp['minutes'], $temp['seconds'], $temp['mon'], $temp['mday'], $temp['year']);
|
||||
}
|
||||
|
||||
|
||||
//------------------------------------------------
|
||||
// Recurring event handling
|
||||
//------------------------------------------------
|
||||
|
||||
|
||||
/**
|
||||
* Generate a list of regularly recurring events based on a 'first event' date, an interval and start/finish times
|
||||
*
|
||||
* All fields are Unix-style time/date stamps
|
||||
* @param int $first_event Earliest possible date/time for first occurrence of event (may not be precisely what's required)
|
||||
* @param int $last_event
|
||||
* @param int $interval - interval between events (in seconds)
|
||||
* @param int $start_time
|
||||
* @param int $end_time - last date in time window
|
||||
*
|
||||
* @return array of start date/time entries
|
||||
*/
|
||||
protected function gen_recur_regular($first_event, $last_event, $interval, $start_time, $end_time)
|
||||
{
|
||||
if ($last_event < $end_time) $end_time = $last_event;
|
||||
$ret = array();
|
||||
$first_event = $first_event + ceil(($start_time-$first_event)/$interval)*$interval;
|
||||
while ($first_event <= $end_time)
|
||||
{
|
||||
$ret[] = $first_event;
|
||||
$first_event += $interval;
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Internal utility - adds an offset of months and years to a date
|
||||
* @param array $main_date - a date in PHP standard array format
|
||||
* @param array $adder - a month+year offset in PHP standard array format
|
||||
*
|
||||
* @return array where 'mon' and 'year' fields filled in
|
||||
*/
|
||||
protected function add_dates($main_date,$adder)
|
||||
{
|
||||
if ($adder['mon'])
|
||||
{
|
||||
$main_date['mon'] += $adder['mon'];
|
||||
if ($main_date['mon'] > 12)
|
||||
{
|
||||
$main_date['mon'] -= 12;
|
||||
$main_date['year']++;
|
||||
}
|
||||
}
|
||||
if ($adder['year']) $main_date['year'] += $adder['year'];
|
||||
return $main_date;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Generate a list of recurring events based on a 'first event' date, an interval type and start/finish window
|
||||
* Returns an array of start times
|
||||
*
|
||||
* For day number, '0' = 'Sunday'
|
||||
*
|
||||
* $first_event, $last_event are the start/end dates from the definition of the recurring event in the DB
|
||||
* $start_time, $end_time define the window currently of interest (usually a month)
|
||||
*
|
||||
* All parameters are Unix time stamps or numbers of seconds
|
||||
* @param int $first_event - earliest date for events
|
||||
* @param int $last_event - latest time for date of event
|
||||
* @param int $interval_type - numeric code defining the interval between events (N.B> day number zero is Sunday)
|
||||
* @param int $start_time - start time for each event
|
||||
* @param int $end_time - end time for each event
|
||||
*
|
||||
* @return array of events (may be empty)
|
||||
*/
|
||||
public function gen_recur($first_event, $last_event, $interval_type, $start_time, $end_time)
|
||||
{
|
||||
if ($last_event < $end_time) $end_time = $last_event;
|
||||
$ret = array();
|
||||
$week_offset = 0;
|
||||
if ($interval_type >= 100)
|
||||
{
|
||||
$week_offset = intval($interval_type /100);
|
||||
$day_number = $interval_type % 10; // Gives 0..6 in practice; potentially 0..9
|
||||
$interval_type = 100;
|
||||
}
|
||||
if ($first_event > $end_time) return $ret;
|
||||
|
||||
$interval = array('5' => 28*86400, '6' => 14*86400, '7' => 7*86400, '8' => 86400);
|
||||
// Do the easy ones first
|
||||
if (array_key_exists($interval_type, $interval))
|
||||
{
|
||||
return $this->gen_recur_regular($first_event, $last_event, $interval[$interval_type], $start_time, $end_time);
|
||||
}
|
||||
|
||||
// We're messing around with months and years here
|
||||
$inc_array['year'] = 0;
|
||||
$inc_array['mon'] = 0;
|
||||
|
||||
// Find the first date which is within, or close to, scope (N.B. may not be one)
|
||||
$event = $this->gmgetdate($first_event);
|
||||
$temp = $this->gmgetdate($start_time);
|
||||
$event['year'] = $temp['year']; // Use the year from the start window
|
||||
if ($event['mon'] > $temp['mon']) $event['year']--; // Handle situation where event later in year than desired window
|
||||
|
||||
switch ($interval_type)
|
||||
{
|
||||
case 1 : // Annual
|
||||
$inc_array['year'] = 1;
|
||||
break;
|
||||
case 2 : // Biannual
|
||||
$inc_array['mon'] = 6;
|
||||
break;
|
||||
case 3 : // Quarterly
|
||||
$inc_array['mon'] = 3;
|
||||
break;
|
||||
case 4 : // Monthly
|
||||
$inc_array['mon'] = 1;
|
||||
break;
|
||||
case 100 : // Monthly on nth Sunday in month
|
||||
case 101 : // Monthly on nth Monday in month
|
||||
case 102 : // Monthly on nth Tuesday in month
|
||||
case 103 : // Monthly on nth Wednesday in month
|
||||
case 104 : // Monthly on nth Thursday in month
|
||||
case 105 : // Monthly on nth Friday in month
|
||||
case 106 : // Monthly on nth Saturday in month
|
||||
// echo "Specific day of month: ".$day_number."<br />";
|
||||
$inc_array['mon'] = 1;
|
||||
$event['mon'] = $temp['mon'];
|
||||
$event['year'] = $temp['year'];
|
||||
$event['mday'] = 1; // Start calculating from first day of each month
|
||||
break;
|
||||
default :
|
||||
return FALSE; // Invalid interval type
|
||||
}
|
||||
|
||||
// echo "First date: ".$event['mon']."-".$event['year']."<br />";
|
||||
// Now loop through using the increment - we may discard a few, but getting clever may be worse!
|
||||
$cont = TRUE;
|
||||
|
||||
do
|
||||
{
|
||||
$tstamp = gmmktime($event['hours'],$event['minutes'],$event['seconds'],$event['mon'],$event['mday'],$event['year']);
|
||||
if ($interval_type >= 100)
|
||||
{ // $tstamp has the first of the month
|
||||
$day_diff = $day_number - gmdate('w',$tstamp);
|
||||
if ($day_diff <0) $day_diff += 7;
|
||||
$day_diff += (7 * $week_offset) - 7;
|
||||
$tstamp += $day_diff*86400;
|
||||
}
|
||||
if ($tstamp >= $start_time)
|
||||
{
|
||||
if ($tstamp <= $end_time)
|
||||
{
|
||||
$ret[] = $tstamp;
|
||||
}
|
||||
else
|
||||
{
|
||||
$cont = FALSE;
|
||||
}
|
||||
}
|
||||
$event = $this->add_dates($event,$inc_array);
|
||||
} while ($cont);
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Generate comma separated list of fields for table, with optional alias prefix.
|
||||
*
|
||||
* @param string $table - optional table name/alias (prefixed to each field name if specified)
|
||||
* @param string $list - comma separated list of required fields
|
||||
* @param string $must_have - comma-separated list of mandatory fields - always included in the list
|
||||
*
|
||||
* @return string comma-separated list of fields for use in query
|
||||
*/
|
||||
function gen_field_list($table, $list, $must_have = '')
|
||||
{
|
||||
if ($list == '*') return $table ? $table.".*" : '*';
|
||||
$ret = '';
|
||||
$pad = '';
|
||||
$temp = explode(',',$list);
|
||||
for ($i = 0; $i < count($temp); $i++) $temp[$i] = trim($temp[$i]);
|
||||
if ($must_have)
|
||||
{
|
||||
$mharr = explode(',',$must_have);
|
||||
foreach ($mharr as $mh)
|
||||
{
|
||||
if (!in_array(trim($mh), $temp)) $temp[] = trim($mh);
|
||||
}
|
||||
}
|
||||
foreach ($temp as $fld)
|
||||
{
|
||||
if ($fld)
|
||||
{
|
||||
if ($table) $fld = $table.'.'.$fld;
|
||||
$ret .= $pad.$fld;
|
||||
$pad = ', ';
|
||||
}
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Return all events between a given start and end date
|
||||
* If $start_only is TRUE, only searches based on the start date/time
|
||||
* Potential option to hook in other routines here later
|
||||
* @param int $start_time - earliest time for events
|
||||
* @param int $end_time - latest time for start of event
|
||||
* @param boolean $start_only - TRUE to scan based on start time only. FALSE to select events which overlap the specified time window
|
||||
* @param boolean|string $cat_filter = FALSE is 'no categories' - returns an empty array.
|
||||
* $cat_filter = '*' means 'all categories'
|
||||
* otherwise $cat_filter mst be a comma-separated list of category IDs.
|
||||
* @param string $event_fields - comma separated list of fields to read from the event record; '*' for all fields
|
||||
* @param string $cat_fields - comma separated list of fields to read from the category record; '*' for all fields
|
||||
*
|
||||
* @return array of events (may be empty)
|
||||
*/
|
||||
function get_events($start_time, $end_time, $start_only=FALSE, $cat_filter=0, $inc_recur=FALSE, $event_fields='*', $cat_fields='*')
|
||||
{
|
||||
$sql = e107::getDb();
|
||||
|
||||
$ret = array();
|
||||
if ($cat_filter === FALSE) return $ret;
|
||||
$cat_lj = '';
|
||||
$category_filter = '';
|
||||
$extra = '';
|
||||
$so = '';
|
||||
|
||||
$event_fields = $this->gen_field_list('e',$event_fields,'event_start,event_end,event_datestamp');
|
||||
if ($cat_fields)
|
||||
{
|
||||
$cat_fields = ', '.$this->gen_field_list('ec',$cat_fields);
|
||||
$cat_lj = ' LEFT JOIN #event_cat as ec ON e.event_category = ec.event_cat_id ';
|
||||
}
|
||||
|
||||
if ($cat_filter && ($cat_filter != '*')) $category_filter = " AND find_in_set(e.event_category, '".$cat_filter."') ";
|
||||
if ($inc_recur) $extra = " OR (e.event_recurring >'0' AND (e.event_start < ".intval($end_time)." AND e.event_end >= ".intval($start_time).")) ";
|
||||
|
||||
$so = $start_only ? 'start' : 'end';
|
||||
$qry = "SELECT {$event_fields}{$cat_fields} FROM #event as e {$cat_lj}
|
||||
WHERE (
|
||||
(e.event_recurring = '0' AND ((e.event_{$so} >= ".intval($start_time)." AND e.event_start < ".intval($end_time).")))
|
||||
{$extra})
|
||||
{$category_filter}
|
||||
{$this->extra_query}
|
||||
ORDER BY e.event_start ASC
|
||||
";
|
||||
|
||||
if ($sql->db_Select_gen($qry))
|
||||
{
|
||||
while ($row = $sql->db_Fetch())
|
||||
{
|
||||
// Always add the 'is_recent' marker if required
|
||||
if ((($this->max_recent_show != 0) && (time() - $row['event_datestamp']) <= $this->max_recent_show)) $row['is_recent'] = TRUE;
|
||||
if ($row['event_recurring'] == 0)
|
||||
{
|
||||
$ret[] = $row;
|
||||
}
|
||||
else
|
||||
{ // Recurring events to handle
|
||||
$temp = $this->gen_recur($row['event_start'],$row['event_end'],$row['event_recurring'],$start_time,$end_time);
|
||||
if (count($temp))
|
||||
{
|
||||
$row['event_start'] = $temp; // Have an array of start times
|
||||
$ret[] = $row;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Function to return up to a maximum number of events between a given start and end date
|
||||
* It always uses the event start date only
|
||||
* It tries to keep the actual number of events in memory to a minimum by discarding when it can.
|
||||
* Once there are $num_events read, it pulls in the $end_time to speed up checks
|
||||
* @param int $num_event - number of events required
|
||||
* @param int $start_time - earliest time for events
|
||||
* @param int $end_time - latest time for start of event
|
||||
* @param boolean|string $cat_filter = FALSE is 'no categories' - returns an empty array.
|
||||
* $cat_filter = '*' means 'all categories'
|
||||
* otherwise $cat_filter mst be a comma-separated list of category IDs.
|
||||
* @param boolean $inc_recur TRUE to include recurring events
|
||||
* @param string $event_fields - comma separated list of fields to read from the event record; '*' for all fields
|
||||
* @param string $cat_fields - comma separated list of fields to read from the category record; '*' for all fields
|
||||
*
|
||||
* @return array of events (may be empty)
|
||||
*/
|
||||
function get_n_events($num_event, $start_time, $end_time, $cat_filter='*', $inc_recur=FALSE, $event_fields='*', $cat_fields='*')
|
||||
{
|
||||
$sql = e107::getDb();
|
||||
|
||||
$ret = array();
|
||||
if ($cat_filter === FALSE) return $ret; // Empty category
|
||||
|
||||
$cat_lj = '';
|
||||
$category_filter = '';
|
||||
$extra = '';
|
||||
|
||||
$event_fields = $this->gen_field_list('e',$event_fields,'event_start,event_end,event_datestamp,event_recurring');
|
||||
if ($cat_fields)
|
||||
{
|
||||
$cat_fields = ', '.$this->gen_field_list('ec',$cat_fields);
|
||||
$cat_lj = ' LEFT JOIN #event_cat as ec ON e.event_category = ec.event_cat_id ';
|
||||
}
|
||||
|
||||
if ($cat_filter != '*') $category_filter = " AND find_in_set(e.event_category, '".$cat_filter."') ";
|
||||
if ($inc_recur) $extra = " OR (e.event_recurring >'0' AND (e.event_start <= ".intval($end_time)." AND e.event_end >= ".intval($start_time).")) ";
|
||||
|
||||
$qry = "SELECT {$event_fields}{$cat_fields} FROM #event as e {$cat_lj}
|
||||
WHERE (
|
||||
(e.event_recurring = '0' AND (e.event_start >= ".intval($start_time)." AND e.event_start <= ".intval($end_time).") )
|
||||
{$extra})
|
||||
{$category_filter}
|
||||
{$this->extra_query}
|
||||
ORDER BY e.event_start ASC
|
||||
";
|
||||
|
||||
// echo "get_n_events Query: ".$qry."<br />";
|
||||
|
||||
if ($sql->db_Select_gen($qry))
|
||||
{
|
||||
while ($row = $sql->db_Fetch())
|
||||
{
|
||||
// Always add the 'is_recent' marker if required
|
||||
if ((($this->max_recent_show != 0) && (time() - $row['event_datestamp']) <= $this->max_recent_show)) $row['is_recent'] = TRUE;
|
||||
unset($temp);
|
||||
if ($row['event_recurring'] == 0)
|
||||
{
|
||||
// echo "Standard: ".$row['event_start']." ".$row['event_title']."<br />";
|
||||
$temp = array($row['event_start']);
|
||||
}
|
||||
else
|
||||
{ // Recurring events to handle
|
||||
// echo "Recurring: ".$row['event_start']." ".$row['event_title']." - ".$row['event_recurring']." - ";
|
||||
$temp = $this->gen_recur($row['event_start'],$row['event_end'],$row['event_recurring'],$start_time,$end_time);
|
||||
// echo count($temp)."results generated<br />";
|
||||
}
|
||||
|
||||
if (count($temp))
|
||||
{ // We have one or more events to add to the array
|
||||
foreach ($temp as $ts)
|
||||
{
|
||||
// echo "Process: ".$ts." ".$row['event_start']." ".$row['event_title']." ".$end_time."<br />";
|
||||
if ($ts <= $end_time) // We may have pulled in $end_time from the value passed initially
|
||||
{
|
||||
$row['event_start'] = $ts; // Fill this in - may be a recurring event
|
||||
// echo "Add: ".$row['event_start']." ".$row['event_title']."<br />";
|
||||
|
||||
if ((count($ret) == 0) || ($ts > $ret[count($ret)-1]['event_start']))
|
||||
{ // Can just add on end
|
||||
// echo "Add at end<br />";
|
||||
$ret[] = $row;
|
||||
}
|
||||
else
|
||||
{ // Find a slot
|
||||
$i = count($ret);
|
||||
while (($i > 0) && ($ret[$i-1]['event_start'] > $ts)) $i--;
|
||||
// $i has the number of the event before which to insert this new event.
|
||||
if ($i == 0)
|
||||
{
|
||||
array_unshift($ret,$row); // Just insert at beginning
|
||||
// echo "Insert at front<br />";
|
||||
}
|
||||
else
|
||||
{ // Proper insert needed just before element $i
|
||||
// $tmp = array_unshift(array_slice($ret, $i),$row);
|
||||
// array_splice($ret, $i, count($ret), $tmp);
|
||||
array_splice($ret, $i, count($ret), array_merge(array($row),array_slice($ret, $i)));
|
||||
// echo "Insert at ".$i."<br />";
|
||||
}
|
||||
}
|
||||
}
|
||||
if (count($ret) > $num_event)
|
||||
{ // Knock one off the end
|
||||
// echo "Delete, count is ".count($ret)."<br />";
|
||||
if ($ret[count($ret)-1]['event_start'] < $end_time) $end_time = $ret[count($ret)-1]['event_start']; // Pull in end time if we can
|
||||
array_pop($ret);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return $ret;
|
||||
} // End - function get_n_events()
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get text relating to recurring item
|
||||
* @param int numeric code for type of recurring item
|
||||
*
|
||||
* @return string corresponding text description
|
||||
*/
|
||||
public function get_recur_text($recurring)
|
||||
{
|
||||
if ($recurring >= 100)
|
||||
{
|
||||
return $this->recur_week[100*intval($recurring/100)].' '.$this->recur_type[100+($recurring % 10)];
|
||||
}
|
||||
else
|
||||
{
|
||||
return $this->recur_type[$recurring];
|
||||
}
|
||||
}
|
||||
|
||||
}// End - class definition
|
||||
|
||||
?>
|
@ -1,851 +0,0 @@
|
||||
<?php
|
||||
/*
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2013 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
* Calender plugin - event listing and event entry
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* e107 Event calendar plugin
|
||||
*
|
||||
* Calender plugin - event listing and event entry
|
||||
*
|
||||
* @package e107_plugins
|
||||
* @subpackage event_calendar
|
||||
*/
|
||||
|
||||
if (!defined('e_SINGLE_ENTRY'))
|
||||
{
|
||||
require_once('../../class2.php');
|
||||
}
|
||||
$e107 = e107::getInstance();
|
||||
$frm = e107::getForm();
|
||||
$tp = e107::getParser();
|
||||
|
||||
if (!$e107->isInstalled('calendar_menu'))
|
||||
{
|
||||
header('Location: '.e_BASE.'index.php');
|
||||
exit();
|
||||
}
|
||||
|
||||
if (isset($_POST['viewallevents']))
|
||||
{ // Triggered from NAV_BUT_ALLEVENTS
|
||||
Header('Location: '.e_PLUGIN_ABS.'calendar_menu/calendar.php?'.$_POST['enter_new_val']);
|
||||
exit();
|
||||
}
|
||||
|
||||
if (isset($_POST['doit']))
|
||||
{ // Triggered from NAV_BUT_ENTEREVENT
|
||||
Header('Location: '.e_PLUGIN_ABS.'calendar_menu/event.php?ne.'.$_POST['enter_new_val']);
|
||||
exit();
|
||||
}
|
||||
|
||||
if (isset($_POST['subs']))
|
||||
{
|
||||
Header('Location: '.e_PLUGIN_ABS.'calendar_menu/subscribe.php');
|
||||
exit();
|
||||
}
|
||||
|
||||
if (isset($_POST['printlists']))
|
||||
{
|
||||
Header('Location: '.e_PLUGIN_ABS.'calendar_menu/ec_pf_page.php');
|
||||
exit();
|
||||
}
|
||||
|
||||
include_lan(e_PLUGIN.'calendar_menu/languages/'.e_LANGUAGE.'.php');
|
||||
define('PAGE_NAME', EC_LAN_80);
|
||||
|
||||
require_once(e_PLUGIN.'calendar_menu/ecal_class.php');
|
||||
if (!is_object($ecal_class)) $ecal_class = new ecal_class;
|
||||
$cal_super = $ecal_class->cal_super;
|
||||
|
||||
|
||||
require_once(e_PLUGIN.'calendar_menu/calendar_shortcodes.php');
|
||||
$calSc = new event_calendar_shortcodes();
|
||||
|
||||
|
||||
$cat_filter = intval(varset($_POST['event_cat_ids'],-1));
|
||||
if ($cat_filter == -1) $cat_filter = '*';
|
||||
$mult_count = 0;
|
||||
|
||||
|
||||
|
||||
// Array links db field names to internal variables
|
||||
$ev_fields = array(
|
||||
'event_id' => 'id',
|
||||
'event_start' => 'ev_start',
|
||||
'event_end' => 'ev_end',
|
||||
'event_allday' => 'ev_allday',
|
||||
'event_recurring' => 'recurring',
|
||||
'event_title' => 'ev_title',
|
||||
'event_location' => 'ev_location',
|
||||
'event_details' => 'ev_event',
|
||||
// 'event_author' => 'ne_author', - not needed - its always the user creating the event
|
||||
'event_contact' => 'ev_email',
|
||||
'event_category' => 'ev_category',
|
||||
'event_thread' => 'ev_thread'
|
||||
);
|
||||
|
||||
//--------------------------------------
|
||||
// Event to add or update
|
||||
//--------------------------------------
|
||||
if ((isset($_POST['ne_insert']) || isset($_POST['ne_update'])) && ($cal_super || check_class($ecal_class->pref['eventpost_admin'])))
|
||||
{
|
||||
$ev_start = $ecal_class->make_date($_POST['ne_hour'], $_POST['ne_minute'],$_POST['start_date']);
|
||||
if (($_POST['ne_event'] == '') || !isset($_POST['qs']))
|
||||
{ // Problem - tell user to go away - fields are blank (mostly checked by JS)
|
||||
header('location:event.php?'.$ev_start.'.0.m3');
|
||||
}
|
||||
elseif (!isset($_POST['ne_category']) || (($ev_category = intval($_POST['ne_category'])) == 0))
|
||||
{
|
||||
header('location:event.php?'.$ev_start.'.0.m6');
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!$cal_super)
|
||||
{
|
||||
if ($sql->db_Select('event_cat', 'event_cat_addclass', 'event_cat_id = '.$ev_category))
|
||||
{
|
||||
$row = $sql->db_Fetch(MYSQL_ASSOC);
|
||||
if (!check_class($row['event_cat_addclass']))
|
||||
{
|
||||
header('location:event.php?'.$ev_start.'.0.m8');
|
||||
exit;
|
||||
}
|
||||
}
|
||||
else
|
||||
{ // Invalid category - definitely go away!
|
||||
header('location:'.e_BASE.'index.php');
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
$ev_end = $ecal_class->make_date($_POST['end_hour'], $_POST['end_minute'],$_POST['end_date']);
|
||||
$ev_title = $tp->toDB($_POST['ne_title']);
|
||||
$ev_location = $tp->toDB($_POST['ne_location']);
|
||||
$ev_event = $tp->toDB($_POST['ne_event']);
|
||||
$ev_email = $tp->toDB($_POST['ne_email']);
|
||||
$ev_thread = $tp->toDB($_POST['ne_thread']);
|
||||
$temp_date = $ecal_class->gmgetdate($ecal_class->make_date(0,0,$_POST['start_date']));
|
||||
$ev_allday = intval($_POST['allday']);
|
||||
$recurring = intval($_POST['ec_recur_type']);
|
||||
if ($recurring >= 100) $recurring += intval($_POST['ec_recur_week']) - 100;
|
||||
//
|
||||
if ($_POST['recurring'] == 1)
|
||||
{
|
||||
$rec_m = $temp_date['mday']; // Day of month
|
||||
$rec_y = $temp_date['mon']; // Month number
|
||||
}
|
||||
else
|
||||
{
|
||||
$rec_m = '';
|
||||
$rec_y = '';
|
||||
}
|
||||
|
||||
$report_msg = '.m3';
|
||||
if (isset($_POST['ne_insert']))
|
||||
{ // Bits specific to inserting a new event
|
||||
$qs = preg_replace("/ne./i", "", $_POST['qs']);
|
||||
if ($_POST['ec_gen_multiple'])
|
||||
{
|
||||
$mult_count = $ecal_class->gen_recur($ev_start,$ev_end,$recurring,$ev_start,$ev_end);
|
||||
}
|
||||
if ($mult_count <= 1)
|
||||
{
|
||||
$qry = " 0, '".intval($ev_start)."', '".intval($ev_end)."', '".$ev_allday."', '".$recurring."', '".time()."', '$ev_title', '$ev_location', '$ev_event', '".USERID.".".USERNAME."', '".$ev_email."', '".$ev_category."', '".$ev_thread."', '".intval($rec_m)."', '".intval($rec_y)."' ";
|
||||
$sql->db_Insert('event', $qry);
|
||||
|
||||
$id = mysql_insert_id();
|
||||
$data = array('method'=>'create', 'table'=>'event', 'id'=>$id, 'plugin'=>'calendar_menu', 'function'=>'dbCalendarCreate');
|
||||
$e_event->triggerHook($data);
|
||||
|
||||
$ecal_class->cal_log(1,'db_Insert',$qry, $ev_start);
|
||||
$report_msg = '.m4';
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($_POST['ne_update']))
|
||||
{ // Bits specific to updating an existing event
|
||||
$qry = "event_start='".intval($ev_start)."', event_end='".intval($ev_end)."', event_allday='".$ev_allday."', event_recurring='".$recurring."', event_datestamp= '".time()."', event_title= '$ev_title', event_location='$ev_location', event_details='$ev_event', event_contact='".$ev_email."', event_category='".$ev_category."', event_thread='".$ev_thread."', event_rec_m='".intval($rec_m)."', event_rec_y='".intval($rec_y)."' WHERE event_id='".intval($_POST['id'])."' ";
|
||||
$sql->db_Update("event", $qry);
|
||||
|
||||
$data = array('method'=>'update', 'table'=>'event', 'id'=>intval($_POST['id']), 'plugin'=>'calendar_menu', 'function'=>'dbCalendarUpdate');
|
||||
$e_event->triggerHook($data);
|
||||
|
||||
$ecal_class->cal_log(2,'db_Update',$qry, $ev_start);
|
||||
$qs = preg_replace("/ed./i", "", $_POST['qs']);
|
||||
$report_msg = '.m5';
|
||||
}
|
||||
if ($mult_count <= 1)
|
||||
{
|
||||
// Now clear cache - just do the lot for now - get clever later
|
||||
$e107cache->clear('nq_event_cal');
|
||||
header('location:event.php?'.$ev_start.'.'.$qs.$report_msg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
$action = '';
|
||||
|
||||
require_once(HEADERF);
|
||||
|
||||
if ($mult_count > 1)
|
||||
{ // Need to handle writing of multiple events - display confirmation form
|
||||
$message = str_replace('-NUM-', count($mult_count), EC_LAN_88);
|
||||
$text = "
|
||||
<form method='post' action='".e_SELF."?mc.{$ev_start}.{$ev_end}' id='mulconf'><table style='width:98%' class='table fborder' >
|
||||
<colgroup><col style='width:30%' /><col style='width:70%' /></colgroup>
|
||||
<tr><td class='forumheader3 warning' colspan='2'>".$message."<br />".EC_LAN_89."</td></tr>";
|
||||
if ($ev_allday)
|
||||
{
|
||||
$text .= "
|
||||
<tr><td class='forumheader3' >".EC_LAN_173." </td><td class='forumheader3'> ".$ecal_class->event_date_string($ev_start)." ".EC_LAN_175."</td></tr>
|
||||
<tr><td class='forumheader3' >".EC_LAN_174." </td><td class='forumheader3'> ".$ecal_class->event_date_string($ev_end)." ".EC_LAN_175."</td></tr>";
|
||||
}
|
||||
else
|
||||
{
|
||||
$text .= "
|
||||
<tr><td class='forumheader3' >".EC_LAN_173." </td><td class='forumheader3'> ".$ecal_class->event_date_string($ev_start)." ".$ecal_class->time_string($ev_start)." "."</td></tr>
|
||||
<tr><td class='forumheader3' >".EC_LAN_174." </td><td class='forumheader3'> ".$ecal_class->event_date_string($ev_end)." ".$ecal_class->time_string($ev_end)." "."</td></tr>";
|
||||
}
|
||||
$text .= "
|
||||
<tr><td class='forumheader3'>".EC_LAN_176."</td><td class='forumheader3'>".$ecal_class->get_recur_text($recurring)."</td></tr>
|
||||
<tr><td class='forumheader3'>".EC_LAN_70."</td><td class='forumheader3'>".$ev_title."</td></tr>
|
||||
<tr><td class='forumheader3'>".EC_LAN_52."</td><td class='forumheader3'>".$ecal_class->get_category_text($ev_category)."</td></tr>
|
||||
<tr><td class='forumheader3'>".EC_LAN_32."</td><td class='forumheader3'>".$ev_location."</td></tr>
|
||||
<tr><td class='forumheader3'>".EC_LAN_57."</td><td class='forumheader3'>".$ev_event."</td></tr>";
|
||||
|
||||
// Only display for forum thread/link if required. No point if not wanted
|
||||
if (isset($ecal_class->pref['eventpost_forum']) && $ecal_class->pref['eventpost_forum'] == 1)
|
||||
{
|
||||
$text .= "<tr><td class='forumheader3'>".EC_LAN_58." </td><td class='forumheader3'>".$ev_thread."</td></tr>";
|
||||
}
|
||||
$text .= "<tr><td class='forumheader3'>".EC_LAN_59."</td><td class='forumheader3'>".$ev_email."</td></tr>
|
||||
<tr><td class='forumheader' colspan='2' style='text-align:center'>
|
||||
<input class='btn button' type='submit' name='mc_cancel' value='".EC_LAN_177."' />
|
||||
<input class='btn button' type='submit' name='mc_accept' value='".EC_LAN_178."' />
|
||||
<input type='hidden' name='qs' value='".e_QUERY."' />";
|
||||
foreach ($ev_fields as $k => $v)
|
||||
{
|
||||
$text .= "<input type='hidden' name='ev_{$k}' value='".$$v."' />";
|
||||
}
|
||||
$text .= "</td></tr></table></form>";
|
||||
|
||||
$ns->tablerender(EC_LAN_179, $text);
|
||||
require_once(FOOTERF);
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
// Calculate any action, plus start date/number of events, from query
|
||||
unset($dateArray);
|
||||
$ds = ''; // Gets set if viewing a single day
|
||||
if (isset($_POST['jump']))
|
||||
{
|
||||
$dateArray = $ecal_class->gmgetdate(mktime(0, 0, 0, $_POST['jumpmonth'], 1, $_POST['jumpyear']));
|
||||
}
|
||||
else
|
||||
{
|
||||
if (e_QUERY)
|
||||
{
|
||||
$qs = explode('.', e_QUERY);
|
||||
$action = trim($qs[0]); // Often a date if just viewing
|
||||
$ds = varset($qs[1],'');
|
||||
$eveid = intval(varset($qs[2], 0));
|
||||
}
|
||||
|
||||
if ($action == '')
|
||||
{
|
||||
$dateArray = $ecal_class->cal_date; // Use todays date
|
||||
}
|
||||
else
|
||||
{
|
||||
if (is_numeric($action))
|
||||
{
|
||||
$dateArray = $ecal_class->gmgetdate($action);
|
||||
}
|
||||
else
|
||||
{
|
||||
$dateArray = $ecal_class->gmgetdate($ds);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$dateArray['ds'] = $ds; // Way to pass to shortcodes.
|
||||
$month = $dateArray['mon']; // Number of month being shown
|
||||
$year = $dateArray['year']; // Number of year being shown
|
||||
|
||||
|
||||
if ($cal_super || check_class($ecal_class->pref['eventpost_admin']))
|
||||
{ // Bits relating to 'delete event', and generation of multiple events
|
||||
if ($action == 'mc')
|
||||
{
|
||||
if (isset($_POST['mc_cancel']))
|
||||
{
|
||||
$message = EC_LAN_179;
|
||||
}
|
||||
elseif (isset($_POST['mc_accept']))
|
||||
{ // Go for it! Write lots of events
|
||||
// Start by reading all the info from the hidden fields
|
||||
$wr_record = array();
|
||||
foreach ($ev_fields as $k => $v)
|
||||
{
|
||||
$wr_record[$k] = $tp->toDB($_POST['ev_'.$k]);
|
||||
}
|
||||
$wr_record['event_author'] = USERID.".".USERNAME;
|
||||
$wr_record['event_datestamp'] = time();
|
||||
$mult_count = $ecal_class->gen_recur($wr_record['event_start'],$wr_record['event_end'],$wr_record['event_recurring'],$wr_record['event_start'],$wr_record['event_end']);
|
||||
$wr_record['event_recurring'] = 0; // Individual events are non-recurring!
|
||||
|
||||
// Now write all the entries
|
||||
$wc = 0;
|
||||
foreach ($mult_count as $mc)
|
||||
{
|
||||
$wr_record['event_start'] = $mc;
|
||||
$wr_record['event_end'] = merge_date_time($mc,$wr_record['event_end']);
|
||||
// echo "Write record: ".$wr_record['event_start']." to ".$wr_record['event_end']."<br />";
|
||||
if ($sql->db_Insert("event", $wr_record)) $wc++;
|
||||
}
|
||||
$ecal_class->cal_log(5,'db_Insert',$qry, $ev_start);
|
||||
|
||||
$message = str_replace('-NUM-',$wc,EC_LAN_41);
|
||||
if ($wc != count($mult_count)) $message .= "<br /><br />".(count($mult_count)-$wc)." ".EC_LAN_180;
|
||||
}
|
||||
$action = '';
|
||||
}
|
||||
|
||||
|
||||
if (isset($_POST['confirm']))
|
||||
{
|
||||
$qry = "event_id='".intval($_POST['existing'])."' ";
|
||||
if ($sql->db_Delete("event", $qry))
|
||||
{
|
||||
$message = EC_LAN_51; //Event Deleted
|
||||
|
||||
$data = array('method'=>'delete', 'table'=>'event', 'id'=>$_POST['existing'], 'plugin'=>'calendar_menu', 'function'=>'dbEventDelete');
|
||||
$message .= $e_event->triggerHook($data);
|
||||
|
||||
$ecal_class->cal_log(3,'db_Delete',$qry,$ev_start);
|
||||
}
|
||||
else
|
||||
{
|
||||
$message = EC_LAN_109; //Unable to Delete event for some mysterious reason
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if ($action == "de")
|
||||
{ // Delete event - show confirmation form
|
||||
$text = "<div style='text-align:center'>
|
||||
<b>".EC_LAN_48."</b>
|
||||
<br /><br />
|
||||
<form method='post' action='".e_SELF."' id='calformz' >
|
||||
<input class='btn button' type='submit' name='cancel' value='".EC_LAN_49."' />
|
||||
<input class='btn button' type='submit' name='confirm' value='".EC_LAN_50."' />
|
||||
<input type='hidden' name='existing' value='".$qs[1]."' />
|
||||
<input type='hidden' name='subbed' value='no' />
|
||||
</form>
|
||||
</div>";
|
||||
$ns->tablerender(EC_LAN_46, $text); // Confirm Delete Event
|
||||
require_once(FOOTERF);
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (isset($_POST['cancel']))
|
||||
{ // Delete Cancelled
|
||||
$message = EC_LAN_47;
|
||||
}
|
||||
} // End - if ($cal_super)
|
||||
|
||||
|
||||
|
||||
// Messages acknowledging actions
|
||||
$poss_message = array('m1' => EC_LAN_41, 'm2' => EC_LAN_42, 'm3' => EC_LAN_43, 'm4' => EC_LAN_44, 'm5' => EC_LAN_45,
|
||||
'm6' => EC_LAN_145, 'm7' => 'Could have saved -NUM- events', 'm8' => EC_LAN_181);
|
||||
if (isset($qs[2])) if (isset($poss_message[$qs[2]]))
|
||||
{
|
||||
$message = $poss_message[$qs[2]];
|
||||
$ec = varset($qs[3],0);
|
||||
if ($ec) $message = str_replace('-NUM-',$ec,$message);
|
||||
}
|
||||
|
||||
|
||||
if (isset($message))
|
||||
{
|
||||
$ns->tablerender("", "<div style='text-align:center'><b>".$message."</b></div>");
|
||||
}
|
||||
|
||||
|
||||
function merge_date_time($date, $time)
|
||||
{
|
||||
return ((86400*intval($date/86400)) + ($time % 86400));
|
||||
}
|
||||
|
||||
//-------------------------------------
|
||||
// enter new event form
|
||||
//-------------------------------------
|
||||
if ($action == 'ne' || $action == 'ed')
|
||||
{
|
||||
if ($ecal_class->cal_super || check_class($ecal_class->pref['eventpost_admin']))
|
||||
{
|
||||
|
||||
switch ($action)
|
||||
{
|
||||
case 'ed' : // Editing existing event - read from database
|
||||
$sql->db_Select('event', '*', 'event_id='.intval($qs[1]));
|
||||
$row = $sql->db_Fetch(MYSQL_ASSOC);
|
||||
$ne_start = $row['event_start'];
|
||||
$ne_end = $row['event_end'];
|
||||
$allday = $row['event_allday'];
|
||||
$recurring = $row['event_recurring'];
|
||||
$ne_datestamp = $row['event_datestamp'];
|
||||
$ne_title = $row['event_title'];
|
||||
$ne_location = $row['event_location'];
|
||||
$ne_event = $row['event_details'];
|
||||
$ne_author = $row['event_author'];
|
||||
$ne_email = $row['event_contact'];
|
||||
$ne_category = $row['event_category'];
|
||||
$ne_thread = $row['event_thread'];
|
||||
|
||||
$smarray = $ecal_class->gmgetdate($ne_start);
|
||||
$ne_hour = $smarray['hours'];
|
||||
$ne_minute = $smarray['minutes'];
|
||||
$ne_startdate = $ecal_class->full_date($ne_start);
|
||||
|
||||
$smarray = $ecal_class->gmgetdate($ne_end);
|
||||
$end_hour = $smarray['hours'];
|
||||
$end_minute = $smarray['minutes'];
|
||||
$ne_enddate = $ecal_class->full_date($ne_end);
|
||||
|
||||
$caption = EC_LAN_66; // edit Event
|
||||
break;
|
||||
|
||||
case 'ne' : // New event - initialise everything
|
||||
$smarray = $ecal_class->gmgetdate($qs[1]);
|
||||
$month = $smarray['mon'];
|
||||
$year = $smarray['year'];
|
||||
$ne_startdate = $ecal_class->full_date($qs[1]);
|
||||
|
||||
$ne_hour = $smarray['hours'];
|
||||
$ne_minute = $smarray['minutes'];
|
||||
|
||||
$end_hour = $smarray['hours'];
|
||||
$end_minute = $smarray['minutes'];
|
||||
$ne_enddate = $ecal_class->full_date($qs[1]);
|
||||
$recurring = 0;
|
||||
$caption = EC_LAN_28; // Enter New Event
|
||||
|
||||
default :
|
||||
$caption = EC_LAN_83;
|
||||
}
|
||||
|
||||
|
||||
$text = "
|
||||
<script type=\"text/javascript\">
|
||||
<!--
|
||||
function check_mult(val)
|
||||
{
|
||||
if (val == true)
|
||||
{
|
||||
alert('".EC_LAN_87."');
|
||||
}
|
||||
}
|
||||
|
||||
function proc_recur(rec_value)
|
||||
{
|
||||
if(document.getElementById('rec_week_sel'))
|
||||
{
|
||||
target=document.getElementById('rec_week_sel').style;
|
||||
if (rec_value >= 100)
|
||||
{
|
||||
target.display = '';
|
||||
// alert('show');
|
||||
}
|
||||
else
|
||||
{
|
||||
target.display = 'none';
|
||||
// alert('hide');
|
||||
}
|
||||
}
|
||||
if(document.getElementById('gen_multiple'))
|
||||
{
|
||||
target=document.getElementById('gen_multiple').style;
|
||||
if (rec_value > 0)
|
||||
{
|
||||
target.display = '';
|
||||
}
|
||||
else
|
||||
{
|
||||
target.display = 'none';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function calcheckform(thisform, submitted,arrstr)
|
||||
{
|
||||
var testresults=true;
|
||||
|
||||
function calcdate(thisval)
|
||||
{
|
||||
var temp1;
|
||||
temp1 = thisval.split(\"{$ecal_class->date_separator}\");
|
||||
switch (arrstr)
|
||||
{
|
||||
case 2 : return temp1[2]+temp1[1]+temp1[0];
|
||||
case 3 : return temp1[2]+temp1[0]+temp1[1];
|
||||
default : return temp1[0]+temp1[1]+temp1[2];
|
||||
}
|
||||
return 'Error';
|
||||
}
|
||||
//event check - dates are text strings
|
||||
var sdate = calcdate(thisform.start_date.value);
|
||||
var edate = calcdate(thisform.end_date.value);
|
||||
if (edate < sdate)
|
||||
{ // Update end date if its before start date
|
||||
thisform.end_date.value = thisform.start_date.value;
|
||||
// alert('End date changed');
|
||||
}
|
||||
sdate = calcdate(thisform.start_date.value) + thisform.ne_hour.options[thisform.ne_hour.selectedIndex].value + thisform.ne_minute.options[thisform.ne_minute.selectedIndex].value;
|
||||
edate = calcdate(thisform.end_date.value) + thisform.end_hour.options[thisform.end_hour.selectedIndex].value + thisform.end_minute.options[thisform.end_minute.selectedIndex].value;
|
||||
// alert('Format: ' + arrstr + ' Start date: '+ sdate + ' End date: ' + edate);
|
||||
|
||||
testresults=true;
|
||||
|
||||
if (edate <= sdate && !thisform.allday.checked && testresults )
|
||||
{
|
||||
alert('".EC_LAN_99."');
|
||||
testresults=false;
|
||||
}
|
||||
if ((thisform.ne_title.value=='' || thisform.ne_event.value=='') && testresults)
|
||||
{
|
||||
alert('".EC_LAN_98."');
|
||||
testresults=false;
|
||||
}
|
||||
|
||||
if (testresults)
|
||||
{
|
||||
if (thisform.subbed.value=='no')
|
||||
{
|
||||
thisform.subbed.value='yes';
|
||||
testresults=true;
|
||||
}
|
||||
else
|
||||
{
|
||||
alert('".EC_LAN_113."');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return testresults;
|
||||
}
|
||||
-->
|
||||
</script>";
|
||||
|
||||
$text .= "
|
||||
<form method='post' action='".e_SELF."' id='linkform' onsubmit='return calcheckform(this, submitted,{$ecal_class->java_format_code})'>
|
||||
<table style='width:98%' class='table fborder' ><colgroup><col style='width:20%' /><col style='width:80%' /></colgroup>";
|
||||
|
||||
$text .= "
|
||||
<tr><td class='forumheader3'>".EC_LAN_72." </td><td class='forumheader3'> ".EC_LAN_67." ";
|
||||
|
||||
$text .= $ecal_class->makeCalendar("start_date",$ne_startdate)." ".EC_LAN_73." ".$ecal_class->makeCalendar("end_date",$ne_enddate);
|
||||
$text .= "</td></tr>
|
||||
<tr><td class='forumheader3'>".EC_LAN_71." </td><td class='forumheader3'>".EC_LAN_67;
|
||||
|
||||
$text .= $ecal_class->makeHourmin("ne_",$ne_hour,$ne_minute)." ".EC_LAN_73.$ecal_class->makeHourmin('end_',$end_hour,$end_minute);
|
||||
$text .= "<br /><input type='checkbox' name='allday' value='1' ".(isset($allday) && $allday == 1 ? "checked='checked'" :"")." />";
|
||||
$text .= EC_LAN_64."
|
||||
</td></tr>
|
||||
|
||||
<tr><td class='forumheader3'>".EC_LAN_65."</td><td class='forumheader3'>";
|
||||
$text .= $ecal_class->recurWeekSelect($recurring)." ".$ecal_class->recurSelect($recurring);
|
||||
$disp = $recurring && ($action == 'ne') ? '' : " style='display:none;'";
|
||||
$text .= "<span id='gen_multiple'{$disp}><input type='checkbox' name='ec_gen_multiple' value='1' onchange=\"check_mult(this.checked);\"/>".EC_LAN_86."</span>";
|
||||
$text .= "<br /><span class='smalltext'>".EC_LAN_63."</span>
|
||||
</td></tr>
|
||||
<tr><td class='forumheader3'>".EC_LAN_70." *</td><td class='forumheader3'>
|
||||
<input class='tbox' type='text' name='ne_title' size='75' value='".(isset($ne_title) ? $ne_title : "")."' maxlength='200' style='width:95%' />
|
||||
</td></tr>
|
||||
|
||||
<tr><td class='forumheader3'>".EC_LAN_52." </td><td class='forumheader3'>
|
||||
<select name='ne_category' class='tbox'>";
|
||||
// Check if supervisor, if so get all categories, otherwise just get those the user is allowed to see
|
||||
// Always exclude the default categories
|
||||
$cal_arg = ($ecal_class->cal_super ? "" : "find_in_set(event_cat_addclass,'".USERCLASS_LIST."') AND ");
|
||||
$cal_arg .= "(event_cat_name != '".EC_DEFAULT_CATEGORY."') ";
|
||||
if ($sql->db_Select('event_cat', 'event_cat_id, event_cat_name', $cal_arg))
|
||||
{
|
||||
while ($row = $sql->db_Fetch())
|
||||
{
|
||||
$text .= "<option value='{$row['event_cat_id']}' ".(isset($ne_category) && $ne_category == $row['event_cat_id'] ? "selected='selected'" :'')." >".$row['event_cat_name']."</option>";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$text .= "<option value=''>".EC_LAN_91."</option>";
|
||||
}
|
||||
$text .= "</select>
|
||||
</td></tr>";
|
||||
|
||||
switch ($ecal_class->pref['eventpost_editmode'])
|
||||
{
|
||||
case 1 :
|
||||
$insertjs = "rows='15' onselect='storeCaret(this);' onclick='storeCaret(this);' onkeyup='storeCaret(this);'";
|
||||
break;
|
||||
case 2 :
|
||||
$insertjs = "rows='25' ";
|
||||
break;
|
||||
default : $insertjs = "rows='15' ";
|
||||
}
|
||||
|
||||
$text .= "
|
||||
<tr><td class='forumheader3'>".EC_LAN_32." </td><td class='forumheader3'>
|
||||
<input class='tbox' type='text' name='ne_location' size='60' value='".(isset($ne_location) ? $ne_location : "")."' maxlength='200' style='width:95%' />
|
||||
</td></tr>
|
||||
|
||||
<tr><td class='forumheader3'>".EC_LAN_57." *</td><td class='forumheader3'>
|
||||
<textarea class='tbox' id='ne_event' name='ne_event' cols='59' style='width:95%' {$insertjs}>".(isset($ne_event) ? $ne_event : "")."</textarea>";
|
||||
if ($ecal_class->pref['eventpost_editmode'] == 1)
|
||||
{
|
||||
// Show help
|
||||
require_once(e_HANDLER."ren_help.php");
|
||||
$text .= "<br />".display_help("helpb", 'event');
|
||||
}
|
||||
|
||||
$text .= "</td></tr>";
|
||||
|
||||
// Only display for forum thread/link if required. No point if not wanted
|
||||
if (isset($ecal_class->pref['eventpost_forum']) && $ecal_class->pref['eventpost_forum'] == 1)
|
||||
{
|
||||
$text .= "
|
||||
<tr><td class='forumheader3'>".EC_LAN_58." </td><td class='forumheader3'>
|
||||
<input class='tbox' type='text' name='ne_thread' size='60' value='".(isset($ne_thread) ? $ne_thread : "")."' maxlength='100' style='width:95%' />
|
||||
</td></tr>";
|
||||
}
|
||||
|
||||
// If the user is logged in and has their email set plus the field is empty then put in
|
||||
// their email address. They can always take it out if they want, its not a required field
|
||||
if (empty($ne_email) && ($action == "ne") && defined('USEREMAIL'))
|
||||
{
|
||||
$ne_email = USEREMAIL;
|
||||
}
|
||||
$text .= "
|
||||
<tr><td class='forumheader3'>".EC_LAN_59." </td><td class='forumheader3'>
|
||||
<input class='tbox' type='text' name='ne_email' size='60' value='$ne_email' maxlength='150' style='width:95%' />
|
||||
</td></tr>";
|
||||
|
||||
//triggerHook
|
||||
$hid = ($action=='ed' ? intval($qs[1]) : '');
|
||||
$data = array('method'=>'form', 'table'=>'event', 'id'=>$hid, 'plugin'=>'calendar_menu', 'function'=>'CalendarCreate');
|
||||
$text .= $frm->renderHooks($data);
|
||||
|
||||
|
||||
$text .= "
|
||||
<tr>
|
||||
<td class='forumheader3' colspan='2' >".EC_LAN_105." </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class='forumheader' colspan='2' style='text-align:center'>";
|
||||
if ($action == "ed")
|
||||
{
|
||||
$text .= "<input class='btn button' type='submit' name='ne_update' value='".EC_LAN_60."' onclick='submitted=this.name' />
|
||||
<input type='hidden' name='id' value='".$qs[1]."' />";
|
||||
}
|
||||
else
|
||||
{
|
||||
$text .= "<input class='btn button' type='submit' name='ne_insert' value='".EC_LAN_28."' onclick='submitted=this.name' />";
|
||||
}
|
||||
$text .= "<input type='hidden' name='qs' value='".e_QUERY."' /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>";
|
||||
|
||||
$ns->tablerender($caption, $text);
|
||||
require_once(FOOTERF);
|
||||
exit();
|
||||
}
|
||||
else
|
||||
{
|
||||
header('location:'.e_PLUGIN.'calendar_menu/event.php');
|
||||
exit();
|
||||
}
|
||||
} // End of "Enter New Event"
|
||||
|
||||
|
||||
//-----------------------------------------------
|
||||
// show events
|
||||
// $month, $year have the month required
|
||||
//-----------------------------------------------
|
||||
if (is_readable(THEME.'calendar_template.php'))
|
||||
{ // Has to be require
|
||||
require(THEME.'calendar_template.php');
|
||||
}
|
||||
else
|
||||
{
|
||||
require(e_PLUGIN.'calendar_menu/calendar_template.php');
|
||||
}
|
||||
|
||||
$calSc->ecalClass = &$ecal_class; // Give shortcodes a pointer to calendar class
|
||||
$calSc->setCalDate($dateArray); // Tell shortcodes the date to display
|
||||
$calSc->catFilter = $cat_filter; // Category filter
|
||||
$calSc->eventDisplayCodes = $EVENT_EVENT_DATETIME; // Templates for different event types
|
||||
|
||||
$monthstart = gmmktime(0, 0, 0, $month, 1, $year);
|
||||
$monthend = gmmktime(0, 0, 0, $month + 1, 1, $year) -1 ;
|
||||
|
||||
$nowmonth = $ecal_class->cal_date['mon'];
|
||||
$nowyear = $ecal_class->cal_date['year'];
|
||||
|
||||
|
||||
$text2 = "";
|
||||
// time switch buttons
|
||||
$text2 .= $tp->parseTemplate($CALENDAR_TIME_TABLE, FALSE, $calSc);
|
||||
|
||||
// navigation buttons
|
||||
$text2 .= $tp->parseTemplate($CALENDAR_NAVIGATION_TABLE, FALSE, $calSc);
|
||||
|
||||
|
||||
// ****** CAUTION - the category dropdown also used $sql object - take care to avoid interference!
|
||||
|
||||
$ev_list = array();
|
||||
|
||||
|
||||
if ($ds == 'event')
|
||||
{ // Show single event - bit of a special case
|
||||
$ec_err = FALSE;
|
||||
$qry = "
|
||||
SELECT e.*, ec.event_cat_name,ec.event_cat_icon
|
||||
FROM #event as e
|
||||
LEFT JOIN #event_cat as ec ON e.event_category = ec.event_cat_id
|
||||
WHERE e.event_id='".intval($eveid)."'
|
||||
{$ecal_class->extra_query}
|
||||
";
|
||||
$sql2->db_Select_gen($qry);
|
||||
$thisEvent = $sql2->db_Fetch();
|
||||
// Recurring events - $action has the actual date required (no time) - could be one of a potentially large number of dates it referred to
|
||||
if ($thisEvent['event_recurring']>='1') // Single event, selected by ID. So day/month must match
|
||||
{
|
||||
$temp_arr = $ecal_class->gen_recur($thisEvent['event_start'],$thisEvent['event_end'],$thisEvent['event_recurring'],$action,$action+86400); // Array of start times - hopefully just one!
|
||||
if (count($temp_arr) == 1)
|
||||
{
|
||||
$thisEvent['event_start'] = $temp_arr[0];
|
||||
$thisEvent['event_end'] = merge_date_time($action,$thisEvent['event_end']);
|
||||
}
|
||||
else
|
||||
{ // Error
|
||||
$ec_err = TRUE;
|
||||
}
|
||||
}
|
||||
$next10_start = $thisEvent['event_start'] +1;
|
||||
$calSc->event = $thisEvent; // Give shortcodes the event data
|
||||
$text2 .= $tp->parseTemplate($EVENT_EVENT_TABLE_START, FALSE, $calSc);
|
||||
if ($ec_err) $text2.= "Software Error<br />"; else $text2 .= $tp->parseTemplate($EVENT_EVENT_TABLE, FALSE, $calSc);
|
||||
$text2 .= $tp->parseTemplate($EVENT_EVENT_TABLE_END, FALSE, $calSc);
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($ds == 'one')
|
||||
{ // Show events from one day
|
||||
// $tmp = $ecal_class->gmgetdate($action);
|
||||
// $selected_day = $tmp['mday'];
|
||||
// $selected_mon = $tmp['mon'];
|
||||
$start_time = intval($action);
|
||||
$end_time = $action + 86399;
|
||||
$next10_start = $end_time + 1;
|
||||
}
|
||||
else
|
||||
{ // Display whole of selected month
|
||||
$start_time = $monthstart;
|
||||
$end_time = $monthend;
|
||||
$next10_start = $end_time + 1;
|
||||
}
|
||||
|
||||
// echo "Start: ".$start_time." End: ".$end_time." Cat_filter: ".$cat_filter."<br />";
|
||||
// We'll need virtually all of the event-related fields, so get them regardless
|
||||
$ev_list = $ecal_class->get_events($start_time, $end_time, FALSE, $cat_filter, TRUE, '*', 'event_cat_name,event_cat_icon');
|
||||
|
||||
|
||||
// Now go through and multiply up any recurring records
|
||||
$tim_arr = array();
|
||||
foreach ($ev_list as $k=>$event)
|
||||
{
|
||||
if (is_array($event['event_start']))
|
||||
{
|
||||
foreach ($event['event_start'] as $t)
|
||||
{
|
||||
$tim_arr[$t][] = $k;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$tim_arr[$event['event_start']][] = $k;
|
||||
}
|
||||
}
|
||||
|
||||
// Add a sort in here - time/date order
|
||||
ksort($tim_arr);
|
||||
|
||||
// display event list for current month
|
||||
if(count($tim_arr))
|
||||
{
|
||||
$text2 .= $tp->parseTemplate($EVENT_EVENTLIST_TABLE_START, FALSE, $calSc);
|
||||
//foreach ($tim_arr as $tim => $ptr)
|
||||
foreach ($tim_arr as $tim => $evList)
|
||||
foreach ($evList as $ptr)
|
||||
{
|
||||
$ev_list[$ptr]['event_start'] = $tim;
|
||||
$calSc->event = $ev_list[$ptr]; // Give shortcodes the event data
|
||||
$text2 .= $tp->parseTemplate($EVENT_EVENT_TABLE, FALSE, $calSc);
|
||||
}
|
||||
$text2 .= $tp->parseTemplate($EVENT_EVENTLIST_TABLE_END, FALSE, $calSc);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Now display next 10 events
|
||||
//echo "Next 10 start: ".$next10_start."<br />";
|
||||
$ev_list = $ecal_class->get_n_events(10, $next10_start, $next10_start+86400000, $cat_filter, TRUE,
|
||||
'event_id,event_start, event_title', 'event_cat_name, event_cat_icon');
|
||||
|
||||
|
||||
$num = count($ev_list);
|
||||
if ($num != 0)
|
||||
{
|
||||
$calSc->numEvents = $num; // Give shortcodes the number of events to expect
|
||||
$archive_events = '';
|
||||
foreach ($ev_list as $thisEvent)
|
||||
{
|
||||
$calSc->event = $thisEvent; // Give shortcodes the event data
|
||||
$archive_events .= $tp->parseTemplate($EVENT_ARCHIVE_TABLE, FALSE, $calSc);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$archive_events = $tp->parseTemplate($EVENT_ARCHIVE_TABLE_EMPTY, FALSE, $calSc);
|
||||
}
|
||||
|
||||
$text2 .= $tp->parseTemplate($EVENT_ARCHIVE_TABLE_START, FALSE, $calSc);
|
||||
$text2 .= $archive_events;
|
||||
$text2 .= $tp->parseTemplate($EVENT_ARCHIVE_TABLE_END, FALSE, $calSc);
|
||||
|
||||
|
||||
$ns->tablerender($tp->ParseTemplate('{EC_EVENT_PAGE_TITLE}', FALSE, $calSc), $text2);
|
||||
|
||||
// Claim back memory no longer required
|
||||
unset($ev_list);
|
||||
unset($text2);
|
||||
unset($tim_arr);
|
||||
|
||||
require_once(FOOTERF);
|
||||
|
||||
|
||||
?>
|
Before Width: | Height: | Size: 716 B |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 847 B |
Before Width: | Height: | Size: 720 B |
Before Width: | Height: | Size: 854 B |
Before Width: | Height: | Size: 869 B |
Before Width: | Height: | Size: 823 B |
Before Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 275 B |
Before Width: | Height: | Size: 275 B |
Before Width: | Height: | Size: 275 B |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 536 B |
Before Width: | Height: | Size: 329 B |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.1 KiB |
@ -1,305 +0,0 @@
|
||||
<?php
|
||||
/*
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2013 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
* These messages are for the 'user' pages of the event calendar
|
||||
*
|
||||
* $Source: /cvs_backup/e107_0.8/e107_plugins/calendar_menu/languages/English.php,v $
|
||||
* $Revision$
|
||||
* $Date$
|
||||
* $Author$
|
||||
*/
|
||||
|
||||
/**
|
||||
* e107 Event calendar plugin
|
||||
*
|
||||
* Language file - 'user' pages
|
||||
*
|
||||
* @package e107_plugins
|
||||
* @subpackage event_calendar
|
||||
* @version $Id$;
|
||||
*/
|
||||
|
||||
define('EC_ADLAN_1', 'Event Calendar');
|
||||
define('EC_ADLAN_2', 'Configure Event Calendar');
|
||||
define('EC_LAN_TODAY', 'today');
|
||||
|
||||
define('EC_LAN_DAY_1', "1");
|
||||
define('EC_LAN_DAY_2', "2");
|
||||
define('EC_LAN_DAY_3', "3");
|
||||
define('EC_LAN_DAY_4', "4");
|
||||
define('EC_LAN_DAY_5', "5");
|
||||
define('EC_LAN_DAY_6', "6");
|
||||
define('EC_LAN_DAY_7', "7");
|
||||
define('EC_LAN_DAY_8', "8");
|
||||
define('EC_LAN_DAY_9', "9");
|
||||
define('EC_LAN_DAY_10', "10");
|
||||
define('EC_LAN_DAY_11', "11");
|
||||
define('EC_LAN_DAY_12', "12");
|
||||
define('EC_LAN_DAY_13', "13");
|
||||
define('EC_LAN_DAY_14', "14");
|
||||
define('EC_LAN_DAY_15', "15");
|
||||
define('EC_LAN_DAY_16', "16");
|
||||
define('EC_LAN_DAY_17', "17");
|
||||
define('EC_LAN_DAY_18', "18");
|
||||
define('EC_LAN_DAY_19', "19");
|
||||
define('EC_LAN_DAY_20', "20");
|
||||
define('EC_LAN_DAY_21', "21");
|
||||
define('EC_LAN_DAY_22', "22");
|
||||
define('EC_LAN_DAY_23', "23");
|
||||
define('EC_LAN_DAY_24', "24");
|
||||
define('EC_LAN_DAY_25', "25");
|
||||
define('EC_LAN_DAY_26', "26");
|
||||
define('EC_LAN_DAY_27', "27");
|
||||
define('EC_LAN_DAY_28', "28");
|
||||
define('EC_LAN_DAY_29', "29");
|
||||
define('EC_LAN_DAY_30', "30");
|
||||
define('EC_LAN_DAY_31', "31");
|
||||
|
||||
define('EC_LAN_0', "January");
|
||||
define('EC_LAN_1', "February");
|
||||
define('EC_LAN_2', "March");
|
||||
define('EC_LAN_3', "April");
|
||||
define('EC_LAN_4', "May");
|
||||
define('EC_LAN_5', "June");
|
||||
define('EC_LAN_6', "July");
|
||||
define('EC_LAN_7', "August");
|
||||
define('EC_LAN_8', "September");
|
||||
define('EC_LAN_9', "October");
|
||||
define('EC_LAN_10', "November");
|
||||
define('EC_LAN_11', "December");
|
||||
define('EC_LAN_JAN', "Jan");
|
||||
define('EC_LAN_FEB', "Feb");
|
||||
define('EC_LAN_MAR', "Mar");
|
||||
define('EC_LAN_APR', "Apr");
|
||||
define('EC_LAN_MAY', "May");
|
||||
define('EC_LAN_JUN', "Jun");
|
||||
define('EC_LAN_JUL', "Jul");
|
||||
define('EC_LAN_AUG', "Aug");
|
||||
define('EC_LAN_SEP', "Sep");
|
||||
define('EC_LAN_OCT', "Oct");
|
||||
define('EC_LAN_NOV', "Nov");
|
||||
define('EC_LAN_DEC', "Dec");
|
||||
define('EC_LAN_12', "Monday");
|
||||
define('EC_LAN_13', "Tuesday");
|
||||
define('EC_LAN_14', "Wednesday");
|
||||
define('EC_LAN_15', "Thursday");
|
||||
define('EC_LAN_16', "Friday");
|
||||
define('EC_LAN_17', "Saturday");
|
||||
define('EC_LAN_18', "Sunday");
|
||||
define('EC_LAN_19', "Mon");
|
||||
define('EC_LAN_20', "Tue");
|
||||
define('EC_LAN_21', "Wed");
|
||||
define('EC_LAN_22', "Thu");
|
||||
define('EC_LAN_23', "Fri");
|
||||
define('EC_LAN_24', "Sat");
|
||||
define('EC_LAN_25', "Sun");
|
||||
define('EC_LAN_26', "Events this Month");
|
||||
define('EC_LAN_27', "No events for this month.");
|
||||
define('EC_LAN_28', "Enter New Event");
|
||||
define('EC_LAN_29', "When:");
|
||||
define('EC_LAN_30', "Category:");
|
||||
define('EC_LAN_31', "Posted by:");
|
||||
define('EC_LAN_32', "Location:");
|
||||
define('EC_LAN_33', "Contact:");
|
||||
define('EC_LAN_34', "Jump to");
|
||||
define('EC_LAN_35', "Edit");
|
||||
define('EC_LAN_36', "Delete");
|
||||
define('EC_LAN_37', "None Listed.");
|
||||
define('EC_LAN_38', "Not specified");
|
||||
define('EC_LAN_39', "Click here for more information");
|
||||
define('EC_LAN_40', "Current Month");
|
||||
define('EC_LAN_41', "Total -NUM- individual events created");
|
||||
define('EC_LAN_42', "Event cannot end before it starts.");
|
||||
define('EC_LAN_43', "You left required field(s) blank.");
|
||||
define('EC_LAN_44', "New event created and entered into database.");
|
||||
define('EC_LAN_45', "Event updated in database.");
|
||||
define('EC_LAN_46', "Confirm Delete Event");
|
||||
define('EC_LAN_47', "Delete cancelled.");
|
||||
define('EC_LAN_48', "Please confirm you wish to delete this event - once deleted it cannot be retrieved");
|
||||
define('EC_LAN_49', "Cancel");
|
||||
define('EC_LAN_50', "Confirm Delete");
|
||||
define('EC_LAN_51', "Event deleted.");
|
||||
define('EC_LAN_52', "Event Category:");
|
||||
define('EC_LAN_53', "Create new category?:");
|
||||
define('EC_LAN_54', "Name:");
|
||||
//define('EC_LAN_55', "Icon:");
|
||||
define('EC_LAN_56', "Create");
|
||||
define('EC_LAN_57', "Event:");
|
||||
define('EC_LAN_58', "source info URL:");
|
||||
define('EC_LAN_59', "Contact email:");
|
||||
define('EC_LAN_60', "Update Event");
|
||||
define('EC_LAN_61', "Go");
|
||||
define('EC_LAN_62', "Next -NUM- Events ...");
|
||||
define('EC_LAN_63', "Select repeating events between start and end dates. Start and end time as set");
|
||||
define('EC_LAN_64', "Check for an all-day event");
|
||||
define('EC_LAN_65', "Recurring:");
|
||||
define('EC_LAN_66', "Edit Event");
|
||||
define('EC_LAN_67', "Start:");
|
||||
define('EC_LAN_68', "All day event:");
|
||||
define('EC_LAN_69', "Ends:");
|
||||
define('EC_LAN_70', "Event Title:");
|
||||
define('EC_LAN_71', "Event Time:");
|
||||
define('EC_LAN_72', "Event Date:");
|
||||
define('EC_LAN_73', "End:");
|
||||
define('EC_LAN_74', "View Category");
|
||||
//define('EC_LAN_76', "Events can be added by:");
|
||||
//define('EC_LAN_77', "Update Settings");
|
||||
//define('EC_LAN_78', "Calendar Settings");
|
||||
define('EC_LAN_79', "Calendar View");
|
||||
define('EC_LAN_80', "Event List");
|
||||
//define('EC_LAN_81', "Configure Event Calendar");
|
||||
//define('EC_LAN_82', "To activate please go to your menus screen and select the calendar_menu into one of your menu areas.");
|
||||
define('EC_LAN_83', "Calendar");
|
||||
define('EC_LAN_84', " from ");
|
||||
define('EC_LAN_85', " until ");
|
||||
define('EC_LAN_86', "Individual events from entry");
|
||||
define('EC_LAN_87', "By checking this box you may generate a large number of individual events, which you will have to edit or delete individually if they are wrong");
|
||||
define('EC_LAN_88', "You have chosen to generate -NUM- individual events.");
|
||||
define('EC_LAN_89', "If the entry is wrong, you will have to edit or delete the entries individually");
|
||||
|
||||
//define('EC_LAN_90', "Choose");
|
||||
define('EC_LAN_91', "Admin must define first");
|
||||
define('EC_LAN_92', "View Category");
|
||||
define('EC_LAN_93', "View Events List");
|
||||
define('EC_LAN_94', "Enter New Event");
|
||||
define('EC_LAN_95', "Today");
|
||||
define('EC_LAN_96', "View Calendar");
|
||||
define('EC_LAN_97', "All");
|
||||
define('EC_LAN_98', "Required fields left blank");
|
||||
define('EC_LAN_99', "Event must either be an all day event or finish after it starts");
|
||||
define('EC_LAN_100', "Invalid Category Selection");
|
||||
//define('EC_LAN_101', "Set to inactive to disable on the new event form.");
|
||||
//define('EC_LAN_102', "Show link to 'more information' with events");
|
||||
//define('EC_LAN_103', "On new event entry form.");
|
||||
//define('EC_LAN_104', "Calendar Administrator Class");
|
||||
define('EC_LAN_105', "* Required Field");
|
||||
define('EC_LAN_106', "Events");
|
||||
//define('EC_LAN_107', "This plugin is a fully featured event calendar with calendar menu.");
|
||||
define('EC_LAN_108', "Event Calendar Upgraded. See the e107 wiki file for detailed information.");
|
||||
define('EC_LAN_109', "Unable to delete this event.");
|
||||
define('EC_LAN_110', "Event Number ");
|
||||
define('EC_LAN_111', "All the events on ");
|
||||
define('EC_LAN_112', "All the Events in ");
|
||||
define('EC_LAN_113', "Event form already submitted.");
|
||||
//define('EC_LAN_114', "Week starts with:");
|
||||
define('EC_LAN_115', "Sunday");
|
||||
define('EC_LAN_116', "Monday");
|
||||
//define('EC_LAN_117', "Length of daynames (characters)");
|
||||
//define('EC_LAN_118', "Date format in calendar header:");
|
||||
//define('EC_LAN_119', "month/year");
|
||||
//define('EC_LAN_120', "year/month");
|
||||
define('EC_LAN_121', "Show Calendar");
|
||||
define('EC_LAN_122', 'Event information (single event)');
|
||||
define('EC_LAN_123', "Subscriptions");
|
||||
define('EC_LAN_124', "Calendar Subscriptions");
|
||||
define('EC_LAN_125', "Categories available for subscription");
|
||||
define('EC_LAN_126', "Subscribed");
|
||||
define('EC_LAN_127', "Category");
|
||||
define('EC_LAN_128', "No categories available to subscribe to");
|
||||
define('EC_LAN_129', "Update");
|
||||
define('EC_LAN_130', "Subscriptions updated");
|
||||
define('EC_LAN_131', "Return");
|
||||
define('EC_LAN_132', "Expand details");
|
||||
define('EC_LAN_133', "[read more]");
|
||||
define('EC_LAN_134', "You have to provide a category name");
|
||||
define('EC_LAN_135', "Event");
|
||||
define('EC_LAN_136', "Category Description");
|
||||
define('EC_LAN_137', "Future Events");
|
||||
define('EC_LAN_138', '---End of List---');
|
||||
|
||||
define('EC_LAN_140', "Forthcoming Events");
|
||||
define('EC_LAN_141', "No forthcoming events");
|
||||
define('EC_LAN_142', "Only registered and logged in users can subscribe to events");
|
||||
define('EC_LAN_143', "Facility not available");
|
||||
define('EC_LAN_144', " at ");
|
||||
|
||||
define('EC_LAN_145', "You must specify a category for the event");
|
||||
define('EC_LAN_146', "Advance notice of calendar event");
|
||||
define('EC_LAN_147', "Calendar event today or tomorrow");
|
||||
define('EC_LAN_148', "No events in specified date range");
|
||||
define('EC_LAN_149', "Invalid date format");
|
||||
define('EC_LAN_150', "Enter start and end date for list");
|
||||
define('EC_LAN_151', "End date after start date");
|
||||
define('EC_LAN_152', "Maximum one year's events");
|
||||
define('EC_LAN_153', "Start Date (first day of): ");
|
||||
define('EC_LAN_154', "End Date (last day of): ");
|
||||
define('EC_LAN_155', "Category: ");
|
||||
define('EC_LAN_156', "Create List");
|
||||
define('EC_LAN_157', "Layout Options:");
|
||||
define('EC_LAN_158', "Output: ");
|
||||
define('EC_LAN_159', "Display ");
|
||||
define('EC_LAN_160', "Print ");
|
||||
define('EC_LAN_161', "PDF ");
|
||||
define('EC_LAN_162', "Print this page");
|
||||
define('EC_LAN_163', "Event Listing");
|
||||
define('EC_LAN_164', "Printable Lists");
|
||||
define('EC_LAN_165', "Default Listing");
|
||||
define('EC_LAN_166', "Tabular List no lines");
|
||||
define('EC_LAN_167', "Tabular List with lines");
|
||||
define('EC_LAN_168', "From: ");
|
||||
define('EC_LAN_169', "To: ");
|
||||
define('EC_LAN_170', "Printed on: ");
|
||||
define('EC_LAN_171', "List including category");
|
||||
define('EC_LAN_172', "Event Categories: ");
|
||||
define('EC_LAN_173', "First event starts: ");
|
||||
define('EC_LAN_174', "Last event ends: ");
|
||||
define('EC_LAN_175', 'All Day');
|
||||
define('EC_LAN_176', "Recurring pattern: ");
|
||||
define('EC_LAN_177', "Cancel Entry");
|
||||
define('EC_LAN_178', "Accept Entries");
|
||||
define('EC_LAN_179', "Confirmation of multiple event entry");
|
||||
define('EC_LAN_180', 'RECORDS NOT SAVED - DB UPDATE ERROR');
|
||||
define('EC_LAN_181', "You aren't allowed to do that!");
|
||||
define('EC_LAN_182', 'Sign up to receive email notification of events');
|
||||
define('EC_LAN_183', 'Create printable lists of events');
|
||||
|
||||
define('EC_LAN_VIEWCALENDAR', 'View Calendar');
|
||||
define('EC_LAN_VIEWALLEVENTS', 'View all events');
|
||||
define('EC_LAN_ALLEVENTS', "All events");
|
||||
|
||||
/*
|
||||
// Recurring events texts - the numeric part of each define is the internal value assigned
|
||||
define('EC_LAN_RECUR_00', 'no');
|
||||
define('EC_LAN_RECUR_01', 'annual');
|
||||
define('EC_LAN_RECUR_02', 'biannual');
|
||||
define('EC_LAN_RECUR_03', 'quarterly');
|
||||
define('EC_LAN_RECUR_04', 'monthly');
|
||||
define('EC_LAN_RECUR_05', 'four weekly');
|
||||
define('EC_LAN_RECUR_06', 'fortnightly');
|
||||
define('EC_LAN_RECUR_07', 'weekly');
|
||||
define('EC_LAN_RECUR_08', 'daily');
|
||||
define('EC_LAN_RECUR_100', 'Sunday in month');
|
||||
define('EC_LAN_RECUR_101', 'Monday in month');
|
||||
define('EC_LAN_RECUR_102', 'Tuesday in month');
|
||||
define('EC_LAN_RECUR_103', 'Wednesday in month');
|
||||
define('EC_LAN_RECUR_104', 'Thursday in month');
|
||||
define('EC_LAN_RECUR_105', 'Friday in month');
|
||||
define('EC_LAN_RECUR_106', 'Saturday in month');
|
||||
|
||||
define('EC_LAN_RECUR_1100', 'First');
|
||||
define('EC_LAN_RECUR_1200', 'Second');
|
||||
define('EC_LAN_RECUR_1300', 'Third');
|
||||
define('EC_LAN_RECUR_1400', 'Fourth');
|
||||
|
||||
|
||||
// Notify
|
||||
define('NT_LAN_EC_1', 'Event Calendar Events');
|
||||
define('NT_LAN_EC_2', 'Event Updated');
|
||||
define('NT_LAN_EC_3', 'Update by');
|
||||
define('NT_LAN_EC_4', 'IP Address');
|
||||
define('NT_LAN_EC_5', 'Message');
|
||||
define('NT_LAN_EC_6', 'Event Calendar - Event added');
|
||||
define('NT_LAN_EC_7', 'New event posted');
|
||||
define('NT_LAN_EC_8', 'Event Calendar - Event modified');
|
||||
*/
|
||||
|
||||
// Prefs - language defines can be used in various places where text is set through the admin screens
|
||||
define('EC_MAILOUT_SUBJECT', 'Advice of calendar event'); // Use shortcode EC_MAIL_SUBJECT
|
||||
|
||||
|
||||
?>
|
@ -1,230 +0,0 @@
|
||||
<?php
|
||||
/*
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2013 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
* Messages for admin pages of event calendar
|
||||
*
|
||||
* $Source: /cvs_backup/e107_0.8/e107_plugins/calendar_menu/languages/English_admin_calendar_menu.php,v $
|
||||
* $Revision$
|
||||
* $Date$
|
||||
* $Author$
|
||||
*/
|
||||
|
||||
/**
|
||||
* e107 Event calendar plugin
|
||||
*
|
||||
* Language file - 'admin' pages
|
||||
*
|
||||
* @package e107_plugins
|
||||
* @subpackage event_calendar
|
||||
* @version $Id$;
|
||||
*/
|
||||
|
||||
// TODO LAN REWRITE
|
||||
|
||||
define('EC_ADLAN_1', 'Event Calendar');
|
||||
|
||||
define('EC_LAN_12', "Monday");
|
||||
define('EC_LAN_13', "Tuesday");
|
||||
define('EC_LAN_14', "Wednesday");
|
||||
define('EC_LAN_15', "Thursday");
|
||||
define('EC_LAN_16', "Friday");
|
||||
define('EC_LAN_17', "Saturday");
|
||||
define('EC_LAN_18', "Sunday");
|
||||
define('EC_LAN_19', "Mon");
|
||||
define('EC_LAN_20', "Tue");
|
||||
define('EC_LAN_21', "Wed");
|
||||
define('EC_LAN_22', "Thu");
|
||||
define('EC_LAN_23', "Fri");
|
||||
define('EC_LAN_24', "Sat");
|
||||
define('EC_LAN_25', "Sun");
|
||||
define('EC_LAN_163', "Event Listing");
|
||||
// If any 'EC_LAN_xxx' not found, look in language file for user pages.
|
||||
|
||||
define('EC_ADLAN_A09', 'Main Calendar');
|
||||
define('EC_ADLAN_A10', "Configuration"); //FIXME Use Generic
|
||||
define('EC_ADLAN_A11', "Categories"); //FIXME Use Generic
|
||||
define('EC_ADLAN_A12', "Calendar");
|
||||
//define('EC_ADLAN_A13', "Edit"); //FIXME Use Generic
|
||||
//define('EC_ADLAN_A14', "New");
|
||||
//define('EC_ADLAN_A15', "Delete"); //FIXME Use Generic
|
||||
//define('EC_ADLAN_A16', "Confirm"); //FIXME Use Generic
|
||||
define('EC_ADLAN_A17', "Proceed");
|
||||
define('EC_ADLAN_A18', "Action");
|
||||
define('EC_ADLAN_A19', "Administer Categories");
|
||||
define('EC_ADLAN_A20', "Calendar Categories");
|
||||
define('EC_ADLAN_A21', "Category name");
|
||||
define('EC_ADLAN_A22', "Adds a field to be used as a link to a forum thread or external site");
|
||||
//define('EC_ADLAN_A23', "Create category"); //FIXME Use Generic
|
||||
//define('EC_ADLAN_A24', "Edit category"); //FIXME Use Generic
|
||||
//define('EC_ADLAN_A25', "Save"); //FIXME Use Generic
|
||||
//define('EC_ADLAN_A26', "Category created"); //FIXME Use Generic
|
||||
//define('EC_ADLAN_A27', "Unable to create category");
|
||||
//define('EC_ADLAN_A28', "Changes Saved"); //FIXME Use Generic
|
||||
//define('EC_ADLAN_A29', "Unable to save changes"); //FIXME Use Generic
|
||||
|
||||
//define('EC_ADLAN_A30', "Category Deleted"); //FIXME Use Generic
|
||||
//define('EC_ADLAN_A31', "Tick the confirm box to delete");
|
||||
//define('EC_ADLAN_A32', "Unable to delete this category"); //FIXME Use Generic
|
||||
define('EC_ADLAN_A33', "None defined");
|
||||
define('EC_ADLAN_A34', "Calendar Administrator Class");
|
||||
//define('EC_ADLAN_A35', "");
|
||||
define('EC_ADLAN_A59', "Category is in use. Can not delete.");
|
||||
|
||||
define('EC_ADLAN_A80', "Visible to");
|
||||
define('EC_ADLAN_A81', "Allow subscription");
|
||||
define('EC_ADLAN_A82', "Forced notification class");
|
||||
define('EC_ADLAN_A83', "Days ahead to notify of event");
|
||||
define('EC_ADLAN_A84', "Advanced message");
|
||||
define('EC_ADLAN_A85', "Message on the day");
|
||||
define('EC_ADLAN_A86', "Send email");
|
||||
define('EC_ADLAN_A87', "None");
|
||||
define('EC_ADLAN_A88', "Only advanced");
|
||||
define('EC_ADLAN_A89', "Only on the day");
|
||||
define('EC_ADLAN_A90', "Advanced and on the day");
|
||||
define('EC_ADLAN_A91', "Email Subject");
|
||||
define('EC_ADLAN_A92', "Email from (name)");
|
||||
define('EC_ADLAN_A93', "Email from email address");
|
||||
define('EC_ADLAN_A94', "Add new event class");
|
||||
define('EC_ADLAN_A95', "Enable manual subscriptions");
|
||||
define('EC_ADLAN_A96', "Disabling this removes the subscriptions button and overrides the category manual subscription setting.");
|
||||
|
||||
|
||||
define('EC_ADLAN_A100', "Forthcoming Events");
|
||||
define('EC_ADLAN_A101', "Days to look forward:");
|
||||
define('EC_ADLAN_A102', "Number of events to display:");
|
||||
define('EC_ADLAN_A103', "Include recurring events:");
|
||||
define('EC_ADLAN_A104', "Title is link to events list:");
|
||||
define('EC_ADLAN_A105', "Configure Forthcoming Events Menu");
|
||||
define('EC_ADLAN_A106', "Menu has to be enabled on the 'Menu' page");
|
||||
define('EC_ADLAN_A107', "Hide menu if no events to show");
|
||||
define('EC_ADLAN_A108', "Menu Heading");
|
||||
define('EC_ADLAN_A109', "Forthcoming Events preferences updated");
|
||||
|
||||
define('EC_ADLAN_A110', "Only on previous day");
|
||||
define('EC_ADLAN_A111', "Advanced and previous day");
|
||||
define('EC_ADLAN_A112', "Previous day and on the day");
|
||||
define('EC_ADLAN_A113', "Advanced, previous day and on the day");
|
||||
|
||||
define('EC_ADLAN_A114', "Logging of Emails");
|
||||
define('EC_ADLAN_A115', "Summary");
|
||||
define('EC_ADLAN_A116', "Detailed");
|
||||
define('EC_ADLAN_A117', "Message on the day or the previous day");
|
||||
define('EC_ADLAN_A118', "Categories to display");
|
||||
define('EC_ADLAN_A119', "No categories defined, or error reading database");
|
||||
define('EC_ADLAN_A120', "Show category icon in menu");
|
||||
define('EC_ADLAN_A121', "Category Description");
|
||||
define('EC_ADLAN_A122', "Calendar time reference");
|
||||
define('EC_ADLAN_A123', "Calendar time format");
|
||||
define('EC_ADLAN_A124', "Current server time: ");
|
||||
define('EC_ADLAN_A125', "Current site time: ");
|
||||
define('EC_ADLAN_A126', "Current user time: ");
|
||||
define('EC_ADLAN_A127', "Determines time display format throughout event calendar.");
|
||||
define('EC_ADLAN_A128', "Custom time uses the format in the box on the right");
|
||||
define('EC_ADLAN_A129', '"Site Time" uses the offset defined in preferences');
|
||||
define('EC_ADLAN_A130', "Event name is link to:");
|
||||
define('EC_ADLAN_A131', "Calendar Event");
|
||||
define('EC_ADLAN_A132', "Source Info URL");
|
||||
define('EC_ADLAN_A133', "Date format for event entry: ");
|
||||
define('EC_ADLAN_A134', "Level of logging to main admin log:");
|
||||
define('EC_ADLAN_A135', "Edit/delete");
|
||||
define('EC_ADLAN_A136', "All changes");
|
||||
define('EC_ADLAN_A137', "Can cover additions, updates to and deletions from the event list");
|
||||
define('EC_ADLAN_A138', "Event start/end times on 5-minute boundaries");
|
||||
define('EC_ADLAN_A139', "(Reduces number of entries in drop-down list)");
|
||||
define('EC_ADLAN_A140', "Show number of events for this month in Calendar Menu");
|
||||
define('EC_ADLAN_A141', "Maintenance");
|
||||
define('EC_ADLAN_A142', "Remove past events ending more than x months ago");
|
||||
define('EC_ADLAN_A143', "timed from beginning of current month");
|
||||
//define('EC_ADLAN_A144', "Event Calendar Maintenance");
|
||||
define('EC_ADLAN_A145', "Delete old entries");
|
||||
define('EC_ADLAN_A146', "Events older than ");
|
||||
define('EC_ADLAN_A147', " deleted");
|
||||
define('EC_ADLAN_A148', "Parameter error - nothing deleted");
|
||||
define('EC_ADLAN_A149', "No old events to delete, or delete of past events failed");
|
||||
define('EC_ADLAN_A150', "Confirm delete events older than ");
|
||||
|
||||
define('EC_ADLAN_A151', "e107 Web Site");
|
||||
define('EC_ADLAN_A152', "calendar@yoursite.com");
|
||||
define('EC_ADLAN_A153', "Log directory must be created manually - create a subdirectory 'log' off your event calendar plugin directory, with '666' access rights");
|
||||
define('EC_ADLAN_A154', "Could not change log directory permissions");
|
||||
define('EC_ADLAN_A155', "Log directory permissions may require manual update to 0666 or 0766, although depending on your server setup they may work");
|
||||
define('EC_ADLAN_A156', "Database upgraded");
|
||||
define('EC_ADLAN_A157', "this is the rss feed for the calendar entries");
|
||||
define('EC_ADLAN_A158', "Could not create log directory");
|
||||
|
||||
define('EC_ADLAN_A159', "Cache Management");
|
||||
define('EC_ADLAN_A160', "(Only relevant if cache enabled)");
|
||||
define('EC_ADLAN_A161', "Empty Calendar Cache");
|
||||
define('EC_ADLAN_A162', "Confirm Empty Cache");
|
||||
define('EC_ADLAN_A163', "Cache emptied");
|
||||
|
||||
define('EC_ADLAN_A164', "Update completed");
|
||||
define('EC_ADLAN_A165', "Calendar menu header links to:");
|
||||
define('EC_ADLAN_A166', "Date display in Event List:");
|
||||
define('EC_ADLAN_A167', "Date display in Forthcoming Events:");
|
||||
define('EC_ADLAN_A168', "Custom date uses the format in the box on the right");
|
||||
define('EC_ADLAN_A169', "Determines date display format for event listings");
|
||||
define('EC_ADLAN_A170', "Determines date display format for forthcoming events menu");
|
||||
define('EC_ADLAN_A171', "Flag recently added/updated events");
|
||||
define('EC_ADLAN_A172', "Value is time from update in hours; zero to disable, 'LV' to show from user's last visit");
|
||||
|
||||
define('EC_ADLAN_A173', "Subscriptions");
|
||||
define('EC_ADLAN_A174', "No subscription entries found");
|
||||
define('EC_ADLAN_A175', "UID");
|
||||
define('EC_ADLAN_A176', "User Name"); //FIXME Use Generic
|
||||
//define('EC_ADLAN_A177', "Category"); //FIXME Use Generic
|
||||
define('EC_ADLAN_A178', "Problems");
|
||||
define('EC_ADLAN_A179', "Actions");
|
||||
//define('EC_ADLAN_A180', "Deleted subscription record no "); //FIXME Use Generic
|
||||
//define('EC_ADLAN_A181', "Delete failed for record no "); //FIXME Use Generic
|
||||
define('EC_ADLAN_A182', "Total --NUM-- entries in database");
|
||||
define('EC_ADLAN_A183', "Calendar Menu mouseover shows event title");
|
||||
define('EC_ADLAN_A184', "may not work with all browsers");
|
||||
define('EC_ADLAN_A185', "Nothing");
|
||||
define('EC_ADLAN_A186', "Update settings\nand send test\nemail to self");
|
||||
define('EC_ADLAN_A187', "Test email sent - ");
|
||||
define('EC_ADLAN_A188', "Error sending test email - ");
|
||||
define('EC_ADLAN_A189', "If the message is left blank, the message from the 'Default' category will be used");
|
||||
define('EC_ADLAN_A190', "Default category - mailout messages are used if none defined for any other category");
|
||||
define('EC_ADLAN_A191', "Details of event for test email");
|
||||
define('EC_ADLAN_A192', "Test event location");
|
||||
define('EC_ADLAN_A193', "Allow users to display/print/PDF lists");
|
||||
define('EC_ADLAN_A194', "None");
|
||||
define('EC_ADLAN_A195', "Display/Print");
|
||||
define('EC_ADLAN_A196', "Display/Print/PDF");
|
||||
define('EC_ADLAN_A197', "No class membership");
|
||||
define('EC_ADLAN_A198', "Invalid User");
|
||||
define('EC_ADLAN_A199', "Show 'recent' icon");
|
||||
define('EC_ADLAN_A200', "Editor for events");
|
||||
define('EC_ADLAN_A201', 'BBCode (Standard)');
|
||||
define('EC_ADLAN_A202', 'BBCode with help');
|
||||
define('EC_ADLAN_A203', 'WYSIWYG');
|
||||
define('EC_ADLAN_A204', 'Calendar settings updated.');
|
||||
//define('EC_ADLAN_A205', 'Confirm Delete');
|
||||
define('EC_ADLAN_A206', 'This plugin is a fully featured event calendar with calendar menu.');
|
||||
define('EC_ADLAN_A207', 'Calendar Settings');
|
||||
define('EC_ADLAN_A208', 'Events can be added by:');
|
||||
define('EC_ADLAN_A209', 'Event List');
|
||||
define('EC_ADLAN_A210', 'Calendar');
|
||||
define('EC_ADLAN_A211', 'Calendar Administrator Class');
|
||||
define('EC_ADLAN_A212', 'Week starts with:');
|
||||
define('EC_ADLAN_A213', 'Show link to \'more information\' with events');
|
||||
define('EC_ADLAN_A214', 'Length of daynames (characters)');
|
||||
define('EC_ADLAN_A215', 'Date format in calendar header:');
|
||||
define('EC_ADLAN_A216', 'month/year');
|
||||
define('EC_ADLAN_A217', 'year/month');
|
||||
//define('EC_ADLAN_A218', 'Update Settings');
|
||||
define('EC_ADLAN_A219', 'Icon:');
|
||||
define('EC_ADLAN_A220', 'Choose');
|
||||
define('EC_ADLAN_A221', 'Event Calendar - add event ');
|
||||
define('EC_ADLAN_A222', 'Event Calendar - edit event ');
|
||||
define('EC_ADLAN_A223', 'Event Calendar - delete event ');
|
||||
define('EC_ADLAN_A224', 'Event Calendar - Bulk Delete');
|
||||
define('EC_ADLAN_A225', 'Event Calendar - multiple add ');
|
||||
define('EC_ADLAN_A226', '');
|
||||
define('EC_ADLAN_A227', '');
|
@ -1,63 +0,0 @@
|
||||
<?php
|
||||
/*
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2013 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
* These messages are for the event entry/editing functions on the 'user' pages of the event calendar. Also 'notify'
|
||||
*
|
||||
* $Source: /cvs_backup/e107_0.8/e107_plugins/calendar_menu/languages/English_class.php,v $
|
||||
* $Revision$
|
||||
* $Date$
|
||||
* $Author$
|
||||
*/
|
||||
|
||||
/**
|
||||
* e107 Event calendar plugin
|
||||
*
|
||||
* Language file - anything called up in ecal_class.php, notify and similar
|
||||
*
|
||||
* @package e107_plugins
|
||||
* @subpackage event_calendar
|
||||
* @version $Id$;
|
||||
*/
|
||||
|
||||
// Recurring events texts - the numeric part of each define is the internal value assigned
|
||||
define('EC_LAN_RECUR_00', 'no');
|
||||
define('EC_LAN_RECUR_01', 'annual');
|
||||
define('EC_LAN_RECUR_02', 'biannual');
|
||||
define('EC_LAN_RECUR_03', 'quarterly');
|
||||
define('EC_LAN_RECUR_04', 'monthly');
|
||||
define('EC_LAN_RECUR_05', 'four weekly');
|
||||
define('EC_LAN_RECUR_06', 'fortnightly');
|
||||
define('EC_LAN_RECUR_07', 'weekly');
|
||||
define('EC_LAN_RECUR_08', 'daily');
|
||||
define('EC_LAN_RECUR_100', 'Sunday in month');
|
||||
define('EC_LAN_RECUR_101', 'Monday in month');
|
||||
define('EC_LAN_RECUR_102', 'Tuesday in month');
|
||||
define('EC_LAN_RECUR_103', 'Wednesday in month');
|
||||
define('EC_LAN_RECUR_104', 'Thursday in month');
|
||||
define('EC_LAN_RECUR_105', 'Friday in month');
|
||||
define('EC_LAN_RECUR_106', 'Saturday in month');
|
||||
|
||||
define('EC_LAN_RECUR_1100', 'First');
|
||||
define('EC_LAN_RECUR_1200', 'Second');
|
||||
define('EC_LAN_RECUR_1300', 'Third');
|
||||
define('EC_LAN_RECUR_1400', 'Fourth');
|
||||
|
||||
|
||||
/*
|
||||
// Notify - moved to Global
|
||||
define('NT_LAN_EC_1', 'Event Calendar Events');
|
||||
define('NT_LAN_EC_2', 'Event Updated');
|
||||
define('NT_LAN_EC_3', 'Update by');
|
||||
define('NT_LAN_EC_4', 'IP Address');
|
||||
define('NT_LAN_EC_5', 'Message');
|
||||
define('NT_LAN_EC_6', 'Event Calendar - Event added');
|
||||
define('NT_LAN_EC_7', 'New event posted');
|
||||
define('NT_LAN_EC_8', 'Event Calendar - Event modified');*/
|
||||
|
||||
|
||||
?>
|
@ -1,18 +0,0 @@
|
||||
<?php
|
||||
|
||||
define("LAN_PLUGIN_CALENDAR_MENU_NAME", "Event Calendar");
|
||||
define("LAN_PLUGIN_CALENDAR_MENU_CONFIG", "Configure Event Calendar");
|
||||
define("LAN_PLUGIN_CALENDAR_MENU_DESCRIPTION", "This plugin is a fully featured event calendar with calendar menu.");
|
||||
define("LAN_PLUGIN_CALENDAR_MENU_LINK", "Calendar");
|
||||
|
||||
// Notify
|
||||
//define('NT_LAN_EC_1', 'Event Calendar Events');
|
||||
define('NT_LAN_EC_2', 'Event Updated');
|
||||
define('NT_LAN_EC_3', 'Update by');
|
||||
define('NT_LAN_EC_4', 'IP Address');
|
||||
define('NT_LAN_EC_5', 'Message');
|
||||
define('NT_LAN_EC_6', 'Event Calendar - Event added');
|
||||
define('NT_LAN_EC_7', 'New event posted');
|
||||
define('NT_LAN_EC_8', 'Event Calendar - Event modified');
|
||||
|
||||
?>
|
@ -1,42 +0,0 @@
|
||||
<?php
|
||||
/*
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2013 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
* These constants are used solely during install/uninstall - in some cases to set defaults into the database
|
||||
*
|
||||
* $Source: /cvs_backup/e107_0.8/e107_plugins/calendar_menu/languages/English_install.php,v $
|
||||
* $Revision$
|
||||
* $Date$
|
||||
* $Author$
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* e107 Event calendar plugin
|
||||
*
|
||||
* Language file - installation
|
||||
*
|
||||
* @package e107_plugins
|
||||
* @subpackage event_calendar
|
||||
* @version $Id$;
|
||||
*/
|
||||
|
||||
// Install
|
||||
define('EC_ADINST_LAN_01', "Forthcoming event:\n\n{EC_MAIL_CATEGORY}\n\n{EC_MAIL_TITLE} on {EC_MAIL_HEADING_DATE}{EC_MAIL_TIME_START}\n\n
|
||||
{EC_MAIL_DETAILS}\n\nFor further details: {EC_EVENT_LINK=Click Here}\n\nor {EC_MAIL_CONTACT} for further information.");
|
||||
define('EC_ADINST_LAN_02', "Calendar event imminent:\n\n{EC_MAIL_CATEGORY}\n\n{EC_MAIL_TITLE} on {EC_MAIL_HEADING_DATE}{EC_MAIL_TIME_START}\n\n{EC_MAIL_DETAILS}\n\n
|
||||
For further details see the calendar entry on the web site:\n{EC_MAIL_LINK=Click Here}\n\n {EC_MAIL_CONTACT} for further details");
|
||||
define('EC_ADINST_LAN_03', 'Default category - mailout messages are used if none defined for any other category');
|
||||
define('EC_ADINST_LAN_04', 'To activate please go to your menus screen and select the calendar_menu into one of your menu areas.');
|
||||
// define('EC_ADINST_LAN_05', 'Configure Event Calendar');
|
||||
define('EC_ADINST_LAN_06', 'Default category entered');
|
||||
define('EC_ADINST_LAN_07', 'Error adding default category');
|
||||
define('EC_ADINST_LAN_08', 'Default category already in DB');
|
||||
define('EC_ADINST_LAN_09', 'Preferences already converted for 2.0');
|
||||
define('EC_ADINST_LAN_10', 'Preferences converted ready for 2.0');
|
||||
define('EC_ADINST_LAN_11', 'Old preferences removed from core');
|
||||
|
@ -1,38 +0,0 @@
|
||||
<?php
|
||||
/*
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2013 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
* Event calendar - messages for admin log titles
|
||||
*
|
||||
* $Source: /cvs_backup/e107_0.8/e107_plugins/calendar_menu/languages/English_log.php,v $
|
||||
* $Revision$
|
||||
* $Date$
|
||||
* $Author$
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* e107 Event calendar plugin
|
||||
*
|
||||
* Language file - admin log titles
|
||||
*
|
||||
* @package e107_plugins
|
||||
* @subpackage event_calendar
|
||||
* @version $Id$;
|
||||
*/
|
||||
|
||||
define('LAN_AL_EC_ADM_01', 'Event Calendar - add event');
|
||||
define('LAN_AL_EC_ADM_02', 'Event Calendar - edit event');
|
||||
define('LAN_AL_EC_ADM_03', 'Event Calendar - delete event');
|
||||
define('LAN_AL_EC_ADM_04', 'Event Calendar - Bulk Delete');
|
||||
define('LAN_AL_EC_ADM_05', 'Event Calendar - Multiple Add');
|
||||
define('LAN_AL_EC_ADM_06', 'Event Calendar - Main options changed');
|
||||
define('LAN_AL_EC_ADM_07', 'Event Calendar - FE options changed');
|
||||
define('LAN_AL_EC_ADM_08', 'Event Calendar - Category added');
|
||||
define('LAN_AL_EC_ADM_09', 'Event Calendar - Category edited');
|
||||
define('LAN_AL_EC_ADM_10', 'Event Calendar - Category deleted');
|
||||
define('LAN_AL_EC_ADM_11', 'Event Calendar - Old events deleted');
|
@ -1,54 +0,0 @@
|
||||
<?php
|
||||
/*
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2013 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
* Event calendar - language file for mailout related routines
|
||||
*
|
||||
* $Source: /cvs_backup/e107_0.8/e107_plugins/calendar_menu/languages/English_mailer.php,v $
|
||||
* $Revision$
|
||||
* $Date$
|
||||
* $Author$
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* e107 Event calendar plugin
|
||||
*
|
||||
* Language file - mailer
|
||||
*
|
||||
* @package e107_plugins
|
||||
* @subpackage event_calendar
|
||||
* @version $Id$;
|
||||
*/
|
||||
|
||||
define('LAN_EC_MAIL_01', 'Event Calendar Subscribers');
|
||||
define('LAN_EC_MAIL_02', 'No categories defined, or database error');
|
||||
define('LAN_EC_MAIL_03', 'Category: '); //FIXME Use Generic
|
||||
define('LAN_EC_MAIL_04', 'Calendar Subscriptions');
|
||||
define('LAN_EC_MAIL_05', 'Process notifications of events on the calendar');
|
||||
define('LAN_EC_MAIL_06', 'Mail subscriptions run started at ');
|
||||
define('LAN_EC_MAIL_07', 'Event calendar mail --REF--');
|
||||
define('LAN_EC_MAIL_08', '');
|
||||
define('LAN_EC_MAIL_09', '');
|
||||
define('LAN_EC_MAIL_10', '');
|
||||
|
||||
|
||||
// Following messages used in mailout template
|
||||
define('LAN_EC_MAIL_100', 'Location:');
|
||||
define('LAN_EC_MAIL_101', 'Posted by:');
|
||||
define('LAN_EC_MAIL_102', 'Contact:');
|
||||
define('LAN_EC_MAIL_103', 'All day event:');
|
||||
define('LAN_EC_MAIL_104', 'When:');
|
||||
define('LAN_EC_MAIL_105', ' at ');
|
||||
define('LAN_EC_MAIL_106', 'Ends:');
|
||||
define('LAN_EC_MAIL_107', '');
|
||||
define('LAN_EC_MAIL_108', '');
|
||||
define('LAN_EC_MAIL_109', '');
|
||||
define('LAN_EC_MAIL_110', '');
|
||||
|
||||
|
||||
?>
|
@ -1,5 +0,0 @@
|
||||
<?php
|
||||
|
||||
define('CM_SCH_LAN_1', 'Calendar'); //FIXME Use English_global.php
|
||||
|
||||
?>
|
@ -1,108 +0,0 @@
|
||||
<?php
|
||||
/*
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2013 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
* Forthcoming events menu handler for event calendar
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* e107 Event calendar plugin
|
||||
*
|
||||
* Forthcoming events menu handler for event calendar
|
||||
*
|
||||
* @package e107_plugins
|
||||
* @subpackage event_calendar
|
||||
*/
|
||||
|
||||
if (!defined('e107_INIT')) { exit; }
|
||||
$e107 = e107::getInstance();
|
||||
|
||||
if (!$e107->isInstalled('calendar_menu')) return '';
|
||||
|
||||
|
||||
if (!isset($ecal_class) || !is_object($ecal_class))
|
||||
{
|
||||
require_once(e_PLUGIN.'calendar_menu/ecal_class.php');
|
||||
$ecal_class = new ecal_class;
|
||||
}
|
||||
|
||||
// See if the page is already in the cache
|
||||
$cache_tag = 'nq_event_cal_next';
|
||||
if($cacheData = $e107->ecache->retrieve($cache_tag, $ecal_class->max_cache_time))
|
||||
{
|
||||
echo $cacheData;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
include_lan(e_PLUGIN.'calendar_menu/languages/'.e_LANGUAGE.'.php');
|
||||
|
||||
require_once(e_PLUGIN.'calendar_menu/calendar_shortcodes.php');
|
||||
$calSc = new event_calendar_shortcodes();
|
||||
|
||||
if (is_readable(THEME.'calendar_template.php'))
|
||||
{ // Has to be require
|
||||
require(THEME.'calendar_template.php');
|
||||
}
|
||||
else
|
||||
{
|
||||
require(e_PLUGIN.'calendar_menu/calendar_template.php');
|
||||
}
|
||||
|
||||
|
||||
// Values defined through admin pages
|
||||
$menu_title = varset($this->ecal_class->pref['eventpost_menuheading'],EC_LAN_140);
|
||||
$days_ahead = varset($this->ecal_class->pref['eventpost_daysforward'],30); // Number of days ahead to go
|
||||
$show_count = varset($this->ecal_class->pref['eventpost_numevents'],3); // Number of events to show
|
||||
$show_recurring = varset($this->ecal_class->pref['eventpost_checkrecur'],1); // Zero to exclude recurring events
|
||||
$link_in_heading = varset($this->ecal_class->pref['eventpost_linkheader'],0); // Zero for simple heading, 1 to have clickable link
|
||||
|
||||
|
||||
$start_time = $ecal_class->cal_timedate;
|
||||
$end_time = $start_time + (86400 * $days_ahead) - 1;
|
||||
|
||||
|
||||
$cal_text = '';
|
||||
|
||||
$calSc->ecalClass = &$ecal_class; // Give shortcodes a pointer to calendar class
|
||||
|
||||
$ev_list = $ecal_class->get_n_events($show_count, $start_time, $end_time, varset($this->ecal_class->pref['eventpost_fe_set'],FALSE), $show_recurring,
|
||||
'event_id,event_start, event_thread, event_title, event_recurring, event_allday, event_category', 'event_cat_icon');
|
||||
|
||||
$cal_totev = count($ev_list);
|
||||
if ($cal_totev > 0)
|
||||
{
|
||||
foreach ($ev_list as $thisEvent)
|
||||
{
|
||||
$cal_totev --; // Can use this to modify inter-event gap
|
||||
$calSc->numEvents = $cal_totev; // Number of events to display
|
||||
$calSc->event = $thisEvent; // Give shortcodes the event data
|
||||
$cal_text .= $tp->parseTemplate($EVENT_CAL_FE_LINE,FALSE, $calSc);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($this->ecal_class->pref['eventpost_fe_hideifnone']) return '';
|
||||
$cal_text.= EC_LAN_141;
|
||||
}
|
||||
|
||||
$calendar_title = $tp->toHTML($menu_title,FALSE,'TITLE'); // Allows multi-language title, shortcodes
|
||||
if ($link_in_heading == 1)
|
||||
{
|
||||
$calendar_title = "<a class='forumlink' href='".e_PLUGIN_ABS."calendar_menu/event.php' >".$calendar_title."</a>";
|
||||
}
|
||||
|
||||
// Now handle the data, cache as well
|
||||
ob_start(); // Set up a new output buffer
|
||||
e107::getRender()->tablerender($calendar_title, $cal_text, 'next_event_menu');
|
||||
$cache_data = ob_get_flush(); // Get the page content, and display it
|
||||
$e107->ecache->set($cache_tag, $cache_data); // Save to cache
|
||||
|
||||
unset($ev_list);
|
||||
|
||||
?>
|
@ -1,65 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<e107Plugin name="Event Calendar" lan="LAN_PLUGIN_CALENDAR_MENU_NAME" version="3.70" date="2012-08-01" compatibility="2.0" installRequired="true" >
|
||||
<author name="e107 Inc." url="http://e107.org" />
|
||||
<summary>This plugin is a fully featured event calendar with calendar menu.</summary>
|
||||
<description lan="LAN_PLUGIN_CALENDAR_MENU_DESCRIPTION" >This plugin is a fully featured event calendar with calendar menu.</description>
|
||||
<readMe>readme.pdf</readMe>
|
||||
<category>content</category>
|
||||
<keywords>
|
||||
<word>calendar</word>
|
||||
<word>event</word>
|
||||
<word>day</word>
|
||||
<word>week</word>
|
||||
<word>month</word>
|
||||
<word>year</word>
|
||||
</keywords>
|
||||
<adminLinks>
|
||||
<link url='admin_config.php' description='LAN_PLUGIN_CALENDAR_MENU_CONFIG' icon='images/calendar_32.png' iconSmall='images/calendar_16.png' primary='true' >LAN_PLUGIN_CALENDAR_MENU_CONFIG</link>
|
||||
<link url='admin_config.php?cat' description='EC_ADLAN_A11' icon='images/calendar_32.png' iconSmall='images/calendar_16.png' >EC_ADLAN_A11</link>
|
||||
<link url='admin_config.php?forthcoming' description='EC_ADLAN_A100' icon='images/calendar_32.png' iconSmall='images/calendar_16.png' >EC_ADLAN_A100</link>
|
||||
<link url='admin_config.php?maint' description='EC_ADLAN_A141' icon='images/calendar_32.png' iconSmall='images/calendar_16.png' >EC_ADLAN_A141</link>
|
||||
<link url='admin_config.php?subs' description='EC_ADLAN_A173' icon='images/calendar_32.png' iconSmall='images/calendar_16.png' >EC_ADLAN_A173</link>
|
||||
</adminLinks>
|
||||
<siteLinks>
|
||||
<link url="{e_PLUGIN}calendar_menu/calendar.php" >LAN_PLUGIN_CALENDAR_MENU_LINK</link>
|
||||
</siteLinks>
|
||||
<pluginPrefs>
|
||||
<pref name="eventpost_admin">254</pref>
|
||||
<pref name="eventpost_super">254</pref>
|
||||
<pref name="eventpost_adminlog">0</pref>
|
||||
<pref name="eventpost_menulink">0</pref>
|
||||
<pref name="eventpost_showmouseover">0</pref>
|
||||
<pref name="eventpost_showeventcount">1</pref>
|
||||
<pref name="eventpost_forum">1</pref>
|
||||
<pref name="eventpost_recentshow">LV</pref>
|
||||
<pref name="eventpost_weekstart">sun</pref>
|
||||
<pref name="eventpost_lenday">1</pref>
|
||||
<pref name="eventpost_dateformat">1</pref>
|
||||
<pref name="eventpost_datedisplay">1</pref>
|
||||
<pref name="eventpost_fivemins">1</pref>
|
||||
<pref name="eventpost_editmode">1</pref>
|
||||
<pref name="eventpost_caltime">0</pref>
|
||||
<pref name="eventpost_timedisplay">0</pref>
|
||||
<pref name="eventpost_timecustom">%H%M</pref>
|
||||
<pref name="eventpost_dateevent">1</pref>
|
||||
<pref name="eventpost_eventdatecustom">%A %d %B %Y</pref>
|
||||
<pref name="eventpost_datenext">1</pref>
|
||||
<pref name="eventpost_nextdatecustom">%d %b</pref>
|
||||
<pref name="eventpost_printlists">1</pref>
|
||||
<pref name="eventpost_asubs">1</pref>
|
||||
<pref name="eventpost_mailfrom">e107 Web Site</pref>
|
||||
<pref name="eventpost_mailsubject">Calendar - \{EC_MAIL_TITLE\}</pref>
|
||||
<pref name="eventpost_mailaddress">calendar@yoursite.com</pref>
|
||||
<pref name="eventpost_emaillog">1</pref>
|
||||
<pref name="eventpost_menuheading">Forthcoming Events</pref>
|
||||
<pref name="eventpost_daysforward">30</pref>
|
||||
<pref name="eventpost_numevents">3</pref>
|
||||
<pref name="eventpost_checkrecur">1</pref>
|
||||
<pref name="eventpost_linkheader">0</pref>
|
||||
<pref name="eventpost_fe_set"></pref>
|
||||
<pref name="eventpost_fe_hideifnone">0</pref>
|
||||
<pref name="eventpost_fe_showrecent">0</pref>
|
||||
<pref name="eventpost_showcaticon">0</pref>
|
||||
<pref name="eventpost_namelink">0</pref>
|
||||
</pluginPrefs>
|
||||
</e107Plugin>
|
@ -1,51 +0,0 @@
|
||||
<?php
|
||||
/*
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2013 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
*
|
||||
*
|
||||
* $Source: /cvs_backup/e107_0.8/e107_plugins/calendar_menu/search/search_parser.php,v $
|
||||
* $Revision$
|
||||
* $Date$
|
||||
* $Author$
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* e107 Event calendar plugin
|
||||
*
|
||||
* Search parser
|
||||
*
|
||||
* @package e107_plugins
|
||||
* @subpackage event_calendar
|
||||
* @version $Id$;
|
||||
*/
|
||||
|
||||
if (!defined('e107_INIT')) { exit; }
|
||||
|
||||
$return_fields = 'event_id, event_start, event_title, event_location, event_details';
|
||||
$search_fields = array('event_title', 'event_location', 'event_details');
|
||||
$weights = array('1.2', '0.6', '0.6');
|
||||
$no_results = LAN_198;
|
||||
$where = '';
|
||||
$order = array('event_start' => DESC);
|
||||
|
||||
$ps = $sch -> parsesearch('event', $return_fields, $search_fields, $weights, 'search_events', $no_results, $where, $order);
|
||||
$text .= $ps['text'];
|
||||
$results = $ps['results'];
|
||||
|
||||
function search_events($row)
|
||||
{
|
||||
global $con;
|
||||
$res['link'] = e_PLUGIN."calendar_menu/event.php?".time().".event.".$row['event_id'];
|
||||
$res['title'] = $row['event_title'];
|
||||
$res['summary'] = $row['event_details'];
|
||||
$res['detail'] = $row['event_location']." | ".$con -> convert_date($row['event_start'], "long");
|
||||
return $res;
|
||||
}
|
||||
|
||||
?>
|
@ -1,121 +0,0 @@
|
||||
<?php
|
||||
/*
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2013 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
* Event calendar plugin - mail subscription to events notification
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* e107 Event calendar plugin
|
||||
*
|
||||
* Event calendar plugin - mail subscription to events notification
|
||||
*
|
||||
* @package e107_plugins
|
||||
* @subpackage event_calendar
|
||||
*/
|
||||
|
||||
if (!defined('e_SINGLE_ENTRY'))
|
||||
{
|
||||
require_once('../../class2.php');
|
||||
}
|
||||
$e107 = e107::getInstance();
|
||||
|
||||
if (!$e107->isInstalled('calendar_menu'))
|
||||
{
|
||||
header('Location: '.e_BASE.'index.php');
|
||||
exit();
|
||||
}
|
||||
|
||||
require_once(e_PLUGIN.'calendar_menu/ecal_class.php');
|
||||
|
||||
if (!is_object($ecal_class)) $ecal_class = new ecal_class;
|
||||
|
||||
include_lan(e_PLUGIN .'calendar_menu/languages/'.e_LANGUAGE.'.php');
|
||||
define('PAGE_NAME', EC_LAN_80);
|
||||
require_once(HEADERF);
|
||||
|
||||
|
||||
if ((USER) && (isset($ecal_class->pref['eventpost_asubs']) && ($ecal_class->pref['eventpost_asubs'] == '1')))
|
||||
{
|
||||
$cal_db = new db; // Probably best to keep this
|
||||
|
||||
if (isset($_POST['upsubs']))
|
||||
{
|
||||
$cal_cats = e107::getParser()->toDB($_POST['event_list']); // IDs of allowed categories
|
||||
$cal_subs = e107::getParser()->toDB($_POST['event_subd']); // Checkbox results
|
||||
$cal_db->db_Delete('event_subs', "event_userid='" . USERID . "'"); // Delete all for this user to start
|
||||
foreach($cal_cats as $cal_row)
|
||||
{ // Now add in a subscription for each allowed category
|
||||
if ($cal_subs[$cal_row])
|
||||
{
|
||||
$cal_inargs = "0,'" . USERID . "','" . $cal_row . "'";
|
||||
$cal_db->db_Insert('event_subs', $cal_inargs);
|
||||
}
|
||||
// print $cal_row . $cal_subs[$cal_row] . "<br />";
|
||||
}
|
||||
$caltext = "<table class='table fborder' width='97%'>
|
||||
<tr><td class='fcaption' >" . EC_LAN_130 . "</td></tr>
|
||||
<tr><td class='forumheader3' ><a href='calendar.php'>" . EC_LAN_131 . "</a></tr>
|
||||
<tr><td class='fcaption' > </td></tr></table>";
|
||||
}
|
||||
else
|
||||
{
|
||||
$caltext = "<form id='calsubs' action='" . e_SELF . "' method='post' >
|
||||
<table class='table fborder' width='97%'>
|
||||
<tr><td class='fcaption' colspan='3'>" . EC_LAN_125 . "</td></tr>
|
||||
<tr><td class='forumheader2' >" . EC_LAN_126 . "</td><td class='forumheader2' >" . EC_LAN_127 . "</td><td class='forumheader2' >" . EC_LAN_136 . "</td></tr>";
|
||||
|
||||
// Get list of currently subscribed
|
||||
$cal_db->db_Select('event_subs', 'event_cat', "where event_userid='" . USERID . "'", "nowhere");
|
||||
while ($cal_s = $cal_db->db_Fetch())
|
||||
{
|
||||
extract($cal_s);
|
||||
$cal_array[] = $event_cat;
|
||||
} // while
|
||||
|
||||
// Get list of categories that have subscriptions and are visible to this member
|
||||
$cal_args = "select * from #event_cat
|
||||
where event_cat_subs>0 and (find_in_set(event_cat_class,'".USERCLASS_LIST."') OR find_in_set(event_cat_force_class,'".USERCLASS_LIST."'))";
|
||||
if ($cal_db->db_Select_gen($cal_args))
|
||||
{
|
||||
// echo $cal_args."<br />";
|
||||
while ($cal_row = $cal_db->db_Fetch())
|
||||
{
|
||||
extract($cal_row);
|
||||
$caltext .= "<tr><td class='forumheader3' style='width:10%;'>";
|
||||
if (check_class($event_cat_force_class))
|
||||
{
|
||||
$caltext .= EC_LAN_126;
|
||||
}
|
||||
else
|
||||
{
|
||||
$caltext .= "<input type='hidden' name='event_list[]' value='" . $event_cat_id . "' />
|
||||
<input type='checkbox' class='tbox' value='1' name='event_subd[$event_cat_id]' " . (in_array($event_cat_id, $cal_array)?"checked='checked' ":"") . " /> </td>";
|
||||
}
|
||||
$caltext .= "<td class='forumheader3'>{$event_cat_name}</td><td class='forumheader3'>{$event_cat_description}</td></tr>";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$caltext .= "<tr><td class='forumheader3' colspan='3'>" . EC_LAN_128 . "</td></tr>";
|
||||
}
|
||||
$caltext .= "<tr><td class='forumheader3' colspan='3'><input class='tbox' type='submit' value='" . EC_LAN_129 . "' name='upsubs' /></td></tr>";
|
||||
$caltext .= "</table></form>";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (isset($ecal_class->pref['eventpost_asubs']) && ($ecal_class->pref['eventpost_asubs'] == '1'))
|
||||
$caltext = EC_LAN_142; // Register or log in
|
||||
else
|
||||
$caltext = EC_LAN_143; // No facility
|
||||
}
|
||||
e107::getRender()->tablerender(EC_LAN_124, $caltext);
|
||||
require_once(FOOTERF);
|
||||
|
||||
?>
|
@ -1,332 +0,0 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : 2dbarcodes.php
|
||||
// Version : 1.0.014
|
||||
// Begin : 2009-04-07
|
||||
// Last Update : 2012-04-30
|
||||
// Author : Nicola Asuni - Tecnick.com LTD - Manor Coach House, Church Hill, Aldershot, Hants, GU12 4RQ, UK - www.tecnick.com - info@tecnick.com
|
||||
// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
|
||||
// -------------------------------------------------------------------
|
||||
// Copyright (C) 2009-2012 Nicola Asuni - Tecnick.com LTD
|
||||
//
|
||||
// This file is part of TCPDF software library.
|
||||
//
|
||||
// TCPDF is free software: you can redistribute it and/or modify it
|
||||
// under the terms of the GNU Lesser General Public License as
|
||||
// published by the Free Software Foundation, either version 3 of the
|
||||
// License, or (at your option) any later version.
|
||||
//
|
||||
// TCPDF is distributed in the hope that it will be useful, but
|
||||
// WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
// See the GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public License
|
||||
// along with TCPDF. If not, see <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
// See LICENSE.TXT file for more information.
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
// Description : PHP class to creates array representations for
|
||||
// 2D barcodes to be used with TCPDF.
|
||||
//
|
||||
//============================================================+
|
||||
|
||||
/**
|
||||
* @file
|
||||
* PHP class to creates array representations for 2D barcodes to be used with TCPDF.
|
||||
* @package com.tecnick.tcpdf
|
||||
* @author Nicola Asuni
|
||||
* @version 1.0.014
|
||||
*/
|
||||
|
||||
/**
|
||||
* @class TCPDF2DBarcode
|
||||
* PHP class to creates array representations for 2D barcodes to be used with TCPDF (http://www.tcpdf.org).
|
||||
* @package com.tecnick.tcpdf
|
||||
* @version 1.0.014
|
||||
* @author Nicola Asuni
|
||||
*/
|
||||
class TCPDF2DBarcode {
|
||||
|
||||
/**
|
||||
* Array representation of barcode.
|
||||
* @protected
|
||||
*/
|
||||
protected $barcode_array = false;
|
||||
|
||||
/**
|
||||
* This is the class constructor.
|
||||
* Return an array representations for 2D barcodes:<ul>
|
||||
* <li>$arrcode['code'] code to be printed on text label</li>
|
||||
* <li>$arrcode['num_rows'] required number of rows</li>
|
||||
* <li>$arrcode['num_cols'] required number of columns</li>
|
||||
* <li>$arrcode['bcode'][$r][$c] value of the cell is $r row and $c column (0 = transparent, 1 = black)</li></ul>
|
||||
* @param $code (string) code to print
|
||||
* @param $type (string) type of barcode: <ul><li>DATAMATRIX : Datamatrix (ISO/IEC 16022)</li><li>PDF417 : PDF417 (ISO/IEC 15438:2006)</li><li>PDF417,a,e,t,s,f,o0,o1,o2,o3,o4,o5,o6 : PDF417 with parameters: a = aspect ratio (width/height); e = error correction level (0-8); t = total number of macro segments; s = macro segment index (0-99998); f = file ID; o0 = File Name (text); o1 = Segment Count (numeric); o2 = Time Stamp (numeric); o3 = Sender (text); o4 = Addressee (text); o5 = File Size (numeric); o6 = Checksum (numeric). NOTES: Parameters t, s and f are required for a Macro Control Block, all other parametrs are optional. To use a comma character ',' on text options, replace it with the character 255: "\xff".</li><li>QRCODE : QRcode Low error correction</li><li>QRCODE,L : QRcode Low error correction</li><li>QRCODE,M : QRcode Medium error correction</li><li>QRCODE,Q : QRcode Better error correction</li><li>QRCODE,H : QR-CODE Best error correction</li><li>RAW: raw mode - comma-separad list of array rows</li><li>RAW2: raw mode - array rows are surrounded by square parenthesis.</li><li>TEST : Test matrix</li></ul>
|
||||
*/
|
||||
public function __construct($code, $type) {
|
||||
$this->setBarcode($code, $type);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return an array representations of barcode.
|
||||
* @return array
|
||||
*/
|
||||
public function getBarcodeArray() {
|
||||
return $this->barcode_array;
|
||||
}
|
||||
|
||||
/**
|
||||
* Send barcode as SVG image object to the standard output.
|
||||
* @param $w (int) Width of a single rectangle element in user units.
|
||||
* @param $h (int) Height of a single rectangle element in user units.
|
||||
* @param $color (string) Foreground color (in SVG format) for bar elements (background is transparent).
|
||||
* @public
|
||||
*/
|
||||
public function getBarcodeSVG($w=3, $h=3, $color='black') {
|
||||
// send headers
|
||||
$code = $this->getBarcodeSVGcode($w, $h, $color);
|
||||
header('Content-Type: application/svg+xml');
|
||||
header('Cache-Control: public, must-revalidate, max-age=0'); // HTTP/1.1
|
||||
header('Pragma: public');
|
||||
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); // Date in the past
|
||||
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
|
||||
header('Content-Disposition: inline; filename="'.md5($code).'.svg";');
|
||||
//header('Content-Length: '.strlen($code));
|
||||
echo $code;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a SVG string representation of barcode.
|
||||
* @param $w (int) Width of a single rectangle element in user units.
|
||||
* @param $h (int) Height of a single rectangle element in user units.
|
||||
* @param $color (string) Foreground color (in SVG format) for bar elements (background is transparent).
|
||||
* @return string SVG code.
|
||||
* @public
|
||||
*/
|
||||
public function getBarcodeSVGcode($w=3, $h=3, $color='black') {
|
||||
// replace table for special characters
|
||||
$repstr = array("\0" => '', '&' => '&', '<' => '<', '>' => '>');
|
||||
$svg = '<'.'?'.'xml version="1.0" standalone="no"'.'?'.'>'."\n";
|
||||
$svg .= '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">'."\n";
|
||||
$svg .= '<svg width="'.round(($this->barcode_array['num_cols'] * $w), 3).'" height="'.round(($this->barcode_array['num_rows'] * $h), 3).'" version="1.1" xmlns="http://www.w3.org/2000/svg">'."\n";
|
||||
$svg .= "\t".'<desc>'.strtr($this->barcode_array['code'], $repstr).'</desc>'."\n";
|
||||
$svg .= "\t".'<g id="elements" fill="'.$color.'" stroke="none">'."\n";
|
||||
// print barcode elements
|
||||
$y = 0;
|
||||
// for each row
|
||||
for ($r = 0; $r < $this->barcode_array['num_rows']; ++$r) {
|
||||
$x = 0;
|
||||
// for each column
|
||||
for ($c = 0; $c < $this->barcode_array['num_cols']; ++$c) {
|
||||
if ($this->barcode_array['bcode'][$r][$c] == 1) {
|
||||
// draw a single barcode cell
|
||||
$svg .= "\t\t".'<rect x="'.$x.'" y="'.$y.'" width="'.$w.'" height="'.$h.'" />'."\n";
|
||||
}
|
||||
$x += $w;
|
||||
}
|
||||
$y += $h;
|
||||
}
|
||||
$svg .= "\t".'</g>'."\n";
|
||||
$svg .= '</svg>'."\n";
|
||||
return $svg;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return an HTML representation of barcode.
|
||||
* @param $w (int) Width of a single rectangle element in pixels.
|
||||
* @param $h (int) Height of a single rectangle element in pixels.
|
||||
* @param $color (string) Foreground color for bar elements (background is transparent).
|
||||
* @return string HTML code.
|
||||
* @public
|
||||
*/
|
||||
public function getBarcodeHTML($w=10, $h=10, $color='black') {
|
||||
$html = '<div style="font-size:0;position:relative;width:'.($w * $this->barcode_array['num_cols']).'px;height:'.($h * $this->barcode_array['num_rows']).'px;">'."\n";
|
||||
// print barcode elements
|
||||
$y = 0;
|
||||
// for each row
|
||||
for ($r = 0; $r < $this->barcode_array['num_rows']; ++$r) {
|
||||
$x = 0;
|
||||
// for each column
|
||||
for ($c = 0; $c < $this->barcode_array['num_cols']; ++$c) {
|
||||
if ($this->barcode_array['bcode'][$r][$c] == 1) {
|
||||
// draw a single barcode cell
|
||||
$html .= '<div style="background-color:'.$color.';width:'.$w.'px;height:'.$h.'px;position:absolute;left:'.$x.'px;top:'.$y.'px;"> </div>'."\n";
|
||||
}
|
||||
$x += $w;
|
||||
}
|
||||
$y += $h;
|
||||
}
|
||||
$html .= '</div>'."\n";
|
||||
return $html;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a PNG image representation of barcode (requires GD or Imagick library).
|
||||
* @param $w (int) Width of a single rectangle element in pixels.
|
||||
* @param $h (int) Height of a single rectangle element in pixels.
|
||||
* @param $color (array) RGB (0-255) foreground color for bar elements (background is transparent).
|
||||
* @return image or false in case of error.
|
||||
* @public
|
||||
*/
|
||||
public function getBarcodePNG($w=3, $h=3, $color=array(0,0,0)) {
|
||||
// calculate image size
|
||||
$width = ($this->barcode_array['num_cols'] * $w);
|
||||
$height = ($this->barcode_array['num_rows'] * $h);
|
||||
if (function_exists('imagecreate')) {
|
||||
// GD library
|
||||
$imagick = false;
|
||||
$png = imagecreate($width, $height);
|
||||
$bgcol = imagecolorallocate($png, 255, 255, 255);
|
||||
imagecolortransparent($png, $bgcol);
|
||||
$fgcol = imagecolorallocate($png, $color[0], $color[1], $color[2]);
|
||||
} elseif (extension_loaded('imagick')) {
|
||||
$imagick = true;
|
||||
$bgcol = new imagickpixel('rgb(255,255,255');
|
||||
$fgcol = new imagickpixel('rgb('.$color[0].','.$color[1].','.$color[2].')');
|
||||
$png = new Imagick();
|
||||
$png->newImage($width, $height, 'none', 'png');
|
||||
$bar = new imagickdraw();
|
||||
$bar->setfillcolor($fgcol);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
// print barcode elements
|
||||
$y = 0;
|
||||
// for each row
|
||||
for ($r = 0; $r < $this->barcode_array['num_rows']; ++$r) {
|
||||
$x = 0;
|
||||
// for each column
|
||||
for ($c = 0; $c < $this->barcode_array['num_cols']; ++$c) {
|
||||
if ($this->barcode_array['bcode'][$r][$c] == 1) {
|
||||
// draw a single barcode cell
|
||||
if ($imagick) {
|
||||
$bar->rectangle($x, $y, ($x + $w - 1), ($y + $h - 1));
|
||||
} else {
|
||||
imagefilledrectangle($png, $x, $y, ($x + $w - 1), ($y + $h - 1), $fgcol);
|
||||
}
|
||||
}
|
||||
$x += $w;
|
||||
}
|
||||
$y += $h;
|
||||
}
|
||||
// send headers
|
||||
header('Content-Type: image/png');
|
||||
header('Cache-Control: public, must-revalidate, max-age=0'); // HTTP/1.1
|
||||
header('Pragma: public');
|
||||
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); // Date in the past
|
||||
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
|
||||
if ($imagick) {
|
||||
$png->drawimage($bar);
|
||||
echo $png;
|
||||
} else {
|
||||
imagepng($png);
|
||||
imagedestroy($png);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the barcode.
|
||||
* @param $code (string) code to print
|
||||
* @param $type (string) type of barcode: <ul><li>DATAMATRIX : Datamatrix (ISO/IEC 16022)</li><li>PDF417 : PDF417 (ISO/IEC 15438:2006)</li><li>PDF417,a,e,t,s,f,o0,o1,o2,o3,o4,o5,o6 : PDF417 with parameters: a = aspect ratio (width/height); e = error correction level (0-8); t = total number of macro segments; s = macro segment index (0-99998); f = file ID; o0 = File Name (text); o1 = Segment Count (numeric); o2 = Time Stamp (numeric); o3 = Sender (text); o4 = Addressee (text); o5 = File Size (numeric); o6 = Checksum (numeric). NOTES: Parameters t, s and f are required for a Macro Control Block, all other parametrs are optional. To use a comma character ',' on text options, replace it with the character 255: "\xff".</li><li>QRCODE : QRcode Low error correction</li><li>QRCODE,L : QRcode Low error correction</li><li>QRCODE,M : QRcode Medium error correction</li><li>QRCODE,Q : QRcode Better error correction</li><li>QRCODE,H : QR-CODE Best error correction</li><li>RAW: raw mode - comma-separad list of array rows</li><li>RAW2: raw mode - array rows are surrounded by square parenthesis.</li><li>TEST : Test matrix</li></ul>
|
||||
* @return array
|
||||
*/
|
||||
public function setBarcode($code, $type) {
|
||||
$mode = explode(',', $type);
|
||||
$qrtype = strtoupper($mode[0]);
|
||||
switch ($qrtype) {
|
||||
case 'DATAMATRIX': { // DATAMATRIX (ISO/IEC 16022)
|
||||
require_once(dirname(__FILE__).'/datamatrix.php');
|
||||
$qrcode = new Datamatrix($code);
|
||||
$this->barcode_array = $qrcode->getBarcodeArray();
|
||||
$this->barcode_array['code'] = $code;
|
||||
break;
|
||||
}
|
||||
case 'PDF417': { // PDF417 (ISO/IEC 15438:2006)
|
||||
require_once(dirname(__FILE__).'/pdf417.php');
|
||||
if (!isset($mode[1]) OR ($mode[1] === '')) {
|
||||
$aspectratio = 2; // default aspect ratio (width / height)
|
||||
} else {
|
||||
$aspectratio = floatval($mode[1]);
|
||||
}
|
||||
if (!isset($mode[2]) OR ($mode[2] === '')) {
|
||||
$ecl = -1; // default error correction level (auto)
|
||||
} else {
|
||||
$ecl = intval($mode[2]);
|
||||
}
|
||||
// set macro block
|
||||
$macro = array();
|
||||
if (isset($mode[3]) AND ($mode[3] !== '') AND isset($mode[4]) AND ($mode[4] !== '') AND isset($mode[5]) AND ($mode[5] !== '')) {
|
||||
$macro['segment_total'] = intval($mode[3]);
|
||||
$macro['segment_index'] = intval($mode[4]);
|
||||
$macro['file_id'] = strtr($mode[5], "\xff", ',');
|
||||
for ($i = 0; $i < 7; ++$i) {
|
||||
$o = $i + 6;
|
||||
if (isset($mode[$o]) AND ($mode[$o] !== '')) {
|
||||
// add option
|
||||
$macro['option_'.$i] = strtr($mode[$o], "\xff", ',');
|
||||
}
|
||||
}
|
||||
}
|
||||
$qrcode = new PDF417($code, $ecl, $aspectratio, $macro);
|
||||
$this->barcode_array = $qrcode->getBarcodeArray();
|
||||
$this->barcode_array['code'] = $code;
|
||||
break;
|
||||
}
|
||||
case 'QRCODE': { // QR-CODE
|
||||
require_once(dirname(__FILE__).'/qrcode.php');
|
||||
if (!isset($mode[1]) OR (!in_array($mode[1],array('L','M','Q','H')))) {
|
||||
$mode[1] = 'L'; // Ddefault: Low error correction
|
||||
}
|
||||
$qrcode = new QRcode($code, strtoupper($mode[1]));
|
||||
$this->barcode_array = $qrcode->getBarcodeArray();
|
||||
$this->barcode_array['code'] = $code;
|
||||
break;
|
||||
}
|
||||
case 'RAW':
|
||||
case 'RAW2': { // RAW MODE
|
||||
// remove spaces
|
||||
$code = preg_replace('/[\s]*/si', '', $code);
|
||||
if (strlen($code) < 3) {
|
||||
break;
|
||||
}
|
||||
if ($qrtype == 'RAW') {
|
||||
// comma-separated rows
|
||||
$rows = explode(',', $code);
|
||||
} else { // RAW2
|
||||
// rows enclosed in square parentheses
|
||||
$code = substr($code, 1, -1);
|
||||
$rows = explode('][', $code);
|
||||
}
|
||||
$this->barcode_array['num_rows'] = count($rows);
|
||||
$this->barcode_array['num_cols'] = strlen($rows[0]);
|
||||
$this->barcode_array['bcode'] = array();
|
||||
foreach ($rows as $r) {
|
||||
$this->barcode_array['bcode'][] = str_split($r, 1);
|
||||
}
|
||||
$this->barcode_array['code'] = $code;
|
||||
break;
|
||||
}
|
||||
case 'TEST': { // TEST MODE
|
||||
$this->barcode_array['num_rows'] = 5;
|
||||
$this->barcode_array['num_cols'] = 15;
|
||||
$this->barcode_array['bcode'] = array(
|
||||
array(1,1,1,0,1,1,1,0,1,1,1,0,1,1,1),
|
||||
array(0,1,0,0,1,0,0,0,1,0,0,0,0,1,0),
|
||||
array(0,1,0,0,1,1,0,0,1,1,1,0,0,1,0),
|
||||
array(0,1,0,0,1,0,0,0,0,0,1,0,0,1,0),
|
||||
array(0,1,0,0,1,1,1,0,1,1,1,0,0,1,0));
|
||||
$this->barcode_array['code'] = $code;
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
$this->barcode_array = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
} // end of class
|
||||
|
||||
//============================================================+
|
||||
// END OF FILE
|
||||
//============================================================+
|
@ -1,858 +0,0 @@
|
||||
**********************************************************************
|
||||
* TCPDF LICENSE
|
||||
**********************************************************************
|
||||
|
||||
TCPDF is free software: you can redistribute it and/or modify it
|
||||
under the terms of the GNU Lesser General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
**********************************************************************
|
||||
**********************************************************************
|
||||
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
|
||||
This version of the GNU Lesser General Public License incorporates
|
||||
the terms and conditions of version 3 of the GNU General Public
|
||||
License, supplemented by the additional permissions listed below.
|
||||
|
||||
0. Additional Definitions.
|
||||
|
||||
As used herein, "this License" refers to version 3 of the GNU Lesser
|
||||
General Public License, and the "GNU GPL" refers to version 3 of the GNU
|
||||
General Public License.
|
||||
|
||||
"The Library" refers to a covered work governed by this License,
|
||||
other than an Application or a Combined Work as defined below.
|
||||
|
||||
An "Application" is any work that makes use of an interface provided
|
||||
by the Library, but which is not otherwise based on the Library.
|
||||
Defining a subclass of a class defined by the Library is deemed a mode
|
||||
of using an interface provided by the Library.
|
||||
|
||||
A "Combined Work" is a work produced by combining or linking an
|
||||
Application with the Library. The particular version of the Library
|
||||
with which the Combined Work was made is also called the "Linked
|
||||
Version".
|
||||
|
||||
The "Minimal Corresponding Source" for a Combined Work means the
|
||||
Corresponding Source for the Combined Work, excluding any source code
|
||||
for portions of the Combined Work that, considered in isolation, are
|
||||
based on the Application, and not on the Linked Version.
|
||||
|
||||
The "Corresponding Application Code" for a Combined Work means the
|
||||
object code and/or source code for the Application, including any data
|
||||
and utility programs needed for reproducing the Combined Work from the
|
||||
Application, but excluding the System Libraries of the Combined Work.
|
||||
|
||||
1. Exception to Section 3 of the GNU GPL.
|
||||
|
||||
You may convey a covered work under sections 3 and 4 of this License
|
||||
without being bound by section 3 of the GNU GPL.
|
||||
|
||||
2. Conveying Modified Versions.
|
||||
|
||||
If you modify a copy of the Library, and, in your modifications, a
|
||||
facility refers to a function or data to be supplied by an Application
|
||||
that uses the facility (other than as an argument passed when the
|
||||
facility is invoked), then you may convey a copy of the modified
|
||||
version:
|
||||
|
||||
a) under this License, provided that you make a good faith effort to
|
||||
ensure that, in the event an Application does not supply the
|
||||
function or data, the facility still operates, and performs
|
||||
whatever part of its purpose remains meaningful, or
|
||||
|
||||
b) under the GNU GPL, with none of the additional permissions of
|
||||
this License applicable to that copy.
|
||||
|
||||
3. Object Code Incorporating Material from Library Header Files.
|
||||
|
||||
The object code form of an Application may incorporate material from
|
||||
a header file that is part of the Library. You may convey such object
|
||||
code under terms of your choice, provided that, if the incorporated
|
||||
material is not limited to numerical parameters, data structure
|
||||
layouts and accessors, or small macros, inline functions and templates
|
||||
(ten or fewer lines in length), you do both of the following:
|
||||
|
||||
a) Give prominent notice with each copy of the object code that the
|
||||
Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
|
||||
b) Accompany the object code with a copy of the GNU GPL and this license
|
||||
document.
|
||||
|
||||
4. Combined Works.
|
||||
|
||||
You may convey a Combined Work under terms of your choice that,
|
||||
taken together, effectively do not restrict modification of the
|
||||
portions of the Library contained in the Combined Work and reverse
|
||||
engineering for debugging such modifications, if you also do each of
|
||||
the following:
|
||||
|
||||
a) Give prominent notice with each copy of the Combined Work that
|
||||
the Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
|
||||
b) Accompany the Combined Work with a copy of the GNU GPL and this license
|
||||
document.
|
||||
|
||||
c) For a Combined Work that displays copyright notices during
|
||||
execution, include the copyright notice for the Library among
|
||||
these notices, as well as a reference directing the user to the
|
||||
copies of the GNU GPL and this license document.
|
||||
|
||||
d) Do one of the following:
|
||||
|
||||
0) Convey the Minimal Corresponding Source under the terms of this
|
||||
License, and the Corresponding Application Code in a form
|
||||
suitable for, and under terms that permit, the user to
|
||||
recombine or relink the Application with a modified version of
|
||||
the Linked Version to produce a modified Combined Work, in the
|
||||
manner specified by section 6 of the GNU GPL for conveying
|
||||
Corresponding Source.
|
||||
|
||||
1) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (a) uses at run time
|
||||
a copy of the Library already present on the user's computer
|
||||
system, and (b) will operate properly with a modified version
|
||||
of the Library that is interface-compatible with the Linked
|
||||
Version.
|
||||
|
||||
e) Provide Installation Information, but only if you would otherwise
|
||||
be required to provide such information under section 6 of the
|
||||
GNU GPL, and only to the extent that such information is
|
||||
necessary to install and execute a modified version of the
|
||||
Combined Work produced by recombining or relinking the
|
||||
Application with a modified version of the Linked Version. (If
|
||||
you use option 4d0, the Installation Information must accompany
|
||||
the Minimal Corresponding Source and Corresponding Application
|
||||
Code. If you use option 4d1, you must provide the Installation
|
||||
Information in the manner specified by section 6 of the GNU GPL
|
||||
for conveying Corresponding Source.)
|
||||
|
||||
5. Combined Libraries.
|
||||
|
||||
You may place library facilities that are a work based on the
|
||||
Library side by side in a single library together with other library
|
||||
facilities that are not Applications and are not covered by this
|
||||
License, and convey such a combined library under terms of your
|
||||
choice, if you do both of the following:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work based
|
||||
on the Library, uncombined with any other library facilities,
|
||||
conveyed under the terms of this License.
|
||||
|
||||
b) Give prominent notice with the combined library that part of it
|
||||
is a work based on the Library, and explaining where to find the
|
||||
accompanying uncombined form of the same work.
|
||||
|
||||
6. Revised Versions of the GNU Lesser General Public License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions
|
||||
of the GNU Lesser General Public License from time to time. Such new
|
||||
versions will be similar in spirit to the present version, but may
|
||||
differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Library as you received it specifies that a certain numbered version
|
||||
of the GNU Lesser General Public License "or any later version"
|
||||
applies to it, you have the option of following the terms and
|
||||
conditions either of that published version or of any later version
|
||||
published by the Free Software Foundation. If the Library as you
|
||||
received it does not specify a version number of the GNU Lesser
|
||||
General Public License, you may choose any version of the GNU Lesser
|
||||
General Public License ever published by the Free Software Foundation.
|
||||
|
||||
If the Library as you received it specifies that a proxy can decide
|
||||
whether future versions of the GNU Lesser General Public License shall
|
||||
apply, that proxy's public statement of acceptance of any version is
|
||||
permanent authorization for you to choose that version for the
|
||||
Library.
|
||||
|
||||
**********************************************************************
|
||||
**********************************************************************
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The GNU General Public License is a free, copyleft license for
|
||||
software and other kinds of works.
|
||||
|
||||
The licenses for most software and other practical works are designed
|
||||
to take away your freedom to share and change the works. By contrast,
|
||||
the GNU General Public License is intended to guarantee your freedom to
|
||||
share and change all versions of a program--to make sure it remains free
|
||||
software for all its users. We, the Free Software Foundation, use the
|
||||
GNU General Public License for most of our software; it applies also to
|
||||
any other work released this way by its authors. You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
them if you wish), that you receive source code or can get it if you
|
||||
want it, that you can change the software or use pieces of it in new
|
||||
free programs, and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to prevent others from denying you
|
||||
these rights or asking you to surrender the rights. Therefore, you have
|
||||
certain responsibilities if you distribute copies of the software, or if
|
||||
you modify it: responsibilities to respect the freedom of others.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must pass on to the recipients the same
|
||||
freedoms that you received. You must make sure that they, too, receive
|
||||
or can get the source code. And you must show them these terms so they
|
||||
know their rights.
|
||||
|
||||
Developers that use the GNU GPL protect your rights with two steps:
|
||||
(1) assert copyright on the software, and (2) offer you this License
|
||||
giving you legal permission to copy, distribute and/or modify it.
|
||||
|
||||
For the developers' and authors' protection, the GPL clearly explains
|
||||
that there is no warranty for this free software. For both users' and
|
||||
authors' sake, the GPL requires that modified versions be marked as
|
||||
changed, so that their problems will not be attributed erroneously to
|
||||
authors of previous versions.
|
||||
|
||||
Some devices are designed to deny users access to install or run
|
||||
modified versions of the software inside them, although the manufacturer
|
||||
can do so. This is fundamentally incompatible with the aim of
|
||||
protecting users' freedom to change the software. The systematic
|
||||
pattern of such abuse occurs in the area of products for individuals to
|
||||
use, which is precisely where it is most unacceptable. Therefore, we
|
||||
have designed this version of the GPL to prohibit the practice for those
|
||||
products. If such problems arise substantially in other domains, we
|
||||
stand ready to extend this provision to those domains in future versions
|
||||
of the GPL, as needed to protect the freedom of users.
|
||||
|
||||
Finally, every program is threatened constantly by software patents.
|
||||
States should not allow patents to restrict development and use of
|
||||
software on general-purpose computers, but in those that do, we wish to
|
||||
avoid the special danger that patents applied to a free program could
|
||||
make it effectively proprietary. To prevent this, the GPL assures that
|
||||
patents cannot be used to render the program non-free.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
TERMS AND CONDITIONS
|
||||
|
||||
0. Definitions.
|
||||
|
||||
"This License" refers to version 3 of the GNU General Public License.
|
||||
|
||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||
works, such as semiconductor masks.
|
||||
|
||||
"The Program" refers to any copyrightable work licensed under this
|
||||
License. Each licensee is addressed as "you". "Licensees" and
|
||||
"recipients" may be individuals or organizations.
|
||||
|
||||
To "modify" a work means to copy from or adapt all or part of the work
|
||||
in a fashion requiring copyright permission, other than the making of an
|
||||
exact copy. The resulting work is called a "modified version" of the
|
||||
earlier work or a work "based on" the earlier work.
|
||||
|
||||
A "covered work" means either the unmodified Program or a work based
|
||||
on the Program.
|
||||
|
||||
To "propagate" a work means to do anything with it that, without
|
||||
permission, would make you directly or secondarily liable for
|
||||
infringement under applicable copyright law, except executing it on a
|
||||
computer or modifying a private copy. Propagation includes copying,
|
||||
distribution (with or without modification), making available to the
|
||||
public, and in some countries other activities as well.
|
||||
|
||||
To "convey" a work means any kind of propagation that enables other
|
||||
parties to make or receive copies. Mere interaction with a user through
|
||||
a computer network, with no transfer of a copy, is not conveying.
|
||||
|
||||
An interactive user interface displays "Appropriate Legal Notices"
|
||||
to the extent that it includes a convenient and prominently visible
|
||||
feature that (1) displays an appropriate copyright notice, and (2)
|
||||
tells the user that there is no warranty for the work (except to the
|
||||
extent that warranties are provided), that licensees may convey the
|
||||
work under this License, and how to view a copy of this License. If
|
||||
the interface presents a list of user commands or options, such as a
|
||||
menu, a prominent item in the list meets this criterion.
|
||||
|
||||
1. Source Code.
|
||||
|
||||
The "source code" for a work means the preferred form of the work
|
||||
for making modifications to it. "Object code" means any non-source
|
||||
form of a work.
|
||||
|
||||
A "Standard Interface" means an interface that either is an official
|
||||
standard defined by a recognized standards body, or, in the case of
|
||||
interfaces specified for a particular programming language, one that
|
||||
is widely used among developers working in that language.
|
||||
|
||||
The "System Libraries" of an executable work include anything, other
|
||||
than the work as a whole, that (a) is included in the normal form of
|
||||
packaging a Major Component, but which is not part of that Major
|
||||
Component, and (b) serves only to enable use of the work with that
|
||||
Major Component, or to implement a Standard Interface for which an
|
||||
implementation is available to the public in source code form. A
|
||||
"Major Component", in this context, means a major essential component
|
||||
(kernel, window system, and so on) of the specific operating system
|
||||
(if any) on which the executable work runs, or a compiler used to
|
||||
produce the work, or an object code interpreter used to run it.
|
||||
|
||||
The "Corresponding Source" for a work in object code form means all
|
||||
the source code needed to generate, install, and (for an executable
|
||||
work) run the object code and to modify the work, including scripts to
|
||||
control those activities. However, it does not include the work's
|
||||
System Libraries, or general-purpose tools or generally available free
|
||||
programs which are used unmodified in performing those activities but
|
||||
which are not part of the work. For example, Corresponding Source
|
||||
includes interface definition files associated with source files for
|
||||
the work, and the source code for shared libraries and dynamically
|
||||
linked subprograms that the work is specifically designed to require,
|
||||
such as by intimate data communication or control flow between those
|
||||
subprograms and other parts of the work.
|
||||
|
||||
The Corresponding Source need not include anything that users
|
||||
can regenerate automatically from other parts of the Corresponding
|
||||
Source.
|
||||
|
||||
The Corresponding Source for a work in source code form is that
|
||||
same work.
|
||||
|
||||
2. Basic Permissions.
|
||||
|
||||
All rights granted under this License are granted for the term of
|
||||
copyright on the Program, and are irrevocable provided the stated
|
||||
conditions are met. This License explicitly affirms your unlimited
|
||||
permission to run the unmodified Program. The output from running a
|
||||
covered work is covered by this License only if the output, given its
|
||||
content, constitutes a covered work. This License acknowledges your
|
||||
rights of fair use or other equivalent, as provided by copyright law.
|
||||
|
||||
You may make, run and propagate covered works that you do not
|
||||
convey, without conditions so long as your license otherwise remains
|
||||
in force. You may convey covered works to others for the sole purpose
|
||||
of having them make modifications exclusively for you, or provide you
|
||||
with facilities for running those works, provided that you comply with
|
||||
the terms of this License in conveying all material for which you do
|
||||
not control copyright. Those thus making or running the covered works
|
||||
for you must do so exclusively on your behalf, under your direction
|
||||
and control, on terms that prohibit them from making any copies of
|
||||
your copyrighted material outside their relationship with you.
|
||||
|
||||
Conveying under any other circumstances is permitted solely under
|
||||
the conditions stated below. Sublicensing is not allowed; section 10
|
||||
makes it unnecessary.
|
||||
|
||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
|
||||
No covered work shall be deemed part of an effective technological
|
||||
measure under any applicable law fulfilling obligations under article
|
||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
similar laws prohibiting or restricting circumvention of such
|
||||
measures.
|
||||
|
||||
When you convey a covered work, you waive any legal power to forbid
|
||||
circumvention of technological measures to the extent such circumvention
|
||||
is effected by exercising rights under this License with respect to
|
||||
the covered work, and you disclaim any intention to limit operation or
|
||||
modification of the work as a means of enforcing, against the work's
|
||||
users, your or third parties' legal rights to forbid circumvention of
|
||||
technological measures.
|
||||
|
||||
4. Conveying Verbatim Copies.
|
||||
|
||||
You may convey verbatim copies of the Program's source code as you
|
||||
receive it, in any medium, provided that you conspicuously and
|
||||
appropriately publish on each copy an appropriate copyright notice;
|
||||
keep intact all notices stating that this License and any
|
||||
non-permissive terms added in accord with section 7 apply to the code;
|
||||
keep intact all notices of the absence of any warranty; and give all
|
||||
recipients a copy of this License along with the Program.
|
||||
|
||||
You may charge any price or no price for each copy that you convey,
|
||||
and you may offer support or warranty protection for a fee.
|
||||
|
||||
5. Conveying Modified Source Versions.
|
||||
|
||||
You may convey a work based on the Program, or the modifications to
|
||||
produce it from the Program, in the form of source code under the
|
||||
terms of section 4, provided that you also meet all of these conditions:
|
||||
|
||||
a) The work must carry prominent notices stating that you modified
|
||||
it, and giving a relevant date.
|
||||
|
||||
b) The work must carry prominent notices stating that it is
|
||||
released under this License and any conditions added under section
|
||||
7. This requirement modifies the requirement in section 4 to
|
||||
"keep intact all notices".
|
||||
|
||||
c) You must license the entire work, as a whole, under this
|
||||
License to anyone who comes into possession of a copy. This
|
||||
License will therefore apply, along with any applicable section 7
|
||||
additional terms, to the whole of the work, and all its parts,
|
||||
regardless of how they are packaged. This License gives no
|
||||
permission to license the work in any other way, but it does not
|
||||
invalidate such permission if you have separately received it.
|
||||
|
||||
d) If the work has interactive user interfaces, each must display
|
||||
Appropriate Legal Notices; however, if the Program has interactive
|
||||
interfaces that do not display Appropriate Legal Notices, your
|
||||
work need not make them do so.
|
||||
|
||||
A compilation of a covered work with other separate and independent
|
||||
works, which are not by their nature extensions of the covered work,
|
||||
and which are not combined with it such as to form a larger program,
|
||||
in or on a volume of a storage or distribution medium, is called an
|
||||
"aggregate" if the compilation and its resulting copyright are not
|
||||
used to limit the access or legal rights of the compilation's users
|
||||
beyond what the individual works permit. Inclusion of a covered work
|
||||
in an aggregate does not cause this License to apply to the other
|
||||
parts of the aggregate.
|
||||
|
||||
6. Conveying Non-Source Forms.
|
||||
|
||||
You may convey a covered work in object code form under the terms
|
||||
of sections 4 and 5, provided that you also convey the
|
||||
machine-readable Corresponding Source under the terms of this License,
|
||||
in one of these ways:
|
||||
|
||||
a) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by the
|
||||
Corresponding Source fixed on a durable physical medium
|
||||
customarily used for software interchange.
|
||||
|
||||
b) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by a
|
||||
written offer, valid for at least three years and valid for as
|
||||
long as you offer spare parts or customer support for that product
|
||||
model, to give anyone who possesses the object code either (1) a
|
||||
copy of the Corresponding Source for all the software in the
|
||||
product that is covered by this License, on a durable physical
|
||||
medium customarily used for software interchange, for a price no
|
||||
more than your reasonable cost of physically performing this
|
||||
conveying of source, or (2) access to copy the
|
||||
Corresponding Source from a network server at no charge.
|
||||
|
||||
c) Convey individual copies of the object code with a copy of the
|
||||
written offer to provide the Corresponding Source. This
|
||||
alternative is allowed only occasionally and noncommercially, and
|
||||
only if you received the object code with such an offer, in accord
|
||||
with subsection 6b.
|
||||
|
||||
d) Convey the object code by offering access from a designated
|
||||
place (gratis or for a charge), and offer equivalent access to the
|
||||
Corresponding Source in the same way through the same place at no
|
||||
further charge. You need not require recipients to copy the
|
||||
Corresponding Source along with the object code. If the place to
|
||||
copy the object code is a network server, the Corresponding Source
|
||||
may be on a different server (operated by you or a third party)
|
||||
that supports equivalent copying facilities, provided you maintain
|
||||
clear directions next to the object code saying where to find the
|
||||
Corresponding Source. Regardless of what server hosts the
|
||||
Corresponding Source, you remain obligated to ensure that it is
|
||||
available for as long as needed to satisfy these requirements.
|
||||
|
||||
e) Convey the object code using peer-to-peer transmission, provided
|
||||
you inform other peers where the object code and Corresponding
|
||||
Source of the work are being offered to the general public at no
|
||||
charge under subsection 6d.
|
||||
|
||||
A separable portion of the object code, whose source code is excluded
|
||||
from the Corresponding Source as a System Library, need not be
|
||||
included in conveying the object code work.
|
||||
|
||||
A "User Product" is either (1) a "consumer product", which means any
|
||||
tangible personal property which is normally used for personal, family,
|
||||
or household purposes, or (2) anything designed or sold for incorporation
|
||||
into a dwelling. In determining whether a product is a consumer product,
|
||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
product received by a particular user, "normally used" refers to a
|
||||
typical or common use of that class of product, regardless of the status
|
||||
of the particular user or of the way in which the particular user
|
||||
actually uses, or expects or is expected to use, the product. A product
|
||||
is a consumer product regardless of whether the product has substantial
|
||||
commercial, industrial or non-consumer uses, unless such uses represent
|
||||
the only significant mode of use of the product.
|
||||
|
||||
"Installation Information" for a User Product means any methods,
|
||||
procedures, authorization keys, or other information required to install
|
||||
and execute modified versions of a covered work in that User Product from
|
||||
a modified version of its Corresponding Source. The information must
|
||||
suffice to ensure that the continued functioning of the modified object
|
||||
code is in no case prevented or interfered with solely because
|
||||
modification has been made.
|
||||
|
||||
If you convey an object code work under this section in, or with, or
|
||||
specifically for use in, a User Product, and the conveying occurs as
|
||||
part of a transaction in which the right of possession and use of the
|
||||
User Product is transferred to the recipient in perpetuity or for a
|
||||
fixed term (regardless of how the transaction is characterized), the
|
||||
Corresponding Source conveyed under this section must be accompanied
|
||||
by the Installation Information. But this requirement does not apply
|
||||
if neither you nor any third party retains the ability to install
|
||||
modified object code on the User Product (for example, the work has
|
||||
been installed in ROM).
|
||||
|
||||
The requirement to provide Installation Information does not include a
|
||||
requirement to continue to provide support service, warranty, or updates
|
||||
for a work that has been modified or installed by the recipient, or for
|
||||
the User Product in which it has been modified or installed. Access to a
|
||||
network may be denied when the modification itself materially and
|
||||
adversely affects the operation of the network or violates the rules and
|
||||
protocols for communication across the network.
|
||||
|
||||
Corresponding Source conveyed, and Installation Information provided,
|
||||
in accord with this section must be in a format that is publicly
|
||||
documented (and with an implementation available to the public in
|
||||
source code form), and must require no special password or key for
|
||||
unpacking, reading or copying.
|
||||
|
||||
7. Additional Terms.
|
||||
|
||||
"Additional permissions" are terms that supplement the terms of this
|
||||
License by making exceptions from one or more of its conditions.
|
||||
Additional permissions that are applicable to the entire Program shall
|
||||
be treated as though they were included in this License, to the extent
|
||||
that they are valid under applicable law. If additional permissions
|
||||
apply only to part of the Program, that part may be used separately
|
||||
under those permissions, but the entire Program remains governed by
|
||||
this License without regard to the additional permissions.
|
||||
|
||||
When you convey a copy of a covered work, you may at your option
|
||||
remove any additional permissions from that copy, or from any part of
|
||||
it. (Additional permissions may be written to require their own
|
||||
removal in certain cases when you modify the work.) You may place
|
||||
additional permissions on material, added by you to a covered work,
|
||||
for which you have or can give appropriate copyright permission.
|
||||
|
||||
Notwithstanding any other provision of this License, for material you
|
||||
add to a covered work, you may (if authorized by the copyright holders of
|
||||
that material) supplement the terms of this License with terms:
|
||||
|
||||
a) Disclaiming warranty or limiting liability differently from the
|
||||
terms of sections 15 and 16 of this License; or
|
||||
|
||||
b) Requiring preservation of specified reasonable legal notices or
|
||||
author attributions in that material or in the Appropriate Legal
|
||||
Notices displayed by works containing it; or
|
||||
|
||||
c) Prohibiting misrepresentation of the origin of that material, or
|
||||
requiring that modified versions of such material be marked in
|
||||
reasonable ways as different from the original version; or
|
||||
|
||||
d) Limiting the use for publicity purposes of names of licensors or
|
||||
authors of the material; or
|
||||
|
||||
e) Declining to grant rights under trademark law for use of some
|
||||
trade names, trademarks, or service marks; or
|
||||
|
||||
f) Requiring indemnification of licensors and authors of that
|
||||
material by anyone who conveys the material (or modified versions of
|
||||
it) with contractual assumptions of liability to the recipient, for
|
||||
any liability that these contractual assumptions directly impose on
|
||||
those licensors and authors.
|
||||
|
||||
All other non-permissive additional terms are considered "further
|
||||
restrictions" within the meaning of section 10. If the Program as you
|
||||
received it, or any part of it, contains a notice stating that it is
|
||||
governed by this License along with a term that is a further
|
||||
restriction, you may remove that term. If a license document contains
|
||||
a further restriction but permits relicensing or conveying under this
|
||||
License, you may add to a covered work material governed by the terms
|
||||
of that license document, provided that the further restriction does
|
||||
not survive such relicensing or conveying.
|
||||
|
||||
If you add terms to a covered work in accord with this section, you
|
||||
must place, in the relevant source files, a statement of the
|
||||
additional terms that apply to those files, or a notice indicating
|
||||
where to find the applicable terms.
|
||||
|
||||
Additional terms, permissive or non-permissive, may be stated in the
|
||||
form of a separately written license, or stated as exceptions;
|
||||
the above requirements apply either way.
|
||||
|
||||
8. Termination.
|
||||
|
||||
You may not propagate or modify a covered work except as expressly
|
||||
provided under this License. Any attempt otherwise to propagate or
|
||||
modify it is void, and will automatically terminate your rights under
|
||||
this License (including any patent licenses granted under the third
|
||||
paragraph of section 11).
|
||||
|
||||
However, if you cease all violation of this License, then your
|
||||
license from a particular copyright holder is reinstated (a)
|
||||
provisionally, unless and until the copyright holder explicitly and
|
||||
finally terminates your license, and (b) permanently, if the copyright
|
||||
holder fails to notify you of the violation by some reasonable means
|
||||
prior to 60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, you do not qualify to receive new licenses for the same
|
||||
material under section 10.
|
||||
|
||||
9. Acceptance Not Required for Having Copies.
|
||||
|
||||
You are not required to accept this License in order to receive or
|
||||
run a copy of the Program. Ancillary propagation of a covered work
|
||||
occurring solely as a consequence of using peer-to-peer transmission
|
||||
to receive a copy likewise does not require acceptance. However,
|
||||
nothing other than this License grants you permission to propagate or
|
||||
modify any covered work. These actions infringe copyright if you do
|
||||
not accept this License. Therefore, by modifying or propagating a
|
||||
covered work, you indicate your acceptance of this License to do so.
|
||||
|
||||
10. Automatic Licensing of Downstream Recipients.
|
||||
|
||||
Each time you convey a covered work, the recipient automatically
|
||||
receives a license from the original licensors, to run, modify and
|
||||
propagate that work, subject to this License. You are not responsible
|
||||
for enforcing compliance by third parties with this License.
|
||||
|
||||
An "entity transaction" is a transaction transferring control of an
|
||||
organization, or substantially all assets of one, or subdividing an
|
||||
organization, or merging organizations. If propagation of a covered
|
||||
work results from an entity transaction, each party to that
|
||||
transaction who receives a copy of the work also receives whatever
|
||||
licenses to the work the party's predecessor in interest had or could
|
||||
give under the previous paragraph, plus a right to possession of the
|
||||
Corresponding Source of the work from the predecessor in interest, if
|
||||
the predecessor has it or can get it with reasonable efforts.
|
||||
|
||||
You may not impose any further restrictions on the exercise of the
|
||||
rights granted or affirmed under this License. For example, you may
|
||||
not impose a license fee, royalty, or other charge for exercise of
|
||||
rights granted under this License, and you may not initiate litigation
|
||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
any patent claim is infringed by making, using, selling, offering for
|
||||
sale, or importing the Program or any portion of it.
|
||||
|
||||
11. Patents.
|
||||
|
||||
A "contributor" is a copyright holder who authorizes use under this
|
||||
License of the Program or a work on which the Program is based. The
|
||||
work thus licensed is called the contributor's "contributor version".
|
||||
|
||||
A contributor's "essential patent claims" are all patent claims
|
||||
owned or controlled by the contributor, whether already acquired or
|
||||
hereafter acquired, that would be infringed by some manner, permitted
|
||||
by this License, of making, using, or selling its contributor version,
|
||||
but do not include claims that would be infringed only as a
|
||||
consequence of further modification of the contributor version. For
|
||||
purposes of this definition, "control" includes the right to grant
|
||||
patent sublicenses in a manner consistent with the requirements of
|
||||
this License.
|
||||
|
||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
patent license under the contributor's essential patent claims, to
|
||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
propagate the contents of its contributor version.
|
||||
|
||||
In the following three paragraphs, a "patent license" is any express
|
||||
agreement or commitment, however denominated, not to enforce a patent
|
||||
(such as an express permission to practice a patent or covenant not to
|
||||
sue for patent infringement). To "grant" such a patent license to a
|
||||
party means to make such an agreement or commitment not to enforce a
|
||||
patent against the party.
|
||||
|
||||
If you convey a covered work, knowingly relying on a patent license,
|
||||
and the Corresponding Source of the work is not available for anyone
|
||||
to copy, free of charge and under the terms of this License, through a
|
||||
publicly available network server or other readily accessible means,
|
||||
then you must either (1) cause the Corresponding Source to be so
|
||||
available, or (2) arrange to deprive yourself of the benefit of the
|
||||
patent license for this particular work, or (3) arrange, in a manner
|
||||
consistent with the requirements of this License, to extend the patent
|
||||
license to downstream recipients. "Knowingly relying" means you have
|
||||
actual knowledge that, but for the patent license, your conveying the
|
||||
covered work in a country, or your recipient's use of the covered work
|
||||
in a country, would infringe one or more identifiable patents in that
|
||||
country that you have reason to believe are valid.
|
||||
|
||||
If, pursuant to or in connection with a single transaction or
|
||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
covered work, and grant a patent license to some of the parties
|
||||
receiving the covered work authorizing them to use, propagate, modify
|
||||
or convey a specific copy of the covered work, then the patent license
|
||||
you grant is automatically extended to all recipients of the covered
|
||||
work and works based on it.
|
||||
|
||||
A patent license is "discriminatory" if it does not include within
|
||||
the scope of its coverage, prohibits the exercise of, or is
|
||||
conditioned on the non-exercise of one or more of the rights that are
|
||||
specifically granted under this License. You may not convey a covered
|
||||
work if you are a party to an arrangement with a third party that is
|
||||
in the business of distributing software, under which you make payment
|
||||
to the third party based on the extent of your activity of conveying
|
||||
the work, and under which the third party grants, to any of the
|
||||
parties who would receive the covered work from you, a discriminatory
|
||||
patent license (a) in connection with copies of the covered work
|
||||
conveyed by you (or copies made from those copies), or (b) primarily
|
||||
for and in connection with specific products or compilations that
|
||||
contain the covered work, unless you entered into that arrangement,
|
||||
or that patent license was granted, prior to 28 March 2007.
|
||||
|
||||
Nothing in this License shall be construed as excluding or limiting
|
||||
any implied license or other defenses to infringement that may
|
||||
otherwise be available to you under applicable patent law.
|
||||
|
||||
12. No Surrender of Others' Freedom.
|
||||
|
||||
If conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot convey a
|
||||
covered work so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you may
|
||||
not convey it at all. For example, if you agree to terms that obligate you
|
||||
to collect a royalty for further conveying from those to whom you convey
|
||||
the Program, the only way you could satisfy both those terms and this
|
||||
License would be to refrain entirely from conveying the Program.
|
||||
|
||||
13. Use with the GNU Affero General Public License.
|
||||
|
||||
Notwithstanding any other provision of this License, you have
|
||||
permission to link or combine any covered work with a work licensed
|
||||
under version 3 of the GNU Affero General Public License into a single
|
||||
combined work, and to convey the resulting work. The terms of this
|
||||
License will continue to apply to the part which is the covered work,
|
||||
but the special requirements of the GNU Affero General Public License,
|
||||
section 13, concerning interaction through a network will apply to the
|
||||
combination as such.
|
||||
|
||||
14. Revised Versions of this License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions of
|
||||
the GNU General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Program specifies that a certain numbered version of the GNU General
|
||||
Public License "or any later version" applies to it, you have the
|
||||
option of following the terms and conditions either of that numbered
|
||||
version or of any later version published by the Free Software
|
||||
Foundation. If the Program does not specify a version number of the
|
||||
GNU General Public License, you may choose any version ever published
|
||||
by the Free Software Foundation.
|
||||
|
||||
If the Program specifies that a proxy can decide which future
|
||||
versions of the GNU General Public License can be used, that proxy's
|
||||
public statement of acceptance of a version permanently authorizes you
|
||||
to choose that version for the Program.
|
||||
|
||||
Later license versions may give you additional or different
|
||||
permissions. However, no additional obligations are imposed on any
|
||||
author or copyright holder as a result of your choosing to follow a
|
||||
later version.
|
||||
|
||||
15. Disclaimer of Warranty.
|
||||
|
||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. Limitation of Liability.
|
||||
|
||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGES.
|
||||
|
||||
17. Interpretation of Sections 15 and 16.
|
||||
|
||||
If the disclaimer of warranty and limitation of liability provided
|
||||
above cannot be given local legal effect according to their terms,
|
||||
reviewing courts shall apply local law that most closely approximates
|
||||
an absolute waiver of all civil liability in connection with the
|
||||
Program, unless a warranty or assumption of liability accompanies a
|
||||
copy of the Program in return for a fee.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
state the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program does terminal interaction, make it output a short
|
||||
notice like this when it starts in an interactive mode:
|
||||
|
||||
<program> Copyright (C) <year> <name of author>
|
||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, your program's commands
|
||||
might be different; for a GUI interface, you would use an "about box".
|
||||
|
||||
You should also get your employer (if you work as a programmer) or school,
|
||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
For more information on this, and how to apply and follow the GNU GPL, see
|
||||
<http://www.gnu.org/licenses/>.
|
||||
|
||||
The GNU General Public License does not permit incorporating your program
|
||||
into proprietary programs. If your program is a subroutine library, you
|
||||
may consider it more useful to permit linking proprietary applications with
|
||||
the library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License. But first, please read
|
||||
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
||||
|
||||
**********************************************************************
|
||||
**********************************************************************
|
@ -1,97 +0,0 @@
|
||||
TCPDF - README
|
||||
============================================================
|
||||
|
||||
I WISH TO IMPROVE AND EXPAND TCPDF BUT I NEED YOUR SUPPORT.
|
||||
PLEASE MAKE A DONATION:
|
||||
http://sourceforge.net/donate/index.php?group_id=128076
|
||||
|
||||
------------------------------------------------------------
|
||||
|
||||
Name: TCPDF
|
||||
Version: 5.9.202
|
||||
Release date: 2012-12-16
|
||||
Author: Nicola Asuni
|
||||
|
||||
Copyright (c) 2002-2012:
|
||||
Nicola Asuni
|
||||
Tecnick.com LTD
|
||||
Manor Coach House, Church Hill
|
||||
Aldershot, Hants, GU12 4RQ
|
||||
UK
|
||||
www.tecnick.com
|
||||
|
||||
URLs:
|
||||
http: www.tcpdf.org
|
||||
http: www.sourceforge.net/projects/tcpdf
|
||||
|
||||
Description:
|
||||
TCPDF is a PHP class for generating PDF files on-the-fly without requiring external extensions.
|
||||
|
||||
Main Features:
|
||||
* no external libraries are required for the basic functions;
|
||||
* all standard page formats, custom page formats, custom margins and units of measure;
|
||||
* UTF-8 Unicode and Right-To-Left languages;
|
||||
* TrueTypeUnicode, OpenTypeUnicode v1, TrueType, OpenType v1, Type1 and CID-0 fonts;
|
||||
* font subsetting;
|
||||
* methods to publish some XHTML + CSS code, Javascript and Forms;
|
||||
* images, graphic (geometric figures) and transformation methods;
|
||||
* supports JPEG, PNG and SVG images natively, all images supported by GD (GD, GD2, GD2PART, GIF, JPEG, PNG, BMP, XBM, XPM) and all images supported via ImagMagick (http: www.imagemagick.org/www/formats.html)
|
||||
* 1D and 2D barcodes: CODE 39, ANSI MH10.8M-1983, USD-3, 3 of 9, CODE 93, USS-93, Standard 2 of 5, Interleaved 2 of 5, CODE 128 A/B/C, 2 and 5 Digits UPC-Based Extention, EAN 8, EAN 13, UPC-A, UPC-E, MSI, POSTNET, PLANET, RMS4CC (Royal Mail 4-state Customer Code), CBC (Customer Bar Code), KIX (Klant index - Customer index), Intelligent Mail Barcode, Onecode, USPS-B-3200, CODABAR, CODE 11, PHARMACODE, PHARMACODE TWO-TRACKS, Datamatrix, QR-Code, PDF417;
|
||||
* JPEG and PNG ICC profiles, Grayscale, RGB, CMYK, Spot Colors and Transparencies;
|
||||
* automatic page header and footer management;
|
||||
* document encryption up to 256 bit and digital signature certifications;
|
||||
* transactions to UNDO commands;
|
||||
* PDF annotations, including links, text and file attachments;
|
||||
* text rendering modes (fill, stroke and clipping);
|
||||
* multiple columns mode;
|
||||
* no-write page regions;
|
||||
* bookmarks, named destinations and table of content;
|
||||
* text hyphenation;
|
||||
* text stretching and spacing (tracking);
|
||||
* automatic page break, line break and text alignments including justification;
|
||||
* automatic page numbering and page groups;
|
||||
* move and delete pages;
|
||||
* page compression (requires php-zlib extension);
|
||||
* XOBject Templates;
|
||||
* Layers and object visibility.
|
||||
* PDF/A-1b support.
|
||||
|
||||
Installation (full instructions on http: www.tcpdf.org):
|
||||
1. copy the folder on your Web server
|
||||
2. set your installation path and other parameters on the config/tcpdf_config.php
|
||||
3. call the examples/example_001.php page with your browser to see an example
|
||||
|
||||
Source Code Documentation:
|
||||
http://www.tcpdf.org
|
||||
|
||||
Additional Documentation:
|
||||
http://www.tcpdf.org
|
||||
|
||||
License
|
||||
Copyright (C) 2002-2012 Nicola Asuni - Tecnick.com LTD
|
||||
|
||||
TCPDF is free software: you can redistribute it and/or modify it
|
||||
under the terms of the GNU Lesser General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
TCPDF is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
See the GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the License
|
||||
along with TCPDF. If not, see
|
||||
<http://www.tecnick.com/pagefiles/tcpdf/LICENSE.TXT>.
|
||||
|
||||
See LICENSE.TXT file for more information.
|
||||
|
||||
Third party fonts
|
||||
This library includes third party font files released with different licenses.
|
||||
These fonts are not required by TCPDF but have been included as you convenience.
|
||||
The original TTF font files have been renamed for compatibility with TCPDF and compressed using the gzcompress PHP function that uses the ZLIB data format (.z files).
|
||||
To get the original distribution archives please check the information on fonts subfolders:
|
||||
- DejaVu fonts 2.33 (Bitstream) - Copyright, License and other info: fonts/dejavu-fonts-ttf-2.33
|
||||
- GNU FreeFont (GNU-GPLv3) - Copyright, License and other info: fonts/freefont-20100919
|
||||
|
||||
============================================================
|
@ -1,367 +0,0 @@
|
||||
<?php
|
||||
/*
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2009 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
* Plugin Administration - PDF generator
|
||||
*
|
||||
* $Source: /cvs_backup/e107_0.8/e107_plugins/pdf/admin_pdf_config.php,v $
|
||||
* $Revision$
|
||||
* $Date$
|
||||
* $Author$
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* e107 pdf generation plugin
|
||||
*
|
||||
* @package e107_plugins
|
||||
* @subpackage pdf
|
||||
* @version $Id$;
|
||||
*/
|
||||
|
||||
|
||||
require_once('../../class2.php');
|
||||
if (!getperms('P') || !plugInstalled('pdf'))
|
||||
{
|
||||
header('location:'.e_BASE.'index.php');
|
||||
exit;
|
||||
}
|
||||
require_once(e_ADMIN.'auth.php');
|
||||
require_once(e_HANDLER.'form_handler.php');
|
||||
$rs = new form;
|
||||
|
||||
|
||||
unset($text);
|
||||
|
||||
include_lan(e_PLUGIN.'pdf/languages/English_admin_pdf.php');
|
||||
|
||||
|
||||
/**
|
||||
* Update prefs to new values.
|
||||
*
|
||||
* @param boolean $setDefaults = set all prefs to default values if TRUE
|
||||
*/
|
||||
function updatePDFPrefs(&$oldPrefs, $setDefaults = FALSE)
|
||||
{
|
||||
$tp = e107::getParser();
|
||||
$prefChanges = array();
|
||||
$pdfNew = e107::getPlugConfig('pdf');
|
||||
$mes = eMessage::getInstance();
|
||||
$prefList = getDefaultPDFPrefs();
|
||||
|
||||
if ($setDefaults)
|
||||
{
|
||||
$oldPrefs = $prefList;
|
||||
$adminEvent = 'PDF_02';
|
||||
$adminMessage = PDF_LAN_33;
|
||||
$prefChanges[] = 'all => defaults';
|
||||
foreach($prefList as $k => $default)
|
||||
{
|
||||
$pdfNew->set($k, $default);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$adminEvent = 'PDF_01';
|
||||
$adminMessage = PDF_LAN_18;
|
||||
foreach($prefList as $k => $default)
|
||||
{
|
||||
if (isset($_POST[$k]))
|
||||
{
|
||||
$newVal = $tp->toDB($_POST[$k]);
|
||||
if ($oldPrefs[$k] != $newVal)
|
||||
{
|
||||
$oldPrefs[$k] = $newVal;
|
||||
$pdfNew->set($k, $newVal);
|
||||
$prefChanges[] = $k.' => '.$newVal;
|
||||
}
|
||||
}
|
||||
elseif (!isset($oldPrefs[$k]))
|
||||
{
|
||||
$oldPrefs[$k] = $default; // Restore any lost prefs
|
||||
}
|
||||
}
|
||||
}
|
||||
if (count($prefChanges))
|
||||
{
|
||||
$result = $pdfNew->save();
|
||||
if ($result === TRUE)
|
||||
{
|
||||
// Do admin logging
|
||||
$logString = implode('[!br!]', $prefChanges);
|
||||
e107::getAdminLog()->log_event($adminEvent, $logString, E_LOG_INFORMATIVE, '');
|
||||
$mes->add($adminMessage, E_MESSAGE_SUCCESS);
|
||||
}
|
||||
elseif ($result === FALSE)
|
||||
{
|
||||
$mes->add(PDF_LAN_32, E_MESSAGE_ERROR);
|
||||
}
|
||||
else
|
||||
{ // Should never happen
|
||||
$mes->add('PDF Unexpected result: '.$result, E_MESSAGE_INFO);
|
||||
|
||||
}
|
||||
}
|
||||
//$admin_log->logArrayAll('PDF_01',$pdfpref);
|
||||
//return $message;
|
||||
}
|
||||
|
||||
|
||||
function getDefaultPDFPrefs()
|
||||
{
|
||||
$pdfpref['pdf_margin_left'] = '25';
|
||||
$pdfpref['pdf_margin_right'] = '15';
|
||||
$pdfpref['pdf_margin_top'] = '15';
|
||||
$pdfpref['pdf_font_family'] = 'helvetica';
|
||||
$pdfpref['pdf_font_size'] = '8';
|
||||
$pdfpref['pdf_font_size_sitename'] = '14';
|
||||
$pdfpref['pdf_font_size_page_url'] = '8';
|
||||
$pdfpref['pdf_font_size_page_number'] = '8';
|
||||
$pdfpref['pdf_show_logo'] = true;
|
||||
$pdfpref['pdf_show_sitename'] = false;
|
||||
$pdfpref['pdf_show_page_url'] = true;
|
||||
$pdfpref['pdf_show_page_number'] = true;
|
||||
$pdfpref['pdf_error_reporting'] = true;
|
||||
return $pdfpref;
|
||||
}
|
||||
|
||||
|
||||
|
||||
function getPDFPrefs()
|
||||
{
|
||||
$ans = e107::pref('pdf'); // retrieve pref array.
|
||||
if (count($ans) == 0)
|
||||
{
|
||||
$ans = getDefaultPDFPrefs();
|
||||
}
|
||||
|
||||
return $ans;
|
||||
}
|
||||
|
||||
// Default list just in case
|
||||
$fontlist=array('times','courier','helvetica','symbol');
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function getFontInfo($fontName)
|
||||
{
|
||||
$type = 'empty'; // Preset the stuff we're going to read
|
||||
$dw = 0;
|
||||
$cw = array();
|
||||
$name='';
|
||||
//$desc=array('Ascent'=>900,'Descent'=>-300,'CapHeight'=>-29,'Flags'=>96,'FontBBox'=>'[-879 -434 1673 900]','ItalicAngle'=>-16.5,'StemV'=>70,'MissingWidth'=>600);
|
||||
//$up=-125;
|
||||
//$ut=50;
|
||||
include(e_PLUGIN.'pdf/fonts/'.$fontName);
|
||||
return array('type' => $type, 'weight' => $dw, 'codes' => count($cw), 'name' => $name);
|
||||
}
|
||||
|
||||
|
||||
|
||||
function getFontList($match = '')
|
||||
{
|
||||
require_once(e_HANDLER.'file_class.php');
|
||||
$fl = new e_file();
|
||||
if (!$match) $match = '~^uni2cid';
|
||||
$fileList = $fl->get_files(e_PLUGIN.'pdf/fonts/',$match, 'standard', 1);
|
||||
$fontList = array();
|
||||
$intList = array();
|
||||
foreach ($fileList as $v)
|
||||
{
|
||||
if (isset($v['fname']) && (substr($v['fname'],-4) == '.php'))
|
||||
{
|
||||
$intList[] = substr($v['fname'],0,-4);
|
||||
}
|
||||
}
|
||||
unset($fileList);
|
||||
sort($intList); // This will guarantee that base font names appear before bold, italic etc
|
||||
foreach ($intList as $f)
|
||||
{
|
||||
if (substr($f,-2) == 'bi')
|
||||
{
|
||||
$fontList[substr($f,0,-2)]['bi'] = $f.'.php';
|
||||
}
|
||||
elseif (substr($f,-1) == 'i')
|
||||
{
|
||||
$fontList[substr($f,0,-1)]['i'] = $f.'.php';
|
||||
}
|
||||
elseif (substr($f,-1) == 'b')
|
||||
{
|
||||
$fontList[substr($f,0,-1)]['b'] = $f.'.php';
|
||||
}
|
||||
else
|
||||
{ // Must be base font name
|
||||
$fontList[$f]['base'] = $f.'.php';
|
||||
}
|
||||
}
|
||||
// Now get the info on each font.
|
||||
foreach ($fontList as $font => $info)
|
||||
{
|
||||
$fontList[$font]['info'] = getFontInfo($info['base']);
|
||||
}
|
||||
//print_a($fontList);
|
||||
return $fontList;
|
||||
}
|
||||
|
||||
|
||||
|
||||
$pdfpref = getPDFPrefs();
|
||||
|
||||
|
||||
|
||||
if(isset($_POST['update_pdf']))
|
||||
{
|
||||
// $message = updatePDFPrefs();
|
||||
updatePDFPrefs($pdfpref, FALSE);
|
||||
}
|
||||
|
||||
|
||||
if(isset($_POST['default_pdf']))
|
||||
{
|
||||
updatePDFPrefs($pdfpref, TRUE);
|
||||
}
|
||||
|
||||
e107::getRender()->tablerender(PDF_LAN_35, eMessage::getInstance()->render());
|
||||
|
||||
|
||||
/*
|
||||
if(isset($message))
|
||||
{
|
||||
$caption = PDF_LAN_1;
|
||||
$ns -> tablerender($caption, $message);
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
$fontList = getFontList();
|
||||
$coreList = array();
|
||||
foreach ($fontList as $font => $info)
|
||||
{
|
||||
if ($info['info']['type'] == 'core')
|
||||
{
|
||||
$coreList[$font] = $font;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$text = "
|
||||
".$rs -> form_open("post", e_SELF, "pdfform", "", "enctype='multipart/form-data'")."
|
||||
<table class='table adminform'>
|
||||
|
||||
<tr>
|
||||
<td>".PDF_LAN_5."</td>
|
||||
<td>".$rs -> form_text("pdf_margin_left", 10, $pdfpref['pdf_margin_left'], 10)."</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>".PDF_LAN_6."</td>
|
||||
<td>".$rs -> form_text("pdf_margin_right", 10, $pdfpref['pdf_margin_right'], 10)."</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>".PDF_LAN_7."</td>
|
||||
<td>".$rs -> form_text("pdf_margin_top", 10, $pdfpref['pdf_margin_top'], 10)."</td>
|
||||
</tr>";
|
||||
|
||||
$text .= "
|
||||
<tr>
|
||||
<td>".PDF_LAN_8."</td>
|
||||
<td>
|
||||
".$rs -> form_select_open("pdf_font_family");
|
||||
foreach($coreList as $font => $info)
|
||||
{
|
||||
$text .= $rs -> form_option($font, ($pdfpref['pdf_font_family'] == $font ? "1" : "0"), $font);
|
||||
}
|
||||
$text .= $rs -> form_select_close()."
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>".PDF_LAN_9."</td>
|
||||
<td>".$rs -> form_text("pdf_font_size", 10, $pdfpref['pdf_font_size'], 10)."</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>".PDF_LAN_10."</td>
|
||||
<td>".$rs -> form_text("pdf_font_size_sitename", 10, $pdfpref['pdf_font_size_sitename'], 10)."</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>".PDF_LAN_11."</td>
|
||||
<td>".$rs -> form_text("pdf_font_size_page_url", 10, $pdfpref['pdf_font_size_page_url'], 10)."</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>".PDF_LAN_12."</td>
|
||||
<td>".$rs -> form_text("pdf_font_size_page_number", 10, $pdfpref['pdf_font_size_page_number'], 10)."</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>".PDF_LAN_13."</td>
|
||||
<td>
|
||||
".$rs -> form_radio("pdf_show_logo", "1", ($pdfpref['pdf_show_logo'] ? "1" : "0"), "", "").PDF_LAN_3."
|
||||
".$rs -> form_radio("pdf_show_logo", "0", ($pdfpref['pdf_show_logo'] ? "0" : "1"), "", "").PDF_LAN_4."
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>".PDF_LAN_14."</td>
|
||||
<td>
|
||||
".$rs -> form_radio("pdf_show_sitename", "1", ($pdfpref['pdf_show_sitename'] ? "1" : "0"), "", "").PDF_LAN_3."
|
||||
".$rs -> form_radio("pdf_show_sitename", "0", ($pdfpref['pdf_show_sitename'] ? "0" : "1"), "", "").PDF_LAN_4."
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>".PDF_LAN_15."</td>
|
||||
<td>
|
||||
".$rs -> form_radio("pdf_show_page_url", "1", ($pdfpref['pdf_show_page_url'] ? "1" : "0"), "", "").PDF_LAN_3."
|
||||
".$rs -> form_radio("pdf_show_page_url", "0", ($pdfpref['pdf_show_page_url'] ? "0" : "1"), "", "").PDF_LAN_4."
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>".PDF_LAN_16."</td>
|
||||
<td>
|
||||
".$rs -> form_radio("pdf_show_page_number", "1", ($pdfpref['pdf_show_page_number'] ? "1" : "0"), "", "").PDF_LAN_3."
|
||||
".$rs -> form_radio("pdf_show_page_number", "0", ($pdfpref['pdf_show_page_number'] ? "0" : "1"), "", "").PDF_LAN_4."
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>".PDF_LAN_20."</td>
|
||||
<td>
|
||||
".$rs -> form_radio("pdf_error_reporting", "1", ($pdfpref['pdf_error_reporting'] ? "1" : "0"), "", "").PDF_LAN_3."
|
||||
".$rs -> form_radio("pdf_error_reporting", "0", ($pdfpref['pdf_error_reporting'] ? "0" : "1"), "", "").PDF_LAN_4."
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class='buttons-bar center'>
|
||||
".$rs->form_button('submit', 'update_pdf', LAN_UPDATE)."
|
||||
".$rs->form_button('submit', 'default_pdf', PDF_LAN_34)."
|
||||
</div>
|
||||
".$rs -> form_close()."
|
||||
";
|
||||
|
||||
$ns -> tablerender(PDF_LAN_2, $text);
|
||||
|
||||
|
||||
$text = "
|
||||
<table class='table adminform'>
|
||||
<tr><th>".PDF_LAN_21."</th><th>".PDF_LAN_22."</th><th>".PDF_LAN_23."</th>
|
||||
<th>".PDF_LAN_24."</th><th title='".PDF_LAN_25."'>".PDF_LAN_26."</th></tr>\n";
|
||||
|
||||
foreach ($fontList as $font => $info)
|
||||
{
|
||||
$wa = array(PDF_LAN_27);
|
||||
if (isset($info['b'])) $wa[] = PDF_LAN_28;
|
||||
if (isset($info['i'])) $wa[] = PDF_LAN_29;
|
||||
if (isset($info['bi'])) $wa[] = PDF_LAN_30;
|
||||
$variants = implode(', ', $wa);
|
||||
$text .= "<tr><td>{$font}</td><td>{$info['info']['type']}</td><td>{$variants}</td><td>{$info['info']['weight']}</td><td>{$info['info']['codes']}</td></tr>\n";
|
||||
}
|
||||
|
||||
$text .= '</table>';
|
||||
$ns->tablerender(PDF_LAN_31, $text);
|
||||
|
||||
|
||||
require_once(e_ADMIN.'footer.php');
|
||||
|
||||
?>
|
@ -1,376 +0,0 @@
|
||||
<?php
|
||||
/*
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2013 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
* Plugin - PDF generator
|
||||
*
|
||||
* $URL$
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* e107 pdf generation plugin
|
||||
*
|
||||
* @package e107_plugins
|
||||
* @subpackage pdf
|
||||
* @version $Id$;
|
||||
*/
|
||||
|
||||
if (!defined('e107_INIT')) { exit; }
|
||||
|
||||
/*
|
||||
TODO:
|
||||
1. Look at using disc cache
|
||||
2. More detailed check on image paths
|
||||
*/
|
||||
|
||||
// Debug option - adds entries to rolling log (only works in 0.8)
|
||||
//define ('PDF_DEBUG', TRUE);
|
||||
define ('PDF_DEBUG', FALSE);
|
||||
|
||||
define('K_PATH_MAIN', '');
|
||||
define('K_PATH_URL', SITEURL); // Used with forms (TODO: check validity)
|
||||
define('K_CELL_HEIGHT_RATIO', 1.25);
|
||||
|
||||
// Following may be used (among others)
|
||||
//define ('K_PATH_FONTS', K_PATH_MAIN.'fonts/');
|
||||
define ('K_PATH_CACHE', e_CACHE_CONTENT);
|
||||
define ('K_PATH_URL_CACHE', K_PATH_URL.e_CACHE_CONTENT);
|
||||
define ('K_PATH_IMAGES', K_PATH_MAIN.'images/');
|
||||
define ('K_BLANK_IMAGE', K_PATH_IMAGES.'_blank.png');
|
||||
|
||||
/*
|
||||
The full tcpdf distribution includes a utility to generate new fonts, as well as lots of other fonts.
|
||||
It can be downloaded from: http://sourceforge.net/projects/tcpdf/
|
||||
*/
|
||||
|
||||
|
||||
require_once(e_PLUGIN.'pdf/tcpdf.php'); //require the ufpdf class
|
||||
include_lan(e_PLUGIN.'pdf/languages/'.e_LANGUAGE.'_admin_pdf.php');
|
||||
|
||||
|
||||
//extend tcpdf class from package with custom functions
|
||||
class e107PDF extends TCPDF
|
||||
{
|
||||
protected $pdfPref = array(); // Prefs - loaded before creating a pdf
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
* @param string $orientation page orientation. Possible values are (case insensitive):<ul><li>P or Portrait (default)</li><li>L or Landscape</li></ul>
|
||||
* @param string $unit User measure unit. Possible values are:<ul><li>pt: point</li><li>mm: millimeter (default)</li><li>cm: centimeter</li><li>in: inch</li></ul><br />A point equals 1/72 of inch, that is to say about 0.35 mm (an inch being 2.54 cm). This is a very common unit in typography; font sizes are expressed in that unit.
|
||||
* @param mixed $format The format used for pages. It can be either one of the following values (case insensitive) or a custom format in the form of a two-element array containing the width and the height (expressed in the unit given by unit).<ul><li>4A0</li><li>2A0</li><li>A0</li><li>A1</li><li>A2</li><li>A3</li><li>A4 (default)</li><li>A5</li><li>A6</li><li>A7</li><li>A8</li><li>A9</li><li>A10</li><li>B0</li><li>B1</li><li>B2</li><li>B3</li><li>B4</li><li>B5</li><li>B6</li><li>B7</li><li>B8</li><li>B9</li><li>B10</li><li>C0</li><li>C1</li><li>C2</li><li>C3</li><li>C4</li><li>C5</li><li>C6</li><li>C7</li><li>C8</li><li>C9</li><li>C10</li><li>RA0</li><li>RA1</li><li>RA2</li><li>RA3</li><li>RA4</li><li>SRA0</li><li>SRA1</li><li>SRA2</li><li>SRA3</li><li>SRA4</li><li>LETTER</li><li>LEGAL</li><li>EXECUTIVE</li><li>FOLIO</li></ul>
|
||||
* @param boolean $unicode TRUE means that the input text is unicode (default = true)
|
||||
* @param boolean $diskcache if TRUE reduce the RAM memory usage by caching temporary data on filesystem (slower).
|
||||
* @param String $encoding charset encoding; default is UTF-8
|
||||
*/
|
||||
public function __construct($orientation='P',$unit='mm',$format='A4', $unicode = true, $encoding = 'UTF-8', $diskcache = false)
|
||||
{
|
||||
$this->getPDFPrefs();
|
||||
|
||||
//Call parent constructor
|
||||
parent::__construct($orientation,$unit,$format, $unicode, $encoding, $diskcache);
|
||||
//Initialization
|
||||
$this->setCellHeightRatio(1.25); // Should already be the default
|
||||
}
|
||||
|
||||
|
||||
|
||||
//default preferences if none present
|
||||
function getDefaultPDFPrefs()
|
||||
{
|
||||
$pdfpref['pdf_margin_left'] = '25';
|
||||
$pdfpref['pdf_margin_right'] = '15';
|
||||
$pdfpref['pdf_margin_top'] = '15';
|
||||
$pdfpref['pdf_font_family'] = 'helvetica';
|
||||
$pdfpref['pdf_font_size'] = '8';
|
||||
$pdfpref['pdf_font_size_sitename'] = '14';
|
||||
$pdfpref['pdf_font_size_page_url'] = '8';
|
||||
$pdfpref['pdf_font_size_page_number'] = '8';
|
||||
$pdfpref['pdf_show_logo'] = true;
|
||||
$pdfpref['pdf_show_sitename'] = false;
|
||||
$pdfpref['pdf_show_page_url'] = true;
|
||||
$pdfpref['pdf_show_page_number'] = true;
|
||||
$pdfpref['pdf_error_reporting'] = true;
|
||||
return $pdfpref;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Set up the e107 PDF prefs - if can't be loaded from the DB, force some sensible defaults
|
||||
*/
|
||||
//get preferences from db
|
||||
function getPDFPrefs()
|
||||
{
|
||||
$this->pdfPref = e107::pref('pdf'); // retrieve pref array.
|
||||
if (count($this->pdfPref) == 0)
|
||||
{
|
||||
$this->pdfPref = $this->getDefaultPDFPrefs();
|
||||
}
|
||||
|
||||
return $this->pdfPref;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Convert e107-encoded text to body text
|
||||
* @param string $text
|
||||
* @return string with various entities replaced with their equivalent characters
|
||||
*/
|
||||
function toPDF($text)
|
||||
{
|
||||
$search = array(''', ''', '$', '"');
|
||||
$replace = array("'", "'", '$', '"');
|
||||
$text = str_replace($search, $replace, $text);
|
||||
return $text;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Convert e107-encoded text to title text
|
||||
* @param string $text
|
||||
* @return string with various characters replaced with '-' TODO: Why?
|
||||
*/
|
||||
function toPDFTitle($text)
|
||||
{
|
||||
$search = array(":", "*", "?", '"', '<', '>', '|');
|
||||
$replace = array('-', '-', '-', '-', '-', '-', '-');
|
||||
$text = str_replace($search, $replace, $text);
|
||||
return $text;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* The makePDF function does all the real parsing and composing
|
||||
* @param array $text needs to be an array containing the following:
|
||||
* $text = array($text, $creator, $author, $title, $subject, $keywords, $url[, $orientation]);
|
||||
* @return - none (the PDF file is output, all being well)
|
||||
*/
|
||||
function makePDF($text)
|
||||
{
|
||||
$tp = e107::getParser();
|
||||
|
||||
// Make sure prefs up to date
|
||||
$this->getPDFPrefs();
|
||||
|
||||
//define logo and source pageurl (before the parser!)
|
||||
if(is_readable(THEME.'images/logopdf.png'))
|
||||
{
|
||||
$logo = THEME.'images/logopdf.png';
|
||||
}
|
||||
else
|
||||
{
|
||||
$logo = e_IMAGE.'logo.png';
|
||||
}
|
||||
define('PDFLOGO', $logo); //define logo to add in header
|
||||
if (substr($text[6], -1) == '?')
|
||||
{
|
||||
$text[6] = substr($text[6], 0, -1);
|
||||
}
|
||||
define('PDFPAGEURL', $text[6]); //define page url to add in header
|
||||
|
||||
//parse the data
|
||||
$text[3] = $this->toPDF($text[3]); //replace some in the title
|
||||
$text[3] = $this->toPDFTitle($text[3]); //replace some in the title
|
||||
foreach($text as $k=>$v)
|
||||
{
|
||||
$text[$k] = $tp->toHTML($v, TRUE, 'BODY');
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// In the code that follows, the commented out lines beginning $pdf-> are things which could potentially be set.
|
||||
|
||||
//set image scale factor
|
||||
//$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
|
||||
|
||||
//set some language-dependent strings
|
||||
//$pdf->setLanguageArray($l);
|
||||
|
||||
|
||||
|
||||
//set some variables
|
||||
$this->SetMargins($this->pdfPref['pdf_margin_left'],$this->pdfPref['pdf_margin_top'],$this->pdfPref['pdf_margin_right']);
|
||||
//$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
|
||||
//$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
|
||||
|
||||
$this->SetAutoPageBreak(true,25); // Force new page break at 25mm from bottom
|
||||
$this->SetPrintHeader(TRUE);
|
||||
|
||||
// set default header data
|
||||
//$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 001', PDF_HEADER_STRING, array(0,64,255), array(0,64,128));
|
||||
//$pdf->setFooterData($tc=array(0,64,0), $lc=array(0,64,128));
|
||||
|
||||
// set default monospaced font
|
||||
//$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
|
||||
|
||||
//start creating the pdf and adding the data
|
||||
$this->DefOrientation=(varset($text[7], 'P') == 'L' ? 'L' : 'P'); // Page orientation - P=portrait, L=landscape
|
||||
$this->AliasNbPages(); //calculate current page + number of pages
|
||||
$this->AddPage(); //start page
|
||||
|
||||
//$pdf->setFontSubsetting(true);
|
||||
|
||||
$this->SetFont($this->pdfPref['pdf_font_family'],'',$this->pdfPref['pdf_font_size']); //set font
|
||||
$this->SetHeaderFont(array($this->pdfPref['pdf_font_family'],'',$this->pdfPref['pdf_font_size']));
|
||||
$this->SetFooterFont(array($this->pdfPref['pdf_font_family'],'',$this->pdfPref['pdf_font_size']));
|
||||
|
||||
$this->WriteHTML($text[0], true); //write text TODO: possibly other parameters
|
||||
$this->SetCreator($text[1]); //name of creator
|
||||
$this->SetAuthor($text[2]); //name of author
|
||||
$this->SetTitle($text[3]); //title
|
||||
$this->SetSubject($text[4]); //subject
|
||||
$this->SetKeywords($text[5]); //space/comma separated
|
||||
$file = $text[3].'.pdf'; //name of the file
|
||||
$this->Output($file, 'D'); //Save PDF to file (D = output to download window)
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Add e107-specific header to each page.
|
||||
* Uses various prefs set in the admin page.
|
||||
* Overrides the tcpdf default header function
|
||||
*/
|
||||
function Header()
|
||||
{
|
||||
$pageWidth = $this->getPageWidth(); // Will be 210 for A4 portrait
|
||||
$ormargins = $this->getOriginalMargins();
|
||||
$headerfont = $this->getHeaderFont();
|
||||
$headerdata = $this->getHeaderData();
|
||||
|
||||
$topMargin = $this->pdfPref['pdf_margin_top'];
|
||||
if($this->pdfPref['pdf_show_logo'])
|
||||
{
|
||||
$this->SetFont($this->pdfPref['pdf_font_family'],'',$this->pdfPref['pdf_font_size']);
|
||||
$this->Image(PDFLOGO, $this->GetX(), $topMargin);
|
||||
$imgx = $this->getImageRBX();
|
||||
$imgy = $this->getImageRBY(); // Coordinates of bottom right of logo
|
||||
|
||||
$a=$this->GetStringWidth(SITENAME);
|
||||
$b=$this->GetStringWidth(PDFPAGEURL);
|
||||
$c = max($a, $b) + $this->rMargin;
|
||||
if(($imgx + $c) > $pageWidth) // See if room for other text to right of logo
|
||||
{ // No room - move to underneath
|
||||
$this->SetX($this->lMargin);
|
||||
$this->SetY($imgy+2);
|
||||
}
|
||||
else
|
||||
{
|
||||
$m = 0;
|
||||
if($this->pdfPref['pdf_show_sitename'])
|
||||
{
|
||||
$m = 5;
|
||||
}
|
||||
if($this->pdfPref['pdf_show_page_url'])
|
||||
{
|
||||
$m += 5;
|
||||
}
|
||||
if($this->pdfPref['pdf_show_page_number'])
|
||||
{
|
||||
$m += 5;
|
||||
}
|
||||
$this->SetX($imgx); // May not be needed
|
||||
$newY = max($topMargin, $imgy - $m);
|
||||
$this->SetY($newY); //Room to right of logo - calculate space to line up bottom of text with bottom of logo
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->SetY($topMargin);
|
||||
}
|
||||
|
||||
// Now print text - 'cursor' positioned in correct start position
|
||||
$cellwidth = $pageWidth - $this->GetX()-$this->rMargin;
|
||||
$align = 'R';
|
||||
// echo "imgx: {$imgx} imgy: {$imgy} cellwidth: {$cellwidth} m: {$m} <br />";
|
||||
if($this->pdfPref['pdf_show_sitename'])
|
||||
{
|
||||
$this->SetFont($this->pdfPref['pdf_font_family'],'B',$this->pdfPref['pdf_font_size_sitename']);
|
||||
$this->Cell($cellwidth,5,SITENAME,0,1,$align);
|
||||
}
|
||||
if($this->pdfPref['pdf_show_page_url'])
|
||||
{
|
||||
$this->SetFont($this->pdfPref['pdf_font_family'],'I',$this->pdfPref['pdf_font_size_page_url']);
|
||||
$this->Cell($cellwidth,5,PDFPAGEURL,0,1,$align,'',PDFPAGEURL);
|
||||
}
|
||||
if($this->pdfPref['pdf_show_page_number'])
|
||||
{
|
||||
$this->SetFont($this->pdfPref['pdf_font_family'],'I',$this->pdfPref['pdf_font_size_page_number']);
|
||||
//$this->Cell($cellwidth,5,PDF_LAN_19.' '.$this->PageNo().'/{nb}',0,1,$align); // {nb} is an alias for the total number of pages
|
||||
$this->Cell($cellwidth,5,PDF_LAN_19.' '.$this->getAliasNumPage().'/'.$this->getAliasNbPages(),0,1,$align);
|
||||
}
|
||||
|
||||
$this->SetFont($this->pdfPref['pdf_font_family'],'',$this->pdfPref['pdf_font_size']);
|
||||
|
||||
// Following cloned from tcpdf header function
|
||||
$this->SetY((2.835 / $this->getScaleFactor()) + max($imgy, $this->GetY())); // 2.835 is number of pixels per mm
|
||||
if ($this->getRTL())
|
||||
{
|
||||
$this->SetX($ormargins['right']);
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->SetX($ormargins['left']);
|
||||
}
|
||||
$this->Cell(0, 0, '', 'T', 0, 'C'); // This puts a line between header and text
|
||||
|
||||
$this->SetTopMargin($this->GetY()+2); // FIXME: Bodge to force main body text to start below header
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Override standard function to use our own font directory
|
||||
*/
|
||||
protected function _getfontpath()
|
||||
{
|
||||
//return str_replace(e_HTTP, e_ROOT, e_PLUGIN_ABS.'pdf/fonts/');
|
||||
return e_PLUGIN.'pdf/fonts/';
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Called by tcpdf when it encounters a file reference - e.g. source file name in 'img' tag - so we can tweak the source path
|
||||
* (tcpdf modified to check for a class extension which adds this method)
|
||||
* @param string $fileName - name of file as it appears in the 'src' parameter
|
||||
* @param string $source - name of tag which provoked call (might be useful to affect encoding)
|
||||
* @return string - file name adjusted to suit tcpdf
|
||||
*/
|
||||
function filePathModify($fileName, $source = '')
|
||||
{
|
||||
// This handles the fact that local images use absolute links in web pages
|
||||
if (strpos($fileName, SITEURL) === 0)
|
||||
{
|
||||
$fileName = e_BASE.str_replace(SITEURL, '', $fileName);
|
||||
return $fileName;
|
||||
}
|
||||
|
||||
// Leave off-site links unchanged
|
||||
if (strpos($fileName, 'http://') === 0) return $fileName;
|
||||
if (strpos($fileName, 'https://') === 0) return $fileName;
|
||||
if (strpos($fileName, 'ftp://') === 0) return $fileName;
|
||||
|
||||
// Assumed to be a 'local' link here
|
||||
if (substr($fileName,0,1) == '/')
|
||||
{ // Its an absolute file reference
|
||||
return str_replace(e_HTTP,e_ROOT,$fileName);
|
||||
}
|
||||
else
|
||||
{ // Its a relative link
|
||||
return realpath($fileName);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
?>
|
@ -1,846 +0,0 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : encodings_maps.php
|
||||
// Version : 1.0.001
|
||||
// Begin : 2011-10-01
|
||||
// Last Update : 2011-11-15
|
||||
// Author : Nicola Asuni - Tecnick.com LTD - Manor Coach House, Church Hill, Aldershot, Hants, GU12 4RQ, UK - www.tecnick.com - info@tecnick.com
|
||||
// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
|
||||
// -------------------------------------------------------------------
|
||||
// Copyright (C) 2008-2012 Nicola Asuni - Tecnick.com LTD
|
||||
//
|
||||
// This file is part of TCPDF software library.
|
||||
//
|
||||
// TCPDF is free software: you can redistribute it and/or modify it
|
||||
// under the terms of the GNU Lesser General Public License as
|
||||
// published by the Free Software Foundation, either version 3 of the
|
||||
// License, or (at your option) any later version.
|
||||
//
|
||||
// TCPDF is distributed in the hope that it will be useful, but
|
||||
// WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
// See the GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public License
|
||||
// along with TCPDF. If not, see <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
// See LICENSE.TXT file for more information.
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
// Description : Unicode data for TCPDF library.
|
||||
//
|
||||
//============================================================+
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Font encodings maps class for TCPDF library.
|
||||
* @author Nicola Asuni
|
||||
* @package com.tecnick.tcpdf
|
||||
* @since 5.9.123 (2011-10-01)
|
||||
*/
|
||||
|
||||
/**
|
||||
* @class TCPDF_ENCODING_MAPS
|
||||
* This is a PHP class containing Font encodings maps class for TCPDF library.
|
||||
* @package com.tecnick.tcpdf
|
||||
* @version 1.0.000
|
||||
* @author Nicola Asuni - info@tecnick.com
|
||||
*/
|
||||
class TCPDF_ENCODING_MAPS {
|
||||
|
||||
/**
|
||||
* Array of Encoding Maps.
|
||||
* @public
|
||||
*/
|
||||
public $encmap = array(
|
||||
|
||||
// encoding map for: cp1251
|
||||
'cp1251' => array(0=>'.notdef',1=>'.notdef',2=>'.notdef',3=>'.notdef',4=>'.notdef',5=>'.notdef',6=>'.notdef',7=>'.notdef',
|
||||
8=>'.notdef',9=>'.notdef',10=>'.notdef',11=>'.notdef',12=>'.notdef',13=>'.notdef',14=>'.notdef',15=>'.notdef',
|
||||
16=>'.notdef',17=>'.notdef',18=>'.notdef',19=>'.notdef',20=>'.notdef',21=>'.notdef',22=>'.notdef',23=>'.notdef',
|
||||
24=>'.notdef',25=>'.notdef',26=>'.notdef',27=>'.notdef',28=>'.notdef',29=>'.notdef',30=>'.notdef',31=>'.notdef',
|
||||
32=>'space',33=>'exclam',34=>'quotedbl',35=>'numbersign',36=>'dollar',37=>'percent',38=>'ampersand',39=>'quotesingle',
|
||||
40=>'parenleft',41=>'parenright',42=>'asterisk',43=>'plus',44=>'comma',45=>'hyphen',46=>'period',47=>'slash',
|
||||
48=>'zero',49=>'one',50=>'two',51=>'three',52=>'four',53=>'five',54=>'six',55=>'seven',
|
||||
56=>'eight',57=>'nine',58=>'colon',59=>'semicolon',60=>'less',61=>'equal',62=>'greater',63=>'question',
|
||||
64=>'at',65=>'A',66=>'B',67=>'C',68=>'D',69=>'E',70=>'F',71=>'G',
|
||||
72=>'H',73=>'I',74=>'J',75=>'K',76=>'L',77=>'M',78=>'N',79=>'O',
|
||||
80=>'P',81=>'Q',82=>'R',83=>'S',84=>'T',85=>'U',86=>'V',87=>'W',
|
||||
88=>'X',89=>'Y',90=>'Z',91=>'bracketleft',92=>'backslash',93=>'bracketright',94=>'asciicircum',95=>'underscore',
|
||||
96=>'grave',97=>'a',98=>'b',99=>'c',100=>'d',101=>'e',102=>'f',103=>'g',
|
||||
104=>'h',105=>'i',106=>'j',107=>'k',108=>'l',109=>'m',110=>'n',111=>'o',
|
||||
112=>'p',113=>'q',114=>'r',115=>'s',116=>'t',117=>'u',118=>'v',119=>'w',
|
||||
120=>'x',121=>'y',122=>'z',123=>'braceleft',124=>'bar',125=>'braceright',126=>'asciitilde',127=>'.notdef',
|
||||
128=>'afii10051',129=>'afii10052',130=>'quotesinglbase',131=>'afii10100',132=>'quotedblbase',133=>'ellipsis',134=>'dagger',135=>'daggerdbl',
|
||||
136=>'Euro',137=>'perthousand',138=>'afii10058',139=>'guilsinglleft',140=>'afii10059',141=>'afii10061',142=>'afii10060',143=>'afii10145',
|
||||
144=>'afii10099',145=>'quoteleft',146=>'quoteright',147=>'quotedblleft',148=>'quotedblright',149=>'bullet',150=>'endash',151=>'emdash',
|
||||
152=>'.notdef',153=>'trademark',154=>'afii10106',155=>'guilsinglright',156=>'afii10107',157=>'afii10109',158=>'afii10108',159=>'afii10193',
|
||||
160=>'space',161=>'afii10062',162=>'afii10110',163=>'afii10057',164=>'currency',165=>'afii10050',166=>'brokenbar',167=>'section',
|
||||
168=>'afii10023',169=>'copyright',170=>'afii10053',171=>'guillemotleft',172=>'logicalnot',173=>'hyphen',174=>'registered',175=>'afii10056',
|
||||
176=>'degree',177=>'plusminus',178=>'afii10055',179=>'afii10103',180=>'afii10098',181=>'mu',182=>'paragraph',183=>'periodcentered',
|
||||
184=>'afii10071',185=>'afii61352',186=>'afii10101',187=>'guillemotright',188=>'afii10105',189=>'afii10054',190=>'afii10102',191=>'afii10104',
|
||||
192=>'afii10017',193=>'afii10018',194=>'afii10019',195=>'afii10020',196=>'afii10021',197=>'afii10022',198=>'afii10024',199=>'afii10025',
|
||||
200=>'afii10026',201=>'afii10027',202=>'afii10028',203=>'afii10029',204=>'afii10030',205=>'afii10031',206=>'afii10032',207=>'afii10033',
|
||||
208=>'afii10034',209=>'afii10035',210=>'afii10036',211=>'afii10037',212=>'afii10038',213=>'afii10039',214=>'afii10040',215=>'afii10041',
|
||||
216=>'afii10042',217=>'afii10043',218=>'afii10044',219=>'afii10045',220=>'afii10046',221=>'afii10047',222=>'afii10048',223=>'afii10049',
|
||||
224=>'afii10065',225=>'afii10066',226=>'afii10067',227=>'afii10068',228=>'afii10069',229=>'afii10070',230=>'afii10072',231=>'afii10073',
|
||||
232=>'afii10074',233=>'afii10075',234=>'afii10076',235=>'afii10077',236=>'afii10078',237=>'afii10079',238=>'afii10080',239=>'afii10081',
|
||||
240=>'afii10082',241=>'afii10083',242=>'afii10084',243=>'afii10085',244=>'afii10086',245=>'afii10087',246=>'afii10088',247=>'afii10089',
|
||||
248=>'afii10090',249=>'afii10091',250=>'afii10092',251=>'afii10093',252=>'afii10094',253=>'afii10095',254=>'afii10096',255=>'afii10097'),
|
||||
|
||||
// encoding map for: iso-8859-4
|
||||
'iso-8859-4' => array(0=>'.notdef',1=>'.notdef',2=>'.notdef',3=>'.notdef',4=>'.notdef',5=>'.notdef',6=>'.notdef',7=>'.notdef',
|
||||
8=>'.notdef',9=>'.notdef',10=>'.notdef',11=>'.notdef',12=>'.notdef',13=>'.notdef',14=>'.notdef',15=>'.notdef',
|
||||
16=>'.notdef',17=>'.notdef',18=>'.notdef',19=>'.notdef',20=>'.notdef',21=>'.notdef',22=>'.notdef',23=>'.notdef',
|
||||
24=>'.notdef',25=>'.notdef',26=>'.notdef',27=>'.notdef',28=>'.notdef',29=>'.notdef',30=>'.notdef',31=>'.notdef',
|
||||
32=>'space',33=>'exclam',34=>'quotedbl',35=>'numbersign',36=>'dollar',37=>'percent',38=>'ampersand',39=>'quotesingle',
|
||||
40=>'parenleft',41=>'parenright',42=>'asterisk',43=>'plus',44=>'comma',45=>'hyphen',46=>'period',47=>'slash',
|
||||
48=>'zero',49=>'one',50=>'two',51=>'three',52=>'four',53=>'five',54=>'six',55=>'seven',
|
||||
56=>'eight',57=>'nine',58=>'colon',59=>'semicolon',60=>'less',61=>'equal',62=>'greater',63=>'question',
|
||||
64=>'at',65=>'A',66=>'B',67=>'C',68=>'D',69=>'E',70=>'F',71=>'G',
|
||||
72=>'H',73=>'I',74=>'J',75=>'K',76=>'L',77=>'M',78=>'N',79=>'O',
|
||||
80=>'P',81=>'Q',82=>'R',83=>'S',84=>'T',85=>'U',86=>'V',87=>'W',
|
||||
88=>'X',89=>'Y',90=>'Z',91=>'bracketleft',92=>'backslash',93=>'bracketright',94=>'asciicircum',95=>'underscore',
|
||||
96=>'grave',97=>'a',98=>'b',99=>'c',100=>'d',101=>'e',102=>'f',103=>'g',
|
||||
104=>'h',105=>'i',106=>'j',107=>'k',108=>'l',109=>'m',110=>'n',111=>'o',
|
||||
112=>'p',113=>'q',114=>'r',115=>'s',116=>'t',117=>'u',118=>'v',119=>'w',
|
||||
120=>'x',121=>'y',122=>'z',123=>'braceleft',124=>'bar',125=>'braceright',126=>'asciitilde',127=>'.notdef',
|
||||
128=>'.notdef',129=>'.notdef',130=>'.notdef',131=>'.notdef',132=>'.notdef',133=>'.notdef',134=>'.notdef',135=>'.notdef',
|
||||
136=>'.notdef',137=>'.notdef',138=>'.notdef',139=>'.notdef',140=>'.notdef',141=>'.notdef',142=>'.notdef',143=>'.notdef',
|
||||
144=>'.notdef',145=>'.notdef',146=>'.notdef',147=>'.notdef',148=>'.notdef',149=>'.notdef',150=>'.notdef',151=>'.notdef',
|
||||
152=>'.notdef',153=>'.notdef',154=>'.notdef',155=>'.notdef',156=>'.notdef',157=>'.notdef',158=>'.notdef',159=>'.notdef',
|
||||
160=>'space',161=>'Aogonek',162=>'kgreenlandic',163=>'Rcommaaccent',164=>'currency',165=>'Itilde',166=>'Lcommaaccent',167=>'section',
|
||||
168=>'dieresis',169=>'Scaron',170=>'Emacron',171=>'Gcommaaccent',172=>'Tbar',173=>'hyphen',174=>'Zcaron',175=>'macron',
|
||||
176=>'degree',177=>'aogonek',178=>'ogonek',179=>'rcommaaccent',180=>'acute',181=>'itilde',182=>'lcommaaccent',183=>'caron',
|
||||
184=>'cedilla',185=>'scaron',186=>'emacron',187=>'gcommaaccent',188=>'tbar',189=>'Eng',190=>'zcaron',191=>'eng',
|
||||
192=>'Amacron',193=>'Aacute',194=>'Acircumflex',195=>'Atilde',196=>'Adieresis',197=>'Aring',198=>'AE',199=>'Iogonek',
|
||||
200=>'Ccaron',201=>'Eacute',202=>'Eogonek',203=>'Edieresis',204=>'Edotaccent',205=>'Iacute',206=>'Icircumflex',207=>'Imacron',
|
||||
208=>'Dcroat',209=>'Ncommaaccent',210=>'Omacron',211=>'Kcommaaccent',212=>'Ocircumflex',213=>'Otilde',214=>'Odieresis',215=>'multiply',
|
||||
216=>'Oslash',217=>'Uogonek',218=>'Uacute',219=>'Ucircumflex',220=>'Udieresis',221=>'Utilde',222=>'Umacron',223=>'germandbls',
|
||||
224=>'amacron',225=>'aacute',226=>'acircumflex',227=>'atilde',228=>'adieresis',229=>'aring',230=>'ae',231=>'iogonek',
|
||||
232=>'ccaron',233=>'eacute',234=>'eogonek',235=>'edieresis',236=>'edotaccent',237=>'iacute',238=>'icircumflex',239=>'imacron',
|
||||
240=>'dcroat',241=>'ncommaaccent',242=>'omacron',243=>'kcommaaccent',244=>'ocircumflex',245=>'otilde',246=>'odieresis',247=>'divide',
|
||||
248=>'oslash',249=>'uogonek',250=>'uacute',251=>'ucircumflex',252=>'udieresis',253=>'utilde',254=>'umacron',255=>'dotaccent'),
|
||||
|
||||
// encoding map for: cp1255
|
||||
'cp1255' => array(0=>'.notdef',1=>'.notdef',2=>'.notdef',3=>'.notdef',4=>'.notdef',5=>'.notdef',6=>'.notdef',7=>'.notdef',
|
||||
8=>'.notdef',9=>'.notdef',10=>'.notdef',11=>'.notdef',12=>'.notdef',13=>'.notdef',14=>'.notdef',15=>'.notdef',
|
||||
16=>'.notdef',17=>'.notdef',18=>'.notdef',19=>'.notdef',20=>'.notdef',21=>'.notdef',22=>'.notdef',23=>'.notdef',
|
||||
24=>'.notdef',25=>'.notdef',26=>'.notdef',27=>'.notdef',28=>'.notdef',29=>'.notdef',30=>'.notdef',31=>'.notdef',
|
||||
32=>'space',33=>'exclam',34=>'quotedbl',35=>'numbersign',36=>'dollar',37=>'percent',38=>'ampersand',39=>'quotesingle',
|
||||
40=>'parenleft',41=>'parenright',42=>'asterisk',43=>'plus',44=>'comma',45=>'hyphen',46=>'period',47=>'slash',
|
||||
48=>'zero',49=>'one',50=>'two',51=>'three',52=>'four',53=>'five',54=>'six',55=>'seven',
|
||||
56=>'eight',57=>'nine',58=>'colon',59=>'semicolon',60=>'less',61=>'equal',62=>'greater',63=>'question',
|
||||
64=>'at',65=>'A',66=>'B',67=>'C',68=>'D',69=>'E',70=>'F',71=>'G',
|
||||
72=>'H',73=>'I',74=>'J',75=>'K',76=>'L',77=>'M',78=>'N',79=>'O',
|
||||
80=>'P',81=>'Q',82=>'R',83=>'S',84=>'T',85=>'U',86=>'V',87=>'W',
|
||||
88=>'X',89=>'Y',90=>'Z',91=>'bracketleft',92=>'backslash',93=>'bracketright',94=>'asciicircum',95=>'underscore',
|
||||
96=>'grave',97=>'a',98=>'b',99=>'c',100=>'d',101=>'e',102=>'f',103=>'g',
|
||||
104=>'h',105=>'i',106=>'j',107=>'k',108=>'l',109=>'m',110=>'n',111=>'o',
|
||||
112=>'p',113=>'q',114=>'r',115=>'s',116=>'t',117=>'u',118=>'v',119=>'w',
|
||||
120=>'x',121=>'y',122=>'z',123=>'braceleft',124=>'bar',125=>'braceright',126=>'asciitilde',127=>'.notdef',
|
||||
128=>'Euro',129=>'.notdef',130=>'quotesinglbase',131=>'florin',132=>'quotedblbase',133=>'ellipsis',134=>'dagger',135=>'daggerdbl',
|
||||
136=>'circumflex',137=>'perthousand',138=>'.notdef',139=>'guilsinglleft',140=>'.notdef',141=>'.notdef',142=>'.notdef',143=>'.notdef',
|
||||
144=>'.notdef',145=>'quoteleft',146=>'quoteright',147=>'quotedblleft',148=>'quotedblright',149=>'bullet',150=>'endash',151=>'emdash',
|
||||
152=>'tilde',153=>'trademark',154=>'.notdef',155=>'guilsinglright',156=>'.notdef',157=>'.notdef',158=>'.notdef',159=>'.notdef',
|
||||
160=>'space',161=>'exclamdown',162=>'cent',163=>'sterling',164=>'afii57636',165=>'yen',166=>'brokenbar',167=>'section',
|
||||
168=>'dieresis',169=>'copyright',170=>'multiply',171=>'guillemotleft',172=>'logicalnot',173=>'sfthyphen',174=>'registered',175=>'macron',
|
||||
176=>'degree',177=>'plusminus',178=>'twosuperior',179=>'threesuperior',180=>'acute',181=>'mu',182=>'paragraph',183=>'middot',
|
||||
184=>'cedilla',185=>'onesuperior',186=>'divide',187=>'guillemotright',188=>'onequarter',189=>'onehalf',190=>'threequarters',191=>'questiondown',
|
||||
192=>'afii57799',193=>'afii57801',194=>'afii57800',195=>'afii57802',196=>'afii57793',197=>'afii57794',198=>'afii57795',199=>'afii57798',
|
||||
200=>'afii57797',201=>'afii57806',202=>'.notdef',203=>'afii57796',204=>'afii57807',205=>'afii57839',206=>'afii57645',207=>'afii57841',
|
||||
208=>'afii57842',209=>'afii57804',210=>'afii57803',211=>'afii57658',212=>'afii57716',213=>'afii57717',214=>'afii57718',215=>'gereshhebrew',
|
||||
216=>'gershayimhebrew',217=>'.notdef',218=>'.notdef',219=>'.notdef',220=>'.notdef',221=>'.notdef',222=>'.notdef',223=>'.notdef',
|
||||
224=>'afii57664',225=>'afii57665',226=>'afii57666',227=>'afii57667',228=>'afii57668',229=>'afii57669',230=>'afii57670',231=>'afii57671',
|
||||
232=>'afii57672',233=>'afii57673',234=>'afii57674',235=>'afii57675',236=>'afii57676',237=>'afii57677',238=>'afii57678',239=>'afii57679',
|
||||
240=>'afii57680',241=>'afii57681',242=>'afii57682',243=>'afii57683',244=>'afii57684',245=>'afii57685',246=>'afii57686',247=>'afii57687',
|
||||
248=>'afii57688',249=>'afii57689',250=>'afii57690',251=>'.notdef',252=>'.notdef',253=>'afii299',254=>'afii300',255=>'.notdef'),
|
||||
|
||||
// encoding map for: iso-8859-11
|
||||
'iso-8859-11' => array(0=>'.notdef',1=>'.notdef',2=>'.notdef',3=>'.notdef',4=>'.notdef',5=>'.notdef',6=>'.notdef',7=>'.notdef',
|
||||
8=>'.notdef',9=>'.notdef',10=>'.notdef',11=>'.notdef',12=>'.notdef',13=>'.notdef',14=>'.notdef',15=>'.notdef',
|
||||
16=>'.notdef',17=>'.notdef',18=>'.notdef',19=>'.notdef',20=>'.notdef',21=>'.notdef',22=>'.notdef',23=>'.notdef',
|
||||
24=>'.notdef',25=>'.notdef',26=>'.notdef',27=>'.notdef',28=>'.notdef',29=>'.notdef',30=>'.notdef',31=>'.notdef',
|
||||
32=>'space',33=>'exclam',34=>'quotedbl',35=>'numbersign',36=>'dollar',37=>'percent',38=>'ampersand',39=>'quotesingle',
|
||||
40=>'parenleft',41=>'parenright',42=>'asterisk',43=>'plus',44=>'comma',45=>'hyphen',46=>'period',47=>'slash',
|
||||
48=>'zero',49=>'one',50=>'two',51=>'three',52=>'four',53=>'five',54=>'six',55=>'seven',
|
||||
56=>'eight',57=>'nine',58=>'colon',59=>'semicolon',60=>'less',61=>'equal',62=>'greater',63=>'question',
|
||||
64=>'at',65=>'A',66=>'B',67=>'C',68=>'D',69=>'E',70=>'F',71=>'G',
|
||||
72=>'H',73=>'I',74=>'J',75=>'K',76=>'L',77=>'M',78=>'N',79=>'O',
|
||||
80=>'P',81=>'Q',82=>'R',83=>'S',84=>'T',85=>'U',86=>'V',87=>'W',
|
||||
88=>'X',89=>'Y',90=>'Z',91=>'bracketleft',92=>'backslash',93=>'bracketright',94=>'asciicircum',95=>'underscore',
|
||||
96=>'grave',97=>'a',98=>'b',99=>'c',100=>'d',101=>'e',102=>'f',103=>'g',
|
||||
104=>'h',105=>'i',106=>'j',107=>'k',108=>'l',109=>'m',110=>'n',111=>'o',
|
||||
112=>'p',113=>'q',114=>'r',115=>'s',116=>'t',117=>'u',118=>'v',119=>'w',
|
||||
120=>'x',121=>'y',122=>'z',123=>'braceleft',124=>'bar',125=>'braceright',126=>'asciitilde',127=>'.notdef',
|
||||
128=>'.notdef',129=>'.notdef',130=>'.notdef',131=>'.notdef',132=>'.notdef',133=>'.notdef',134=>'.notdef',135=>'.notdef',
|
||||
136=>'.notdef',137=>'.notdef',138=>'.notdef',139=>'.notdef',140=>'.notdef',141=>'.notdef',142=>'.notdef',143=>'.notdef',
|
||||
144=>'.notdef',145=>'.notdef',146=>'.notdef',147=>'.notdef',148=>'.notdef',149=>'.notdef',150=>'.notdef',151=>'.notdef',
|
||||
152=>'.notdef',153=>'.notdef',154=>'.notdef',155=>'.notdef',156=>'.notdef',157=>'.notdef',158=>'.notdef',159=>'.notdef',
|
||||
160=>'space',161=>'kokaithai',162=>'khokhaithai',163=>'khokhuatthai',164=>'khokhwaithai',165=>'khokhonthai',166=>'khorakhangthai',167=>'ngonguthai',
|
||||
168=>'chochanthai',169=>'chochingthai',170=>'chochangthai',171=>'sosothai',172=>'chochoethai',173=>'yoyingthai',174=>'dochadathai',175=>'topatakthai',
|
||||
176=>'thothanthai',177=>'thonangmonthothai',178=>'thophuthaothai',179=>'nonenthai',180=>'dodekthai',181=>'totaothai',182=>'thothungthai',183=>'thothahanthai',
|
||||
184=>'thothongthai',185=>'nonuthai',186=>'bobaimaithai',187=>'poplathai',188=>'phophungthai',189=>'fofathai',190=>'phophanthai',191=>'fofanthai',
|
||||
192=>'phosamphaothai',193=>'momathai',194=>'yoyakthai',195=>'roruathai',196=>'ruthai',197=>'lolingthai',198=>'luthai',199=>'wowaenthai',
|
||||
200=>'sosalathai',201=>'sorusithai',202=>'sosuathai',203=>'hohipthai',204=>'lochulathai',205=>'oangthai',206=>'honokhukthai',207=>'paiyannoithai',
|
||||
208=>'saraathai',209=>'maihanakatthai',210=>'saraaathai',211=>'saraamthai',212=>'saraithai',213=>'saraiithai',214=>'sarauethai',215=>'saraueethai',
|
||||
216=>'sarauthai',217=>'sarauuthai',218=>'phinthuthai',219=>'.notdef',220=>'.notdef',221=>'.notdef',222=>'.notdef',223=>'bahtthai',
|
||||
224=>'saraethai',225=>'saraaethai',226=>'saraothai',227=>'saraaimaimuanthai',228=>'saraaimaimalaithai',229=>'lakkhangyaothai',230=>'maiyamokthai',231=>'maitaikhuthai',
|
||||
232=>'maiekthai',233=>'maithothai',234=>'maitrithai',235=>'maichattawathai',236=>'thanthakhatthai',237=>'nikhahitthai',238=>'yamakkanthai',239=>'fongmanthai',
|
||||
240=>'zerothai',241=>'onethai',242=>'twothai',243=>'threethai',244=>'fourthai',245=>'fivethai',246=>'sixthai',247=>'seventhai',
|
||||
248=>'eightthai',249=>'ninethai',250=>'angkhankhuthai',251=>'khomutthai',252=>'.notdef',253=>'.notdef',254=>'.notdef',255=>'.notdef'),
|
||||
|
||||
// encoding map for: cp1257
|
||||
'cp1257' => array(0=>'.notdef',1=>'.notdef',2=>'.notdef',3=>'.notdef',4=>'.notdef',5=>'.notdef',6=>'.notdef',7=>'.notdef',
|
||||
8=>'.notdef',9=>'.notdef',10=>'.notdef',11=>'.notdef',12=>'.notdef',13=>'.notdef',14=>'.notdef',15=>'.notdef',
|
||||
16=>'.notdef',17=>'.notdef',18=>'.notdef',19=>'.notdef',20=>'.notdef',21=>'.notdef',22=>'.notdef',23=>'.notdef',
|
||||
24=>'.notdef',25=>'.notdef',26=>'.notdef',27=>'.notdef',28=>'.notdef',29=>'.notdef',30=>'.notdef',31=>'.notdef',
|
||||
32=>'space',33=>'exclam',34=>'quotedbl',35=>'numbersign',36=>'dollar',37=>'percent',38=>'ampersand',39=>'quotesingle',
|
||||
40=>'parenleft',41=>'parenright',42=>'asterisk',43=>'plus',44=>'comma',45=>'hyphen',46=>'period',47=>'slash',
|
||||
48=>'zero',49=>'one',50=>'two',51=>'three',52=>'four',53=>'five',54=>'six',55=>'seven',
|
||||
56=>'eight',57=>'nine',58=>'colon',59=>'semicolon',60=>'less',61=>'equal',62=>'greater',63=>'question',
|
||||
64=>'at',65=>'A',66=>'B',67=>'C',68=>'D',69=>'E',70=>'F',71=>'G',
|
||||
72=>'H',73=>'I',74=>'J',75=>'K',76=>'L',77=>'M',78=>'N',79=>'O',
|
||||
80=>'P',81=>'Q',82=>'R',83=>'S',84=>'T',85=>'U',86=>'V',87=>'W',
|
||||
88=>'X',89=>'Y',90=>'Z',91=>'bracketleft',92=>'backslash',93=>'bracketright',94=>'asciicircum',95=>'underscore',
|
||||
96=>'grave',97=>'a',98=>'b',99=>'c',100=>'d',101=>'e',102=>'f',103=>'g',
|
||||
104=>'h',105=>'i',106=>'j',107=>'k',108=>'l',109=>'m',110=>'n',111=>'o',
|
||||
112=>'p',113=>'q',114=>'r',115=>'s',116=>'t',117=>'u',118=>'v',119=>'w',
|
||||
120=>'x',121=>'y',122=>'z',123=>'braceleft',124=>'bar',125=>'braceright',126=>'asciitilde',127=>'.notdef',
|
||||
128=>'Euro',129=>'.notdef',130=>'quotesinglbase',131=>'.notdef',132=>'quotedblbase',133=>'ellipsis',134=>'dagger',135=>'daggerdbl',
|
||||
136=>'.notdef',137=>'perthousand',138=>'.notdef',139=>'guilsinglleft',140=>'.notdef',141=>'dieresis',142=>'caron',143=>'cedilla',
|
||||
144=>'.notdef',145=>'quoteleft',146=>'quoteright',147=>'quotedblleft',148=>'quotedblright',149=>'bullet',150=>'endash',151=>'emdash',
|
||||
152=>'.notdef',153=>'trademark',154=>'.notdef',155=>'guilsinglright',156=>'.notdef',157=>'macron',158=>'ogonek',159=>'.notdef',
|
||||
160=>'space',161=>'.notdef',162=>'cent',163=>'sterling',164=>'currency',165=>'.notdef',166=>'brokenbar',167=>'section',
|
||||
168=>'Oslash',169=>'copyright',170=>'Rcommaaccent',171=>'guillemotleft',172=>'logicalnot',173=>'hyphen',174=>'registered',175=>'AE',
|
||||
176=>'degree',177=>'plusminus',178=>'twosuperior',179=>'threesuperior',180=>'acute',181=>'mu',182=>'paragraph',183=>'periodcentered',
|
||||
184=>'oslash',185=>'onesuperior',186=>'rcommaaccent',187=>'guillemotright',188=>'onequarter',189=>'onehalf',190=>'threequarters',191=>'ae',
|
||||
192=>'Aogonek',193=>'Iogonek',194=>'Amacron',195=>'Cacute',196=>'Adieresis',197=>'Aring',198=>'Eogonek',199=>'Emacron',
|
||||
200=>'Ccaron',201=>'Eacute',202=>'Zacute',203=>'Edotaccent',204=>'Gcommaaccent',205=>'Kcommaaccent',206=>'Imacron',207=>'Lcommaaccent',
|
||||
208=>'Scaron',209=>'Nacute',210=>'Ncommaaccent',211=>'Oacute',212=>'Omacron',213=>'Otilde',214=>'Odieresis',215=>'multiply',
|
||||
216=>'Uogonek',217=>'Lslash',218=>'Sacute',219=>'Umacron',220=>'Udieresis',221=>'Zdotaccent',222=>'Zcaron',223=>'germandbls',
|
||||
224=>'aogonek',225=>'iogonek',226=>'amacron',227=>'cacute',228=>'adieresis',229=>'aring',230=>'eogonek',231=>'emacron',
|
||||
232=>'ccaron',233=>'eacute',234=>'zacute',235=>'edotaccent',236=>'gcommaaccent',237=>'kcommaaccent',238=>'imacron',239=>'lcommaaccent',
|
||||
240=>'scaron',241=>'nacute',242=>'ncommaaccent',243=>'oacute',244=>'omacron',245=>'otilde',246=>'odieresis',247=>'divide',
|
||||
248=>'uogonek',249=>'lslash',250=>'sacute',251=>'umacron',252=>'udieresis',253=>'zdotaccent',254=>'zcaron',255=>'dotaccent'),
|
||||
|
||||
// encoding map for: cp1258
|
||||
'cp1258' => array(0=>'.notdef',1=>'.notdef',2=>'.notdef',3=>'.notdef',4=>'.notdef',5=>'.notdef',6=>'.notdef',7=>'.notdef',
|
||||
8=>'.notdef',9=>'.notdef',10=>'.notdef',11=>'.notdef',12=>'.notdef',13=>'.notdef',14=>'.notdef',15=>'.notdef',
|
||||
16=>'.notdef',17=>'.notdef',18=>'.notdef',19=>'.notdef',20=>'.notdef',21=>'.notdef',22=>'.notdef',23=>'.notdef',
|
||||
24=>'.notdef',25=>'.notdef',26=>'.notdef',27=>'.notdef',28=>'.notdef',29=>'.notdef',30=>'.notdef',31=>'.notdef',
|
||||
32=>'space',33=>'exclam',34=>'quotedbl',35=>'numbersign',36=>'dollar',37=>'percent',38=>'ampersand',39=>'quotesingle',
|
||||
40=>'parenleft',41=>'parenright',42=>'asterisk',43=>'plus',44=>'comma',45=>'hyphen',46=>'period',47=>'slash',
|
||||
48=>'zero',49=>'one',50=>'two',51=>'three',52=>'four',53=>'five',54=>'six',55=>'seven',
|
||||
56=>'eight',57=>'nine',58=>'colon',59=>'semicolon',60=>'less',61=>'equal',62=>'greater',63=>'question',
|
||||
64=>'at',65=>'A',66=>'B',67=>'C',68=>'D',69=>'E',70=>'F',71=>'G',
|
||||
72=>'H',73=>'I',74=>'J',75=>'K',76=>'L',77=>'M',78=>'N',79=>'O',
|
||||
80=>'P',81=>'Q',82=>'R',83=>'S',84=>'T',85=>'U',86=>'V',87=>'W',
|
||||
88=>'X',89=>'Y',90=>'Z',91=>'bracketleft',92=>'backslash',93=>'bracketright',94=>'asciicircum',95=>'underscore',
|
||||
96=>'grave',97=>'a',98=>'b',99=>'c',100=>'d',101=>'e',102=>'f',103=>'g',
|
||||
104=>'h',105=>'i',106=>'j',107=>'k',108=>'l',109=>'m',110=>'n',111=>'o',
|
||||
112=>'p',113=>'q',114=>'r',115=>'s',116=>'t',117=>'u',118=>'v',119=>'w',
|
||||
120=>'x',121=>'y',122=>'z',123=>'braceleft',124=>'bar',125=>'braceright',126=>'asciitilde',127=>'.notdef',
|
||||
128=>'Euro',129=>'.notdef',130=>'quotesinglbase',131=>'florin',132=>'quotedblbase',133=>'ellipsis',134=>'dagger',135=>'daggerdbl',
|
||||
136=>'circumflex',137=>'perthousand',138=>'.notdef',139=>'guilsinglleft',140=>'OE',141=>'.notdef',142=>'.notdef',143=>'.notdef',
|
||||
144=>'.notdef',145=>'quoteleft',146=>'quoteright',147=>'quotedblleft',148=>'quotedblright',149=>'bullet',150=>'endash',151=>'emdash',
|
||||
152=>'tilde',153=>'trademark',154=>'.notdef',155=>'guilsinglright',156=>'oe',157=>'.notdef',158=>'.notdef',159=>'Ydieresis',
|
||||
160=>'space',161=>'exclamdown',162=>'cent',163=>'sterling',164=>'currency',165=>'yen',166=>'brokenbar',167=>'section',
|
||||
168=>'dieresis',169=>'copyright',170=>'ordfeminine',171=>'guillemotleft',172=>'logicalnot',173=>'hyphen',174=>'registered',175=>'macron',
|
||||
176=>'degree',177=>'plusminus',178=>'twosuperior',179=>'threesuperior',180=>'acute',181=>'mu',182=>'paragraph',183=>'periodcentered',
|
||||
184=>'cedilla',185=>'onesuperior',186=>'ordmasculine',187=>'guillemotright',188=>'onequarter',189=>'onehalf',190=>'threequarters',191=>'questiondown',
|
||||
192=>'Agrave',193=>'Aacute',194=>'Acircumflex',195=>'Abreve',196=>'Adieresis',197=>'Aring',198=>'AE',199=>'Ccedilla',
|
||||
200=>'Egrave',201=>'Eacute',202=>'Ecircumflex',203=>'Edieresis',204=>'gravecomb',205=>'Iacute',206=>'Icircumflex',207=>'Idieresis',
|
||||
208=>'Dcroat',209=>'Ntilde',210=>'hookabovecomb',211=>'Oacute',212=>'Ocircumflex',213=>'Ohorn',214=>'Odieresis',215=>'multiply',
|
||||
216=>'Oslash',217=>'Ugrave',218=>'Uacute',219=>'Ucircumflex',220=>'Udieresis',221=>'Uhorn',222=>'tildecomb',223=>'germandbls',
|
||||
224=>'agrave',225=>'aacute',226=>'acircumflex',227=>'abreve',228=>'adieresis',229=>'aring',230=>'ae',231=>'ccedilla',
|
||||
232=>'egrave',233=>'eacute',234=>'ecircumflex',235=>'edieresis',236=>'acutecomb',237=>'iacute',238=>'icircumflex',239=>'idieresis',
|
||||
240=>'dcroat',241=>'ntilde',242=>'dotbelowcomb',243=>'oacute',244=>'ocircumflex',245=>'ohorn',246=>'odieresis',247=>'divide',
|
||||
248=>'oslash',249=>'ugrave',250=>'uacute',251=>'ucircumflex',252=>'udieresis',253=>'uhorn',254=>'dong',255=>'ydieresis'),
|
||||
|
||||
// encoding map for: cp1253
|
||||
'cp1253' => array(0=>'.notdef',1=>'.notdef',2=>'.notdef',3=>'.notdef',4=>'.notdef',5=>'.notdef',6=>'.notdef',7=>'.notdef',
|
||||
8=>'.notdef',9=>'.notdef',10=>'.notdef',11=>'.notdef',12=>'.notdef',13=>'.notdef',14=>'.notdef',15=>'.notdef',
|
||||
16=>'.notdef',17=>'.notdef',18=>'.notdef',19=>'.notdef',20=>'.notdef',21=>'.notdef',22=>'.notdef',23=>'.notdef',
|
||||
24=>'.notdef',25=>'.notdef',26=>'.notdef',27=>'.notdef',28=>'.notdef',29=>'.notdef',30=>'.notdef',31=>'.notdef',
|
||||
32=>'space',33=>'exclam',34=>'quotedbl',35=>'numbersign',36=>'dollar',37=>'percent',38=>'ampersand',39=>'quotesingle',
|
||||
40=>'parenleft',41=>'parenright',42=>'asterisk',43=>'plus',44=>'comma',45=>'hyphen',46=>'period',47=>'slash',
|
||||
48=>'zero',49=>'one',50=>'two',51=>'three',52=>'four',53=>'five',54=>'six',55=>'seven',
|
||||
56=>'eight',57=>'nine',58=>'colon',59=>'semicolon',60=>'less',61=>'equal',62=>'greater',63=>'question',
|
||||
64=>'at',65=>'A',66=>'B',67=>'C',68=>'D',69=>'E',70=>'F',71=>'G',
|
||||
72=>'H',73=>'I',74=>'J',75=>'K',76=>'L',77=>'M',78=>'N',79=>'O',
|
||||
80=>'P',81=>'Q',82=>'R',83=>'S',84=>'T',85=>'U',86=>'V',87=>'W',
|
||||
88=>'X',89=>'Y',90=>'Z',91=>'bracketleft',92=>'backslash',93=>'bracketright',94=>'asciicircum',95=>'underscore',
|
||||
96=>'grave',97=>'a',98=>'b',99=>'c',100=>'d',101=>'e',102=>'f',103=>'g',
|
||||
104=>'h',105=>'i',106=>'j',107=>'k',108=>'l',109=>'m',110=>'n',111=>'o',
|
||||
112=>'p',113=>'q',114=>'r',115=>'s',116=>'t',117=>'u',118=>'v',119=>'w',
|
||||
120=>'x',121=>'y',122=>'z',123=>'braceleft',124=>'bar',125=>'braceright',126=>'asciitilde',127=>'.notdef',
|
||||
128=>'Euro',129=>'.notdef',130=>'quotesinglbase',131=>'florin',132=>'quotedblbase',133=>'ellipsis',134=>'dagger',135=>'daggerdbl',
|
||||
136=>'.notdef',137=>'perthousand',138=>'.notdef',139=>'guilsinglleft',140=>'.notdef',141=>'.notdef',142=>'.notdef',143=>'.notdef',
|
||||
144=>'.notdef',145=>'quoteleft',146=>'quoteright',147=>'quotedblleft',148=>'quotedblright',149=>'bullet',150=>'endash',151=>'emdash',
|
||||
152=>'.notdef',153=>'trademark',154=>'.notdef',155=>'guilsinglright',156=>'.notdef',157=>'.notdef',158=>'.notdef',159=>'.notdef',
|
||||
160=>'space',161=>'dieresistonos',162=>'Alphatonos',163=>'sterling',164=>'currency',165=>'yen',166=>'brokenbar',167=>'section',
|
||||
168=>'dieresis',169=>'copyright',170=>'.notdef',171=>'guillemotleft',172=>'logicalnot',173=>'hyphen',174=>'registered',175=>'afii00208',
|
||||
176=>'degree',177=>'plusminus',178=>'twosuperior',179=>'threesuperior',180=>'tonos',181=>'mu',182=>'paragraph',183=>'periodcentered',
|
||||
184=>'Epsilontonos',185=>'Etatonos',186=>'Iotatonos',187=>'guillemotright',188=>'Omicrontonos',189=>'onehalf',190=>'Upsilontonos',191=>'Omegatonos',
|
||||
192=>'iotadieresistonos',193=>'Alpha',194=>'Beta',195=>'Gamma',196=>'Delta',197=>'Epsilon',198=>'Zeta',199=>'Eta',
|
||||
200=>'Theta',201=>'Iota',202=>'Kappa',203=>'Lambda',204=>'Mu',205=>'Nu',206=>'Xi',207=>'Omicron',
|
||||
208=>'Pi',209=>'Rho',210=>'.notdef',211=>'Sigma',212=>'Tau',213=>'Upsilon',214=>'Phi',215=>'Chi',
|
||||
216=>'Psi',217=>'Omega',218=>'Iotadieresis',219=>'Upsilondieresis',220=>'alphatonos',221=>'epsilontonos',222=>'etatonos',223=>'iotatonos',
|
||||
224=>'upsilondieresistonos',225=>'alpha',226=>'beta',227=>'gamma',228=>'delta',229=>'epsilon',230=>'zeta',231=>'eta',
|
||||
232=>'theta',233=>'iota',234=>'kappa',235=>'lambda',236=>'mu',237=>'nu',238=>'xi',239=>'omicron',
|
||||
240=>'pi',241=>'rho',242=>'sigma1',243=>'sigma',244=>'tau',245=>'upsilon',246=>'phi',247=>'chi',
|
||||
248=>'psi',249=>'omega',250=>'iotadieresis',251=>'upsilondieresis',252=>'omicrontonos',253=>'upsilontonos',254=>'omegatonos',255=>'.notdef'),
|
||||
|
||||
// encoding map for: cp874
|
||||
'cp874' => array(0=>'.notdef',1=>'.notdef',2=>'.notdef',3=>'.notdef',4=>'.notdef',5=>'.notdef',6=>'.notdef',7=>'.notdef',
|
||||
8=>'.notdef',9=>'.notdef',10=>'.notdef',11=>'.notdef',12=>'.notdef',13=>'.notdef',14=>'.notdef',15=>'.notdef',
|
||||
16=>'.notdef',17=>'.notdef',18=>'.notdef',19=>'.notdef',20=>'.notdef',21=>'.notdef',22=>'.notdef',23=>'.notdef',
|
||||
24=>'.notdef',25=>'.notdef',26=>'.notdef',27=>'.notdef',28=>'.notdef',29=>'.notdef',30=>'.notdef',31=>'.notdef',
|
||||
32=>'space',33=>'exclam',34=>'quotedbl',35=>'numbersign',36=>'dollar',37=>'percent',38=>'ampersand',39=>'quotesingle',
|
||||
40=>'parenleft',41=>'parenright',42=>'asterisk',43=>'plus',44=>'comma',45=>'hyphen',46=>'period',47=>'slash',
|
||||
48=>'zero',49=>'one',50=>'two',51=>'three',52=>'four',53=>'five',54=>'six',55=>'seven',
|
||||
56=>'eight',57=>'nine',58=>'colon',59=>'semicolon',60=>'less',61=>'equal',62=>'greater',63=>'question',
|
||||
64=>'at',65=>'A',66=>'B',67=>'C',68=>'D',69=>'E',70=>'F',71=>'G',
|
||||
72=>'H',73=>'I',74=>'J',75=>'K',76=>'L',77=>'M',78=>'N',79=>'O',
|
||||
80=>'P',81=>'Q',82=>'R',83=>'S',84=>'T',85=>'U',86=>'V',87=>'W',
|
||||
88=>'X',89=>'Y',90=>'Z',91=>'bracketleft',92=>'backslash',93=>'bracketright',94=>'asciicircum',95=>'underscore',
|
||||
96=>'grave',97=>'a',98=>'b',99=>'c',100=>'d',101=>'e',102=>'f',103=>'g',
|
||||
104=>'h',105=>'i',106=>'j',107=>'k',108=>'l',109=>'m',110=>'n',111=>'o',
|
||||
112=>'p',113=>'q',114=>'r',115=>'s',116=>'t',117=>'u',118=>'v',119=>'w',
|
||||
120=>'x',121=>'y',122=>'z',123=>'braceleft',124=>'bar',125=>'braceright',126=>'asciitilde',127=>'.notdef',
|
||||
128=>'Euro',129=>'.notdef',130=>'.notdef',131=>'.notdef',132=>'.notdef',133=>'ellipsis',134=>'.notdef',135=>'.notdef',
|
||||
136=>'.notdef',137=>'.notdef',138=>'.notdef',139=>'.notdef',140=>'.notdef',141=>'.notdef',142=>'.notdef',143=>'.notdef',
|
||||
144=>'.notdef',145=>'quoteleft',146=>'quoteright',147=>'quotedblleft',148=>'quotedblright',149=>'bullet',150=>'endash',151=>'emdash',
|
||||
152=>'.notdef',153=>'.notdef',154=>'.notdef',155=>'.notdef',156=>'.notdef',157=>'.notdef',158=>'.notdef',159=>'.notdef',
|
||||
160=>'space',161=>'kokaithai',162=>'khokhaithai',163=>'khokhuatthai',164=>'khokhwaithai',165=>'khokhonthai',166=>'khorakhangthai',167=>'ngonguthai',
|
||||
168=>'chochanthai',169=>'chochingthai',170=>'chochangthai',171=>'sosothai',172=>'chochoethai',173=>'yoyingthai',174=>'dochadathai',175=>'topatakthai',
|
||||
176=>'thothanthai',177=>'thonangmonthothai',178=>'thophuthaothai',179=>'nonenthai',180=>'dodekthai',181=>'totaothai',182=>'thothungthai',183=>'thothahanthai',
|
||||
184=>'thothongthai',185=>'nonuthai',186=>'bobaimaithai',187=>'poplathai',188=>'phophungthai',189=>'fofathai',190=>'phophanthai',191=>'fofanthai',
|
||||
192=>'phosamphaothai',193=>'momathai',194=>'yoyakthai',195=>'roruathai',196=>'ruthai',197=>'lolingthai',198=>'luthai',199=>'wowaenthai',
|
||||
200=>'sosalathai',201=>'sorusithai',202=>'sosuathai',203=>'hohipthai',204=>'lochulathai',205=>'oangthai',206=>'honokhukthai',207=>'paiyannoithai',
|
||||
208=>'saraathai',209=>'maihanakatthai',210=>'saraaathai',211=>'saraamthai',212=>'saraithai',213=>'saraiithai',214=>'sarauethai',215=>'saraueethai',
|
||||
216=>'sarauthai',217=>'sarauuthai',218=>'phinthuthai',219=>'.notdef',220=>'.notdef',221=>'.notdef',222=>'.notdef',223=>'bahtthai',
|
||||
224=>'saraethai',225=>'saraaethai',226=>'saraothai',227=>'saraaimaimuanthai',228=>'saraaimaimalaithai',229=>'lakkhangyaothai',230=>'maiyamokthai',231=>'maitaikhuthai',
|
||||
232=>'maiekthai',233=>'maithothai',234=>'maitrithai',235=>'maichattawathai',236=>'thanthakhatthai',237=>'nikhahitthai',238=>'yamakkanthai',239=>'fongmanthai',
|
||||
240=>'zerothai',241=>'onethai',242=>'twothai',243=>'threethai',244=>'fourthai',245=>'fivethai',246=>'sixthai',247=>'seventhai',
|
||||
248=>'eightthai',249=>'ninethai',250=>'angkhankhuthai',251=>'khomutthai',252=>'.notdef',253=>'.notdef',254=>'.notdef',255=>'.notdef'),
|
||||
|
||||
// encoding map for: iso-8859-2
|
||||
'iso-8859-2' => array(0=>'.notdef',1=>'.notdef',2=>'.notdef',3=>'.notdef',4=>'.notdef',5=>'.notdef',6=>'.notdef',7=>'.notdef',
|
||||
8=>'.notdef',9=>'.notdef',10=>'.notdef',11=>'.notdef',12=>'.notdef',13=>'.notdef',14=>'.notdef',15=>'.notdef',
|
||||
16=>'.notdef',17=>'.notdef',18=>'.notdef',19=>'.notdef',20=>'.notdef',21=>'.notdef',22=>'.notdef',23=>'.notdef',
|
||||
24=>'.notdef',25=>'.notdef',26=>'.notdef',27=>'.notdef',28=>'.notdef',29=>'.notdef',30=>'.notdef',31=>'.notdef',
|
||||
32=>'space',33=>'exclam',34=>'quotedbl',35=>'numbersign',36=>'dollar',37=>'percent',38=>'ampersand',39=>'quotesingle',
|
||||
40=>'parenleft',41=>'parenright',42=>'asterisk',43=>'plus',44=>'comma',45=>'hyphen',46=>'period',47=>'slash',
|
||||
48=>'zero',49=>'one',50=>'two',51=>'three',52=>'four',53=>'five',54=>'six',55=>'seven',
|
||||
56=>'eight',57=>'nine',58=>'colon',59=>'semicolon',60=>'less',61=>'equal',62=>'greater',63=>'question',
|
||||
64=>'at',65=>'A',66=>'B',67=>'C',68=>'D',69=>'E',70=>'F',71=>'G',
|
||||
72=>'H',73=>'I',74=>'J',75=>'K',76=>'L',77=>'M',78=>'N',79=>'O',
|
||||
80=>'P',81=>'Q',82=>'R',83=>'S',84=>'T',85=>'U',86=>'V',87=>'W',
|
||||
88=>'X',89=>'Y',90=>'Z',91=>'bracketleft',92=>'backslash',93=>'bracketright',94=>'asciicircum',95=>'underscore',
|
||||
96=>'grave',97=>'a',98=>'b',99=>'c',100=>'d',101=>'e',102=>'f',103=>'g',
|
||||
104=>'h',105=>'i',106=>'j',107=>'k',108=>'l',109=>'m',110=>'n',111=>'o',
|
||||
112=>'p',113=>'q',114=>'r',115=>'s',116=>'t',117=>'u',118=>'v',119=>'w',
|
||||
120=>'x',121=>'y',122=>'z',123=>'braceleft',124=>'bar',125=>'braceright',126=>'asciitilde',127=>'.notdef',
|
||||
128=>'.notdef',129=>'.notdef',130=>'.notdef',131=>'.notdef',132=>'.notdef',133=>'.notdef',134=>'.notdef',135=>'.notdef',
|
||||
136=>'.notdef',137=>'.notdef',138=>'.notdef',139=>'.notdef',140=>'.notdef',141=>'.notdef',142=>'.notdef',143=>'.notdef',
|
||||
144=>'.notdef',145=>'.notdef',146=>'.notdef',147=>'.notdef',148=>'.notdef',149=>'.notdef',150=>'.notdef',151=>'.notdef',
|
||||
152=>'.notdef',153=>'.notdef',154=>'.notdef',155=>'.notdef',156=>'.notdef',157=>'.notdef',158=>'.notdef',159=>'.notdef',
|
||||
160=>'space',161=>'Aogonek',162=>'breve',163=>'Lslash',164=>'currency',165=>'Lcaron',166=>'Sacute',167=>'section',
|
||||
168=>'dieresis',169=>'Scaron',170=>'Scedilla',171=>'Tcaron',172=>'Zacute',173=>'hyphen',174=>'Zcaron',175=>'Zdotaccent',
|
||||
176=>'degree',177=>'aogonek',178=>'ogonek',179=>'lslash',180=>'acute',181=>'lcaron',182=>'sacute',183=>'caron',
|
||||
184=>'cedilla',185=>'scaron',186=>'scedilla',187=>'tcaron',188=>'zacute',189=>'hungarumlaut',190=>'zcaron',191=>'zdotaccent',
|
||||
192=>'Racute',193=>'Aacute',194=>'Acircumflex',195=>'Abreve',196=>'Adieresis',197=>'Lacute',198=>'Cacute',199=>'Ccedilla',
|
||||
200=>'Ccaron',201=>'Eacute',202=>'Eogonek',203=>'Edieresis',204=>'Ecaron',205=>'Iacute',206=>'Icircumflex',207=>'Dcaron',
|
||||
208=>'Dcroat',209=>'Nacute',210=>'Ncaron',211=>'Oacute',212=>'Ocircumflex',213=>'Ohungarumlaut',214=>'Odieresis',215=>'multiply',
|
||||
216=>'Rcaron',217=>'Uring',218=>'Uacute',219=>'Uhungarumlaut',220=>'Udieresis',221=>'Yacute',222=>'Tcommaaccent',223=>'germandbls',
|
||||
224=>'racute',225=>'aacute',226=>'acircumflex',227=>'abreve',228=>'adieresis',229=>'lacute',230=>'cacute',231=>'ccedilla',
|
||||
232=>'ccaron',233=>'eacute',234=>'eogonek',235=>'edieresis',236=>'ecaron',237=>'iacute',238=>'icircumflex',239=>'dcaron',
|
||||
240=>'dcroat',241=>'nacute',242=>'ncaron',243=>'oacute',244=>'ocircumflex',245=>'ohungarumlaut',246=>'odieresis',247=>'divide',
|
||||
248=>'rcaron',249=>'uring',250=>'uacute',251=>'uhungarumlaut',252=>'udieresis',253=>'yacute',254=>'tcommaaccent',255=>'dotaccent'),
|
||||
|
||||
// encoding map for: cp1250
|
||||
'cp1250' => array(0=>'.notdef',1=>'.notdef',2=>'.notdef',3=>'.notdef',4=>'.notdef',5=>'.notdef',6=>'.notdef',7=>'.notdef',
|
||||
8=>'.notdef',9=>'.notdef',10=>'.notdef',11=>'.notdef',12=>'.notdef',13=>'.notdef',14=>'.notdef',15=>'.notdef',
|
||||
16=>'.notdef',17=>'.notdef',18=>'.notdef',19=>'.notdef',20=>'.notdef',21=>'.notdef',22=>'.notdef',23=>'.notdef',
|
||||
24=>'.notdef',25=>'.notdef',26=>'.notdef',27=>'.notdef',28=>'.notdef',29=>'.notdef',30=>'.notdef',31=>'.notdef',
|
||||
32=>'space',33=>'exclam',34=>'quotedbl',35=>'numbersign',36=>'dollar',37=>'percent',38=>'ampersand',39=>'quotesingle',
|
||||
40=>'parenleft',41=>'parenright',42=>'asterisk',43=>'plus',44=>'comma',45=>'hyphen',46=>'period',47=>'slash',
|
||||
48=>'zero',49=>'one',50=>'two',51=>'three',52=>'four',53=>'five',54=>'six',55=>'seven',
|
||||
56=>'eight',57=>'nine',58=>'colon',59=>'semicolon',60=>'less',61=>'equal',62=>'greater',63=>'question',
|
||||
64=>'at',65=>'A',66=>'B',67=>'C',68=>'D',69=>'E',70=>'F',71=>'G',
|
||||
72=>'H',73=>'I',74=>'J',75=>'K',76=>'L',77=>'M',78=>'N',79=>'O',
|
||||
80=>'P',81=>'Q',82=>'R',83=>'S',84=>'T',85=>'U',86=>'V',87=>'W',
|
||||
88=>'X',89=>'Y',90=>'Z',91=>'bracketleft',92=>'backslash',93=>'bracketright',94=>'asciicircum',95=>'underscore',
|
||||
96=>'grave',97=>'a',98=>'b',99=>'c',100=>'d',101=>'e',102=>'f',103=>'g',
|
||||
104=>'h',105=>'i',106=>'j',107=>'k',108=>'l',109=>'m',110=>'n',111=>'o',
|
||||
112=>'p',113=>'q',114=>'r',115=>'s',116=>'t',117=>'u',118=>'v',119=>'w',
|
||||
120=>'x',121=>'y',122=>'z',123=>'braceleft',124=>'bar',125=>'braceright',126=>'asciitilde',127=>'.notdef',
|
||||
128=>'Euro',129=>'.notdef',130=>'quotesinglbase',131=>'.notdef',132=>'quotedblbase',133=>'ellipsis',134=>'dagger',135=>'daggerdbl',
|
||||
136=>'.notdef',137=>'perthousand',138=>'Scaron',139=>'guilsinglleft',140=>'Sacute',141=>'Tcaron',142=>'Zcaron',143=>'Zacute',
|
||||
144=>'.notdef',145=>'quoteleft',146=>'quoteright',147=>'quotedblleft',148=>'quotedblright',149=>'bullet',150=>'endash',151=>'emdash',
|
||||
152=>'.notdef',153=>'trademark',154=>'scaron',155=>'guilsinglright',156=>'sacute',157=>'tcaron',158=>'zcaron',159=>'zacute',
|
||||
160=>'space',161=>'caron',162=>'breve',163=>'Lslash',164=>'currency',165=>'Aogonek',166=>'brokenbar',167=>'section',
|
||||
168=>'dieresis',169=>'copyright',170=>'Scedilla',171=>'guillemotleft',172=>'logicalnot',173=>'hyphen',174=>'registered',175=>'Zdotaccent',
|
||||
176=>'degree',177=>'plusminus',178=>'ogonek',179=>'lslash',180=>'acute',181=>'mu',182=>'paragraph',183=>'periodcentered',
|
||||
184=>'cedilla',185=>'aogonek',186=>'scedilla',187=>'guillemotright',188=>'Lcaron',189=>'hungarumlaut',190=>'lcaron',191=>'zdotaccent',
|
||||
192=>'Racute',193=>'Aacute',194=>'Acircumflex',195=>'Abreve',196=>'Adieresis',197=>'Lacute',198=>'Cacute',199=>'Ccedilla',
|
||||
200=>'Ccaron',201=>'Eacute',202=>'Eogonek',203=>'Edieresis',204=>'Ecaron',205=>'Iacute',206=>'Icircumflex',207=>'Dcaron',
|
||||
208=>'Dcroat',209=>'Nacute',210=>'Ncaron',211=>'Oacute',212=>'Ocircumflex',213=>'Ohungarumlaut',214=>'Odieresis',215=>'multiply',
|
||||
216=>'Rcaron',217=>'Uring',218=>'Uacute',219=>'Uhungarumlaut',220=>'Udieresis',221=>'Yacute',222=>'Tcommaaccent',223=>'germandbls',
|
||||
224=>'racute',225=>'aacute',226=>'acircumflex',227=>'abreve',228=>'adieresis',229=>'lacute',230=>'cacute',231=>'ccedilla',
|
||||
232=>'ccaron',233=>'eacute',234=>'eogonek',235=>'edieresis',236=>'ecaron',237=>'iacute',238=>'icircumflex',239=>'dcaron',
|
||||
240=>'dcroat',241=>'nacute',242=>'ncaron',243=>'oacute',244=>'ocircumflex',245=>'ohungarumlaut',246=>'odieresis',247=>'divide',
|
||||
248=>'rcaron',249=>'uring',250=>'uacute',251=>'uhungarumlaut',252=>'udieresis',253=>'yacute',254=>'tcommaaccent',255=>'dotaccent'),
|
||||
|
||||
// encoding map for: iso-8859-7
|
||||
'iso-8859-7' => array(0=>'.notdef',1=>'.notdef',2=>'.notdef',3=>'.notdef',4=>'.notdef',5=>'.notdef',6=>'.notdef',7=>'.notdef',
|
||||
8=>'.notdef',9=>'.notdef',10=>'.notdef',11=>'.notdef',12=>'.notdef',13=>'.notdef',14=>'.notdef',15=>'.notdef',
|
||||
16=>'.notdef',17=>'.notdef',18=>'.notdef',19=>'.notdef',20=>'.notdef',21=>'.notdef',22=>'.notdef',23=>'.notdef',
|
||||
24=>'.notdef',25=>'.notdef',26=>'.notdef',27=>'.notdef',28=>'.notdef',29=>'.notdef',30=>'.notdef',31=>'.notdef',
|
||||
32=>'space',33=>'exclam',34=>'quotedbl',35=>'numbersign',36=>'dollar',37=>'percent',38=>'ampersand',39=>'quotesingle',
|
||||
40=>'parenleft',41=>'parenright',42=>'asterisk',43=>'plus',44=>'comma',45=>'hyphen',46=>'period',47=>'slash',
|
||||
48=>'zero',49=>'one',50=>'two',51=>'three',52=>'four',53=>'five',54=>'six',55=>'seven',
|
||||
56=>'eight',57=>'nine',58=>'colon',59=>'semicolon',60=>'less',61=>'equal',62=>'greater',63=>'question',
|
||||
64=>'at',65=>'A',66=>'B',67=>'C',68=>'D',69=>'E',70=>'F',71=>'G',
|
||||
72=>'H',73=>'I',74=>'J',75=>'K',76=>'L',77=>'M',78=>'N',79=>'O',
|
||||
80=>'P',81=>'Q',82=>'R',83=>'S',84=>'T',85=>'U',86=>'V',87=>'W',
|
||||
88=>'X',89=>'Y',90=>'Z',91=>'bracketleft',92=>'backslash',93=>'bracketright',94=>'asciicircum',95=>'underscore',
|
||||
96=>'grave',97=>'a',98=>'b',99=>'c',100=>'d',101=>'e',102=>'f',103=>'g',
|
||||
104=>'h',105=>'i',106=>'j',107=>'k',108=>'l',109=>'m',110=>'n',111=>'o',
|
||||
112=>'p',113=>'q',114=>'r',115=>'s',116=>'t',117=>'u',118=>'v',119=>'w',
|
||||
120=>'x',121=>'y',122=>'z',123=>'braceleft',124=>'bar',125=>'braceright',126=>'asciitilde',127=>'.notdef',
|
||||
128=>'.notdef',129=>'.notdef',130=>'.notdef',131=>'.notdef',132=>'.notdef',133=>'.notdef',134=>'.notdef',135=>'.notdef',
|
||||
136=>'.notdef',137=>'.notdef',138=>'.notdef',139=>'.notdef',140=>'.notdef',141=>'.notdef',142=>'.notdef',143=>'.notdef',
|
||||
144=>'.notdef',145=>'.notdef',146=>'.notdef',147=>'.notdef',148=>'.notdef',149=>'.notdef',150=>'.notdef',151=>'.notdef',
|
||||
152=>'.notdef',153=>'.notdef',154=>'.notdef',155=>'.notdef',156=>'.notdef',157=>'.notdef',158=>'.notdef',159=>'.notdef',
|
||||
160=>'space',161=>'quoteleft',162=>'quoteright',163=>'sterling',164=>'.notdef',165=>'.notdef',166=>'brokenbar',167=>'section',
|
||||
168=>'dieresis',169=>'copyright',170=>'.notdef',171=>'guillemotleft',172=>'logicalnot',173=>'hyphen',174=>'.notdef',175=>'afii00208',
|
||||
176=>'degree',177=>'plusminus',178=>'twosuperior',179=>'threesuperior',180=>'tonos',181=>'dieresistonos',182=>'Alphatonos',183=>'periodcentered',
|
||||
184=>'Epsilontonos',185=>'Etatonos',186=>'Iotatonos',187=>'guillemotright',188=>'Omicrontonos',189=>'onehalf',190=>'Upsilontonos',191=>'Omegatonos',
|
||||
192=>'iotadieresistonos',193=>'Alpha',194=>'Beta',195=>'Gamma',196=>'Delta',197=>'Epsilon',198=>'Zeta',199=>'Eta',
|
||||
200=>'Theta',201=>'Iota',202=>'Kappa',203=>'Lambda',204=>'Mu',205=>'Nu',206=>'Xi',207=>'Omicron',
|
||||
208=>'Pi',209=>'Rho',210=>'.notdef',211=>'Sigma',212=>'Tau',213=>'Upsilon',214=>'Phi',215=>'Chi',
|
||||
216=>'Psi',217=>'Omega',218=>'Iotadieresis',219=>'Upsilondieresis',220=>'alphatonos',221=>'epsilontonos',222=>'etatonos',223=>'iotatonos',
|
||||
224=>'upsilondieresistonos',225=>'alpha',226=>'beta',227=>'gamma',228=>'delta',229=>'epsilon',230=>'zeta',231=>'eta',
|
||||
232=>'theta',233=>'iota',234=>'kappa',235=>'lambda',236=>'mu',237=>'nu',238=>'xi',239=>'omicron',
|
||||
240=>'pi',241=>'rho',242=>'sigma1',243=>'sigma',244=>'tau',245=>'upsilon',246=>'phi',247=>'chi',
|
||||
248=>'psi',249=>'omega',250=>'iotadieresis',251=>'upsilondieresis',252=>'omicrontonos',253=>'upsilontonos',254=>'omegatonos',255=>'.notdef'),
|
||||
|
||||
// encoding map for: iso-8859-9
|
||||
'iso-8859-9' => array(0=>'.notdef',1=>'.notdef',2=>'.notdef',3=>'.notdef',4=>'.notdef',5=>'.notdef',6=>'.notdef',7=>'.notdef',
|
||||
8=>'.notdef',9=>'.notdef',10=>'.notdef',11=>'.notdef',12=>'.notdef',13=>'.notdef',14=>'.notdef',15=>'.notdef',
|
||||
16=>'.notdef',17=>'.notdef',18=>'.notdef',19=>'.notdef',20=>'.notdef',21=>'.notdef',22=>'.notdef',23=>'.notdef',
|
||||
24=>'.notdef',25=>'.notdef',26=>'.notdef',27=>'.notdef',28=>'.notdef',29=>'.notdef',30=>'.notdef',31=>'.notdef',
|
||||
32=>'space',33=>'exclam',34=>'quotedbl',35=>'numbersign',36=>'dollar',37=>'percent',38=>'ampersand',39=>'quotesingle',
|
||||
40=>'parenleft',41=>'parenright',42=>'asterisk',43=>'plus',44=>'comma',45=>'hyphen',46=>'period',47=>'slash',
|
||||
48=>'zero',49=>'one',50=>'two',51=>'three',52=>'four',53=>'five',54=>'six',55=>'seven',
|
||||
56=>'eight',57=>'nine',58=>'colon',59=>'semicolon',60=>'less',61=>'equal',62=>'greater',63=>'question',
|
||||
64=>'at',65=>'A',66=>'B',67=>'C',68=>'D',69=>'E',70=>'F',71=>'G',
|
||||
72=>'H',73=>'I',74=>'J',75=>'K',76=>'L',77=>'M',78=>'N',79=>'O',
|
||||
80=>'P',81=>'Q',82=>'R',83=>'S',84=>'T',85=>'U',86=>'V',87=>'W',
|
||||
88=>'X',89=>'Y',90=>'Z',91=>'bracketleft',92=>'backslash',93=>'bracketright',94=>'asciicircum',95=>'underscore',
|
||||
96=>'grave',97=>'a',98=>'b',99=>'c',100=>'d',101=>'e',102=>'f',103=>'g',
|
||||
104=>'h',105=>'i',106=>'j',107=>'k',108=>'l',109=>'m',110=>'n',111=>'o',
|
||||
112=>'p',113=>'q',114=>'r',115=>'s',116=>'t',117=>'u',118=>'v',119=>'w',
|
||||
120=>'x',121=>'y',122=>'z',123=>'braceleft',124=>'bar',125=>'braceright',126=>'asciitilde',127=>'.notdef',
|
||||
128=>'.notdef',129=>'.notdef',130=>'.notdef',131=>'.notdef',132=>'.notdef',133=>'.notdef',134=>'.notdef',135=>'.notdef',
|
||||
136=>'.notdef',137=>'.notdef',138=>'.notdef',139=>'.notdef',140=>'.notdef',141=>'.notdef',142=>'.notdef',143=>'.notdef',
|
||||
144=>'.notdef',145=>'.notdef',146=>'.notdef',147=>'.notdef',148=>'.notdef',149=>'.notdef',150=>'.notdef',151=>'.notdef',
|
||||
152=>'.notdef',153=>'.notdef',154=>'.notdef',155=>'.notdef',156=>'.notdef',157=>'.notdef',158=>'.notdef',159=>'.notdef',
|
||||
160=>'space',161=>'exclamdown',162=>'cent',163=>'sterling',164=>'currency',165=>'yen',166=>'brokenbar',167=>'section',
|
||||
168=>'dieresis',169=>'copyright',170=>'ordfeminine',171=>'guillemotleft',172=>'logicalnot',173=>'hyphen',174=>'registered',175=>'macron',
|
||||
176=>'degree',177=>'plusminus',178=>'twosuperior',179=>'threesuperior',180=>'acute',181=>'mu',182=>'paragraph',183=>'periodcentered',
|
||||
184=>'cedilla',185=>'onesuperior',186=>'ordmasculine',187=>'guillemotright',188=>'onequarter',189=>'onehalf',190=>'threequarters',191=>'questiondown',
|
||||
192=>'Agrave',193=>'Aacute',194=>'Acircumflex',195=>'Atilde',196=>'Adieresis',197=>'Aring',198=>'AE',199=>'Ccedilla',
|
||||
200=>'Egrave',201=>'Eacute',202=>'Ecircumflex',203=>'Edieresis',204=>'Igrave',205=>'Iacute',206=>'Icircumflex',207=>'Idieresis',
|
||||
208=>'Gbreve',209=>'Ntilde',210=>'Ograve',211=>'Oacute',212=>'Ocircumflex',213=>'Otilde',214=>'Odieresis',215=>'multiply',
|
||||
216=>'Oslash',217=>'Ugrave',218=>'Uacute',219=>'Ucircumflex',220=>'Udieresis',221=>'Idotaccent',222=>'Scedilla',223=>'germandbls',
|
||||
224=>'agrave',225=>'aacute',226=>'acircumflex',227=>'atilde',228=>'adieresis',229=>'aring',230=>'ae',231=>'ccedilla',
|
||||
232=>'egrave',233=>'eacute',234=>'ecircumflex',235=>'edieresis',236=>'igrave',237=>'iacute',238=>'icircumflex',239=>'idieresis',
|
||||
240=>'gbreve',241=>'ntilde',242=>'ograve',243=>'oacute',244=>'ocircumflex',245=>'otilde',246=>'odieresis',247=>'divide',
|
||||
248=>'oslash',249=>'ugrave',250=>'uacute',251=>'ucircumflex',252=>'udieresis',253=>'dotlessi',254=>'scedilla',255=>'ydieresis'),
|
||||
|
||||
// encoding map for: cp1252
|
||||
'cp1252' => array(0=>'.notdef',1=>'.notdef',2=>'.notdef',3=>'.notdef',4=>'.notdef',5=>'.notdef',6=>'.notdef',7=>'.notdef',
|
||||
8=>'.notdef',9=>'.notdef',10=>'.notdef',11=>'.notdef',12=>'.notdef',13=>'.notdef',14=>'.notdef',15=>'.notdef',
|
||||
16=>'.notdef',17=>'.notdef',18=>'.notdef',19=>'.notdef',20=>'.notdef',21=>'.notdef',22=>'.notdef',23=>'.notdef',
|
||||
24=>'.notdef',25=>'.notdef',26=>'.notdef',27=>'.notdef',28=>'.notdef',29=>'.notdef',30=>'.notdef',31=>'.notdef',
|
||||
32=>'space',33=>'exclam',34=>'quotedbl',35=>'numbersign',36=>'dollar',37=>'percent',38=>'ampersand',39=>'quotesingle',
|
||||
40=>'parenleft',41=>'parenright',42=>'asterisk',43=>'plus',44=>'comma',45=>'hyphen',46=>'period',47=>'slash',
|
||||
48=>'zero',49=>'one',50=>'two',51=>'three',52=>'four',53=>'five',54=>'six',55=>'seven',
|
||||
56=>'eight',57=>'nine',58=>'colon',59=>'semicolon',60=>'less',61=>'equal',62=>'greater',63=>'question',
|
||||
64=>'at',65=>'A',66=>'B',67=>'C',68=>'D',69=>'E',70=>'F',71=>'G',
|
||||
72=>'H',73=>'I',74=>'J',75=>'K',76=>'L',77=>'M',78=>'N',79=>'O',
|
||||
80=>'P',81=>'Q',82=>'R',83=>'S',84=>'T',85=>'U',86=>'V',87=>'W',
|
||||
88=>'X',89=>'Y',90=>'Z',91=>'bracketleft',92=>'backslash',93=>'bracketright',94=>'asciicircum',95=>'underscore',
|
||||
96=>'grave',97=>'a',98=>'b',99=>'c',100=>'d',101=>'e',102=>'f',103=>'g',
|
||||
104=>'h',105=>'i',106=>'j',107=>'k',108=>'l',109=>'m',110=>'n',111=>'o',
|
||||
112=>'p',113=>'q',114=>'r',115=>'s',116=>'t',117=>'u',118=>'v',119=>'w',
|
||||
120=>'x',121=>'y',122=>'z',123=>'braceleft',124=>'bar',125=>'braceright',126=>'asciitilde',127=>'.notdef',
|
||||
128=>'Euro',129=>'.notdef',130=>'quotesinglbase',131=>'florin',132=>'quotedblbase',133=>'ellipsis',134=>'dagger',135=>'daggerdbl',
|
||||
136=>'circumflex',137=>'perthousand',138=>'Scaron',139=>'guilsinglleft',140=>'OE',141=>'.notdef',142=>'Zcaron',143=>'.notdef',
|
||||
144=>'.notdef',145=>'quoteleft',146=>'quoteright',147=>'quotedblleft',148=>'quotedblright',149=>'bullet',150=>'endash',151=>'emdash',
|
||||
152=>'tilde',153=>'trademark',154=>'scaron',155=>'guilsinglright',156=>'oe',157=>'.notdef',158=>'zcaron',159=>'Ydieresis',
|
||||
160=>'space',161=>'exclamdown',162=>'cent',163=>'sterling',164=>'currency',165=>'yen',166=>'brokenbar',167=>'section',
|
||||
168=>'dieresis',169=>'copyright',170=>'ordfeminine',171=>'guillemotleft',172=>'logicalnot',173=>'hyphen',174=>'registered',175=>'macron',
|
||||
176=>'degree',177=>'plusminus',178=>'twosuperior',179=>'threesuperior',180=>'acute',181=>'mu',182=>'paragraph',183=>'periodcentered',
|
||||
184=>'cedilla',185=>'onesuperior',186=>'ordmasculine',187=>'guillemotright',188=>'onequarter',189=>'onehalf',190=>'threequarters',191=>'questiondown',
|
||||
192=>'Agrave',193=>'Aacute',194=>'Acircumflex',195=>'Atilde',196=>'Adieresis',197=>'Aring',198=>'AE',199=>'Ccedilla',
|
||||
200=>'Egrave',201=>'Eacute',202=>'Ecircumflex',203=>'Edieresis',204=>'Igrave',205=>'Iacute',206=>'Icircumflex',207=>'Idieresis',
|
||||
208=>'Eth',209=>'Ntilde',210=>'Ograve',211=>'Oacute',212=>'Ocircumflex',213=>'Otilde',214=>'Odieresis',215=>'multiply',
|
||||
216=>'Oslash',217=>'Ugrave',218=>'Uacute',219=>'Ucircumflex',220=>'Udieresis',221=>'Yacute',222=>'Thorn',223=>'germandbls',
|
||||
224=>'agrave',225=>'aacute',226=>'acircumflex',227=>'atilde',228=>'adieresis',229=>'aring',230=>'ae',231=>'ccedilla',
|
||||
232=>'egrave',233=>'eacute',234=>'ecircumflex',235=>'edieresis',236=>'igrave',237=>'iacute',238=>'icircumflex',239=>'idieresis',
|
||||
240=>'eth',241=>'ntilde',242=>'ograve',243=>'oacute',244=>'ocircumflex',245=>'otilde',246=>'odieresis',247=>'divide',
|
||||
248=>'oslash',249=>'ugrave',250=>'uacute',251=>'ucircumflex',252=>'udieresis',253=>'yacute',254=>'thorn',255=>'ydieresis'),
|
||||
|
||||
// encoding map for: cp1254
|
||||
'cp1254' => array(0=>'.notdef',1=>'.notdef',2=>'.notdef',3=>'.notdef',4=>'.notdef',5=>'.notdef',6=>'.notdef',7=>'.notdef',
|
||||
8=>'.notdef',9=>'.notdef',10=>'.notdef',11=>'.notdef',12=>'.notdef',13=>'.notdef',14=>'.notdef',15=>'.notdef',
|
||||
16=>'.notdef',17=>'.notdef',18=>'.notdef',19=>'.notdef',20=>'.notdef',21=>'.notdef',22=>'.notdef',23=>'.notdef',
|
||||
24=>'.notdef',25=>'.notdef',26=>'.notdef',27=>'.notdef',28=>'.notdef',29=>'.notdef',30=>'.notdef',31=>'.notdef',
|
||||
32=>'space',33=>'exclam',34=>'quotedbl',35=>'numbersign',36=>'dollar',37=>'percent',38=>'ampersand',39=>'quotesingle',
|
||||
40=>'parenleft',41=>'parenright',42=>'asterisk',43=>'plus',44=>'comma',45=>'hyphen',46=>'period',47=>'slash',
|
||||
48=>'zero',49=>'one',50=>'two',51=>'three',52=>'four',53=>'five',54=>'six',55=>'seven',
|
||||
56=>'eight',57=>'nine',58=>'colon',59=>'semicolon',60=>'less',61=>'equal',62=>'greater',63=>'question',
|
||||
64=>'at',65=>'A',66=>'B',67=>'C',68=>'D',69=>'E',70=>'F',71=>'G',
|
||||
72=>'H',73=>'I',74=>'J',75=>'K',76=>'L',77=>'M',78=>'N',79=>'O',
|
||||
80=>'P',81=>'Q',82=>'R',83=>'S',84=>'T',85=>'U',86=>'V',87=>'W',
|
||||
88=>'X',89=>'Y',90=>'Z',91=>'bracketleft',92=>'backslash',93=>'bracketright',94=>'asciicircum',95=>'underscore',
|
||||
96=>'grave',97=>'a',98=>'b',99=>'c',100=>'d',101=>'e',102=>'f',103=>'g',
|
||||
104=>'h',105=>'i',106=>'j',107=>'k',108=>'l',109=>'m',110=>'n',111=>'o',
|
||||
112=>'p',113=>'q',114=>'r',115=>'s',116=>'t',117=>'u',118=>'v',119=>'w',
|
||||
120=>'x',121=>'y',122=>'z',123=>'braceleft',124=>'bar',125=>'braceright',126=>'asciitilde',127=>'.notdef',
|
||||
128=>'Euro',129=>'.notdef',130=>'quotesinglbase',131=>'florin',132=>'quotedblbase',133=>'ellipsis',134=>'dagger',135=>'daggerdbl',
|
||||
136=>'circumflex',137=>'perthousand',138=>'Scaron',139=>'guilsinglleft',140=>'OE',141=>'.notdef',142=>'.notdef',143=>'.notdef',
|
||||
144=>'.notdef',145=>'quoteleft',146=>'quoteright',147=>'quotedblleft',148=>'quotedblright',149=>'bullet',150=>'endash',151=>'emdash',
|
||||
152=>'tilde',153=>'trademark',154=>'scaron',155=>'guilsinglright',156=>'oe',157=>'.notdef',158=>'.notdef',159=>'Ydieresis',
|
||||
160=>'space',161=>'exclamdown',162=>'cent',163=>'sterling',164=>'currency',165=>'yen',166=>'brokenbar',167=>'section',
|
||||
168=>'dieresis',169=>'copyright',170=>'ordfeminine',171=>'guillemotleft',172=>'logicalnot',173=>'hyphen',174=>'registered',175=>'macron',
|
||||
176=>'degree',177=>'plusminus',178=>'twosuperior',179=>'threesuperior',180=>'acute',181=>'mu',182=>'paragraph',183=>'periodcentered',
|
||||
184=>'cedilla',185=>'onesuperior',186=>'ordmasculine',187=>'guillemotright',188=>'onequarter',189=>'onehalf',190=>'threequarters',191=>'questiondown',
|
||||
192=>'Agrave',193=>'Aacute',194=>'Acircumflex',195=>'Atilde',196=>'Adieresis',197=>'Aring',198=>'AE',199=>'Ccedilla',
|
||||
200=>'Egrave',201=>'Eacute',202=>'Ecircumflex',203=>'Edieresis',204=>'Igrave',205=>'Iacute',206=>'Icircumflex',207=>'Idieresis',
|
||||
208=>'Gbreve',209=>'Ntilde',210=>'Ograve',211=>'Oacute',212=>'Ocircumflex',213=>'Otilde',214=>'Odieresis',215=>'multiply',
|
||||
216=>'Oslash',217=>'Ugrave',218=>'Uacute',219=>'Ucircumflex',220=>'Udieresis',221=>'Idotaccent',222=>'Scedilla',223=>'germandbls',
|
||||
224=>'agrave',225=>'aacute',226=>'acircumflex',227=>'atilde',228=>'adieresis',229=>'aring',230=>'ae',231=>'ccedilla',
|
||||
232=>'egrave',233=>'eacute',234=>'ecircumflex',235=>'edieresis',236=>'igrave',237=>'iacute',238=>'icircumflex',239=>'idieresis',
|
||||
240=>'gbreve',241=>'ntilde',242=>'ograve',243=>'oacute',244=>'ocircumflex',245=>'otilde',246=>'odieresis',247=>'divide',
|
||||
248=>'oslash',249=>'ugrave',250=>'uacute',251=>'ucircumflex',252=>'udieresis',253=>'dotlessi',254=>'scedilla',255=>'ydieresis'),
|
||||
|
||||
// encoding map for: iso-8859-1
|
||||
'iso-8859-1' => array(0=>'.notdef',1=>'.notdef',2=>'.notdef',3=>'.notdef',4=>'.notdef',5=>'.notdef',6=>'.notdef',7=>'.notdef',
|
||||
8=>'.notdef',9=>'.notdef',10=>'.notdef',11=>'.notdef',12=>'.notdef',13=>'.notdef',14=>'.notdef',15=>'.notdef',
|
||||
16=>'.notdef',17=>'.notdef',18=>'.notdef',19=>'.notdef',20=>'.notdef',21=>'.notdef',22=>'.notdef',23=>'.notdef',
|
||||
24=>'.notdef',25=>'.notdef',26=>'.notdef',27=>'.notdef',28=>'.notdef',29=>'.notdef',30=>'.notdef',31=>'.notdef',
|
||||
32=>'space',33=>'exclam',34=>'quotedbl',35=>'numbersign',36=>'dollar',37=>'percent',38=>'ampersand',39=>'quotesingle',
|
||||
40=>'parenleft',41=>'parenright',42=>'asterisk',43=>'plus',44=>'comma',45=>'hyphen',46=>'period',47=>'slash',
|
||||
48=>'zero',49=>'one',50=>'two',51=>'three',52=>'four',53=>'five',54=>'six',55=>'seven',
|
||||
56=>'eight',57=>'nine',58=>'colon',59=>'semicolon',60=>'less',61=>'equal',62=>'greater',63=>'question',
|
||||
64=>'at',65=>'A',66=>'B',67=>'C',68=>'D',69=>'E',70=>'F',71=>'G',
|
||||
72=>'H',73=>'I',74=>'J',75=>'K',76=>'L',77=>'M',78=>'N',79=>'O',
|
||||
80=>'P',81=>'Q',82=>'R',83=>'S',84=>'T',85=>'U',86=>'V',87=>'W',
|
||||
88=>'X',89=>'Y',90=>'Z',91=>'bracketleft',92=>'backslash',93=>'bracketright',94=>'asciicircum',95=>'underscore',
|
||||
96=>'grave',97=>'a',98=>'b',99=>'c',100=>'d',101=>'e',102=>'f',103=>'g',
|
||||
104=>'h',105=>'i',106=>'j',107=>'k',108=>'l',109=>'m',110=>'n',111=>'o',
|
||||
112=>'p',113=>'q',114=>'r',115=>'s',116=>'t',117=>'u',118=>'v',119=>'w',
|
||||
120=>'x',121=>'y',122=>'z',123=>'braceleft',124=>'bar',125=>'braceright',126=>'asciitilde',127=>'.notdef',
|
||||
128=>'.notdef',129=>'.notdef',130=>'.notdef',131=>'.notdef',132=>'.notdef',133=>'.notdef',134=>'.notdef',135=>'.notdef',
|
||||
136=>'.notdef',137=>'.notdef',138=>'.notdef',139=>'.notdef',140=>'.notdef',141=>'.notdef',142=>'.notdef',143=>'.notdef',
|
||||
144=>'.notdef',145=>'.notdef',146=>'.notdef',147=>'.notdef',148=>'.notdef',149=>'.notdef',150=>'.notdef',151=>'.notdef',
|
||||
152=>'.notdef',153=>'.notdef',154=>'.notdef',155=>'.notdef',156=>'.notdef',157=>'.notdef',158=>'.notdef',159=>'.notdef',
|
||||
160=>'space',161=>'exclamdown',162=>'cent',163=>'sterling',164=>'currency',165=>'yen',166=>'brokenbar',167=>'section',
|
||||
168=>'dieresis',169=>'copyright',170=>'ordfeminine',171=>'guillemotleft',172=>'logicalnot',173=>'hyphen',174=>'registered',175=>'macron',
|
||||
176=>'degree',177=>'plusminus',178=>'twosuperior',179=>'threesuperior',180=>'acute',181=>'mu',182=>'paragraph',183=>'periodcentered',
|
||||
184=>'cedilla',185=>'onesuperior',186=>'ordmasculine',187=>'guillemotright',188=>'onequarter',189=>'onehalf',190=>'threequarters',191=>'questiondown',
|
||||
192=>'Agrave',193=>'Aacute',194=>'Acircumflex',195=>'Atilde',196=>'Adieresis',197=>'Aring',198=>'AE',199=>'Ccedilla',
|
||||
200=>'Egrave',201=>'Eacute',202=>'Ecircumflex',203=>'Edieresis',204=>'Igrave',205=>'Iacute',206=>'Icircumflex',207=>'Idieresis',
|
||||
208=>'Eth',209=>'Ntilde',210=>'Ograve',211=>'Oacute',212=>'Ocircumflex',213=>'Otilde',214=>'Odieresis',215=>'multiply',
|
||||
216=>'Oslash',217=>'Ugrave',218=>'Uacute',219=>'Ucircumflex',220=>'Udieresis',221=>'Yacute',222=>'Thorn',223=>'germandbls',
|
||||
224=>'agrave',225=>'aacute',226=>'acircumflex',227=>'atilde',228=>'adieresis',229=>'aring',230=>'ae',231=>'ccedilla',
|
||||
232=>'egrave',233=>'eacute',234=>'ecircumflex',235=>'edieresis',236=>'igrave',237=>'iacute',238=>'icircumflex',239=>'idieresis',
|
||||
240=>'eth',241=>'ntilde',242=>'ograve',243=>'oacute',244=>'ocircumflex',245=>'otilde',246=>'odieresis',247=>'divide',
|
||||
248=>'oslash',249=>'ugrave',250=>'uacute',251=>'ucircumflex',252=>'udieresis',253=>'yacute',254=>'thorn',255=>'ydieresis'),
|
||||
|
||||
// encoding map for: iso-8859-15
|
||||
'iso-8859-15' => array(0=>'.notdef',1=>'.notdef',2=>'.notdef',3=>'.notdef',4=>'.notdef',5=>'.notdef',6=>'.notdef',7=>'.notdef',
|
||||
8=>'.notdef',9=>'.notdef',10=>'.notdef',11=>'.notdef',12=>'.notdef',13=>'.notdef',14=>'.notdef',15=>'.notdef',
|
||||
16=>'.notdef',17=>'.notdef',18=>'.notdef',19=>'.notdef',20=>'.notdef',21=>'.notdef',22=>'.notdef',23=>'.notdef',
|
||||
24=>'.notdef',25=>'.notdef',26=>'.notdef',27=>'.notdef',28=>'.notdef',29=>'.notdef',30=>'.notdef',31=>'.notdef',
|
||||
32=>'space',33=>'exclam',34=>'quotedbl',35=>'numbersign',36=>'dollar',37=>'percent',38=>'ampersand',39=>'quotesingle',
|
||||
40=>'parenleft',41=>'parenright',42=>'asterisk',43=>'plus',44=>'comma',45=>'hyphen',46=>'period',47=>'slash',
|
||||
48=>'zero',49=>'one',50=>'two',51=>'three',52=>'four',53=>'five',54=>'six',55=>'seven',
|
||||
56=>'eight',57=>'nine',58=>'colon',59=>'semicolon',60=>'less',61=>'equal',62=>'greater',63=>'question',
|
||||
64=>'at',65=>'A',66=>'B',67=>'C',68=>'D',69=>'E',70=>'F',71=>'G',
|
||||
72=>'H',73=>'I',74=>'J',75=>'K',76=>'L',77=>'M',78=>'N',79=>'O',
|
||||
80=>'P',81=>'Q',82=>'R',83=>'S',84=>'T',85=>'U',86=>'V',87=>'W',
|
||||
88=>'X',89=>'Y',90=>'Z',91=>'bracketleft',92=>'backslash',93=>'bracketright',94=>'asciicircum',95=>'underscore',
|
||||
96=>'grave',97=>'a',98=>'b',99=>'c',100=>'d',101=>'e',102=>'f',103=>'g',
|
||||
104=>'h',105=>'i',106=>'j',107=>'k',108=>'l',109=>'m',110=>'n',111=>'o',
|
||||
112=>'p',113=>'q',114=>'r',115=>'s',116=>'t',117=>'u',118=>'v',119=>'w',
|
||||
120=>'x',121=>'y',122=>'z',123=>'braceleft',124=>'bar',125=>'braceright',126=>'asciitilde',127=>'.notdef',
|
||||
128=>'.notdef',129=>'.notdef',130=>'.notdef',131=>'.notdef',132=>'.notdef',133=>'.notdef',134=>'.notdef',135=>'.notdef',
|
||||
136=>'.notdef',137=>'.notdef',138=>'.notdef',139=>'.notdef',140=>'.notdef',141=>'.notdef',142=>'.notdef',143=>'.notdef',
|
||||
144=>'.notdef',145=>'.notdef',146=>'.notdef',147=>'.notdef',148=>'.notdef',149=>'.notdef',150=>'.notdef',151=>'.notdef',
|
||||
152=>'.notdef',153=>'.notdef',154=>'.notdef',155=>'.notdef',156=>'.notdef',157=>'.notdef',158=>'.notdef',159=>'.notdef',
|
||||
160=>'space',161=>'exclamdown',162=>'cent',163=>'sterling',164=>'Euro',165=>'yen',166=>'Scaron',167=>'section',
|
||||
168=>'scaron',169=>'copyright',170=>'ordfeminine',171=>'guillemotleft',172=>'logicalnot',173=>'hyphen',174=>'registered',175=>'macron',
|
||||
176=>'degree',177=>'plusminus',178=>'twosuperior',179=>'threesuperior',180=>'Zcaron',181=>'mu',182=>'paragraph',183=>'periodcentered',
|
||||
184=>'zcaron',185=>'onesuperior',186=>'ordmasculine',187=>'guillemotright',188=>'OE',189=>'oe',190=>'Ydieresis',191=>'questiondown',
|
||||
192=>'Agrave',193=>'Aacute',194=>'Acircumflex',195=>'Atilde',196=>'Adieresis',197=>'Aring',198=>'AE',199=>'Ccedilla',
|
||||
200=>'Egrave',201=>'Eacute',202=>'Ecircumflex',203=>'Edieresis',204=>'Igrave',205=>'Iacute',206=>'Icircumflex',207=>'Idieresis',
|
||||
208=>'Eth',209=>'Ntilde',210=>'Ograve',211=>'Oacute',212=>'Ocircumflex',213=>'Otilde',214=>'Odieresis',215=>'multiply',
|
||||
216=>'Oslash',217=>'Ugrave',218=>'Uacute',219=>'Ucircumflex',220=>'Udieresis',221=>'Yacute',222=>'Thorn',223=>'germandbls',
|
||||
224=>'agrave',225=>'aacute',226=>'acircumflex',227=>'atilde',228=>'adieresis',229=>'aring',230=>'ae',231=>'ccedilla',
|
||||
232=>'egrave',233=>'eacute',234=>'ecircumflex',235=>'edieresis',236=>'igrave',237=>'iacute',238=>'icircumflex',239=>'idieresis',
|
||||
240=>'eth',241=>'ntilde',242=>'ograve',243=>'oacute',244=>'ocircumflex',245=>'otilde',246=>'odieresis',247=>'divide',
|
||||
248=>'oslash',249=>'ugrave',250=>'uacute',251=>'ucircumflex',252=>'udieresis',253=>'yacute',254=>'thorn',255=>'ydieresis'),
|
||||
|
||||
// encoding map for: iso-8859-5
|
||||
'iso-8859-5' => array(0=>'.notdef',1=>'.notdef',2=>'.notdef',3=>'.notdef',4=>'.notdef',5=>'.notdef',6=>'.notdef',7=>'.notdef',
|
||||
8=>'.notdef',9=>'.notdef',10=>'.notdef',11=>'.notdef',12=>'.notdef',13=>'.notdef',14=>'.notdef',15=>'.notdef',
|
||||
16=>'.notdef',17=>'.notdef',18=>'.notdef',19=>'.notdef',20=>'.notdef',21=>'.notdef',22=>'.notdef',23=>'.notdef',
|
||||
24=>'.notdef',25=>'.notdef',26=>'.notdef',27=>'.notdef',28=>'.notdef',29=>'.notdef',30=>'.notdef',31=>'.notdef',
|
||||
32=>'space',33=>'exclam',34=>'quotedbl',35=>'numbersign',36=>'dollar',37=>'percent',38=>'ampersand',39=>'quotesingle',
|
||||
40=>'parenleft',41=>'parenright',42=>'asterisk',43=>'plus',44=>'comma',45=>'hyphen',46=>'period',47=>'slash',
|
||||
48=>'zero',49=>'one',50=>'two',51=>'three',52=>'four',53=>'five',54=>'six',55=>'seven',
|
||||
56=>'eight',57=>'nine',58=>'colon',59=>'semicolon',60=>'less',61=>'equal',62=>'greater',63=>'question',
|
||||
64=>'at',65=>'A',66=>'B',67=>'C',68=>'D',69=>'E',70=>'F',71=>'G',
|
||||
72=>'H',73=>'I',74=>'J',75=>'K',76=>'L',77=>'M',78=>'N',79=>'O',
|
||||
80=>'P',81=>'Q',82=>'R',83=>'S',84=>'T',85=>'U',86=>'V',87=>'W',
|
||||
88=>'X',89=>'Y',90=>'Z',91=>'bracketleft',92=>'backslash',93=>'bracketright',94=>'asciicircum',95=>'underscore',
|
||||
96=>'grave',97=>'a',98=>'b',99=>'c',100=>'d',101=>'e',102=>'f',103=>'g',
|
||||
104=>'h',105=>'i',106=>'j',107=>'k',108=>'l',109=>'m',110=>'n',111=>'o',
|
||||
112=>'p',113=>'q',114=>'r',115=>'s',116=>'t',117=>'u',118=>'v',119=>'w',
|
||||
120=>'x',121=>'y',122=>'z',123=>'braceleft',124=>'bar',125=>'braceright',126=>'asciitilde',127=>'.notdef',
|
||||
128=>'.notdef',129=>'.notdef',130=>'.notdef',131=>'.notdef',132=>'.notdef',133=>'.notdef',134=>'.notdef',135=>'.notdef',
|
||||
136=>'.notdef',137=>'.notdef',138=>'.notdef',139=>'.notdef',140=>'.notdef',141=>'.notdef',142=>'.notdef',143=>'.notdef',
|
||||
144=>'.notdef',145=>'.notdef',146=>'.notdef',147=>'.notdef',148=>'.notdef',149=>'.notdef',150=>'.notdef',151=>'.notdef',
|
||||
152=>'.notdef',153=>'.notdef',154=>'.notdef',155=>'.notdef',156=>'.notdef',157=>'.notdef',158=>'.notdef',159=>'.notdef',
|
||||
160=>'space',161=>'afii10023',162=>'afii10051',163=>'afii10052',164=>'afii10053',165=>'afii10054',166=>'afii10055',167=>'afii10056',
|
||||
168=>'afii10057',169=>'afii10058',170=>'afii10059',171=>'afii10060',172=>'afii10061',173=>'hyphen',174=>'afii10062',175=>'afii10145',
|
||||
176=>'afii10017',177=>'afii10018',178=>'afii10019',179=>'afii10020',180=>'afii10021',181=>'afii10022',182=>'afii10024',183=>'afii10025',
|
||||
184=>'afii10026',185=>'afii10027',186=>'afii10028',187=>'afii10029',188=>'afii10030',189=>'afii10031',190=>'afii10032',191=>'afii10033',
|
||||
192=>'afii10034',193=>'afii10035',194=>'afii10036',195=>'afii10037',196=>'afii10038',197=>'afii10039',198=>'afii10040',199=>'afii10041',
|
||||
200=>'afii10042',201=>'afii10043',202=>'afii10044',203=>'afii10045',204=>'afii10046',205=>'afii10047',206=>'afii10048',207=>'afii10049',
|
||||
208=>'afii10065',209=>'afii10066',210=>'afii10067',211=>'afii10068',212=>'afii10069',213=>'afii10070',214=>'afii10072',215=>'afii10073',
|
||||
216=>'afii10074',217=>'afii10075',218=>'afii10076',219=>'afii10077',220=>'afii10078',221=>'afii10079',222=>'afii10080',223=>'afii10081',
|
||||
224=>'afii10082',225=>'afii10083',226=>'afii10084',227=>'afii10085',228=>'afii10086',229=>'afii10087',230=>'afii10088',231=>'afii10089',
|
||||
232=>'afii10090',233=>'afii10091',234=>'afii10092',235=>'afii10093',236=>'afii10094',237=>'afii10095',238=>'afii10096',239=>'afii10097',
|
||||
240=>'afii61352',241=>'afii10071',242=>'afii10099',243=>'afii10100',244=>'afii10101',245=>'afii10102',246=>'afii10103',247=>'afii10104',
|
||||
248=>'afii10105',249=>'afii10106',250=>'afii10107',251=>'afii10108',252=>'afii10109',253=>'section',254=>'afii10110',255=>'afii10193'),
|
||||
|
||||
// encoding map for: iso-8859-5
|
||||
'iso-8859-5' => array(0=>'.notdef',1=>'.notdef',2=>'.notdef',3=>'.notdef',4=>'.notdef',5=>'.notdef',6=>'.notdef',7=>'.notdef',
|
||||
8=>'.notdef',9=>'.notdef',10=>'.notdef',11=>'.notdef',12=>'.notdef',13=>'.notdef',14=>'.notdef',15=>'.notdef',
|
||||
16=>'.notdef',17=>'.notdef',18=>'.notdef',19=>'.notdef',20=>'.notdef',21=>'.notdef',22=>'.notdef',23=>'.notdef',
|
||||
24=>'.notdef',25=>'.notdef',26=>'.notdef',27=>'.notdef',28=>'.notdef',29=>'.notdef',30=>'.notdef',31=>'.notdef',
|
||||
32=>'space',33=>'exclam',34=>'quotedbl',35=>'numbersign',36=>'dollar',37=>'percent',38=>'ampersand',39=>'quotesingle',
|
||||
40=>'parenleft',41=>'parenright',42=>'asterisk',43=>'plus',44=>'comma',45=>'hyphen',46=>'period',47=>'slash',
|
||||
48=>'zero',49=>'one',50=>'two',51=>'three',52=>'four',53=>'five',54=>'six',55=>'seven',
|
||||
56=>'eight',57=>'nine',58=>'colon',59=>'semicolon',60=>'less',61=>'equal',62=>'greater',63=>'question',
|
||||
64=>'at',65=>'A',66=>'B',67=>'C',68=>'D',69=>'E',70=>'F',71=>'G',
|
||||
72=>'H',73=>'I',74=>'J',75=>'K',76=>'L',77=>'M',78=>'N',79=>'O',
|
||||
80=>'P',81=>'Q',82=>'R',83=>'S',84=>'T',85=>'U',86=>'V',87=>'W',
|
||||
88=>'X',89=>'Y',90=>'Z',91=>'bracketleft',92=>'backslash',93=>'bracketright',94=>'asciicircum',95=>'underscore',
|
||||
96=>'grave',97=>'a',98=>'b',99=>'c',100=>'d',101=>'e',102=>'f',103=>'g',
|
||||
104=>'h',105=>'i',106=>'j',107=>'k',108=>'l',109=>'m',110=>'n',111=>'o',
|
||||
112=>'p',113=>'q',114=>'r',115=>'s',116=>'t',117=>'u',118=>'v',119=>'w',
|
||||
120=>'x',121=>'y',122=>'z',123=>'braceleft',124=>'bar',125=>'braceright',126=>'asciitilde',127=>'.notdef',
|
||||
128=>'.notdef',129=>'.notdef',130=>'.notdef',131=>'.notdef',132=>'.notdef',133=>'.notdef',134=>'.notdef',135=>'.notdef',
|
||||
136=>'.notdef',137=>'.notdef',138=>'.notdef',139=>'.notdef',140=>'.notdef',141=>'.notdef',142=>'.notdef',143=>'.notdef',
|
||||
144=>'.notdef',145=>'.notdef',146=>'.notdef',147=>'.notdef',148=>'.notdef',149=>'.notdef',150=>'.notdef',151=>'.notdef',
|
||||
152=>'.notdef',153=>'.notdef',154=>'.notdef',155=>'.notdef',156=>'.notdef',157=>'.notdef',158=>'.notdef',159=>'.notdef',
|
||||
160=>'space',161=>'afii10023',162=>'afii10051',163=>'afii10052',164=>'afii10053',165=>'afii10054',166=>'afii10055',167=>'afii10056',
|
||||
168=>'afii10057',169=>'afii10058',170=>'afii10059',171=>'afii10060',172=>'afii10061',173=>'hyphen',174=>'afii10062',175=>'afii10145',
|
||||
176=>'afii10017',177=>'afii10018',178=>'afii10019',179=>'afii10020',180=>'afii10021',181=>'afii10022',182=>'afii10024',183=>'afii10025',
|
||||
184=>'afii10026',185=>'afii10027',186=>'afii10028',187=>'afii10029',188=>'afii10030',189=>'afii10031',190=>'afii10032',191=>'afii10033',
|
||||
192=>'afii10034',193=>'afii10035',194=>'afii10036',195=>'afii10037',196=>'afii10038',197=>'afii10039',198=>'afii10040',199=>'afii10041',
|
||||
200=>'afii10042',201=>'afii10043',202=>'afii10044',203=>'afii10045',204=>'afii10046',205=>'afii10047',206=>'afii10048',207=>'afii10049',
|
||||
208=>'afii10065',209=>'afii10066',210=>'afii10067',211=>'afii10068',212=>'afii10069',213=>'afii10070',214=>'afii10072',215=>'afii10073',
|
||||
216=>'afii10074',217=>'afii10075',218=>'afii10076',219=>'afii10077',220=>'afii10078',221=>'afii10079',222=>'afii10080',223=>'afii10081',
|
||||
224=>'afii10082',225=>'afii10083',226=>'afii10084',227=>'afii10085',228=>'afii10086',229=>'afii10087',230=>'afii10088',231=>'afii10089',
|
||||
232=>'afii10090',233=>'afii10091',234=>'afii10092',235=>'afii10093',236=>'afii10094',237=>'afii10095',238=>'afii10096',239=>'afii10097',
|
||||
240=>'afii61352',241=>'afii10071',242=>'afii10099',243=>'afii10100',244=>'afii10101',245=>'afii10102',246=>'afii10103',247=>'afii10104',
|
||||
248=>'afii10105',249=>'afii10106',250=>'afii10107',251=>'afii10108',252=>'afii10109',253=>'section',254=>'afii10110',255=>'afii10193'),
|
||||
|
||||
// encoding map for: koi8-r
|
||||
'koi8-r' => array(0=>'.notdef',1=>'.notdef',2=>'.notdef',3=>'.notdef',4=>'.notdef',5=>'.notdef',6=>'.notdef',7=>'.notdef',
|
||||
8=>'.notdef',9=>'.notdef',10=>'.notdef',11=>'.notdef',12=>'.notdef',13=>'.notdef',14=>'.notdef',15=>'.notdef',
|
||||
16=>'.notdef',17=>'.notdef',18=>'.notdef',19=>'.notdef',20=>'.notdef',21=>'.notdef',22=>'.notdef',23=>'.notdef',
|
||||
24=>'.notdef',25=>'.notdef',26=>'.notdef',27=>'.notdef',28=>'.notdef',29=>'.notdef',30=>'.notdef',31=>'.notdef',
|
||||
32=>'space',33=>'exclam',34=>'quotedbl',35=>'numbersign',36=>'dollar',37=>'percent',38=>'ampersand',39=>'quotesingle',
|
||||
40=>'parenleft',41=>'parenright',42=>'asterisk',43=>'plus',44=>'comma',45=>'hyphen',46=>'period',47=>'slash',
|
||||
48=>'zero',49=>'one',50=>'two',51=>'three',52=>'four',53=>'five',54=>'six',55=>'seven',
|
||||
56=>'eight',57=>'nine',58=>'colon',59=>'semicolon',60=>'less',61=>'equal',62=>'greater',63=>'question',
|
||||
64=>'at',65=>'A',66=>'B',67=>'C',68=>'D',69=>'E',70=>'F',71=>'G',
|
||||
72=>'H',73=>'I',74=>'J',75=>'K',76=>'L',77=>'M',78=>'N',79=>'O',
|
||||
80=>'P',81=>'Q',82=>'R',83=>'S',84=>'T',85=>'U',86=>'V',87=>'W',
|
||||
88=>'X',89=>'Y',90=>'Z',91=>'bracketleft',92=>'backslash',93=>'bracketright',94=>'asciicircum',95=>'underscore',
|
||||
96=>'grave',97=>'a',98=>'b',99=>'c',100=>'d',101=>'e',102=>'f',103=>'g',
|
||||
104=>'h',105=>'i',106=>'j',107=>'k',108=>'l',109=>'m',110=>'n',111=>'o',
|
||||
112=>'p',113=>'q',114=>'r',115=>'s',116=>'t',117=>'u',118=>'v',119=>'w',
|
||||
120=>'x',121=>'y',122=>'z',123=>'braceleft',124=>'bar',125=>'braceright',126=>'asciitilde',127=>'.notdef',
|
||||
128=>'SF100000',129=>'SF110000',130=>'SF010000',131=>'SF030000',132=>'SF020000',133=>'SF040000',134=>'SF080000',135=>'SF090000',
|
||||
136=>'SF060000',137=>'SF070000',138=>'SF050000',139=>'upblock',140=>'dnblock',141=>'block',142=>'lfblock',143=>'rtblock',
|
||||
144=>'ltshade',145=>'shade',146=>'dkshade',147=>'integraltp',148=>'filledbox',149=>'periodcentered',150=>'radical',151=>'approxequal',
|
||||
152=>'lessequal',153=>'greaterequal',154=>'space',155=>'integralbt',156=>'degree',157=>'twosuperior',158=>'periodcentered',159=>'divide',
|
||||
160=>'SF430000',161=>'SF240000',162=>'SF510000',163=>'afii10071',164=>'SF520000',165=>'SF390000',166=>'SF220000',167=>'SF210000',
|
||||
168=>'SF250000',169=>'SF500000',170=>'SF490000',171=>'SF380000',172=>'SF280000',173=>'SF270000',174=>'SF260000',175=>'SF360000',
|
||||
176=>'SF370000',177=>'SF420000',178=>'SF190000',179=>'afii10023',180=>'SF200000',181=>'SF230000',182=>'SF470000',183=>'SF480000',
|
||||
184=>'SF410000',185=>'SF450000',186=>'SF460000',187=>'SF400000',188=>'SF540000',189=>'SF530000',190=>'SF440000',191=>'copyright',
|
||||
192=>'afii10096',193=>'afii10065',194=>'afii10066',195=>'afii10088',196=>'afii10069',197=>'afii10070',198=>'afii10086',199=>'afii10068',
|
||||
200=>'afii10087',201=>'afii10074',202=>'afii10075',203=>'afii10076',204=>'afii10077',205=>'afii10078',206=>'afii10079',207=>'afii10080',
|
||||
208=>'afii10081',209=>'afii10097',210=>'afii10082',211=>'afii10083',212=>'afii10084',213=>'afii10085',214=>'afii10072',215=>'afii10067',
|
||||
216=>'afii10094',217=>'afii10093',218=>'afii10073',219=>'afii10090',220=>'afii10095',221=>'afii10091',222=>'afii10089',223=>'afii10092',
|
||||
224=>'afii10048',225=>'afii10017',226=>'afii10018',227=>'afii10040',228=>'afii10021',229=>'afii10022',230=>'afii10038',231=>'afii10020',
|
||||
232=>'afii10039',233=>'afii10026',234=>'afii10027',235=>'afii10028',236=>'afii10029',237=>'afii10030',238=>'afii10031',239=>'afii10032',
|
||||
240=>'afii10033',241=>'afii10049',242=>'afii10034',243=>'afii10035',244=>'afii10036',245=>'afii10037',246=>'afii10024',247=>'afii10019',
|
||||
248=>'afii10046',249=>'afii10045',250=>'afii10025',251=>'afii10042',252=>'afii10047',253=>'afii10043',254=>'afii10041',255=>'afii10044'),
|
||||
|
||||
// encoding map for: koi8-r
|
||||
'koi8-r' => array(0=>'.notdef',1=>'.notdef',2=>'.notdef',3=>'.notdef',4=>'.notdef',5=>'.notdef',6=>'.notdef',7=>'.notdef',
|
||||
8=>'.notdef',9=>'.notdef',10=>'.notdef',11=>'.notdef',12=>'.notdef',13=>'.notdef',14=>'.notdef',15=>'.notdef',
|
||||
16=>'.notdef',17=>'.notdef',18=>'.notdef',19=>'.notdef',20=>'.notdef',21=>'.notdef',22=>'.notdef',23=>'.notdef',
|
||||
24=>'.notdef',25=>'.notdef',26=>'.notdef',27=>'.notdef',28=>'.notdef',29=>'.notdef',30=>'.notdef',31=>'.notdef',
|
||||
32=>'space',33=>'exclam',34=>'quotedbl',35=>'numbersign',36=>'dollar',37=>'percent',38=>'ampersand',39=>'quotesingle',
|
||||
40=>'parenleft',41=>'parenright',42=>'asterisk',43=>'plus',44=>'comma',45=>'hyphen',46=>'period',47=>'slash',
|
||||
48=>'zero',49=>'one',50=>'two',51=>'three',52=>'four',53=>'five',54=>'six',55=>'seven',
|
||||
56=>'eight',57=>'nine',58=>'colon',59=>'semicolon',60=>'less',61=>'equal',62=>'greater',63=>'question',
|
||||
64=>'at',65=>'A',66=>'B',67=>'C',68=>'D',69=>'E',70=>'F',71=>'G',
|
||||
72=>'H',73=>'I',74=>'J',75=>'K',76=>'L',77=>'M',78=>'N',79=>'O',
|
||||
80=>'P',81=>'Q',82=>'R',83=>'S',84=>'T',85=>'U',86=>'V',87=>'W',
|
||||
88=>'X',89=>'Y',90=>'Z',91=>'bracketleft',92=>'backslash',93=>'bracketright',94=>'asciicircum',95=>'underscore',
|
||||
96=>'grave',97=>'a',98=>'b',99=>'c',100=>'d',101=>'e',102=>'f',103=>'g',
|
||||
104=>'h',105=>'i',106=>'j',107=>'k',108=>'l',109=>'m',110=>'n',111=>'o',
|
||||
112=>'p',113=>'q',114=>'r',115=>'s',116=>'t',117=>'u',118=>'v',119=>'w',
|
||||
120=>'x',121=>'y',122=>'z',123=>'braceleft',124=>'bar',125=>'braceright',126=>'asciitilde',127=>'.notdef',
|
||||
128=>'SF100000',129=>'SF110000',130=>'SF010000',131=>'SF030000',132=>'SF020000',133=>'SF040000',134=>'SF080000',135=>'SF090000',
|
||||
136=>'SF060000',137=>'SF070000',138=>'SF050000',139=>'upblock',140=>'dnblock',141=>'block',142=>'lfblock',143=>'rtblock',
|
||||
144=>'ltshade',145=>'shade',146=>'dkshade',147=>'integraltp',148=>'filledbox',149=>'periodcentered',150=>'radical',151=>'approxequal',
|
||||
152=>'lessequal',153=>'greaterequal',154=>'space',155=>'integralbt',156=>'degree',157=>'twosuperior',158=>'periodcentered',159=>'divide',
|
||||
160=>'SF430000',161=>'SF240000',162=>'SF510000',163=>'afii10071',164=>'SF520000',165=>'SF390000',166=>'SF220000',167=>'SF210000',
|
||||
168=>'SF250000',169=>'SF500000',170=>'SF490000',171=>'SF380000',172=>'SF280000',173=>'SF270000',174=>'SF260000',175=>'SF360000',
|
||||
176=>'SF370000',177=>'SF420000',178=>'SF190000',179=>'afii10023',180=>'SF200000',181=>'SF230000',182=>'SF470000',183=>'SF480000',
|
||||
184=>'SF410000',185=>'SF450000',186=>'SF460000',187=>'SF400000',188=>'SF540000',189=>'SF530000',190=>'SF440000',191=>'copyright',
|
||||
192=>'afii10096',193=>'afii10065',194=>'afii10066',195=>'afii10088',196=>'afii10069',197=>'afii10070',198=>'afii10086',199=>'afii10068',
|
||||
200=>'afii10087',201=>'afii10074',202=>'afii10075',203=>'afii10076',204=>'afii10077',205=>'afii10078',206=>'afii10079',207=>'afii10080',
|
||||
208=>'afii10081',209=>'afii10097',210=>'afii10082',211=>'afii10083',212=>'afii10084',213=>'afii10085',214=>'afii10072',215=>'afii10067',
|
||||
216=>'afii10094',217=>'afii10093',218=>'afii10073',219=>'afii10090',220=>'afii10095',221=>'afii10091',222=>'afii10089',223=>'afii10092',
|
||||
224=>'afii10048',225=>'afii10017',226=>'afii10018',227=>'afii10040',228=>'afii10021',229=>'afii10022',230=>'afii10038',231=>'afii10020',
|
||||
232=>'afii10039',233=>'afii10026',234=>'afii10027',235=>'afii10028',236=>'afii10029',237=>'afii10030',238=>'afii10031',239=>'afii10032',
|
||||
240=>'afii10033',241=>'afii10049',242=>'afii10034',243=>'afii10035',244=>'afii10036',245=>'afii10037',246=>'afii10024',247=>'afii10019',
|
||||
248=>'afii10046',249=>'afii10045',250=>'afii10025',251=>'afii10042',252=>'afii10047',253=>'afii10043',254=>'afii10041',255=>'afii10044'),
|
||||
|
||||
// encoding map for: iso-8859-16
|
||||
'iso-8859-16' => array(0=>'.notdef',1=>'.notdef',2=>'.notdef',3=>'.notdef',4=>'.notdef',5=>'.notdef',6=>'.notdef',7=>'.notdef',
|
||||
8=>'.notdef',9=>'.notdef',10=>'.notdef',11=>'.notdef',12=>'.notdef',13=>'.notdef',14=>'.notdef',15=>'.notdef',
|
||||
16=>'.notdef',17=>'.notdef',18=>'.notdef',19=>'.notdef',20=>'.notdef',21=>'.notdef',22=>'.notdef',23=>'.notdef',
|
||||
24=>'.notdef',25=>'.notdef',26=>'.notdef',27=>'.notdef',28=>'.notdef',29=>'.notdef',30=>'.notdef',31=>'.notdef',
|
||||
32=>'space',33=>'exclam',34=>'quotedbl',35=>'numbersign',36=>'dollar',37=>'percent',38=>'ampersand',39=>'quotesingle',
|
||||
40=>'parenleft',41=>'parenright',42=>'asterisk',43=>'plus',44=>'comma',45=>'hyphen',46=>'period',47=>'slash',
|
||||
48=>'zero',49=>'one',50=>'two',51=>'three',52=>'four',53=>'five',54=>'six',55=>'seven',
|
||||
56=>'eight',57=>'nine',58=>'colon',59=>'semicolon',60=>'less',61=>'equal',62=>'greater',63=>'question',
|
||||
64=>'at',65=>'A',66=>'B',67=>'C',68=>'D',69=>'E',70=>'F',71=>'G',
|
||||
72=>'H',73=>'I',74=>'J',75=>'K',76=>'L',77=>'M',78=>'N',79=>'O',
|
||||
80=>'P',81=>'Q',82=>'R',83=>'S',84=>'T',85=>'U',86=>'V',87=>'W',
|
||||
88=>'X',89=>'Y',90=>'Z',91=>'bracketleft',92=>'backslash',93=>'bracketright',94=>'asciicircum',95=>'underscore',
|
||||
96=>'grave',97=>'a',98=>'b',99=>'c',100=>'d',101=>'e',102=>'f',103=>'g',
|
||||
104=>'h',105=>'i',106=>'j',107=>'k',108=>'l',109=>'m',110=>'n',111=>'o',
|
||||
112=>'p',113=>'q',114=>'r',115=>'s',116=>'t',117=>'u',118=>'v',119=>'w',
|
||||
120=>'x',121=>'y',122=>'z',123=>'braceleft',124=>'bar',125=>'braceright',126=>'asciitilde',127=>'.notdef',
|
||||
128=>'.notdef',129=>'.notdef',130=>'.notdef',131=>'.notdef',132=>'.notdef',133=>'.notdef',134=>'.notdef',135=>'.notdef',
|
||||
136=>'.notdef',137=>'.notdef',138=>'.notdef',139=>'.notdef',140=>'.notdef',141=>'.notdef',142=>'.notdef',143=>'.notdef',
|
||||
144=>'.notdef',145=>'.notdef',146=>'.notdef',147=>'.notdef',148=>'.notdef',149=>'.notdef',150=>'.notdef',151=>'.notdef',
|
||||
152=>'.notdef',153=>'.notdef',154=>'.notdef',155=>'.notdef',156=>'.notdef',157=>'.notdef',158=>'.notdef',159=>'.notdef',
|
||||
160=>'space',161=>'Aogonek',162=>'aogonek',163=>'Lslash',164=>'Euro',165=>'quotedblbase',166=>'Scaron',167=>'section',
|
||||
168=>'scaron',169=>'copyright',170=>'Scommaaccent',171=>'guillemotleft',172=>'Zacute',173=>'hyphen',174=>'zacute',175=>'Zdotaccent',
|
||||
176=>'degree',177=>'plusminus',178=>'Ccaron',179=>'lslash',180=>'Zcaron',181=>'quotedblright',182=>'paragraph',183=>'periodcentered',
|
||||
184=>'zcaron',185=>'ccaron',186=>'scommaaccent',187=>'guillemotright',188=>'OE',189=>'oe',190=>'Ydieresis',191=>'zdotaccent',
|
||||
192=>'Agrave',193=>'Aacute',194=>'Acircumflex',195=>'Abreve',196=>'Adieresis',197=>'Cacute',198=>'AE',199=>'Ccedilla',
|
||||
200=>'Egrave',201=>'Eacute',202=>'Ecircumflex',203=>'Edieresis',204=>'Igrave',205=>'Iacute',206=>'Icircumflex',207=>'Idieresis',
|
||||
208=>'Dcroat',209=>'Nacute',210=>'Ograve',211=>'Oacute',212=>'Ocircumflex',213=>'Ohungarumlaut',214=>'Odieresis',215=>'Sacute',
|
||||
216=>'Uhungarumlaut',217=>'Ugrave',218=>'Uacute',219=>'Ucircumflex',220=>'Udieresis',221=>'Eogonek',222=>'Tcommaaccent',223=>'germandbls',
|
||||
224=>'agrave',225=>'aacute',226=>'acircumflex',227=>'abreve',228=>'adieresis',229=>'cacute',230=>'ae',231=>'ccedilla',
|
||||
232=>'egrave',233=>'eacute',234=>'ecircumflex',235=>'edieresis',236=>'igrave',237=>'iacute',238=>'icircumflex',239=>'idieresis',
|
||||
240=>'dcroat',241=>'nacute',242=>'ograve',243=>'oacute',244=>'ocircumflex',245=>'ohungarumlaut',246=>'odieresis',247=>'sacute',
|
||||
248=>'uhungarumlaut',249=>'ugrave',250=>'uacute',251=>'ucircumflex',252=>'udieresis',253=>'eogonek',254=>'tcommaaccent',255=>'ydieresis'),
|
||||
|
||||
// encoding map for: koi8-u
|
||||
'koi8-u' => array(0=>'.notdef',1=>'.notdef',2=>'.notdef',3=>'.notdef',4=>'.notdef',5=>'.notdef',6=>'.notdef',7=>'.notdef',
|
||||
8=>'.notdef',9=>'.notdef',10=>'.notdef',11=>'.notdef',12=>'.notdef',13=>'.notdef',14=>'.notdef',15=>'.notdef',
|
||||
16=>'.notdef',17=>'.notdef',18=>'.notdef',19=>'.notdef',20=>'.notdef',21=>'.notdef',22=>'.notdef',23=>'.notdef',
|
||||
24=>'.notdef',25=>'.notdef',26=>'.notdef',27=>'.notdef',28=>'.notdef',29=>'.notdef',30=>'.notdef',31=>'.notdef',
|
||||
32=>'space',33=>'exclam',34=>'quotedbl',35=>'numbersign',36=>'dollar',37=>'percent',38=>'ampersand',39=>'quotesingle',
|
||||
40=>'parenleft',41=>'parenright',42=>'asterisk',43=>'plus',44=>'comma',45=>'hyphen',46=>'period',47=>'slash',
|
||||
48=>'zero',49=>'one',50=>'two',51=>'three',52=>'four',53=>'five',54=>'six',55=>'seven',
|
||||
56=>'eight',57=>'nine',58=>'colon',59=>'semicolon',60=>'less',61=>'equal',62=>'greater',63=>'question',
|
||||
64=>'at',65=>'A',66=>'B',67=>'C',68=>'D',69=>'E',70=>'F',71=>'G',
|
||||
72=>'H',73=>'I',74=>'J',75=>'K',76=>'L',77=>'M',78=>'N',79=>'O',
|
||||
80=>'P',81=>'Q',82=>'R',83=>'S',84=>'T',85=>'U',86=>'V',87=>'W',
|
||||
88=>'X',89=>'Y',90=>'Z',91=>'bracketleft',92=>'backslash',93=>'bracketright',94=>'asciicircum',95=>'underscore',
|
||||
96=>'grave',97=>'a',98=>'b',99=>'c',100=>'d',101=>'e',102=>'f',103=>'g',
|
||||
104=>'h',105=>'i',106=>'j',107=>'k',108=>'l',109=>'m',110=>'n',111=>'o',
|
||||
112=>'p',113=>'q',114=>'r',115=>'s',116=>'t',117=>'u',118=>'v',119=>'w',
|
||||
120=>'x',121=>'y',122=>'z',123=>'braceleft',124=>'bar',125=>'braceright',126=>'asciitilde',127=>'.notdef',
|
||||
128=>'SF100000',129=>'SF110000',130=>'SF010000',131=>'SF030000',132=>'SF020000',133=>'SF040000',134=>'SF080000',135=>'SF090000',
|
||||
136=>'SF060000',137=>'SF070000',138=>'SF050000',139=>'upblock',140=>'dnblock',141=>'block',142=>'lfblock',143=>'rtblock',
|
||||
144=>'ltshade',145=>'shade',146=>'dkshade',147=>'integraltp',148=>'filledbox',149=>'bullet',150=>'radical',151=>'approxequal',
|
||||
152=>'lessequal',153=>'greaterequal',154=>'space',155=>'integralbt',156=>'degree',157=>'twosuperior',158=>'periodcentered',159=>'divide',
|
||||
160=>'SF430000',161=>'SF240000',162=>'SF510000',163=>'afii10071',164=>'afii10101',165=>'SF390000',166=>'afii10103',167=>'afii10104',
|
||||
168=>'SF250000',169=>'SF500000',170=>'SF490000',171=>'SF380000',172=>'SF280000',173=>'afii10098',174=>'SF260000',175=>'SF360000',
|
||||
176=>'SF370000',177=>'SF420000',178=>'SF190000',179=>'afii10023',180=>'afii10053',181=>'SF230000',182=>'afii10055',183=>'afii10056',
|
||||
184=>'SF410000',185=>'SF450000',186=>'SF460000',187=>'SF400000',188=>'SF540000',189=>'afii10050',190=>'SF440000',191=>'copyright',
|
||||
192=>'afii10096',193=>'afii10065',194=>'afii10066',195=>'afii10088',196=>'afii10069',197=>'afii10070',198=>'afii10086',199=>'afii10068',
|
||||
200=>'afii10087',201=>'afii10074',202=>'afii10075',203=>'afii10076',204=>'afii10077',205=>'afii10078',206=>'afii10079',207=>'afii10080',
|
||||
208=>'afii10081',209=>'afii10097',210=>'afii10082',211=>'afii10083',212=>'afii10084',213=>'afii10085',214=>'afii10072',215=>'afii10067',
|
||||
216=>'afii10094',217=>'afii10093',218=>'afii10073',219=>'afii10090',220=>'afii10095',221=>'afii10091',222=>'afii10089',223=>'afii10092',
|
||||
224=>'afii10048',225=>'afii10017',226=>'afii10018',227=>'afii10040',228=>'afii10021',229=>'afii10022',230=>'afii10038',231=>'afii10020',
|
||||
232=>'afii10039',233=>'afii10026',234=>'afii10027',235=>'afii10028',236=>'afii10029',237=>'afii10030',238=>'afii10031',239=>'afii10032',
|
||||
240=>'afii10033',241=>'afii10049',242=>'afii10034',243=>'afii10035',244=>'afii10036',245=>'afii10037',246=>'afii10024',247=>'afii10019',
|
||||
248=>'afii10046',249=>'afii10045',250=>'afii10025',251=>'afii10042',252=>'afii10047',253=>'afii10043',254=>'afii10041',255=>'afii10044'),
|
||||
|
||||
// encoding map for: symbol
|
||||
'symbol' => array(0=>'.notdef',1=>'.notdef',2=>'.notdef',3=>'.notdef',4=>'.notdef',5=>'.notdef',6=>'.notdef',7=>'.notdef',
|
||||
8=>'.notdef',9=>'.notdef',10=>'.notdef',11=>'.notdef',12=>'.notdef',13=>'.notdef',14=>'.notdef',15=>'.notdef',
|
||||
16=>'.notdef',17=>'.notdef',18=>'.notdef',19=>'.notdef',20=>'.notdef',21=>'.notdef',22=>'.notdef',23=>'.notdef',
|
||||
24=>'.notdef',25=>'.notdef',26=>'.notdef',27=>'.notdef',28=>'.notdef',29=>'.notdef',30=>'.notdef',31=>'.notdef',
|
||||
32=>'space',33=>'exclam',34=>'universal',35=>'numbersign',36=>'existential',37=>'percent',38=>'ampersand',39=>'suchthat',
|
||||
40=>'parenleft',41=>'parenright',42=>'asteriskmath',43=>'plus',44=>'comma',45=>'minus',46=>'period',47=>'slash',
|
||||
48=>'zero',49=>'one',50=>'two',51=>'three',52=>'four',53=>'five',54=>'six',55=>'seven',
|
||||
56=>'eight',57=>'nine',58=>'colon',59=>'semicolon',60=>'less',61=>'equal',62=>'greater',63=>'question',
|
||||
64=>'congruent',65=>'Alpha',66=>'Beta',67=>'Chi',68=>'Delta',69=>'Epsilon',70=>'Phi',71=>'Gamma',
|
||||
72=>'Eta',73=>'Iota',74=>'theta1',75=>'Kappa',76=>'Lambda',77=>'Mu',78=>'Nu',79=>'Omicron',
|
||||
80=>'Pi',81=>'Theta',82=>'Rho',83=>'Sigma',84=>'Tau',85=>'Upsilon',86=>'sigma1',87=>'Omega',
|
||||
88=>'Xi',89=>'Psi',90=>'Zeta',91=>'bracketleft',92=>'therefore',93=>'bracketright',94=>'perpendicular',95=>'underscore',
|
||||
96=>'radicalex',97=>'alpha',98=>'beta',99=>'chi',100=>'delta',101=>'epsilon',102=>'phi',103=>'gamma',
|
||||
104=>'eta',105=>'iota',106=>'phi1',107=>'kappa',108=>'lambda',109=>'mu',110=>'nu',111=>'omicron',
|
||||
112=>'pi',113=>'theta',114=>'rho',115=>'sigma',116=>'tau',117=>'upsilon',118=>'omega1',119=>'omega',
|
||||
120=>'xi',121=>'psi',122=>'zeta',123=>'braceleft',124=>'bar',125=>'braceright',126=>'similar',127=>'.notdef',
|
||||
128=>'.notdef',129=>'.notdef',130=>'.notdef',131=>'.notdef',132=>'.notdef',133=>'.notdef',134=>'.notdef',135=>'.notdef',
|
||||
136=>'.notdef',137=>'.notdef',138=>'.notdef',139=>'.notdef',140=>'.notdef',141=>'.notdef',142=>'.notdef',143=>'.notdef',
|
||||
144=>'.notdef',145=>'.notdef',146=>'.notdef',147=>'.notdef',148=>'.notdef',149=>'.notdef',150=>'.notdef',151=>'.notdef',
|
||||
152=>'.notdef',153=>'.notdef',154=>'.notdef',155=>'.notdef',156=>'.notdef',157=>'.notdef',158=>'.notdef',159=>'.notdef',
|
||||
160=>'Euro',161=>'Upsilon1',162=>'minute',163=>'lessequal',164=>'fraction',165=>'infinity',166=>'florin',167=>'club',
|
||||
168=>'diamond',169=>'heart',170=>'spade',171=>'arrowboth',172=>'arrowleft',173=>'arrowup',174=>'arrowright',175=>'arrowdown',
|
||||
176=>'degree',177=>'plusminus',178=>'second',179=>'greaterequal',180=>'multiply',181=>'proportional',182=>'partialdiff',183=>'bullet',
|
||||
184=>'divide',185=>'notequal',186=>'equivalence',187=>'approxequal',188=>'ellipsis',189=>'arrowvertex',190=>'arrowhorizex',191=>'carriagereturn',
|
||||
192=>'aleph',193=>'Ifraktur',194=>'Rfraktur',195=>'weierstrass',196=>'circlemultiply',197=>'circleplus',198=>'emptyset',199=>'intersection',
|
||||
200=>'union',201=>'propersuperset',202=>'reflexsuperset',203=>'notsubset',204=>'propersubset',205=>'reflexsubset',206=>'element',207=>'notelement',
|
||||
208=>'angle',209=>'gradient',210=>'registerserif',211=>'copyrightserif',212=>'trademarkserif',213=>'product',214=>'radical',215=>'dotmath',
|
||||
216=>'logicalnot',217=>'logicaland',218=>'logicalor',219=>'arrowdblboth',220=>'arrowdblleft',221=>'arrowdblup',222=>'arrowdblright',223=>'arrowdbldown',
|
||||
224=>'lozenge',225=>'angleleft',226=>'registersans',227=>'copyrightsans',228=>'trademarksans',229=>'summation',230=>'parenlefttp',231=>'parenleftex',
|
||||
232=>'parenleftbt',233=>'bracketlefttp',234=>'bracketleftex',235=>'bracketleftbt',236=>'bracelefttp',237=>'braceleftmid',238=>'braceleftbt',239=>'braceex',
|
||||
240=>'.notdef',241=>'angleright',242=>'integral',243=>'integraltp',244=>'integralex',245=>'integralbt',246=>'parenrighttp',247=>'parenrightex',
|
||||
248=>'parenrightbt',249=>'bracketrighttp',250=>'bracketrightex',251=>'bracketrightbt',252=>'bracerighttp',253=>'bracerightmid',254=>'bracerightbt',255=>'.notdef',
|
||||
1226=>'registered',1227=>'copyright',1228=>'trademark')
|
||||
|
||||
); // end of encoding maps
|
||||
|
||||
} // --- END OF CLASS ---
|
||||
|
||||
//============================================================+
|
||||
// END OF FILE
|
||||
//============================================================+
|
@ -1,102 +0,0 @@
|
||||
<?php
|
||||
$type='TrueTypeUnicode';
|
||||
$name='AlMohanad';
|
||||
$desc=array('Ascent'=>1093,'Descent'=>-509,'CapHeight'=>1093,'Flags'=>32,'FontBBox'=>'[-278 -507 1124 1093]','ItalicAngle'=>0,'StemV'=>70,'MissingWidth'=>600);
|
||||
$up=-136;
|
||||
$ut=64;
|
||||
$dw=600;
|
||||
$cw=array(
|
||||
0=>0,32=>139,33=>185,34=>308,35=>278,36=>278,37=>556,38=>463,39=>154,40=>185,41=>185,42=>278,43=>317,44=>139,45=>185,46=>139,
|
||||
47=>154,48=>278,49=>278,50=>278,51=>278,52=>278,53=>278,54=>278,55=>278,56=>278,57=>278,58=>185,59=>185,60=>317,61=>317,62=>317,
|
||||
63=>278,64=>517,65=>401,66=>371,67=>401,68=>402,69=>371,70=>339,71=>432,72=>430,73=>214,74=>278,75=>424,76=>369,77=>524,78=>401,
|
||||
79=>432,80=>339,81=>432,82=>396,83=>309,84=>371,85=>401,86=>401,87=>556,88=>401,89=>401,90=>371,91=>185,92=>154,93=>185,94=>323,
|
||||
95=>278,96=>185,97=>278,98=>309,99=>247,100=>309,101=>247,102=>185,103=>278,104=>309,105=>154,106=>185,107=>309,108=>154,109=>463,110=>309,
|
||||
111=>278,112=>309,113=>309,114=>247,115=>216,116=>185,117=>309,118=>278,119=>401,120=>278,121=>278,122=>247,123=>219,124=>122,125=>219,126=>289,
|
||||
8364=>278,1027=>339,8218=>185,1107=>254,8222=>278,8230=>556,8224=>278,8225=>278,710=>185,8240=>556,352=>309,8249=>185,338=>556,1036=>432,381=>371,1039=>432,
|
||||
8216=>185,8217=>185,8220=>278,8221=>278,8226=>194,8211=>278,8212=>556,732=>185,8482=>556,353=>216,8250=>185,339=>401,1116=>297,382=>247,376=>401,161=>185,
|
||||
162=>278,163=>278,164=>278,165=>278,166=>122,167=>278,168=>185,169=>415,170=>167,171=>278,172=>317,174=>415,175=>185,176=>222,177=>317,178=>167,
|
||||
179=>167,180=>185,181=>309,182=>300,183=>139,184=>185,185=>167,186=>183,187=>278,188=>417,189=>417,190=>417,191=>278,192=>401,193=>401,194=>401,
|
||||
195=>401,196=>401,197=>401,198=>556,199=>401,200=>371,201=>371,202=>371,203=>371,204=>216,205=>216,206=>216,207=>216,208=>401,209=>401,210=>432,
|
||||
211=>432,212=>432,213=>432,214=>432,215=>317,216=>432,217=>401,218=>401,219=>401,220=>401,221=>401,222=>339,223=>309,224=>278,225=>278,226=>278,
|
||||
227=>278,228=>278,229=>278,230=>401,231=>247,232=>247,233=>247,234=>247,235=>247,236=>154,237=>154,238=>154,239=>154,240=>278,241=>309,242=>278,
|
||||
243=>278,244=>278,245=>278,246=>278,247=>317,248=>278,249=>309,250=>309,251=>309,252=>309,253=>278,254=>309,255=>278,256=>401,257=>278,258=>401,
|
||||
259=>278,260=>401,261=>278,262=>401,263=>247,264=>401,265=>247,266=>401,267=>247,268=>401,269=>247,270=>401,271=>309,272=>401,273=>309,274=>371,
|
||||
275=>247,276=>371,277=>247,278=>371,279=>247,280=>371,281=>247,282=>371,283=>247,284=>432,285=>278,286=>432,287=>278,288=>432,289=>278,290=>432,
|
||||
291=>278,292=>432,293=>309,294=>432,295=>309,296=>216,297=>154,298=>216,299=>154,300=>216,301=>154,302=>216,303=>154,304=>216,305=>154,306=>490,
|
||||
307=>270,308=>278,309=>185,310=>432,311=>309,312=>297,313=>371,314=>154,315=>371,316=>154,317=>371,318=>154,319=>371,320=>293,321=>371,322=>154,
|
||||
323=>401,324=>309,325=>401,326=>309,327=>401,328=>309,329=>391,330=>401,331=>309,332=>432,333=>278,334=>432,335=>278,336=>432,337=>278,340=>401,
|
||||
341=>247,342=>401,343=>247,344=>401,345=>247,346=>309,347=>216,348=>309,349=>216,350=>309,351=>216,354=>371,355=>185,356=>371,357=>185,358=>371,
|
||||
359=>185,360=>401,361=>309,362=>401,363=>309,364=>401,365=>309,366=>401,367=>309,368=>401,369=>309,370=>401,371=>309,372=>556,373=>401,374=>401,
|
||||
375=>278,377=>371,378=>247,379=>371,380=>247,383=>185,450=>317,477=>247,484=>432,485=>278,536=>309,537=>216,538=>371,539=>185,658=>282,711=>185,
|
||||
728=>185,729=>185,730=>185,731=>185,733=>185,768=>0,769=>0,770=>0,771=>0,772=>0,773=>0,774=>0,775=>0,776=>0,777=>0,778=>0,
|
||||
779=>0,780=>0,781=>0,782=>0,783=>0,784=>0,785=>0,786=>0,787=>0,788=>0,789=>0,790=>0,791=>0,792=>0,793=>0,794=>0,
|
||||
795=>0,796=>0,797=>0,798=>0,799=>0,800=>0,801=>0,802=>0,803=>0,804=>0,805=>0,806=>0,807=>0,808=>0,809=>0,810=>0,
|
||||
811=>0,812=>0,813=>0,814=>0,815=>0,816=>0,817=>0,818=>0,819=>0,820=>0,821=>0,822=>0,823=>0,824=>0,825=>0,826=>0,
|
||||
827=>0,828=>0,829=>0,830=>0,831=>0,864=>0,865=>0,884=>111,885=>111,890=>0,894=>185,900=>100,901=>183,902=>401,903=>139,904=>451,
|
||||
905=>532,906=>316,908=>451,910=>501,911=>451,912=>183,913=>401,914=>371,915=>339,916=>422,917=>371,918=>371,919=>432,920=>432,921=>216,922=>432,
|
||||
923=>401,924=>524,925=>401,926=>361,927=>432,928=>451,929=>339,931=>361,932=>371,933=>401,934=>482,935=>401,936=>482,937=>451,938=>0,939=>401,
|
||||
940=>336,941=>244,942=>336,943=>183,944=>306,945=>336,946=>306,947=>306,948=>306,949=>244,950=>275,951=>336,952=>306,953=>183,954=>338,955=>275,
|
||||
956=>336,957=>275,958=>275,959=>306,960=>336,961=>306,962=>244,963=>306,964=>244,965=>306,966=>367,967=>275,968=>397,969=>397,970=>183,971=>306,
|
||||
972=>306,973=>306,974=>397,976=>306,977=>306,978=>401,979=>401,980=>401,981=>367,982=>336,986=>283,987=>237,988=>339,989=>261,1024=>371,1025=>371,
|
||||
1026=>371,1028=>401,1029=>309,1030=>216,1031=>216,1032=>278,1033=>573,1034=>573,1035=>449,1037=>432,1038=>401,1040=>401,1041=>371,1042=>371,1043=>328,1044=>432,
|
||||
1045=>371,1046=>615,1047=>313,1048=>429,1049=>429,1050=>424,1051=>432,1052=>524,1053=>432,1054=>432,1055=>430,1056=>339,1057=>401,1058=>371,1059=>401,1060=>444,
|
||||
1061=>401,1062=>429,1063=>432,1064=>618,1065=>618,1066=>482,1067=>539,1068=>350,1069=>401,1070=>619,1071=>408,1072=>278,1073=>278,1074=>279,1075=>246,1076=>309,
|
||||
1077=>247,1078=>417,1079=>227,1080=>319,1081=>319,1082=>297,1083=>302,1084=>376,1085=>309,1086=>278,1087=>309,1088=>309,1089=>247,1090=>274,1091=>278,1092=>458,
|
||||
1093=>278,1094=>309,1095=>309,1096=>454,1097=>454,1098=>340,1099=>423,1100=>284,1101=>247,1102=>439,1103=>284,1104=>247,1105=>247,1106=>309,1108=>247,1109=>216,
|
||||
1110=>154,1111=>154,1112=>185,1113=>440,1114=>437,1115=>309,1117=>309,1118=>278,1119=>309,1164=>339,1165=>284,1166=>339,1167=>309,1168=>339,1169=>254,1170=>339,
|
||||
1171=>254,1172=>339,1173=>254,1174=>615,1175=>417,1176=>322,1177=>216,1178=>432,1179=>297,1180=>432,1181=>297,1182=>432,1183=>297,1184=>537,1185=>352,1186=>432,
|
||||
1187=>309,1188=>563,1189=>408,1190=>432,1191=>461,1192=>401,1193=>247,1194=>401,1195=>247,1196=>371,1197=>274,1198=>401,1199=>278,1200=>401,1201=>278,1202=>401,
|
||||
1203=>278,1204=>581,1205=>432,1206=>432,1207=>309,1208=>432,1209=>309,1210=>432,1211=>309,1212=>367,1213=>247,1214=>367,1215=>247,1216=>216,1217=>615,1218=>417,
|
||||
1219=>432,1220=>297,1223=>432,1224=>309,1227=>432,1228=>309,1232=>401,1233=>278,1234=>401,1235=>278,1236=>556,1237=>401,1238=>371,1239=>247,1240=>367,1241=>247,
|
||||
1242=>367,1243=>247,1244=>615,1245=>417,1246=>313,1247=>227,1248=>322,1249=>216,1250=>432,1251=>309,1252=>432,1253=>309,1254=>432,1255=>278,1256=>432,1257=>278,
|
||||
1258=>432,1259=>278,1260=>401,1261=>247,1262=>401,1263=>278,1264=>401,1265=>278,1266=>401,1267=>278,1268=>432,1269=>309,1272=>548,1273=>423,1488=>280,1489=>280,
|
||||
1490=>174,1491=>280,1492=>280,1493=>158,1494=>158,1495=>280,1496=>280,1497=>158,1498=>287,1499=>280,1500=>280,1501=>280,1502=>280,1503=>156,1504=>158,1505=>280,
|
||||
1506=>280,1507=>292,1508=>280,1509=>273,1510=>280,1511=>305,1512=>285,1513=>299,1514=>280,1548=>195,1563=>246,1567=>340,1569=>392,1570=>306,1571=>247,1572=>447,
|
||||
1573=>247,1574=>602,1575=>192,1576=>635,1577=>369,1578=>635,1579=>635,1580=>548,1581=>1173,1582=>548,1583=>363,1584=>363,1585=>439,1586=>442,1587=>875,1588=>875,
|
||||
1589=>1061,1590=>1061,1591=>811,1592=>811,1593=>549,1594=>547,1600=>389,1601=>755,1602=>574,1603=>717,1604=>555,1605=>423,1606=>532,1607=>371,1608=>454,1609=>633,
|
||||
1610=>643,1611=>-19,1612=>-26,1613=>-20,1614=>-19,1615=>-18,1616=>-19,1617=>-19,1618=>-15,1632=>383,1633=>383,1634=>383,1635=>383,1636=>383,1637=>383,1638=>383,
|
||||
1639=>383,1640=>383,1641=>383,1642=>383,1645=>398,7936=>336,7937=>336,7938=>336,7939=>336,7940=>336,7941=>336,7942=>336,7943=>336,7944=>401,7945=>401,7946=>401,
|
||||
7947=>401,7948=>401,7949=>401,7950=>401,7951=>401,7952=>244,7953=>244,7954=>244,7955=>244,7956=>244,7957=>244,7960=>371,7961=>371,7962=>371,7963=>371,7964=>371,
|
||||
7965=>371,7968=>336,7969=>336,7970=>336,7971=>336,7972=>336,7973=>336,7974=>336,7975=>336,7976=>432,7977=>432,7978=>432,7979=>432,7980=>432,7981=>432,7982=>432,
|
||||
7983=>432,7984=>183,7985=>183,7986=>183,7987=>183,7988=>183,7989=>183,7990=>183,7991=>183,7992=>216,7993=>216,7994=>216,7995=>216,7996=>216,7997=>216,7998=>216,
|
||||
7999=>216,8000=>306,8001=>306,8002=>306,8003=>306,8004=>306,8005=>306,8008=>432,8009=>432,8010=>432,8011=>432,8012=>432,8013=>432,8016=>306,8017=>306,8018=>306,
|
||||
8019=>306,8020=>306,8021=>306,8022=>306,8023=>306,8025=>401,8027=>401,8029=>401,8031=>401,8032=>397,8033=>397,8034=>397,8035=>397,8036=>397,8037=>397,8038=>397,
|
||||
8039=>397,8040=>451,8041=>451,8042=>451,8043=>451,8044=>451,8045=>451,8046=>451,8047=>451,8048=>336,8049=>336,8050=>244,8051=>244,8052=>336,8053=>336,8054=>183,
|
||||
8055=>183,8056=>306,8057=>306,8058=>306,8059=>306,8060=>397,8061=>397,8064=>336,8065=>336,8066=>336,8067=>336,8068=>336,8069=>336,8070=>336,8071=>336,8072=>401,
|
||||
8073=>401,8074=>401,8075=>401,8076=>401,8077=>401,8078=>401,8079=>401,8080=>336,8081=>336,8082=>336,8083=>336,8084=>336,8085=>336,8086=>336,8087=>336,8088=>432,
|
||||
8089=>432,8090=>432,8091=>432,8092=>432,8093=>432,8094=>432,8095=>432,8096=>397,8097=>397,8098=>397,8099=>397,8100=>397,8101=>397,8102=>397,8103=>397,8104=>451,
|
||||
8105=>451,8106=>451,8107=>451,8108=>451,8109=>451,8110=>451,8111=>451,8112=>336,8113=>336,8114=>336,8115=>336,8116=>336,8118=>336,8119=>336,8120=>401,8121=>401,
|
||||
8122=>401,8123=>401,8124=>401,8125=>278,8126=>0,8127=>278,8128=>278,8129=>306,8130=>336,8131=>336,8132=>336,8134=>336,8135=>336,8136=>371,8137=>371,8138=>432,
|
||||
8139=>432,8140=>432,8141=>278,8142=>278,8143=>278,8144=>183,8145=>183,8146=>183,8147=>183,8150=>183,8151=>183,8152=>216,8153=>216,8154=>216,8155=>216,8157=>278,
|
||||
8158=>278,8159=>278,8160=>306,8161=>306,8162=>306,8163=>306,8164=>306,8165=>306,8166=>306,8167=>306,8168=>401,8169=>401,8170=>401,8171=>401,8172=>339,8173=>306,
|
||||
8174=>306,8175=>278,8178=>397,8179=>397,8180=>397,8182=>397,8183=>397,8184=>432,8185=>432,8186=>451,8187=>451,8188=>451,8189=>278,8190=>278,8208=>185,8209=>185,
|
||||
8219=>185,8223=>278,8227=>311,8241=>1011,8248=>261,8251=>404,8253=>386,8255=>529,8256=>529,8257=>188,8258=>517,8259=>185,8260=>93,8261=>184,8262=>184,8267=>300,
|
||||
8308=>167,8309=>556,8321=>167,8322=>167,8323=>167,8324=>167,8352=>394,8353=>401,8354=>435,8355=>339,8356=>278,8357=>463,8358=>401,8359=>389,8361=>556,8470=>530,
|
||||
8471=>415,8479=>401,8483=>401,8486=>451,8487=>451,8494=>306,8498=>339,8543=>417,8706=>274,8710=>340,8721=>396,8722=>317,8730=>305,8734=>418,8800=>317,8804=>317,
|
||||
8805=>317,9674=>274,12353=>556,12354=>556,12355=>556,12356=>556,12357=>556,12358=>556,12359=>556,12360=>556,12361=>556,12362=>556,12363=>556,12364=>556,12365=>556,12366=>556,
|
||||
12367=>556,12368=>556,12369=>556,12370=>556,12371=>556,12372=>556,12373=>556,12374=>556,12375=>556,12376=>556,12377=>556,12378=>556,12379=>556,12380=>556,12381=>556,12382=>556,
|
||||
12383=>556,12384=>556,12385=>556,12386=>556,12387=>556,12388=>556,12389=>556,12390=>556,12391=>556,12392=>556,12393=>556,12394=>556,12395=>556,12396=>556,12397=>556,12398=>556,
|
||||
12399=>556,12400=>556,12401=>556,12402=>556,12403=>556,12404=>556,12405=>556,12406=>556,12407=>556,12408=>556,12409=>556,12410=>556,12411=>556,12412=>556,12413=>556,12414=>556,
|
||||
12415=>556,12416=>556,12417=>556,12418=>556,12419=>556,12420=>556,12421=>556,12422=>556,12423=>556,12424=>556,12425=>556,12426=>556,12427=>556,12428=>556,12429=>556,12430=>556,
|
||||
12431=>556,12432=>556,12433=>556,12434=>556,12435=>556,12449=>556,12450=>556,12451=>556,12452=>556,12453=>556,12454=>556,12455=>556,12456=>556,12457=>556,12458=>556,12459=>556,
|
||||
12460=>556,12461=>556,12462=>556,12463=>556,12464=>556,12465=>556,12466=>556,12467=>556,12468=>556,12469=>556,12470=>556,12471=>556,12472=>556,12473=>556,12474=>556,12475=>556,
|
||||
12476=>556,12477=>556,12478=>556,12479=>556,12480=>556,12481=>556,12482=>556,12483=>556,12484=>556,12485=>556,12486=>556,12487=>556,12488=>556,12489=>556,12490=>556,12491=>556,
|
||||
12492=>556,12493=>556,12494=>556,12495=>556,12496=>556,12497=>556,12498=>556,12499=>556,12500=>556,12501=>556,12502=>556,12503=>556,12504=>556,12505=>556,12506=>556,12507=>556,
|
||||
12508=>556,12509=>556,12510=>556,12511=>556,12512=>556,12513=>556,12514=>556,12515=>556,12516=>556,12517=>556,12518=>556,12519=>556,12520=>556,12521=>556,12522=>556,12523=>556,
|
||||
12524=>556,12525=>556,12526=>556,12527=>556,12528=>556,12529=>556,12530=>556,12531=>556,12532=>556,12533=>556,12534=>556,63033=>278,63034=>278,63035=>278,63036=>278,63037=>278,
|
||||
63038=>278,63039=>278,63040=>278,63041=>278,63171=>185,63196=>278,64256=>309,64257=>309,64258=>309,64259=>463,64260=>463,64262=>402,64606=>0,64607=>0,64608=>0,64609=>0,
|
||||
64610=>0,64830=>467,64831=>467,65010=>814,65152=>392,65153=>306,65154=>281,65155=>247,65156=>250,65157=>447,65158=>412,65159=>247,65160=>222,65161=>602,65162=>535,65163=>360,
|
||||
65164=>329,65165=>192,65166=>220,65167=>635,65168=>644,65169=>338,65170=>321,65171=>369,65172=>419,65173=>635,65174=>644,65175=>345,65176=>336,65177=>635,65178=>644,65179=>393,
|
||||
65180=>345,65181=>548,65182=>553,65183=>637,65184=>652,65185=>548,65186=>546,65187=>637,65188=>656,65189=>548,65190=>544,65191=>637,65192=>656,65193=>363,65194=>439,65195=>363,
|
||||
65196=>439,65197=>440,65198=>471,65199=>439,65200=>474,65201=>875,65202=>871,65203=>608,65204=>588,65205=>875,65206=>871,65207=>609,65208=>587,65209=>1061,65210=>1033,65211=>794,
|
||||
65212=>758,65213=>1061,65214=>1033,65215=>794,65216=>761,65217=>811,65218=>793,65219=>659,65220=>647,65221=>811,65222=>793,65223=>659,65224=>642,65225=>549,65226=>481,65227=>512,
|
||||
65228=>409,65229=>547,65230=>476,65231=>512,65232=>409,65233=>755,65234=>748,65235=>416,65236=>442,65237=>574,65238=>550,65239=>416,65240=>442,65241=>717,65242=>687,65243=>883,
|
||||
65244=>409,65245=>555,65246=>511,65247=>338,65248=>297,65249=>423,65250=>478,65251=>489,65252=>476,65253=>532,65254=>548,65255=>336,65256=>326,65257=>371,65258=>391,65259=>524,
|
||||
65260=>412,65261=>454,65262=>412,65263=>633,65264=>566,65265=>643,65266=>560,65267=>357,65268=>333,65269=>623,65270=>617,65271=>603,65272=>621,65273=>576,65274=>617,65275=>576,
|
||||
65276=>625);
|
||||
$enc='';
|
||||
$diff='';
|
||||
$file='almohanad.z';
|
||||
$ctg='almohanad.ctg.z';
|
||||
$originalsize=227760;
|
||||
?>
|
@ -1,12 +0,0 @@
|
||||
<?php
|
||||
// TCPDF FONT FILE DESCRIPTION
|
||||
$type='core';
|
||||
$name='Courier';
|
||||
$up=-100;
|
||||
$ut=50;
|
||||
$dw=600;
|
||||
$diff='';
|
||||
$enc='';
|
||||
$desc=array('Flags'=>33,'FontBBox'=>'[-23 -250 715 805]','ItalicAngle'=>0,'Ascent'=>805,'Descent'=>-250,'Leading'=>0,'CapHeight'=>562,'XHeight'=>426,'StemV'=>51,'StemH'=>51,'AvgWidth'=>600,'MaxWidth'=>600,'MissingWidth'=>600);
|
||||
$cw=array(0=>600,1=>600,2=>600,3=>600,4=>600,5=>600,6=>600,7=>600,8=>600,9=>600,10=>600,11=>600,12=>600,13=>600,14=>600,15=>600,16=>600,17=>600,18=>600,19=>600,20=>600,21=>600,22=>600,23=>600,24=>600,25=>600,26=>600,27=>600,28=>600,29=>600,30=>600,31=>600,32=>600,33=>600,34=>600,35=>600,36=>600,37=>600,38=>600,39=>600,40=>600,41=>600,42=>600,43=>600,44=>600,45=>600,46=>600,47=>600,48=>600,49=>600,50=>600,51=>600,52=>600,53=>600,54=>600,55=>600,56=>600,57=>600,58=>600,59=>600,60=>600,61=>600,62=>600,63=>600,64=>600,65=>600,66=>600,67=>600,68=>600,69=>600,70=>600,71=>600,72=>600,73=>600,74=>600,75=>600,76=>600,77=>600,78=>600,79=>600,80=>600,81=>600,82=>600,83=>600,84=>600,85=>600,86=>600,87=>600,88=>600,89=>600,90=>600,91=>600,92=>600,93=>600,94=>600,95=>600,96=>600,97=>600,98=>600,99=>600,100=>600,101=>600,102=>600,103=>600,104=>600,105=>600,106=>600,107=>600,108=>600,109=>600,110=>600,111=>600,112=>600,113=>600,114=>600,115=>600,116=>600,117=>600,118=>600,119=>600,120=>600,121=>600,122=>600,123=>600,124=>600,125=>600,126=>600,127=>600,128=>600,129=>600,130=>600,131=>600,132=>600,133=>600,134=>600,135=>600,136=>600,137=>600,138=>600,139=>600,140=>600,141=>600,142=>600,143=>600,144=>600,145=>600,146=>600,147=>600,148=>600,149=>600,150=>600,151=>600,152=>600,153=>600,154=>600,155=>600,156=>600,157=>600,158=>600,159=>600,160=>600,161=>600,162=>600,163=>600,164=>600,165=>600,166=>600,167=>600,168=>600,169=>600,170=>600,171=>600,172=>600,173=>600,174=>600,175=>600,176=>600,177=>600,178=>600,179=>600,180=>600,181=>600,182=>600,183=>600,184=>600,185=>600,186=>600,187=>600,188=>600,189=>600,190=>600,191=>600,192=>600,193=>600,194=>600,195=>600,196=>600,197=>600,198=>600,199=>600,200=>600,201=>600,202=>600,203=>600,204=>600,205=>600,206=>600,207=>600,208=>600,209=>600,210=>600,211=>600,212=>600,213=>600,214=>600,215=>600,216=>600,217=>600,218=>600,219=>600,220=>600,221=>600,222=>600,223=>600,224=>600,225=>600,226=>600,227=>600,228=>600,229=>600,230=>600,231=>600,232=>600,233=>600,234=>600,235=>600,236=>600,237=>600,238=>600,239=>600,240=>600,241=>600,242=>600,243=>600,244=>600,245=>600,246=>600,247=>600,248=>600,249=>600,250=>600,251=>600,252=>600,253=>600,254=>600,255=>600);
|
||||
// --- EOF ---
|
@ -1,12 +0,0 @@
|
||||
<?php
|
||||
// TCPDF FONT FILE DESCRIPTION
|
||||
$type='core';
|
||||
$name='Courier-Bold';
|
||||
$up=-100;
|
||||
$ut=50;
|
||||
$dw=600;
|
||||
$diff='';
|
||||
$enc='';
|
||||
$desc=array('Flags'=>33,'FontBBox'=>'[-113 -250 749 801]','ItalicAngle'=>0,'Ascent'=>801,'Descent'=>-250,'Leading'=>0,'CapHeight'=>562,'XHeight'=>439,'StemV'=>106,'StemH'=>84,'AvgWidth'=>600,'MaxWidth'=>600,'MissingWidth'=>600);
|
||||
$cw=array(0=>600,1=>600,2=>600,3=>600,4=>600,5=>600,6=>600,7=>600,8=>600,9=>600,10=>600,11=>600,12=>600,13=>600,14=>600,15=>600,16=>600,17=>600,18=>600,19=>600,20=>600,21=>600,22=>600,23=>600,24=>600,25=>600,26=>600,27=>600,28=>600,29=>600,30=>600,31=>600,32=>600,33=>600,34=>600,35=>600,36=>600,37=>600,38=>600,39=>600,40=>600,41=>600,42=>600,43=>600,44=>600,45=>600,46=>600,47=>600,48=>600,49=>600,50=>600,51=>600,52=>600,53=>600,54=>600,55=>600,56=>600,57=>600,58=>600,59=>600,60=>600,61=>600,62=>600,63=>600,64=>600,65=>600,66=>600,67=>600,68=>600,69=>600,70=>600,71=>600,72=>600,73=>600,74=>600,75=>600,76=>600,77=>600,78=>600,79=>600,80=>600,81=>600,82=>600,83=>600,84=>600,85=>600,86=>600,87=>600,88=>600,89=>600,90=>600,91=>600,92=>600,93=>600,94=>600,95=>600,96=>600,97=>600,98=>600,99=>600,100=>600,101=>600,102=>600,103=>600,104=>600,105=>600,106=>600,107=>600,108=>600,109=>600,110=>600,111=>600,112=>600,113=>600,114=>600,115=>600,116=>600,117=>600,118=>600,119=>600,120=>600,121=>600,122=>600,123=>600,124=>600,125=>600,126=>600,127=>600,128=>600,129=>600,130=>600,131=>600,132=>600,133=>600,134=>600,135=>600,136=>600,137=>600,138=>600,139=>600,140=>600,141=>600,142=>600,143=>600,144=>600,145=>600,146=>600,147=>600,148=>600,149=>600,150=>600,151=>600,152=>600,153=>600,154=>600,155=>600,156=>600,157=>600,158=>600,159=>600,160=>600,161=>600,162=>600,163=>600,164=>600,165=>600,166=>600,167=>600,168=>600,169=>600,170=>600,171=>600,172=>600,173=>600,174=>600,175=>600,176=>600,177=>600,178=>600,179=>600,180=>600,181=>600,182=>600,183=>600,184=>600,185=>600,186=>600,187=>600,188=>600,189=>600,190=>600,191=>600,192=>600,193=>600,194=>600,195=>600,196=>600,197=>600,198=>600,199=>600,200=>600,201=>600,202=>600,203=>600,204=>600,205=>600,206=>600,207=>600,208=>600,209=>600,210=>600,211=>600,212=>600,213=>600,214=>600,215=>600,216=>600,217=>600,218=>600,219=>600,220=>600,221=>600,222=>600,223=>600,224=>600,225=>600,226=>600,227=>600,228=>600,229=>600,230=>600,231=>600,232=>600,233=>600,234=>600,235=>600,236=>600,237=>600,238=>600,239=>600,240=>600,241=>600,242=>600,243=>600,244=>600,245=>600,246=>600,247=>600,248=>600,249=>600,250=>600,251=>600,252=>600,253=>600,254=>600,255=>600);
|
||||
// --- EOF ---
|
@ -1,12 +0,0 @@
|
||||
<?php
|
||||
// TCPDF FONT FILE DESCRIPTION
|
||||
$type='core';
|
||||
$name='Courier-BoldOblique';
|
||||
$up=-100;
|
||||
$ut=50;
|
||||
$dw=600;
|
||||
$diff='';
|
||||
$enc='';
|
||||
$desc=array('Flags'=>97,'FontBBox'=>'[-57 -250 869 801]','ItalicAngle'=>-12,'Ascent'=>801,'Descent'=>-250,'Leading'=>0,'CapHeight'=>562,'XHeight'=>439,'StemV'=>106,'StemH'=>84,'AvgWidth'=>600,'MaxWidth'=>600,'MissingWidth'=>600);
|
||||
$cw=array(0=>600,1=>600,2=>600,3=>600,4=>600,5=>600,6=>600,7=>600,8=>600,9=>600,10=>600,11=>600,12=>600,13=>600,14=>600,15=>600,16=>600,17=>600,18=>600,19=>600,20=>600,21=>600,22=>600,23=>600,24=>600,25=>600,26=>600,27=>600,28=>600,29=>600,30=>600,31=>600,32=>600,33=>600,34=>600,35=>600,36=>600,37=>600,38=>600,39=>600,40=>600,41=>600,42=>600,43=>600,44=>600,45=>600,46=>600,47=>600,48=>600,49=>600,50=>600,51=>600,52=>600,53=>600,54=>600,55=>600,56=>600,57=>600,58=>600,59=>600,60=>600,61=>600,62=>600,63=>600,64=>600,65=>600,66=>600,67=>600,68=>600,69=>600,70=>600,71=>600,72=>600,73=>600,74=>600,75=>600,76=>600,77=>600,78=>600,79=>600,80=>600,81=>600,82=>600,83=>600,84=>600,85=>600,86=>600,87=>600,88=>600,89=>600,90=>600,91=>600,92=>600,93=>600,94=>600,95=>600,96=>600,97=>600,98=>600,99=>600,100=>600,101=>600,102=>600,103=>600,104=>600,105=>600,106=>600,107=>600,108=>600,109=>600,110=>600,111=>600,112=>600,113=>600,114=>600,115=>600,116=>600,117=>600,118=>600,119=>600,120=>600,121=>600,122=>600,123=>600,124=>600,125=>600,126=>600,127=>600,128=>600,129=>600,130=>600,131=>600,132=>600,133=>600,134=>600,135=>600,136=>600,137=>600,138=>600,139=>600,140=>600,141=>600,142=>600,143=>600,144=>600,145=>600,146=>600,147=>600,148=>600,149=>600,150=>600,151=>600,152=>600,153=>600,154=>600,155=>600,156=>600,157=>600,158=>600,159=>600,160=>600,161=>600,162=>600,163=>600,164=>600,165=>600,166=>600,167=>600,168=>600,169=>600,170=>600,171=>600,172=>600,173=>600,174=>600,175=>600,176=>600,177=>600,178=>600,179=>600,180=>600,181=>600,182=>600,183=>600,184=>600,185=>600,186=>600,187=>600,188=>600,189=>600,190=>600,191=>600,192=>600,193=>600,194=>600,195=>600,196=>600,197=>600,198=>600,199=>600,200=>600,201=>600,202=>600,203=>600,204=>600,205=>600,206=>600,207=>600,208=>600,209=>600,210=>600,211=>600,212=>600,213=>600,214=>600,215=>600,216=>600,217=>600,218=>600,219=>600,220=>600,221=>600,222=>600,223=>600,224=>600,225=>600,226=>600,227=>600,228=>600,229=>600,230=>600,231=>600,232=>600,233=>600,234=>600,235=>600,236=>600,237=>600,238=>600,239=>600,240=>600,241=>600,242=>600,243=>600,244=>600,245=>600,246=>600,247=>600,248=>600,249=>600,250=>600,251=>600,252=>600,253=>600,254=>600,255=>600);
|
||||
// --- EOF ---
|
@ -1,12 +0,0 @@
|
||||
<?php
|
||||
// TCPDF FONT FILE DESCRIPTION
|
||||
$type='core';
|
||||
$name='Courier-Oblique';
|
||||
$up=-100;
|
||||
$ut=50;
|
||||
$dw=600;
|
||||
$diff='';
|
||||
$enc='';
|
||||
$desc=array('Flags'=>97,'FontBBox'=>'[-27 -250 849 805]','ItalicAngle'=>-12,'Ascent'=>805,'Descent'=>-250,'Leading'=>0,'CapHeight'=>562,'XHeight'=>426,'StemV'=>51,'StemH'=>51,'AvgWidth'=>600,'MaxWidth'=>600,'MissingWidth'=>600);
|
||||
$cw=array(0=>600,1=>600,2=>600,3=>600,4=>600,5=>600,6=>600,7=>600,8=>600,9=>600,10=>600,11=>600,12=>600,13=>600,14=>600,15=>600,16=>600,17=>600,18=>600,19=>600,20=>600,21=>600,22=>600,23=>600,24=>600,25=>600,26=>600,27=>600,28=>600,29=>600,30=>600,31=>600,32=>600,33=>600,34=>600,35=>600,36=>600,37=>600,38=>600,39=>600,40=>600,41=>600,42=>600,43=>600,44=>600,45=>600,46=>600,47=>600,48=>600,49=>600,50=>600,51=>600,52=>600,53=>600,54=>600,55=>600,56=>600,57=>600,58=>600,59=>600,60=>600,61=>600,62=>600,63=>600,64=>600,65=>600,66=>600,67=>600,68=>600,69=>600,70=>600,71=>600,72=>600,73=>600,74=>600,75=>600,76=>600,77=>600,78=>600,79=>600,80=>600,81=>600,82=>600,83=>600,84=>600,85=>600,86=>600,87=>600,88=>600,89=>600,90=>600,91=>600,92=>600,93=>600,94=>600,95=>600,96=>600,97=>600,98=>600,99=>600,100=>600,101=>600,102=>600,103=>600,104=>600,105=>600,106=>600,107=>600,108=>600,109=>600,110=>600,111=>600,112=>600,113=>600,114=>600,115=>600,116=>600,117=>600,118=>600,119=>600,120=>600,121=>600,122=>600,123=>600,124=>600,125=>600,126=>600,127=>600,128=>600,129=>600,130=>600,131=>600,132=>600,133=>600,134=>600,135=>600,136=>600,137=>600,138=>600,139=>600,140=>600,141=>600,142=>600,143=>600,144=>600,145=>600,146=>600,147=>600,148=>600,149=>600,150=>600,151=>600,152=>600,153=>600,154=>600,155=>600,156=>600,157=>600,158=>600,159=>600,160=>600,161=>600,162=>600,163=>600,164=>600,165=>600,166=>600,167=>600,168=>600,169=>600,170=>600,171=>600,172=>600,173=>600,174=>600,175=>600,176=>600,177=>600,178=>600,179=>600,180=>600,181=>600,182=>600,183=>600,184=>600,185=>600,186=>600,187=>600,188=>600,189=>600,190=>600,191=>600,192=>600,193=>600,194=>600,195=>600,196=>600,197=>600,198=>600,199=>600,200=>600,201=>600,202=>600,203=>600,204=>600,205=>600,206=>600,207=>600,208=>600,209=>600,210=>600,211=>600,212=>600,213=>600,214=>600,215=>600,216=>600,217=>600,218=>600,219=>600,220=>600,221=>600,222=>600,223=>600,224=>600,225=>600,226=>600,227=>600,228=>600,229=>600,230=>600,231=>600,232=>600,233=>600,234=>600,235=>600,236=>600,237=>600,238=>600,239=>600,240=>600,241=>600,242=>600,243=>600,244=>600,245=>600,246=>600,247=>600,248=>600,249=>600,250=>600,251=>600,252=>600,253=>600,254=>600,255=>600);
|
||||
// --- EOF ---
|
@ -1,53 +0,0 @@
|
||||
abysta at yandex.ru
|
||||
Adrian Schroeter
|
||||
Aleksey Chalabyan
|
||||
Andrey Valentinovich Panov
|
||||
Ben Laenen
|
||||
Besarion Gugushvili
|
||||
Bhikkhu Pesala
|
||||
Clayborne Arevalo
|
||||
Dafydd Harries
|
||||
Danilo Segan
|
||||
Davide Viti
|
||||
David Jez
|
||||
David Lawrence Ramsey
|
||||
Denis Jacquerye
|
||||
Dwayne Bailey
|
||||
Eugeniy Meshcheryakov
|
||||
Gee Fung Sit
|
||||
Heikki Lindroos
|
||||
James Cloos
|
||||
James Crippen
|
||||
John Karp
|
||||
Keenan Pepper
|
||||
Lars Naesbye Christensen
|
||||
Lior Halphon
|
||||
MaEr
|
||||
Mashrab Kuvatov
|
||||
Max Berger
|
||||
Mederic Boquien
|
||||
Michael Everson
|
||||
MihailJP
|
||||
Misu Moldovan
|
||||
Nguyen Thai Ngoc Duy
|
||||
Nicolas Mailhot
|
||||
Norayr Chilingarian
|
||||
Ognyan Kulev
|
||||
Ondrej Koala Vacha
|
||||
Peter Cernak
|
||||
Remy Oudompheng
|
||||
Roozbeh Pournader
|
||||
Rouben Hakobian
|
||||
Sahak Petrosyan
|
||||
Sander Vesik
|
||||
Stepan Roh
|
||||
Stephen Hartke
|
||||
Steve Tinney
|
||||
Tavmjong Bah
|
||||
Thomas Henlich
|
||||
Tim May
|
||||
Valentin Stoykov
|
||||
Vasek Stodulka
|
||||
Wesley Transue
|
||||
|
||||
$Id: AUTHORS 2461 2011-02-18 16:38:20Z ben_laenen $
|
@ -1,3 +0,0 @@
|
||||
See http://dejavu.sourceforge.net/wiki/index.php/Bugs
|
||||
|
||||
$Id: BUGS 80 2004-11-13 13:12:02Z src $
|
@ -1,99 +0,0 @@
|
||||
Fonts are (c) Bitstream (see below). DejaVu changes are in public domain.
|
||||
Glyphs imported from Arev fonts are (c) Tavmjong Bah (see below)
|
||||
|
||||
Bitstream Vera Fonts Copyright
|
||||
------------------------------
|
||||
|
||||
Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is
|
||||
a trademark of Bitstream, Inc.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of the fonts accompanying this license ("Fonts") and associated
|
||||
documentation files (the "Font Software"), to reproduce and distribute the
|
||||
Font Software, including without limitation the rights to use, copy, merge,
|
||||
publish, distribute, and/or sell copies of the Font Software, and to permit
|
||||
persons to whom the Font Software is furnished to do so, subject to the
|
||||
following conditions:
|
||||
|
||||
The above copyright and trademark notices and this permission notice shall
|
||||
be included in all copies of one or more of the Font Software typefaces.
|
||||
|
||||
The Font Software may be modified, altered, or added to, and in particular
|
||||
the designs of glyphs or characters in the Fonts may be modified and
|
||||
additional glyphs or characters may be added to the Fonts, only if the fonts
|
||||
are renamed to names not containing either the words "Bitstream" or the word
|
||||
"Vera".
|
||||
|
||||
This License becomes null and void to the extent applicable to Fonts or Font
|
||||
Software that has been modified and is distributed under the "Bitstream
|
||||
Vera" names.
|
||||
|
||||
The Font Software may be sold as part of a larger software package but no
|
||||
copy of one or more of the Font Software typefaces may be sold by itself.
|
||||
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT,
|
||||
TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME
|
||||
FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING
|
||||
ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,
|
||||
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE
|
||||
FONT SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the names of Gnome, the Gnome
|
||||
Foundation, and Bitstream Inc., shall not be used in advertising or
|
||||
otherwise to promote the sale, use or other dealings in this Font Software
|
||||
without prior written authorization from the Gnome Foundation or Bitstream
|
||||
Inc., respectively. For further information, contact: fonts at gnome dot
|
||||
org.
|
||||
|
||||
Arev Fonts Copyright
|
||||
------------------------------
|
||||
|
||||
Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the fonts accompanying this license ("Fonts") and
|
||||
associated documentation files (the "Font Software"), to reproduce
|
||||
and distribute the modifications to the Bitstream Vera Font Software,
|
||||
including without limitation the rights to use, copy, merge, publish,
|
||||
distribute, and/or sell copies of the Font Software, and to permit
|
||||
persons to whom the Font Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright and trademark notices and this permission notice
|
||||
shall be included in all copies of one or more of the Font Software
|
||||
typefaces.
|
||||
|
||||
The Font Software may be modified, altered, or added to, and in
|
||||
particular the designs of glyphs or characters in the Fonts may be
|
||||
modified and additional glyphs or characters may be added to the
|
||||
Fonts, only if the fonts are renamed to names not containing either
|
||||
the words "Tavmjong Bah" or the word "Arev".
|
||||
|
||||
This License becomes null and void to the extent applicable to Fonts
|
||||
or Font Software that has been modified and is distributed under the
|
||||
"Tavmjong Bah Arev" names.
|
||||
|
||||
The Font Software may be sold as part of a larger software package but
|
||||
no copy of one or more of the Font Software typefaces may be sold by
|
||||
itself.
|
||||
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL
|
||||
TAVMJONG BAH BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of Tavmjong Bah shall not
|
||||
be used in advertising or otherwise to promote the sale, use or other
|
||||
dealings in this Font Software without prior written authorization
|
||||
from Tavmjong Bah. For further information, contact: tavmjong @ free
|
||||
. fr.
|
||||
|
||||
$Id: LICENSE 2133 2007-11-28 02:46:28Z lechimp $
|
@ -1,59 +0,0 @@
|
||||
DejaVu fonts 2.33 (c)2004-2011 DejaVu fonts team
|
||||
------------------------------------------------
|
||||
|
||||
The DejaVu fonts are a font family based on the Bitstream Vera Fonts
|
||||
(http://gnome.org/fonts/). Its purpose is to provide a wider range of
|
||||
characters (see status.txt for more information) while maintaining the
|
||||
original look and feel.
|
||||
|
||||
DejaVu fonts are based on Bitstream Vera fonts version 1.10.
|
||||
|
||||
Available fonts (Sans = sans serif, Mono = monospaced):
|
||||
|
||||
DejaVu Sans Mono
|
||||
DejaVu Sans Mono Bold
|
||||
DejaVu Sans Mono Bold Oblique
|
||||
DejaVu Sans Mono Oblique
|
||||
DejaVu Sans
|
||||
DejaVu Sans Bold
|
||||
DejaVu Sans Bold Oblique
|
||||
DejaVu Sans Oblique
|
||||
DejaVu Sans ExtraLight (experimental)
|
||||
DejaVu Serif
|
||||
DejaVu Serif Bold
|
||||
DejaVu Serif Bold Italic (experimental)
|
||||
DejaVu Serif Italic (experimental)
|
||||
DejaVu Sans Condensed (experimental)
|
||||
DejaVu Sans Condensed Bold (experimental)
|
||||
DejaVu Sans Condensed Bold Oblique (experimental)
|
||||
DejaVu Sans Condensed Oblique (experimental)
|
||||
DejaVu Serif Condensed (experimental)
|
||||
DejaVu Serif Condensed Bold (experimental)
|
||||
DejaVu Serif Condensed Bold Italic (experimental)
|
||||
DejaVu Serif Condensed Italic (experimental)
|
||||
|
||||
All fonts are also available as derivative called DejaVu LGC with support
|
||||
only for Latin, Greek and Cyrillic scripts.
|
||||
|
||||
For license information see LICENSE. What's new is described in NEWS. Known
|
||||
bugs are in BUGS. All authors are mentioned in AUTHORS.
|
||||
|
||||
Fonts are published in source form as SFD files (Spline Font Database from
|
||||
FontForge - http://fontforge.sf.net/) and in compiled form as TTF files
|
||||
(TrueType fonts).
|
||||
|
||||
For more information go to http://dejavu.sourceforge.net/.
|
||||
|
||||
Characters from Arev fonts, Copyright (c) 2006 by Tavmjong Bah:
|
||||
---------------------------
|
||||
U+01BA, U+01BF, U+01F7, U+021C-U+021D, U+0220, U+0222-U+0223,
|
||||
U+02B9, U+02BA, U+02BD, U+02C2-U+02C5, U+02d4-U+02D5,
|
||||
U+02D7, U+02EC-U+02EE, U+0346-U+034E, U+0360, U+0362,
|
||||
U+03E2-03EF, U+0460-0463, U+0466-U+0486, U+0488-U+0489, U+04A8-U+04A9,
|
||||
U+0500-U+050F, U+2055-205E, U+20B0, U+20B2-U+20B3, U+2102, U+210D, U+210F,
|
||||
U+2111, U+2113, U+2115, U+2118-U+211A, U+211C-U+211D, U+2124, U+2135,
|
||||
U+213C-U+2140, U+2295-U+2298, U+2308-U+230B, U+26A2-U+26B1, U+2701-U+2704,
|
||||
U+2706-U+2709, U+270C-U+274B, U+2758-U+275A, U+2761-U+2775, U+2780-U+2794,
|
||||
U+2798-U+27AF, U+27B1-U+27BE, U+FB05-U+FB06
|
||||
|
||||
$Id: README 2471 2011-02-27 14:25:15Z ben_laenen $
|
@ -1,242 +0,0 @@
|
||||
This is the language coverage file for DejaVu fonts
|
||||
($Id$)
|
||||
|
||||
Sans Serif Sans Mono
|
||||
aa Afar 100% (62/62) 100% (62/62) 100% (62/62)
|
||||
ab Abkhazia 100% (90/90) 93% (84/90) 84% (76/90)
|
||||
af Afrikaans 100% (69/69) 100% (69/69) 100% (69/69)
|
||||
ak Akan 100% (73/73) 100% (73/73) 100% (73/73)
|
||||
am Amharic (0/264) (0/264) (0/264)
|
||||
an Aragonese 100% (66/66) 100% (66/66) 100% (66/66)
|
||||
ar Arabic 100% (125/125) (0/125) 100% (125/125)
|
||||
as Assamese (0/64) (0/64) (0/64)
|
||||
ast Asturian/Bable/Leonese/Asturleonese 100% (66/66) 100% (66/66) 100% (66/66)
|
||||
av Avaric 100% (67/67) 100% (67/67) 100% (67/67)
|
||||
ay Aymara 100% (60/60) 100% (60/60) 100% (60/60)
|
||||
az-az Azerbaijani in Azerbaijan 100% (66/66) 100% (66/66) 100% (66/66)
|
||||
az-ir Azerbaijani in Iran 100% (130/130) (0/130) 100% (130/130)
|
||||
ba Bashkir 100% (82/82) 100% (82/82) 97% (80/82)
|
||||
be Byelorussian 100% (68/68) 100% (68/68) 100% (68/68)
|
||||
ber-dz Berber in Algeria 100% (70/70) 100% (70/70) 100% (70/70)
|
||||
ber-ma Berber in Morocco 100% (32/32) (0/32) (0/32)
|
||||
bg Bulgarian 100% (60/60) 100% (60/60) 100% (60/60)
|
||||
bh Bihari (Devanagari script) (0/68) (0/68) (0/68)
|
||||
bho Bhojpuri (Devanagari script) (0/68) (0/68) (0/68)
|
||||
bi Bislama 100% (58/58) 100% (58/58) 100% (58/58)
|
||||
bin Edo or Bini 100% (78/78) 100% (78/78) 100% (78/78)
|
||||
bm Bambara 100% (60/60) 100% (60/60) 100% (60/60)
|
||||
bn Bengali (0/63) (0/63) (0/63)
|
||||
bo Tibetan (0/95) (0/95) (0/95)
|
||||
br Breton 100% (64/64) 100% (64/64) 100% (64/64)
|
||||
bs Bosnian 100% (62/62) 100% (62/62) 100% (62/62)
|
||||
bua Buriat (Buryat) 100% (70/70) 100% (70/70) 100% (70/70)
|
||||
byn Blin/Bilin (0/255) (0/255) (0/255)
|
||||
ca Catalan 100% (74/74) 100% (74/74) 100% (74/74)
|
||||
ce Chechen 100% (67/67) 100% (67/67) 100% (67/67)
|
||||
ch Chamorro 100% (58/58) 100% (58/58) 100% (58/58)
|
||||
chm Mari (Lower Cheremis / Upper Cheremis) 100% (76/76) 100% (76/76) 100% (76/76)
|
||||
chr Cherokee (0/85) (0/85) (0/85)
|
||||
co Corsican 100% (84/84) 100% (84/84) 100% (84/84)
|
||||
crh Crimean Tatar/Crimean Turkish 100% (68/68) 100% (68/68) 100% (68/68)
|
||||
cs Czech 100% (82/82) 100% (82/82) 100% (82/82)
|
||||
csb Kashubian 100% (74/74) 100% (74/74) 100% (74/74)
|
||||
cu Old Church Slavonic 100% (103/103) 86% (89/103) 78% (81/103)
|
||||
cv Chuvash 100% (74/74) 100% (74/74) 100% (74/74)
|
||||
cy Welsh 100% (78/78) 100% (78/78) 100% (78/78)
|
||||
da Danish 100% (70/70) 100% (70/70) 100% (70/70)
|
||||
de German 100% (59/59) 100% (59/59) 100% (59/59)
|
||||
dv Divehi/Dhivehi/Maldivian (0/49) (0/49) (0/49)
|
||||
dz Dzongkha (0/95) (0/95) (0/95)
|
||||
ee Ewe 100% (99/99) 100% (99/99) 100% (99/99)
|
||||
el Greek 100% (69/69) 100% (69/69) 100% (69/69)
|
||||
en English 100% (72/72) 100% (72/72) 100% (72/72)
|
||||
eo Esperanto 100% (64/64) 100% (64/64) 100% (64/64)
|
||||
es Spanish 100% (66/66) 100% (66/66) 100% (66/66)
|
||||
et Estonian 100% (64/64) 100% (64/64) 100% (64/64)
|
||||
eu Basque 100% (56/56) 100% (56/56) 100% (56/56)
|
||||
fa Persian 100% (129/129) (0/129) 100% (129/129)
|
||||
fat Fanti 100% (73/73) 100% (73/73) 100% (73/73)
|
||||
ff Fulah (Fula) 100% (62/62) 100% (62/62) 100% (62/62)
|
||||
fi Finnish 100% (62/62) 100% (62/62) 100% (62/62)
|
||||
fil Filipino 100% (84/84) 100% (84/84) 100% (84/84)
|
||||
fj Fijian 100% (52/52) 100% (52/52) 100% (52/52)
|
||||
fo Faroese 100% (68/68) 100% (68/68) 100% (68/68)
|
||||
fr French 100% (84/84) 100% (84/84) 100% (84/84)
|
||||
fur Friulian 100% (66/66) 100% (66/66) 100% (66/66)
|
||||
fy Frisian 100% (75/75) 100% (75/75) 100% (75/75)
|
||||
ga Irish 100% (80/80) 100% (80/80) 100% (80/80)
|
||||
gd Scots Gaelic 100% (70/70) 100% (70/70) 100% (70/70)
|
||||
gez Ethiopic (Geez) (0/218) (0/218) (0/218)
|
||||
gl Galician 100% (66/66) 100% (66/66) 100% (66/66)
|
||||
gn Guarani 100% (70/70) 100% (70/70) 100% (70/70)
|
||||
gu Gujarati (0/68) (0/68) (0/68)
|
||||
gv Manx Gaelic 100% (54/54) 100% (54/54) 100% (54/54)
|
||||
ha Hausa 100% (60/60) 100% (60/60) 100% (60/60)
|
||||
haw Hawaiian 100% (63/63) 100% (63/63) 100% (63/63)
|
||||
he Hebrew 100% (27/27) (0/27) (0/27)
|
||||
hi Hindi (Devanagari script) (0/68) (0/68) (0/68)
|
||||
hne Chhattisgarhi (0/68) (0/68) (0/68)
|
||||
ho Hiri Motu 100% (52/52) 100% (52/52) 100% (52/52)
|
||||
hr Croatian 100% (62/62) 100% (62/62) 100% (62/62)
|
||||
hsb Upper Sorbian 100% (72/72) 100% (72/72) 100% (72/72)
|
||||
ht Haitian/Haitian Creole 100% (56/56) 100% (56/56) 100% (56/56)
|
||||
hu Hungarian 100% (70/70) 100% (70/70) 100% (70/70)
|
||||
hy Armenian 100% (77/77) 100% (77/77) 100% (77/77)
|
||||
hz Herero 100% (57/57) 100% (57/57) 100% (57/57)
|
||||
ia Interlingua 100% (52/52) 100% (52/52) 100% (52/52)
|
||||
id Indonesian 100% (54/54) 100% (54/54) 100% (54/54)
|
||||
ie Interlingue 100% (52/52) 100% (52/52) 100% (52/52)
|
||||
ig Igbo 100% (58/58) 100% (58/58) 100% (58/58)
|
||||
ii Sichuan Yi/Nuosu (0/1165) (0/1165) (0/1165)
|
||||
ik Inupiaq (Inupiak, Eskimo) 100% (68/68) 100% (68/68) 100% (68/68)
|
||||
io Ido 100% (52/52) 100% (52/52) 100% (52/52)
|
||||
is Icelandic 100% (70/70) 100% (70/70) 100% (70/70)
|
||||
it Italian 100% (72/72) 100% (72/72) 100% (72/72)
|
||||
iu Inuktitut 100% (161/161) (0/161) (0/161)
|
||||
ja Japanese (0/6537) (0/6537) (0/6537)
|
||||
jv Javanese 100% (56/56) 100% (56/56) 100% (56/56)
|
||||
ka Georgian 100% (33/33) 100% (33/33) 100% (33/33)
|
||||
kaa Kara-Kalpak (Karakalpak) 100% (78/78) 100% (78/78) 100% (78/78)
|
||||
kab Kabyle 100% (70/70) 100% (70/70) 100% (70/70)
|
||||
ki Kikuyu 100% (56/56) 100% (56/56) 100% (56/56)
|
||||
kj Kuanyama/Kwanyama 100% (52/52) 100% (52/52) 100% (52/52)
|
||||
kk Kazakh 100% (77/77) 100% (77/77) 100% (77/77)
|
||||
kl Greenlandic 100% (81/81) 100% (81/81) 100% (81/81)
|
||||
km Central Khmer (0/63) (0/63) (0/63)
|
||||
kn Kannada (0/70) (0/70) (0/70)
|
||||
ko Korean (0/2443) (0/2443) (0/2443)
|
||||
kok Kokani (Devanagari script) (0/68) (0/68) (0/68)
|
||||
kr Kanuri 100% (56/56) 100% (56/56) 100% (56/56)
|
||||
ks Kashmiri 98% (143/145) (0/145) 97% (141/145)
|
||||
ku-am Kurdish in Armenia 100% (64/64) 100% (64/64) 100% (64/64)
|
||||
ku-iq Kurdish in Iraq 100% (32/32) (0/32) 87% (28/32)
|
||||
ku-ir Kurdish in Iran 100% (32/32) (0/32) 87% (28/32)
|
||||
ku-tr Kurdish in Turkey 100% (62/62) 100% (62/62) 100% (62/62)
|
||||
kum Kumyk 100% (66/66) 100% (66/66) 100% (66/66)
|
||||
kv Komi (Komi-Permyak/Komi-Siryan) 100% (70/70) 100% (70/70) 100% (70/70)
|
||||
kw Cornish 100% (64/64) 100% (64/64) 100% (64/64)
|
||||
kwm Kwambi 100% (52/52) 100% (52/52) 100% (52/52)
|
||||
ky Kirgiz 100% (70/70) 100% (70/70) 100% (70/70)
|
||||
la Latin 100% (68/68) 100% (68/68) 100% (68/68)
|
||||
lah Lahnda 98% (143/145) (0/145) 97% (141/145)
|
||||
lb Luxembourgish (Letzeburgesch) 100% (75/75) 100% (75/75) 100% (75/75)
|
||||
lez Lezghian (Lezgian) 100% (67/67) 100% (67/67) 100% (67/67)
|
||||
lg Ganda 100% (54/54) 100% (54/54) 100% (54/54)
|
||||
li Limburgan/Limburger/Limburgish 100% (62/62) 100% (62/62) 100% (62/62)
|
||||
ln Lingala 100% (81/81) 100% (81/81) 100% (81/81)
|
||||
lo Lao 100% (55/55) (0/55) 83% (46/55)
|
||||
lt Lithuanian 100% (70/70) 100% (70/70) 100% (70/70)
|
||||
lv Latvian 100% (78/78) 100% (78/78) 100% (78/78)
|
||||
mai Maithili (Devanagari script) (0/68) (0/68) (0/68)
|
||||
mg Malagasy 100% (56/56) 100% (56/56) 100% (56/56)
|
||||
mh Marshallese 100% (62/62) 100% (62/62) 100% (62/62)
|
||||
mi Maori 100% (64/64) 100% (64/64) 100% (64/64)
|
||||
mk Macedonian 100% (42/42) 100% (42/42) 100% (42/42)
|
||||
ml Malayalam (0/68) (0/68) (0/68)
|
||||
mn-cn Mongolian in China (0/130) (0/130) (0/130)
|
||||
mn-mn Mongolian in Mongolia 100% (70/70) 100% (70/70) 100% (70/70)
|
||||
mo Moldavian 100% (128/128) 100% (128/128) 100% (128/128)
|
||||
mr Marathi (Devanagari script) (0/68) (0/68) (0/68)
|
||||
ms Malay 100% (52/52) 100% (52/52) 100% (52/52)
|
||||
mt Maltese 100% (72/72) 100% (72/72) 100% (72/72)
|
||||
my Burmese (Myanmar) (0/48) (0/48) (0/48)
|
||||
na Nauru 100% (60/60) 100% (60/60) 100% (60/60)
|
||||
nb Norwegian Bokmal 100% (70/70) 100% (70/70) 100% (70/70)
|
||||
nds Low Saxon 100% (59/59) 100% (59/59) 100% (59/59)
|
||||
ne Nepali (Devanagari script) (0/68) (0/68) (0/68)
|
||||
ng Ndonga 100% (52/52) 100% (52/52) 100% (52/52)
|
||||
nl Dutch 100% (82/82) 100% (82/82) 100% (82/82)
|
||||
nn Norwegian Nynorsk 100% (76/76) 100% (76/76) 100% (76/76)
|
||||
no Norwegian (Bokmal) 100% (70/70) 100% (70/70) 100% (70/70)
|
||||
nr Ndebele, South 100% (52/52) 100% (52/52) 100% (52/52)
|
||||
nso Northern Sotho 100% (58/58) 100% (58/58) 100% (58/58)
|
||||
nv Navajo/Navaho 100% (72/72) 100% (72/72) 100% (72/72)
|
||||
ny Chichewa 100% (54/54) 100% (54/54) 100% (54/54)
|
||||
oc Occitan 100% (70/70) 100% (70/70) 100% (70/70)
|
||||
om Oromo or Galla 100% (52/52) 100% (52/52) 100% (52/52)
|
||||
or Oriya (0/68) (0/68) (0/68)
|
||||
os Ossetic 100% (66/66) 100% (66/66) 100% (66/66)
|
||||
ota Ottoman Turkish 100% (37/37) (0/37) 97% (36/37)
|
||||
pa Panjabi/Punjabi (0/63) (0/63) (0/63)
|
||||
pa-pk Panjabi/Punjabi in Pakistan 98% (143/145) (0/145) 97% (141/145)
|
||||
pap-an Papiamento in Netherlands Antilles 100% (72/72) 100% (72/72) 100% (72/72)
|
||||
pap-aw Papiamento in Aruba 100% (54/54) 100% (54/54) 100% (54/54)
|
||||
pl Polish 100% (70/70) 100% (70/70) 100% (70/70)
|
||||
ps-af Pashto in Afghanistan 95% (47/49) (0/49) 77% (38/49)
|
||||
ps-pk Pashto in Pakistan 93% (46/49) (0/49) 75% (37/49)
|
||||
pt Portuguese 100% (82/82) 100% (82/82) 100% (82/82)
|
||||
qu Quechua 100% (55/55) 100% (55/55) 100% (55/55)
|
||||
rm Rhaeto-Romance (Romansch) 100% (66/66) 100% (66/66) 100% (66/66)
|
||||
rn Rundi 100% (52/52) 100% (52/52) 100% (52/52)
|
||||
ro Romanian 100% (62/62) 100% (62/62) 100% (62/62)
|
||||
ru Russian 100% (66/66) 100% (66/66) 100% (66/66)
|
||||
rw Kinyarwanda 100% (52/52) 100% (52/52) 100% (52/52)
|
||||
sa Sanskrit (Devanagari script) (0/68) (0/68) (0/68)
|
||||
sah Yakut 100% (76/76) 100% (76/76) 100% (76/76)
|
||||
sc Sardinian 100% (62/62) 100% (62/62) 100% (62/62)
|
||||
sco Scots 100% (56/56) 100% (56/56) 100% (56/56)
|
||||
sd Sindhi 100% (54/54) (0/54) 79% (43/54)
|
||||
se North Sami 100% (66/66) 100% (66/66) 100% (66/66)
|
||||
sel Selkup (Ostyak-Samoyed) 100% (66/66) 100% (66/66) 100% (66/66)
|
||||
sg Sango 100% (72/72) 100% (72/72) 100% (72/72)
|
||||
sh Serbo-Croatian 100% (156/156) 100% (156/156) 98% (154/156)
|
||||
shs Secwepemctsin 100% (48/48) 100% (48/48) 100% (48/48)
|
||||
si Sinhala/Sinhalese (0/73) (0/73) (0/73)
|
||||
sid Sidamo (0/281) (0/281) (0/281)
|
||||
sk Slovak 100% (86/86) 100% (86/86) 100% (86/86)
|
||||
sl Slovenian 100% (62/62) 100% (62/62) 100% (62/62)
|
||||
sm Samoan 100% (53/53) 100% (53/53) 100% (53/53)
|
||||
sma South Sami 100% (60/60) 100% (60/60) 100% (60/60)
|
||||
smj Lule Sami 100% (60/60) 100% (60/60) 100% (60/60)
|
||||
smn Inari Sami 100% (68/68) 100% (68/68) 100% (68/68)
|
||||
sms Skolt Sami 100% (80/80) 100% (80/80) 97% (78/80)
|
||||
sn Shona 100% (52/52) 100% (52/52) 100% (52/52)
|
||||
so Somali 100% (52/52) 100% (52/52) 100% (52/52)
|
||||
sq Albanian 100% (56/56) 100% (56/56) 100% (56/56)
|
||||
sr Serbian 100% (60/60) 100% (60/60) 100% (60/60)
|
||||
ss Swati 100% (52/52) 100% (52/52) 100% (52/52)
|
||||
st Sotho, Southern 100% (52/52) 100% (52/52) 100% (52/52)
|
||||
su Sundanese 100% (54/54) 100% (54/54) 100% (54/54)
|
||||
sv Swedish 100% (68/68) 100% (68/68) 100% (68/68)
|
||||
sw Swahili 100% (52/52) 100% (52/52) 100% (52/52)
|
||||
syr Syriac (0/45) (0/45) (0/45)
|
||||
ta Tamil (0/48) (0/48) (0/48)
|
||||
te Telugu (0/70) (0/70) (0/70)
|
||||
tg Tajik 100% (78/78) 100% (78/78) 97% (76/78)
|
||||
th Thai 1% (1/74) (0/74) (0/74)
|
||||
ti-er Eritrean Tigrinya (0/255) (0/255) (0/255)
|
||||
ti-et Ethiopian Tigrinya (0/281) (0/281) (0/281)
|
||||
tig Tigre (0/221) (0/221) (0/221)
|
||||
tk Turkmen 100% (68/68) 100% (68/68) 100% (68/68)
|
||||
tl Tagalog 100% (84/84) 100% (84/84) 100% (84/84)
|
||||
tn Tswana 100% (58/58) 100% (58/58) 100% (58/58)
|
||||
to Tonga 100% (53/53) 100% (53/53) 100% (53/53)
|
||||
tr Turkish 100% (70/70) 100% (70/70) 100% (70/70)
|
||||
ts Tsonga 100% (52/52) 100% (52/52) 100% (52/52)
|
||||
tt Tatar 100% (76/76) 100% (76/76) 100% (76/76)
|
||||
tw Twi 100% (73/73) 100% (73/73) 100% (73/73)
|
||||
ty Tahitian 100% (65/65) 100% (65/65) 100% (65/65)
|
||||
tyv Tuvinian 100% (70/70) 100% (70/70) 100% (70/70)
|
||||
ug Uighur 100% (125/125) (0/125) 100% (125/125)
|
||||
uk Ukrainian 100% (72/72) 100% (72/72) 100% (72/72)
|
||||
ur Urdu 98% (143/145) (0/145) 97% (141/145)
|
||||
uz Uzbek 100% (52/52) 100% (52/52) 100% (52/52)
|
||||
ve Venda 100% (62/62) 100% (62/62) 100% (62/62)
|
||||
vi Vietnamese 100% (194/194) 100% (194/194) 76% (148/194)
|
||||
vo Volapuk 100% (54/54) 100% (54/54) 100% (54/54)
|
||||
vot Votic 100% (62/62) 100% (62/62) 100% (62/62)
|
||||
wa Walloon 100% (70/70) 100% (70/70) 100% (70/70)
|
||||
wal Wolaitta/Wolaytta (0/281) (0/281) (0/281)
|
||||
wen Sorbian languages (lower and upper) 100% (76/76) 100% (76/76) 100% (76/76)
|
||||
wo Wolof 100% (66/66) 100% (66/66) 100% (66/66)
|
||||
xh Xhosa 100% (52/52) 100% (52/52) 100% (52/52)
|
||||
yap Yapese 100% (58/58) 100% (58/58) 100% (58/58)
|
||||
yi Yiddish 100% (27/27) (0/27) (0/27)
|
||||
yo Yoruba 100% (119/119) 100% (119/119) 100% (119/119)
|
||||
za Zhuang/Chuang 100% (52/52) 100% (52/52) 100% (52/52)
|
||||
zh-cn Chinese (simplified) 0% (2/6765) 0% (2/6765) 0% (2/6765)
|
||||
zh-hk Chinese Hong Kong Supplementary Character Set (0/2213) (0/2213) (0/2213)
|
||||
zh-mo Chinese in Macau (0/2213) (0/2213) (0/2213)
|
||||
zh-sg Chinese in Singapore 0% (2/6765) 0% (2/6765) 0% (2/6765)
|
||||
zh-tw Chinese (traditional) (0/13063) (0/13063) (0/13063)
|
||||
zu Zulu 100% (52/52) 100% (52/52) 100% (52/52)
|
@ -1,215 +0,0 @@
|
||||
This is the Unicode coverage file for DejaVu fonts
|
||||
($Id$)
|
||||
|
||||
Control and similar characters are discounted from totals.
|
||||
|
||||
Sans Serif Sans Mono
|
||||
U+0000 Basic Latin 100% (95/95) 100% (95/95) 100% (95/95)
|
||||
U+0080 Latin-1 Supplement 100% (96/96) 100% (96/96) 100% (96/96)
|
||||
U+0100 Latin Extended-A 100% (128/128) 100% (128/128) 100% (128/128)
|
||||
U+0180 Latin Extended-B 100% (208/208) 100% (208/208) 86% (180/208)
|
||||
U+0250 IPA Extensions 100% (96/96) 100% (96/96) 100% (96/96)
|
||||
U+02b0 Spacing Modifier Letters 78% (63/80) 57% (46/80) 60% (48/80)
|
||||
U+0300 Combining Diacritical Marks 83% (93/112) 60% (68/112) 59% (67/112)
|
||||
U+0370 Greek and Coptic 100% (134/134) 89% (120/134) 82% (110/134)
|
||||
U+0400 Cyrillic 100% (256/256) 78% (200/256) 70% (180/256)
|
||||
U+0500 Cyrillic Supplement 95% (38/40) 25% (10/40) 15% (6/40)
|
||||
U+0530 Armenian 100% (86/86) 100% (86/86) 100% (86/86)
|
||||
U+0590 Hebrew 62% (54/87) (0/87) (0/87)
|
||||
U+0600 Arabic 63% (161/252) (0/252) 39% (99/252)
|
||||
U+0700 Syriac (0/77) (0/77) (0/77)
|
||||
U+0750 Arabic Supplement (0/48) (0/48) (0/48)
|
||||
U+0780 Thaana (0/50) (0/50) (0/50)
|
||||
U+07c0 NKo 91% (54/59) (0/59) (0/59)
|
||||
U+0800 Samaritan (0/61) (0/61) (0/61)
|
||||
U+0840 Mandaic (0/29) (0/29) (0/29)
|
||||
U+0900 Devanagari (0/127) (0/127) (0/127)
|
||||
U+0980 Bengali (0/92) (0/92) (0/92)
|
||||
U+0a00 Gurmukhi (0/79) (0/79) (0/79)
|
||||
U+0a80 Gujarati (0/83) (0/83) (0/83)
|
||||
U+0b00 Oriya (0/90) (0/90) (0/90)
|
||||
U+0b80 Tamil (0/72) (0/72) (0/72)
|
||||
U+0c00 Telugu (0/93) (0/93) (0/93)
|
||||
U+0c80 Kannada (0/86) (0/86) (0/86)
|
||||
U+0d00 Malayalam (0/98) (0/98) (0/98)
|
||||
U+0d80 Sinhala (0/80) (0/80) (0/80)
|
||||
U+0e00 Thai 1% (1/87) (0/87) (0/87)
|
||||
U+0e80 Lao 100% (65/65) (0/65) 70% (46/65)
|
||||
U+0f00 Tibetan (0/211) (0/211) (0/211)
|
||||
U+1000 Myanmar (0/160) (0/160) (0/160)
|
||||
U+10a0 Georgian 100% (83/83) 100% (83/83) 54% (45/83)
|
||||
U+1100 Hangul Jamo (0/256) (0/256) (0/256)
|
||||
U+1200 Ethiopic (0/358) (0/358) (0/358)
|
||||
U+1380 Ethiopic Supplement (0/26) (0/26) (0/26)
|
||||
U+13a0 Cherokee (0/85) (0/85) (0/85)
|
||||
U+1400 Unified Canadian Aboriginal Syllabics 63% (404/640) (0/640) (0/640)
|
||||
U+1680 Ogham 100% (29/29) (0/29) (0/29)
|
||||
U+16a0 Runic (0/81) (0/81) (0/81)
|
||||
U+1700 Tagalog (0/20) (0/20) (0/20)
|
||||
U+1720 Hanunoo (0/23) (0/23) (0/23)
|
||||
U+1740 Buhid (0/20) (0/20) (0/20)
|
||||
U+1760 Tagbanwa (0/18) (0/18) (0/18)
|
||||
U+1780 Khmer (0/114) (0/114) (0/114)
|
||||
U+1800 Mongolian (0/156) (0/156) (0/156)
|
||||
U+18b0 Unified Canadian Aboriginal Syllabics Extended (0/70) (0/70) (0/70)
|
||||
U+1900 Limbu (0/66) (0/66) (0/66)
|
||||
U+1950 Tai Le (0/35) (0/35) (0/35)
|
||||
U+1980 New Tai Lue (0/83) (0/83) (0/83)
|
||||
U+19e0 Khmer Symbols (0/32) (0/32) (0/32)
|
||||
U+1a00 Buginese (0/30) (0/30) (0/30)
|
||||
U+1a20 Tai Tham (0/127) (0/127) (0/127)
|
||||
U+1b00 Balinese (0/121) (0/121) (0/121)
|
||||
U+1b80 Sundanese (0/55) (0/55) (0/55)
|
||||
U+1bc0 Batak (0/56) (0/56) (0/56)
|
||||
U+1c00 Lepcha (0/74) (0/74) (0/74)
|
||||
U+1c50 Ol Chiki (0/48) (0/48) (0/48)
|
||||
U+1cd0 Vedic Extensions (0/35) (0/35) (0/35)
|
||||
U+1d00 Phonetic Extensions 82% (106/128) 86% (111/128) 48% (62/128)
|
||||
U+1d80 Phonetic Extensions Supplement 59% (38/64) 59% (38/64) 57% (37/64)
|
||||
U+1dc0 Combining Diacritical Marks Supplement 13% (6/43) 13% (6/43) (0/43)
|
||||
U+1e00 Latin Extended Additional 98% (252/256) 98% (252/256) 71% (182/256)
|
||||
U+1f00 Greek Extended 100% (233/233) 100% (233/233) 100% (233/233)
|
||||
U+2000 General Punctuation 100% (107/107) 81% (87/107) 48% (52/107)
|
||||
U+2070 Superscripts and Subscripts 100% (42/42) 100% (42/42) 100% (42/42)
|
||||
U+20a0 Currency Symbols 92% (24/26) 26% (7/26) 92% (24/26)
|
||||
U+20d0 Combining Diacritical Marks for Symbols 21% (7/33) (0/33) (0/33)
|
||||
U+2100 Letterlike Symbols 93% (75/80) 40% (32/80) 21% (17/80)
|
||||
U+2150 Number Forms 94% (55/58) 94% (55/58) 22% (13/58)
|
||||
U+2190 Arrows 100% (112/112) 100% (112/112) 100% (112/112)
|
||||
U+2200 Mathematical Operators 100% (256/256) 39% (100/256) 62% (159/256)
|
||||
U+2300 Miscellaneous Technical 26% (65/244) 14% (35/244) 47% (117/244)
|
||||
U+2400 Control Pictures 5% (2/39) 2% (1/39) 2% (1/39)
|
||||
U+2440 Optical Character Recognition (0/11) (0/11) (0/11)
|
||||
U+2460 Enclosed Alphanumerics 6% (10/160) (0/160) (0/160)
|
||||
U+2500 Box Drawing 100% (128/128) 100% (128/128) 100% (128/128)
|
||||
U+2580 Block Elements 100% (32/32) 100% (32/32) 100% (32/32)
|
||||
U+25a0 Geometric Shapes 100% (96/96) 100% (96/96) 100% (96/96)
|
||||
U+2600 Miscellaneous Symbols 73% (187/256) 11% (30/256) 58% (149/256)
|
||||
U+2700 Dingbats 91% (174/191) 0% (1/191) 75% (144/191)
|
||||
U+27c0 Miscellaneous Mathematical Symbols-A 19% (9/46) 10% (5/46) 10% (5/46)
|
||||
U+27f0 Supplemental Arrows-A 100% (16/16) 100% (16/16) (0/16)
|
||||
U+2800 Braille Patterns 100% (256/256) 100% (256/256) (0/256)
|
||||
U+2900 Supplemental Arrows-B 4% (6/128) 100% (128/128) (0/128)
|
||||
U+2980 Miscellaneous Mathematical Symbols-B 10% (13/128) 0% (1/128) 2% (3/128)
|
||||
U+2a00 Supplemental Mathematical Operators 28% (72/256) 1% (4/256) 0% (1/256)
|
||||
U+2b00 Miscellaneous Symbols and Arrows 40% (35/87) 31% (27/87) 10% (9/87)
|
||||
U+2c00 Glagolitic (0/94) (0/94) (0/94)
|
||||
U+2c60 Latin Extended-C 96% (31/32) 81% (26/32) 43% (14/32)
|
||||
U+2c80 Coptic (0/121) (0/121) (0/121)
|
||||
U+2d00 Georgian Supplement (0/38) 100% (38/38) (0/38)
|
||||
U+2d30 Tifinagh 96% (55/57) (0/57) (0/57)
|
||||
U+2d80 Ethiopic Extended (0/79) (0/79) (0/79)
|
||||
U+2de0 Cyrillic Extended-A (0/32) (0/32) (0/32)
|
||||
U+2e00 Supplemental Punctuation 12% (6/50) 12% (6/50) 12% (6/50)
|
||||
U+2e80 CJK Radicals Supplement (0/115) (0/115) (0/115)
|
||||
U+2f00 Kangxi Radicals (0/214) (0/214) (0/214)
|
||||
U+2ff0 Ideographic Description Characters (0/12) (0/12) (0/12)
|
||||
U+3000 CJK Symbols and Punctuation (0/64) (0/64) (0/64)
|
||||
U+3040 Hiragana (0/93) (0/93) (0/93)
|
||||
U+30a0 Katakana (0/96) (0/96) (0/96)
|
||||
U+3100 Bopomofo (0/41) (0/41) (0/41)
|
||||
U+3130 Hangul Compatibility Jamo (0/94) (0/94) (0/94)
|
||||
U+3190 Kanbun (0/16) (0/16) (0/16)
|
||||
U+31a0 Bopomofo Extended (0/27) (0/27) (0/27)
|
||||
U+31c0 CJK Strokes (0/36) (0/36) (0/36)
|
||||
U+31f0 Katakana Phonetic Extensions (0/16) (0/16) (0/16)
|
||||
U+3200 Enclosed CJK Letters and Months (0/254) (0/254) (0/254)
|
||||
U+3300 CJK Compatibility (0/256) (0/256) (0/256)
|
||||
U+3400 CJK Unified Ideographs Extension A (0/0) (0/0) (0/0)
|
||||
U+4dc0 Yijing Hexagram Symbols 100% (64/64) (0/64) (0/64)
|
||||
U+4e00 CJK Unified Ideographs (0/0) (0/0) (0/0)
|
||||
U+a000 Yi Syllables (0/1165) (0/1165) (0/1165)
|
||||
U+a490 Yi Radicals (0/55) (0/55) (0/55)
|
||||
U+a4d0 Lisu (0/48) (0/48) (0/48)
|
||||
U+a500 Vai (0/300) (0/300) (0/300)
|
||||
U+a640 Cyrillic Extended-B 38% (31/80) 12% (10/80) (0/80)
|
||||
U+a6a0 Bamum (0/88) (0/88) (0/88)
|
||||
U+a700 Modifier Tone Letters 62% (20/32) 62% (20/32) 62% (20/32)
|
||||
U+a720 Latin Extended-D 48% (62/129) 42% (55/129) 10% (14/129)
|
||||
U+a800 Syloti Nagri (0/44) (0/44) (0/44)
|
||||
U+a830 Common Indic Number Forms (0/10) (0/10) (0/10)
|
||||
U+a840 Phags-pa (0/56) (0/56) (0/56)
|
||||
U+a880 Saurashtra (0/81) (0/81) (0/81)
|
||||
U+a8e0 Devanagari Extended (0/28) (0/28) (0/28)
|
||||
U+a900 Kayah Li (0/48) (0/48) (0/48)
|
||||
U+a930 Rejang (0/37) (0/37) (0/37)
|
||||
U+a960 Hangul Jamo Extended-A (0/29) (0/29) (0/29)
|
||||
U+a980 Javanese (0/91) (0/91) (0/91)
|
||||
U+aa00 Cham (0/83) (0/83) (0/83)
|
||||
U+aa60 Myanmar Extended-A (0/28) (0/28) (0/28)
|
||||
U+aa80 Tai Viet (0/72) (0/72) (0/72)
|
||||
U+ab00 Ethiopic Extended-A (0/33) (0/33) (0/33)
|
||||
U+abc0 Meetei Mayek (0/56) (0/56) (0/56)
|
||||
U+ac00 Hangul Syllables (0/0) (0/0) (0/0)
|
||||
U+d7b0 Hangul Jamo Extended-B (0/72) (0/72) (0/72)
|
||||
U+d800 High Surrogates (0/0) (0/0) (0/0)
|
||||
U+db80 High Private Use Surrogates (0/0) (0/0) (0/0)
|
||||
U+dc00 Low Surrogates (0/0) (0/0) (0/0)
|
||||
U+e000 Private Use Area (0/0) (0/0) (0/0)
|
||||
U+f900 CJK Compatibility Ideographs (0/470) (0/470) (0/470)
|
||||
U+fb00 Alphabetic Presentation Forms 100% (58/58) 12% (7/58) 3% (2/58)
|
||||
U+fb50 Arabic Presentation Forms-A 16% (98/611) (0/611) 11% (72/611)
|
||||
U+fe00 Variation Selectors 100% (16/16) 100% (16/16) (0/16)
|
||||
U+fe10 Vertical Forms (0/10) (0/10) (0/10)
|
||||
U+fe20 Combining Half Marks 57% (4/7) (0/7) (0/7)
|
||||
U+fe30 CJK Compatibility Forms (0/32) (0/32) (0/32)
|
||||
U+fe50 Small Form Variants (0/26) (0/26) (0/26)
|
||||
U+fe70 Arabic Presentation Forms-B 100% (141/141) (0/141) 100% (141/141)
|
||||
U+ff00 Halfwidth and Fullwidth Forms (0/225) (0/225) (0/225)
|
||||
U+fff0 Specials 100% (5/5) 100% (5/5) 100% (5/5)
|
||||
U+10000 Linear B Syllabary (0/88) (0/88) (0/88)
|
||||
U+10080 Linear B Ideograms (0/123) (0/123) (0/123)
|
||||
U+10100 Aegean Numbers (0/57) (0/57) (0/57)
|
||||
U+10140 Ancient Greek Numbers (0/75) (0/75) (0/75)
|
||||
U+10190 Ancient Symbols (0/12) (0/12) (0/12)
|
||||
U+101d0 Phaistos Disc (0/46) (0/46) (0/46)
|
||||
U+10280 Lycian (0/29) (0/29) (0/29)
|
||||
U+102a0 Carian (0/49) (0/49) (0/49)
|
||||
U+10300 Old Italic 100% (35/35) (0/35) (0/35)
|
||||
U+10330 Gothic (0/27) (0/27) (0/27)
|
||||
U+10380 Ugaritic (0/31) (0/31) (0/31)
|
||||
U+103a0 Old Persian (0/50) (0/50) (0/50)
|
||||
U+10400 Deseret (0/80) (0/80) (0/80)
|
||||
U+10450 Shavian (0/48) (0/48) (0/48)
|
||||
U+10480 Osmanya (0/40) (0/40) (0/40)
|
||||
U+10800 Cypriot Syllabary (0/55) (0/55) (0/55)
|
||||
U+10840 Imperial Aramaic (0/31) (0/31) (0/31)
|
||||
U+10900 Phoenician (0/29) (0/29) (0/29)
|
||||
U+10920 Lydian (0/27) (0/27) (0/27)
|
||||
U+10a00 Kharoshthi (0/65) (0/65) (0/65)
|
||||
U+10a60 Old South Arabian (0/32) (0/32) (0/32)
|
||||
U+10b00 Avestan (0/61) (0/61) (0/61)
|
||||
U+10b40 Inscriptional Parthian (0/30) (0/30) (0/30)
|
||||
U+10b60 Inscriptional Pahlavi (0/27) (0/27) (0/27)
|
||||
U+10c00 Old Turkic (0/73) (0/73) (0/73)
|
||||
U+10e60 Rumi Numeral Symbols (0/31) (0/31) (0/31)
|
||||
U+11000 Brahmi (0/108) (0/108) (0/108)
|
||||
U+11080 Kaithi (0/66) (0/66) (0/66)
|
||||
U+12000 Cuneiform (0/879) (0/879) (0/879)
|
||||
U+12400 Cuneiform Numbers and Punctuation (0/103) (0/103) (0/103)
|
||||
U+13000 Egyptian Hieroglyphs (0/1071) (0/1071) (0/1071)
|
||||
U+16800 Bamum Supplement (0/569) (0/569) (0/569)
|
||||
U+1b000 Kana Supplement (0/2) (0/2) (0/2)
|
||||
U+1d000 Byzantine Musical Symbols (0/246) (0/246) (0/246)
|
||||
U+1d100 Musical Symbols (0/220) (0/220) (0/220)
|
||||
U+1d200 Ancient Greek Musical Notation (0/70) (0/70) (0/70)
|
||||
U+1d300 Tai Xuan Jing Symbols 100% (87/87) (0/87) (0/87)
|
||||
U+1d360 Counting Rod Numerals (0/18) (0/18) (0/18)
|
||||
U+1d400 Mathematical Alphanumeric Symbols 11% (117/996) 5% (55/996) 6% (62/996)
|
||||
U+1f000 Mahjong Tiles (0/44) (0/44) (0/44)
|
||||
U+1f030 Domino Tiles 100% (100/100) (0/100) (0/100)
|
||||
U+1f0a0 Playing Cards 100% (59/59) (0/59) (0/59)
|
||||
U+1f100 Enclosed Alphanumeric Supplement (0/169) (0/169) (0/169)
|
||||
U+1f200 Enclosed Ideographic Supplement (0/57) (0/57) (0/57)
|
||||
U+1f300 Miscellaneous Symbols And Pictographs 0% (4/529) (0/529) (0/529)
|
||||
U+1f600 Emoticons 80% (51/63) (0/63) (0/63)
|
||||
U+1f680 Transport And Map Symbols (0/70) (0/70) (0/70)
|
||||
U+1f700 Alchemical Symbols (0/116) (0/116) (0/116)
|
||||
U+20000 CJK Unified Ideographs Extension B (0/0) (0/0) (0/0)
|
||||
U+2a700 CJK Unified Ideographs Extension C (0/0) (0/0) (0/0)
|
||||
U+2b740 CJK Unified Ideographs Extension D (0/0) (0/0) (0/0)
|
||||
U+2f800 CJK Compatibility Ideographs Supplement (0/542) (0/542) (0/542)
|
||||
U+e0000 Tags (0/98) (0/98) (0/98)
|
||||
U+e0100 Variation Selectors Supplement (0/240) (0/240) (0/240)
|
||||
U+f0000 Supplementary Private Use Area-A (0/0) (0/0) (0/0)
|
||||
U+100000 Supplementary Private Use Area-B (0/0) (0/0) (0/0)
|