The Events Calendar - Version 2.0.10

Version Description

Small features, UX and Content Tweaks:

  • Incorporated new Ukrainian translation files (free only), courtesy of Alexey Fedorov.
  • Incorporated new French translation files (free only), courtesy of Fanny Hraud.
  • Improved the events.js to avoid animation build up.

Bug Fixes:

  • Tested fully against the new WordPress Twenty Twelve theme and cleared up aesthetic issues where needed.
  • Removed "Organizer" and "Venue" panels from the Appearance -> Menus screen (core only).
  • Fixed a bug where the option to show/hide an event's end date in the Events Advanced List Widget did not work (PRO only).
  • There was previously no modal window when trashing individual instances of a recurring event; that is no more.
  • Cleaned up event query filters to prevent conflicts.
  • Event-specific settings no longer revert to default upon updating the plugin.
  • Rewrite rules are no longer one step behind (meaning you won't need to flush permalinks as often).
  • Warnings/notices no longer litter the page in instances where no upcoming events are scheduled.
  • Default permalinks are no longer malformed.
  • Removed a PressTrends-generated notice that appeared upon activation.
  • Removed remaining sp_ functions.
  • Fixed an issue where default permalinks caused multiple errors when viewing a recurring event and venue page (PRO only).
Download this release

Release Info

Developer roblagatta
Plugin Icon The Events Calendar
Version 2.0.10
Comparing to
See all releases

Code changes from version 2.0.9 to 2.0.10

Files changed (193) hide show
  1. admin-views/app-shop.php +0 -0
  2. admin-views/datepicker.php +0 -0
  3. admin-views/event-map.php +0 -0
  4. admin-views/event-sidebar-options.php +0 -0
  5. admin-views/events-audit-trail.php +0 -0
  6. admin-views/events-meta-box.php +2 -3
  7. admin-views/no-comments.php +0 -0
  8. admin-views/organizer-meta-box.php +0 -0
  9. admin-views/recurrence-dialog.php +0 -0
  10. admin-views/tickets-attendees.php +59 -0
  11. admin-views/tickets-list.php +72 -0
  12. admin-views/tickets-meta-box.php +160 -0
  13. admin-views/tribe-options-general.php +0 -0
  14. admin-views/tribe-options-help.php +0 -0
  15. admin-views/tribe-options-templates.php +0 -0
  16. admin-views/venue-meta-box.php +0 -0
  17. admin-views/widget-admin-list.php +0 -0
  18. lang/tribe-events-calendar-bg_BG.mo +0 -0
  19. lang/tribe-events-calendar-bg_BG.po +0 -0
  20. lang/tribe-events-calendar-bs_BA.mo +0 -0
  21. lang/tribe-events-calendar-bs_BA.po +0 -0
  22. lang/tribe-events-calendar-ca.mo +0 -0
  23. lang/tribe-events-calendar-ca.po +0 -0
  24. lang/tribe-events-calendar-cs_CZ.mo +0 -0
  25. lang/tribe-events-calendar-cs_CZ.po +0 -0
  26. lang/tribe-events-calendar-de_DE.mo +0 -0
  27. lang/tribe-events-calendar-de_DE.po +0 -0
  28. lang/tribe-events-calendar-es_ES.mo +0 -0
  29. lang/tribe-events-calendar-es_ES.po +0 -0
  30. lang/tribe-events-calendar-fi.mo +0 -0
  31. lang/tribe-events-calendar-fi.po +0 -0
  32. lang/tribe-events-calendar-fr_FR.mo +0 -0
  33. lang/tribe-events-calendar-fr_FR.po +39 -32
  34. lang/tribe-events-calendar-gr_GR.mo +0 -0
  35. lang/tribe-events-calendar-gr_GR.po +0 -0
  36. lang/tribe-events-calendar-he_IL.mo +0 -0
  37. lang/tribe-events-calendar-he_IL.po +0 -0
  38. lang/tribe-events-calendar-hr_HR.mo +0 -0
  39. lang/tribe-events-calendar-hr_HR.po +0 -0
  40. lang/tribe-events-calendar-it_IT.mo +0 -0
  41. lang/tribe-events-calendar-it_IT.po +0 -0
  42. lang/tribe-events-calendar-ja_JA.mo +0 -0
  43. lang/tribe-events-calendar-ja_JA.po +0 -0
  44. lang/tribe-events-calendar-lt_LT.mo +0 -0
  45. lang/tribe-events-calendar-lt_LT.po +0 -0
  46. lang/tribe-events-calendar-nb_NO.mo +0 -0
  47. lang/tribe-events-calendar-nb_NO.po +0 -0
  48. lang/tribe-events-calendar-nl_NL.mo +0 -0
  49. lang/tribe-events-calendar-nl_NL.po +0 -0
  50. lang/tribe-events-calendar-pl_PL.mo +0 -0
  51. lang/tribe-events-calendar-pl_PL.po +0 -0
  52. lang/tribe-events-calendar-pt_BR.mo +0 -0
  53. lang/tribe-events-calendar-pt_BR.po +0 -0
  54. lang/tribe-events-calendar-ru_RU.mo +0 -0
  55. lang/tribe-events-calendar-ru_RU.po +0 -0
  56. lang/tribe-events-calendar-sr_RS.mo +0 -0
  57. lang/tribe-events-calendar-sr_RS.po +0 -0
  58. lang/tribe-events-calendar-sv_SE.mo +0 -0
  59. lang/tribe-events-calendar-sv_SE.po +0 -0
  60. lang/tribe-events-calendar-uk.mo +0 -0
  61. lang/tribe-events-calendar-uk.po +278 -217
  62. lang/tribe-events-calendar.pot +282 -138
  63. lib/template-tags-deprecated.php +0 -0
  64. lib/the-events-calendar.class.php +26 -10
  65. lib/tickets/tribe-ticket-object.php +57 -0
  66. lib/tickets/tribe-tickets-attendees.php +168 -0
  67. lib/tickets/tribe-tickets-metabox.php +43 -0
  68. lib/tickets/tribe-tickets.php +553 -0
  69. lib/tribe-admin-events-list.class.php +0 -0
  70. lib/tribe-app-shop.class.php +0 -0
  71. lib/tribe-date-utils.class.php +0 -0
  72. lib/tribe-debug-bar.class.php +0 -0
  73. lib/tribe-event-api.class.php +3 -0
  74. lib/tribe-event-exception.class.php +0 -0
  75. lib/tribe-event-query.class.php +0 -0
  76. lib/tribe-field.class.php +0 -0
  77. lib/tribe-presstrends.php +39 -34
  78. lib/tribe-settings-tab.class.php +0 -0
  79. lib/tribe-settings.class.php +0 -0
  80. lib/tribe-templates.class.php +39 -0
  81. lib/tribe-the-events-calendar-import.class.php +0 -0
  82. lib/tribe-validate.class.php +0 -0
  83. lib/tribe-view-helpers.class.php +0 -0
  84. lib/widget-list.class.php +0 -0
  85. license.txt +0 -0
  86. public/advanced-functions/event.php +0 -0
  87. public/advanced-functions/organizer.php +0 -0
  88. public/advanced-functions/venue.php +0 -0
  89. public/template-tags/calendar.php +0 -0
  90. public/template-tags/date.php +0 -0
  91. public/template-tags/general.php +0 -0
  92. public/template-tags/google-map.php +0 -0
  93. public/template-tags/link.php +5 -1
  94. public/template-tags/loop.php +0 -0
  95. public/template-tags/options.php +0 -0
  96. public/template-tags/organizer.php +0 -0
  97. public/template-tags/venue.php +0 -0
  98. readme.txt +64 -35
  99. resources/app-shop.css +0 -0
  100. resources/app-shop.js +0 -0
  101. resources/chosen-load.js +0 -0
  102. resources/chosen-sprite.png +0 -0
  103. resources/chosen.css +0 -0
  104. resources/chosen.jquery.min.js +0 -0
  105. resources/debugger.css +0 -0
  106. resources/events-admin-ui.css +0 -0
  107. resources/events-admin.css +28 -1
  108. resources/events-admin.js +0 -0
  109. resources/events.css +39 -0
  110. resources/events.js +48 -26
  111. resources/hide-visibility.css +0 -0
  112. resources/images/attendees-screen-icon.png +0 -0
  113. resources/images/bg_fade.png +0 -0
  114. resources/images/donate-link-pro-screenshot.jpg +0 -0
  115. resources/images/donate-link-screenshot.jpg +0 -0
  116. resources/images/eb_press_little.gif +0 -0
  117. resources/images/events-screen-icon.png +0 -0
  118. resources/images/menu.png +0 -0
  119. resources/images/modern-tribe.png +0 -0
  120. resources/images/tooltip-arrow.png +0 -0
  121. resources/images/tribe-loading.gif +0 -0
  122. resources/jquery-ecp-plugins.js +0 -0
  123. resources/jquery.pjax.js +1 -245
  124. resources/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  125. resources/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  126. resources/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  127. resources/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  128. resources/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  129. resources/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  130. resources/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  131. resources/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  132. resources/smoothness/images/ui-icons_222222_256x240.png +0 -0
  133. resources/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  134. resources/smoothness/images/ui-icons_454545_256x240.png +0 -0
  135. resources/smoothness/images/ui-icons_888888_256x240.png +0 -0
  136. resources/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  137. resources/smoothness/jquery-ui-1.7.3.custom.css +0 -0
  138. resources/tickets-attendees.css +28 -0
  139. resources/tickets-attendees.js +72 -0
  140. resources/tickets.css +49 -0
  141. resources/tickets.js +240 -0
  142. resources/tribe-settings.js +0 -0
  143. resources/ui.datepicker.min.js +0 -0
  144. resources/ui.dialog.min.js +0 -0
  145. resources/warning.png +0 -0
  146. screenshot-1.png +0 -0
  147. screenshot-2.jpg +0 -0
  148. screenshot-2.png +0 -0
  149. screenshot-3.jpg +0 -0
  150. screenshot-3.png +0 -0
  151. screenshot-4.jpg +0 -0
  152. screenshot-4.png +0 -0
  153. screenshot-5.jpg +0 -0
  154. screenshot-5.png +0 -0
  155. screenshot-6.jpg +0 -0
  156. screenshot-6.png +0 -0
  157. tests/PHPUnit/bootstrap.php +0 -0
  158. tests/PHPUnit/phpunit-test.Test.php +0 -0
  159. tests/PHPUnit/phpunit.xml +0 -0
  160. tests/PHPUnit/tribe-capabilities.Test.php +0 -0
  161. tests/PHPUnit/tribe-event-creation.Test.php +0 -0
  162. tests/PHPUnit/tribe-events-class.Test.php +0 -0
  163. tests/PHPUnit/tribe-previous-ecp-versions.Test.php +0 -0
  164. tests/PHPUnit/wordpress-tests/lib/tribe-testcase.php +0 -0
  165. the-events-calendar.php +1 -1
  166. vendor/fpdf/font/courier.php +8 -0
  167. vendor/fpdf/font/courierb.php +8 -0
  168. vendor/fpdf/font/courierbi.php +8 -0
  169. vendor/fpdf/font/courieri.php +8 -0
  170. vendor/fpdf/font/helvetica.php +19 -0
  171. vendor/fpdf/font/helveticab.php +19 -0
  172. vendor/fpdf/font/helveticabi.php +19 -0
  173. vendor/fpdf/font/helveticai.php +19 -0
  174. vendor/fpdf/font/opensans.php +23 -0
  175. vendor/fpdf/font/opensans.z +0 -0
  176. vendor/fpdf/font/steelfish.php +23 -0
  177. vendor/fpdf/font/steelfish.z +0 -0
  178. vendor/fpdf/font/symbol.php +19 -0
  179. vendor/fpdf/font/times.php +19 -0
  180. vendor/fpdf/font/timesb.php +19 -0
  181. vendor/fpdf/font/timesbi.php +19 -0
  182. vendor/fpdf/font/timesi.php +19 -0
  183. vendor/fpdf/font/zapfdingbats.php +19 -0
  184. vendor/fpdf/fpdf.php +1802 -0
  185. views/ecp-page-template.php +0 -0
  186. views/ecp-single-template.php +0 -0
  187. views/events-list-load-widget-display.php +0 -0
  188. views/full-address.php +0 -0
  189. views/gridview.php +5 -7
  190. views/list.php +2 -1
  191. views/single.php +1 -1
  192. views/table-mini.php +0 -0
  193. views/table.php +0 -0
admin-views/app-shop.php CHANGED
File without changes
admin-views/datepicker.php CHANGED
File without changes
admin-views/event-map.php CHANGED
File without changes
admin-views/event-sidebar-options.php CHANGED
File without changes
admin-views/events-audit-trail.php CHANGED
File without changes
admin-views/events-meta-box.php CHANGED
@@ -84,7 +84,7 @@ if ( !defined('ABSPATH') ) { die('-1'); }
84
  <tr id="google_map_link_toggle">
85
  <td><?php _e('Show Google Maps Link:','tribe-events-calendar'); ?></td>
86
  <td>
87
- <input tabindex="<?php $this->tabIndex(); ?>" type="checkbox" id="EventShowMapLink" name="EventShowMapLink" value="1" <?php checked((get_post_status($postId) == 'auto-draft') ? true : get_post_meta( $postId, '_EventShowMapLink', true )); ?> />
88
  </td>
89
  </tr>
90
  <?php if( tribe_get_option('embedGoogleMaps') ) : ?>
@@ -104,8 +104,7 @@ if ( !defined('ABSPATH') ) { die('-1'); }
104
  <?php include( $this->pluginPath . 'admin-views/organizer-meta-box.php' ); ?>
105
  </table>
106
  <?php $this->do_action('tribe_events_details_table_bottom', $postId, true) ?>
107
-
108
- <?php if ( !class_exists("TribeEventsTickets") || !TribeEventsTickets::$active || class_exists( 'Event_Tickets_PRO') || get_post_meta( get_the_ID(), '_EventOrigin', true ) === 'community-events' ){ ?>
109
  <table id="event_cost" class="eventtable">
110
  <tr>
111
  <td colspan="2" class="tribe_sectionheader"><h4><?php _e('Event Cost', 'tribe-events-calendar'); ?></h4></td>
84
  <tr id="google_map_link_toggle">
85
  <td><?php _e('Show Google Maps Link:','tribe-events-calendar'); ?></td>
86
  <td>
87
+ <input tabindex="<?php $this->tabIndex(); ?>" type="checkbox" id="EventShowMapLink" name="EventShowMapLink" value="1" <?php checked((get_post_status($postId) == 'auto-draft') ? false : get_post_meta( $postId, '_EventShowMapLink', true )); ?> />
88
  </td>
89
  </tr>
90
  <?php if( tribe_get_option('embedGoogleMaps') ) : ?>
104
  <?php include( $this->pluginPath . 'admin-views/organizer-meta-box.php' ); ?>
105
  </table>
106
  <?php $this->do_action('tribe_events_details_table_bottom', $postId, true) ?>
107
+ <?php if ( !TribeEventsTickets::$active || class_exists( 'Event_Tickets_PRO' ) || ( get_post_meta( get_the_ID(), '_EventOrigin', true ) === 'community-events' ) ) { ?>
 
108
  <table id="event_cost" class="eventtable">
109
  <tr>
110
  <td colspan="2" class="tribe_sectionheader"><h4><?php _e('Event Cost', 'tribe-events-calendar'); ?></h4></td>
admin-views/no-comments.php CHANGED
File without changes
admin-views/organizer-meta-box.php CHANGED
File without changes
admin-views/recurrence-dialog.php CHANGED
File without changes
admin-views/tickets-attendees.php ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="wrap">
2
+ <div id="icon-edit" class="icon32 icon32-tickets-attendees"><br></div>
3
+ <h2><?php _e( "Attendees" );?></h2>
4
+
5
+ <div id="tribe-filters" class="metabox-holder">
6
+ <div id="filters-wrap" class="postbox">
7
+ <h3 title="Click to toggle"><?php _e( "Summary" );?></h3>
8
+ <table class="eventtable ticket_list">
9
+ <?php
10
+ $event_id = isset( $_GET["event_id"] ) ? $_GET["event_id"] : 0;
11
+ $tickets = TribeEventsTickets::get_event_tickets( $event_id );
12
+
13
+ $provider = null;
14
+ $count = 0;
15
+
16
+ foreach ( $tickets as $ticket ) {
17
+
18
+ $provider = $ticket->provider_class;
19
+ $provider_obj = call_user_func( array( $provider, 'get_instance' ) );
20
+
21
+ if ( ( $ticket->provider_class !== $provider ) || $count == 0 ) {
22
+ ?>
23
+ <td colspan="3">
24
+ <h4><?php echo esc_html( self::$active_modules[$ticket->provider_class] ); ?></h4>
25
+ </td>
26
+ <?php } ?>
27
+ <tr>
28
+ <td width="40%">
29
+ <p class="ticket_name"><?php
30
+ echo $ticket->name;
31
+ ?></p>
32
+
33
+ </td>
34
+ <td valign="top">
35
+ <?php echo woocommerce_price( $ticket->price ); ?>
36
+ </td>
37
+ <td valign="top" nowrap="nowrap">
38
+ <?php
39
+ $stock = !empty ( $ticket->stock ) ? $ticket->stock : 0;
40
+ $sold = !empty ( $ticket->qty_sold ) ? $ticket->qty_sold : 0;
41
+ echo sprintf( __( "Sold %d of %d", 'tribe-events-calendar' ), $sold, $sold + $stock );
42
+ ?>
43
+ </td>
44
+
45
+ </tr>
46
+ <?php
47
+ $count++;
48
+ } ?>
49
+ </table>
50
+ </div>
51
+ </div>
52
+
53
+ <form id="topics-filter" method="get">
54
+ <input type="hidden" name="page" value="<?php echo $_GET['page'] ?>"/>
55
+ <input type="hidden" name="event_id" value="<?php echo $_GET['event_id'] ?>"/>
56
+ <input type="hidden" name="post_type" value="<?php echo TribeEvents::POSTTYPE; ?>"/>
57
+ <?php $attendees_table->display() ?>
58
+ </form>
59
+ </div>
admin-views/tickets-list.php ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <table class="eventtable ticket_list eventForm">
2
+ <?php
3
+ $provider = null;
4
+ $count = 0;
5
+ global $post;
6
+ if ( $post ) {
7
+ $post_id = get_the_ID();
8
+ } else {
9
+ $post_id = $_POST["post_ID"];
10
+ }
11
+
12
+ foreach ( $tickets as $ticket ) {
13
+
14
+ $controls = array();
15
+ $provider = $ticket->provider_class;
16
+ $provider_obj = call_user_func( array( $provider, 'get_instance' ) );
17
+
18
+
19
+ $controls[] = sprintf( "<span><a href='#' attr-provider='%s' attr-ticket-id='%s' id='ticket_edit_%s' class='ticket_edit'>Edit</a></span>", $ticket->provider_class, $ticket->ID, $ticket->ID );
20
+ $controls[] = sprintf( "<span><a href='#' attr-provider='%s' attr-ticket-id='%s' id='ticket_delete_%s' class='ticket_delete'>Delete</a></span>", $ticket->provider_class, $ticket->ID, $ticket->ID );
21
+ if ( $ticket->admin_link ) {
22
+ $controls[] = sprintf( __("<span><a href='%s'>Edit in %s</a></span>", "tribe-events-calendar"), esc_url( $ticket->admin_link ), self::$active_modules[$ticket->provider_class] );
23
+ }
24
+ if ( $ticket->frontend_link && get_post_status( $post_id ) == 'publish' ) {
25
+ $controls[] = sprintf( "<span><a href='%s'>View</a></span>", esc_url( $ticket->frontend_link ) );
26
+ }
27
+
28
+ $report = $provider_obj->get_ticket_reports_link( $post_id, $ticket->ID );
29
+ if ( $report ) {
30
+ $controls[] = $report;
31
+ }
32
+
33
+ if ( ( $ticket->provider_class !== $provider ) || $count == 0 ) {
34
+ ?>
35
+ <td colspan="4" class="titlewrap">
36
+ <h4 class="tribe_sectionheader"><?php echo esc_html( self::$active_modules[$ticket->provider_class] ); ?>
37
+ <?php echo $provider_obj->get_event_reports_link( $post_id ); ?>
38
+ <small>&nbsp;|&nbsp;</small>
39
+ <?php echo sprintf( "<small><a title='See who purchased tickets to this event' href='%s'>%s</a></small>", admin_url( sprintf( 'edit.php?post_type=%s&page=%s&event_id=%d', TribeEvents::POSTTYPE, $this->attendees_slug, $post_id ) ), __( "Attendees", 'tribe-events-calendar' ) ); ?>
40
+ </h4>
41
+ </td>
42
+ <?php } ?>
43
+ <tr>
44
+ <td>
45
+ <p class="ticket_name"><?php
46
+ echo sprintf( "<a href='#' attr-provider='%s' attr-ticket-id='%s' class='ticket_edit'>%s</a></span>", $ticket->provider_class, $ticket->ID, esc_html( $ticket->name ) );
47
+ ?></p>
48
+
49
+ <div class="ticket_controls">
50
+ <?php echo join( " | ", $controls ); ?>
51
+ </div>
52
+
53
+ </td>
54
+ <td valign="top">
55
+ <?php echo woocommerce_price( $ticket->price ); ?>
56
+ </td>
57
+
58
+ <td nowrap="nowrap">
59
+ <?php
60
+ $stock = !empty ( $ticket->stock ) ? $ticket->stock : 0;
61
+ $sold = !empty ( $ticket->qty_sold ) ? $ticket->qty_sold : 0;
62
+ echo sprintf( __( "Sold %d of %d", 'tribe-events-calendar' ), $sold, $sold + $stock );
63
+ ?>
64
+ </td>
65
+ <td width="40%" valign="top">
66
+ <?php echo esc_html( $ticket->description ); ?>
67
+ </td>
68
+ </tr>
69
+ <?php
70
+ $count++;
71
+ } ?>
72
+ </table>
admin-views/tickets-meta-box.php ADDED
@@ -0,0 +1,160 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // Don't load directly
3
+ if ( !defined( 'ABSPATH' ) ) {
4
+ die( '-1' );
5
+ }
6
+ ?>
7
+
8
+ <table id="event_tickets" class="eventtable">
9
+ <?php
10
+ if ( get_post_meta( get_the_ID(), '_EventOrigin', true ) === 'community-events' ) {
11
+ ?>
12
+ <tr>
13
+ <td colspan="2" class="tribe_sectionheader updated">
14
+ <p class="error-message"><?php _e( 'This event was created using Community Events. Are you sure you want to sell tickets for it?', 'tribe-events-calendar' ); ?></p>
15
+ </td>
16
+ </tr>
17
+ <?php
18
+ }
19
+ ?>
20
+ <tr>
21
+ <td colspan="2" class="tribe_sectionheader ticket_list_container">
22
+
23
+ <?php $this->ticket_list_markup( $tickets ); ?>
24
+
25
+ </td>
26
+ </tr>
27
+ <tr>
28
+ <td colspan="2" class="tribe_sectionheader">
29
+ <a href="#" class="button-secondary"
30
+ id="ticket_form_toggle"><?php _e( 'Add new ticket', 'tribe-events-calendar' );?></a>
31
+ </td>
32
+ </tr>
33
+ <tr id="ticket_form" class="ticket_form">
34
+ <td colspan="2" class="tribe_sectionheader">
35
+ <div id="tribe-loading"><span></span></div>
36
+ <table id="ticket_form_table" class="eventtable ticket_form">
37
+
38
+ <tr>
39
+ <td colspan="2">
40
+ <h4 class="ticket_form_title_add"><?php _e( 'Add new ticket', 'tribe-events-calendar' ); ?></h4>
41
+ <h4 class="ticket_form_title_edit"><?php _e( 'Edit ticket', 'tribe-events-calendar' ); ?></h4>
42
+ </td>
43
+ </tr>
44
+
45
+ <tr>
46
+ <td width="20%"><label
47
+ for="ticket_provider"><?php _e( 'Sell using:', 'tribe-events-calendar' ); ?></label></td>
48
+ <td>
49
+ <?php
50
+ $checked = true;
51
+ foreach ( self::$active_modules as $class => $module ) {
52
+ ?>
53
+ <input <?php checked( $checked );?> type="radio" name="ticket_provider" id="ticket_provider"
54
+ value="<?php echo esc_attr( $class );?>"
55
+ class="ticket_field">
56
+ <span><?php echo esc_html( $module ); ?></span>
57
+ <?php
58
+ $checked = false;
59
+ }
60
+ ?>
61
+ </td>
62
+ </tr>
63
+ <tr>
64
+ <td><label for="ticket_name"><?php _e( 'Ticket Name:', 'tribe-events-calendar' ); ?></label></td>
65
+ <td>
66
+ <input type='text' id='ticket_name' name='ticket_name' class="ticket_field" size='25' value=''/>
67
+ </td>
68
+ </tr>
69
+ <tr class="ticket">
70
+ <td><label
71
+ for="ticket_description"><?php _e( 'Ticket Description:', 'tribe-events-calendar' ); ?></label>
72
+ </td>
73
+ <td>
74
+ <textarea rows="5" cols="40" name="ticket_description" class="ticket_field"
75
+ id="ticket_description"></textarea>
76
+ </td>
77
+ </tr>
78
+ <tr class="ticket">
79
+ <td><label
80
+ for="ticket_price"><?php _e( 'Price:', 'tribe-events-calendar' ); ?></label>
81
+ </td>
82
+ <td>
83
+ <input type='text' id='ticket_price' name='ticket_price' class="ticket_field" size='7'
84
+ value=''/>
85
+ <p class="description">(0 or empty for free tickets)</p>
86
+ </td>
87
+ </tr>
88
+
89
+ <tr class="ticket">
90
+ <td><label
91
+ for="ticket_price"><?php _e( 'Start sale:', 'tribe-events-calendar' ); ?></label>
92
+ </td>
93
+ <td>
94
+ <input autocomplete="off" type="text" class="ticket_field" size='7' name="ticket_start_date"
95
+ id="ticket_start_date" value="">
96
+ <span class=''>
97
+ <?php _e( '@', 'tribe-events-calendar' ); ?>
98
+ <select name='ticket_start_hour' id='ticket_start_hour' class="ticket_field">
99
+ <?php echo $startHourOptions; ?>
100
+ </select>
101
+ <select name='ticket_start_minute' id='ticket_start_minute' class="ticket_field">
102
+ <?php echo $startMinuteOptions; ?>
103
+ </select>
104
+ <?php if ( !strstr( get_option( 'time_format', TribeDateUtils::TIMEFORMAT ), 'H' ) ) : ?>
105
+ <select name='ticket_start_meridian' id='ticket_start_meridian' class="ticket_field">
106
+ <?php echo $startMeridianOptions; ?>
107
+ </select>
108
+ <?php endif; ?>
109
+ </span>
110
+ </td>
111
+ </tr>
112
+
113
+ <tr class="ticket">
114
+ <td valign="top"><label
115
+ for="ticket_price"><?php _e( 'End sale:', 'tribe-events-calendar' ); ?></label>
116
+ </td>
117
+ <td valign="top">
118
+ <input autocomplete="off" type="text" class="ticket_field" size='7' name="ticket_end_date"
119
+ id="ticket_end_date" value="">
120
+
121
+ <span class=''>
122
+ <?php _e( '@', 'tribe-events-calendar' ); ?>
123
+ <select name='ticket_end_hour' id='ticket_end_hour' class="ticket_field">
124
+ <?php echo $endHourOptions; ?>
125
+ </select>
126
+ <select name='ticket_end_minute' id='ticket_end_minute' class="ticket_field">
127
+ <?php echo $endMinuteOptions; ?>
128
+ </select>
129
+ <?php if ( !strstr( get_option( 'time_format', TribeDateUtils::TIMEFORMAT ), 'H' ) ) : ?>
130
+ <select name='ticket_end_meridian' id='ticket_end_meridian' class="ticket_field">
131
+ <?php echo $endMeridianOptions; ?>
132
+ </select>
133
+ <?php endif; ?>
134
+ </span>
135
+ <br/><p class="description"><?php _e("When will ticket sales occur? If you don't set a start/end date for sales, tickets will be available from now until the event ends.",'tribe-events-calendar');?></p>
136
+ </td>
137
+ </tr>
138
+
139
+
140
+ <?php do_action( 'tribe_events_tickets_metabox_advanced', get_the_ID(), NULL ); ?>
141
+
142
+ <tr class="ticket bottom">
143
+ <td></td>
144
+ <td>
145
+ <input type="hidden" name="ticket_id" id="ticket_id" class="ticket_field" value=""/>
146
+
147
+ <input type='button' id='ticket_form_save' name='ticket_form_save' value="Save this ticket"
148
+ class="button-primary"/>
149
+
150
+ <input type='button' id='ticket_form_cancel' name='ticket_form_cancel' value="Cancel"
151
+ class="button-highlighted"/>
152
+ </td>
153
+ </tr>
154
+
155
+ </table>
156
+
157
+ </td>
158
+ </tr>
159
+
160
+ </table>
admin-views/tribe-options-general.php CHANGED
File without changes
admin-views/tribe-options-help.php CHANGED
File without changes
admin-views/tribe-options-templates.php CHANGED
File without changes
admin-views/venue-meta-box.php CHANGED
File without changes
admin-views/widget-admin-list.php CHANGED
File without changes
lang/tribe-events-calendar-bg_BG.mo CHANGED
File without changes
lang/tribe-events-calendar-bg_BG.po CHANGED
File without changes
lang/tribe-events-calendar-bs_BA.mo CHANGED
File without changes
lang/tribe-events-calendar-bs_BA.po CHANGED
File without changes
lang/tribe-events-calendar-ca.mo CHANGED
File without changes
lang/tribe-events-calendar-ca.po CHANGED
File without changes
lang/tribe-events-calendar-cs_CZ.mo CHANGED
File without changes
lang/tribe-events-calendar-cs_CZ.po CHANGED
File without changes
lang/tribe-events-calendar-de_DE.mo CHANGED
File without changes
lang/tribe-events-calendar-de_DE.po CHANGED
File without changes
lang/tribe-events-calendar-es_ES.mo CHANGED
File without changes
lang/tribe-events-calendar-es_ES.po CHANGED
File without changes
lang/tribe-events-calendar-fi.mo CHANGED
File without changes
lang/tribe-events-calendar-fi.po CHANGED
File without changes
lang/tribe-events-calendar-fr_FR.mo CHANGED
Binary file
lang/tribe-events-calendar-fr_FR.po CHANGED
@@ -6,8 +6,8 @@ msgstr ""
6
  "Project-Id-Version: The Events Calendar 2.0\n"
7
  "Report-Msgid-Bugs-To: \n"
8
  "POT-Creation-Date: 2012-01-09 11:28-0800\n"
9
- "PO-Revision-Date: 2012-01-24 13:53+0100\n"
10
- "Last-Translator: Arno <arnofaure@gmail.com>\n"
11
  "Language-Team: Cecile <cecile@greek-paris.com>\n"
12
  "MIME-Version: 1.0\n"
13
  "Content-Type: text/plain; charset=UTF-8\n"
@@ -33,7 +33,7 @@ msgstr "Vous avez changé les règles de récurrence de l'événement. Si vous l
33
 
34
  #: ../admin-views/events-meta-box.php:31
35
  msgid "All day event?"
36
- msgstr "Evénement qui dure toute la journée ? "
37
 
38
  #: ../admin-views/events-meta-box.php:35
39
  msgid "Start Date / Time:"
@@ -55,7 +55,7 @@ msgstr "Date/heure de fin :"
55
 
56
  #: ../admin-views/events-meta-box.php:78
57
  msgid "Event Location Details"
58
- msgstr "Coordonnées du lieu de l'Evénement :"
59
 
60
  #: ../admin-views/events-meta-box.php:84
61
  msgid "Show Google Maps Link:"
@@ -71,7 +71,7 @@ msgstr "Coordonnées de l'organisateur "
71
 
72
  #: ../admin-views/events-meta-box.php:109
73
  msgid "Event Cost"
74
- msgstr "Prix de l'entrée de l'événement "
75
 
76
  #: ../admin-views/events-meta-box.php:112
77
  msgid "Cost:"
@@ -97,7 +97,7 @@ msgstr "Si vous rencontrez des problèmes avec ces options, visitez le <a href=\
97
 
98
  #: ../admin-views/events-options.php:54
99
  msgid "Here is the iCal feed URL for your events: "
100
- msgstr "Voici le flux RSS iCal de vos Evénements "
101
 
102
  #: ../admin-views/events-options.php:60
103
  msgid "Settings"
@@ -201,7 +201,7 @@ msgstr "Préférences du Thème"
201
  #: ../admin-views/events-options.php:169
202
  #: ../admin-views/events-options.php:171
203
  msgid "Events Template"
204
- msgstr "Template pour vos Evénements"
205
 
206
  #: ../admin-views/events-options.php:173
207
  msgid "Default Events Template"
@@ -261,15 +261,15 @@ msgstr "Téléphone : "
261
 
262
  #: ../admin-views/organizer-meta-box.php:21
263
  msgid "Website:"
264
- msgstr "Site internet : "
265
 
266
  #: ../admin-views/organizer-meta-box.php:25
267
  msgid "Email:"
268
- msgstr "Email:"
269
 
270
  #: ../admin-views/recurrence-dialog.php:11
271
  msgid "Which events do you wish to update?"
272
- msgstr "Quels Evénements voulez-vous mettre à jour ? "
273
 
274
  #: ../admin-views/recurrence-dialog.php:14
275
  msgid "Select your desired action"
@@ -360,26 +360,26 @@ msgstr "Désolé, The Events Calendar nécessite PHP %s ou une version plus réc
360
 
361
  #: ../lib/the-events-calendar.class.php:447
362
  msgid "Upcoming Events"
363
- msgstr "Evénement à venir "
364
 
365
  #: ../lib/the-events-calendar.class.php:449
366
  msgid "Past Events"
367
- msgstr "Evénements passés"
368
 
369
  #: ../lib/the-events-calendar.class.php:453
370
  #: ../lib/the-events-calendar.class.php:459
371
  #, php-format
372
  msgid "Events for %s"
373
- msgstr "Evénements pour %s"
374
 
375
  #: ../lib/the-events-calendar.class.php:455
376
  msgid "Events this month"
377
- msgstr "Evénements du mois"
378
 
379
  #: ../lib/the-events-calendar.class.php:465
380
  #, php-format
381
  msgid "Events at %s"
382
- msgstr "Evénements à %s"
383
 
384
  #: ../lib/the-events-calendar.class.php:477
385
  msgid "No description has been entered for this event."
@@ -387,7 +387,7 @@ msgstr "Aucune description n'a été rentrée pour cet événement. "
387
 
388
  #: ../lib/the-events-calendar.class.php:583
389
  msgid "Events"
390
- msgstr "Evénements"
391
 
392
  #: ../lib/the-events-calendar.class.php:584
393
  msgid "Event"
@@ -409,7 +409,7 @@ msgstr "Editer l'événement "
409
 
410
  #: ../lib/the-events-calendar.class.php:588
411
  msgid "New Event"
412
- msgstr "Nouvel Evénement "
413
 
414
  #: ../lib/the-events-calendar.class.php:589
415
  msgid "View Event"
@@ -421,11 +421,11 @@ msgstr "Rechercher des événements "
421
 
422
  #: ../lib/the-events-calendar.class.php:591
423
  msgid "No events found"
424
- msgstr "Aucun Evénement "
425
 
426
  #: ../lib/the-events-calendar.class.php:592
427
  msgid "No events found in Trash"
428
- msgstr "Aucun Evénement dans la Poubelle "
429
 
430
  #: ../lib/the-events-calendar.class.php:596
431
  msgid "Venues"
@@ -523,24 +523,24 @@ msgstr "Catégorie parente : "
523
 
524
  #: ../lib/the-events-calendar.class.php:628
525
  msgid "Edit Event Category"
526
- msgstr "Editer la Catégorie de l'Evénement "
527
 
528
  #: ../lib/the-events-calendar.class.php:629
529
  msgid "Update Event Category"
530
- msgstr "Mettre à jour la Catégories de l'Evénement "
531
 
532
  #: ../lib/the-events-calendar.class.php:630
533
  msgid "Add New Event Category"
534
- msgstr "Nouvelle Catégorie d'Evénement "
535
 
536
  #: ../lib/the-events-calendar.class.php:631
537
  msgid "New Event Category Name"
538
- msgstr "Nouveau nom de la Catégorie d'Evénement "
539
 
540
  #: ../lib/the-events-calendar.class.php:641
541
  #, php-format
542
  msgid "Event updated. <a href=\"%s\">View event</a>"
543
- msgstr "Evénement mise à jour. <a href=\"%s\">Voir</a> "
544
 
545
  #: ../lib/the-events-calendar.class.php:642
546
  #: ../lib/the-events-calendar.class.php:659
@@ -556,7 +556,7 @@ msgstr "Champ Personnalisé effacé. "
556
 
557
  #: ../lib/the-events-calendar.class.php:644
558
  msgid "Event updated."
559
- msgstr "Evénement mis à jour."
560
 
561
  #: ../lib/the-events-calendar.class.php:646
562
  #, php-format
@@ -566,21 +566,21 @@ msgstr "Evénement restauré à la dernière révision depuis %s"
566
  #: ../lib/the-events-calendar.class.php:647
567
  #, php-format
568
  msgid "Event published. <a href=\"%s\">View event</a>"
569
- msgstr "Evénement publié. <a href=\"%s\">Voir</a> "
570
 
571
  #: ../lib/the-events-calendar.class.php:648
572
  msgid "Event saved."
573
- msgstr "Evénement enregistré"
574
 
575
  #: ../lib/the-events-calendar.class.php:649
576
  #, php-format
577
  msgid "Event submitted. <a target=\"_blank\" href=\"%s\">Preview event</a>"
578
- msgstr "Evénement enregistré. <a href=\"%s\">Aperçu</a> "
579
 
580
  #: ../lib/the-events-calendar.class.php:650
581
  #, php-format
582
  msgid "Event scheduled for: <strong>%1$s</strong>. <a target=\"_blank\" href=\"%2$s\">Preview event</a>"
583
- msgstr "Evénement programmé pour le : <strong>%1$s</strong>. <a target=\"_blank\" href=\"%2$s\">Aperçu</a> "
584
 
585
  #: ../lib/the-events-calendar.class.php:652
586
  #: ../lib/the-events-calendar.class.php:669
@@ -716,7 +716,7 @@ msgstr "Fonctionnalité supplémentaire "
716
  #: ../lib/the-events-calendar.class.php:2054
717
  #: ../lib/the-events-calendar.class.php:2060
718
  msgid "Looking for additional functionality including recurring events, custom meta, community events, ticket sales and more?"
719
- msgstr "Vous cherchez d'autres fonctionnalités comme les evénement récurrents, les meta personnalisés, community events, vente de billets et encore plus ? "
720
 
721
  #: ../lib/the-events-calendar.class.php:2054
722
  #: ../lib/the-events-calendar.class.php:2061
@@ -2048,7 +2048,7 @@ msgstr "Pas d'événements précédents"
2048
  #: ../views/list.php:146
2049
  #: ../views/list.php:148
2050
  msgid "&laquo; Previous Events"
2051
- msgstr "&laquo; Evénements précédents "
2052
 
2053
  #: ../views/list.php:155
2054
  #: ../views/list.php:157
@@ -2099,24 +2099,31 @@ msgstr "Tout voir &raquo;"
2099
 
2100
  #~ msgid "Ends"
2101
  #~ msgstr "Se termine"
 
2102
  #~ msgid "Use Saved Venue:"
2103
  #~ msgstr "Utiliser un lieu enregistré : "
 
2104
  #~ msgid "Use Saved Organizer:"
2105
  #~ msgstr "Utiliser un organisateur déjà enregistré "
 
2106
  #~ msgid "Use Pretty URLs"
2107
  #~ msgstr "Utiliser des Prettys URLS"
 
2108
  #~ msgid ""
2109
  #~ "Although unlikely, pretty URLs (ie, http://site/events/upcoming) may "
2110
  #~ "interfere with custom themes or plugins."
2111
  #~ msgstr ""
2112
  #~ "Cependant faites attention car les prettys URLs (ex: http://site/events/"
2113
  #~ "upcoming) peuvent causer des conflits avec certains thèmes ou plugins. "
 
2114
  #~ msgid "Use New Venue"
2115
  #~ msgstr "Utiliser un nouveau lieu"
 
2116
  #~ msgid "No saved venues yet."
2117
  #~ msgstr "Pas encore de lieu enregistré"
 
2118
  #~ msgid "Use New Organizer"
2119
  #~ msgstr "Nouvel organisateur"
 
2120
  #~ msgid "No saved organizers yet."
2121
  #~ msgstr "Aucun organisateur enregistré encore."
2122
-
6
  "Project-Id-Version: The Events Calendar 2.0\n"
7
  "Report-Msgid-Bugs-To: \n"
8
  "POT-Creation-Date: 2012-01-09 11:28-0800\n"
9
+ "PO-Revision-Date: 2012-10-17 12:08-0500\n"
10
+ "Last-Translator: Fanny Héraud <fanny@dites-vert.com>\n"
11
  "Language-Team: Cecile <cecile@greek-paris.com>\n"
12
  "MIME-Version: 1.0\n"
13
  "Content-Type: text/plain; charset=UTF-8\n"
33
 
34
  #: ../admin-views/events-meta-box.php:31
35
  msgid "All day event?"
36
+ msgstr "Événement qui dure toute la journée ? "
37
 
38
  #: ../admin-views/events-meta-box.php:35
39
  msgid "Start Date / Time:"
55
 
56
  #: ../admin-views/events-meta-box.php:78
57
  msgid "Event Location Details"
58
+ msgstr "Coordonnées du lieu de l'événement :"
59
 
60
  #: ../admin-views/events-meta-box.php:84
61
  msgid "Show Google Maps Link:"
71
 
72
  #: ../admin-views/events-meta-box.php:109
73
  msgid "Event Cost"
74
+ msgstr "Prix d'entrée de l'événement "
75
 
76
  #: ../admin-views/events-meta-box.php:112
77
  msgid "Cost:"
97
 
98
  #: ../admin-views/events-options.php:54
99
  msgid "Here is the iCal feed URL for your events: "
100
+ msgstr "Voici le flux RSS iCal de vos événements :"
101
 
102
  #: ../admin-views/events-options.php:60
103
  msgid "Settings"
201
  #: ../admin-views/events-options.php:169
202
  #: ../admin-views/events-options.php:171
203
  msgid "Events Template"
204
+ msgstr "Template pour vos événements"
205
 
206
  #: ../admin-views/events-options.php:173
207
  msgid "Default Events Template"
261
 
262
  #: ../admin-views/organizer-meta-box.php:21
263
  msgid "Website:"
264
+ msgstr "Site Web : "
265
 
266
  #: ../admin-views/organizer-meta-box.php:25
267
  msgid "Email:"
268
+ msgstr "Courriel :"
269
 
270
  #: ../admin-views/recurrence-dialog.php:11
271
  msgid "Which events do you wish to update?"
272
+ msgstr "Quels événements voulez-vous mettre à jour ? "
273
 
274
  #: ../admin-views/recurrence-dialog.php:14
275
  msgid "Select your desired action"
360
 
361
  #: ../lib/the-events-calendar.class.php:447
362
  msgid "Upcoming Events"
363
+ msgstr "Événements à venir "
364
 
365
  #: ../lib/the-events-calendar.class.php:449
366
  msgid "Past Events"
367
+ msgstr "Événements passés"
368
 
369
  #: ../lib/the-events-calendar.class.php:453
370
  #: ../lib/the-events-calendar.class.php:459
371
  #, php-format
372
  msgid "Events for %s"
373
+ msgstr "Événements pour %s"
374
 
375
  #: ../lib/the-events-calendar.class.php:455
376
  msgid "Events this month"
377
+ msgstr "Événements du mois"
378
 
379
  #: ../lib/the-events-calendar.class.php:465
380
  #, php-format
381
  msgid "Events at %s"
382
+ msgstr "Événements à %s"
383
 
384
  #: ../lib/the-events-calendar.class.php:477
385
  msgid "No description has been entered for this event."
387
 
388
  #: ../lib/the-events-calendar.class.php:583
389
  msgid "Events"
390
+ msgstr "Événements"
391
 
392
  #: ../lib/the-events-calendar.class.php:584
393
  msgid "Event"
409
 
410
  #: ../lib/the-events-calendar.class.php:588
411
  msgid "New Event"
412
+ msgstr "Nouvel événement "
413
 
414
  #: ../lib/the-events-calendar.class.php:589
415
  msgid "View Event"
421
 
422
  #: ../lib/the-events-calendar.class.php:591
423
  msgid "No events found"
424
+ msgstr "Aucun événement "
425
 
426
  #: ../lib/the-events-calendar.class.php:592
427
  msgid "No events found in Trash"
428
+ msgstr "Aucun événement dans la corbeille "
429
 
430
  #: ../lib/the-events-calendar.class.php:596
431
  msgid "Venues"
523
 
524
  #: ../lib/the-events-calendar.class.php:628
525
  msgid "Edit Event Category"
526
+ msgstr "Éditer la catégorie de l'événement "
527
 
528
  #: ../lib/the-events-calendar.class.php:629
529
  msgid "Update Event Category"
530
+ msgstr "Mettre à jour la catégories de l'événement "
531
 
532
  #: ../lib/the-events-calendar.class.php:630
533
  msgid "Add New Event Category"
534
+ msgstr "Nouvelle catégorie d'événement "
535
 
536
  #: ../lib/the-events-calendar.class.php:631
537
  msgid "New Event Category Name"
538
+ msgstr "Nouveau nom de la catégorie d'événement "
539
 
540
  #: ../lib/the-events-calendar.class.php:641
541
  #, php-format
542
  msgid "Event updated. <a href=\"%s\">View event</a>"
543
+ msgstr "Événement mis à jour. <a href=\"%s\">Voir</a> "
544
 
545
  #: ../lib/the-events-calendar.class.php:642
546
  #: ../lib/the-events-calendar.class.php:659
556
 
557
  #: ../lib/the-events-calendar.class.php:644
558
  msgid "Event updated."
559
+ msgstr "Événement mis à jour."
560
 
561
  #: ../lib/the-events-calendar.class.php:646
562
  #, php-format
566
  #: ../lib/the-events-calendar.class.php:647
567
  #, php-format
568
  msgid "Event published. <a href=\"%s\">View event</a>"
569
+ msgstr "Événement publié. <a href=\"%s\">Voir</a> "
570
 
571
  #: ../lib/the-events-calendar.class.php:648
572
  msgid "Event saved."
573
+ msgstr "Événement enregistré"
574
 
575
  #: ../lib/the-events-calendar.class.php:649
576
  #, php-format
577
  msgid "Event submitted. <a target=\"_blank\" href=\"%s\">Preview event</a>"
578
+ msgstr "Événement enregistré. <a href=\"%s\">Aperçu</a> "
579
 
580
  #: ../lib/the-events-calendar.class.php:650
581
  #, php-format
582
  msgid "Event scheduled for: <strong>%1$s</strong>. <a target=\"_blank\" href=\"%2$s\">Preview event</a>"
583
+ msgstr "Événement programmé pour le : <strong>%1$s</strong>. <a target=\"_blank\" href=\"%2$s\">Aperçu</a> "
584
 
585
  #: ../lib/the-events-calendar.class.php:652
586
  #: ../lib/the-events-calendar.class.php:669
716
  #: ../lib/the-events-calendar.class.php:2054
717
  #: ../lib/the-events-calendar.class.php:2060
718
  msgid "Looking for additional functionality including recurring events, custom meta, community events, ticket sales and more?"
719
+ msgstr "Vous cherchez d'autres fonctionnalités comme les événements récurrents, meta personnalisés, community events, vente de billets et encore plus ? "
720
 
721
  #: ../lib/the-events-calendar.class.php:2054
722
  #: ../lib/the-events-calendar.class.php:2061
2048
  #: ../views/list.php:146
2049
  #: ../views/list.php:148
2050
  msgid "&laquo; Previous Events"
2051
+ msgstr "&laquo; Événements précédents "
2052
 
2053
  #: ../views/list.php:155
2054
  #: ../views/list.php:157
2099
 
2100
  #~ msgid "Ends"
2101
  #~ msgstr "Se termine"
2102
+
2103
  #~ msgid "Use Saved Venue:"
2104
  #~ msgstr "Utiliser un lieu enregistré : "
2105
+
2106
  #~ msgid "Use Saved Organizer:"
2107
  #~ msgstr "Utiliser un organisateur déjà enregistré "
2108
+
2109
  #~ msgid "Use Pretty URLs"
2110
  #~ msgstr "Utiliser des Prettys URLS"
2111
+
2112
  #~ msgid ""
2113
  #~ "Although unlikely, pretty URLs (ie, http://site/events/upcoming) may "
2114
  #~ "interfere with custom themes or plugins."
2115
  #~ msgstr ""
2116
  #~ "Cependant faites attention car les prettys URLs (ex: http://site/events/"
2117
  #~ "upcoming) peuvent causer des conflits avec certains thèmes ou plugins. "
2118
+
2119
  #~ msgid "Use New Venue"
2120
  #~ msgstr "Utiliser un nouveau lieu"
2121
+
2122
  #~ msgid "No saved venues yet."
2123
  #~ msgstr "Pas encore de lieu enregistré"
2124
+
2125
  #~ msgid "Use New Organizer"
2126
  #~ msgstr "Nouvel organisateur"
2127
+
2128
  #~ msgid "No saved organizers yet."
2129
  #~ msgstr "Aucun organisateur enregistré encore."
 
lang/tribe-events-calendar-gr_GR.mo CHANGED
File without changes
lang/tribe-events-calendar-gr_GR.po CHANGED
File without changes
lang/tribe-events-calendar-he_IL.mo CHANGED
File without changes
lang/tribe-events-calendar-he_IL.po CHANGED
File without changes
lang/tribe-events-calendar-hr_HR.mo CHANGED
File without changes
lang/tribe-events-calendar-hr_HR.po CHANGED
File without changes
lang/tribe-events-calendar-it_IT.mo CHANGED
File without changes
lang/tribe-events-calendar-it_IT.po CHANGED
File without changes
lang/tribe-events-calendar-ja_JA.mo CHANGED
File without changes
lang/tribe-events-calendar-ja_JA.po CHANGED
File without changes
lang/tribe-events-calendar-lt_LT.mo CHANGED
File without changes
lang/tribe-events-calendar-lt_LT.po CHANGED
File without changes
lang/tribe-events-calendar-nb_NO.mo CHANGED
File without changes
lang/tribe-events-calendar-nb_NO.po CHANGED
File without changes
lang/tribe-events-calendar-nl_NL.mo CHANGED
File without changes
lang/tribe-events-calendar-nl_NL.po CHANGED
File without changes
lang/tribe-events-calendar-pl_PL.mo CHANGED
File without changes
lang/tribe-events-calendar-pl_PL.po CHANGED
File without changes
lang/tribe-events-calendar-pt_BR.mo CHANGED
File without changes
lang/tribe-events-calendar-pt_BR.po CHANGED
File without changes
lang/tribe-events-calendar-ru_RU.mo CHANGED
File without changes
lang/tribe-events-calendar-ru_RU.po CHANGED
File without changes
lang/tribe-events-calendar-sr_RS.mo CHANGED
File without changes
lang/tribe-events-calendar-sr_RS.po CHANGED
File without changes
lang/tribe-events-calendar-sv_SE.mo CHANGED
File without changes
lang/tribe-events-calendar-sv_SE.po CHANGED
File without changes
lang/tribe-events-calendar-uk.mo CHANGED
Binary file
lang/tribe-events-calendar-uk.po CHANGED
@@ -6,79 +6,77 @@ msgstr ""
6
  "Project-Id-Version: The Events Calendar 2.0\n"
7
  "Report-Msgid-Bugs-To: \n"
8
  "POT-Creation-Date: 2011-09-19 16:36-0500\n"
9
- "PO-Revision-Date: 2012-08-27 00:47+0200\n"
10
- "Last-Translator: Галкин Никита <nikita@galkin.in.ua>\n"
11
- "Language-Team: mikei <mm@hilightprojects.com>\n"
12
- "Language: \n"
13
  "MIME-Version: 1.0\n"
14
  "Content-Type: text/plain; charset=UTF-8\n"
15
  "Content-Transfer-Encoding: 8bit\n"
16
- "X-Poedit-SourceCharset: utf-8\n"
17
  "X-Poedit-KeywordsList: __;_e\n"
18
  "X-Poedit-Basepath: ./\n"
19
- "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
20
- "X-Poedit-Language: Russian\n"
21
- "X-Poedit-Country: RUSSIAN FEDERATION\n"
22
  "X-Poedit-SearchPath-0: ..\n"
23
 
24
- #: ../views/list.php:16
25
- #: ../views/gridview.php:37
26
  msgid "Event List"
27
- msgstr "Перелік"
28
 
29
- #: ../views/list.php:17
30
- #: ../views/gridview.php:38
31
  msgid "Calendar"
32
  msgstr "Календар"
33
 
34
- #: ../views/list.php:42
35
- #: ../views/single.php:17
36
  msgid "Start:"
37
  msgstr "Початок:"
38
 
39
- #: ../views/list.php:46
40
- #: ../views/single.php:20
41
  msgid "End:"
42
- msgstr "Кінець:"
43
 
44
- #: ../views/list.php:54
45
- #: ../views/single.php:47
46
  msgid "Venue:"
47
  msgstr "Місце:"
48
 
49
- #: ../views/list.php:63
50
- #: ../views/single.php:33
51
- #: ../views/single.php:51
52
  #: ../admin-views/venue-meta-box.php:73
53
  msgid "Phone:"
54
  msgstr "Телефон:"
55
 
56
- #: ../views/list.php:69
57
- #: ../views/single.php:56
58
  #: ../admin-views/venue-meta-box.php:19
59
  msgid "Address:"
60
  msgstr "Адреса:"
61
 
62
- #: ../views/list.php:71
63
- #: ../views/single.php:58
64
  msgid "Google Map"
65
  msgstr "Мапа Google"
66
 
67
- #: ../views/list.php:81
68
- #: ../views/single.php:24
69
  #: ../admin-views/events-meta-box.php:113
70
  msgid "Cost:"
71
  msgstr "Вартість:"
72
 
73
  #: ../views/list.php:95
74
  #, php-format
75
- msgid " listed under %s. Check out past events for this category or view the full calendar."
76
- msgstr "Категорія: %s. Перевірити минулі події у цій категорії або переглянути весь календар."
 
 
 
 
77
 
78
  #: ../views/list.php:97
79
  #, php-format
80
- msgid " listed under %s. Check out upcoming events for this category or view the full calendar."
81
- msgstr "Категорія: %s. Перевірити майбутні події у цій категорії або переглянути весь календар."
 
 
 
 
82
 
83
  #: ../views/list.php:103
84
  msgid "No upcoming events"
@@ -88,35 +86,29 @@ msgstr "Подій не очікується"
88
  msgid "No previous events"
89
  msgstr "Минулих подій немає"
90
 
91
- #: ../views/list.php:120
92
- #: ../views/list.php:122
93
- #: ../views/list.php:124
94
  msgid "&laquo; Previous Events"
95
- msgstr "&laquo; Минулі події"
96
 
97
- #: ../views/list.php:131
98
- #: ../views/list.php:133
99
- #: ../views/list.php:135
100
  msgid "Next Events &raquo;"
101
- msgstr "Майбутні події &laquo;"
102
 
103
- #: ../views/list.php:140
104
- #: ../views/gridview.php:43
105
- #: ../views/single.php:83
106
  msgid "iCal Import"
107
- msgstr "Імпорт iCall"
108
 
109
  #: ../views/table-mini.php:24
110
  msgid "View all &raquo;"
111
- msgstr "Переглянути всі &raquo;"
112
 
113
  #: ../views/single.php:13
114
  msgid "&laquo; Back to Events"
115
- msgstr " &raquo; Повернутися до подій"
116
 
117
  #: ../views/single.php:14
118
  msgid "This event has passed."
119
- msgstr "Ця подія минула"
120
 
121
  #: ../views/single.php:29
122
  msgid "Organizer:"
@@ -132,11 +124,11 @@ msgstr "Розклад:"
132
 
133
  #: ../views/single.php:58
134
  msgid "Click to view a Google Map"
135
- msgstr "Відкрити мапу Google"
136
 
137
  #: ../views/single.php:86
138
  msgid "Add to Google Calendar"
139
- msgstr "Додати у Google Календар"
140
 
141
  #: ../views/single.php:86
142
  msgid "+ Google Calendar"
@@ -144,7 +136,7 @@ msgstr "+ Google Календар"
144
 
145
  #: ../views/events-list-load-widget-display.php:48
146
  msgid "All Day"
147
- msgstr "Цілий день"
148
 
149
  #: ../views/events-list-load-widget-display.php:51
150
  msgid "Ends"
@@ -156,33 +148,34 @@ msgstr "Редагувати"
156
 
157
  #: ../admin-views/events-meta-box.php:26
158
  msgid "Event Time &amp; Date"
159
- msgstr "Дата і час події"
160
 
161
  #: ../admin-views/events-meta-box.php:29
162
- msgid "You have changed the recurrence rules of this event. Saving the event will update all future events. If you did not mean to change all events, then please refresh the page."
163
- msgstr "Ви змінили правило повторюваності для цієї події. Збереження події оновить всі майбутні події. Якщо ви не бажаете змінити всі події, тоді будь ласка перезагрузіть сторінку."
 
 
 
164
 
165
  #: ../admin-views/events-meta-box.php:32
166
  msgid "All day event?"
167
- msgstr "Увесь день?"
168
 
169
  #: ../admin-views/events-meta-box.php:36
170
  msgid "Start Date / Time:"
171
  msgstr "Дата / Час початку:"
172
 
173
- #: ../admin-views/events-meta-box.php:39
174
- #: ../admin-views/events-meta-box.php:60
175
  msgid "YYYY-MM-DD"
176
  msgstr "РРРР-ММ-ДД"
177
 
178
- #: ../admin-views/events-meta-box.php:41
179
- #: ../admin-views/events-meta-box.php:62
180
  msgid "@"
181
  msgstr "@"
182
 
183
  #: ../admin-views/events-meta-box.php:57
184
  msgid "End Date / Time:"
185
- msgstr "Дата / Час закінчення:"
186
 
187
  #: ../admin-views/events-meta-box.php:79
188
  msgid "Event Location Details"
@@ -190,40 +183,45 @@ msgstr "Деталі місця проведення"
190
 
191
  #: ../admin-views/events-meta-box.php:85
192
  msgid "Show Google Maps Link:"
193
- msgstr "Показати Google Maps Link:"
194
 
195
  #: ../admin-views/events-meta-box.php:92
196
  msgid "Show Google Map:"
197
- msgstr "Показати Google Map:"
198
 
199
  #: ../admin-views/events-meta-box.php:101
200
  msgid "Event Organizer Details"
201
- msgstr "Деталі про організатора події"
202
 
203
  #: ../admin-views/events-meta-box.php:110
204
  msgid "Event Cost"
205
- msgstr "Вартість події"
206
 
207
  #: ../admin-views/events-meta-box.php:118
208
  msgid "Leave blank to hide the field. Enter a 0 for events that are free."
209
- msgstr "Не заповнюйте це поле, щоб не показувати. Введіть 0 для подій, які є безкоштовними."
 
210
 
211
  #: ../admin-views/events-meta-box.php:124
212
  msgid "Additional Functionality"
213
- msgstr "Додаткові опції"
214
 
215
  #: ../admin-views/events-meta-box.php:129
216
- msgid "Looking for additional functionality including recurring events, custom meta, community events, ticket sales and more?"
217
- msgstr "Шукаєте додаткових можливостей, таких як події, що повторюються, налаштування метаданих, громадські події, продаж квитків тощо?"
 
 
 
 
218
 
219
  #: ../admin-views/events-meta-box.php:129
220
  #, php-format
221
  msgid "Check out the <a href=\"%s\">available Add-Ons</a>."
222
- msgstr "Перегляньте <a href=\"%s\">Додаткові можливості</a>."
223
 
224
  #: ../admin-views/venue-meta-box.php:12
225
  msgid "Venue Name:"
226
- msgstr "Місце події:"
227
 
228
  #: ../admin-views/venue-meta-box.php:23
229
  msgid "City:"
@@ -235,11 +233,11 @@ msgstr "Країна:"
235
 
236
  #: ../admin-views/venue-meta-box.php:52
237
  msgid "State or Province:"
238
- msgstr "Штат, провінція або область:"
239
 
240
  #: ../admin-views/venue-meta-box.php:55
241
  msgid "Select a State:"
242
- msgstr "Виберіть штат:"
243
 
244
  #: ../admin-views/venue-meta-box.php:69
245
  msgid "Postal Code:"
@@ -247,15 +245,15 @@ msgstr "Поштовий індекс:"
247
 
248
  #: ../admin-views/recurrence-dialog.php:11
249
  msgid "Which events do you wish to update?"
250
- msgstr "Яку подію ви бажаєте оновити?"
251
 
252
  #: ../admin-views/recurrence-dialog.php:14
253
  msgid "Select your desired action"
254
- msgstr "Виберіть дію"
255
 
256
  #: ../admin-views/event-sidebar-options.php:11
257
  msgid "Hide From Upcoming Events List"
258
- msgstr "Сховати з Переліку майбутніх подій"
259
 
260
  #: ../admin-views/events-options.php:47
261
  #, php-format
@@ -268,41 +266,45 @@ msgstr "Потрібна допомога?"
268
 
269
  #: ../admin-views/events-options.php:54
270
  #, php-format
271
- msgid "If you're stuck on these options, please <a href=\"%s\">check out the documentation</a>. Or, go to the <a href=\"%s\">support forum</a>."
272
- msgstr "Якщо не знаєте, що робити, <a href=\"%s\">перегляньте документацію</a> або <a href=\"%s\">Форум підтримки</a>."
 
 
 
 
273
 
274
  #: ../admin-views/events-options.php:56
275
  msgid "Here is the iCal feed URL for your events: "
276
- msgstr "Це посилання на iCal feed для ваших подій:"
277
 
278
  #: ../admin-views/events-options.php:62
279
  msgid "Settings"
280
  msgstr "Налаштування"
281
 
282
- #: ../admin-views/events-options.php:65
283
- #: ../admin-views/events-options.php:69
284
  msgid "Default View for the Events"
285
- msgstr "Вигляд подій за замовчуванням"
286
 
287
- #: ../admin-views/events-options.php:83
288
- #: ../admin-views/events-options.php:87
289
  #: ../admin-views/events-options.php:89
290
  msgid "Show Comments"
291
  msgstr "Показати коментарі"
292
 
293
- #: ../admin-views/events-options.php:97
294
- #: ../admin-views/events-options.php:101
295
  msgid "Multiday Event Cutoff"
296
- msgstr "Закінчення багатоденної події"
297
 
298
  #: ../admin-views/events-options.php:115
299
- msgid "For multi-day events, hide the last day from grid view if it ends on or before this time."
300
- msgstr "Для багатоденних подій не показувати останній день у календарному вигляді подій, якщо воно закінчується до цього часу включно."
 
 
 
 
301
 
302
- #: ../admin-views/events-options.php:120
303
- #: ../admin-views/events-options.php:124
304
  msgid "Enable Google Maps"
305
- msgstr "Показувати мапу Google"
306
 
307
  #: ../admin-views/events-options.php:130
308
  msgid "Height"
@@ -317,57 +319,70 @@ msgid "(number or %)"
317
  msgstr "(значення або %)"
318
 
319
  #: ../admin-views/events-options.php:135
320
- msgid "If you don't have this turned on, your event listings won't have the backend map preview or frontend embedded map."
321
- msgstr "Якщо цю опцію не ввімкнено, мапа не буде відображатися у вашому переліку подій."
 
 
322
 
323
- #: ../admin-views/events-options.php:143
324
- #: ../admin-views/events-options.php:145
325
  msgid "Events URL slug"
326
  msgstr "URL сторінки подій"
327
 
328
  #: ../admin-views/events-options.php:146
329
  msgid "The slug used for building the Events URL."
330
- msgstr "Поле використовується для URL сторінки Календаря."
331
 
332
  #: ../admin-views/events-options.php:146
333
  #, php-format
334
  msgid "Your current Events URL is <strong>%s</strong>"
335
- msgstr "Ваш URL сторінки Календаря <strong>%s</strong>"
336
 
337
- #: ../admin-views/events-options.php:150
338
- #: ../admin-views/events-options.php:152
339
  msgid "Single Event URL slug"
340
- msgstr "URL сторінки єдиничної події"
341
 
342
  #: ../admin-views/events-options.php:153
343
  msgid "The slug used for building a single Event URL."
344
- msgstr "Поле використовується для URL сторінки єдиничної події"
345
 
346
  #: ../admin-views/events-options.php:154
347
  #, php-format
348
- msgid "<strong>NOTE:</strong> You <em>cannot</em> use the same slug as above. The above should ideally be plural, and this singular.<br />Your single Event URL is like: <strong>%s</strong>"
349
- msgstr "<strong>УВАГА:</strong> <em>Не можна</em> використовувати таке саме слово, як і вище. В ідеалі перше слово повинно бути у множині, а це слово - в однині.<br /> URL сторінки єдиничної події повинен виглядати так: <strong>%s</strong>"
 
 
 
 
 
 
350
 
351
- #: ../admin-views/events-options.php:159
352
- #: ../admin-views/events-options.php:161
353
  msgid "Debug"
354
- msgstr "Відлагодження"
355
 
356
  #: ../admin-views/events-options.php:162
357
  msgid "Debug Events display issues."
358
- msgstr "Налагодження проблем відображення подій"
359
 
360
  #: ../admin-views/events-options.php:163
361
  #, php-format
362
- msgid "Enable this option to log debug information. By default this will log to your server PHP error log. If you'd like to see the log messages in your browser, then we recommend that you install the <a href=\"%s\" target=\"_blank\">Debug Bar Plugin</a> and look for the \"Tribe\" tab in the debug output."
363
- msgstr "Включити опцію запису інформації про відлагодження. За замовчуванням буде записаний PHP error log сервера. Якщо ви бажаєте побачити записи повідомлень у браузері, то рекомендовано встановити <a href=\"%s\" target=\"_blank\">Debug Bar Plugin</a> і знайти вкладку \"Tribe\" на виводити інформацію для відлагодження."
 
 
 
 
 
 
 
 
 
364
 
365
  #: ../admin-views/events-options.php:168
366
  msgid "Theme Settings"
367
  msgstr "Налаштування теми"
368
 
369
- #: ../admin-views/events-options.php:171
370
- #: ../admin-views/events-options.php:173
371
  msgid "Events Template"
372
  msgstr "Шаблон Календаря"
373
 
@@ -381,38 +396,44 @@ msgstr "Стандартний шаблон сторінки"
381
 
382
  #: ../admin-views/events-options.php:179
383
  msgid "Choose a page template to control the look and feel of your calendar."
384
- msgstr "Виберіть шаблон сторінки для зовнішнього вигляду вашого календаря."
385
 
386
- #: ../admin-views/events-options.php:183
387
- #: ../admin-views/events-options.php:185
388
  #: ../admin-views/events-options.php:193
389
  msgid "Add HTML before calendar"
390
- msgstr "Додати HTML до календаря"
391
 
392
  #: ../admin-views/events-options.php:187
393
- msgid "Some themes may require that you add extra divs before the calendar list to help with styling."
394
- msgstr "Для деяких тем, необхідно використовувати додаткові divs до календаря для поліпшення форматування."
 
 
 
 
395
 
396
  #: ../admin-views/events-options.php:187
397
  msgid "This is displayed directly after the header."
398
- msgstr "Ця інформація відображається безпосередньо після header."
399
 
400
- #: ../admin-views/events-options.php:187
401
- #: ../admin-views/events-options.php:195
402
  msgid "You may use (x)HTML."
403
- msgstr "Можливо використовувати (x) HTML."
404
 
405
  #: ../admin-views/events-options.php:191
406
  msgid "Add HTML after calendar"
407
- msgstr "Додати HTML після календаря"
408
 
409
  #: ../admin-views/events-options.php:195
410
- msgid "Some themes may require that you add extra divs after the calendar list to help with styling."
411
- msgstr "Для деяких тем, необхідно використовувати додаткові divs після календаря для поліпшення форматування."
 
 
 
 
412
 
413
  #: ../admin-views/events-options.php:195
414
  msgid "This is displayed directly above the footer."
415
- msgstr "Ця інформація відображається безпосередньо над footer."
416
 
417
  #: ../admin-views/events-options.php:204
418
  msgid "Save Changes"
@@ -420,7 +441,7 @@ msgstr "Зберегти зміни"
420
 
421
  #: ../admin-views/widget-admin-list.php:11
422
  msgid "Title:"
423
- msgstr "Назва:"
424
 
425
  #: ../admin-views/widget-admin-list.php:16
426
  msgid "Show:"
@@ -428,11 +449,15 @@ msgstr "Показати:"
428
 
429
  #: ../admin-views/widget-admin-list.php:24
430
  msgid "Show widget only if there are upcoming events:"
431
- msgstr "Показати widget, тільки якщо є майбутні події:"
432
 
433
  #: ../admin-views/widget-admin-list.php:30
434
- msgid "If you wish to customize the widget display yourself, see the file views/events-list-load-widget-display.php inside the Events Premium plugin."
435
- msgstr "Якщо ви хочете, щоб налаштувати вигляд widget самостійно, дивись файл views/events-list-load-widget-display.php всередині the Events Premium plugin."
 
 
 
 
436
 
437
  #: ../admin-views/organizer-meta-box.php:11
438
  msgid "Organizer Name:"
@@ -445,15 +470,15 @@ msgstr "Вебсайт:"
445
  #: ../lib/tribe-admin-events-list.class.php:159
446
  #: ../lib/the-events-calendar.class.php:526
447
  msgid "Event Categories"
448
- msgstr "Категорії подій"
449
 
450
  #: ../lib/tribe-admin-events-list.class.php:164
451
  msgid "Start Date"
452
- msgstr "Дата початку"
453
 
454
  #: ../lib/tribe-admin-events-list.class.php:165
455
  msgid "End Date"
456
- msgstr "Дата закінчення"
457
 
458
  #: ../lib/tribe-admin-events-list.class.php:166
459
  msgid "Recurring?"
@@ -461,7 +486,7 @@ msgstr "Періодичне?"
461
 
462
  #: ../lib/tribe-admin-events-list.class.php:194
463
  msgid "Yes"
464
- msgstr "Да"
465
 
466
  #: ../lib/tribe-admin-events-list.class.php:194
467
  msgid "No"
@@ -470,15 +495,14 @@ msgstr "Ні"
470
  #: ../lib/tribe-admin-events-list.class.php:244
471
  #, php-format
472
  msgid "All %s"
473
- msgstr "Всі %s"
474
 
475
  #: ../lib/tribe-view-helpers.class.php:16
476
  #: ../lib/tribe-view-helpers.class.php:33
477
  msgid "Select a Country:"
478
- msgstr "Виберіть країну:"
479
 
480
- #: ../lib/tribe-view-helpers.class.php:34
481
- #: ../lib/template-tags.php:502
482
  msgid "United States"
483
  msgstr ""
484
 
@@ -1377,7 +1401,7 @@ msgstr ""
1377
 
1378
  #: ../lib/tribe-view-helpers.class.php:258
1379
  msgid "Ukraine"
1380
- msgstr "Україна"
1381
 
1382
  #: ../lib/tribe-view-helpers.class.php:259
1383
  msgid "United Arab Emirates"
@@ -1658,30 +1682,38 @@ msgstr "місяць"
1658
 
1659
  #: ../lib/the-events-calendar.class.php:219
1660
  msgid "upcoming"
1661
- msgstr "майбутнє"
1662
 
1663
  #: ../lib/the-events-calendar.class.php:220
1664
  msgid "past"
1665
- msgstr "минуле"
1666
 
1667
  #: ../lib/the-events-calendar.class.php:222
1668
  msgid "venue"
1669
- msgstr "місце зустрічі"
1670
 
1671
  #: ../lib/the-events-calendar.class.php:232
1672
  #, php-format
1673
  msgid "Initializing Tribe Events on %s"
1674
- msgstr "Ініціалізація Tribe Подій на %s"
1675
 
1676
  #: ../lib/the-events-calendar.class.php:280
1677
  #, php-format
1678
- msgid "Sorry, The Events Calendar requires WordPress %s or higher. Please upgrade your WordPress install."
1679
- msgstr "На жаль, The Events Calendar вимагає WordPress %s або новіше. Будь ласка, поновіть WordPress."
 
 
 
 
1680
 
1681
  #: ../lib/the-events-calendar.class.php:283
1682
  #, php-format
1683
- msgid "Sorry, The Events Calendar requires PHP %s or higher. Talk to your Web host about moving you to a newer version of PHP."
1684
- msgstr "На жаль, The Events Calendar вимагає PHP %s або новіше. Будь ласка, поговоріть з вашим веб-хостером про переїзд на нову версію PHP."
 
 
 
 
1685
 
1686
  #: ../lib/the-events-calendar.class.php:400
1687
  msgid "Upcoming Events"
@@ -1689,7 +1721,7 @@ msgstr "Майбутні події"
1689
 
1690
  #: ../lib/the-events-calendar.class.php:402
1691
  msgid "Past Events"
1692
- msgstr "Минулі події"
1693
 
1694
  #: ../lib/the-events-calendar.class.php:406
1695
  #, php-format
@@ -1702,7 +1734,7 @@ msgstr "Події цього місяця"
1702
 
1703
  #: ../lib/the-events-calendar.class.php:422
1704
  msgid "No description has been entered for this event."
1705
- msgstr "Немає опису для цієї події."
1706
 
1707
  #: ../lib/the-events-calendar.class.php:487
1708
  msgid "Events"
@@ -1716,7 +1748,7 @@ msgstr "Подія"
1716
  #: ../lib/the-events-calendar.class.php:502
1717
  #: ../lib/the-events-calendar.class.php:515
1718
  msgid "Add New"
1719
- msgstr "Додати"
1720
 
1721
  #: ../lib/the-events-calendar.class.php:490
1722
  msgid "Add New Event"
@@ -1732,7 +1764,7 @@ msgstr "Нова подія"
1732
 
1733
  #: ../lib/the-events-calendar.class.php:493
1734
  msgid "View Event"
1735
- msgstr "Перегляд подій"
1736
 
1737
  #: ../lib/the-events-calendar.class.php:494
1738
  msgid "Search Events"
@@ -1740,11 +1772,11 @@ msgstr "Пошук подій"
1740
 
1741
  #: ../lib/the-events-calendar.class.php:495
1742
  msgid "No events found"
1743
- msgstr "Події не знайдені"
1744
 
1745
  #: ../lib/the-events-calendar.class.php:496
1746
  msgid "No events found in Trash"
1747
- msgstr "Події в корзині не знайдені"
1748
 
1749
  #: ../lib/the-events-calendar.class.php:500
1750
  msgid "Venues"
@@ -1756,32 +1788,32 @@ msgstr "Місце проведення"
1756
 
1757
  #: ../lib/the-events-calendar.class.php:503
1758
  msgid "Add New Venue"
1759
- msgstr "Додати місце проведення"
1760
 
1761
  #: ../lib/the-events-calendar.class.php:504
1762
  msgid "Edit Venue"
1763
- msgstr "Змінити місце проведення"
1764
 
1765
  #: ../lib/the-events-calendar.class.php:505
1766
  msgid "New Venue"
1767
- msgstr "Нове місце проведення"
1768
 
1769
  #: ../lib/the-events-calendar.class.php:506
1770
  #: ../lib/the-events-calendar.class.php:519
1771
  msgid "View Venue"
1772
- msgstr "Подивитися місце проведення"
1773
 
1774
  #: ../lib/the-events-calendar.class.php:507
1775
  msgid "Search Venues"
1776
- msgstr "Пошук місць проведення"
1777
 
1778
  #: ../lib/the-events-calendar.class.php:508
1779
  msgid "No venue found"
1780
- msgstr "Місць проведення не знайдено"
1781
 
1782
  #: ../lib/the-events-calendar.class.php:509
1783
  msgid "No venues found in Trash"
1784
- msgstr "Місць проведення в корзині не знайдено"
1785
 
1786
  #: ../lib/the-events-calendar.class.php:513
1787
  msgid "Organizers"
@@ -1793,7 +1825,7 @@ msgstr "Організатор"
1793
 
1794
  #: ../lib/the-events-calendar.class.php:516
1795
  msgid "Add New Organizer"
1796
- msgstr "Додати організатора"
1797
 
1798
  #: ../lib/the-events-calendar.class.php:517
1799
  msgid "Edit Organizer"
@@ -1805,96 +1837,101 @@ msgstr "Новий організатор"
1805
 
1806
  #: ../lib/the-events-calendar.class.php:520
1807
  msgid "Search Organizers"
1808
- msgstr "Шукати організаторів"
1809
 
1810
  #: ../lib/the-events-calendar.class.php:521
1811
  msgid "No organizer found"
1812
- msgstr "Організаторів не знайдено"
1813
 
1814
  #: ../lib/the-events-calendar.class.php:522
1815
  msgid "No organizers found in Trash"
1816
- msgstr "Організаторів у корзині не знайдено"
1817
 
1818
  #: ../lib/the-events-calendar.class.php:527
1819
  msgid "Event Category"
1820
- msgstr "Категорія події"
1821
 
1822
  #: ../lib/the-events-calendar.class.php:528
1823
  msgid "Search Event Categories"
1824
- msgstr "Пошук подій за категоріями"
1825
 
1826
  #: ../lib/the-events-calendar.class.php:529
1827
  msgid "All Event Categories"
1828
- msgstr "Всі категорії подій"
1829
 
1830
  #: ../lib/the-events-calendar.class.php:530
1831
  msgid "Parent Event Category"
1832
- msgstr "Основна категорія подій"
1833
 
1834
  #: ../lib/the-events-calendar.class.php:531
1835
  msgid "Parent Event Category:"
1836
- msgstr "Батьківська категорія подій:"
1837
 
1838
  #: ../lib/the-events-calendar.class.php:532
1839
  msgid "Edit Event Category"
1840
- msgstr "Редагувати категорію подій"
1841
 
1842
  #: ../lib/the-events-calendar.class.php:533
1843
  msgid "Update Event Category"
1844
- msgstr "Оновити категорію подій"
1845
 
1846
  #: ../lib/the-events-calendar.class.php:534
1847
  msgid "Add New Event Category"
1848
- msgstr "Додати нову категорію подій"
1849
 
1850
  #: ../lib/the-events-calendar.class.php:535
1851
  msgid "New Event Category Name"
1852
- msgstr "Нова категорія події"
1853
 
1854
  #: ../lib/the-events-calendar.class.php:545
1855
  #, php-format
1856
  msgid "Event updated. <a href=\"%s\">View event</a>"
1857
- msgstr "Подія оновлено.<a href=\"%s\">Показати подія</a>"
1858
 
1859
  #: ../lib/the-events-calendar.class.php:546
1860
  #: ../lib/the-events-calendar.class.php:563
1861
  #: ../lib/the-events-calendar.class.php:580
1862
  msgid "Custom field updated."
1863
- msgstr "Користувальницьке поле оновлено"
1864
 
1865
  #: ../lib/the-events-calendar.class.php:547
1866
  #: ../lib/the-events-calendar.class.php:564
1867
  #: ../lib/the-events-calendar.class.php:581
1868
  msgid "Custom field deleted."
1869
- msgstr "Користувальницьке поле видалене"
1870
 
1871
  #: ../lib/the-events-calendar.class.php:548
1872
  msgid "Event updated."
1873
- msgstr "Подія оновлена."
1874
 
1875
  #: ../lib/the-events-calendar.class.php:550
1876
  #, php-format
1877
  msgid "Event restored to revision from %s"
1878
- msgstr "Подія відновлено для ревізії з %s"
1879
 
1880
  #: ../lib/the-events-calendar.class.php:551
1881
  #, php-format
1882
  msgid "Event published. <a href=\"%s\">View event</a>"
1883
- msgstr "Подія опубліковано. <a href=\"%s\">Перегляд події</a>"
1884
 
1885
  #: ../lib/the-events-calendar.class.php:552
1886
  msgid "Event saved."
1887
- msgstr "Подія збережено"
1888
 
1889
  #: ../lib/the-events-calendar.class.php:553
1890
  #, php-format
1891
  msgid "Event submitted. <a target=\"_blank\" href=\"%s\">Preview event</a>"
1892
- msgstr "Подія відправленна. <a target=\"_blank\" href=\"%s\">Перегляду події</a>"
 
1893
 
1894
  #: ../lib/the-events-calendar.class.php:554
1895
  #, php-format
1896
- msgid "Event scheduled for: <strong>%1$s</strong>. <a target=\"_blank\" href=\"%2$s\">Preview event</a>"
1897
- msgstr "Подія поставленна у розклад:<strong>%1$s</strong>. <a target=\"_blank\" href=\"%2$s\">Перегляду події</a>"
 
 
 
 
1898
 
1899
  #: ../lib/the-events-calendar.class.php:556
1900
  #: ../lib/the-events-calendar.class.php:573
@@ -1905,91 +1942,110 @@ msgstr ""
1905
  #: ../lib/the-events-calendar.class.php:557
1906
  #, php-format
1907
  msgid "Event draft updated. <a target=\"_blank\" href=\"%s\">Preview event</a>"
1908
- msgstr "Чернетка події оновленна.<a target=\"_blank\" href=\"%s\">Перегляду події</a>"
 
 
1909
 
1910
  #: ../lib/the-events-calendar.class.php:562
1911
  #, php-format
1912
  msgid "Venue updated. <a href=\"%s\">View venue</a>"
1913
- msgstr "Місце проведення оновленно.<a href=\"%s\">Перегляд місця проведення</a>"
1914
 
1915
  #: ../lib/the-events-calendar.class.php:565
1916
  msgid "Venue updated."
1917
- msgstr "Місце проведення оновленно."
1918
 
1919
  #: ../lib/the-events-calendar.class.php:567
1920
  #, php-format
1921
  msgid "Venue restored to revision from %s"
1922
- msgstr "Місце проведення відновлено для ревізії від %s"
1923
 
1924
  #: ../lib/the-events-calendar.class.php:568
1925
  #, php-format
1926
  msgid "Venue published. <a href=\"%s\">View venue</a>"
1927
- msgstr "Место опубликовано. <a href=\"%s\">Перегляд місця проведення</a>"
1928
 
1929
  #: ../lib/the-events-calendar.class.php:569
1930
  msgid "Venue saved."
1931
- msgstr "Місце проведення збереженно."
1932
 
1933
  #: ../lib/the-events-calendar.class.php:570
1934
  #, php-format
1935
  msgid "Venue submitted. <a target=\"_blank\" href=\"%s\">Preview venue</a>"
1936
- msgstr "Місця проведення відправленно.<a target=\"_blank\" href=\"%s\">Перегляд місця проведення</a>"
1937
 
1938
  #: ../lib/the-events-calendar.class.php:571
1939
  #, php-format
1940
- msgid "Venue scheduled for: <strong>%1$s</strong>. <a target=\"_blank\" href=\"%2$s\">Preview venue</a>"
1941
- msgstr "Місце проведення поставлено у розклад для:<strong>%1$s</strong>. <a target=\"_blank\" href=\"%2$s\">Перегляд місця проведення</a>"
 
 
 
 
1942
 
1943
  #: ../lib/the-events-calendar.class.php:574
1944
  #, php-format
1945
  msgid "Venue draft updated. <a target=\"_blank\" href=\"%s\">Preview venue</a>"
1946
- msgstr "Чернетка місця проведення оновленна.<a target=\"_blank\" href=\"%s\">Перегляд місця проведення</a>"
 
 
1947
 
1948
  #: ../lib/the-events-calendar.class.php:579
1949
  #, php-format
1950
  msgid "Organizer updated. <a href=\"%s\">View organizer</a>"
1951
- msgstr "Організатор оновлен. <a href=\"%s\">Перегляд організатора</a>"
1952
 
1953
  #: ../lib/the-events-calendar.class.php:582
1954
  msgid "Organizer updated."
1955
- msgstr "Організатор оновлен."
1956
 
1957
  #: ../lib/the-events-calendar.class.php:584
1958
  #, php-format
1959
  msgid "Organizer restored to revision from %s"
1960
- msgstr "Організатор відновлений для ревізії від %s"
1961
 
1962
  #: ../lib/the-events-calendar.class.php:585
1963
  #, php-format
1964
  msgid "Organizer published. <a href=\"%s\">View organizer</a>"
1965
- msgstr "Організатор опублікований. <a href=\"%s\">Перегляд організатора</a>"
1966
 
1967
  #: ../lib/the-events-calendar.class.php:586
1968
  msgid "Organizer saved."
1969
- msgstr "Організатор збережений."
1970
 
1971
  #: ../lib/the-events-calendar.class.php:587
1972
  #, php-format
1973
- msgid "Organizer submitted. <a target=\"_blank\" href=\"%s\">Preview organizer</a>"
1974
- msgstr "Організатор відправлений. <a target=\"_blank\" href=\"%s\">Перегляд організатора</a>"
 
 
 
1975
 
1976
  #: ../lib/the-events-calendar.class.php:588
1977
  #, php-format
1978
- msgid "Organizer scheduled for: <strong>%1$s</strong>. <a target=\"_blank\" href=\"%2$s\">Preview organizer</a>"
1979
- msgstr "Організатор поставлений у розклад для: <strong>%1$s</strong>. <a target=\"_blank\" href=\"%2$s\">Перегляд організатора</a>"
 
 
 
 
1980
 
1981
  #: ../lib/the-events-calendar.class.php:591
1982
  #, php-format
1983
- msgid "Organizer draft updated. <a target=\"_blank\" href=\"%s\">Preview organizer</a>"
1984
- msgstr "Чернетка організатора оновлена. <a target=\"_blank\" href=\"%s\">Перегляд організатора</a>"
 
 
 
 
1985
 
1986
  #: ../lib/the-events-calendar.class.php:646
1987
  msgid "Next"
1988
- msgstr "Далі"
1989
 
1990
  #: ../lib/the-events-calendar.class.php:647
1991
  msgid "Prev"
1992
- msgstr "Назад"
1993
 
1994
  #: ../lib/the-events-calendar.class.php:648
1995
  msgid "Today"
@@ -2001,11 +2057,11 @@ msgstr "Готово"
2001
 
2002
  #: ../lib/the-events-calendar.class.php:1734
2003
  msgid "Event Options"
2004
- msgstr "Параметри події"
2005
 
2006
  #: ../lib/the-events-calendar.class.php:1736
2007
  msgid "Venue Information"
2008
- msgstr "Інформація про Місці проведення"
2009
 
2010
  #: ../lib/the-events-calendar.class.php:1737
2011
  msgid "Organizer Information"
@@ -2013,7 +2069,7 @@ msgstr "Інформація про Організатора"
2013
 
2014
  #: ../lib/the-events-calendar.class.php:1839
2015
  msgid "View All Add-Ons"
2016
- msgstr "Переглянути всі розширення"
2017
 
2018
  #: ../lib/the-events-calendar.class.php:1846
2019
  msgid "News from Tribe Pro"
@@ -2025,15 +2081,21 @@ msgstr ""
2025
 
2026
  #: ../lib/tribe-the-events-calendar-import.class.php:45
2027
  msgid "Upgrade from The Events Calendar"
2028
- msgstr "Оновлення The Events Calendar"
2029
 
2030
  #: ../lib/tribe-the-events-calendar-import.class.php:46
2031
- msgid "It appears that you have some old events calendar data that needs to be upgraded. Please be sure to back up your database before initiating the upgrade. This process can not be undone."
2032
- msgstr "Ймовірно, що деякі старі події в календарі повинні бути оновлені. Будь ласка зробіть бекап бази даних перш, ніж почати апгрейд. Цей процес буде неможливо скасувати."
 
 
 
 
 
 
2033
 
2034
  #: ../lib/tribe-the-events-calendar-import.class.php:47
2035
  msgid "Migrate Data!"
2036
- msgstr "Міграція даних!"
2037
 
2038
  #: ../lib/tribe-the-events-calendar-import.class.php:119
2039
  #, php-format
@@ -2042,7 +2104,7 @@ msgstr "Ви успішно перенесли (%d) записів."
2042
 
2043
  #: ../lib/tribe-the-events-calendar-import.class.php:189
2044
  msgid "Install has 1 or more legacy event!"
2045
- msgstr "Установка має один або більше застарілих події!"
2046
 
2047
  #: ../lib/template-tags.php:607
2048
  msgid "Free"
@@ -2058,13 +2120,12 @@ msgstr "Категорія:"
2058
 
2059
  #: ../lib/widget-list.class.php:16
2060
  msgid "A widget that displays the next upcoming x events."
2061
- msgstr "Widget показує х наступних подій."
2062
 
2063
  #: ../lib/widget-list.class.php:70
2064
  msgid "View All Events"
2065
- msgstr "Перегляд всіх подій"
2066
 
2067
  #: ../lib/widget-list.class.php:73
2068
  msgid "There are no upcoming events at this time."
2069
- msgstr "На цей час немає майбутніх подій."
2070
-
6
  "Project-Id-Version: The Events Calendar 2.0\n"
7
  "Report-Msgid-Bugs-To: \n"
8
  "POT-Creation-Date: 2011-09-19 16:36-0500\n"
9
+ "PO-Revision-Date: 2012-10-15 11:52+0200\n"
10
+ "Last-Translator: Alexey <alexey@creative.kiev.ua>\n"
11
+ "Language-Team: decollete <olexiy.fedorov@gmail.com>\n"
12
+ "Language: uk_UA\n"
13
  "MIME-Version: 1.0\n"
14
  "Content-Type: text/plain; charset=UTF-8\n"
15
  "Content-Transfer-Encoding: 8bit\n"
16
+ "X-Poedit-SourceCharset: UTF-8\n"
17
  "X-Poedit-KeywordsList: __;_e\n"
18
  "X-Poedit-Basepath: ./\n"
19
+ "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
20
+ "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
21
+ "X-Generator: Poedit 1.5.3\n"
22
  "X-Poedit-SearchPath-0: ..\n"
23
 
24
+ #: ../views/list.php:16 ../views/gridview.php:37
 
25
  msgid "Event List"
26
+ msgstr "Список"
27
 
28
+ #: ../views/list.php:17 ../views/gridview.php:38
 
29
  msgid "Calendar"
30
  msgstr "Календар"
31
 
32
+ #: ../views/list.php:42 ../views/single.php:17
 
33
  msgid "Start:"
34
  msgstr "Початок:"
35
 
36
+ #: ../views/list.php:46 ../views/single.php:20
 
37
  msgid "End:"
38
+ msgstr "Закінчення:"
39
 
40
+ #: ../views/list.php:54 ../views/single.php:47
 
41
  msgid "Venue:"
42
  msgstr "Місце:"
43
 
44
+ #: ../views/list.php:63 ../views/single.php:33 ../views/single.php:51
 
 
45
  #: ../admin-views/venue-meta-box.php:73
46
  msgid "Phone:"
47
  msgstr "Телефон:"
48
 
49
+ #: ../views/list.php:69 ../views/single.php:56
 
50
  #: ../admin-views/venue-meta-box.php:19
51
  msgid "Address:"
52
  msgstr "Адреса:"
53
 
54
+ #: ../views/list.php:71 ../views/single.php:58
 
55
  msgid "Google Map"
56
  msgstr "Мапа Google"
57
 
58
+ #: ../views/list.php:81 ../views/single.php:24
 
59
  #: ../admin-views/events-meta-box.php:113
60
  msgid "Cost:"
61
  msgstr "Вартість:"
62
 
63
  #: ../views/list.php:95
64
  #, php-format
65
+ msgid ""
66
+ " listed under %s. Check out past events for this category or view the full "
67
+ "calendar."
68
+ msgstr ""
69
+ "Представлений в %s. Відмітити попередні події в цій категорії або дивитись "
70
+ "весь календар."
71
 
72
  #: ../views/list.php:97
73
  #, php-format
74
+ msgid ""
75
+ " listed under %s. Check out upcoming events for this category or view the "
76
+ "full calendar."
77
+ msgstr ""
78
+ "Представлений в %s. Відмітити наступні події в цій категорії або дивитись "
79
+ "весь календар."
80
 
81
  #: ../views/list.php:103
82
  msgid "No upcoming events"
86
  msgid "No previous events"
87
  msgstr "Минулих подій немає"
88
 
89
+ #: ../views/list.php:120 ../views/list.php:122 ../views/list.php:124
 
 
90
  msgid "&laquo; Previous Events"
91
+ msgstr "&laquo; Попередні події"
92
 
93
+ #: ../views/list.php:131 ../views/list.php:133 ../views/list.php:135
 
 
94
  msgid "Next Events &raquo;"
95
+ msgstr "Наступні події &raquo;"
96
 
97
+ #: ../views/list.php:140 ../views/gridview.php:43 ../views/single.php:83
 
 
98
  msgid "iCal Import"
99
+ msgstr "iCal імпорт"
100
 
101
  #: ../views/table-mini.php:24
102
  msgid "View all &raquo;"
103
+ msgstr "Подивитись все &raquo;"
104
 
105
  #: ../views/single.php:13
106
  msgid "&laquo; Back to Events"
107
+ msgstr " &laquo; Повернутися до подій"
108
 
109
  #: ../views/single.php:14
110
  msgid "This event has passed."
111
+ msgstr "Ця подія вже пройшла"
112
 
113
  #: ../views/single.php:29
114
  msgid "Organizer:"
124
 
125
  #: ../views/single.php:58
126
  msgid "Click to view a Google Map"
127
+ msgstr "Мапа Google"
128
 
129
  #: ../views/single.php:86
130
  msgid "Add to Google Calendar"
131
+ msgstr "Додати до Google Календаря"
132
 
133
  #: ../views/single.php:86
134
  msgid "+ Google Calendar"
136
 
137
  #: ../views/events-list-load-widget-display.php:48
138
  msgid "All Day"
139
+ msgstr "Весь день"
140
 
141
  #: ../views/events-list-load-widget-display.php:51
142
  msgid "Ends"
148
 
149
  #: ../admin-views/events-meta-box.php:26
150
  msgid "Event Time &amp; Date"
151
+ msgstr "Дата та час події"
152
 
153
  #: ../admin-views/events-meta-box.php:29
154
+ msgid ""
155
+ "You have changed the recurrence rules of this event. Saving the event will "
156
+ "update all future events. If you did not mean to change all events, then "
157
+ "please refresh the page."
158
+ msgstr "Ви змінили правило повторювання для цієї події. "
159
 
160
  #: ../admin-views/events-meta-box.php:32
161
  msgid "All day event?"
162
+ msgstr "Повний день?"
163
 
164
  #: ../admin-views/events-meta-box.php:36
165
  msgid "Start Date / Time:"
166
  msgstr "Дата / Час початку:"
167
 
168
+ #: ../admin-views/events-meta-box.php:39 ../admin-views/events-meta-box.php:60
 
169
  msgid "YYYY-MM-DD"
170
  msgstr "РРРР-ММ-ДД"
171
 
172
+ #: ../admin-views/events-meta-box.php:41 ../admin-views/events-meta-box.php:62
 
173
  msgid "@"
174
  msgstr "@"
175
 
176
  #: ../admin-views/events-meta-box.php:57
177
  msgid "End Date / Time:"
178
+ msgstr "Дата/ Час завершення:"
179
 
180
  #: ../admin-views/events-meta-box.php:79
181
  msgid "Event Location Details"
183
 
184
  #: ../admin-views/events-meta-box.php:85
185
  msgid "Show Google Maps Link:"
186
+ msgstr "Показати лінк на мапу Google:"
187
 
188
  #: ../admin-views/events-meta-box.php:92
189
  msgid "Show Google Map:"
190
+ msgstr "Показати мапу Google:"
191
 
192
  #: ../admin-views/events-meta-box.php:101
193
  msgid "Event Organizer Details"
194
+ msgstr "Подробиці про організатора події"
195
 
196
  #: ../admin-views/events-meta-box.php:110
197
  msgid "Event Cost"
198
+ msgstr "Вартість"
199
 
200
  #: ../admin-views/events-meta-box.php:118
201
  msgid "Leave blank to hide the field. Enter a 0 for events that are free."
202
+ msgstr ""
203
+ "Не заповнюйте це поле, щоб його не показувати. Напишіть 0, якщо безкоштовно."
204
 
205
  #: ../admin-views/events-meta-box.php:124
206
  msgid "Additional Functionality"
207
+ msgstr "Додаткові налаштування"
208
 
209
  #: ../admin-views/events-meta-box.php:129
210
+ msgid ""
211
+ "Looking for additional functionality including recurring events, custom "
212
+ "meta, community events, ticket sales and more?"
213
+ msgstr ""
214
+ "Необхідні додаткові можливості, включаючі повторні події, мета, громадські "
215
+ "події, продаж білетів і т.і.?"
216
 
217
  #: ../admin-views/events-meta-box.php:129
218
  #, php-format
219
  msgid "Check out the <a href=\"%s\">available Add-Ons</a>."
220
+ msgstr "Подивіться на <a href=\"%s\">Додаткові можливості</a>."
221
 
222
  #: ../admin-views/venue-meta-box.php:12
223
  msgid "Venue Name:"
224
+ msgstr "Місце Події:"
225
 
226
  #: ../admin-views/venue-meta-box.php:23
227
  msgid "City:"
233
 
234
  #: ../admin-views/venue-meta-box.php:52
235
  msgid "State or Province:"
236
+ msgstr "Область:"
237
 
238
  #: ../admin-views/venue-meta-box.php:55
239
  msgid "Select a State:"
240
+ msgstr "Штат:"
241
 
242
  #: ../admin-views/venue-meta-box.php:69
243
  msgid "Postal Code:"
245
 
246
  #: ../admin-views/recurrence-dialog.php:11
247
  msgid "Which events do you wish to update?"
248
+ msgstr "Яку подію ви хочете оновити?"
249
 
250
  #: ../admin-views/recurrence-dialog.php:14
251
  msgid "Select your desired action"
252
+ msgstr "Обрати дію"
253
 
254
  #: ../admin-views/event-sidebar-options.php:11
255
  msgid "Hide From Upcoming Events List"
256
+ msgstr "Сховати у списку наступних подій"
257
 
258
  #: ../admin-views/events-options.php:47
259
  #, php-format
266
 
267
  #: ../admin-views/events-options.php:54
268
  #, php-format
269
+ msgid ""
270
+ "If you're stuck on these options, please <a href=\"%s\">check out the "
271
+ "documentation</a>. Or, go to the <a href=\"%s\">support forum</a>."
272
+ msgstr ""
273
+ "Якщо не знаєте, шо робити, будь ласка <a href=\"%s\">дивіться документацію</"
274
+ "a>. Або читайте <a href=\"%s\">Форум підтримки</a>."
275
 
276
  #: ../admin-views/events-options.php:56
277
  msgid "Here is the iCal feed URL for your events: "
278
+ msgstr "iCal feed URL для ваших подій:"
279
 
280
  #: ../admin-views/events-options.php:62
281
  msgid "Settings"
282
  msgstr "Налаштування"
283
 
284
+ #: ../admin-views/events-options.php:65 ../admin-views/events-options.php:69
 
285
  msgid "Default View for the Events"
286
+ msgstr "Вигляд за замовчуванням"
287
 
288
+ #: ../admin-views/events-options.php:83 ../admin-views/events-options.php:87
 
289
  #: ../admin-views/events-options.php:89
290
  msgid "Show Comments"
291
  msgstr "Показати коментарі"
292
 
293
+ #: ../admin-views/events-options.php:97 ../admin-views/events-options.php:101
 
294
  msgid "Multiday Event Cutoff"
295
+ msgstr "Завершення багатоденної події"
296
 
297
  #: ../admin-views/events-options.php:115
298
+ msgid ""
299
+ "For multi-day events, hide the last day from grid view if it ends on or "
300
+ "before this time."
301
+ msgstr ""
302
+ "У випалку багатоденних подій не показувати останній день з календарного виду "
303
+ "подій, якщо вона закінчується до цього часу включно."
304
 
305
+ #: ../admin-views/events-options.php:120 ../admin-views/events-options.php:124
 
306
  msgid "Enable Google Maps"
307
+ msgstr "Показувати мапи Google"
308
 
309
  #: ../admin-views/events-options.php:130
310
  msgid "Height"
319
  msgstr "(значення або %)"
320
 
321
  #: ../admin-views/events-options.php:135
322
+ msgid ""
323
+ "If you don't have this turned on, your event listings won't have the backend "
324
+ "map preview or frontend embedded map."
325
+ msgstr "Якщо це не увімкнуто, то мапу не буде показано у вашому списку подій."
326
 
327
+ #: ../admin-views/events-options.php:143 ../admin-views/events-options.php:145
 
328
  msgid "Events URL slug"
329
  msgstr "URL сторінки подій"
330
 
331
  #: ../admin-views/events-options.php:146
332
  msgid "The slug used for building the Events URL."
333
+ msgstr "Поле використовується для побудови URL сторінки Календаря."
334
 
335
  #: ../admin-views/events-options.php:146
336
  #, php-format
337
  msgid "Your current Events URL is <strong>%s</strong>"
338
+ msgstr "Ваш поточний URL сторінки Календаря <strong>%s</strong>"
339
 
340
+ #: ../admin-views/events-options.php:150 ../admin-views/events-options.php:152
 
341
  msgid "Single Event URL slug"
342
+ msgstr "URL сторінки події"
343
 
344
  #: ../admin-views/events-options.php:153
345
  msgid "The slug used for building a single Event URL."
346
+ msgstr "Поле використовується для побудови URL сторінки події"
347
 
348
  #: ../admin-views/events-options.php:154
349
  #, php-format
350
+ msgid ""
351
+ "<strong>NOTE:</strong> You <em>cannot</em> use the same slug as above. The "
352
+ "above should ideally be plural, and this singular.<br />Your single Event "
353
+ "URL is like: <strong>%s</strong>"
354
+ msgstr ""
355
+ "<strong>УВАГА:</strong> <em>Неможна</em> використовувати таке ж слово, як і "
356
+ "вище зазначене. В першому випадку рекомендується множина, в цьому — однина."
357
+ "<br /> URL сторінки події має вигляд: <strong>%s</strong>"
358
 
359
+ #: ../admin-views/events-options.php:159 ../admin-views/events-options.php:161
 
360
  msgid "Debug"
361
+ msgstr "Відладка"
362
 
363
  #: ../admin-views/events-options.php:162
364
  msgid "Debug Events display issues."
365
+ msgstr "Відладка проблем відображення подій"
366
 
367
  #: ../admin-views/events-options.php:163
368
  #, php-format
369
+ msgid ""
370
+ "Enable this option to log debug information. By default this will log to "
371
+ "your server PHP error log. If you'd like to see the log messages in your "
372
+ "browser, then we recommend that you install the <a href=\"%s\" target="
373
+ "\"_blank\">Debug Bar Plugin</a> and look for the \"Tribe\" tab in the debug "
374
+ "output."
375
+ msgstr ""
376
+ "Підключити опцію для запису відладки. За замовчування буде записуватися PHP "
377
+ "error log сервера. Якщо ви бажаєте побачити всі записи повідомлень в "
378
+ "браузері, рекомендується встановити <a href=\"%s\" target=\"_blank\">Debug "
379
+ "Bar Plugin</a> і дивитись на \"Tribe\" вкладку."
380
 
381
  #: ../admin-views/events-options.php:168
382
  msgid "Theme Settings"
383
  msgstr "Налаштування теми"
384
 
385
+ #: ../admin-views/events-options.php:171 ../admin-views/events-options.php:173
 
386
  msgid "Events Template"
387
  msgstr "Шаблон Календаря"
388
 
396
 
397
  #: ../admin-views/events-options.php:179
398
  msgid "Choose a page template to control the look and feel of your calendar."
399
+ msgstr "Оберіть шаблон для вашого календаря."
400
 
401
+ #: ../admin-views/events-options.php:183 ../admin-views/events-options.php:185
 
402
  #: ../admin-views/events-options.php:193
403
  msgid "Add HTML before calendar"
404
+ msgstr "Додати HTML перед календарем"
405
 
406
  #: ../admin-views/events-options.php:187
407
+ msgid ""
408
+ "Some themes may require that you add extra divs before the calendar list to "
409
+ "help with styling."
410
+ msgstr ""
411
+ "Для деяких тем необхідно використовувати додаткові div-и до календаря для "
412
+ "покращенного форматування."
413
 
414
  #: ../admin-views/events-options.php:187
415
  msgid "This is displayed directly after the header."
416
+ msgstr "Це відображається одразу після заголовка."
417
 
418
+ #: ../admin-views/events-options.php:187 ../admin-views/events-options.php:195
 
419
  msgid "You may use (x)HTML."
420
+ msgstr "Можна використовувати (x)HTML."
421
 
422
  #: ../admin-views/events-options.php:191
423
  msgid "Add HTML after calendar"
424
+ msgstr "Додати HTML післе календаря"
425
 
426
  #: ../admin-views/events-options.php:195
427
+ msgid ""
428
+ "Some themes may require that you add extra divs after the calendar list to "
429
+ "help with styling."
430
+ msgstr ""
431
+ "Для деяких тем необхідно використовувати додаткові div-и після календаря для "
432
+ "покращеного форматування."
433
 
434
  #: ../admin-views/events-options.php:195
435
  msgid "This is displayed directly above the footer."
436
+ msgstr "Це відображається перед нижнім колонтитулом."
437
 
438
  #: ../admin-views/events-options.php:204
439
  msgid "Save Changes"
441
 
442
  #: ../admin-views/widget-admin-list.php:11
443
  msgid "Title:"
444
+ msgstr "Заголовок:"
445
 
446
  #: ../admin-views/widget-admin-list.php:16
447
  msgid "Show:"
449
 
450
  #: ../admin-views/widget-admin-list.php:24
451
  msgid "Show widget only if there are upcoming events:"
452
+ msgstr "Показувати віджет, тільки якщо є майбутні події:"
453
 
454
  #: ../admin-views/widget-admin-list.php:30
455
+ msgid ""
456
+ "If you wish to customize the widget display yourself, see the file views/"
457
+ "events-list-load-widget-display.php inside the Events Premium plugin."
458
+ msgstr ""
459
+ "Якщо ви бажаєте змінити вигляд віджету, дивіться файл views/events-list-load-"
460
+ "widget-display.php у Преміум-версії плагіна"
461
 
462
  #: ../admin-views/organizer-meta-box.php:11
463
  msgid "Organizer Name:"
470
  #: ../lib/tribe-admin-events-list.class.php:159
471
  #: ../lib/the-events-calendar.class.php:526
472
  msgid "Event Categories"
473
+ msgstr "Категорії Подій"
474
 
475
  #: ../lib/tribe-admin-events-list.class.php:164
476
  msgid "Start Date"
477
+ msgstr "Початок"
478
 
479
  #: ../lib/tribe-admin-events-list.class.php:165
480
  msgid "End Date"
481
+ msgstr "Закінчення"
482
 
483
  #: ../lib/tribe-admin-events-list.class.php:166
484
  msgid "Recurring?"
486
 
487
  #: ../lib/tribe-admin-events-list.class.php:194
488
  msgid "Yes"
489
+ msgstr "Так"
490
 
491
  #: ../lib/tribe-admin-events-list.class.php:194
492
  msgid "No"
495
  #: ../lib/tribe-admin-events-list.class.php:244
496
  #, php-format
497
  msgid "All %s"
498
+ msgstr "Все %s"
499
 
500
  #: ../lib/tribe-view-helpers.class.php:16
501
  #: ../lib/tribe-view-helpers.class.php:33
502
  msgid "Select a Country:"
503
+ msgstr "Вибір країни:"
504
 
505
+ #: ../lib/tribe-view-helpers.class.php:34 ../lib/template-tags.php:502
 
506
  msgid "United States"
507
  msgstr ""
508
 
1401
 
1402
  #: ../lib/tribe-view-helpers.class.php:258
1403
  msgid "Ukraine"
1404
+ msgstr ""
1405
 
1406
  #: ../lib/tribe-view-helpers.class.php:259
1407
  msgid "United Arab Emirates"
1682
 
1683
  #: ../lib/the-events-calendar.class.php:219
1684
  msgid "upcoming"
1685
+ msgstr "майбутні"
1686
 
1687
  #: ../lib/the-events-calendar.class.php:220
1688
  msgid "past"
1689
+ msgstr "попередні"
1690
 
1691
  #: ../lib/the-events-calendar.class.php:222
1692
  msgid "venue"
1693
+ msgstr "місце"
1694
 
1695
  #: ../lib/the-events-calendar.class.php:232
1696
  #, php-format
1697
  msgid "Initializing Tribe Events on %s"
1698
+ msgstr "Ініциалізація Tribe Подій на %s"
1699
 
1700
  #: ../lib/the-events-calendar.class.php:280
1701
  #, php-format
1702
+ msgid ""
1703
+ "Sorry, The Events Calendar requires WordPress %s or higher. Please upgrade "
1704
+ "your WordPress install."
1705
+ msgstr ""
1706
+ "Вибачте, Календар Подій потребує WordPress %s або новішого. Будь ласка "
1707
+ "оновіть WordPress."
1708
 
1709
  #: ../lib/the-events-calendar.class.php:283
1710
  #, php-format
1711
+ msgid ""
1712
+ "Sorry, The Events Calendar requires PHP %s or higher. Talk to your Web host "
1713
+ "about moving you to a newer version of PHP."
1714
+ msgstr ""
1715
+ "Вибачте, Календар Подій потребує PHP %s або новішого. Будь ласка зв'яжіться "
1716
+ "з вашим хостером для оновлення версії PHP."
1717
 
1718
  #: ../lib/the-events-calendar.class.php:400
1719
  msgid "Upcoming Events"
1721
 
1722
  #: ../lib/the-events-calendar.class.php:402
1723
  msgid "Past Events"
1724
+ msgstr "Попередні події"
1725
 
1726
  #: ../lib/the-events-calendar.class.php:406
1727
  #, php-format
1734
 
1735
  #: ../lib/the-events-calendar.class.php:422
1736
  msgid "No description has been entered for this event."
1737
+ msgstr "Для цієї події немає опису."
1738
 
1739
  #: ../lib/the-events-calendar.class.php:487
1740
  msgid "Events"
1748
  #: ../lib/the-events-calendar.class.php:502
1749
  #: ../lib/the-events-calendar.class.php:515
1750
  msgid "Add New"
1751
+ msgstr "Додати нову"
1752
 
1753
  #: ../lib/the-events-calendar.class.php:490
1754
  msgid "Add New Event"
1764
 
1765
  #: ../lib/the-events-calendar.class.php:493
1766
  msgid "View Event"
1767
+ msgstr "Перегляд події"
1768
 
1769
  #: ../lib/the-events-calendar.class.php:494
1770
  msgid "Search Events"
1772
 
1773
  #: ../lib/the-events-calendar.class.php:495
1774
  msgid "No events found"
1775
+ msgstr "Подій не знайдено"
1776
 
1777
  #: ../lib/the-events-calendar.class.php:496
1778
  msgid "No events found in Trash"
1779
+ msgstr "В мусорці подій не знайдено"
1780
 
1781
  #: ../lib/the-events-calendar.class.php:500
1782
  msgid "Venues"
1788
 
1789
  #: ../lib/the-events-calendar.class.php:503
1790
  msgid "Add New Venue"
1791
+ msgstr "Додати нове місце"
1792
 
1793
  #: ../lib/the-events-calendar.class.php:504
1794
  msgid "Edit Venue"
1795
+ msgstr "Редагувати місце"
1796
 
1797
  #: ../lib/the-events-calendar.class.php:505
1798
  msgid "New Venue"
1799
+ msgstr "Нове місце"
1800
 
1801
  #: ../lib/the-events-calendar.class.php:506
1802
  #: ../lib/the-events-calendar.class.php:519
1803
  msgid "View Venue"
1804
+ msgstr "Перегляд місця"
1805
 
1806
  #: ../lib/the-events-calendar.class.php:507
1807
  msgid "Search Venues"
1808
+ msgstr "Шукати місця"
1809
 
1810
  #: ../lib/the-events-calendar.class.php:508
1811
  msgid "No venue found"
1812
+ msgstr "Місць не знайдено"
1813
 
1814
  #: ../lib/the-events-calendar.class.php:509
1815
  msgid "No venues found in Trash"
1816
+ msgstr "У мусорці місць не знайдено"
1817
 
1818
  #: ../lib/the-events-calendar.class.php:513
1819
  msgid "Organizers"
1825
 
1826
  #: ../lib/the-events-calendar.class.php:516
1827
  msgid "Add New Organizer"
1828
+ msgstr "Додати нового організатора"
1829
 
1830
  #: ../lib/the-events-calendar.class.php:517
1831
  msgid "Edit Organizer"
1837
 
1838
  #: ../lib/the-events-calendar.class.php:520
1839
  msgid "Search Organizers"
1840
+ msgstr "Искать организаторов"
1841
 
1842
  #: ../lib/the-events-calendar.class.php:521
1843
  msgid "No organizer found"
1844
+ msgstr "Организаторов не найдено"
1845
 
1846
  #: ../lib/the-events-calendar.class.php:522
1847
  msgid "No organizers found in Trash"
1848
+ msgstr "Организаторов в корзине не найдено"
1849
 
1850
  #: ../lib/the-events-calendar.class.php:527
1851
  msgid "Event Category"
1852
+ msgstr "Категория события"
1853
 
1854
  #: ../lib/the-events-calendar.class.php:528
1855
  msgid "Search Event Categories"
1856
+ msgstr "Поиск событий по категориям"
1857
 
1858
  #: ../lib/the-events-calendar.class.php:529
1859
  msgid "All Event Categories"
1860
+ msgstr "Все категории событий"
1861
 
1862
  #: ../lib/the-events-calendar.class.php:530
1863
  msgid "Parent Event Category"
1864
+ msgstr "Основная категория"
1865
 
1866
  #: ../lib/the-events-calendar.class.php:531
1867
  msgid "Parent Event Category:"
1868
+ msgstr "Родительская категория событий:"
1869
 
1870
  #: ../lib/the-events-calendar.class.php:532
1871
  msgid "Edit Event Category"
1872
+ msgstr "Редактировать категорию"
1873
 
1874
  #: ../lib/the-events-calendar.class.php:533
1875
  msgid "Update Event Category"
1876
+ msgstr "Обновить категорию"
1877
 
1878
  #: ../lib/the-events-calendar.class.php:534
1879
  msgid "Add New Event Category"
1880
+ msgstr "Добавить новую категорию событий"
1881
 
1882
  #: ../lib/the-events-calendar.class.php:535
1883
  msgid "New Event Category Name"
1884
+ msgstr "Имя категории нового события"
1885
 
1886
  #: ../lib/the-events-calendar.class.php:545
1887
  #, php-format
1888
  msgid "Event updated. <a href=\"%s\">View event</a>"
1889
+ msgstr "Событие обновлено. <a href=\"%s\">Показать событие</a>"
1890
 
1891
  #: ../lib/the-events-calendar.class.php:546
1892
  #: ../lib/the-events-calendar.class.php:563
1893
  #: ../lib/the-events-calendar.class.php:580
1894
  msgid "Custom field updated."
1895
+ msgstr "Пользовательское поле обновлено "
1896
 
1897
  #: ../lib/the-events-calendar.class.php:547
1898
  #: ../lib/the-events-calendar.class.php:564
1899
  #: ../lib/the-events-calendar.class.php:581
1900
  msgid "Custom field deleted."
1901
+ msgstr "Пользовательское поле удалено"
1902
 
1903
  #: ../lib/the-events-calendar.class.php:548
1904
  msgid "Event updated."
1905
+ msgstr "Событие обновлено"
1906
 
1907
  #: ../lib/the-events-calendar.class.php:550
1908
  #, php-format
1909
  msgid "Event restored to revision from %s"
1910
+ msgstr "Событие восстановлено для ревизии из %s"
1911
 
1912
  #: ../lib/the-events-calendar.class.php:551
1913
  #, php-format
1914
  msgid "Event published. <a href=\"%s\">View event</a>"
1915
+ msgstr "Событие опубликовано. <a href=\"%s\">Показать событие</a>"
1916
 
1917
  #: ../lib/the-events-calendar.class.php:552
1918
  msgid "Event saved."
1919
+ msgstr "Событие сохранено"
1920
 
1921
  #: ../lib/the-events-calendar.class.php:553
1922
  #, php-format
1923
  msgid "Event submitted. <a target=\"_blank\" href=\"%s\">Preview event</a>"
1924
+ msgstr ""
1925
+ "Событие отправлено. <a target=\"_blank\" href=\"%s\">Предосмотр события</a>"
1926
 
1927
  #: ../lib/the-events-calendar.class.php:554
1928
  #, php-format
1929
+ msgid ""
1930
+ "Event scheduled for: <strong>%1$s</strong>. <a target=\"_blank\" href=\"%2$s"
1931
+ "\">Preview event</a>"
1932
+ msgstr ""
1933
+ "Событие назначено для: <strong>%1$s</strong>. <a target=\"_blank\" href="
1934
+ "\"%2$s\">Предосмотр события</a>"
1935
 
1936
  #: ../lib/the-events-calendar.class.php:556
1937
  #: ../lib/the-events-calendar.class.php:573
1942
  #: ../lib/the-events-calendar.class.php:557
1943
  #, php-format
1944
  msgid "Event draft updated. <a target=\"_blank\" href=\"%s\">Preview event</a>"
1945
+ msgstr ""
1946
+ "Черновик события обновлен. <a target=\"_blank\" href=\"%s\">Предосмотр "
1947
+ "события</a>"
1948
 
1949
  #: ../lib/the-events-calendar.class.php:562
1950
  #, php-format
1951
  msgid "Venue updated. <a href=\"%s\">View venue</a>"
1952
+ msgstr "Место обновлено <a href=\"%s\">Показать место</a>"
1953
 
1954
  #: ../lib/the-events-calendar.class.php:565
1955
  msgid "Venue updated."
1956
+ msgstr "Место обновлено."
1957
 
1958
  #: ../lib/the-events-calendar.class.php:567
1959
  #, php-format
1960
  msgid "Venue restored to revision from %s"
1961
+ msgstr "Место восстановлено для ревизии от %s"
1962
 
1963
  #: ../lib/the-events-calendar.class.php:568
1964
  #, php-format
1965
  msgid "Venue published. <a href=\"%s\">View venue</a>"
1966
+ msgstr "Место опубликовано. <a href=\"%s\">Показать место</a>"
1967
 
1968
  #: ../lib/the-events-calendar.class.php:569
1969
  msgid "Venue saved."
1970
+ msgstr "Место сохранено."
1971
 
1972
  #: ../lib/the-events-calendar.class.php:570
1973
  #, php-format
1974
  msgid "Venue submitted. <a target=\"_blank\" href=\"%s\">Preview venue</a>"
1975
+ msgstr "Место отправлено <a target=\"_blank\" href=\"%s\">Преосмотр места</a>"
1976
 
1977
  #: ../lib/the-events-calendar.class.php:571
1978
  #, php-format
1979
+ msgid ""
1980
+ "Venue scheduled for: <strong>%1$s</strong>. <a target=\"_blank\" href=\"%2$s"
1981
+ "\">Preview venue</a>"
1982
+ msgstr ""
1983
+ "Место поставлено в расписание для: <strong>%1$s</strong>. <a target=\"_blank"
1984
+ "\" href=\"%2$s\">Предосмотр места</a>"
1985
 
1986
  #: ../lib/the-events-calendar.class.php:574
1987
  #, php-format
1988
  msgid "Venue draft updated. <a target=\"_blank\" href=\"%s\">Preview venue</a>"
1989
+ msgstr ""
1990
+ "Черновик места обновлен. <a target=\"_blank\" href=\"%s\">Предосмотр места</"
1991
+ "a>"
1992
 
1993
  #: ../lib/the-events-calendar.class.php:579
1994
  #, php-format
1995
  msgid "Organizer updated. <a href=\"%s\">View organizer</a>"
1996
+ msgstr "Организато обновлен. <a href=\"%s\">Просмотр Организатораr</a>"
1997
 
1998
  #: ../lib/the-events-calendar.class.php:582
1999
  msgid "Organizer updated."
2000
+ msgstr "Организатор обновлен."
2001
 
2002
  #: ../lib/the-events-calendar.class.php:584
2003
  #, php-format
2004
  msgid "Organizer restored to revision from %s"
2005
+ msgstr "Организатор восстановлен для версии %s"
2006
 
2007
  #: ../lib/the-events-calendar.class.php:585
2008
  #, php-format
2009
  msgid "Organizer published. <a href=\"%s\">View organizer</a>"
2010
+ msgstr "Организатор опубликован. <a href=\"%s\">Просмотр Организатораr</a>"
2011
 
2012
  #: ../lib/the-events-calendar.class.php:586
2013
  msgid "Organizer saved."
2014
+ msgstr "Организатор сохранен."
2015
 
2016
  #: ../lib/the-events-calendar.class.php:587
2017
  #, php-format
2018
+ msgid ""
2019
+ "Organizer submitted. <a target=\"_blank\" href=\"%s\">Preview organizer</a>"
2020
+ msgstr ""
2021
+ "Организатор отправлен. <a target=\"_blank\" href=\"%s\">Просмотр "
2022
+ "организатораr</a>"
2023
 
2024
  #: ../lib/the-events-calendar.class.php:588
2025
  #, php-format
2026
+ msgid ""
2027
+ "Organizer scheduled for: <strong>%1$s</strong>. <a target=\"_blank\" href="
2028
+ "\"%2$s\">Preview organizer</a>"
2029
+ msgstr ""
2030
+ "Организатор поставлен в расписание: <strong>%1$s</strong>. <a target=\"_blank"
2031
+ "\" href=\"%2$s\">Просмотр организатора</a>"
2032
 
2033
  #: ../lib/the-events-calendar.class.php:591
2034
  #, php-format
2035
+ msgid ""
2036
+ "Organizer draft updated. <a target=\"_blank\" href=\"%s\">Preview organizer</"
2037
+ "a>"
2038
+ msgstr ""
2039
+ "Черновик организатора обновлен. <a target=\"_blank\" href=\"%s\">Просмотр "
2040
+ "организатора</a>"
2041
 
2042
  #: ../lib/the-events-calendar.class.php:646
2043
  msgid "Next"
2044
+ msgstr "Наступний"
2045
 
2046
  #: ../lib/the-events-calendar.class.php:647
2047
  msgid "Prev"
2048
+ msgstr "Попередній"
2049
 
2050
  #: ../lib/the-events-calendar.class.php:648
2051
  msgid "Today"
2057
 
2058
  #: ../lib/the-events-calendar.class.php:1734
2059
  msgid "Event Options"
2060
+ msgstr "Налаштування Події"
2061
 
2062
  #: ../lib/the-events-calendar.class.php:1736
2063
  msgid "Venue Information"
2064
+ msgstr "Інформація про Місце"
2065
 
2066
  #: ../lib/the-events-calendar.class.php:1737
2067
  msgid "Organizer Information"
2069
 
2070
  #: ../lib/the-events-calendar.class.php:1839
2071
  msgid "View All Add-Ons"
2072
+ msgstr "Подивитись усі Додаткові функції"
2073
 
2074
  #: ../lib/the-events-calendar.class.php:1846
2075
  msgid "News from Tribe Pro"
2081
 
2082
  #: ../lib/tribe-the-events-calendar-import.class.php:45
2083
  msgid "Upgrade from The Events Calendar"
2084
+ msgstr "Апгрейд Календаря подій"
2085
 
2086
  #: ../lib/tribe-the-events-calendar-import.class.php:46
2087
+ msgid ""
2088
+ "It appears that you have some old events calendar data that needs to be "
2089
+ "upgraded. Please be sure to back up your database before initiating the "
2090
+ "upgrade. This process can not be undone."
2091
+ msgstr ""
2092
+ "Мабуть у вас є старі події, що потребують оновлення. Будь ласка зробіть "
2093
+ "бекап бази даних перед початком апгрейду. Цей процес буде неможливо "
2094
+ "відмінити."
2095
 
2096
  #: ../lib/tribe-the-events-calendar-import.class.php:47
2097
  msgid "Migrate Data!"
2098
+ msgstr "Пренести Данні."
2099
 
2100
  #: ../lib/tribe-the-events-calendar-import.class.php:119
2101
  #, php-format
2104
 
2105
  #: ../lib/tribe-the-events-calendar-import.class.php:189
2106
  msgid "Install has 1 or more legacy event!"
2107
+ msgstr "Є застарілі події."
2108
 
2109
  #: ../lib/template-tags.php:607
2110
  msgid "Free"
2120
 
2121
  #: ../lib/widget-list.class.php:16
2122
  msgid "A widget that displays the next upcoming x events."
2123
+ msgstr "Віджет показує x наступних подій."
2124
 
2125
  #: ../lib/widget-list.class.php:70
2126
  msgid "View All Events"
2127
+ msgstr "Всі події"
2128
 
2129
  #: ../lib/widget-list.class.php:73
2130
  msgid "There are no upcoming events at this time."
2131
+ msgstr "На цей час немає подій, що очікуються."
 
lang/tribe-events-calendar.pot CHANGED
@@ -5,8 +5,8 @@ msgid ""
5
  msgstr ""
6
  "Project-Id-Version: The Events Calendar 2.0\n"
7
  "Report-Msgid-Bugs-To: \n"
8
- "POT-Creation-Date: 2012-09-11 14:05-0500\n"
9
- "PO-Revision-Date: 2012-09-11 14:05-0500\n"
10
  "Last-Translator: Paul Hughes <paul@paulalexanderhughes.com>\n"
11
  "Language-Team: Modern Tribe, Inc.\n"
12
  "Language: en_US\n"
@@ -16,6 +16,7 @@ msgstr ""
16
  "X-Poedit-SourceCharset: utf-8\n"
17
  "X-Poedit-KeywordsList: __;_e\n"
18
  "X-Poedit-Basepath: ./\n"
 
19
  "X-Poedit-SearchPath-0: ..\n"
20
 
21
  #: ../admin-views/app-shop.php:4
@@ -70,6 +71,8 @@ msgid "YYYY-MM-DD"
70
  msgstr ""
71
 
72
  #: ../admin-views/events-meta-box.php:41 ../admin-views/events-meta-box.php:62
 
 
73
  msgid "@"
74
  msgstr ""
75
 
@@ -93,16 +96,16 @@ msgstr ""
93
  msgid "Event Organizer Details"
94
  msgstr ""
95
 
96
- #: ../admin-views/events-meta-box.php:111
97
  msgid "Event Cost"
98
  msgstr ""
99
 
100
- #: ../admin-views/events-meta-box.php:114 ../views/list.php:105
101
  #: ../views/single.php:31
102
  msgid "Cost:"
103
  msgstr ""
104
 
105
- #: ../admin-views/events-meta-box.php:119
106
  msgid "Leave blank to hide the field. Enter a 0 for events that are free."
107
  msgstr ""
108
 
@@ -164,6 +167,70 @@ msgstr ""
164
  msgid "All future events in the series will be deleted."
165
  msgstr ""
166
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
167
  #: ../admin-views/tribe-options-general.php:19
168
  msgid "Finding & extending your calendar."
169
  msgstr ""
@@ -181,7 +248,7 @@ msgid "Right here"
181
  msgstr ""
182
 
183
  #: ../admin-views/tribe-options-general.php:33
184
- #: ../lib/the-events-calendar.class.php:2630
185
  msgid ""
186
  "Looking for additional functionality including recurring events, custom "
187
  "meta, community events, ticket sales and more?"
@@ -395,9 +462,9 @@ msgid "FAQ"
395
  msgstr ""
396
 
397
  #: ../admin-views/tribe-options-help.php:90
398
- #: ../lib/the-events-calendar.class.php:478
399
- #: ../lib/the-events-calendar.class.php:2731
400
- #: ../lib/the-events-calendar.class.php:2822
401
  msgid "Help"
402
  msgstr ""
403
 
@@ -528,7 +595,7 @@ msgid "Still Not Satisfied?"
528
  msgstr ""
529
 
530
  #: ../admin-views/tribe-options-help.php:156
531
- #: ../lib/the-events-calendar.class.php:289
532
  #: ../lib/tribe-settings.class.php:129
533
  msgid "The Events Calendar"
534
  msgstr ""
@@ -687,43 +754,45 @@ msgstr ""
687
  msgid "Want to modify the display of this widget? Try a %stemplate override%s."
688
  msgstr ""
689
 
690
- #: ../lib/the-events-calendar.class.php:292
 
691
  msgid "category"
692
  msgstr ""
693
 
694
- #: ../lib/the-events-calendar.class.php:293
 
695
  msgid "tag"
696
  msgstr ""
697
 
698
- #: ../lib/the-events-calendar.class.php:294
699
  msgid "month"
700
  msgstr ""
701
 
702
- #: ../lib/the-events-calendar.class.php:295
703
  msgid "upcoming"
704
  msgstr ""
705
 
706
- #: ../lib/the-events-calendar.class.php:296
707
  msgid "past"
708
  msgstr ""
709
 
710
- #: ../lib/the-events-calendar.class.php:298
711
  msgid "venue"
712
  msgstr ""
713
 
714
- #: ../lib/the-events-calendar.class.php:308
715
  #, php-format
716
  msgid "Initializing Tribe Events on %s"
717
  msgstr ""
718
 
719
- #: ../lib/the-events-calendar.class.php:400
720
  #, php-format
721
  msgid ""
722
  "Your version of The Events Calendar is not up-to-date with one of your The "
723
  "Events Calendar add-ons. Please %supdate now.%s"
724
  msgstr ""
725
 
726
- #: ../lib/the-events-calendar.class.php:414
727
  #, php-format
728
  msgid ""
729
  "The following plugins are out of date: <b>%s</b>. Please %supdate now%s. All "
@@ -732,12 +801,12 @@ msgid ""
732
  "version%s?"
733
  msgstr ""
734
 
735
- #: ../lib/the-events-calendar.class.php:459
736
- #: ../lib/the-events-calendar.class.php:475
737
  msgid "Licenses"
738
  msgstr ""
739
 
740
- #: ../lib/the-events-calendar.class.php:463
741
  msgid ""
742
  "The license key you received when completing your purchase will grant you "
743
  "access to support and updates. You do not need to enter the key below for "
@@ -757,427 +826,427 @@ msgid ""
757
  "\"Check Again\"."
758
  msgstr ""
759
 
760
- #: ../lib/the-events-calendar.class.php:471
761
  msgid "General"
762
  msgstr ""
763
 
764
- #: ../lib/the-events-calendar.class.php:472
765
  msgid "Template"
766
  msgstr ""
767
 
768
- #: ../lib/the-events-calendar.class.php:512
769
  #, php-format
770
  msgid ""
771
  "Sorry, The Events Calendar requires WordPress %s or higher. Please upgrade "
772
  "your WordPress install."
773
  msgstr ""
774
 
775
- #: ../lib/the-events-calendar.class.php:515
776
  #, php-format
777
  msgid ""
778
  "Sorry, The Events Calendar requires PHP %s or higher. Talk to your Web host "
779
  "about moving you to a newer version of PHP."
780
  msgstr ""
781
 
782
- #: ../lib/the-events-calendar.class.php:639
783
  #: ../public/template-tags/loop.php:133
784
  msgid "Upcoming Events"
785
  msgstr ""
786
 
787
- #: ../lib/the-events-calendar.class.php:641
788
  msgid "Past Events"
789
  msgstr ""
790
 
791
- #: ../lib/the-events-calendar.class.php:646
792
- #: ../lib/the-events-calendar.class.php:653
793
  #, php-format
794
  msgid "Events for %s"
795
  msgstr ""
796
 
797
- #: ../lib/the-events-calendar.class.php:648
798
  msgid "Events this month"
799
  msgstr ""
800
 
801
- #: ../lib/the-events-calendar.class.php:659
802
  #, php-format
803
  msgid "Events at %s"
804
  msgstr ""
805
 
806
- #: ../lib/the-events-calendar.class.php:672
807
  msgid "No description has been entered for this event."
808
  msgstr ""
809
 
810
- #: ../lib/the-events-calendar.class.php:916
811
- #: ../lib/the-events-calendar.class.php:2662
812
- #: ../lib/the-events-calendar.class.php:2722
813
  msgid "Events"
814
  msgstr ""
815
 
816
- #: ../lib/the-events-calendar.class.php:917
817
  msgid "Event"
818
  msgstr ""
819
 
820
- #: ../lib/the-events-calendar.class.php:918
821
- #: ../lib/the-events-calendar.class.php:931
822
- #: ../lib/the-events-calendar.class.php:944
823
  msgid "Add New"
824
  msgstr ""
825
 
826
- #: ../lib/the-events-calendar.class.php:919
827
  msgid "Add New Event"
828
  msgstr ""
829
 
830
- #: ../lib/the-events-calendar.class.php:920
831
  msgid "Edit Event"
832
  msgstr ""
833
 
834
- #: ../lib/the-events-calendar.class.php:921
835
  msgid "New Event"
836
  msgstr ""
837
 
838
- #: ../lib/the-events-calendar.class.php:922
839
  msgid "View Event"
840
  msgstr ""
841
 
842
- #: ../lib/the-events-calendar.class.php:923
843
  msgid "Search Events"
844
  msgstr ""
845
 
846
- #: ../lib/the-events-calendar.class.php:924
847
  msgid "No events found"
848
  msgstr ""
849
 
850
- #: ../lib/the-events-calendar.class.php:925
851
  msgid "No events found in Trash"
852
  msgstr ""
853
 
854
- #: ../lib/the-events-calendar.class.php:929
855
  msgid "Venues"
856
  msgstr ""
857
 
858
- #: ../lib/the-events-calendar.class.php:930
859
  msgid "Venue"
860
  msgstr ""
861
 
862
- #: ../lib/the-events-calendar.class.php:932
863
  msgid "Add New Venue"
864
  msgstr ""
865
 
866
- #: ../lib/the-events-calendar.class.php:933
867
  msgid "Edit Venue"
868
  msgstr ""
869
 
870
- #: ../lib/the-events-calendar.class.php:934
871
  msgid "New Venue"
872
  msgstr ""
873
 
874
- #: ../lib/the-events-calendar.class.php:935
875
- #: ../lib/the-events-calendar.class.php:948
876
  msgid "View Venue"
877
  msgstr ""
878
 
879
- #: ../lib/the-events-calendar.class.php:936
880
  msgid "Search Venues"
881
  msgstr ""
882
 
883
- #: ../lib/the-events-calendar.class.php:937
884
  msgid "No venue found"
885
  msgstr ""
886
 
887
- #: ../lib/the-events-calendar.class.php:938
888
  msgid "No venues found in Trash"
889
  msgstr ""
890
 
891
- #: ../lib/the-events-calendar.class.php:942
892
  msgid "Organizers"
893
  msgstr ""
894
 
895
- #: ../lib/the-events-calendar.class.php:943
896
  msgid "Organizer"
897
  msgstr ""
898
 
899
- #: ../lib/the-events-calendar.class.php:945
900
  msgid "Add New Organizer"
901
  msgstr ""
902
 
903
- #: ../lib/the-events-calendar.class.php:946
904
  msgid "Edit Organizer"
905
  msgstr ""
906
 
907
- #: ../lib/the-events-calendar.class.php:947
908
  msgid "New Organizer"
909
  msgstr ""
910
 
911
- #: ../lib/the-events-calendar.class.php:949
912
  msgid "Search Organizers"
913
  msgstr ""
914
 
915
- #: ../lib/the-events-calendar.class.php:950
916
  msgid "No organizer found"
917
  msgstr ""
918
 
919
- #: ../lib/the-events-calendar.class.php:951
920
  msgid "No organizers found in Trash"
921
  msgstr ""
922
 
923
- #: ../lib/the-events-calendar.class.php:955
924
  #: ../lib/tribe-admin-events-list.class.php:172
925
  msgid "Event Categories"
926
  msgstr ""
927
 
928
- #: ../lib/the-events-calendar.class.php:956
929
  msgid "Event Category"
930
  msgstr ""
931
 
932
- #: ../lib/the-events-calendar.class.php:957
933
  msgid "Search Event Categories"
934
  msgstr ""
935
 
936
- #: ../lib/the-events-calendar.class.php:958
937
  msgid "All Event Categories"
938
  msgstr ""
939
 
940
- #: ../lib/the-events-calendar.class.php:959
941
  msgid "Parent Event Category"
942
  msgstr ""
943
 
944
- #: ../lib/the-events-calendar.class.php:960
945
  msgid "Parent Event Category:"
946
  msgstr ""
947
 
948
- #: ../lib/the-events-calendar.class.php:961
949
  msgid "Edit Event Category"
950
  msgstr ""
951
 
952
- #: ../lib/the-events-calendar.class.php:962
953
  msgid "Update Event Category"
954
  msgstr ""
955
 
956
- #: ../lib/the-events-calendar.class.php:963
957
  msgid "Add New Event Category"
958
  msgstr ""
959
 
960
- #: ../lib/the-events-calendar.class.php:964
961
  msgid "New Event Category Name"
962
  msgstr ""
963
 
964
- #: ../lib/the-events-calendar.class.php:974
965
  #, php-format
966
  msgid "Event updated. <a href=\"%s\">View event</a>"
967
  msgstr ""
968
 
969
- #: ../lib/the-events-calendar.class.php:975
970
- #: ../lib/the-events-calendar.class.php:992
971
- #: ../lib/the-events-calendar.class.php:1009
972
  msgid "Custom field updated."
973
  msgstr ""
974
 
975
- #: ../lib/the-events-calendar.class.php:976
976
- #: ../lib/the-events-calendar.class.php:993
977
- #: ../lib/the-events-calendar.class.php:1010
978
  msgid "Custom field deleted."
979
  msgstr ""
980
 
981
- #: ../lib/the-events-calendar.class.php:977
982
  msgid "Event updated."
983
  msgstr ""
984
 
985
- #: ../lib/the-events-calendar.class.php:979
986
  #, php-format
987
  msgid "Event restored to revision from %s"
988
  msgstr ""
989
 
990
- #: ../lib/the-events-calendar.class.php:980
991
  #, php-format
992
  msgid "Event published. <a href=\"%s\">View event</a>"
993
  msgstr ""
994
 
995
- #: ../lib/the-events-calendar.class.php:981
996
  msgid "Event saved."
997
  msgstr ""
998
 
999
- #: ../lib/the-events-calendar.class.php:982
1000
  #, php-format
1001
  msgid "Event submitted. <a target=\"_blank\" href=\"%s\">Preview event</a>"
1002
  msgstr ""
1003
 
1004
- #: ../lib/the-events-calendar.class.php:983
1005
  #, php-format
1006
  msgid ""
1007
  "Event scheduled for: <strong>%1$s</strong>. <a target=\"_blank\" href=\"%2$s"
1008
  "\">Preview event</a>"
1009
  msgstr ""
1010
 
1011
- #: ../lib/the-events-calendar.class.php:985
1012
- #: ../lib/the-events-calendar.class.php:1002
1013
- #: ../lib/the-events-calendar.class.php:1019
1014
  msgid "M j, Y @ G:i"
1015
  msgstr ""
1016
 
1017
- #: ../lib/the-events-calendar.class.php:986
1018
  #, php-format
1019
  msgid "Event draft updated. <a target=\"_blank\" href=\"%s\">Preview event</a>"
1020
  msgstr ""
1021
 
1022
- #: ../lib/the-events-calendar.class.php:991
1023
  #, php-format
1024
  msgid "Venue updated. <a href=\"%s\">View venue</a>"
1025
  msgstr ""
1026
 
1027
- #: ../lib/the-events-calendar.class.php:994
1028
  msgid "Venue updated."
1029
  msgstr ""
1030
 
1031
- #: ../lib/the-events-calendar.class.php:996
1032
  #, php-format
1033
  msgid "Venue restored to revision from %s"
1034
  msgstr ""
1035
 
1036
- #: ../lib/the-events-calendar.class.php:997
1037
  #, php-format
1038
  msgid "Venue published. <a href=\"%s\">View venue</a>"
1039
  msgstr ""
1040
 
1041
- #: ../lib/the-events-calendar.class.php:998
1042
  msgid "Venue saved."
1043
  msgstr ""
1044
 
1045
- #: ../lib/the-events-calendar.class.php:999
1046
  #, php-format
1047
  msgid "Venue submitted. <a target=\"_blank\" href=\"%s\">Preview venue</a>"
1048
  msgstr ""
1049
 
1050
- #: ../lib/the-events-calendar.class.php:1000
1051
  #, php-format
1052
  msgid ""
1053
  "Venue scheduled for: <strong>%1$s</strong>. <a target=\"_blank\" href=\"%2$s"
1054
  "\">Preview venue</a>"
1055
  msgstr ""
1056
 
1057
- #: ../lib/the-events-calendar.class.php:1003
1058
  #, php-format
1059
  msgid "Venue draft updated. <a target=\"_blank\" href=\"%s\">Preview venue</a>"
1060
  msgstr ""
1061
 
1062
- #: ../lib/the-events-calendar.class.php:1008
1063
  #, php-format
1064
  msgid "Organizer updated. <a href=\"%s\">View organizer</a>"
1065
  msgstr ""
1066
 
1067
- #: ../lib/the-events-calendar.class.php:1011
1068
  msgid "Organizer updated."
1069
  msgstr ""
1070
 
1071
- #: ../lib/the-events-calendar.class.php:1013
1072
  #, php-format
1073
  msgid "Organizer restored to revision from %s"
1074
  msgstr ""
1075
 
1076
- #: ../lib/the-events-calendar.class.php:1014
1077
  #, php-format
1078
  msgid "Organizer published. <a href=\"%s\">View organizer</a>"
1079
  msgstr ""
1080
 
1081
- #: ../lib/the-events-calendar.class.php:1015
1082
  msgid "Organizer saved."
1083
  msgstr ""
1084
 
1085
- #: ../lib/the-events-calendar.class.php:1016
1086
  #, php-format
1087
  msgid ""
1088
  "Organizer submitted. <a target=\"_blank\" href=\"%s\">Preview organizer</a>"
1089
  msgstr ""
1090
 
1091
- #: ../lib/the-events-calendar.class.php:1017
1092
  #, php-format
1093
  msgid ""
1094
  "Organizer scheduled for: <strong>%1$s</strong>. <a target=\"_blank\" href="
1095
  "\"%2$s\">Preview organizer</a>"
1096
  msgstr ""
1097
 
1098
- #: ../lib/the-events-calendar.class.php:1020
1099
  #, php-format
1100
  msgid ""
1101
  "Organizer draft updated. <a target=\"_blank\" href=\"%s\">Preview organizer</"
1102
  "a>"
1103
  msgstr ""
1104
 
1105
- #: ../lib/the-events-calendar.class.php:1116
1106
  msgid "Next"
1107
  msgstr ""
1108
 
1109
- #: ../lib/the-events-calendar.class.php:1117
1110
  msgid "Prev"
1111
  msgstr ""
1112
 
1113
- #: ../lib/the-events-calendar.class.php:1118
1114
  msgid "Today"
1115
  msgstr ""
1116
 
1117
- #: ../lib/the-events-calendar.class.php:1119
1118
  msgid "Done"
1119
  msgstr ""
1120
 
1121
- #: ../lib/the-events-calendar.class.php:2447
1122
  msgid "Event Options"
1123
  msgstr ""
1124
 
1125
- #: ../lib/the-events-calendar.class.php:2449
1126
  msgid "Venue Information"
1127
  msgstr ""
1128
 
1129
- #: ../lib/the-events-calendar.class.php:2450
1130
  msgid "Organizer Information"
1131
  msgstr ""
1132
 
1133
- #: ../lib/the-events-calendar.class.php:2570
1134
  msgid "Support"
1135
  msgstr ""
1136
 
1137
- #: ../lib/the-events-calendar.class.php:2573
1138
  msgid "View All Add-Ons"
1139
  msgstr ""
1140
 
1141
- #: ../lib/the-events-calendar.class.php:2580
1142
  msgid "News from Modern Tribe"
1143
  msgstr ""
1144
 
1145
- #: ../lib/the-events-calendar.class.php:2625
1146
  msgid "Additional Functionality"
1147
  msgstr ""
1148
 
1149
- #: ../lib/the-events-calendar.class.php:2630
1150
  #, php-format
1151
  msgid "Check out the <a href=\"%s\">available add-ons</a>."
1152
  msgstr ""
1153
 
1154
- #: ../lib/the-events-calendar.class.php:2688
1155
- #: ../lib/the-events-calendar.class.php:2779
1156
  msgid "View Calendar"
1157
  msgstr ""
1158
 
1159
- #: ../lib/the-events-calendar.class.php:2696
1160
  msgid "Add Event"
1161
  msgstr ""
1162
 
1163
- #: ../lib/the-events-calendar.class.php:2705
1164
  msgid "Edit Events"
1165
  msgstr ""
1166
 
1167
- #: ../lib/the-events-calendar.class.php:2714
1168
- #: ../lib/the-events-calendar.class.php:2815
1169
  #: ../lib/tribe-settings.class.php:153
1170
  msgid "Settings"
1171
  msgstr ""
1172
 
1173
- #: ../lib/the-events-calendar.class.php:2750
1174
  #, php-format
1175
  msgid ""
1176
  "Welcome to The Events Calendar! Your events calendar can be found at %s. To "
1177
  "change the events slug, visit %sEvents -> Settings%s."
1178
  msgstr ""
1179
 
1180
- #: ../lib/the-events-calendar.class.php:2816 ../views/gridview.php:37
1181
  #: ../views/list.php:19
1182
  msgid "Calendar"
1183
  msgstr ""
@@ -2596,6 +2665,81 @@ msgstr ""
2596
  msgid "There are no upcoming events at this time."
2597
  msgstr ""
2598
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2599
  #: ../public/template-tags/general.php:120
2600
  msgid "Category:"
2601
  msgstr ""
@@ -2657,15 +2801,15 @@ msgstr ""
2657
  msgid "All Day"
2658
  msgstr ""
2659
 
2660
- #: ../views/gridview.php:36 ../views/list.php:18
2661
  msgid "Event List"
2662
  msgstr ""
2663
 
2664
- #: ../views/gridview.php:42 ../views/list.php:168 ../views/single.php:103
2665
  msgid "iCal Import"
2666
  msgstr ""
2667
 
2668
- #: ../views/gridview.php:45
2669
  #, php-format
2670
  msgid "Calendar powered by %sThe Events Calendar%s"
2671
  msgstr ""
@@ -2690,38 +2834,38 @@ msgstr ""
2690
  msgid "Google Map"
2691
  msgstr ""
2692
 
2693
- #: ../views/list.php:119
2694
  #, php-format
2695
  msgid ""
2696
  " listed under %s. Check out past events for this category or view the full "
2697
  "calendar."
2698
  msgstr ""
2699
 
2700
- #: ../views/list.php:121
2701
  #, php-format
2702
  msgid ""
2703
  " listed under %s. Check out upcoming events for this category or view the "
2704
  "full calendar."
2705
  msgstr ""
2706
 
2707
- #: ../views/list.php:126
2708
  #, php-format
2709
  msgid "No events scheduled for <strong>%s</strong>. Please try another day."
2710
  msgstr ""
2711
 
2712
- #: ../views/list.php:130
2713
  msgid "No upcoming events"
2714
  msgstr ""
2715
 
2716
- #: ../views/list.php:134
2717
  msgid "No previous events"
2718
  msgstr ""
2719
 
2720
- #: ../views/list.php:147 ../views/list.php:149 ../views/list.php:151
2721
  msgid "&laquo; Previous Events"
2722
  msgstr ""
2723
 
2724
- #: ../views/list.php:158 ../views/list.php:160 ../views/list.php:162
2725
  msgid "Next Events &raquo;"
2726
  msgstr ""
2727
 
5
  msgstr ""
6
  "Project-Id-Version: The Events Calendar 2.0\n"
7
  "Report-Msgid-Bugs-To: \n"
8
+ "POT-Creation-Date: 2012-11-08 16:24-0500\n"
9
+ "PO-Revision-Date: 2012-11-08 16:24-0500\n"
10
  "Last-Translator: Paul Hughes <paul@paulalexanderhughes.com>\n"
11
  "Language-Team: Modern Tribe, Inc.\n"
12
  "Language: en_US\n"
16
  "X-Poedit-SourceCharset: utf-8\n"
17
  "X-Poedit-KeywordsList: __;_e\n"
18
  "X-Poedit-Basepath: ./\n"
19
+ "X-Generator: Poedit 1.5.4\n"
20
  "X-Poedit-SearchPath-0: ..\n"
21
 
22
  #: ../admin-views/app-shop.php:4
71
  msgstr ""
72
 
73
  #: ../admin-views/events-meta-box.php:41 ../admin-views/events-meta-box.php:62
74
+ #: ../admin-views/tickets-meta-box.php:97
75
+ #: ../admin-views/tickets-meta-box.php:122
76
  msgid "@"
77
  msgstr ""
78
 
96
  msgid "Event Organizer Details"
97
  msgstr ""
98
 
99
+ #: ../admin-views/events-meta-box.php:110
100
  msgid "Event Cost"
101
  msgstr ""
102
 
103
+ #: ../admin-views/events-meta-box.php:113 ../views/list.php:105
104
  #: ../views/single.php:31
105
  msgid "Cost:"
106
  msgstr ""
107
 
108
+ #: ../admin-views/events-meta-box.php:118
109
  msgid "Leave blank to hide the field. Enter a 0 for events that are free."
110
  msgstr ""
111
 
167
  msgid "All future events in the series will be deleted."
168
  msgstr ""
169
 
170
+ #: ../admin-views/tickets-attendees.php:3 ../admin-views/tickets-list.php:39
171
+ #: ../lib/tickets/tribe-tickets.php:446
172
+ msgid "Attendees"
173
+ msgstr ""
174
+
175
+ #: ../admin-views/tickets-attendees.php:7
176
+ msgid "Summary"
177
+ msgstr ""
178
+
179
+ #: ../admin-views/tickets-attendees.php:41 ../admin-views/tickets-list.php:62
180
+ #, php-format
181
+ msgid "Sold %d of %d"
182
+ msgstr ""
183
+
184
+ #: ../admin-views/tickets-list.php:22
185
+ #, php-format
186
+ msgid "<span><a href='%s'>Edit in %s</a></span>"
187
+ msgstr ""
188
+
189
+ #: ../admin-views/tickets-meta-box.php:14
190
+ msgid ""
191
+ "This event was created using Community Events. Are you sure you want to sell "
192
+ "tickets for it?"
193
+ msgstr ""
194
+
195
+ #: ../admin-views/tickets-meta-box.php:30
196
+ #: ../admin-views/tickets-meta-box.php:40
197
+ msgid "Add new ticket"
198
+ msgstr ""
199
+
200
+ #: ../admin-views/tickets-meta-box.php:41
201
+ msgid "Edit ticket"
202
+ msgstr ""
203
+
204
+ #: ../admin-views/tickets-meta-box.php:47
205
+ msgid "Sell using:"
206
+ msgstr ""
207
+
208
+ #: ../admin-views/tickets-meta-box.php:64
209
+ msgid "Ticket Name:"
210
+ msgstr ""
211
+
212
+ #: ../admin-views/tickets-meta-box.php:71
213
+ msgid "Ticket Description:"
214
+ msgstr ""
215
+
216
+ #: ../admin-views/tickets-meta-box.php:80
217
+ msgid "Price:"
218
+ msgstr ""
219
+
220
+ #: ../admin-views/tickets-meta-box.php:91
221
+ msgid "Start sale:"
222
+ msgstr ""
223
+
224
+ #: ../admin-views/tickets-meta-box.php:115
225
+ msgid "End sale:"
226
+ msgstr ""
227
+
228
+ #: ../admin-views/tickets-meta-box.php:135
229
+ msgid ""
230
+ "When will ticket sales occur? If you don't set a start/end date for sales, "
231
+ "tickets will be available from now until the event ends."
232
+ msgstr ""
233
+
234
  #: ../admin-views/tribe-options-general.php:19
235
  msgid "Finding & extending your calendar."
236
  msgstr ""
248
  msgstr ""
249
 
250
  #: ../admin-views/tribe-options-general.php:33
251
+ #: ../lib/the-events-calendar.class.php:2646
252
  msgid ""
253
  "Looking for additional functionality including recurring events, custom "
254
  "meta, community events, ticket sales and more?"
462
  msgstr ""
463
 
464
  #: ../admin-views/tribe-options-help.php:90
465
+ #: ../lib/the-events-calendar.class.php:486
466
+ #: ../lib/the-events-calendar.class.php:2747
467
+ #: ../lib/the-events-calendar.class.php:2838
468
  msgid "Help"
469
  msgstr ""
470
 
595
  msgstr ""
596
 
597
  #: ../admin-views/tribe-options-help.php:156
598
+ #: ../lib/the-events-calendar.class.php:296
599
  #: ../lib/tribe-settings.class.php:129
600
  msgid "The Events Calendar"
601
  msgstr ""
754
  msgid "Want to modify the display of this widget? Try a %stemplate override%s."
755
  msgstr ""
756
 
757
+ #: ../lib/the-events-calendar.class.php:299
758
+ #: ../lib/the-events-calendar.class.php:1435
759
  msgid "category"
760
  msgstr ""
761
 
762
+ #: ../lib/the-events-calendar.class.php:300
763
+ #: ../lib/the-events-calendar.class.php:1436
764
  msgid "tag"
765
  msgstr ""
766
 
767
+ #: ../lib/the-events-calendar.class.php:301
768
  msgid "month"
769
  msgstr ""
770
 
771
+ #: ../lib/the-events-calendar.class.php:302
772
  msgid "upcoming"
773
  msgstr ""
774
 
775
+ #: ../lib/the-events-calendar.class.php:303
776
  msgid "past"
777
  msgstr ""
778
 
779
+ #: ../lib/the-events-calendar.class.php:305
780
  msgid "venue"
781
  msgstr ""
782
 
783
+ #: ../lib/the-events-calendar.class.php:316
784
  #, php-format
785
  msgid "Initializing Tribe Events on %s"
786
  msgstr ""
787
 
788
+ #: ../lib/the-events-calendar.class.php:408
789
  #, php-format
790
  msgid ""
791
  "Your version of The Events Calendar is not up-to-date with one of your The "
792
  "Events Calendar add-ons. Please %supdate now.%s"
793
  msgstr ""
794
 
795
+ #: ../lib/the-events-calendar.class.php:422
796
  #, php-format
797
  msgid ""
798
  "The following plugins are out of date: <b>%s</b>. Please %supdate now%s. All "
801
  "version%s?"
802
  msgstr ""
803
 
804
+ #: ../lib/the-events-calendar.class.php:467
805
+ #: ../lib/the-events-calendar.class.php:483
806
  msgid "Licenses"
807
  msgstr ""
808
 
809
+ #: ../lib/the-events-calendar.class.php:471
810
  msgid ""
811
  "The license key you received when completing your purchase will grant you "
812
  "access to support and updates. You do not need to enter the key below for "
826
  "\"Check Again\"."
827
  msgstr ""
828
 
829
+ #: ../lib/the-events-calendar.class.php:479
830
  msgid "General"
831
  msgstr ""
832
 
833
+ #: ../lib/the-events-calendar.class.php:480
834
  msgid "Template"
835
  msgstr ""
836
 
837
+ #: ../lib/the-events-calendar.class.php:520
838
  #, php-format
839
  msgid ""
840
  "Sorry, The Events Calendar requires WordPress %s or higher. Please upgrade "
841
  "your WordPress install."
842
  msgstr ""
843
 
844
+ #: ../lib/the-events-calendar.class.php:523
845
  #, php-format
846
  msgid ""
847
  "Sorry, The Events Calendar requires PHP %s or higher. Talk to your Web host "
848
  "about moving you to a newer version of PHP."
849
  msgstr ""
850
 
851
+ #: ../lib/the-events-calendar.class.php:648
852
  #: ../public/template-tags/loop.php:133
853
  msgid "Upcoming Events"
854
  msgstr ""
855
 
856
+ #: ../lib/the-events-calendar.class.php:650
857
  msgid "Past Events"
858
  msgstr ""
859
 
860
+ #: ../lib/the-events-calendar.class.php:655
861
+ #: ../lib/the-events-calendar.class.php:662
862
  #, php-format
863
  msgid "Events for %s"
864
  msgstr ""
865
 
866
+ #: ../lib/the-events-calendar.class.php:657
867
  msgid "Events this month"
868
  msgstr ""
869
 
870
+ #: ../lib/the-events-calendar.class.php:668
871
  #, php-format
872
  msgid "Events at %s"
873
  msgstr ""
874
 
875
+ #: ../lib/the-events-calendar.class.php:681
876
  msgid "No description has been entered for this event."
877
  msgstr ""
878
 
879
+ #: ../lib/the-events-calendar.class.php:925
880
+ #: ../lib/the-events-calendar.class.php:2678
881
+ #: ../lib/the-events-calendar.class.php:2738
882
  msgid "Events"
883
  msgstr ""
884
 
885
+ #: ../lib/the-events-calendar.class.php:926
886
  msgid "Event"
887
  msgstr ""
888
 
889
+ #: ../lib/the-events-calendar.class.php:927
890
+ #: ../lib/the-events-calendar.class.php:940
891
+ #: ../lib/the-events-calendar.class.php:953
892
  msgid "Add New"
893
  msgstr ""
894
 
895
+ #: ../lib/the-events-calendar.class.php:928
896
  msgid "Add New Event"
897
  msgstr ""
898
 
899
+ #: ../lib/the-events-calendar.class.php:929
900
  msgid "Edit Event"
901
  msgstr ""
902
 
903
+ #: ../lib/the-events-calendar.class.php:930
904
  msgid "New Event"
905
  msgstr ""
906
 
907
+ #: ../lib/the-events-calendar.class.php:931
908
  msgid "View Event"
909
  msgstr ""
910
 
911
+ #: ../lib/the-events-calendar.class.php:932
912
  msgid "Search Events"
913
  msgstr ""
914
 
915
+ #: ../lib/the-events-calendar.class.php:933
916
  msgid "No events found"
917
  msgstr ""
918
 
919
+ #: ../lib/the-events-calendar.class.php:934
920
  msgid "No events found in Trash"
921
  msgstr ""
922
 
923
+ #: ../lib/the-events-calendar.class.php:938
924
  msgid "Venues"
925
  msgstr ""
926
 
927
+ #: ../lib/the-events-calendar.class.php:939
928
  msgid "Venue"
929
  msgstr ""
930
 
931
+ #: ../lib/the-events-calendar.class.php:941
932
  msgid "Add New Venue"
933
  msgstr ""
934
 
935
+ #: ../lib/the-events-calendar.class.php:942
936
  msgid "Edit Venue"
937
  msgstr ""
938
 
939
+ #: ../lib/the-events-calendar.class.php:943
940
  msgid "New Venue"
941
  msgstr ""
942
 
943
+ #: ../lib/the-events-calendar.class.php:944
944
+ #: ../lib/the-events-calendar.class.php:957
945
  msgid "View Venue"
946
  msgstr ""
947
 
948
+ #: ../lib/the-events-calendar.class.php:945
949
  msgid "Search Venues"
950
  msgstr ""
951
 
952
+ #: ../lib/the-events-calendar.class.php:946
953
  msgid "No venue found"
954
  msgstr ""
955
 
956
+ #: ../lib/the-events-calendar.class.php:947
957
  msgid "No venues found in Trash"
958
  msgstr ""
959
 
960
+ #: ../lib/the-events-calendar.class.php:951
961
  msgid "Organizers"
962
  msgstr ""
963
 
964
+ #: ../lib/the-events-calendar.class.php:952
965
  msgid "Organizer"
966
  msgstr ""
967
 
968
+ #: ../lib/the-events-calendar.class.php:954
969
  msgid "Add New Organizer"
970
  msgstr ""
971
 
972
+ #: ../lib/the-events-calendar.class.php:955
973
  msgid "Edit Organizer"
974
  msgstr ""
975
 
976
+ #: ../lib/the-events-calendar.class.php:956
977
  msgid "New Organizer"
978
  msgstr ""
979
 
980
+ #: ../lib/the-events-calendar.class.php:958
981
  msgid "Search Organizers"
982
  msgstr ""
983
 
984
+ #: ../lib/the-events-calendar.class.php:959
985
  msgid "No organizer found"
986
  msgstr ""
987
 
988
+ #: ../lib/the-events-calendar.class.php:960
989
  msgid "No organizers found in Trash"
990
  msgstr ""
991
 
992
+ #: ../lib/the-events-calendar.class.php:964
993
  #: ../lib/tribe-admin-events-list.class.php:172
994
  msgid "Event Categories"
995
  msgstr ""
996
 
997
+ #: ../lib/the-events-calendar.class.php:965
998
  msgid "Event Category"
999
  msgstr ""
1000
 
1001
+ #: ../lib/the-events-calendar.class.php:966
1002
  msgid "Search Event Categories"
1003
  msgstr ""
1004
 
1005
+ #: ../lib/the-events-calendar.class.php:967
1006
  msgid "All Event Categories"
1007
  msgstr ""
1008
 
1009
+ #: ../lib/the-events-calendar.class.php:968
1010
  msgid "Parent Event Category"
1011
  msgstr ""
1012
 
1013
+ #: ../lib/the-events-calendar.class.php:969
1014
  msgid "Parent Event Category:"
1015
  msgstr ""
1016
 
1017
+ #: ../lib/the-events-calendar.class.php:970
1018
  msgid "Edit Event Category"
1019
  msgstr ""
1020
 
1021
+ #: ../lib/the-events-calendar.class.php:971
1022
  msgid "Update Event Category"
1023
  msgstr ""
1024
 
1025
+ #: ../lib/the-events-calendar.class.php:972
1026
  msgid "Add New Event Category"
1027
  msgstr ""
1028
 
1029
+ #: ../lib/the-events-calendar.class.php:973
1030
  msgid "New Event Category Name"
1031
  msgstr ""
1032
 
1033
+ #: ../lib/the-events-calendar.class.php:983
1034
  #, php-format
1035
  msgid "Event updated. <a href=\"%s\">View event</a>"
1036
  msgstr ""
1037
 
1038
+ #: ../lib/the-events-calendar.class.php:984
1039
+ #: ../lib/the-events-calendar.class.php:1001
1040
+ #: ../lib/the-events-calendar.class.php:1018
1041
  msgid "Custom field updated."
1042
  msgstr ""
1043
 
1044
+ #: ../lib/the-events-calendar.class.php:985
1045
+ #: ../lib/the-events-calendar.class.php:1002
1046
+ #: ../lib/the-events-calendar.class.php:1019
1047
  msgid "Custom field deleted."
1048
  msgstr ""
1049
 
1050
+ #: ../lib/the-events-calendar.class.php:986
1051
  msgid "Event updated."
1052
  msgstr ""
1053
 
1054
+ #: ../lib/the-events-calendar.class.php:988
1055
  #, php-format
1056
  msgid "Event restored to revision from %s"
1057
  msgstr ""
1058
 
1059
+ #: ../lib/the-events-calendar.class.php:989
1060
  #, php-format
1061
  msgid "Event published. <a href=\"%s\">View event</a>"
1062
  msgstr ""
1063
 
1064
+ #: ../lib/the-events-calendar.class.php:990
1065
  msgid "Event saved."
1066
  msgstr ""
1067
 
1068
+ #: ../lib/the-events-calendar.class.php:991
1069
  #, php-format
1070
  msgid "Event submitted. <a target=\"_blank\" href=\"%s\">Preview event</a>"
1071
  msgstr ""
1072
 
1073
+ #: ../lib/the-events-calendar.class.php:992
1074
  #, php-format
1075
  msgid ""
1076
  "Event scheduled for: <strong>%1$s</strong>. <a target=\"_blank\" href=\"%2$s"
1077
  "\">Preview event</a>"
1078
  msgstr ""
1079
 
1080
+ #: ../lib/the-events-calendar.class.php:994
1081
+ #: ../lib/the-events-calendar.class.php:1011
1082
+ #: ../lib/the-events-calendar.class.php:1028
1083
  msgid "M j, Y @ G:i"
1084
  msgstr ""
1085
 
1086
+ #: ../lib/the-events-calendar.class.php:995
1087
  #, php-format
1088
  msgid "Event draft updated. <a target=\"_blank\" href=\"%s\">Preview event</a>"
1089
  msgstr ""
1090
 
1091
+ #: ../lib/the-events-calendar.class.php:1000
1092
  #, php-format
1093
  msgid "Venue updated. <a href=\"%s\">View venue</a>"
1094
  msgstr ""
1095
 
1096
+ #: ../lib/the-events-calendar.class.php:1003
1097
  msgid "Venue updated."
1098
  msgstr ""
1099
 
1100
+ #: ../lib/the-events-calendar.class.php:1005
1101
  #, php-format
1102
  msgid "Venue restored to revision from %s"
1103
  msgstr ""
1104
 
1105
+ #: ../lib/the-events-calendar.class.php:1006
1106
  #, php-format
1107
  msgid "Venue published. <a href=\"%s\">View venue</a>"
1108
  msgstr ""
1109
 
1110
+ #: ../lib/the-events-calendar.class.php:1007
1111
  msgid "Venue saved."
1112
  msgstr ""
1113
 
1114
+ #: ../lib/the-events-calendar.class.php:1008
1115
  #, php-format
1116
  msgid "Venue submitted. <a target=\"_blank\" href=\"%s\">Preview venue</a>"
1117
  msgstr ""
1118
 
1119
+ #: ../lib/the-events-calendar.class.php:1009
1120
  #, php-format
1121
  msgid ""
1122
  "Venue scheduled for: <strong>%1$s</strong>. <a target=\"_blank\" href=\"%2$s"
1123
  "\">Preview venue</a>"
1124
  msgstr ""
1125
 
1126
+ #: ../lib/the-events-calendar.class.php:1012
1127
  #, php-format
1128
  msgid "Venue draft updated. <a target=\"_blank\" href=\"%s\">Preview venue</a>"
1129
  msgstr ""
1130
 
1131
+ #: ../lib/the-events-calendar.class.php:1017
1132
  #, php-format
1133
  msgid "Organizer updated. <a href=\"%s\">View organizer</a>"
1134
  msgstr ""
1135
 
1136
+ #: ../lib/the-events-calendar.class.php:1020
1137
  msgid "Organizer updated."
1138
  msgstr ""
1139
 
1140
+ #: ../lib/the-events-calendar.class.php:1022
1141
  #, php-format
1142
  msgid "Organizer restored to revision from %s"
1143
  msgstr ""
1144
 
1145
+ #: ../lib/the-events-calendar.class.php:1023
1146
  #, php-format
1147
  msgid "Organizer published. <a href=\"%s\">View organizer</a>"
1148
  msgstr ""
1149
 
1150
+ #: ../lib/the-events-calendar.class.php:1024
1151
  msgid "Organizer saved."
1152
  msgstr ""
1153
 
1154
+ #: ../lib/the-events-calendar.class.php:1025
1155
  #, php-format
1156
  msgid ""
1157
  "Organizer submitted. <a target=\"_blank\" href=\"%s\">Preview organizer</a>"
1158
  msgstr ""
1159
 
1160
+ #: ../lib/the-events-calendar.class.php:1026
1161
  #, php-format
1162
  msgid ""
1163
  "Organizer scheduled for: <strong>%1$s</strong>. <a target=\"_blank\" href="
1164
  "\"%2$s\">Preview organizer</a>"
1165
  msgstr ""
1166
 
1167
+ #: ../lib/the-events-calendar.class.php:1029
1168
  #, php-format
1169
  msgid ""
1170
  "Organizer draft updated. <a target=\"_blank\" href=\"%s\">Preview organizer</"
1171
  "a>"
1172
  msgstr ""
1173
 
1174
+ #: ../lib/the-events-calendar.class.php:1125
1175
  msgid "Next"
1176
  msgstr ""
1177
 
1178
+ #: ../lib/the-events-calendar.class.php:1126
1179
  msgid "Prev"
1180
  msgstr ""
1181
 
1182
+ #: ../lib/the-events-calendar.class.php:1127
1183
  msgid "Today"
1184
  msgstr ""
1185
 
1186
+ #: ../lib/the-events-calendar.class.php:1128
1187
  msgid "Done"
1188
  msgstr ""
1189
 
1190
+ #: ../lib/the-events-calendar.class.php:2463
1191
  msgid "Event Options"
1192
  msgstr ""
1193
 
1194
+ #: ../lib/the-events-calendar.class.php:2465
1195
  msgid "Venue Information"
1196
  msgstr ""
1197
 
1198
+ #: ../lib/the-events-calendar.class.php:2466
1199
  msgid "Organizer Information"
1200
  msgstr ""
1201
 
1202
+ #: ../lib/the-events-calendar.class.php:2586
1203
  msgid "Support"
1204
  msgstr ""
1205
 
1206
+ #: ../lib/the-events-calendar.class.php:2589
1207
  msgid "View All Add-Ons"
1208
  msgstr ""
1209
 
1210
+ #: ../lib/the-events-calendar.class.php:2596
1211
  msgid "News from Modern Tribe"
1212
  msgstr ""
1213
 
1214
+ #: ../lib/the-events-calendar.class.php:2641
1215
  msgid "Additional Functionality"
1216
  msgstr ""
1217
 
1218
+ #: ../lib/the-events-calendar.class.php:2646
1219
  #, php-format
1220
  msgid "Check out the <a href=\"%s\">available add-ons</a>."
1221
  msgstr ""
1222
 
1223
+ #: ../lib/the-events-calendar.class.php:2704
1224
+ #: ../lib/the-events-calendar.class.php:2795
1225
  msgid "View Calendar"
1226
  msgstr ""
1227
 
1228
+ #: ../lib/the-events-calendar.class.php:2712
1229
  msgid "Add Event"
1230
  msgstr ""
1231
 
1232
+ #: ../lib/the-events-calendar.class.php:2721
1233
  msgid "Edit Events"
1234
  msgstr ""
1235
 
1236
+ #: ../lib/the-events-calendar.class.php:2730
1237
+ #: ../lib/the-events-calendar.class.php:2831
1238
  #: ../lib/tribe-settings.class.php:153
1239
  msgid "Settings"
1240
  msgstr ""
1241
 
1242
+ #: ../lib/the-events-calendar.class.php:2766
1243
  #, php-format
1244
  msgid ""
1245
  "Welcome to The Events Calendar! Your events calendar can be found at %s. To "
1246
  "change the events slug, visit %sEvents -> Settings%s."
1247
  msgstr ""
1248
 
1249
+ #: ../lib/the-events-calendar.class.php:2832 ../views/gridview.php:35
1250
  #: ../views/list.php:19
1251
  msgid "Calendar"
1252
  msgstr ""
2665
  msgid "There are no upcoming events at this time."
2666
  msgstr ""
2667
 
2668
+ #: ../lib/tickets/tribe-tickets-attendees.php:22
2669
+ msgid "Order #"
2670
+ msgstr ""
2671
+
2672
+ #: ../lib/tickets/tribe-tickets-attendees.php:23
2673
+ msgid "Order Status"
2674
+ msgstr ""
2675
+
2676
+ #: ../lib/tickets/tribe-tickets-attendees.php:24
2677
+ msgid "Ticket"
2678
+ msgstr ""
2679
+
2680
+ #: ../lib/tickets/tribe-tickets-attendees.php:25
2681
+ msgid "Ticket #"
2682
+ msgstr ""
2683
+
2684
+ #: ../lib/tickets/tribe-tickets-attendees.php:26
2685
+ msgid "Security Code"
2686
+ msgstr ""
2687
+
2688
+ #: ../lib/tickets/tribe-tickets-attendees.php:27
2689
+ #: ../lib/tickets/tribe-tickets-attendees.php:69
2690
+ #: ../lib/tickets/tribe-tickets-attendees.php:97
2691
+ msgid "Check in"
2692
+ msgstr ""
2693
+
2694
+ #: ../lib/tickets/tribe-tickets-attendees.php:70
2695
+ #: ../lib/tickets/tribe-tickets-attendees.php:97
2696
+ msgid "Undo Check in"
2697
+ msgstr ""
2698
+
2699
+ #: ../lib/tickets/tribe-tickets-attendees.php:92
2700
+ msgid "Filter by ticket #, order # or security code"
2701
+ msgstr ""
2702
+
2703
+ #: ../lib/tickets/tribe-tickets-metabox.php:10
2704
+ msgid "Tickets"
2705
+ msgstr ""
2706
+
2707
+ #: ../lib/tickets/tribe-tickets.php:162
2708
+ msgid "EVENT NAME:"
2709
+ msgstr ""
2710
+
2711
+ #: ../lib/tickets/tribe-tickets.php:181
2712
+ msgid "TICKET HOLDER:"
2713
+ msgstr ""
2714
+
2715
+ #: ../lib/tickets/tribe-tickets.php:183
2716
+ msgid "LOCATION:"
2717
+ msgstr ""
2718
+
2719
+ #: ../lib/tickets/tribe-tickets.php:234
2720
+ msgid "ORDER:"
2721
+ msgstr ""
2722
+
2723
+ #: ../lib/tickets/tribe-tickets.php:236
2724
+ msgid "TICKET:"
2725
+ msgstr ""
2726
+
2727
+ #: ../lib/tickets/tribe-tickets.php:238
2728
+ msgid "VERIFICATION:"
2729
+ msgstr ""
2730
+
2731
+ #: ../lib/tickets/tribe-tickets.php:322
2732
+ msgid "Your ticket has been saved."
2733
+ msgstr ""
2734
+
2735
+ #: ../lib/tickets/tribe-tickets.php:376
2736
+ msgid "Your ticket has been deleted."
2737
+ msgstr ""
2738
+
2739
+ #: ../lib/tickets/tribe-tickets.php:446
2740
+ msgid "See who purchased tickets to this event"
2741
+ msgstr ""
2742
+
2743
  #: ../public/template-tags/general.php:120
2744
  msgid "Category:"
2745
  msgstr ""
2801
  msgid "All Day"
2802
  msgstr ""
2803
 
2804
+ #: ../views/gridview.php:34 ../views/list.php:18
2805
  msgid "Event List"
2806
  msgstr ""
2807
 
2808
+ #: ../views/gridview.php:40 ../views/list.php:169 ../views/single.php:103
2809
  msgid "iCal Import"
2810
  msgstr ""
2811
 
2812
+ #: ../views/gridview.php:43
2813
  #, php-format
2814
  msgid "Calendar powered by %sThe Events Calendar%s"
2815
  msgstr ""
2834
  msgid "Google Map"
2835
  msgstr ""
2836
 
2837
+ #: ../views/list.php:120
2838
  #, php-format
2839
  msgid ""
2840
  " listed under %s. Check out past events for this category or view the full "
2841
  "calendar."
2842
  msgstr ""
2843
 
2844
+ #: ../views/list.php:122
2845
  #, php-format
2846
  msgid ""
2847
  " listed under %s. Check out upcoming events for this category or view the "
2848
  "full calendar."
2849
  msgstr ""
2850
 
2851
+ #: ../views/list.php:127
2852
  #, php-format
2853
  msgid "No events scheduled for <strong>%s</strong>. Please try another day."
2854
  msgstr ""
2855
 
2856
+ #: ../views/list.php:131
2857
  msgid "No upcoming events"
2858
  msgstr ""
2859
 
2860
+ #: ../views/list.php:135
2861
  msgid "No previous events"
2862
  msgstr ""
2863
 
2864
+ #: ../views/list.php:148 ../views/list.php:150 ../views/list.php:152
2865
  msgid "&laquo; Previous Events"
2866
  msgstr ""
2867
 
2868
+ #: ../views/list.php:159 ../views/list.php:161 ../views/list.php:163
2869
  msgid "Next Events &raquo;"
2870
  msgstr ""
2871
 
lib/template-tags-deprecated.php CHANGED
File without changes
lib/the-events-calendar.class.php CHANGED
@@ -16,7 +16,7 @@ if ( !class_exists( 'TribeEvents' ) ) {
16
  const VENUE_POST_TYPE = 'tribe_venue';
17
  const ORGANIZER_POST_TYPE = 'tribe_organizer';
18
  const PLUGIN_DOMAIN = 'tribe-events-calendar';
19
- const VERSION = '2.0.9';
20
  const FEED_URL = 'http://tri.be/category/products/feed/';
21
  const INFO_API_URL = 'http://wpapi.org/api/plugin/the-events-calendar.php';
22
  const WP_PLUGIN_URL = 'http://wordpress.org/extend/plugins/the-events-calendar/';
@@ -43,6 +43,7 @@ if ( !class_exists( 'TribeEvents' ) ) {
43
  'public' => true,
44
  'rewrite' => false,
45
  'show_ui' => true,
 
46
  'show_in_menu' => 0,
47
  'menu_position' => 6,
48
  'supports' => array(''),
@@ -155,7 +156,6 @@ if ( !class_exists( 'TribeEvents' ) ) {
155
  *Load all the required library files.
156
  **/
157
  protected function loadLibraries() {
158
-
159
  // Exceptions Helper
160
  require_once( 'tribe-event-exception.class.php' );
161
 
@@ -175,7 +175,9 @@ if ( !class_exists( 'TribeEvents' ) ) {
175
  require_once( $this->pluginPath.'public/advanced-functions/organizer.php' );
176
 
177
  // Load Deprecated Template Tags
178
- require_once( 'template-tags-deprecated.php' );
 
 
179
 
180
  // Load Classes
181
  require_once( 'widget-list.class.php' );
@@ -193,6 +195,11 @@ if ( !class_exists( 'TribeEvents' ) ) {
193
  require_once( 'tribe-app-shop.class.php' );
194
  }
195
 
 
 
 
 
 
196
  }
197
 
198
  protected function addFilters() {
@@ -296,6 +303,7 @@ if ( !class_exists( 'TribeEvents' ) ) {
296
  $this->pastSlug = sanitize_title(__('past', 'tribe-events-calendar'));
297
  $this->postTypeArgs['rewrite']['slug'] = sanitize_title($this->rewriteSlugSingular);
298
  $this->postVenueTypeArgs['rewrite']['slug'] = sanitize_title(__( 'venue', 'tribe-events-calendar' ));
 
299
  $this->currentDay = '';
300
  $this->errors = '';
301
  TribeEventsQuery::init();
@@ -303,7 +311,7 @@ if ( !class_exists( 'TribeEvents' ) ) {
303
 
304
  //If the custom post type's rewrite rules have not been generated yet, flush them. (This can happen on reactivations.)
305
  if(is_array(get_option('rewrite_rules')) && !array_key_exists($this->rewriteSlugSingular.'/[^/]+/([^/]+)/?$',get_option('rewrite_rules'))) {
306
- $this->flushRewriteRules();
307
  }
308
  self::debug(sprintf(__('Initializing Tribe Events on %s','tribe-events-calendar'),date('M, jS \a\t h:m:s a')));
309
  $this->maybeMigrateDatabase();
@@ -599,8 +607,9 @@ if ( !class_exists( 'TribeEvents' ) ) {
599
  return $title;
600
  }
601
 
 
602
  public function addDateToRecurringEvents($permalink, $post) {
603
- if( function_exists('tribe_is_recurring_event') && $post->post_type == self::POSTTYPE && tribe_is_recurring_event($post->ID) && !is_search()) {
604
  if( is_admin() && (!isset($post->EventStartDate) || !$post->EventStartDate) ) {
605
  if( isset($_REQUEST['eventDate'] ) ) {
606
  $post->EventStartDate = $_REQUEST['eventDate'];
@@ -1383,8 +1392,9 @@ if ( !class_exists( 'TribeEvents' ) ) {
1383
  *
1384
  * @link http://codex.wordpress.org/Custom_Queries#Permalinks_for_Custom_Archives
1385
  */
1386
- public function flushRewriteRules() {
1387
- global $wp_rewrite;
 
1388
  $wp_rewrite->flush_rules();
1389
  // in case this was called too early, let's get it in the end.
1390
  add_action('shutdown', array('TribeEvents', 'flushRewriteRules'));
@@ -1420,6 +1430,12 @@ if ( !class_exists( 'TribeEvents' ) ) {
1420
 
1421
  }
1422
 
 
 
 
 
 
 
1423
  $base = trailingslashit( $this->rewriteSlug );
1424
  $baseSingle = trailingslashit( $this->rewriteSlugSingular );
1425
  $baseTax = trailingslashit( $this->taxRewriteSlug );
@@ -1573,12 +1589,12 @@ if ( !class_exists( 'TribeEvents' ) ) {
1573
  case 'single':
1574
  global $post;
1575
  $p = $secondary ? $secondary : $post;
1576
- $link = trailingslashit(get_permalink($p));
1577
  return $link;
1578
  case 'all':
1579
  remove_filter( 'post_type_link', array($this, 'addDateToRecurringEvents') );
1580
  $eventUrl = add_query_arg('eventDisplay', 'all', get_permalink() );
1581
- add_filter( 'post_type_link', array($this, 'addDateToRecurringEvents') );
1582
  return $eventUrl;
1583
  default:
1584
  return $eventUrl;
@@ -1682,7 +1698,7 @@ if ( !class_exists( 'TribeEvents' ) ) {
1682
  * @return void
1683
  */
1684
  public function on_deactivate( ) {
1685
- $this->flushRewriteRules();
1686
  }
1687
 
1688
  /**
16
  const VENUE_POST_TYPE = 'tribe_venue';
17
  const ORGANIZER_POST_TYPE = 'tribe_organizer';
18
  const PLUGIN_DOMAIN = 'tribe-events-calendar';
19
+ const VERSION = '2.0.10';
20
  const FEED_URL = 'http://tri.be/category/products/feed/';
21
  const INFO_API_URL = 'http://wpapi.org/api/plugin/the-events-calendar.php';
22
  const WP_PLUGIN_URL = 'http://wordpress.org/extend/plugins/the-events-calendar/';
43
  'public' => true,
44
  'rewrite' => false,
45
  'show_ui' => true,
46
+ 'show_in_nav_menus' => false,
47
  'show_in_menu' => 0,
48
  'menu_position' => 6,
49
  'supports' => array(''),
156
  *Load all the required library files.
157
  **/
158
  protected function loadLibraries() {
 
159
  // Exceptions Helper
160
  require_once( 'tribe-event-exception.class.php' );
161
 
175
  require_once( $this->pluginPath.'public/advanced-functions/organizer.php' );
176
 
177
  // Load Deprecated Template Tags
178
+ if ( ! defined( 'TRIBE_DISABLE_DEPRECATED_TAGS' ) ) {
179
+ require_once( 'template-tags-deprecated.php' );
180
+ }
181
 
182
  // Load Classes
183
  require_once( 'widget-list.class.php' );
195
  require_once( 'tribe-app-shop.class.php' );
196
  }
197
 
198
+ // Tickets
199
+ require_once( 'tickets/tribe-ticket-object.php' );
200
+ require_once( 'tickets/tribe-tickets.php' );
201
+ require_once( 'tickets/tribe-tickets-metabox.php' );
202
+
203
  }
204
 
205
  protected function addFilters() {
303
  $this->pastSlug = sanitize_title(__('past', 'tribe-events-calendar'));
304
  $this->postTypeArgs['rewrite']['slug'] = sanitize_title($this->rewriteSlugSingular);
305
  $this->postVenueTypeArgs['rewrite']['slug'] = sanitize_title(__( 'venue', 'tribe-events-calendar' ));
306
+ $this->postVenueTypeArgs['show_in_nav_menus'] = class_exists( 'TribeEventsPro' ) ? true : false;
307
  $this->currentDay = '';
308
  $this->errors = '';
309
  TribeEventsQuery::init();
311
 
312
  //If the custom post type's rewrite rules have not been generated yet, flush them. (This can happen on reactivations.)
313
  if(is_array(get_option('rewrite_rules')) && !array_key_exists($this->rewriteSlugSingular.'/[^/]+/([^/]+)/?$',get_option('rewrite_rules'))) {
314
+ TribeEvents::flushRewriteRules();
315
  }
316
  self::debug(sprintf(__('Initializing Tribe Events on %s','tribe-events-calendar'),date('M, jS \a\t h:m:s a')));
317
  $this->maybeMigrateDatabase();
607
  return $title;
608
  }
609
 
610
+
611
  public function addDateToRecurringEvents($permalink, $post) {
612
+ if( function_exists('tribe_is_recurring_event') && $post->post_type == self::POSTTYPE && tribe_is_recurring_event($post->ID) && !is_search()) {
613
  if( is_admin() && (!isset($post->EventStartDate) || !$post->EventStartDate) ) {
614
  if( isset($_REQUEST['eventDate'] ) ) {
615
  $post->EventStartDate = $_REQUEST['eventDate'];
1392
  *
1393
  * @link http://codex.wordpress.org/Custom_Queries#Permalinks_for_Custom_Archives
1394
  */
1395
+ public static function flushRewriteRules() {
1396
+
1397
+ global $wp_rewrite;
1398
  $wp_rewrite->flush_rules();
1399
  // in case this was called too early, let's get it in the end.
1400
  add_action('shutdown', array('TribeEvents', 'flushRewriteRules'));
1430
 
1431
  }
1432
 
1433
+ $this->rewriteSlug = sanitize_title( $this->getOption( 'eventsSlug', 'events' ) );
1434
+ $this->rewriteSlugSingular = sanitize_title( $this->getOption( 'singleEventSlug', 'event' ) );
1435
+ $this->taxRewriteSlug = $this->rewriteSlug . '/' . sanitize_title( __( 'category', 'tribe-events-calendar' ) );
1436
+ $this->tagRewriteSlug = $this->rewriteSlug . '/' . sanitize_title( __( 'tag', 'tribe-events-calendar' ) );
1437
+
1438
+
1439
  $base = trailingslashit( $this->rewriteSlug );
1440
  $baseSingle = trailingslashit( $this->rewriteSlugSingular );
1441
  $baseTax = trailingslashit( $this->taxRewriteSlug );
1589
  case 'single':
1590
  global $post;
1591
  $p = $secondary ? $secondary : $post;
1592
+ $link = get_permalink($p);
1593
  return $link;
1594
  case 'all':
1595
  remove_filter( 'post_type_link', array($this, 'addDateToRecurringEvents') );
1596
  $eventUrl = add_query_arg('eventDisplay', 'all', get_permalink() );
1597
+ add_filter( 'post_type_link', array( $this, 'addDateToRecurringEvents' ), 10, 2 );
1598
  return $eventUrl;
1599
  default:
1600
  return $eventUrl;
1698
  * @return void
1699
  */
1700
  public function on_deactivate( ) {
1701
+ TribeEvents::flushRewriteRules();
1702
  }
1703
 
1704
  /**
lib/tickets/tribe-ticket-object.php ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( !class_exists( 'TribeEventsTicketObject' ) ) {
3
+ class TribeEventsTicketObject {
4
+
5
+ /**
6
+ * @var
7
+ */
8
+ public $ID;
9
+ /**
10
+ * @var string
11
+ */
12
+ public $name;
13
+
14
+ /**
15
+ * @var string
16
+ */
17
+ public $description;
18
+
19
+ /**
20
+ * @var float
21
+ */
22
+ public $price;
23
+ /**
24
+ * @var string
25
+ */
26
+ public $admin_link;
27
+ /**
28
+ * @var string
29
+ */
30
+ public $frontend_link;
31
+
32
+ /**
33
+ * @var
34
+ */
35
+ public $provider_class;
36
+
37
+ /**
38
+ * @var int
39
+ */
40
+ public $stock;
41
+ /**
42
+ * @var int
43
+ */
44
+ public $qty_sold;
45
+
46
+ /**
47
+ * @var
48
+ */
49
+ public $start_date;
50
+
51
+ /**
52
+ * @var
53
+ */
54
+ public $end_date;
55
+
56
+ }
57
+ }
lib/tickets/tribe-tickets-attendees.php ADDED
@@ -0,0 +1,168 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ if ( !class_exists( 'WP_List_Table' ) ) {
4
+ require_once( ABSPATH . 'wp-admin/includes/class-wp-list-table.php' );
5
+ }
6
+
7
+
8
+ class TribeEventsTicketsAttendeesTable extends WP_List_Table {
9
+
10
+ function __construct() {
11
+ global $status, $page;
12
+
13
+ parent::__construct( array( 'singular' => 'attendee', 'plural' => 'attendees', 'ajax' => true ) );
14
+ }
15
+
16
+ function search_box() {
17
+ return;
18
+ }
19
+
20
+ function get_columns() {
21
+ $columns = array( 'cb' => '<input type="checkbox" />',
22
+ 'order_id' => __( 'Order #', 'tribe-events-calendar' ),
23
+ 'order_status' => __( 'Order Status', 'tribe-events-calendar' ),
24
+ 'ticket' => __( 'Ticket', 'tribe-events-calendar' ),
25
+ 'attendee_id' => __( 'Ticket #', 'tribe-events-calendar' ),
26
+ 'security' => __( 'Security Code', 'tribe-events-calendar' ),
27
+ 'check_in' => __( 'Check in', 'tribe-events-calendar' ) );
28
+ return $columns;
29
+ }
30
+
31
+
32
+ function column_default() {
33
+ return '';
34
+ }
35
+
36
+ function column_cb( $item ) {
37
+ return sprintf( '<input type="checkbox" name="%1$s[]" value="%2$s" />', esc_attr( $this->_args['singular'] ), esc_attr( $item['attendee_id'] . "|" . $item['provider'] ) );
38
+ }
39
+
40
+ function column_order_id( $item ) {
41
+ return sprintf( '<a class="row-title" href="%s">%s</a>', esc_url( get_edit_post_link( $item['order_id'], true ) ), esc_html( $item['order_id'] ) );
42
+ }
43
+
44
+ function column_order_status( $item ) {
45
+
46
+ $icon = "";
47
+
48
+ if ( strtolower( $item['order_status'] ) !== 'completed' ) {
49
+ $tec = TribeEvents::instance();
50
+ $icon = sprintf( "<span class='warning'><img src='%s'/></span> ", trailingslashit( $tec->pluginUrl ) . 'resources/warning.png' );
51
+ }
52
+
53
+ return $icon . ucwords( $item['order_status'] );
54
+ }
55
+
56
+ function column_attendee_id( $item ) {
57
+ return $item['attendee_id'];
58
+ }
59
+
60
+ function column_ticket( $item ) {
61
+ return $item['ticket'];
62
+ }
63
+
64
+ function column_security( $item ) {
65
+ return $item['security'];
66
+ }
67
+
68
+ function column_check_in( $item ) {
69
+ $checkin = sprintf( '<a href="#" data-attendee-id="%d" data-provider="%s" class="button-secondary tickets_checkin">%s</a>', esc_attr( $item['attendee_id'] ), esc_attr( $item['provider'] ), __( 'Check in', 'tribe-events-calendar' ) );
70
+ $uncheckin = sprintf( '<span class="delete"><a href="#" data-attendee-id="%d" data-provider="%s" class="tickets_uncheckin">%s</a></span>', esc_attr( $item['attendee_id'] ), esc_attr( $item['provider'] ), __( 'Undo Check in', 'tribe-events-calendar' ) );
71
+
72
+ return $checkin . $uncheckin;
73
+ }
74
+
75
+ function single_row( $item ) {
76
+ static $row_class = '';
77
+ $row_class = ( $row_class == '' ? ' alternate ' : '' );
78
+
79
+ $checked = '';
80
+ if ( intval( $item["checkedin"] ) === 1 )
81
+ $checked = ' tickets_checked ';
82
+
83
+ echo '<tr class="' . sanitize_html_class( $row_class ) . $checked . '">';
84
+ $this->single_row_columns( $item );
85
+ echo '</tr>';
86
+ }
87
+
88
+
89
+ function extra_tablenav( $which ) {
90
+
91
+ if ( 'top' == $which )
92
+ echo sprintf( '%s: <input type="text" name="filter_attendee" id="filter_attendee" value="">', __( "Filter by ticket #, order # or security code", "tribe-events-calendar" ) );
93
+
94
+ }
95
+
96
+ function get_bulk_actions() {
97
+ $actions = array( 'check_in' => __( 'Check in', 'tribe-events-calendar' ), 'uncheck_in' => __( 'Undo Check in', 'tribe-events-calendar' ) );
98
+ return $actions;
99
+
100
+ }
101
+
102
+
103
+ function process_bulk_action() {
104
+ if ( 'check_in' === $this->current_action() ) {
105
+ if ( isset( $_GET['attendee'] ) ) {
106
+
107
+ foreach ( $_GET['attendee'] as $attendee_provider ) {
108
+ $vars = explode( "|", $attendee_provider );
109
+ if ( isset( $vars[1] ) ) {
110
+ $obj = call_user_func( array( $vars[1], 'get_instance' ) );
111
+ $obj->checkin( $vars[0] );
112
+ }
113
+
114
+ }
115
+
116
+ }
117
+ }
118
+
119
+
120
+ if ( 'uncheck_in' === $this->current_action() ) {
121
+ if ( isset( $_GET['attendee'] ) ) {
122
+
123
+ foreach ( $_GET['attendee'] as $attendee_provider ) {
124
+ $vars = explode( "|", $attendee_provider );
125
+ if ( isset( $vars[1] ) ) {
126
+ $obj = call_user_func( array( $vars[1], 'get_instance' ) );
127
+ $obj->uncheckin( $vars[0] );
128
+ }
129
+
130
+ }
131
+
132
+ }
133
+ }
134
+
135
+ }
136
+
137
+ function prepare_items() {
138
+
139
+ global $wpdb;
140
+
141
+ $this->process_bulk_action();
142
+
143
+ $per_page = 10000;
144
+
145
+ $columns = $this->get_columns();
146
+ $hidden = array();
147
+ $sortable = array();
148
+
149
+ $this->_column_headers = array( $columns, $hidden, $sortable );
150
+
151
+ $current_page = $this->get_pagenum();
152
+
153
+ $event_id = isset( $_GET['event_id'] ) ? $_GET['event_id'] : 0;
154
+
155
+ $items = TribeEventsTickets::get_event_attendees( $event_id );
156
+
157
+ $this->items = $items;
158
+
159
+ $total_items = count( $this->items );
160
+
161
+ $this->set_pagination_args( array( 'total_items' => $total_items,
162
+ 'per_page' => $per_page,
163
+ 'total_pages' => ceil( $total_items / $per_page ) ) );
164
+
165
+ }
166
+
167
+
168
+ }
lib/tickets/tribe-tickets-metabox.php ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class TribeEventsTicketsMetabox {
4
+
5
+ public static function do_meta_box( $post_id ) {
6
+ $modules = apply_filters( 'tribe_events_tickets_modules', NULL );
7
+ if ( empty( $modules ) )
8
+ return;
9
+
10
+ add_meta_box( 'tribetickets', __( 'Tickets', 'tribe-events-calendar' ), array( 'TribeEventsTicketsMetabox',
11
+ 'do_modules_metaboxes' ), TribeEvents::POSTTYPE, 'normal', 'high' );
12
+ }
13
+
14
+ public static function do_modules_metaboxes( $post_id ) {
15
+
16
+ $modules = apply_filters( 'tribe_events_tickets_modules', NULL );
17
+ if ( empty( $modules ) )
18
+ return;
19
+
20
+ foreach ( $modules as $class => $title ) {
21
+ if ( class_exists( $class ) ) {
22
+ $obj = call_user_func( array( $class, 'get_instance' ) );
23
+ $obj->do_meta_box( $post_id );
24
+ }
25
+ }
26
+ }
27
+
28
+ public static function add_admin_scripts( $hook ) {
29
+ global $post;
30
+
31
+ if ( ( $hook != 'post-new.php' && $hook != 'post.php' ) || TribeEvents::POSTTYPE != $post->post_type )
32
+ return;
33
+
34
+ wp_enqueue_script( 'events-tickets', plugins_url( 'resources/tickets.js', dirname( dirname( __FILE__ ) ) ) );
35
+ wp_enqueue_style( 'events-tickets', plugins_url( 'resources/tickets.css', dirname( dirname( __FILE__ ) ) ) );
36
+
37
+
38
+ }
39
+
40
+ }
41
+
42
+ add_action( 'add_meta_boxes', array( 'TribeEventsTicketsMetabox', 'do_meta_box' ) );
43
+ add_action( 'admin_enqueue_scripts', array( 'TribeEventsTicketsMetabox', 'add_admin_scripts' ) );
lib/tickets/tribe-tickets.php ADDED
@@ -0,0 +1,553 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ if ( ! class_exists( 'TribeEventsTickets' ) ) {
4
+ abstract class TribeEventsTickets {
5
+
6
+ // All TribeEventsTickets api consumers. It's static, so it's shared across childs.
7
+ protected static $active_modules = array();
8
+ public static $active = false;
9
+
10
+ public $className;
11
+ private $parentPath;
12
+ private $parentUrl;
13
+ private $attendees_slug = 'tickets-attendees';
14
+ private $attendees_page;
15
+
16
+ // prevent re-doing the metabox by different childs
17
+ private static $done_metabox = false;
18
+ private static $done_attendees_admin_page = false;
19
+
20
+ // start API Definitions
21
+ // Child classes must implement all these functions / properties
22
+
23
+ public $pluginName;
24
+ protected $pluginPath;
25
+ protected $pluginUrl;
26
+
27
+ abstract function get_event_reports_link( $event_id );
28
+
29
+ abstract function get_ticket_reports_link( $event_id, $ticket_id );
30
+
31
+ abstract function save_ticket( $event_id, $ticket, $raw_data = array() );
32
+
33
+ abstract protected function get_tickets( $event_id );
34
+
35
+ abstract protected function get_attendees( $event_id );
36
+
37
+ abstract public function checkin( $attendee_id );
38
+
39
+ abstract public function uncheckin( $attendee_id );
40
+
41
+ abstract function get_ticket( $event_id, $ticket_id );
42
+
43
+ abstract function delete_ticket( $event_id, $ticket_id );
44
+
45
+ abstract function do_metabox_advanced_options( $event_id, $ticket_id );
46
+
47
+ abstract function front_end_tickets_form( $content );
48
+
49
+ abstract static function get_instance();
50
+
51
+ // end API Definitions
52
+
53
+ function __construct() {
54
+
55
+ // As this is an abstract class, we want to know which child
56
+ // instantiated it
57
+ $this->className = get_class( $this );
58
+
59
+ $this->parentPath = trailingslashit( dirname( dirname( dirname( __FILE__ ) ) ) );
60
+ $this->parentUrl = trailingslashit( plugins_url( '', $this->parentPath ) );
61
+
62
+ // Register all TribeEventsTickets api consumers
63
+ self::$active_modules[$this->className] = $this->pluginName;
64
+
65
+ self::$active = true;
66
+
67
+ if ( is_admin() ) {
68
+ add_action( 'tribe_events_event_save', array( $this, 'save_tickets' ), 10, 1 );
69
+ add_action( 'tribe_events_tickets_metabox_advanced', array( $this, 'do_metabox_advanced_options' ), 10, 2 );
70
+ }
71
+
72
+ add_filter( 'tribe_events_tickets_modules', array( $this, 'modules' ) );
73
+
74
+ // Admin AJAX actions
75
+ add_action( 'wp_ajax_tribe-ticket-add-' . $this->className, array( $this, 'ajax_handler_ticket_add' ) );
76
+ add_action( 'wp_ajax_tribe-ticket-delete-' . $this->className, array( $this, 'ajax_handler_ticket_delete' ) );
77
+ add_action( 'wp_ajax_tribe-ticket-edit-' . $this->className, array( $this, 'ajax_handler_ticket_edit' ) );
78
+ add_action( 'wp_ajax_tribe-ticket-checkin-' . $this->className, array( $this, 'ajax_handler_attendee_checkin' ) );
79
+ add_action( 'wp_ajax_tribe-ticket-uncheckin-' . $this->className, array( $this, 'ajax_handler_attendee_uncheckin' ) );
80
+
81
+ // Attendees list
82
+ add_filter( 'post_row_actions', array( $this, 'attendees_row_action' ) );
83
+ add_action( 'admin_menu', array( $this, 'attendees_page_register' ) );
84
+
85
+ // Front end
86
+ add_filter( 'tribe_get_ticket_form', array( $this, 'front_end_tickets_form' ) );
87
+
88
+ }
89
+
90
+ public final function do_meta_box( $post_id ) {
91
+
92
+ if ( self::$done_metabox )
93
+ return;
94
+
95
+ $startMinuteOptions = TribeEventsViewHelpers::getMinuteOptions( null );
96
+ $endMinuteOptions = TribeEventsViewHelpers::getMinuteOptions( null );
97
+ $startHourOptions = TribeEventsViewHelpers::getHourOptions( null, true );
98
+ $endHourOptions = TribeEventsViewHelpers::getHourOptions( null, false );
99
+ $startMeridianOptions = TribeEventsViewHelpers::getMeridianOptions( null, true );
100
+ $endMeridianOptions = TribeEventsViewHelpers::getMeridianOptions( null );
101
+
102
+ $tickets = self::get_event_tickets( $post_id );
103
+ include $this->parentPath . 'admin-views/tickets-meta-box.php';
104
+ self::$done_metabox = true;
105
+
106
+ }
107
+
108
+ protected final function load_pdf_libraries() {
109
+ if ( class_exists( 'FPDF' ) )
110
+ return;
111
+
112
+ include $this->parentPath . 'vendor/fpdf/fpdf.php';
113
+
114
+
115
+ }
116
+
117
+ public final function generate_attendees_PDF( $tickets_list ) {
118
+
119
+ $this->load_pdf_libraries();
120
+
121
+ $pdf = new FPDF();
122
+ $ecp = TribeEvents::instance();
123
+
124
+ $pdf->AddFont('OpenSans','','opensans.php');
125
+ $pdf->AddFont('SteelFish','','steelfish.php');
126
+
127
+ $pdf->SetTitle('EventTicket');
128
+ $pdf->SetAuthor('The Events Calendar');
129
+ $pdf->SetCreator('The Events Calendar');
130
+
131
+ $defaults = array( 'event_id' => 0,
132
+ 'ticket_name' => '',
133
+ 'holder_name' => '',
134
+ 'order_id' => '',
135
+ 'ticket_id' => '',
136
+ 'security_code' => ''
137
+ );
138
+
139
+ foreach ( $tickets_list as $ticket ) {
140
+
141
+ $ticket = wp_parse_args( $ticket, $defaults );
142
+ $event = get_post( $ticket['event_id'] );
143
+
144
+ $venue_id = tribe_get_venue_id( $event->ID );
145
+ $venue = ( !empty( $venue_id ) ) ? get_post( $venue_id )->post_title : '';
146
+
147
+ $address = tribe_get_address( $event->ID );
148
+ $zip = tribe_get_zip( $event->ID );
149
+ $state = tribe_get_stateprovince( $event->ID );
150
+ $city = tribe_get_city( $event->ID );
151
+
152
+ $pdf->AddPage();
153
+
154
+ $pdf->SetDrawColor( 28, 166, 205 );
155
+ $pdf->SetFillColor( 28, 166, 205 );
156
+ $pdf->Rect( 15, 10, 180, 34, 'F' );
157
+
158
+ $pdf->SetTextColor( 255 );
159
+
160
+ $pdf->SetFont( 'OpenSans', '', 10 );
161
+ $pdf->SetXY( 30, 15 );
162
+ $pdf->Write( 5, __( 'EVENT NAME:', 'tribe-events-calendar' ) );
163
+
164
+ $pdf->SetXY( 30, 28 );
165
+ $pdf->SetFont( 'SteelFish', '', 53 );
166
+
167
+ $title = strtoupper( utf8_decode( $event->post_title ) );
168
+ $size = 53;
169
+
170
+ while ( $pdf->GetStringWidth( $title ) > 151 ) {
171
+ $size--;
172
+ $pdf->SetFontSize( $size );
173
+ }
174
+
175
+ $pdf->Write( 5, $title );
176
+
177
+ $pdf->SetTextColor( 41 );
178
+
179
+ $pdf->SetFont( 'OpenSans', '', 10 );
180
+ $pdf->SetXY( 30, 50 );
181
+ $pdf->Write( 5, __( 'TICKET HOLDER:', 'tribe-events-calendar' ) );
182
+ $pdf->SetXY( 104, 50 );
183
+ $pdf->Write( 5, __( 'LOCATION:', 'tribe-events-calendar' ) );
184
+
185
+ $pdf->SetFont( 'SteelFish', '', 30 );
186
+
187
+ $pdf->SetXY( 30, 59 );
188
+ $holder = strtoupper( utf8_decode( $ticket['holder_name'] ) );
189
+ $size = 30;
190
+ while ( $pdf->GetStringWidth( $holder ) > 70 ) {
191
+ $size--;
192
+ $pdf->SetFontSize( $size );
193
+ }
194
+ $pdf->Write( 5, $holder );
195
+
196
+
197
+ $pdf->SetXY( 104, 59 );
198
+ $venue = strtoupper( utf8_decode( $venue ) );
199
+ $size = 30;
200
+ while ( $pdf->GetStringWidth( $venue ) > 70 ) {
201
+ $size--;
202
+ $pdf->SetFontSize( $size );
203
+ }
204
+ $pdf->Write( 5, $venue );
205
+
206
+ $pdf->SetXY( 104, 71 );
207
+
208
+ $address = strtoupper( utf8_decode( $address ) );
209
+ $size = 30;
210
+ while ( $pdf->GetStringWidth( $address ) > 70 ) {
211
+ $size--;
212
+ $pdf->SetFontSize( $size );
213
+ }
214
+ $pdf->Write( 5, $address );
215
+
216
+ $pdf->SetXY( 104, 83 );
217
+
218
+ $address2 = array( $city, $state, $zip );
219
+ $address2 = array_filter( $address2 );
220
+ $address2 = join( ', ', $address2 );
221
+ $address2 = strtoupper( utf8_decode( $address2 ) );
222
+
223
+ $size = 30;
224
+ while ( $pdf->GetStringWidth( $address2 ) > 70 ) {
225
+ $size--;
226
+ $pdf->SetFontSize( $size );
227
+ }
228
+ $pdf->Write( 5, $address2 );
229
+
230
+ $pdf->Line( 15, 97, 195, 97 );
231
+
232
+ $pdf->SetFont( 'OpenSans', '', 10 );
233
+ $pdf->SetXY( 30, 105 );
234
+ $pdf->Write( 5, __( 'ORDER:', 'tribe-events-calendar' ) );
235
+ $pdf->SetXY( 80, 105 );
236
+ $pdf->Write( 5, __( 'TICKET:', 'tribe-events-calendar' ) );
237
+ $pdf->SetXY( 120, 105 );
238
+ $pdf->Write( 5, __( 'VERIFICATION:', 'tribe-events-calendar' ) );
239
+
240
+ $pdf->SetFont( 'SteelFish', '', 53 );
241
+ $pdf->SetXY( 30, 118 );
242
+ $pdf->Write( 5, $ticket['order_id'] );
243
+ $pdf->SetXY( 80, 118 );
244
+ $pdf->Write( 5, $ticket['ticket_id'] );
245
+ $pdf->SetXY( 120, 118 );
246
+ $pdf->Write( 5, $ticket['security_code'] );
247
+
248
+ $pdf->Rect( 15, 135, 180, 15, 'F' );
249
+
250
+ $pdf->SetTextColor( 255 );
251
+
252
+ $pdf->SetFont( 'OpenSans', '', 10 );
253
+ $pdf->SetXY( 30, 140 );
254
+ $pdf->Write( 5, get_bloginfo('name') );
255
+ $pdf->SetXY( 104, 140 );
256
+ $pdf->Write( 5, get_home_url() );
257
+
258
+
259
+ }
260
+
261
+ $upload_path = wp_upload_dir();
262
+ $upload_url = $upload_path['url'];
263
+ $upload_path = $upload_path['path'];
264
+
265
+ $filename = wp_unique_filename( $upload_path, sanitize_file_name( md5( time() ) ) . '.pdf' );
266
+
267
+ $upload_path = trailingslashit( $upload_path ) . $filename;
268
+ $upload_url = trailingslashit( $upload_url ) . $filename;
269
+
270
+ $pdf->Output( $upload_path, 'F' );
271
+
272
+ return array( $upload_path, $upload_url );
273
+
274
+ }
275
+
276
+ /* AJAX Handlers */
277
+
278
+ public final function ajax_handler_ticket_add() {
279
+
280
+ if ( ! isset( $_POST["formdata"] ) ) $this->ajax_error( 'Bad post' );
281
+ if ( ! isset( $_POST["post_ID"] ) ) $this->ajax_error( 'Bad post' );
282
+
283
+ $data = wp_parse_args( $_POST["formdata"] );
284
+ $post_id = $_POST["post_ID"];
285
+
286
+ if ( !isset( $data["ticket_provider"] ) || !$this->module_is_valid( $data["ticket_provider"] ) ) $this->ajax_error( 'Bad module' );
287
+
288
+ $ticket = new TribeEventsTicketObject();
289
+
290
+ $ticket->ID = isset( $data["ticket_id"] ) ? $data["ticket_id"] : null;
291
+ $ticket->name = isset( $data["ticket_name"] ) ? $data["ticket_name"] : null;
292
+ $ticket->description = isset( $data["ticket_description"] ) ? $data["ticket_description"] : null;
293
+ $ticket->price = isset( $data["ticket_price"] ) ? trim( $data["ticket_price"] ) : 0;
294
+
295
+ if ( empty( $ticket->price ) ) {
296
+ $ticket->price = 0;
297
+ } else {
298
+ //remove non-money characters
299
+ $ticket->price = preg_replace( '/[^0-9\.]/Uis', '', $ticket->price );
300
+ }
301
+
302
+ if ( !empty( $data['ticket_start_date'] ) ) {
303
+ $meridian = !empty( $data['ticket_start_meridian'] ) ? " " . $data['ticket_start_meridian'] : "";
304
+ $ticket->start_date = date( TribeDateUtils::DBDATETIMEFORMAT, strtotime( $data['ticket_start_date'] . " " . $data['ticket_start_hour'] . ":" . $data['ticket_start_minute'] . ":00" . $meridian ) );
305
+ }
306
+
307
+ if ( !empty( $data['ticket_end_date'] ) ) {
308
+ $meridian = !empty( $data['ticket_end_meridian'] ) ? " " . $data['ticket_end_meridian'] : "";
309
+ $ticket->end_date = date( TribeDateUtils::DBDATETIMEFORMAT, strtotime( $data['ticket_end_date'] . " " . $data['ticket_end_hour'] . ":" . $data['ticket_end_minute'] . ":00" . $meridian ) );
310
+ }
311
+
312
+ $ticket->provider_class = $this->className;
313
+
314
+ // Pass the control to the child object
315
+ $return = $this->save_ticket( $post_id, $ticket, $data );
316
+
317
+ // If saved OK, let's create a tickets list markup to return
318
+ if ( $return ) {
319
+ $tickets = $this->get_event_tickets( $post_id );
320
+ $return = $this->get_ticket_list_markup( $tickets );
321
+
322
+ $return = $this->notice( __( 'Your ticket has been saved.', 'tribe-events-calendar' ) ) . $return;
323
+ }
324
+
325
+ $this->ajax_ok( $return );
326
+ }
327
+
328
+ public final function ajax_handler_attendee_checkin() {
329
+
330
+ if ( ! isset( $_POST["order_ID"] ) || intval( $_POST["order_ID"] ) == 0 )
331
+ $this->ajax_error( 'Bad post' );
332
+ if ( ! isset( $_POST["provider"] ) || ! $this->module_is_valid( $_POST["provider"] ) )
333
+ $this->ajax_error( 'Bad module' );
334
+
335
+ $order_id = $_POST["order_ID"];
336
+
337
+ // Pass the control to the child object
338
+ $return = $this->checkin( $order_id );
339
+
340
+ $this->ajax_ok( $return );
341
+ }
342
+
343
+ public final function ajax_handler_attendee_uncheckin() {
344
+
345
+ if ( !isset( $_POST["order_ID"] ) || intval( $_POST["order_ID"] ) == 0 )
346
+ $this->ajax_error( 'Bad post' );
347
+ if ( !isset( $_POST["provider"] ) || !$this->module_is_valid( $_POST["provider"] ) )
348
+ $this->ajax_error( 'Bad module' );
349
+
350
+ $order_id = $_POST["order_ID"];
351
+
352
+ // Pass the control to the child object
353
+ $return = $this->uncheckin( $order_id );
354
+
355
+ $this->ajax_ok( $return );
356
+ }
357
+
358
+ public final function ajax_handler_ticket_delete() {
359
+
360
+ if ( ! isset( $_POST["post_ID"] ) )
361
+ $this->ajax_error( 'Bad post' );
362
+ if ( ! isset( $_POST["ticket_id"] ) )
363
+ $this->ajax_error( 'Bad post' );
364
+
365
+ $post_id = $_POST["post_ID"];
366
+ $ticket_id = $_POST["ticket_id"];
367
+
368
+ // Pass the control to the child object
369
+ $return = $this->delete_ticket( $post_id, $ticket_id );
370
+
371
+ // If deleted OK, let's create a tickets list markup to return
372
+ if ( $return ) {
373
+ $tickets = $this->get_event_tickets( $post_id );
374
+ $return = $this->get_ticket_list_markup( $tickets );
375
+
376
+ $return = $this->notice( __( 'Your ticket has been deleted.', 'tribe-events-calendar' ) ) . $return;
377
+ }
378
+
379
+ $this->ajax_ok( $return );
380
+ }
381
+
382
+ public final function ajax_handler_ticket_edit() {
383
+
384
+ if ( ! isset( $_POST["post_ID"] ) )
385
+ $this->ajax_error( 'Bad post' );
386
+ if ( ! isset( $_POST["ticket_id"] ) )
387
+ $this->ajax_error( 'Bad post' );
388
+
389
+ $post_id = $_POST["post_ID"];
390
+ $ticket_id = $_POST["ticket_id"];
391
+
392
+ $return = get_object_vars( $this->get_ticket( $post_id, $ticket_id ) );
393
+
394
+ ob_start();
395
+ $this->do_metabox_advanced_options( $post_id, $ticket_id );
396
+ $extra = ob_get_contents();
397
+ ob_end_clean();
398
+
399
+ $return["advanced_fields"] = $extra;
400
+
401
+ $this->ajax_ok( $return );
402
+ }
403
+
404
+ protected function notice( $msg ) {
405
+ return sprintf( '<div class="wrap"><div class="updated"><p>%s</p></div></div>', $msg );
406
+ }
407
+
408
+ protected final function ajax_error( $message = "" ) {
409
+ header( 'Content-type: application/json' );
410
+
411
+ echo json_encode( array( "success" => false,
412
+ "message" => $message ) );
413
+ exit;
414
+ }
415
+
416
+ protected final function ajax_ok( $data ) {
417
+ $return = array();
418
+ if ( is_object( $data ) ) {
419
+ $return = get_object_vars( $data );
420
+ } elseif ( is_array( $data ) || is_string( $data ) ) {
421
+ $return = $data;
422
+ } elseif ( is_bool( $data ) && !$data ) {
423
+ $this->ajax_error( "Something went wrong" );
424
+ }
425
+
426
+ header( 'Content-type: application/json' );
427
+ echo json_encode( array( "success" => true,
428
+ "data" => $return ) );
429
+ exit;
430
+ }
431
+
432
+ // end AJAX Handlers
433
+
434
+ // start Attendees
435
+
436
+ public function attendees_row_action( $actions ) {
437
+ global $post;
438
+
439
+ if ( $post->post_type == TribeEvents::POSTTYPE ) {
440
+
441
+
442
+ $url = add_query_arg( array( 'post_type' => TribeEvents::POSTTYPE,
443
+ 'page' => $this->attendees_slug,
444
+ 'event_id' => $post->ID ), admin_url( 'edit.php' ) );
445
+
446
+ $actions['tickets_attendees'] = sprintf( '<a title="%s" href="%s">%s</a>', __( 'See who purchased tickets to this event', 'tribe-events-calendar' ), esc_url( $url ), __( 'Attendees', 'tribe-events-calendar' ) );
447
+ }
448
+ return $actions;
449
+ }
450
+
451
+ public function attendees_page_register() {
452
+ if ( self::$done_attendees_admin_page )
453
+ return;
454
+
455
+ $this->attendees_page = add_submenu_page( null, 'Attendee list', 'Attendee list', 'edit_posts', $this->attendees_slug, array( $this, 'attendees_page_inside' ) );
456
+
457
+ add_action( 'admin_enqueue_scripts', array( $this, 'attendees_page_load_css_js' ) );
458
+
459
+ self::$done_attendees_admin_page = true;
460
+ }
461
+
462
+ public function attendees_page_load_css_js( $hook ) {
463
+
464
+ if ( $hook != $this->attendees_page )
465
+ return;
466
+
467
+ $ecp = TribeEvents::instance();
468
+
469
+ wp_enqueue_style( $this->attendees_slug, trailingslashit( $ecp->pluginUrl ) . '/resources/tickets-attendees.css' );
470
+ wp_enqueue_script( $this->attendees_slug, trailingslashit( $ecp->pluginUrl ) . '/resources/tickets-attendees.js', array( 'jquery' ) );
471
+ }
472
+
473
+ public function attendees_page_inside() {
474
+
475
+ require_once 'tribe-tickets-attendees.php';
476
+ $attendees_table = new TribeEventsTicketsAttendeesTable();
477
+ $attendees_table->prepare_items();
478
+
479
+ include $this->parentPath . 'admin-views/tickets-attendees.php';
480
+ }
481
+
482
+ final static public function get_event_attendees( $event_id ) {
483
+ $attendees = array();
484
+
485
+ foreach ( self::$active_modules as $class=> $module ) {
486
+ $obj = call_user_func( array( $class, 'get_instance' ) );
487
+ $attendees = array_merge( $attendees, $obj->get_attendees( $event_id ) );
488
+ }
489
+
490
+ return $attendees;
491
+ }
492
+
493
+
494
+ // endA ttendees
495
+
496
+ // start Helpers
497
+
498
+ private function module_is_valid( $module ) {
499
+ return array_key_exists( $module, self::$active_modules );
500
+ }
501
+
502
+ private function ticket_list_markup( $tickets = array() ) {
503
+ if ( ! empty( $tickets ) )
504
+ include $this->parentPath . 'admin-views/tickets-list.php';
505
+ }
506
+
507
+ private function get_ticket_list_markup( $tickets = array() ) {
508
+
509
+ ob_start();
510
+ $this->ticket_list_markup( $tickets );
511
+ $return = ob_get_contents();
512
+ ob_end_clean();
513
+
514
+ return $return;
515
+ }
516
+
517
+ protected function tr_class() {
518
+ echo "ticket_advanced ticket_advanced_" . $this->className;
519
+ }
520
+
521
+ public function modules() {
522
+ return self::$active_modules;
523
+ }
524
+
525
+ final static public function get_event_tickets( $event_id ) {
526
+
527
+ $tickets = array();
528
+
529
+ foreach ( self::$active_modules as $class=> $module ) {
530
+ $obj = call_user_func( array( $class, 'get_instance' ) );
531
+ $tickets = array_merge( $tickets, $obj->get_tickets( $event_id ) );
532
+ }
533
+
534
+ return $tickets;
535
+ }
536
+
537
+ public function getTemplateHierarchy( $template ) {
538
+
539
+ if ( substr( $template, -4 ) != '.php' ) {
540
+ $template .= '.php';
541
+ }
542
+
543
+ if ( $theme_file = locate_template( array( 'events/' . $template ) ) ) {
544
+ $file = $theme_file;
545
+ } else {
546
+ $file = $this->pluginPath . 'views/' . $template;
547
+ }
548
+ return apply_filters( 'tribe_events_tickets_template_' . $template, $file );
549
+ }
550
+
551
+ // end Helpers
552
+ }
553
+ }
lib/tribe-admin-events-list.class.php CHANGED
File without changes
lib/tribe-app-shop.class.php CHANGED
File without changes
lib/tribe-date-utils.class.php CHANGED
File without changes
lib/tribe-debug-bar.class.php CHANGED
File without changes
lib/tribe-event-api.class.php CHANGED
@@ -109,6 +109,9 @@ if (!class_exists('TribeEventsAPI')) {
109
 
110
  $tribe_ecp->do_action('tribe_events_event_save', $event_id);
111
 
 
 
 
112
  //update meta fields
113
  foreach ( $tribe_ecp->metaTags as $tag ) {
114
  $htmlElement = ltrim( $tag, '_' );
109
 
110
  $tribe_ecp->do_action('tribe_events_event_save', $event_id);
111
 
112
+ $cost = ( isset( $data['EventCost'] ) ) ? $data['EventCost'] : '';
113
+ $data['EventCost'] = $cost;
114
+
115
  //update meta fields
116
  foreach ( $tribe_ecp->metaTags as $tag ) {
117
  $htmlElement = ltrim( $tag, '_' );
lib/tribe-event-exception.class.php CHANGED
File without changes
lib/tribe-event-query.class.php CHANGED
File without changes
lib/tribe-field.class.php CHANGED
File without changes
lib/tribe-presstrends.php CHANGED
@@ -9,47 +9,52 @@ function presstrends_plugin_tribe_events_calendar() {
9
  // Start of Metrics
10
  global $wpdb;
11
  $data = get_transient( 'presstrends_data_tribe-events-calendar' );
12
- if (!$data || $data == ''){
13
  $api_base = 'http://api.presstrends.io/index.php/api/pluginsites/update/auth/';
14
- $url = $api_base . $auth . '/api/' . $api_key . '/';
15
- $data = array();
16
- $count_posts = wp_count_posts();
17
- $count_pages = wp_count_posts('page');
18
  $comments_count = wp_count_comments();
19
- $theme_data = get_theme_data(get_stylesheet_directory() . '/style.css');
20
- $plugin_count = count(get_option('active_plugins'));
21
- $all_plugins = get_plugins();
22
- $plugin_name = null;
 
 
 
 
 
 
23
  $plugin_name = '&';
24
- foreach($all_plugins as $plugin_file => $plugin_info) {
25
- $plugin_name .= $plugin_info['Name'];
26
- $plugin_name .= '&';
27
  }
28
- // This line has been edited from the default PressTrends code. Make sure to keep it edited with any future changes.
29
- $plugin_data = get_plugin_data( trailingslashit( dirname( dirname ( __FILE__ ) ) ) . 'the-events-calendar.php' );
30
- $plugin_version = $plugin_data['Version'];
31
- $posts_with_comments = $wpdb->get_var("SELECT COUNT(*) FROM {$wpdb->prefix}posts WHERE post_type='post' AND comment_count > 0");
32
- $comments_to_posts = number_format(($posts_with_comments / $count_posts->publish) * 100, 0, '.', '');
33
- $pingback_result = $wpdb->get_var('SELECT COUNT(comment_ID) FROM '.$wpdb->comments.' WHERE comment_type = "pingback"');
34
- $data['url'] = stripslashes(str_replace(array('http://', '/', ':' ), '', site_url()));
35
- $data['posts'] = $count_posts->publish;
36
- $data['pages'] = $count_pages->publish;
37
- $data['comments'] = $comments_count->total_comments;
38
- $data['approved'] = $comments_count->approved;
39
- $data['spam'] = $comments_count->spam;
40
- $data['pingbacks'] = $pingback_result;
41
- $data['post_conversion'] = $comments_to_posts;
42
- $data['theme_version'] = $plugin_version;
43
- $data['theme_name'] = urlencode($theme_data['Name']);
44
- $data['site_name'] = str_replace( ' ', '', get_bloginfo( 'name' ));
45
- $data['plugins'] = $plugin_count;
46
- $data['plugin'] = urlencode($plugin_name);
47
- $data['wpversion'] = get_bloginfo('version');
48
  foreach ( $data as $k => $v ) {
49
  $url .= $k . '/' . $v . '/';
50
  }
51
- $response = wp_remote_get( $url );
52
- set_transient('presstrends_data_tribe-events-calendar', $data, 60*60*24);
53
  }
54
  }
55
 
9
  // Start of Metrics
10
  global $wpdb;
11
  $data = get_transient( 'presstrends_data_tribe-events-calendar' );
12
+ if ( !$data || $data == '' ) {
13
  $api_base = 'http://api.presstrends.io/index.php/api/pluginsites/update/auth/';
14
+ $url = $api_base . $auth . '/api/' . $api_key . '/';
15
+
16
+ $count_posts = wp_count_posts();
17
+ $count_pages = wp_count_posts( 'page' );
18
  $comments_count = wp_count_comments();
19
+
20
+ // wp_get_theme was introduced in 3.4, for compatibility with older versions, let's do a workaround for now.
21
+ if ( function_exists( 'wp_get_theme' ) ) {
22
+ $theme_data = wp_get_theme();
23
+ $theme_name = urlencode( $theme_data->Name );
24
+ } else {
25
+ $theme_data = get_theme_data( get_stylesheet_directory() . '/style.css' );
26
+ $theme_name = $theme_data['Name'];
27
+ }
28
+
29
  $plugin_name = '&';
30
+ foreach ( get_plugins() as $plugin_info ) {
31
+ $plugin_name .= $plugin_info['Name'] . '&';
 
32
  }
33
+ // CHANGE __FILE__ PATH IF LOCATED OUTSIDE MAIN PLUGIN FILE
34
+ $plugin_data = get_plugin_data( __FILE__ );
35
+ $posts_with_comments = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->posts WHERE post_type='post' AND comment_count > 0" );
36
+ $data = array(
37
+ 'url' => stripslashes( str_replace( array( 'http://', '/', ':' ), '', site_url() ) ),
38
+ 'posts' => $count_posts->publish,
39
+ 'pages' => $count_pages->publish,
40
+ 'comments' => $comments_count->total_comments,
41
+ 'approved' => $comments_count->approved,
42
+ 'spam' => $comments_count->spam,
43
+ 'pingbacks' => $wpdb->get_var( "SELECT COUNT(comment_ID) FROM $wpdb->comments WHERE comment_type = 'pingback'" ),
44
+ 'post_conversion' => ( $count_posts->publish > 0 && $posts_with_comments > 0 ) ? number_format( ( $posts_with_comments / $count_posts->publish ) * 100, 0, '.', '' ) : 0,
45
+ 'theme_version' => $plugin_data['Version'],
46
+ 'theme_name' => $theme_name,
47
+ 'site_name' => str_replace( ' ', '', get_bloginfo( 'name' ) ),
48
+ 'plugins' => count( get_option( 'active_plugins' ) ),
49
+ 'plugin' => urlencode( $plugin_name ),
50
+ 'wpversion' => get_bloginfo( 'version' ),
51
+ );
52
+
53
  foreach ( $data as $k => $v ) {
54
  $url .= $k . '/' . $v . '/';
55
  }
56
+ wp_remote_get( $url );
57
+ set_transient( 'presstrends_data_tribe-events-calendar', $data, 60 * 60 * 24 );
58
  }
59
  }
60
 
lib/tribe-settings-tab.class.php CHANGED
File without changes
lib/tribe-settings.class.php CHANGED
File without changes
lib/tribe-templates.class.php CHANGED
@@ -236,6 +236,45 @@ if (!class_exists('TribeEventsTemplates')) {
236
  $wp_query->is_page = true; // don't show comments
237
  //$wp_query->is_single = false; // don't show comments
238
  $wp_query->is_singular = true;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
239
 
240
  }
241
 
236
  $wp_query->is_page = true; // don't show comments
237
  //$wp_query->is_single = false; // don't show comments
238
  $wp_query->is_singular = true;
239
+
240
+ if ( empty ( $wp_query->posts ) ) {
241
+
242
+ global $post;
243
+
244
+ $spoofed_post = array( "ID" => 1,
245
+ "post_author" => 1,
246
+ "post_date" => '1900-10-02 00:00:00',
247
+ "post_date_gmt" => '1900-10-02 00:00:00',
248
+ "post_content" => '',
249
+ "post_title" => '',
250
+ "post_excerpt" => '',
251
+ "post_status" => 'publish',
252
+ "comment_status" => 'closed',
253
+ "ping_status" => 'closed',
254
+ "post_password" => '',
255
+ "post_name" => 'post',
256
+ "to_ping" => '',
257
+ "pinged" => '',
258
+ "post_modified" => '1900-10-02 00:00:00',
259
+ "post_modified_gmt" => '1900-10-02 00:00:00',
260
+ "post_content_filtered" => '',
261
+ "post_parent" => 0,
262
+ "guid" => '',
263
+ "menu_order" => 0,
264
+ "post_type" => 'tribe_events',
265
+ "post_mime_type" => '',
266
+ "comment_count" => 0,
267
+ "EventStartDate" => '1900-10-02 00:00:00',
268
+ "EventEndDate" => '1900-10-02 00:00:00',
269
+ "filter" => 'raw' );
270
+
271
+ $post = (object)$spoofed_post;
272
+
273
+ $wp_query->post = $post;
274
+ $wp_query->posts[] = $post;
275
+ $wp_query->posts[] = $post;
276
+
277
+ }
278
 
279
  }
280
 
lib/tribe-the-events-calendar-import.class.php CHANGED
File without changes
lib/tribe-validate.class.php CHANGED
File without changes
lib/tribe-view-helpers.class.php CHANGED
File without changes
lib/widget-list.class.php CHANGED
File without changes
license.txt CHANGED
File without changes
public/advanced-functions/event.php CHANGED
File without changes
public/advanced-functions/organizer.php CHANGED
File without changes
public/advanced-functions/venue.php CHANGED
File without changes
public/template-tags/calendar.php CHANGED
File without changes
public/template-tags/date.php CHANGED
File without changes
public/template-tags/general.php CHANGED
File without changes
public/template-tags/google-map.php CHANGED
File without changes
public/template-tags/link.php CHANGED
@@ -131,7 +131,11 @@ if( class_exists( 'TribeEvents' ) ) {
131
  * @since 2.0
132
  */
133
  function tribe_get_event_link($event = null) {
134
- return trailingslashit( apply_filters( 'tribe_get_event_link', TribeEvents::instance()->getLink('single', $event), $event ) );
 
 
 
 
135
  }
136
 
137
  }
131
  * @since 2.0
132
  */
133
  function tribe_get_event_link($event = null) {
134
+ if ( '' == get_option('permalink_structure') ) {
135
+ return apply_filters( 'tribe_get_event_link', TribeEvents::instance()->getLink('single', $event), $event );
136
+ } else {
137
+ return trailingslashit( apply_filters( 'tribe_get_event_link', TribeEvents::instance()->getLink('single', $event), $event ) );
138
+ }
139
  }
140
 
141
  }
public/template-tags/loop.php CHANGED
File without changes
public/template-tags/options.php CHANGED
File without changes
public/template-tags/organizer.php CHANGED
File without changes
public/template-tags/venue.php CHANGED
File without changes
readme.txt CHANGED
@@ -1,11 +1,11 @@
1
  === The Events Calendar ===
2
 
3
- Contributors: ModernTribe, PaulHughes01, roblagatta, jonahcoyote, mzaweb, codearachnid, ryancurban, barryhughes, peterchester, reid.peifer, shane.pearlman
4
  Tags: modern tribe, tribe, widget, events, tooltips, grid, month, list, calendar, recurring, event, venue, eventbrite, registration, tickets, ticketing, eventbright, api, dates, date, plugin, posts, sidebar, template, theme, time, google maps, conference, workshop, concert, meeting, seminar, summit, forum, shortcode
5
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QA7QZM4CNQ342
6
  Requires at least: 3.3
7
- Tested up to: 3.4.1
8
- Stable tag: 2.0.9
9
 
10
  == Description ==
11
 
@@ -50,15 +50,17 @@ We've created a collection of premium add-ons that let you take your Events Cale
50
  *<a href="http://tri.be/wordpress-eventbrite-tickets/">Eventbrite Tickets</a> to sell tickets for your event</li>
51
  *<a href="http://tri.be/wordpress-community-events/">Community Events</a> to let your website users create their own events
52
  *<a href="http://tri.be/facebook-events/">Facebook Events</a> to integrate with Facebook
53
-
54
- Coming soon: manage your large events with the <a href="http://tri.be/shop/conference-manager/">Conference manager</a>.
55
 
56
  We offer <a href="ttp://wordpress.org/tags/the-events-calendar">basic support via the WordPress.org support forums </a> so feel free to ask a question if you're having a problem with implementation or bugs.
57
 
58
  The <a href="http://tri.be/support/forums/?ref=tec-readme">Modern Tribe PRO support forums</a> are available for you to read. You won't, however, be able to post a message in any forums beyond Pre-Sale Questions unless you have purchase a PRO license.
59
 
 
 
60
  Note: If you are upgrading from a pre-2.0 version of The Events Calendar, please back up your data before upgrading!
61
 
 
62
  == Screenshots ==
63
 
64
  1. Calendar View
@@ -68,7 +70,7 @@ Note: If you are upgrading from a pre-2.0 version of The Events Calendar, please
68
  5. Event List Admin
69
  6. Settings Panel
70
 
71
- == FAQ ==
72
 
73
  = Where do I go to file a bug or ask a question? =
74
 
@@ -80,7 +82,7 @@ Events Calendar PRO can be purchased directly at the <a href="tri.be/support/for
80
 
81
  = I'm interested in updating to PRO, but have a question that's not answered on the product page. Where can I get that answered? =
82
 
83
- Our <a href="http://tri.be/support/forums/forum/_welcome/pre-sales-questions/?ref=tec-readme">pre-sale forum</a> at the tri.be website is open and available to everyone; we encourage potential customers to review threads on that forum + post a new discussion if your question isn't already answered. You may also email <a href="mailto:pro@tri.be">pro@tri.be</a> with pre-sale questions if you prefer.
84
 
85
  = What add-ons are available for The Events Calendar, and where can I read more about them? =
86
 
@@ -89,12 +91,11 @@ Currently, the following add-ons are available for The Events Calendar/Events Ca
89
  * <a href="http://tri.be/wordpress-eventbrite-tickets/?ref=tec-readme">Eventbrite Tickets</a>, for selling tickets to your event directly through Eventbrite.
90
  * <a href="http://tri.be/wordpress-community-events/?ref=tec-readme">Community Events</a>, for allowing frontend event submission from your readers.
91
  * <a href="http://tri.be/facebook-events/?ref=tec-readme">Facebook Events</a>, for importing events directly from an organization or page on Facebook.
92
- * <a href="http://tri.be/shop/conference-manager/?ref=tec-readme">Conference Manager (COMING SOON)</a>, for managing multiple rooms/sessions/speakers at an event or conference.
93
- * <a href="http://tri.be/shop/wootickets/?ref=tec-readme">WooTickets (COMING SOON)</a>, for selling tickets to your event using WooCommerce.
94
 
95
  = Is there a more substantive FAQ for The Events Calendar available elsewhere online? =
96
 
97
- There sure is. If you check out our a href="http://tri.be/support/faqs/?ref=tec-readme">Frequently Asked Questions page</a> on the tri.be website, you'll find answers to more specific questions related to The Events Calendar/Events Calendar PRO. Please make sure to review that FAQ before posting a support threadas there's a very good chance your question has already been answered.
98
 
99
  == Installation ==
100
 
@@ -147,6 +148,7 @@ The plugin is produced by <a href="http://tri.be/?ref=tec-readme">Modern Tribe I
147
  * <a href="http://profiles.wordpress.org/users/jonahcoyote">Jonah West</a>
148
  * <a href="http://profiles.wordpress.org/users/barryhughes">Barry Hughes</a>
149
  * <a href="http://profiles.wordpress.org/users/ryancurban">Ryan Urban</a>
 
150
  * <a href="http://profiles.wordpress.org/users/peterchester">Peter Chester</a>
151
  * <a href="http://profiles.wordpress.org/users/reid.peifer">Reid Peifer</a>
152
  * <a href="http://profiles.wordpress.org/users/shane.pearlman">Shane Pearlman</a>
@@ -161,29 +163,32 @@ The plugin is produced by <a href="http://tri.be/?ref=tec-readme">Modern Tribe I
161
  * <a href="http://profiles.wordpress.org/users/jgadbois">John Gadbois</a>
162
  * Justin Endler
163
 
164
- = Translators =
165
-
166
- * Swedish (free & PRO) from Ben Andersen
167
- * Russian (free & PRO) from Mikhail Michouris
168
- * Dutch (free & PRO) from Ed Boon, RIck van Dalen & Jacob Roel Meijering
169
- * Danish (PRO only) from Christian Andersen
170
- * Italian (free & PRO) from Filippo Montanari
171
- * Spanish (free & PRO) from Hector at Signo Creativo
172
- * German (free only) from David Decker
173
- * Polish (free & PRO) from Kamil Szymanski
174
- * Norwegian (free & PRO) from "Terje With Lunndal"
175
- * Hebrew (free & PRO) from Sagi Shrieber
176
- * Japanese (free only) from Matthew Meyer
177
- * French (free & PRO) from Arno Faure
178
- * Lithuanian (free only) from Vincent G from Host1Free
179
- * Czech (free & PRO) from Petr Bastan
180
- * Serbian (free & PRO) from Marko Manojlovic
181
- * Bosnian (free & PRO) from Marko Manojlovic
182
- * Croatian (free & PRO) from Marko Manojlovic
183
- * Finnish (free & PRO) from Petri Kajander
184
- * Catalan (free & PRO) from Fran Rosa
185
-
186
-
 
 
 
187
 
188
  == Add-Ons ==
189
 
@@ -200,12 +205,36 @@ Our Premium Plugins:
200
  * <a href="http://tri.be/shop/wordpress-eventbrite-tickets/?ref=tec-readme" target="_blank">The Events Calendar: Eventbrite Tickets</a>
201
  * <a href="http://tri.be/shop/wordpress-community-events/?ref=tec-readme" target="_blank">The Events Calendar: Community Events</a>
202
  * <a href="http://tri.be/facebook-events/?ref=tec-readme" target="_blank">The Events Calendar: Facebook Events</a>
 
203
  * <a href="http://tri.be/shop/conference-manager/?ref=tec-readme" target="_blank">The Events Calendar: Conference Manager (coming later in 2012)</a>
204
- * <a href="http://tri.be/shop/wootickets/?ref=tec-readme" target="_blank">The Events Calendar: WooTickets (coming later in 2012)</a>
205
 
206
  == Changelog ==
207
 
208
- =2.0.9 =
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
209
 
210
  **Small features, UX and Content Tweaks:**
211
 
1
  === The Events Calendar ===
2
 
3
+ Contributors: ModernTribe, PaulHughes01, roblagatta, jonahcoyote, MZAWeb, codearachnid, ryancurban, leahkoerper, barryhughes, peterchester, reid.peifer, shane.pearlman
4
  Tags: modern tribe, tribe, widget, events, tooltips, grid, month, list, calendar, recurring, event, venue, eventbrite, registration, tickets, ticketing, eventbright, api, dates, date, plugin, posts, sidebar, template, theme, time, google maps, conference, workshop, concert, meeting, seminar, summit, forum, shortcode
5
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QA7QZM4CNQ342
6
  Requires at least: 3.3
7
+ Tested up to: 3.4.2
8
+ Stable tag: 2.0.10
9
 
10
  == Description ==
11
 
50
  *<a href="http://tri.be/wordpress-eventbrite-tickets/">Eventbrite Tickets</a> to sell tickets for your event</li>
51
  *<a href="http://tri.be/wordpress-community-events/">Community Events</a> to let your website users create their own events
52
  *<a href="http://tri.be/facebook-events/">Facebook Events</a> to integrate with Facebook
53
+ *<a href="http://tri.be/wordpress-wootickets/">WooTickets</a> to sell tickets directly from event listings with WooCommerce
 
54
 
55
  We offer <a href="ttp://wordpress.org/tags/the-events-calendar">basic support via the WordPress.org support forums </a> so feel free to ask a question if you're having a problem with implementation or bugs.
56
 
57
  The <a href="http://tri.be/support/forums/?ref=tec-readme">Modern Tribe PRO support forums</a> are available for you to read. You won't, however, be able to post a message in any forums beyond Pre-Sale Questions unless you have purchase a PRO license.
58
 
59
+ Are you a PRO user looking to renew an expired license? While we're still putting the finishing touches on our renewal functionality, we can provide you with a coupon in the interim that entitles you to a 30% discount on a new license (the same amount you'd be paying to renew your existing one). Send us an email to pro@tri.be referencing your license key # and the date it expired so we can get you sorted.
60
+
61
  Note: If you are upgrading from a pre-2.0 version of The Events Calendar, please back up your data before upgrading!
62
 
63
+
64
  == Screenshots ==
65
 
66
  1. Calendar View
70
  5. Event List Admin
71
  6. Settings Panel
72
 
73
+ == Frequently Asked Questions ==
74
 
75
  = Where do I go to file a bug or ask a question? =
76
 
82
 
83
  = I'm interested in updating to PRO, but have a question that's not answered on the product page. Where can I get that answered? =
84
 
85
+ Our <a href="http://tri.be/support/forums/forum/_welcome/pre-sales-questions/?ref=tec-readme">pre-sale forum</a> at the tri.be website is open and available to everyone; we encourage potential customers to review threads on that forum + post a new discussion if your question isn't already answered.
86
 
87
  = What add-ons are available for The Events Calendar, and where can I read more about them? =
88
 
91
  * <a href="http://tri.be/wordpress-eventbrite-tickets/?ref=tec-readme">Eventbrite Tickets</a>, for selling tickets to your event directly through Eventbrite.
92
  * <a href="http://tri.be/wordpress-community-events/?ref=tec-readme">Community Events</a>, for allowing frontend event submission from your readers.
93
  * <a href="http://tri.be/facebook-events/?ref=tec-readme">Facebook Events</a>, for importing events directly from an organization or page on Facebook.
94
+ * <a href="http://tri.be/wordpress-wootickets/?ref=tec-readme">WooTickets</a>, for selling tickets to your event using WooCommerce.
 
95
 
96
  = Is there a more substantive FAQ for The Events Calendar available elsewhere online? =
97
 
98
+ There sure is. If you check out our <a href="http://tri.be/support/faqs/?ref=tec-readme">Frequently Asked Questions page</a> on the tri.be website, you'll find answers to more specific questions related to The Events Calendar/Events Calendar PRO. Please make sure to review that FAQ before posting a support thread, as there's a very good chance your question has already been answered.
99
 
100
  == Installation ==
101
 
148
  * <a href="http://profiles.wordpress.org/users/jonahcoyote">Jonah West</a>
149
  * <a href="http://profiles.wordpress.org/users/barryhughes">Barry Hughes</a>
150
  * <a href="http://profiles.wordpress.org/users/ryancurban">Ryan Urban</a>
151
+ * <a href="http://profiles.wordpress.org/users/leahkoerper">Leah Koerper</a>
152
  * <a href="http://profiles.wordpress.org/users/peterchester">Peter Chester</a>
153
  * <a href="http://profiles.wordpress.org/users/reid.peifer">Reid Peifer</a>
154
  * <a href="http://profiles.wordpress.org/users/shane.pearlman">Shane Pearlman</a>
163
  * <a href="http://profiles.wordpress.org/users/jgadbois">John Gadbois</a>
164
  * Justin Endler
165
 
166
+ = Translations =
167
+
168
+ The Events Calendar/Events Calendar PRO includes translations to the following languages:
169
+
170
+ * Bosnian (bs_BA)
171
+ * Brazilian Portuguese (pt_BR)
172
+ * Bulgarian (bg_BG)
173
+ * Catalan (ca)
174
+ * Croatian (hr_HR)
175
+ * Czech (cs_CZ)
176
+ * Dutch (nl_NL)
177
+ * German (de_DE)
178
+ * Finnish (fi)
179
+ * French (fr_FR)
180
+ * Greek (gr_GR)
181
+ * Hebrew (he_IL)
182
+ * Italian (it_IL)
183
+ * Japanese (ja_JP) - The Events Calendar only (no PRO)
184
+ * Lithuanian (lt_LT) - The Events Calendar only (no PRO)
185
+ * Norwegian (nb_NO)
186
+ * Polish (pl_PL)
187
+ * Russian (ru_RU)
188
+ * Serbian (sr_RS)
189
+ * Spanish (es_ES)
190
+ * Swedish (sv_SE)
191
+ * Ukranian (uk) - The Events Calendar only (no PRO)
192
 
193
  == Add-Ons ==
194
 
205
  * <a href="http://tri.be/shop/wordpress-eventbrite-tickets/?ref=tec-readme" target="_blank">The Events Calendar: Eventbrite Tickets</a>
206
  * <a href="http://tri.be/shop/wordpress-community-events/?ref=tec-readme" target="_blank">The Events Calendar: Community Events</a>
207
  * <a href="http://tri.be/facebook-events/?ref=tec-readme" target="_blank">The Events Calendar: Facebook Events</a>
208
+ * <a href="http://tri.be/shop/wootickets/?ref=tec-readme" target="_blank">The Events Calendar: WooTickets</a>
209
  * <a href="http://tri.be/shop/conference-manager/?ref=tec-readme" target="_blank">The Events Calendar: Conference Manager (coming later in 2012)</a>
 
210
 
211
  == Changelog ==
212
 
213
+ = 2.0.10 =
214
+
215
+ **Small features, UX and Content Tweaks:**
216
+
217
+ * Incorporated new Ukrainian translation files (free only), courtesy of Alexey Fedorov.
218
+ * Incorporated new French translation files (free only), courtesy of Fanny H�raud.
219
+ * Improved the events.js to avoid animation build up.
220
+
221
+
222
+ **Bug Fixes:**
223
+
224
+ * Tested fully against the new WordPress Twenty Twelve theme and cleared up aesthetic issues where needed.
225
+ * Removed "Organizer" and "Venue" panels from the Appearance -> Menus screen (core only).
226
+ * Fixed a bug where the option to show/hide an event's end date in the Events Advanced List Widget did not work (PRO only).
227
+ * There was previously no modal window when trashing individual instances of a recurring event; that is no more.
228
+ * Cleaned up event query filters to prevent conflicts.
229
+ * Event-specific settings no longer revert to default upon updating the plugin.
230
+ * Rewrite rules are no longer one step behind (meaning you won't need to flush permalinks as often).
231
+ * Warnings/notices no longer litter the page in instances where no upcoming events are scheduled.
232
+ * Default permalinks are no longer malformed.
233
+ * Removed a PressTrends-generated notice that appeared upon activation.
234
+ * Removed remaining sp_ functions.
235
+ * Fixed an issue where default permalinks caused multiple errors when viewing a recurring event and venue page (PRO only).
236
+
237
+ = 2.0.9 =
238
 
239
  **Small features, UX and Content Tweaks:**
240
 
resources/app-shop.css CHANGED
File without changes
resources/app-shop.js CHANGED
File without changes
resources/chosen-load.js CHANGED
File without changes
resources/chosen-sprite.png CHANGED
File without changes
resources/chosen.css CHANGED
File without changes
resources/chosen.jquery.min.js CHANGED
File without changes
resources/debugger.css CHANGED
File without changes
resources/events-admin-ui.css CHANGED
File without changes
resources/events-admin.css CHANGED
@@ -178,4 +178,31 @@ td.tribe_message {padding-bottom: 10px !important;}
178
  .ui-draggable .ui-dialog-titlebar {cursor: move; }
179
  .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {float: none !important; text-align: center;}
180
  .ui-button-text-only .ui-button-text {padding: .4em 1em;}
181
- .ui-button .ui-button-text {display: block; line-height: 1.4;}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
178
  .ui-draggable .ui-dialog-titlebar {cursor: move; }
179
  .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {float: none !important; text-align: center;}
180
  .ui-button-text-only .ui-button-text {padding: .4em 1em;}
181
+ .ui-button .ui-button-text {display: block; line-height: 1.4;}
182
+
183
+ #tribe-loading {
184
+ display : none;
185
+ position : absolute;
186
+ width : 100%;
187
+ height : 100%;
188
+ left : 0;
189
+ top : 0;
190
+ background : #fff;
191
+ background : rgba(255, 255, 255, 0.8);
192
+ z-index : 4;
193
+ webkit-transition : all 1s linear;
194
+ -moz-transition : all 1s linear;
195
+ -o-transition : all 1s linear;
196
+ -ms-transition : all 1s linear;
197
+ transition : all 1s linear;
198
+ }
199
+
200
+ #tribe-loading span {
201
+ position : absolute;
202
+ width : 32px;
203
+ height : 32px;
204
+ left : 50%;
205
+ top : 50%;
206
+ margin : -16px 0 0 -16px;
207
+ background : url(images/tribe-loading.gif) 0 0 no-repeat;
208
+ }
resources/events-admin.js CHANGED
File without changes
resources/events.css CHANGED
@@ -539,4 +539,43 @@ p.tribe-promo-banner {
539
 
540
  p.tribe-promo-banner a {
541
  color: #666;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
542
  }
539
 
540
  p.tribe-promo-banner a {
541
  color: #666;
542
+ }
543
+
544
+ /* Tickets */
545
+ .tribe-events-tickets td {
546
+ vertical-align : middle;
547
+ height: 35px;
548
+ }
549
+
550
+ .tribe-events-tickets .tickets_description {
551
+ font-size : 0.8em;
552
+ color : #666;
553
+ }
554
+
555
+ .tribe-events-tickets .tickets_nostock {
556
+ font-size : 0.8em;
557
+ color : #ff0000;
558
+ }
559
+
560
+ .tribe-events-tickets .tickets_price {
561
+ font-style : italic;
562
+ color : #000;
563
+ font-weight : bold;
564
+ }
565
+
566
+ table.tribe-events-tickets {
567
+ border-bottom : 1px solid #DDD;
568
+ margin : 0 0 1.625em;
569
+ width : 100%;
570
+ }
571
+
572
+ table.tribe-events-tickets td {
573
+ border-top : 1px solid #DDD;
574
+ padding : 6px 10px 6px 0;
575
+ }
576
+
577
+ h2.tribe-events-tickets-title {
578
+ color : black;
579
+ font-weight : bold;
580
+ margin : 0 0 .8125em;
581
  }
resources/events.js CHANGED
@@ -1,9 +1,14 @@
1
  jQuery(document).ready(function($) {
2
- // prepare calendar for popups
3
- $("table.tribe-events-calendar tbody tr").each(function(index) {
4
- // add a class of "right" to Friday & Saturday so tooltips stay onscreen
5
- $(this).find("td:gt(3)").addClass("tribe-events-right");
6
- });
 
 
 
 
 
7
 
8
  // big popups
9
  $("table.tribe-events-calendar:not(.tribe-events-calendar-widget) .tribe-events-event:not(.daynum)").live('mouseenter', function() {
@@ -19,10 +24,10 @@ jQuery(document).ready(function($) {
19
  $(this).find(".tribe-events-tooltip").css('bottom', bottomPad).show();
20
  }).live('mouseleave', function() {
21
  if ($.browser.msie && $.browser.version <= 9) {
22
- $(this).find(".tribe-events-tooltip").hide()
23
- } else {
24
- $(this).find(".tribe-events-tooltip").fadeOut(200);
25
- }
26
  });
27
 
28
  // little popups
@@ -36,28 +41,45 @@ jQuery(document).ready(function($) {
36
  var bottomPad = $(this).outerHeight() + 3;
37
  }
38
 
39
- $(this).find(".tribe-events-tooltip").css('bottom', bottomPad).fadeIn(300);
40
  }).live('mouseleave', function() {
41
  if ($.browser.msie && $.browser.version <= 9) {
42
- $(this).find(".tribe-events-tooltip").hide()
43
- } else {
44
- $(this).find(".tribe-events-tooltip").fadeOut(200);
45
- }
46
  });
47
 
48
- // datepicker
 
49
  $(".tribe-events-events-dropdown").live('change', function() {
50
- baseUrl = $(this).parent().attr("action");
51
-
52
- url = baseUrl + $('#tribe-events-events-year').val() + '-' + $('#tribe-events-events-month').val();
53
-
54
- $('.ajax-loading').show();
55
- $.pjax({ url: url, container: '#tribe-events-content', fragment: '#tribe-events-content', timeout: 1000 });
 
 
56
  });
57
 
58
- // PJAX
59
- $('.tribe-events-prev-month a, .tribe-events-next-month a').pjax('#tribe-events-content', { timeout: 10000, fragment: '#tribe-events-content' }).live('click', function() {
60
- $('.ajax-loading').show();
61
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
62
 
63
- });
1
  jQuery(document).ready(function($) {
2
+
3
+ function tribe_event_nudge() {
4
+ // prepare calendar for popups
5
+ $('table.tribe-events-calendar tbody tr, table.tribe-events-grid tr.tribe-week-events-row').each(function() {
6
+ // add a class of "tribe-events-right" to last 3 days of week so tooltips stay onscreen. To be replaced by php.
7
+ $(this).find('td:gt(3)').addClass('tribe-events-right');
8
+ });
9
+ }
10
+
11
+ tribe_event_nudge();
12
 
13
  // big popups
14
  $("table.tribe-events-calendar:not(.tribe-events-calendar-widget) .tribe-events-event:not(.daynum)").live('mouseenter', function() {
24
  $(this).find(".tribe-events-tooltip").css('bottom', bottomPad).show();
25
  }).live('mouseleave', function() {
26
  if ($.browser.msie && $.browser.version <= 9) {
27
+ $(this).find(".tribe-events-tooltip").hide()
28
+ } else {
29
+ $(this).find(".tribe-events-tooltip").stop(true,false).fadeOut(200);
30
+ }
31
  });
32
 
33
  // little popups
41
  var bottomPad = $(this).outerHeight() + 3;
42
  }
43
 
44
+ $(this).find(".tribe-events-tooltip").css('bottom', bottomPad).stop(true,false).fadeIn(300);
45
  }).live('mouseleave', function() {
46
  if ($.browser.msie && $.browser.version <= 9) {
47
+ $(this).find(".tribe-events-tooltip").hide()
48
+ } else {
49
+ $(this).find(".tribe-events-tooltip").stop(true,false).fadeOut(200);
50
+ }
51
  });
52
 
53
+ // datepicker PJAX
54
+
55
  $(".tribe-events-events-dropdown").live('change', function() {
56
+ var baseUrl = $(this).parent().attr("action");
57
+ var target_url = baseUrl + $('#tribe-events-events-year').val() + '-' + $('#tribe-events-events-month').val();
58
+ $.pjax({
59
+ url: target_url,
60
+ container: '#tribe-events-content',
61
+ fragment: '#tribe-events-content',
62
+ timeout: 10000
63
+ });
64
  });
65
 
66
+ // next prev PJAX
67
+
68
+ $(document).pjax('a.tribe-pjax', {
69
+ timeout: 10000,
70
+ fragment: '#tribe-events-content',
71
+ container: '#tribe-events-content'
72
+ })
73
+ .bind('pjax:start', function() {
74
+ $('.ajax-loading').show()
75
+ })
76
+ .bind('pjax:end', function() {
77
+ $('.ajax-loading').hide();
78
+ tribe_event_nudge()
79
+ });
80
+
81
+ if ($.support.pjax) {
82
+ $.pjax.defaults.scrollTo = false;
83
+ }
84
 
85
+ });
resources/hide-visibility.css CHANGED
File without changes
resources/images/attendees-screen-icon.png ADDED
Binary file
resources/images/bg_fade.png CHANGED
File without changes
resources/images/donate-link-pro-screenshot.jpg CHANGED
File without changes
resources/images/donate-link-screenshot.jpg CHANGED
File without changes
resources/images/eb_press_little.gif CHANGED
File without changes
resources/images/events-screen-icon.png CHANGED
File without changes
resources/images/menu.png CHANGED
File without changes
resources/images/modern-tribe.png CHANGED
File without changes
resources/images/tooltip-arrow.png CHANGED
File without changes
resources/images/tribe-loading.gif ADDED
Binary file
resources/jquery-ecp-plugins.js CHANGED
File without changes
resources/jquery.pjax.js CHANGED
@@ -2,248 +2,4 @@
2
  // copyright chris wanstrath
3
  // https://github.com/defunkt/jquery-pjax
4
 
5
- (function($){
6
-
7
- // When called on a link, fetches the href with ajax into the
8
- // container specified as the first parameter or with the data-pjax
9
- // attribute on the link itself.
10
- //
11
- // Tries to make sure the back button and ctrl+click work the way
12
- // you'd expect.
13
- //
14
- // Accepts a jQuery ajax options object that may include these
15
- // pjax specific options:
16
- //
17
- // container - Where to stick the response body. Usually a String selector.
18
- // $(container).html(xhr.responseBody)
19
- // push - Whether to pushState the URL. Defaults to true (of course).
20
- // replace - Want to use replaceState instead? That's cool.
21
- //
22
- // For convenience the first parameter can be either the container or
23
- // the options object.
24
- //
25
- // Returns the jQuery object
26
- $.fn.pjax = function( container, options ) {
27
- if ( options )
28
- options.container = container
29
- else
30
- options = $.isPlainObject(container) ? container : {container:container}
31
-
32
- // We can't persist $objects using the history API so we must use
33
- // a String selector. Bail if we got anything else.
34
- if ( options.container && typeof options.container !== 'string' ) {
35
- throw "pjax container must be a string selector!"
36
- return false
37
- }
38
-
39
- return this.live('click', function(event){
40
- // Middle click, cmd click, and ctrl click should open
41
- // links in a new tab as normal.
42
- if ( event.which > 1 || event.metaKey )
43
- return true
44
-
45
- var defaults = {
46
- url: this.href,
47
- container: $(this).attr('data-pjax'),
48
- clickedElement: $(this),
49
- fragment: null
50
- }
51
-
52
- $.pjax($.extend({}, defaults, options))
53
-
54
- event.preventDefault()
55
- })
56
- }
57
-
58
-
59
- // Loads a URL with ajax, puts the response body inside a container,
60
- // then pushState()'s the loaded URL.
61
- //
62
- // Works just like $.ajax in that it accepts a jQuery ajax
63
- // settings object (with keys like url, type, data, etc).
64
- //
65
- // Accepts these extra keys:
66
- //
67
- // container - Where to stick the response body. Must be a String.
68
- // $(container).html(xhr.responseBody)
69
- // push - Whether to pushState the URL. Defaults to true (of course).
70
- // replace - Want to use replaceState instead? That's cool.
71
- //
72
- // Use it just like $.ajax:
73
- //
74
- // var xhr = $.pjax({ url: this.href, container: '#main' })
75
- // console.log( xhr.readyState )
76
- //
77
- // Returns whatever $.ajax returns.
78
- $.pjax = function( options ) {
79
- var $container = $(options.container),
80
- success = options.success || $.noop
81
-
82
- // We don't want to let anyone override our success handler.
83
- delete options.success
84
-
85
- // We can't persist $objects using the history API so we must use
86
- // a String selector. Bail if we got anything else.
87
- if ( typeof options.container !== 'string' )
88
- throw "pjax container must be a string selector!"
89
-
90
- var defaults = {
91
- timeout: 650,
92
- push: true,
93
- replace: false,
94
- // We want the browser to maintain two separate internal caches: one for
95
- // pjax'd partial page loads and one for normal page loads. Without
96
- // adding this secret parameter, some browsers will often confuse the two.
97
- data: { _pjax: true },
98
- type: 'GET',
99
- dataType: 'html',
100
- beforeSend: function(xhr){
101
- $container.trigger('start.pjax')
102
- xhr.setRequestHeader('X-PJAX', 'true')
103
- },
104
- error: function(){
105
- window.location = options.url
106
- },
107
- complete: function(){
108
- $container.trigger('end.pjax')
109
- },
110
- success: function(data){
111
- if ( options.fragment ) {
112
- // If they specified a fragment, look for it in the response
113
- // and pull it out.
114
- var $fragment = $(data).find(options.fragment)
115
- if ( $fragment.length )
116
- data = $fragment.children()
117
- else
118
- return window.location = options.url
119
- } else {
120
- // If we got no data or an entire web page, go directly
121
- // to the page and let normal error handling happen.
122
- if ( !$.trim(data) || /<html/i.test(data) )
123
- return window.location = options.url
124
- }
125
-
126
- // Make it happen.
127
- $container.html(data)
128
-
129
- // If there's a <title> tag in the response, use it as
130
- // the page's title.
131
- var oldTitle = document.title,
132
- title = $.trim( $container.find('title').remove().text() )
133
- if ( title ) document.title = title
134
-
135
- var state = {
136
- pjax: options.container,
137
- fragment: options.fragment,
138
- timeout: options.timeout
139
- }
140
-
141
- // If there are extra params, save the complete URL in the state object
142
- var query = $.param(options.data)
143
- if ( query != "_pjax=true" )
144
- state.url = options.url + (/\?/.test(options.url) ? "&" : "?") + query
145
-
146
- if ( options.replace ) {
147
- window.history.replaceState(state, document.title, options.url)
148
- } else if ( options.push ) {
149
- // this extra replaceState before first push ensures good back
150
- // button behavior
151
- if ( !$.pjax.active ) {
152
- window.history.replaceState($.extend({}, state, {url:null}), oldTitle)
153
- $.pjax.active = true
154
- }
155
-
156
- window.history.pushState(state, document.title, options.url)
157
- }
158
-
159
- // Google Analytics support
160
- if ( (options.replace || options.push) && window._gaq )
161
- _gaq.push(['_trackPageview'])
162
-
163
- // If the URL has a hash in it, make sure the browser
164
- // knows to navigate to the hash.
165
- var hash = window.location.hash.toString()
166
- if ( hash !== '' ) {
167
- window.location.href = hash
168
- }
169
-
170
- // Invoke their success handler if they gave us one.
171
- success.apply(this, arguments)
172
- }
173
- }
174
-
175
- options = $.extend(true, {}, defaults, options)
176
-
177
- if ( $.isFunction(options.url) ) {
178
- options.url = options.url()
179
- }
180
-
181
- // Cancel the current request if we're already pjaxing
182
- var xhr = $.pjax.xhr
183
- if ( xhr && xhr.readyState < 4) {
184
- xhr.onreadystatechange = $.noop
185
- xhr.abort()
186
- }
187
-
188
- $.pjax.xhr = $.ajax(options)
189
- $(document).trigger('pjax', $.pjax.xhr, options)
190
-
191
- return $.pjax.xhr
192
- }
193
-
194
-
195
- // Used to detect initial (useless) popstate.
196
- // If history.state exists, assume browser isn't going to fire initial popstate.
197
- var popped = ('state' in window.history), initialURL = location.href
198
-
199
-
200
- // popstate handler takes care of the back and forward buttons
201
- //
202
- // You probably shouldn't use pjax on pages with other pushState
203
- // stuff yet.
204
- $(window).bind('popstate', function(event){
205
- // Ignore inital popstate that some browsers fire on page load
206
- var initialPop = !popped && location.href == initialURL
207
- popped = true
208
- if ( initialPop ) return
209
-
210
- var state = event.state
211
-
212
- if ( state && state.pjax ) {
213
- var container = state.pjax
214
- if ( $(container+'').length )
215
- $.pjax({
216
- url: state.url || location.href,
217
- fragment: state.fragment,
218
- container: container,
219
- push: false,
220
- timeout: state.timeout
221
- })
222
- else
223
- window.location = location.href
224
- }
225
- })
226
-
227
-
228
- // Add the state property to jQuery's event object so we can use it in
229
- // $(window).bind('popstate')
230
- if ( $.inArray('state', $.event.props) < 0 )
231
- $.event.props.push('state')
232
-
233
-
234
- // Is pjax supported by this browser?
235
- $.support.pjax =
236
- window.history && window.history.pushState && window.history.replaceState
237
- // pushState isn't reliable on iOS yet.
238
- && !navigator.userAgent.match(/(iPod|iPhone|iPad|WebApps\/.+CFNetwork)/)
239
-
240
-
241
- // Fall back to normalcy for older browsers.
242
- if ( !$.support.pjax ) {
243
- $.pjax = function( options ) {
244
- window.location = $.isFunction(options.url) ? options.url() : options.url
245
- }
246
- $.fn.pjax = function() { return this }
247
- }
248
-
249
- })(jQuery);
2
  // copyright chris wanstrath
3
  // https://github.com/defunkt/jquery-pjax
4
 
5
+ (function($){function fnPjax(selector,container,options){var context=this;return this.on("click.pjax",selector,function(event){var opts=$.extend({},optionsFor(container,options));if(!opts.container){opts.container=$(this).attr("data-pjax")||context;}handleClick(event,opts);});}function handleClick(event,container,options){options=optionsFor(container,options);var link=event.currentTarget;if(link.tagName.toUpperCase()!=="A"){throw"$.fn.pjax or $.pjax.click requires an anchor element";}if(event.which>1||event.metaKey||event.ctrlKey||event.shiftKey||event.altKey){return;}if(location.protocol!==link.protocol||location.host!==link.host){return;}if(link.hash&&link.href.replace(link.hash,"")===location.href.replace(location.hash,"")){return;}if(link.href===location.href+"#"){return;}var defaults={url:link.href,container:$(link).attr("data-pjax"),target:link,fragment:null};pjax($.extend({},defaults,options));event.preventDefault();}function handleSubmit(event,container,options){options=optionsFor(container,options);var form=event.currentTarget;if(form.tagName.toUpperCase()!=="FORM"){throw"$.pjax.submit requires a form element";}var defaults={type:form.method,url:form.action,data:$(form).serializeArray(),container:$(form).attr("data-pjax"),target:form,fragment:null,timeout:0};pjax($.extend({},defaults,options));event.preventDefault();}function pjax(options){options=$.extend(true,{},$.ajaxSettings,pjax.defaults,options);if($.isFunction(options.url)){options.url=options.url();}var target=options.target;var hash=parseURL(options.url).hash;var context=options.context=findContainerFor(options.container);if(!options.data){options.data={};}options.data._pjax=context.selector;function fire(type,args){var event=$.Event(type,{relatedTarget:target});context.trigger(event,args);return !event.isDefaultPrevented();}var timeoutTimer;options.beforeSend=function(xhr,settings){if(settings.type!=="GET"){settings.timeout=0;}if(settings.timeout>0){timeoutTimer=setTimeout(function(){if(fire("pjax:timeout",[xhr,options])){xhr.abort("timeout");}},settings.timeout);settings.timeout=0;}xhr.setRequestHeader("X-PJAX","true");xhr.setRequestHeader("X-PJAX-Container",context.selector);var result;if(!fire("pjax:beforeSend",[xhr,settings])){return false;}options.requestUrl=parseURL(settings.url).href;};options.complete=function(xhr,textStatus){if(timeoutTimer){clearTimeout(timeoutTimer);}fire("pjax:complete",[xhr,textStatus,options]);fire("pjax:end",[xhr,options]);};options.error=function(xhr,textStatus,errorThrown){var container=extractContainer("",xhr,options);var allowed=fire("pjax:error",[xhr,textStatus,errorThrown,options]);if(textStatus!=="abort"&&allowed){locationReplace(container.url);}};options.success=function(data,status,xhr){var container=extractContainer(data,xhr,options);if(!container.contents){locationReplace(container.url);return;}pjax.state={id:options.id||uniqueId(),url:container.url,title:container.title,container:context.selector,fragment:options.fragment,timeout:options.timeout};if(options.push||options.replace){window.history.replaceState(pjax.state,container.title,container.url);}if(container.title){document.title=container.title;}context.html(container.contents);if(typeof options.scrollTo==="number"){$(window).scrollTop(options.scrollTo);}if((options.replace||options.push)&&window._gaq){_gaq.push(["_trackPageview"]);}if(hash!==""){var url=parseURL(container.url);url.hash=hash;pjax.state.url=url.href;window.history.replaceState(pjax.state,container.title,url.href);var target=$(url.hash);if(target.length){$(window).scrollTop(target.offset().top);}}fire("pjax:success",[data,status,xhr,options]);};if(!pjax.state){pjax.state={id:uniqueId(),url:window.location.href,title:document.title,container:context.selector,fragment:options.fragment,timeout:options.timeout};window.history.replaceState(pjax.state,document.title);}var xhr=pjax.xhr;if(xhr&&xhr.readyState<4){xhr.onreadystatechange=$.noop;xhr.abort();}pjax.options=options;var xhr=pjax.xhr=$.ajax(options);if(xhr.readyState>0){if(options.push&&!options.replace){cachePush(pjax.state.id,context.clone().contents());window.history.pushState(null,"",stripPjaxParam(options.requestUrl));}fire("pjax:start",[xhr,options]);fire("pjax:send",[xhr,options]);}return pjax.xhr;}function pjaxReload(container,options){var defaults={url:window.location.href,push:false,replace:true,scrollTo:false};return pjax($.extend(defaults,optionsFor(container,options)));}function locationReplace(url){window.history.replaceState(null,"","#");window.location.replace(url);}function onPjaxPopstate(event){var state=event.state;if(state&&state.container){var container=$(state.container);if(container.length){var contents=cacheMapping[state.id];if(pjax.state){var direction=pjax.state.id<state.id?"forward":"back";cachePop(direction,pjax.state.id,container.clone().contents());}var popstateEvent=$.Event("pjax:popstate",{state:state,direction:direction});container.trigger(popstateEvent);var options={id:state.id,url:state.url,container:container,push:false,fragment:state.fragment,timeout:state.timeout,scrollTo:false};if(contents){container.trigger("pjax:start",[null,options]);if(state.title){document.title=state.title;}container.html(contents);pjax.state=state;container.trigger("pjax:end",[null,options]);}else{pjax(options);}container[0].offsetHeight;}else{locationReplace(location.href);}}}function fallbackPjax(options){var url=$.isFunction(options.url)?options.url():options.url,method=options.type?options.type.toUpperCase():"GET";var form=$("<form>",{method:method==="GET"?"GET":"POST",action:url,style:"display:none"});if(method!=="GET"&&method!=="POST"){form.append($("<input>",{type:"hidden",name:"_method",value:method.toLowerCase()}));}var data=options.data;if(typeof data==="string"){$.each(data.split("&"),function(index,value){var pair=value.split("=");form.append($("<input>",{type:"hidden",name:pair[0],value:pair[1]}));});}else{if(typeof data==="object"){for(key in data){form.append($("<input>",{type:"hidden",name:key,value:data[key]}));}}}$(document.body).append(form);form.submit();}function uniqueId(){return(new Date).getTime();}function stripPjaxParam(url){return url.replace(/\?_pjax=[^&]+&?/,"?").replace(/_pjax=[^&]+&?/,"").replace(/[\?&]$/,"");}function parseURL(url){var a=document.createElement("a");a.href=url;return a;}function optionsFor(container,options){if(container&&options){options.container=container;}else{if($.isPlainObject(container)){options=container;}else{options={container:container};}}if(options.container){options.container=findContainerFor(options.container);}return options;}function findContainerFor(container){container=$(container);if(!container.length){throw"no pjax container for "+container.selector;}else{if(container.selector!==""&&container.context===document){return container;}else{if(container.attr("id")){return $("#"+container.attr("id"));}else{throw"cant get selector for pjax container!";}}}}function findAll(elems,selector){return elems.filter(selector).add(elems.find(selector));}function extractContainer(data,xhr,options){var obj={};obj.url=stripPjaxParam(xhr.getResponseHeader("X-PJAX-URL")||options.requestUrl);if(/<html/i.test(data)){var $head=$(data.match(/<head[^>]*>([\s\S.]*)<\/head>/i)[0]);var $body=$(data.match(/<body[^>]*>([\s\S.]*)<\/body>/i)[0]);}else{var $head=$body=$(data);}if($body.length===0){return obj;}obj.title=findAll($head,"title").last().text();if(options.fragment){if(options.fragment==="body"){var $fragment=$body;}else{var $fragment=findAll($body,options.fragment).first();}if($fragment.length){obj.contents=$fragment.contents();if(!obj.title){obj.title=$fragment.attr("title")||$fragment.data("title");}}}else{if(!/<html/i.test(data)){obj.contents=$body;}}if(obj.contents){obj.contents=obj.contents.not("title");obj.contents.find("title").remove();}if(obj.title){obj.title=$.trim(obj.title);}return obj;}var cacheMapping={};var cacheForwardStack=[];var cacheBackStack=[];function cachePush(id,value){cacheMapping[id]=value;cacheBackStack.push(id);while(cacheForwardStack.length){delete cacheMapping[cacheForwardStack.shift()];}while(cacheBackStack.length>pjax.defaults.maxCacheLength){delete cacheMapping[cacheBackStack.shift()];}}function cachePop(direction,id,value){var pushStack,popStack;cacheMapping[id]=value;if(direction==="forward"){pushStack=cacheBackStack;popStack=cacheForwardStack;}else{pushStack=cacheForwardStack;popStack=cacheBackStack;}pushStack.push(id);if(id=popStack.pop()){delete cacheMapping[id];}}function enable(){$.fn.pjax=fnPjax;$.pjax=pjax;$.pjax.enable=$.noop;$.pjax.disable=disable;$.pjax.click=handleClick;$.pjax.submit=handleSubmit;$.pjax.reload=pjaxReload;$.pjax.defaults={timeout:650,push:true,replace:false,type:"GET",dataType:"html",scrollTo:0,maxCacheLength:20};$(window).bind("popstate.pjax",onPjaxPopstate);}function disable(){$.fn.pjax=function(){return this;};$.pjax=fallbackPjax;$.pjax.enable=enable;$.pjax.disable=$.noop;$.pjax.click=$.noop;$.pjax.submit=$.noop;$.pjax.reload=window.location.reload;$(window).unbind("popstate.pjax",onPjaxPopstate);}if($.inArray("state",$.event.props)<0){$.event.props.push("state");}$.support.pjax=window.history&&window.history.pushState&&window.history.replaceState&&!navigator.userAgent.match(/((iPod|iPhone|iPad).+\bOS\s+[1-4]|WebApps\/.+CFNetwork)/);$.support.pjax?enable():disable();})(jQuery);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
resources/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png CHANGED
File without changes
resources/smoothness/images/ui-bg_flat_75_ffffff_40x100.png CHANGED
File without changes
resources/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png CHANGED
File without changes
resources/smoothness/images/ui-bg_glass_65_ffffff_1x400.png CHANGED
File without changes
resources/smoothness/images/ui-bg_glass_75_dadada_1x400.png CHANGED
File without changes
resources/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png CHANGED
File without changes
resources/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png CHANGED
File without changes
resources/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png CHANGED
File without changes
resources/smoothness/images/ui-icons_222222_256x240.png CHANGED
File without changes
resources/smoothness/images/ui-icons_2e83ff_256x240.png CHANGED
File without changes
resources/smoothness/images/ui-icons_454545_256x240.png CHANGED
File without changes
resources/smoothness/images/ui-icons_888888_256x240.png CHANGED
File without changes
resources/smoothness/images/ui-icons_cd0a0a_256x240.png CHANGED
File without changes
resources/smoothness/jquery-ui-1.7.3.custom.css CHANGED
File without changes
resources/tickets-attendees.css ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .icon32-tickets-attendees {
2
+ background-image : url(images/attendees-screen-icon.png) !important;
3
+ }
4
+
5
+ .tickets_checked td {
6
+ opacity : 0.7;
7
+ text-decoration : line-through;
8
+ }
9
+
10
+ .tickets_checked a.tickets_checkin {
11
+ display : none;
12
+ }
13
+
14
+ .tickets_checked td.column-check_in{
15
+ text-decoration: none !important;
16
+ }
17
+
18
+ a.tickets_uncheckin {
19
+ display : none;
20
+ }
21
+
22
+ .tickets_checked a.tickets_uncheckin {
23
+ display : block;
24
+ }
25
+
26
+ .column-attendee_id, .column-order_id {
27
+ width : 60px;
28
+ }
resources/tickets-attendees.js ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ jQuery( document ).ready( function ( $ ) {
2
+
3
+ $( '#filter_attendee' ).on( 'keyup paste', function () {
4
+
5
+ var search = jQuery( this ).val().toLowerCase();
6
+
7
+ $( 'td.column-security' ).each( function ( i, e ) {
8
+ var attendeeobj = jQuery( e );
9
+ var attendee = attendeeobj.text().toLowerCase();
10
+ var orderid = attendeeobj.prev( 'td' ).prev( 'td' ).prev( 'td' ).prev( 'td' ).children( 'a' ).text();
11
+ var ticketid = attendeeobj.prev( 'td' ).text();
12
+
13
+ if ( attendee.indexOf( search ) === 0 || orderid.indexOf( search ) === 0 || ticketid.indexOf( search ) === 0 ) {
14
+ attendeeobj.parent( 'tr' ).show();
15
+ } else {
16
+ attendeeobj.parent( 'tr' ).hide();
17
+ }
18
+ } );
19
+
20
+ } );
21
+
22
+
23
+ $( '.tickets_checkin' ).click( function ( e ) {
24
+
25
+ var obj = jQuery( this );
26
+
27
+ var params = {
28
+ action:'tribe-ticket-checkin-' + obj.attr( 'data-provider' ),
29
+ provider:obj.attr( 'data-provider' ),
30
+ order_ID:obj.attr( 'data-attendee-id' )
31
+ };
32
+
33
+ $.post(
34
+ ajaxurl,
35
+ params,
36
+ function ( response ) {
37
+ if ( response.success ) {
38
+ obj.parent( 'td' ).parent( 'tr' ).addClass( 'tickets_checked' );
39
+ }
40
+ },
41
+ 'json'
42
+ );
43
+
44
+ e.preventDefault();
45
+ } );
46
+
47
+
48
+ $( '.tickets_uncheckin' ).click( function ( e ) {
49
+
50
+ var obj = jQuery( this );
51
+
52
+ var params = {
53
+ action:'tribe-ticket-uncheckin-' + obj.attr( 'data-provider' ),
54
+ provider:obj.attr( 'data-provider' ),
55
+ order_ID:obj.attr( 'data-attendee-id' )
56
+ };
57
+
58
+ $.post(
59
+ ajaxurl,
60
+ params,
61
+ function ( response ) {
62
+ if ( response.success ) {
63
+ obj.parent( 'span' ).parent( 'td' ).parent( 'tr' ).removeClass( 'tickets_checked' );
64
+ }
65
+ },
66
+ 'json'
67
+ );
68
+
69
+ e.preventDefault();
70
+ } );
71
+
72
+ } );
resources/tickets.css ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #ticket_form {
2
+ display : none;
3
+ }
4
+
5
+ #ticket_form input[type=radio] {
6
+ margin-right : 5px;
7
+ }
8
+
9
+ #ticket_form span {
10
+ margin-right : 10px;
11
+ }
12
+
13
+ .ticket_list tr td {
14
+ padding : 4px 7px 2px;
15
+ vertical-align : top;
16
+ }
17
+
18
+ .ticket_list tr td div.ticket_controls {
19
+ visibility : hidden;
20
+ }
21
+
22
+ .ticket_list tr:hover td div.ticket_controls {
23
+ visibility : visible;
24
+ }
25
+
26
+ .ticket_list h4 {
27
+ text-transform : uppercase;
28
+ border-bottom : 1px solid #e5e5e5;
29
+ padding-bottom : 6px;
30
+ }
31
+
32
+ .ticket_list h4 a {
33
+ font-weight : normal;
34
+ font-size : 11px;
35
+ text-transform : none;
36
+ }
37
+
38
+ p.ticket_name {
39
+ font-size : 13px;
40
+ font-weight : bold;
41
+ }
42
+
43
+ .ticket_form p.description {
44
+ display : inline;
45
+ }
46
+
47
+ .ticket_form h4.ticket_form_title_edit {
48
+ display : none;
49
+ }
resources/tickets.js ADDED
@@ -0,0 +1,240 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ jQuery( document ).ready( function ( $ ) {
2
+
3
+ var datepickerOpts = {
4
+ dateFormat:'yy-mm-dd',
5
+ showAnim:'fadeIn',
6
+ changeMonth:true,
7
+ changeYear:true,
8
+ numberOfMonths:3,
9
+ showButtonPanel:true,
10
+ onChange:function () {
11
+ alert( 'lala' );
12
+ },
13
+ onSelect:function ( dateText, inst ) {
14
+ var the_date = $.datepicker.parseDate( 'yy-mm-dd', dateText );
15
+ if ( inst.id === "ticket_start_date" ) {
16
+ $( "#ticket_end_date" ).datepicker( 'option', 'minDate', the_date )
17
+ } else {
18
+ $( "#ticket_start_date" ).datepicker( 'option', 'maxDate', the_date )
19
+
20
+ }
21
+ }
22
+ };
23
+
24
+ $( "#ticket_start_date" ).datepicker( datepickerOpts );
25
+ $( "#ticket_end_date" ).datepicker( datepickerOpts );
26
+
27
+ /* Show the advanced metabox for the selected provider and hide the others on selection change */
28
+ $( 'input[name=ticket_provider]:radio' ).change( function () {
29
+ $( 'tr.ticket_advanced' ).hide();
30
+ $( 'tr.ticket_advanced_' + this.value ).show();
31
+ } );
32
+
33
+ /* Show the advanced metabox for the selected provider and hide the others at ready */
34
+ $( 'input[name=ticket_provider]:checked' ).each( function () {
35
+ $( 'tr.ticket_advanced' ).hide();
36
+ $( 'tr.ticket_advanced_' + this.value ).show();
37
+ } );
38
+
39
+ /* "Add a ticket" link action */
40
+ $( 'a#ticket_form_toggle' ).click( function ( e ) {
41
+ $( 'h4.ticket_form_title_edit' ).hide();
42
+ $( 'h4.ticket_form_title_add' ).show();
43
+ $( this ).hide();
44
+ ticket_clear_form();
45
+ $( '#ticket_form' ).show();
46
+ $( 'html, body' ).animate( {
47
+ scrollTop:$( "#ticket_form_table" ).offset().top - 50
48
+ }, 500 );
49
+ e.preventDefault();
50
+ } );
51
+
52
+ /* "Cancel" button action */
53
+ $( '#ticket_form_cancel' ).click( function () {
54
+
55
+ ticket_clear_form();
56
+
57
+ $( 'html, body' ).animate( {
58
+ scrollTop:$( "#event_tickets" ).offset().top - 50
59
+ }, 500 );
60
+
61
+ } );
62
+
63
+ /* "Save Ticket" button action */
64
+ $( '#ticket_form_save' ).click( function () {
65
+
66
+ tickets_start_spin();
67
+
68
+ var params = {
69
+ action:'tribe-ticket-add-' + $( 'input[name=ticket_provider]:checked' ).val(),
70
+ formdata:$( '.ticket_field' ).serialize(),
71
+ post_ID:$( '#post_ID' ).val()
72
+ };
73
+
74
+ $.post(
75
+ ajaxurl,
76
+ params,
77
+ function ( response ) {
78
+ console.log( response );
79
+ if ( response.success ) {
80
+ ticket_clear_form();
81
+ $( 'td.ticket_list_container' ).empty().html( response.data );
82
+ }
83
+ },
84
+ 'json'
85
+ ).complete( function () {
86
+ $( 'html, body' ).animate( {
87
+ scrollTop:$( "#event_tickets" ).offset().top - 50
88
+ }, 500 );
89
+
90
+ tickets_stop_spin();
91
+ } );
92
+
93
+ } );
94
+
95
+ /* "Delete Ticket" link action */
96
+
97
+ $( '.ticket_delete' ).live( 'click', function ( e ) {
98
+
99
+ e.preventDefault();
100
+
101
+ tickets_start_spin();
102
+
103
+ var params = {
104
+ action:'tribe-ticket-delete-' + $( this ).attr( "attr-provider" ),
105
+ post_ID:$( '#post_ID' ).val(),
106
+ ticket_id:$( this ).attr( "attr-ticket-id" )
107
+ };
108
+
109
+ $.post(
110
+ ajaxurl,
111
+ params,
112
+ function ( response ) {
113
+
114
+ if ( response.success ) {
115
+ $( 'td.ticket_list_container' ).empty().html( response.data );
116
+ }
117
+ },
118
+ 'json'
119
+ ).complete( function () {
120
+ tickets_stop_spin();
121
+ } );
122
+
123
+
124
+ } );
125
+
126
+ /* "Edit Ticket" link action */
127
+
128
+ $( '.ticket_edit' ).live( 'click', function ( e ) {
129
+
130
+ e.preventDefault();
131
+
132
+ $( 'h4.ticket_form_title_edit' ).show();
133
+ $( 'h4.ticket_form_title_add' ).hide();
134
+
135
+
136
+ tickets_start_spin();
137
+
138
+ var params = {
139
+ action:'tribe-ticket-edit-' + $( this ).attr( "attr-provider" ),
140
+ post_ID:$( '#post_ID' ).val(),
141
+ ticket_id:$( this ).attr( "attr-ticket-id" )
142
+ };
143
+
144
+ $.post(
145
+ ajaxurl,
146
+ params,
147
+ function ( response ) {
148
+ ticket_clear_form();
149
+
150
+ $( '#ticket_id' ).val( response.data.ID );
151
+ $( '#ticket_name' ).val( response.data.name );
152
+ $( '#ticket_description' ).val( response.data.description );
153
+ $( '#ticket_price' ).val( response.data.price );
154
+
155
+ $( '#ticket_start_date' ).val( response.data.start_date.substring( 0, 10 ) );
156
+ $( '#ticket_end_date' ).val( response.data.end_date.substring( 0, 10 ) );
157
+
158
+ if ( response.data.start_date ) {
159
+ var start_hour = response.data.start_date.substring( 11, 13 );
160
+ var start_meridian = 'am';
161
+ if ( parseInt( start_hour ) > 12 ) {
162
+ start_meridian = 'pm';
163
+ start_hour = parseInt( start_hour ) - 12;
164
+ start_hour = ("0" + start_hour).slice( -2 );
165
+ }
166
+ if ( parseInt( start_hour ) === 12 ) {
167
+ start_meridian = 'pm';
168
+ }
169
+
170
+ $( '#ticket_start_hour' ).val( start_hour );
171
+ $( '#ticket_start_meridian' ).val( start_meridian );
172
+ }
173
+
174
+ if ( response.data.end_date ) {
175
+
176
+ var end_hour = response.data.end_date.substring( 11, 13 );
177
+ var end_meridian = 'am';
178
+ if ( parseInt( end_hour ) > 12 ) {
179
+ end_meridian = 'pm';
180
+ end_hour = parseInt( end_hour ) - 12;
181
+ end_hour = ("0" + end_hour).slice( -2 );
182
+ }
183
+ if ( parseInt( end_hour ) === 12 ) {
184
+ end_meridian = 'pm';
185
+ }
186
+
187
+ $( '#ticket_end_hour' ).val( end_hour );
188
+ $( '#ticket_end_meridian' ).val( end_meridian );
189
+
190
+ $( '#ticket_start_minute' ).val( response.data.start_date.substring( 14, 16 ) );
191
+ $( '#ticket_end_minute' ).val( response.data.end_date.substring( 14, 16 ) );
192
+ }
193
+
194
+ $( 'tr.ticket_advanced_' + response.data.provider_class ).remove();
195
+ $( 'tr.ticket.bottom' ).before( response.data.advanced_fields );
196
+
197
+ $( 'input:radio[name=ticket_provider]' ).filter( '[value=' + response.data.provider_class + ']' ).click();
198
+
199
+ $( 'a#ticket_form_toggle' ).hide();
200
+ $( '#ticket_form' ).show();
201
+
202
+ },
203
+ 'json'
204
+ ).complete( function () {
205
+ $( 'html, body' ).animate( {
206
+ scrollTop:$( "#ticket_form_table" ).offset().top - 50
207
+ }, 500 );
208
+
209
+ tickets_stop_spin();
210
+ } );
211
+
212
+
213
+ } );
214
+
215
+
216
+ /* Helper functions */
217
+
218
+ function ticket_clear_form() {
219
+ $( 'a#ticket_form_toggle' ).show();
220
+
221
+ $( '#ticket_form input:not(:button):not(:radio):not(:checkbox)' ).val( '' );
222
+ $( '#ticket_form input:checkbox' ).attr( 'checked', false );
223
+
224
+ $( '#ticket_form textarea' ).val( '' );
225
+
226
+ $( '#ticket_form' ).hide();
227
+ }
228
+
229
+ function tickets_start_spin() {
230
+ jQuery( '#event_tickets' ).css( 'opacity', '0.5' );
231
+ jQuery( "#tribe-loading" ).show();
232
+ }
233
+
234
+ function tickets_stop_spin() {
235
+ jQuery( '#event_tickets' ).css( 'opacity', '1' );
236
+ jQuery( "#tribe-loading" ).hide();
237
+ }
238
+
239
+
240
+ } );
resources/tribe-settings.js CHANGED
File without changes
resources/ui.datepicker.min.js CHANGED
File without changes
resources/ui.dialog.min.js CHANGED
File without changes
resources/warning.png ADDED
Binary file
screenshot-1.png CHANGED
File without changes
screenshot-2.jpg CHANGED
File without changes
screenshot-2.png CHANGED
File without changes
screenshot-3.jpg CHANGED
File without changes
screenshot-3.png CHANGED
File without changes
screenshot-4.jpg CHANGED
File without changes
screenshot-4.png CHANGED
File without changes
screenshot-5.jpg CHANGED
File without changes
screenshot-5.png CHANGED
File without changes
screenshot-6.jpg CHANGED
File without changes
screenshot-6.png CHANGED
File without changes
tests/PHPUnit/bootstrap.php CHANGED
File without changes
tests/PHPUnit/phpunit-test.Test.php CHANGED
File without changes
tests/PHPUnit/phpunit.xml CHANGED
File without changes
tests/PHPUnit/tribe-capabilities.Test.php CHANGED
File without changes
tests/PHPUnit/tribe-event-creation.Test.php CHANGED
File without changes
tests/PHPUnit/tribe-events-class.Test.php CHANGED
File without changes
tests/PHPUnit/tribe-previous-ecp-versions.Test.php CHANGED
File without changes
tests/PHPUnit/wordpress-tests/lib/tribe-testcase.php CHANGED
File without changes
the-events-calendar.php CHANGED
@@ -2,7 +2,7 @@
2
  /*
3
  Plugin Name: The Events Calendar
4
  Description: The Events Calendar is a fully featured event management system with multiple views, 3rd party integrations, and a slew of premium add-ons.
5
- Version: 2.0.9
6
  Author: Modern Tribe, Inc.
7
  Author URI: http://tri.be?ref=tec-plugin
8
  Text Domain: tribe-events-calendar
2
  /*
3
  Plugin Name: The Events Calendar
4
  Description: The Events Calendar is a fully featured event management system with multiple views, 3rd party integrations, and a slew of premium add-ons.
5
+ Version: 2.0.10
6
  Author: Modern Tribe, Inc.
7
  Author URI: http://tri.be?ref=tec-plugin
8
  Text Domain: tribe-events-calendar
vendor/fpdf/font/courier.php ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $type = 'Core';
3
+ $name = 'Courier';
4
+ $up = -100;
5
+ $ut = 50;
6
+ for($i=0;$i<=255;$i++)
7
+ $cw[chr($i)] = 600;
8
+ ?>
vendor/fpdf/font/courierb.php ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $type = 'Core';
3
+ $name = 'Courier-Bold';
4
+ $up = -100;
5
+ $ut = 50;
6
+ for($i=0;$i<=255;$i++)
7
+ $cw[chr($i)] = 600;
8
+ ?>
vendor/fpdf/font/courierbi.php ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $type = 'Core';
3
+ $name = 'Courier-BoldOblique';
4
+ $up = -100;
5
+ $ut = 50;
6
+ for($i=0;$i<=255;$i++)
7
+ $cw[chr($i)] = 600;
8
+ ?>
vendor/fpdf/font/courieri.php ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $type = 'Core';
3
+ $name = 'Courier-Oblique';
4
+ $up = -100;
5
+ $ut = 50;
6
+ for($i=0;$i<=255;$i++)
7
+ $cw[chr($i)] = 600;
8
+ ?>
vendor/fpdf/font/helvetica.php ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $type = 'Core';
3
+ $name = 'Helvetica';
4
+ $up = -100;
5
+ $ut = 50;
6
+ $cw = array(
7
+ chr(0)=>278,chr(1)=>278,chr(2)=>278,chr(3)=>278,chr(4)=>278,chr(5)=>278,chr(6)=>278,chr(7)=>278,chr(8)=>278,chr(9)=>278,chr(10)=>278,chr(11)=>278,chr(12)=>278,chr(13)=>278,chr(14)=>278,chr(15)=>278,chr(16)=>278,chr(17)=>278,chr(18)=>278,chr(19)=>278,chr(20)=>278,chr(21)=>278,
8
+ chr(22)=>278,chr(23)=>278,chr(24)=>278,chr(25)=>278,chr(26)=>278,chr(27)=>278,chr(28)=>278,chr(29)=>278,chr(30)=>278,chr(31)=>278,' '=>278,'!'=>278,'"'=>355,'#'=>556,'$'=>556,'%'=>889,'&'=>667,'\''=>191,'('=>333,')'=>333,'*'=>389,'+'=>584,
9
+ ','=>278,'-'=>333,'.'=>278,'/'=>278,'0'=>556,'1'=>556,'2'=>556,'3'=>556,'4'=>556,'5'=>556,'6'=>556,'7'=>556,'8'=>556,'9'=>556,':'=>278,';'=>278,'<'=>584,'='=>584,'>'=>584,'?'=>556,'@'=>1015,'A'=>667,
10
+ 'B'=>667,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>722,'I'=>278,'J'=>500,'K'=>667,'L'=>556,'M'=>833,'N'=>722,'O'=>778,'P'=>667,'Q'=>778,'R'=>722,'S'=>667,'T'=>611,'U'=>722,'V'=>667,'W'=>944,
11
+ 'X'=>667,'Y'=>667,'Z'=>611,'['=>278,'\\'=>278,']'=>278,'^'=>469,'_'=>556,'`'=>333,'a'=>556,'b'=>556,'c'=>500,'d'=>556,'e'=>556,'f'=>278,'g'=>556,'h'=>556,'i'=>222,'j'=>222,'k'=>500,'l'=>222,'m'=>833,
12
+ 'n'=>556,'o'=>556,'p'=>556,'q'=>556,'r'=>333,'s'=>500,'t'=>278,'u'=>556,'v'=>500,'w'=>722,'x'=>500,'y'=>500,'z'=>500,'{'=>334,'|'=>260,'}'=>334,'~'=>584,chr(127)=>350,chr(128)=>556,chr(129)=>350,chr(130)=>222,chr(131)=>556,
13
+ chr(132)=>333,chr(133)=>1000,chr(134)=>556,chr(135)=>556,chr(136)=>333,chr(137)=>1000,chr(138)=>667,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>222,chr(146)=>222,chr(147)=>333,chr(148)=>333,chr(149)=>350,chr(150)=>556,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,
14
+ chr(154)=>500,chr(155)=>333,chr(156)=>944,chr(157)=>350,chr(158)=>500,chr(159)=>667,chr(160)=>278,chr(161)=>333,chr(162)=>556,chr(163)=>556,chr(164)=>556,chr(165)=>556,chr(166)=>260,chr(167)=>556,chr(168)=>333,chr(169)=>737,chr(170)=>370,chr(171)=>556,chr(172)=>584,chr(173)=>333,chr(174)=>737,chr(175)=>333,
15
+ chr(176)=>400,chr(177)=>584,chr(178)=>333,chr(179)=>333,chr(180)=>333,chr(181)=>556,chr(182)=>537,chr(183)=>278,chr(184)=>333,chr(185)=>333,chr(186)=>365,chr(187)=>556,chr(188)=>834,chr(189)=>834,chr(190)=>834,chr(191)=>611,chr(192)=>667,chr(193)=>667,chr(194)=>667,chr(195)=>667,chr(196)=>667,chr(197)=>667,
16
+ chr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>278,chr(205)=>278,chr(206)=>278,chr(207)=>278,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>584,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722,
17
+ chr(220)=>722,chr(221)=>667,chr(222)=>667,chr(223)=>611,chr(224)=>556,chr(225)=>556,chr(226)=>556,chr(227)=>556,chr(228)=>556,chr(229)=>556,chr(230)=>889,chr(231)=>500,chr(232)=>556,chr(233)=>556,chr(234)=>556,chr(235)=>556,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>556,chr(241)=>556,
18
+ chr(242)=>556,chr(243)=>556,chr(244)=>556,chr(245)=>556,chr(246)=>556,chr(247)=>584,chr(248)=>611,chr(249)=>556,chr(250)=>556,chr(251)=>556,chr(252)=>556,chr(253)=>500,chr(254)=>556,chr(255)=>500);
19
+ ?>
vendor/fpdf/font/helveticab.php ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $type = 'Core';
3
+ $name = 'Helvetica-Bold';
4
+ $up = -100;
5
+ $ut = 50;
6
+ $cw = array(
7
+ chr(0)=>278,chr(1)=>278,chr(2)=>278,chr(3)=>278,chr(4)=>278,chr(5)=>278,chr(6)=>278,chr(7)=>278,chr(8)=>278,chr(9)=>278,chr(10)=>278,chr(11)=>278,chr(12)=>278,chr(13)=>278,chr(14)=>278,chr(15)=>278,chr(16)=>278,chr(17)=>278,chr(18)=>278,chr(19)=>278,chr(20)=>278,chr(21)=>278,
8
+ chr(22)=>278,chr(23)=>278,chr(24)=>278,chr(25)=>278,chr(26)=>278,chr(27)=>278,chr(28)=>278,chr(29)=>278,chr(30)=>278,chr(31)=>278,' '=>278,'!'=>333,'"'=>474,'#'=>556,'$'=>556,'%'=>889,'&'=>722,'\''=>238,'('=>333,')'=>333,'*'=>389,'+'=>584,
9
+ ','=>278,'-'=>333,'.'=>278,'/'=>278,'0'=>556,'1'=>556,'2'=>556,'3'=>556,'4'=>556,'5'=>556,'6'=>556,'7'=>556,'8'=>556,'9'=>556,':'=>333,';'=>333,'<'=>584,'='=>584,'>'=>584,'?'=>611,'@'=>975,'A'=>722,
10
+ 'B'=>722,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>722,'I'=>278,'J'=>556,'K'=>722,'L'=>611,'M'=>833,'N'=>722,'O'=>778,'P'=>667,'Q'=>778,'R'=>722,'S'=>667,'T'=>611,'U'=>722,'V'=>667,'W'=>944,
11
+ 'X'=>667,'Y'=>667,'Z'=>611,'['=>333,'\\'=>278,']'=>333,'^'=>584,'_'=>556,'`'=>333,'a'=>556,'b'=>611,'c'=>556,'d'=>611,'e'=>556,'f'=>333,'g'=>611,'h'=>611,'i'=>278,'j'=>278,'k'=>556,'l'=>278,'m'=>889,
12
+ 'n'=>611,'o'=>611,'p'=>611,'q'=>611,'r'=>389,'s'=>556,'t'=>333,'u'=>611,'v'=>556,'w'=>778,'x'=>556,'y'=>556,'z'=>500,'{'=>389,'|'=>280,'}'=>389,'~'=>584,chr(127)=>350,chr(128)=>556,chr(129)=>350,chr(130)=>278,chr(131)=>556,
13
+ chr(132)=>500,chr(133)=>1000,chr(134)=>556,chr(135)=>556,chr(136)=>333,chr(137)=>1000,chr(138)=>667,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>278,chr(146)=>278,chr(147)=>500,chr(148)=>500,chr(149)=>350,chr(150)=>556,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,
14
+ chr(154)=>556,chr(155)=>333,chr(156)=>944,chr(157)=>350,chr(158)=>500,chr(159)=>667,chr(160)=>278,chr(161)=>333,chr(162)=>556,chr(163)=>556,chr(164)=>556,chr(165)=>556,chr(166)=>280,chr(167)=>556,chr(168)=>333,chr(169)=>737,chr(170)=>370,chr(171)=>556,chr(172)=>584,chr(173)=>333,chr(174)=>737,chr(175)=>333,
15
+ chr(176)=>400,chr(177)=>584,chr(178)=>333,chr(179)=>333,chr(180)=>333,chr(181)=>611,chr(182)=>556,chr(183)=>278,chr(184)=>333,chr(185)=>333,chr(186)=>365,chr(187)=>556,chr(188)=>834,chr(189)=>834,chr(190)=>834,chr(191)=>611,chr(192)=>722,chr(193)=>722,chr(194)=>722,chr(195)=>722,chr(196)=>722,chr(197)=>722,
16
+ chr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>278,chr(205)=>278,chr(206)=>278,chr(207)=>278,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>584,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722,
17
+ chr(220)=>722,chr(221)=>667,chr(222)=>667,chr(223)=>611,chr(224)=>556,chr(225)=>556,chr(226)=>556,chr(227)=>556,chr(228)=>556,chr(229)=>556,chr(230)=>889,chr(231)=>556,chr(232)=>556,chr(233)=>556,chr(234)=>556,chr(235)=>556,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>611,chr(241)=>611,
18
+ chr(242)=>611,chr(243)=>611,chr(244)=>611,chr(245)=>611,chr(246)=>611,chr(247)=>584,chr(248)=>611,chr(249)=>611,chr(250)=>611,chr(251)=>611,chr(252)=>611,chr(253)=>556,chr(254)=>611,chr(255)=>556);
19
+ ?>
vendor/fpdf/font/helveticabi.php ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $type = 'Core';
3
+ $name = 'Helvetica-BoldOblique';
4
+ $up = -100;
5
+ $ut = 50;
6
+ $cw = array(
7
+ chr(0)=>278,chr(1)=>278,chr(2)=>278,chr(3)=>278,chr(4)=>278,chr(5)=>278,chr(6)=>278,chr(7)=>278,chr(8)=>278,chr(9)=>278,chr(10)=>278,chr(11)=>278,chr(12)=>278,chr(13)=>278,chr(14)=>278,chr(15)=>278,chr(16)=>278,chr(17)=>278,chr(18)=>278,chr(19)=>278,chr(20)=>278,chr(21)=>278,
8
+ chr(22)=>278,chr(23)=>278,chr(24)=>278,chr(25)=>278,chr(26)=>278,chr(27)=>278,chr(28)=>278,chr(29)=>278,chr(30)=>278,chr(31)=>278,' '=>278,'!'=>333,'"'=>474,'#'=>556,'$'=>556,'%'=>889,'&'=>722,'\''=>238,'('=>333,')'=>333,'*'=>389,'+'=>584,
9
+ ','=>278,'-'=>333,'.'=>278,'/'=>278,'0'=>556,'1'=>556,'2'=>556,'3'=>556,'4'=>556,'5'=>556,'6'=>556,'7'=>556,'8'=>556,'9'=>556,':'=>333,';'=>333,'<'=>584,'='=>584,'>'=>584,'?'=>611,'@'=>975,'A'=>722,
10
+ 'B'=>722,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>722,'I'=>278,'J'=>556,'K'=>722,'L'=>611,'M'=>833,'N'=>722,'O'=>778,'P'=>667,'Q'=>778,'R'=>722,'S'=>667,'T'=>611,'U'=>722,'V'=>667,'W'=>944,
11
+ 'X'=>667,'Y'=>667,'Z'=>611,'['=>333,'\\'=>278,']'=>333,'^'=>584,'_'=>556,'`'=>333,'a'=>556,'b'=>611,'c'=>556,'d'=>611,'e'=>556,'f'=>333,'g'=>611,'h'=>611,'i'=>278,'j'=>278,'k'=>556,'l'=>278,'m'=>889,
12
+ 'n'=>611,'o'=>611,'p'=>611,'q'=>611,'r'=>389,'s'=>556,'t'=>333,'u'=>611,'v'=>556,'w'=>778,'x'=>556,'y'=>556,'z'=>500,'{'=>389,'|'=>280,'}'=>389,'~'=>584,chr(127)=>350,chr(128)=>556,chr(129)=>350,chr(130)=>278,chr(131)=>556,
13
+ chr(132)=>500,chr(133)=>1000,chr(134)=>556,chr(135)=>556,chr(136)=>333,chr(137)=>1000,chr(138)=>667,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>278,chr(146)=>278,chr(147)=>500,chr(148)=>500,chr(149)=>350,chr(150)=>556,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,
14
+ chr(154)=>556,chr(155)=>333,chr(156)=>944,chr(157)=>350,chr(158)=>500,chr(159)=>667,chr(160)=>278,chr(161)=>333,chr(162)=>556,chr(163)=>556,chr(164)=>556,chr(165)=>556,chr(166)=>280,chr(167)=>556,chr(168)=>333,chr(169)=>737,chr(170)=>370,chr(171)=>556,chr(172)=>584,chr(173)=>333,chr(174)=>737,chr(175)=>333,
15
+ chr(176)=>400,chr(177)=>584,chr(178)=>333,chr(179)=>333,chr(180)=>333,chr(181)=>611,chr(182)=>556,chr(183)=>278,chr(184)=>333,chr(185)=>333,chr(186)=>365,chr(187)=>556,chr(188)=>834,chr(189)=>834,chr(190)=>834,chr(191)=>611,chr(192)=>722,chr(193)=>722,chr(194)=>722,chr(195)=>722,chr(196)=>722,chr(197)=>722,
16
+ chr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>278,chr(205)=>278,chr(206)=>278,chr(207)=>278,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>584,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722,
17
+ chr(220)=>722,chr(221)=>667,chr(222)=>667,chr(223)=>611,chr(224)=>556,chr(225)=>556,chr(226)=>556,chr(227)=>556,chr(228)=>556,chr(229)=>556,chr(230)=>889,chr(231)=>556,chr(232)=>556,chr(233)=>556,chr(234)=>556,chr(235)=>556,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>611,chr(241)=>611,
18
+ chr(242)=>611,chr(243)=>611,chr(244)=>611,chr(245)=>611,chr(246)=>611,chr(247)=>584,chr(248)=>611,chr(249)=>611,chr(250)=>611,chr(251)=>611,chr(252)=>611,chr(253)=>556,chr(254)=>611,chr(255)=>556);
19
+ ?>
vendor/fpdf/font/helveticai.php ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $type = 'Core';
3
+ $name = 'Helvetica-Oblique';
4
+ $up = -100;
5
+ $ut = 50;
6
+ $cw = array(
7
+ chr(0)=>278,chr(1)=>278,chr(2)=>278,chr(3)=>278,chr(4)=>278,chr(5)=>278,chr(6)=>278,chr(7)=>278,chr(8)=>278,chr(9)=>278,chr(10)=>278,chr(11)=>278,chr(12)=>278,chr(13)=>278,chr(14)=>278,chr(15)=>278,chr(16)=>278,chr(17)=>278,chr(18)=>278,chr(19)=>278,chr(20)=>278,chr(21)=>278,
8
+ chr(22)=>278,chr(23)=>278,chr(24)=>278,chr(25)=>278,chr(26)=>278,chr(27)=>278,chr(28)=>278,chr(29)=>278,chr(30)=>278,chr(31)=>278,' '=>278,'!'=>278,'"'=>355,'#'=>556,'$'=>556,'%'=>889,'&'=>667,'\''=>191,'('=>333,')'=>333,'*'=>389,'+'=>584,
9
+ ','=>278,'-'=>333,'.'=>278,'/'=>278,'0'=>556,'1'=>556,'2'=>556,'3'=>556,'4'=>556,'5'=>556,'6'=>556,'7'=>556,'8'=>556,'9'=>556,':'=>278,';'=>278,'<'=>584,'='=>584,'>'=>584,'?'=>556,'@'=>1015,'A'=>667,
10
+ 'B'=>667,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>722,'I'=>278,'J'=>500,'K'=>667,'L'=>556,'M'=>833,'N'=>722,'O'=>778,'P'=>667,'Q'=>778,'R'=>722,'S'=>667,'T'=>611,'U'=>722,'V'=>667,'W'=>944,
11
+ 'X'=>667,'Y'=>667,'Z'=>611,'['=>278,'\\'=>278,']'=>278,'^'=>469,'_'=>556,'`'=>333,'a'=>556,'b'=>556,'c'=>500,'d'=>556,'e'=>556,'f'=>278,'g'=>556,'h'=>556,'i'=>222,'j'=>222,'k'=>500,'l'=>222,'m'=>833,
12
+ 'n'=>556,'o'=>556,'p'=>556,'q'=>556,'r'=>333,'s'=>500,'t'=>278,'u'=>556,'v'=>500,'w'=>722,'x'=>500,'y'=>500,'z'=>500,'{'=>334,'|'=>260,'}'=>334,'~'=>584,chr(127)=>350,chr(128)=>556,chr(129)=>350,chr(130)=>222,chr(131)=>556,
13
+ chr(132)=>333,chr(133)=>1000,chr(134)=>556,chr(135)=>556,chr(136)=>333,chr(137)=>1000,chr(138)=>667,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>222,chr(146)=>222,chr(147)=>333,chr(148)=>333,chr(149)=>350,chr(150)=>556,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,
14
+ chr(154)=>500,chr(155)=>333,chr(156)=>944,chr(157)=>350,chr(158)=>500,chr(159)=>667,chr(160)=>278,chr(161)=>333,chr(162)=>556,chr(163)=>556,chr(164)=>556,chr(165)=>556,chr(166)=>260,chr(167)=>556,chr(168)=>333,chr(169)=>737,chr(170)=>370,chr(171)=>556,chr(172)=>584,chr(173)=>333,chr(174)=>737,chr(175)=>333,
15
+ chr(176)=>400,chr(177)=>584,chr(178)=>333,chr(179)=>333,chr(180)=>333,chr(181)=>556,chr(182)=>537,chr(183)=>278,chr(184)=>333,chr(185)=>333,chr(186)=>365,chr(187)=>556,chr(188)=>834,chr(189)=>834,chr(190)=>834,chr(191)=>611,chr(192)=>667,chr(193)=>667,chr(194)=>667,chr(195)=>667,chr(196)=>667,chr(197)=>667,
16
+ chr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>278,chr(205)=>278,chr(206)=>278,chr(207)=>278,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>584,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722,
17
+ chr(220)=>722,chr(221)=>667,chr(222)=>667,chr(223)=>611,chr(224)=>556,chr(225)=>556,chr(226)=>556,chr(227)=>556,chr(228)=>556,chr(229)=>556,chr(230)=>889,chr(231)=>500,chr(232)=>556,chr(233)=>556,chr(234)=>556,chr(235)=>556,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>556,chr(241)=>556,
18
+ chr(242)=>556,chr(243)=>556,chr(244)=>556,chr(245)=>556,chr(246)=>556,chr(247)=>584,chr(248)=>611,chr(249)=>556,chr(250)=>556,chr(251)=>556,chr(252)=>556,chr(253)=>500,chr(254)=>556,chr(255)=>500);
19
+ ?>
vendor/fpdf/font/opensans.php ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $type = 'TrueType';
3
+ $name = 'OpenSans-Semibold';
4
+ $desc = array('Ascent'=>765,'Descent'=>-240,'CapHeight'=>714,'Flags'=>32,'FontBBox'=>'[-584 -282 1261 1049]','ItalicAngle'=>0,'StemV'=>70,'MissingWidth'=>600);
5
+ $up = -75;
6
+ $ut = 50;
7
+ $cw = array(
8
+ chr(0)=>600,chr(1)=>600,chr(2)=>600,chr(3)=>600,chr(4)=>600,chr(5)=>600,chr(6)=>600,chr(7)=>600,chr(8)=>600,chr(9)=>600,chr(10)=>600,chr(11)=>600,chr(12)=>600,chr(13)=>600,chr(14)=>600,chr(15)=>600,chr(16)=>600,chr(17)=>600,chr(18)=>600,chr(19)=>600,chr(20)=>600,chr(21)=>600,
9
+ chr(22)=>600,chr(23)=>600,chr(24)=>600,chr(25)=>600,chr(26)=>600,chr(27)=>600,chr(28)=>600,chr(29)=>600,chr(30)=>600,chr(31)=>600,' '=>260,'!'=>276,'"'=>436,'#'=>646,'$'=>571,'%'=>862,'&'=>740,'\''=>243,'('=>317,')'=>317,'*'=>548,'+'=>571,
10
+ ','=>267,'-'=>322,'.'=>275,'/'=>390,'0'=>571,'1'=>571,'2'=>571,'3'=>571,'4'=>571,'5'=>571,'6'=>571,'7'=>571,'8'=>571,'9'=>571,':'=>275,';'=>278,'<'=>571,'='=>571,'>'=>571,'?'=>453,'@'=>898,'A'=>661,
11
+ 'B'=>660,'C'=>634,'D'=>734,'E'=>558,'F'=>532,'G'=>726,'H'=>751,'I'=>305,'J'=>299,'K'=>639,'L'=>542,'M'=>923,'N'=>783,'O'=>787,'P'=>615,'Q'=>787,'R'=>639,'S'=>550,'T'=>566,'U'=>742,'V'=>622,'W'=>946,
12
+ 'X'=>622,'Y'=>592,'Z'=>575,'['=>330,'\\'=>390,']'=>330,'^'=>537,'_'=>429,'`'=>592,'a'=>580,'b'=>623,'c'=>495,'d'=>623,'e'=>576,'f'=>363,'g'=>556,'h'=>635,'i'=>279,'j'=>279,'k'=>572,'l'=>279,'m'=>956,
13
+ 'n'=>635,'o'=>611,'p'=>623,'q'=>623,'r'=>431,'s'=>487,'t'=>393,'u'=>635,'v'=>535,'w'=>817,'x'=>551,'y'=>536,'z'=>478,'{'=>386,'|'=>551,'}'=>371,'~'=>571,chr(127)=>600,chr(128)=>580,chr(129)=>600,chr(130)=>268,chr(131)=>574,
14
+ chr(132)=>461,chr(133)=>819,chr(134)=>509,chr(135)=>518,chr(136)=>599,chr(137)=>1241,chr(138)=>550,chr(139)=>336,chr(140)=>948,chr(141)=>600,chr(142)=>575,chr(143)=>600,chr(144)=>600,chr(145)=>193,chr(146)=>193,chr(147)=>397,chr(148)=>397,chr(149)=>376,chr(150)=>500,chr(151)=>1000,chr(152)=>599,chr(153)=>762,
15
+ chr(154)=>487,chr(155)=>336,chr(156)=>960,chr(157)=>600,chr(158)=>478,chr(159)=>592,chr(160)=>260,chr(161)=>276,chr(162)=>571,chr(163)=>571,chr(164)=>571,chr(165)=>571,chr(166)=>551,chr(167)=>501,chr(168)=>592,chr(169)=>832,chr(170)=>368,chr(171)=>556,chr(172)=>571,chr(173)=>322,chr(174)=>832,chr(175)=>500,
16
+ chr(176)=>428,chr(177)=>571,chr(178)=>363,chr(179)=>363,chr(180)=>592,chr(181)=>639,chr(182)=>655,chr(183)=>275,chr(184)=>216,chr(185)=>363,chr(186)=>381,chr(187)=>556,chr(188)=>830,chr(189)=>830,chr(190)=>830,chr(191)=>453,chr(192)=>661,chr(193)=>661,chr(194)=>661,chr(195)=>661,chr(196)=>661,chr(197)=>661,
17
+ chr(198)=>912,chr(199)=>634,chr(200)=>558,chr(201)=>558,chr(202)=>558,chr(203)=>558,chr(204)=>305,chr(205)=>305,chr(206)=>305,chr(207)=>305,chr(208)=>731,chr(209)=>783,chr(210)=>787,chr(211)=>787,chr(212)=>787,chr(213)=>787,chr(214)=>787,chr(215)=>571,chr(216)=>787,chr(217)=>742,chr(218)=>742,chr(219)=>742,
18
+ chr(220)=>742,chr(221)=>592,chr(222)=>619,chr(223)=>666,chr(224)=>580,chr(225)=>580,chr(226)=>580,chr(227)=>580,chr(228)=>580,chr(229)=>580,chr(230)=>887,chr(231)=>495,chr(232)=>576,chr(233)=>576,chr(234)=>576,chr(235)=>576,chr(236)=>279,chr(237)=>279,chr(238)=>279,chr(239)=>279,chr(240)=>607,chr(241)=>635,
19
+ chr(242)=>611,chr(243)=>611,chr(244)=>611,chr(245)=>611,chr(246)=>611,chr(247)=>571,chr(248)=>611,chr(249)=>635,chr(250)=>635,chr(251)=>635,chr(252)=>635,chr(253)=>536,chr(254)=>623,chr(255)=>536);
20
+ $enc = 'cp1252';
21
+ $file = 'opensans.z';
22
+ $originalsize = 221328;
23
+ ?>
vendor/fpdf/font/opensans.z ADDED
Binary file
vendor/fpdf/font/steelfish.php ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $type = 'TrueType';
3
+ $name = 'SteelfishRg-Regular';
4
+ $desc = array('Ascent'=>851,'Descent'=>-149,'CapHeight'=>823,'Flags'=>32,'FontBBox'=>'[-126 -149 634 1021]','ItalicAngle'=>0,'StemV'=>70,'MissingWidth'=>524);
5
+ $up = -100;
6
+ $ut = 50;
7
+ $cw = array(
8
+ chr(0)=>524,chr(1)=>524,chr(2)=>524,chr(3)=>524,chr(4)=>524,chr(5)=>524,chr(6)=>524,chr(7)=>524,chr(8)=>524,chr(9)=>524,chr(10)=>524,chr(11)=>524,chr(12)=>524,chr(13)=>524,chr(14)=>524,chr(15)=>524,chr(16)=>524,chr(17)=>524,chr(18)=>524,chr(19)=>524,chr(20)=>524,chr(21)=>524,
9
+ chr(22)=>524,chr(23)=>524,chr(24)=>524,chr(25)=>524,chr(26)=>524,chr(27)=>524,chr(28)=>524,chr(29)=>524,chr(30)=>524,chr(31)=>524,' '=>136,'!'=>160,'"'=>257,'#'=>395,'$'=>286,'%'=>480,'&'=>376,'\''=>132,'('=>256,')'=>256,'*'=>335,'+'=>462,
10
+ ','=>134,'-'=>182,'.'=>133,'/'=>241,'0'=>328,'1'=>176,'2'=>309,'3'=>310,'4'=>319,'5'=>316,'6'=>319,'7'=>288,'8'=>315,'9'=>319,':'=>133,';'=>134,'<'=>462,'='=>462,'>'=>462,'?'=>299,'@'=>515,'A'=>335,
11
+ 'B'=>325,'C'=>309,'D'=>326,'E'=>280,'F'=>270,'G'=>322,'H'=>332,'I'=>154,'J'=>217,'K'=>349,'L'=>270,'M'=>451,'N'=>353,'O'=>321,'P'=>322,'Q'=>321,'R'=>331,'S'=>310,'T'=>281,'U'=>326,'V'=>338,'W'=>526,
12
+ 'X'=>339,'Y'=>332,'Z'=>307,'['=>247,'\\'=>241,']'=>247,'^'=>314,'_'=>297,'`'=>275,'a'=>284,'b'=>303,'c'=>283,'d'=>303,'e'=>280,'f'=>191,'g'=>303,'h'=>302,'i'=>147,'j'=>163,'k'=>300,'l'=>143,'m'=>439,
13
+ 'n'=>302,'o'=>290,'p'=>303,'q'=>303,'r'=>207,'s'=>278,'t'=>191,'u'=>300,'v'=>277,'w'=>418,'x'=>284,'y'=>277,'z'=>256,'{'=>261,'|'=>193,'}'=>261,'~'=>463,chr(127)=>524,chr(128)=>342,chr(129)=>524,chr(130)=>138,chr(131)=>405,
14
+ chr(132)=>276,chr(133)=>665,chr(134)=>388,chr(135)=>388,chr(136)=>385,chr(137)=>612,chr(138)=>310,chr(139)=>195,chr(140)=>437,chr(141)=>524,chr(142)=>307,chr(143)=>524,chr(144)=>524,chr(145)=>134,chr(146)=>134,chr(147)=>268,chr(148)=>268,chr(149)=>209,chr(150)=>279,chr(151)=>438,chr(152)=>314,chr(153)=>484,
15
+ chr(154)=>278,chr(155)=>195,chr(156)=>444,chr(157)=>524,chr(158)=>256,chr(159)=>332,chr(160)=>136,chr(161)=>160,chr(162)=>281,chr(163)=>286,chr(164)=>482,chr(165)=>340,chr(166)=>193,chr(167)=>287,chr(168)=>293,chr(169)=>516,chr(170)=>217,chr(171)=>390,chr(172)=>419,chr(173)=>524,chr(174)=>516,chr(175)=>304,
16
+ chr(176)=>305,chr(177)=>462,chr(178)=>185,chr(179)=>186,chr(180)=>275,chr(181)=>524,chr(182)=>423,chr(183)=>133,chr(184)=>133,chr(185)=>125,chr(186)=>220,chr(187)=>390,chr(188)=>480,chr(189)=>480,chr(190)=>480,chr(191)=>299,chr(192)=>335,chr(193)=>335,chr(194)=>335,chr(195)=>335,chr(196)=>335,chr(197)=>335,
17
+ chr(198)=>462,chr(199)=>309,chr(200)=>280,chr(201)=>280,chr(202)=>280,chr(203)=>280,chr(204)=>154,chr(205)=>154,chr(206)=>154,chr(207)=>154,chr(208)=>324,chr(209)=>353,chr(210)=>321,chr(211)=>321,chr(212)=>321,chr(213)=>321,chr(214)=>321,chr(215)=>462,chr(216)=>321,chr(217)=>326,chr(218)=>326,chr(219)=>326,
18
+ chr(220)=>326,chr(221)=>332,chr(222)=>327,chr(223)=>328,chr(224)=>284,chr(225)=>284,chr(226)=>284,chr(227)=>284,chr(228)=>284,chr(229)=>284,chr(230)=>433,chr(231)=>283,chr(232)=>280,chr(233)=>280,chr(234)=>280,chr(235)=>280,chr(236)=>158,chr(237)=>158,chr(238)=>227,chr(239)=>178,chr(240)=>321,chr(241)=>302,
19
+ chr(242)=>290,chr(243)=>290,chr(244)=>290,chr(245)=>290,chr(246)=>290,chr(247)=>462,chr(248)=>290,chr(249)=>300,chr(250)=>300,chr(251)=>300,chr(252)=>300,chr(253)=>277,chr(254)=>303,chr(255)=>277);
20
+ $enc = 'cp1252';
21
+ $file = 'steelfish.z';
22
+ $originalsize = 74904;
23
+ ?>
vendor/fpdf/font/steelfish.z ADDED
Binary file
vendor/fpdf/font/symbol.php ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $type = 'Core';
3
+ $name = 'Symbol';
4
+ $up = -100;
5
+ $ut = 50;
6
+ $cw = array(
7
+ chr(0)=>250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250,
8
+ chr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>333,'"'=>713,'#'=>500,'$'=>549,'%'=>833,'&'=>778,'\''=>439,'('=>333,')'=>333,'*'=>500,'+'=>549,
9
+ ','=>250,'-'=>549,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>278,';'=>278,'<'=>549,'='=>549,'>'=>549,'?'=>444,'@'=>549,'A'=>722,
10
+ 'B'=>667,'C'=>722,'D'=>612,'E'=>611,'F'=>763,'G'=>603,'H'=>722,'I'=>333,'J'=>631,'K'=>722,'L'=>686,'M'=>889,'N'=>722,'O'=>722,'P'=>768,'Q'=>741,'R'=>556,'S'=>592,'T'=>611,'U'=>690,'V'=>439,'W'=>768,
11
+ 'X'=>645,'Y'=>795,'Z'=>611,'['=>333,'\\'=>863,']'=>333,'^'=>658,'_'=>500,'`'=>500,'a'=>631,'b'=>549,'c'=>549,'d'=>494,'e'=>439,'f'=>521,'g'=>411,'h'=>603,'i'=>329,'j'=>603,'k'=>549,'l'=>549,'m'=>576,
12
+ 'n'=>521,'o'=>549,'p'=>549,'q'=>521,'r'=>549,'s'=>603,'t'=>439,'u'=>576,'v'=>713,'w'=>686,'x'=>493,'y'=>686,'z'=>494,'{'=>480,'|'=>200,'}'=>480,'~'=>549,chr(127)=>0,chr(128)=>0,chr(129)=>0,chr(130)=>0,chr(131)=>0,
13
+ chr(132)=>0,chr(133)=>0,chr(134)=>0,chr(135)=>0,chr(136)=>0,chr(137)=>0,chr(138)=>0,chr(139)=>0,chr(140)=>0,chr(141)=>0,chr(142)=>0,chr(143)=>0,chr(144)=>0,chr(145)=>0,chr(146)=>0,chr(147)=>0,chr(148)=>0,chr(149)=>0,chr(150)=>0,chr(151)=>0,chr(152)=>0,chr(153)=>0,
14
+ chr(154)=>0,chr(155)=>0,chr(156)=>0,chr(157)=>0,chr(158)=>0,chr(159)=>0,chr(160)=>750,chr(161)=>620,chr(162)=>247,chr(163)=>549,chr(164)=>167,chr(165)=>713,chr(166)=>500,chr(167)=>753,chr(168)=>753,chr(169)=>753,chr(170)=>753,chr(171)=>1042,chr(172)=>987,chr(173)=>603,chr(174)=>987,chr(175)=>603,
15
+ chr(176)=>400,chr(177)=>549,chr(178)=>411,chr(179)=>549,chr(180)=>549,chr(181)=>713,chr(182)=>494,chr(183)=>460,chr(184)=>549,chr(185)=>549,chr(186)=>549,chr(187)=>549,chr(188)=>1000,chr(189)=>603,chr(190)=>1000,chr(191)=>658,chr(192)=>823,chr(193)=>686,chr(194)=>795,chr(195)=>987,chr(196)=>768,chr(197)=>768,
16
+ chr(198)=>823,chr(199)=>768,chr(200)=>768,chr(201)=>713,chr(202)=>713,chr(203)=>713,chr(204)=>713,chr(205)=>713,chr(206)=>713,chr(207)=>713,chr(208)=>768,chr(209)=>713,chr(210)=>790,chr(211)=>790,chr(212)=>890,chr(213)=>823,chr(214)=>549,chr(215)=>250,chr(216)=>713,chr(217)=>603,chr(218)=>603,chr(219)=>1042,
17
+ chr(220)=>987,chr(221)=>603,chr(222)=>987,chr(223)=>603,chr(224)=>494,chr(225)=>329,chr(226)=>790,chr(227)=>790,chr(228)=>786,chr(229)=>713,chr(230)=>384,chr(231)=>384,chr(232)=>384,chr(233)=>384,chr(234)=>384,chr(235)=>384,chr(236)=>494,chr(237)=>494,chr(238)=>494,chr(239)=>494,chr(240)=>0,chr(241)=>329,
18
+ chr(242)=>274,chr(243)=>686,chr(244)=>686,chr(245)=>686,chr(246)=>384,chr(247)=>384,chr(248)=>384,chr(249)=>384,chr(250)=>384,chr(251)=>384,chr(252)=>494,chr(253)=>494,chr(254)=>494,chr(255)=>0);
19
+ ?>
vendor/fpdf/font/times.php ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $type = 'Core';
3
+ $name = 'Times-Roman';
4
+ $up = -100;
5
+ $ut = 50;
6
+ $cw = array(
7
+ chr(0)=>250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250,
8
+ chr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>333,'"'=>408,'#'=>500,'$'=>500,'%'=>833,'&'=>778,'\''=>180,'('=>333,')'=>333,'*'=>500,'+'=>564,
9
+ ','=>250,'-'=>333,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>278,';'=>278,'<'=>564,'='=>564,'>'=>564,'?'=>444,'@'=>921,'A'=>722,
10
+ 'B'=>667,'C'=>667,'D'=>722,'E'=>611,'F'=>556,'G'=>722,'H'=>722,'I'=>333,'J'=>389,'K'=>722,'L'=>611,'M'=>889,'N'=>722,'O'=>722,'P'=>556,'Q'=>722,'R'=>667,'S'=>556,'T'=>611,'U'=>722,'V'=>722,'W'=>944,
11
+ 'X'=>722,'Y'=>722,'Z'=>611,'['=>333,'\\'=>278,']'=>333,'^'=>469,'_'=>500,'`'=>333,'a'=>444,'b'=>500,'c'=>444,'d'=>500,'e'=>444,'f'=>333,'g'=>500,'h'=>500,'i'=>278,'j'=>278,'k'=>500,'l'=>278,'m'=>778,
12
+ 'n'=>500,'o'=>500,'p'=>500,'q'=>500,'r'=>333,'s'=>389,'t'=>278,'u'=>500,'v'=>500,'w'=>722,'x'=>500,'y'=>500,'z'=>444,'{'=>480,'|'=>200,'}'=>480,'~'=>541,chr(127)=>350,chr(128)=>500,chr(129)=>350,chr(130)=>333,chr(131)=>500,
13
+ chr(132)=>444,chr(133)=>1000,chr(134)=>500,chr(135)=>500,chr(136)=>333,chr(137)=>1000,chr(138)=>556,chr(139)=>333,chr(140)=>889,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>333,chr(146)=>333,chr(147)=>444,chr(148)=>444,chr(149)=>350,chr(150)=>500,chr(151)=>1000,chr(152)=>333,chr(153)=>980,
14
+ chr(154)=>389,chr(155)=>333,chr(156)=>722,chr(157)=>350,chr(158)=>444,chr(159)=>722,chr(160)=>250,chr(161)=>333,chr(162)=>500,chr(163)=>500,chr(164)=>500,chr(165)=>500,chr(166)=>200,chr(167)=>500,chr(168)=>333,chr(169)=>760,chr(170)=>276,chr(171)=>500,chr(172)=>564,chr(173)=>333,chr(174)=>760,chr(175)=>333,
15
+ chr(176)=>400,chr(177)=>564,chr(178)=>300,chr(179)=>300,chr(180)=>333,chr(181)=>500,chr(182)=>453,chr(183)=>250,chr(184)=>333,chr(185)=>300,chr(186)=>310,chr(187)=>500,chr(188)=>750,chr(189)=>750,chr(190)=>750,chr(191)=>444,chr(192)=>722,chr(193)=>722,chr(194)=>722,chr(195)=>722,chr(196)=>722,chr(197)=>722,
16
+ chr(198)=>889,chr(199)=>667,chr(200)=>611,chr(201)=>611,chr(202)=>611,chr(203)=>611,chr(204)=>333,chr(205)=>333,chr(206)=>333,chr(207)=>333,chr(208)=>722,chr(209)=>722,chr(210)=>722,chr(211)=>722,chr(212)=>722,chr(213)=>722,chr(214)=>722,chr(215)=>564,chr(216)=>722,chr(217)=>722,chr(218)=>722,chr(219)=>722,
17
+ chr(220)=>722,chr(221)=>722,chr(222)=>556,chr(223)=>500,chr(224)=>444,chr(225)=>444,chr(226)=>444,chr(227)=>444,chr(228)=>444,chr(229)=>444,chr(230)=>667,chr(231)=>444,chr(232)=>444,chr(233)=>444,chr(234)=>444,chr(235)=>444,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>500,chr(241)=>500,
18
+ chr(242)=>500,chr(243)=>500,chr(244)=>500,chr(245)=>500,chr(246)=>500,chr(247)=>564,chr(248)=>500,chr(249)=>500,chr(250)=>500,chr(251)=>500,chr(252)=>500,chr(253)=>500,chr(254)=>500,chr(255)=>500);
19
+ ?>
vendor/fpdf/font/timesb.php ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $type = 'Core';
3
+ $name = 'Times-Bold';
4
+ $up = -100;
5
+ $ut = 50;
6
+ $cw = array(
7
+ chr(0)=>250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250,
8
+ chr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>333,'"'=>555,'#'=>500,'$'=>500,'%'=>1000,'&'=>833,'\''=>278,'('=>333,')'=>333,'*'=>500,'+'=>570,
9
+ ','=>250,'-'=>333,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>333,';'=>333,'<'=>570,'='=>570,'>'=>570,'?'=>500,'@'=>930,'A'=>722,
10
+ 'B'=>667,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>778,'I'=>389,'J'=>500,'K'=>778,'L'=>667,'M'=>944,'N'=>722,'O'=>778,'P'=>611,'Q'=>778,'R'=>722,'S'=>556,'T'=>667,'U'=>722,'V'=>722,'W'=>1000,
11
+ 'X'=>722,'Y'=>722,'Z'=>667,'['=>333,'\\'=>278,']'=>333,'^'=>581,'_'=>500,'`'=>333,'a'=>500,'b'=>556,'c'=>444,'d'=>556,'e'=>444,'f'=>333,'g'=>500,'h'=>556,'i'=>278,'j'=>333,'k'=>556,'l'=>278,'m'=>833,
12
+ 'n'=>556,'o'=>500,'p'=>556,'q'=>556,'r'=>444,'s'=>389,'t'=>333,'u'=>556,'v'=>500,'w'=>722,'x'=>500,'y'=>500,'z'=>444,'{'=>394,'|'=>220,'}'=>394,'~'=>520,chr(127)=>350,chr(128)=>500,chr(129)=>350,chr(130)=>333,chr(131)=>500,
13
+ chr(132)=>500,chr(133)=>1000,chr(134)=>500,chr(135)=>500,chr(136)=>333,chr(137)=>1000,chr(138)=>556,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>667,chr(143)=>350,chr(144)=>350,chr(145)=>333,chr(146)=>333,chr(147)=>500,chr(148)=>500,chr(149)=>350,chr(150)=>500,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,
14
+ chr(154)=>389,chr(155)=>333,chr(156)=>722,chr(157)=>350,chr(158)=>444,chr(159)=>722,chr(160)=>250,chr(161)=>333,chr(162)=>500,chr(163)=>500,chr(164)=>500,chr(165)=>500,chr(166)=>220,chr(167)=>500,chr(168)=>333,chr(169)=>747,chr(170)=>300,chr(171)=>500,chr(172)=>570,chr(173)=>333,chr(174)=>747,chr(175)=>333,
15
+ chr(176)=>400,chr(177)=>570,chr(178)=>300,chr(179)=>300,chr(180)=>333,chr(181)=>556,chr(182)=>540,chr(183)=>250,chr(184)=>333,chr(185)=>300,chr(186)=>330,chr(187)=>500,chr(188)=>750,chr(189)=>750,chr(190)=>750,chr(191)=>500,chr(192)=>722,chr(193)=>722,chr(194)=>722,chr(195)=>722,chr(196)=>722,chr(197)=>722,
16
+ chr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>389,chr(205)=>389,chr(206)=>389,chr(207)=>389,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>570,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722,
17
+ chr(220)=>722,chr(221)=>722,chr(222)=>611,chr(223)=>556,chr(224)=>500,chr(225)=>500,chr(226)=>500,chr(227)=>500,chr(228)=>500,chr(229)=>500,chr(230)=>722,chr(231)=>444,chr(232)=>444,chr(233)=>444,chr(234)=>444,chr(235)=>444,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>500,chr(241)=>556,
18
+ chr(242)=>500,chr(243)=>500,chr(244)=>500,chr(245)=>500,chr(246)=>500,chr(247)=>570,chr(248)=>500,chr(249)=>556,chr(250)=>556,chr(251)=>556,chr(252)=>556,chr(253)=>500,chr(254)=>556,chr(255)=>500);
19
+ ?>
vendor/fpdf/font/timesbi.php ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $type = 'Core';
3
+ $name = 'Times-BoldItalic';
4
+ $up = -100;
5
+ $ut = 50;
6
+ $cw = array(
7
+ chr(0)=>250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250,
8
+ chr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>389,'"'=>555,'#'=>500,'$'=>500,'%'=>833,'&'=>778,'\''=>278,'('=>333,')'=>333,'*'=>500,'+'=>570,
9
+ ','=>250,'-'=>333,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>333,';'=>333,'<'=>570,'='=>570,'>'=>570,'?'=>500,'@'=>832,'A'=>667,
10
+ 'B'=>667,'C'=>667,'D'=>722,'E'=>667,'F'=>667,'G'=>722,'H'=>778,'I'=>389,'J'=>500,'K'=>667,'L'=>611,'M'=>889,'N'=>722,'O'=>722,'P'=>611,'Q'=>722,'R'=>667,'S'=>556,'T'=>611,'U'=>722,'V'=>667,'W'=>889,
11
+ 'X'=>667,'Y'=>611,'Z'=>611,'['=>333,'\\'=>278,']'=>333,'^'=>570,'_'=>500,'`'=>333,'a'=>500,'b'=>500,'c'=>444,'d'=>500,'e'=>444,'f'=>333,'g'=>500,'h'=>556,'i'=>278,'j'=>278,'k'=>500,'l'=>278,'m'=>778,
12
+ 'n'=>556,'o'=>500,'p'=>500,'q'=>500,'r'=>389,'s'=>389,'t'=>278,'u'=>556,'v'=>444,'w'=>667,'x'=>500,'y'=>444,'z'=>389,'{'=>348,'|'=>220,'}'=>348,'~'=>570,chr(127)=>350,chr(128)=>500,chr(129)=>350,chr(130)=>333,chr(131)=>500,
13
+ chr(132)=>500,chr(133)=>1000,chr(134)=>500,chr(135)=>500,chr(136)=>333,chr(137)=>1000,chr(138)=>556,chr(139)=>333,chr(140)=>944,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>333,chr(146)=>333,chr(147)=>500,chr(148)=>500,chr(149)=>350,chr(150)=>500,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,
14
+ chr(154)=>389,chr(155)=>333,chr(156)=>722,chr(157)=>350,chr(158)=>389,chr(159)=>611,chr(160)=>250,chr(161)=>389,chr(162)=>500,chr(163)=>500,chr(164)=>500,chr(165)=>500,chr(166)=>220,chr(167)=>500,chr(168)=>333,chr(169)=>747,chr(170)=>266,chr(171)=>500,chr(172)=>606,chr(173)=>333,chr(174)=>747,chr(175)=>333,
15
+ chr(176)=>400,chr(177)=>570,chr(178)=>300,chr(179)=>300,chr(180)=>333,chr(181)=>576,chr(182)=>500,chr(183)=>250,chr(184)=>333,chr(185)=>300,chr(186)=>300,chr(187)=>500,chr(188)=>750,chr(189)=>750,chr(190)=>750,chr(191)=>500,chr(192)=>667,chr(193)=>667,chr(194)=>667,chr(195)=>667,chr(196)=>667,chr(197)=>667,
16
+ chr(198)=>944,chr(199)=>667,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>389,chr(205)=>389,chr(206)=>389,chr(207)=>389,chr(208)=>722,chr(209)=>722,chr(210)=>722,chr(211)=>722,chr(212)=>722,chr(213)=>722,chr(214)=>722,chr(215)=>570,chr(216)=>722,chr(217)=>722,chr(218)=>722,chr(219)=>722,
17
+ chr(220)=>722,chr(221)=>611,chr(222)=>611,chr(223)=>500,chr(224)=>500,chr(225)=>500,chr(226)=>500,chr(227)=>500,chr(228)=>500,chr(229)=>500,chr(230)=>722,chr(231)=>444,chr(232)=>444,chr(233)=>444,chr(234)=>444,chr(235)=>444,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>500,chr(241)=>556,
18
+ chr(242)=>500,chr(243)=>500,chr(244)=>500,chr(245)=>500,chr(246)=>500,chr(247)=>570,chr(248)=>500,chr(249)=>556,chr(250)=>556,chr(251)=>556,chr(252)=>556,chr(253)=>444,chr(254)=>500,chr(255)=>444);
19
+ ?>
vendor/fpdf/font/timesi.php ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $type = 'Core';
3
+ $name = 'Times-Italic';
4
+ $up = -100;
5
+ $ut = 50;
6
+ $cw = array(
7
+ chr(0)=>250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250,
8
+ chr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>333,'"'=>420,'#'=>500,'$'=>500,'%'=>833,'&'=>778,'\''=>214,'('=>333,')'=>333,'*'=>500,'+'=>675,
9
+ ','=>250,'-'=>333,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>333,';'=>333,'<'=>675,'='=>675,'>'=>675,'?'=>500,'@'=>920,'A'=>611,
10
+ 'B'=>611,'C'=>667,'D'=>722,'E'=>611,'F'=>611,'G'=>722,'H'=>722,'I'=>333,'J'=>444,'K'=>667,'L'=>556,'M'=>833,'N'=>667,'O'=>722,'P'=>611,'Q'=>722,'R'=>611,'S'=>500,'T'=>556,'U'=>722,'V'=>611,'W'=>833,
11
+ 'X'=>611,'Y'=>556,'Z'=>556,'['=>389,'\\'=>278,']'=>389,'^'=>422,'_'=>500,'`'=>333,'a'=>500,'b'=>500,'c'=>444,'d'=>500,'e'=>444,'f'=>278,'g'=>500,'h'=>500,'i'=>278,'j'=>278,'k'=>444,'l'=>278,'m'=>722,
12
+ 'n'=>500,'o'=>500,'p'=>500,'q'=>500,'r'=>389,'s'=>389,'t'=>278,'u'=>500,'v'=>444,'w'=>667,'x'=>444,'y'=>444,'z'=>389,'{'=>400,'|'=>275,'}'=>400,'~'=>541,chr(127)=>350,chr(128)=>500,chr(129)=>350,chr(130)=>333,chr(131)=>500,
13
+ chr(132)=>556,chr(133)=>889,chr(134)=>500,chr(135)=>500,chr(136)=>333,chr(137)=>1000,chr(138)=>500,chr(139)=>333,chr(140)=>944,chr(141)=>350,chr(142)=>556,chr(143)=>350,chr(144)=>350,chr(145)=>333,chr(146)=>333,chr(147)=>556,chr(148)=>556,chr(149)=>350,chr(150)=>500,chr(151)=>889,chr(152)=>333,chr(153)=>980,
14
+ chr(154)=>389,chr(155)=>333,chr(156)=>667,chr(157)=>350,chr(158)=>389,chr(159)=>556,chr(160)=>250,chr(161)=>389,chr(162)=>500,chr(163)=>500,chr(164)=>500,chr(165)=>500,chr(166)=>275,chr(167)=>500,chr(168)=>333,chr(169)=>760,chr(170)=>276,chr(171)=>500,chr(172)=>675,chr(173)=>333,chr(174)=>760,chr(175)=>333,
15
+ chr(176)=>400,chr(177)=>675,chr(178)=>300,chr(179)=>300,chr(180)=>333,chr(181)=>500,chr(182)=>523,chr(183)=>250,chr(184)=>333,chr(185)=>300,chr(186)=>310,chr(187)=>500,chr(188)=>750,chr(189)=>750,chr(190)=>750,chr(191)=>500,chr(192)=>611,chr(193)=>611,chr(194)=>611,chr(195)=>611,chr(196)=>611,chr(197)=>611,
16
+ chr(198)=>889,chr(199)=>667,chr(200)=>611,chr(201)=>611,chr(202)=>611,chr(203)=>611,chr(204)=>333,chr(205)=>333,chr(206)=>333,chr(207)=>333,chr(208)=>722,chr(209)=>667,chr(210)=>722,chr(211)=>722,chr(212)=>722,chr(213)=>722,chr(214)=>722,chr(215)=>675,chr(216)=>722,chr(217)=>722,chr(218)=>722,chr(219)=>722,
17
+ chr(220)=>722,chr(221)=>556,chr(222)=>611,chr(223)=>500,chr(224)=>500,chr(225)=>500,chr(226)=>500,chr(227)=>500,chr(228)=>500,chr(229)=>500,chr(230)=>667,chr(231)=>444,chr(232)=>444,chr(233)=>444,chr(234)=>444,chr(235)=>444,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>500,chr(241)=>500,
18
+ chr(242)=>500,chr(243)=>500,chr(244)=>500,chr(245)=>500,chr(246)=>500,chr(247)=>675,chr(248)=>500,chr(249)=>500,chr(250)=>500,chr(251)=>500,chr(252)=>500,chr(253)=>444,chr(254)=>500,chr(255)=>444);
19
+ ?>
vendor/fpdf/font/zapfdingbats.php ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $type = 'Core';
3
+ $name = 'ZapfDingbats';
4
+ $up = -100;
5
+ $ut = 50;
6
+ $cw = array(
7
+ chr(0)=>0,chr(1)=>0,chr(2)=>0,chr(3)=>0,chr(4)=>0,chr(5)=>0,chr(6)=>0,chr(7)=>0,chr(8)=>0,chr(9)=>0,chr(10)=>0,chr(11)=>0,chr(12)=>0,chr(13)=>0,chr(14)=>0,chr(15)=>0,chr(16)=>0,chr(17)=>0,chr(18)=>0,chr(19)=>0,chr(20)=>0,chr(21)=>0,
8
+ chr(22)=>0,chr(23)=>0,chr(24)=>0,chr(25)=>0,chr(26)=>0,chr(27)=>0,chr(28)=>0,chr(29)=>0,chr(30)=>0,chr(31)=>0,' '=>278,'!'=>974,'"'=>961,'#'=>974,'$'=>980,'%'=>719,'&'=>789,'\''=>790,'('=>791,')'=>690,'*'=>960,'+'=>939,
9
+ ','=>549,'-'=>855,'.'=>911,'/'=>933,'0'=>911,'1'=>945,'2'=>974,'3'=>755,'4'=>846,'5'=>762,'6'=>761,'7'=>571,'8'=>677,'9'=>763,':'=>760,';'=>759,'<'=>754,'='=>494,'>'=>552,'?'=>537,'@'=>577,'A'=>692,
10
+ 'B'=>786,'C'=>788,'D'=>788,'E'=>790,'F'=>793,'G'=>794,'H'=>816,'I'=>823,'J'=>789,'K'=>841,'L'=>823,'M'=>833,'N'=>816,'O'=>831,'P'=>923,'Q'=>744,'R'=>723,'S'=>749,'T'=>790,'U'=>792,'V'=>695,'W'=>776,
11
+ 'X'=>768,'Y'=>792,'Z'=>759,'['=>707,'\\'=>708,']'=>682,'^'=>701,'_'=>826,'`'=>815,'a'=>789,'b'=>789,'c'=>707,'d'=>687,'e'=>696,'f'=>689,'g'=>786,'h'=>787,'i'=>713,'j'=>791,'k'=>785,'l'=>791,'m'=>873,
12
+ 'n'=>761,'o'=>762,'p'=>762,'q'=>759,'r'=>759,'s'=>892,'t'=>892,'u'=>788,'v'=>784,'w'=>438,'x'=>138,'y'=>277,'z'=>415,'{'=>392,'|'=>392,'}'=>668,'~'=>668,chr(127)=>0,chr(128)=>390,chr(129)=>390,chr(130)=>317,chr(131)=>317,
13
+ chr(132)=>276,chr(133)=>276,chr(134)=>509,chr(135)=>509,chr(136)=>410,chr(137)=>410,chr(138)=>234,chr(139)=>234,chr(140)=>334,chr(141)=>334,chr(142)=>0,chr(143)=>0,chr(144)=>0,chr(145)=>0,chr(146)=>0,chr(147)=>0,chr(148)=>0,chr(149)=>0,chr(150)=>0,chr(151)=>0,chr(152)=>0,chr(153)=>0,
14
+ chr(154)=>0,chr(155)=>0,chr(156)=>0,chr(157)=>0,chr(158)=>0,chr(159)=>0,chr(160)=>0,chr(161)=>732,chr(162)=>544,chr(163)=>544,chr(164)=>910,chr(165)=>667,chr(166)=>760,chr(167)=>760,chr(168)=>776,chr(169)=>595,chr(170)=>694,chr(171)=>626,chr(172)=>788,chr(173)=>788,chr(174)=>788,chr(175)=>788,
15
+ chr(176)=>788,chr(177)=>788,chr(178)=>788,chr(179)=>788,chr(180)=>788,chr(181)=>788,chr(182)=>788,chr(183)=>788,chr(184)=>788,chr(185)=>788,chr(186)=>788,chr(187)=>788,chr(188)=>788,chr(189)=>788,chr(190)=>788,chr(191)=>788,chr(192)=>788,chr(193)=>788,chr(194)=>788,chr(195)=>788,chr(196)=>788,chr(197)=>788,
16
+ chr(198)=>788,chr(199)=>788,chr(200)=>788,chr(201)=>788,chr(202)=>788,chr(203)=>788,chr(204)=>788,chr(205)=>788,chr(206)=>788,chr(207)=>788,chr(208)=>788,chr(209)=>788,chr(210)=>788,chr(211)=>788,chr(212)=>894,chr(213)=>838,chr(214)=>1016,chr(215)=>458,chr(216)=>748,chr(217)=>924,chr(218)=>748,chr(219)=>918,
17
+ chr(220)=>927,chr(221)=>928,chr(222)=>928,chr(223)=>834,chr(224)=>873,chr(225)=>828,chr(226)=>924,chr(227)=>924,chr(228)=>917,chr(229)=>930,chr(230)=>931,chr(231)=>463,chr(232)=>883,chr(233)=>836,chr(234)=>836,chr(235)=>867,chr(236)=>867,chr(237)=>696,chr(238)=>696,chr(239)=>874,chr(240)=>0,chr(241)=>874,
18
+ chr(242)=>760,chr(243)=>946,chr(244)=>771,chr(245)=>865,chr(246)=>771,chr(247)=>888,chr(248)=>967,chr(249)=>888,chr(250)=>831,chr(251)=>873,chr(252)=>927,chr(253)=>970,chr(254)=>918,chr(255)=>0);
19
+ ?>
vendor/fpdf/fpdf.php ADDED
@@ -0,0 +1,1802 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*******************************************************************************
3
+ * FPDF *
4
+ * *
5
+ * Version: 1.7 *
6
+ * Date: 2011-06-18 *
7
+ * Author: Olivier PLATHEY *
8
+ *******************************************************************************/
9
+
10
+ define('FPDF_VERSION','1.7');
11
+
12
+ class FPDF
13
+ {
14
+ var $page; // current page number
15
+ var $n; // current object number
16
+ var $offsets; // array of object offsets
17
+ var $buffer; // buffer holding in-memory PDF
18
+ var $pages; // array containing pages
19
+ var $state; // current document state
20
+ var $compress; // compression flag
21
+ var $k; // scale factor (number of points in user unit)
22
+ var $DefOrientation; // default orientation
23
+ var $CurOrientation; // current orientation
24
+ var $StdPageSizes; // standard page sizes
25
+ var $DefPageSize; // default page size
26
+ var $CurPageSize; // current page size
27
+ var $PageSizes; // used for pages with non default sizes or orientations
28
+ var $wPt, $hPt; // dimensions of current page in points
29
+ var $w, $h; // dimensions of current page in user unit
30
+ var $lMargin; // left margin
31
+ var $tMargin; // top margin
32
+ var $rMargin; // right margin
33
+ var $bMargin; // page break margin
34
+ var $cMargin; // cell margin
35
+ var $x, $y; // current position in user unit
36
+ var $lasth; // height of last printed cell
37
+ var $LineWidth; // line width in user unit
38
+ var $fontpath; // path containing fonts
39
+ var $CoreFonts; // array of core font names
40
+ var $fonts; // array of used fonts
41
+ var $FontFiles; // array of font files
42
+ var $diffs; // array of encoding differences
43
+ var $FontFamily; // current font family
44
+ var $FontStyle; // current font style
45
+ var $underline; // underlining flag
46
+ var $CurrentFont; // current font info
47
+ var $FontSizePt; // current font size in points
48
+ var $FontSize; // current font size in user unit
49
+ var $DrawColor; // commands for drawing color
50
+ var $FillColor; // commands for filling color
51
+ var $TextColor; // commands for text color
52
+ var $ColorFlag; // indicates whether fill and text colors are different
53
+ var $ws; // word spacing
54
+ var $images; // array of used images
55
+ var $PageLinks; // array of links in pages
56
+ var $links; // array of internal links
57
+ var $AutoPageBreak; // automatic page breaking
58
+ var $PageBreakTrigger; // threshold used to trigger page breaks
59
+ var $InHeader; // flag set when processing header
60
+ var $InFooter; // flag set when processing footer
61
+ var $ZoomMode; // zoom display mode
62
+ var $LayoutMode; // layout display mode
63
+ var $title; // title
64
+ var $subject; // subject
65
+ var $author; // author
66
+ var $keywords; // keywords
67
+ var $creator; // creator
68
+ var $AliasNbPages; // alias for total number of pages
69
+ var $PDFVersion; // PDF version number
70
+
71
+ /*******************************************************************************
72
+ * *
73
+ * Public methods *
74
+ * *
75
+ *******************************************************************************/
76
+ function FPDF($orientation='P', $unit='mm', $size='A4')
77
+ {
78
+ // Some checks
79
+ $this->_dochecks();
80
+ // Initialization of properties
81
+ $this->page = 0;
82
+ $this->n = 2;
83
+ $this->buffer = '';
84
+ $this->pages = array();
85
+ $this->PageSizes = array();
86
+ $this->state = 0;
87
+ $this->fonts = array();
88
+ $this->FontFiles = array();
89
+ $this->diffs = array();
90
+ $this->images = array();
91
+ $this->links = array();
92
+ $this->InHeader = false;
93
+ $this->InFooter = false;
94
+ $this->lasth = 0;
95
+ $this->FontFamily = '';
96
+ $this->FontStyle = '';
97
+ $this->FontSizePt = 12;
98
+ $this->underline = false;
99
+ $this->DrawColor = '0 G';
100
+ $this->FillColor = '0 g';
101
+ $this->TextColor = '0 g';
102
+ $this->ColorFlag = false;
103
+ $this->ws = 0;
104
+ // Font path
105
+ if(defined('FPDF_FONTPATH'))
106
+ {
107
+ $this->fontpath = FPDF_FONTPATH;
108
+ if(substr($this->fontpath,-1)!='/' && substr($this->fontpath,-1)!='\\')
109
+ $this->fontpath .= '/';
110
+ }
111
+ elseif(is_dir(dirname(__FILE__).'/font'))
112
+ $this->fontpath = dirname(__FILE__).'/font/';
113
+ else
114
+ $this->fontpath = '';
115
+ // Core fonts
116
+ $this->CoreFonts = array('courier', 'helvetica', 'times', 'symbol', 'zapfdingbats');
117
+ // Scale factor
118
+ if($unit=='pt')
119
+ $this->k = 1;
120
+ elseif($unit=='mm')
121
+ $this->k = 72/25.4;
122
+ elseif($unit=='cm')
123
+ $this->k = 72/2.54;
124
+ elseif($unit=='in')
125
+ $this->k = 72;
126
+ else
127
+ $this->Error('Incorrect unit: '.$unit);
128
+ // Page sizes
129
+ $this->StdPageSizes = array('a3'=>array(841.89,1190.55), 'a4'=>array(595.28,841.89), 'a5'=>array(420.94,595.28),
130
+ 'letter'=>array(612,792), 'legal'=>array(612,1008));
131
+ $size = $this->_getpagesize($size);
132
+ $this->DefPageSize = $size;
133
+ $this->CurPageSize = $size;
134
+ // Page orientation
135
+ $orientation = strtolower($orientation);
136
+ if($orientation=='p' || $orientation=='portrait')
137
+ {
138
+ $this->DefOrientation = 'P';
139
+ $this->w = $size[0];
140
+ $this->h = $size[1];
141
+ }
142
+ elseif($orientation=='l' || $orientation=='landscape')
143
+ {
144
+ $this->DefOrientation = 'L';
145
+ $this->w = $size[1];
146
+ $this->h = $size[0];
147
+ }
148
+ else
149
+ $this->Error('Incorrect orientation: '.$orientation);
150
+ $this->CurOrientation = $this->DefOrientation;
151
+ $this->wPt = $this->w*$this->k;
152
+ $this->hPt = $this->h*$this->k;
153
+ // Page margins (1 cm)
154
+ $margin = 28.35/$this->k;
155
+ $this->SetMargins($margin,$margin);
156
+ // Interior cell margin (1 mm)
157
+ $this->cMargin = $margin/10;
158
+ // Line width (0.2 mm)
159
+ $this->LineWidth = .567/$this->k;
160
+ // Automatic page break
161
+ $this->SetAutoPageBreak(true,2*$margin);
162
+ // Default display mode
163
+ $this->SetDisplayMode('default');
164
+ // Enable compression
165
+ $this->SetCompression(true);
166
+ // Set default PDF version number
167
+ $this->PDFVersion = '1.3';
168
+ }
169
+
170
+ function SetMargins($left, $top, $right=null)
171
+ {
172
+ // Set left, top and right margins
173
+ $this->lMargin = $left;
174
+ $this->tMargin = $top;
175
+ if($right===null)
176
+ $right = $left;
177
+ $this->rMargin = $right;
178
+ }
179
+
180
+ function SetLeftMargin($margin)
181
+ {
182
+ // Set left margin
183
+ $this->lMargin = $margin;
184
+ if($this->page>0 && $this->x<$margin)
185
+ $this->x = $margin;
186
+ }
187
+
188
+ function SetTopMargin($margin)
189
+ {
190
+ // Set top margin
191
+ $this->tMargin = $margin;
192
+ }
193
+
194
+ function SetRightMargin($margin)
195
+ {
196
+ // Set right margin
197
+ $this->rMargin = $margin;
198
+ }
199
+
200
+ function SetAutoPageBreak($auto, $margin=0)
201
+ {
202
+ // Set auto page break mode and triggering margin
203
+ $this->AutoPageBreak = $auto;
204
+ $this->bMargin = $margin;
205
+ $this->PageBreakTrigger = $this->h-$margin;
206
+ }
207
+
208
+ function SetDisplayMode($zoom, $layout='default')
209
+ {
210
+ // Set display mode in viewer
211
+ if($zoom=='fullpage' || $zoom=='fullwidth' || $zoom=='real' || $zoom=='default' || !is_string($zoom))
212
+ $this->ZoomMode = $zoom;
213
+ else
214
+ $this->Error('Incorrect zoom display mode: '.$zoom);
215
+ if($layout=='single' || $layout=='continuous' || $layout=='two' || $layout=='default')
216
+ $this->LayoutMode = $layout;
217
+ else
218
+ $this->Error('Incorrect layout display mode: '.$layout);
219
+ }
220
+
221
+ function SetCompression($compress)
222
+ {
223
+ // Set page compression
224
+ if(function_exists('gzcompress'))
225
+ $this->compress = $compress;
226
+ else
227
+ $this->compress = false;
228
+ }
229
+
230
+ function SetTitle($title, $isUTF8=false)
231
+ {
232
+ // Title of document
233
+ if($isUTF8)
234
+ $title = $this->_UTF8toUTF16($title);
235
+ $this->title = $title;
236
+ }
237
+
238
+ function SetSubject($subject, $isUTF8=false)
239
+ {
240
+ // Subject of document
241
+ if($isUTF8)
242
+ $subject = $this->_UTF8toUTF16($subject);
243
+ $this->subject = $subject;
244
+ }
245
+
246
+ function SetAuthor($author, $isUTF8=false)
247
+ {
248
+ // Author of document
249
+ if($isUTF8)
250
+ $author = $this->_UTF8toUTF16($author);
251
+ $this->author = $author;
252
+ }
253
+
254
+ function SetKeywords($keywords, $isUTF8=false)
255
+ {
256
+ // Keywords of document
257
+ if($isUTF8)
258
+ $keywords = $this->_UTF8toUTF16($keywords);
259
+ $this->keywords = $keywords;
260
+ }
261
+
262
+ function SetCreator($creator, $isUTF8=false)
263
+ {
264
+ // Creator of document
265
+ if($isUTF8)
266
+ $creator = $this->_UTF8toUTF16($creator);
267
+ $this->creator = $creator;
268
+ }
269
+
270
+ function AliasNbPages($alias='{nb}')
271
+ {
272
+ // Define an alias for total number of pages
273
+ $this->AliasNbPages = $alias;
274
+ }
275
+
276
+ function Error($msg)
277
+ {
278
+ // Fatal error
279
+ die('<b>FPDF error:</b> '.$msg);
280
+ }
281
+
282
+ function Open()
283
+ {
284
+ // Begin document
285
+ $this->state = 1;
286
+ }
287
+
288
+ function Close()
289
+ {
290
+ // Terminate document
291
+ if($this->state==3)
292
+ return;
293
+ if($this->page==0)
294
+ $this->AddPage();
295
+ // Page footer
296
+ $this->InFooter = true;
297
+ $this->Footer();
298
+ $this->InFooter = false;
299
+ // Close page
300
+ $this->_endpage();
301
+ // Close document
302
+ $this->_enddoc();
303
+ }
304
+
305
+ function AddPage($orientation='', $size='')
306
+ {
307
+ // Start a new page
308
+ if($this->state==0)
309
+ $this->Open();
310
+ $family = $this->FontFamily;
311
+ $style = $this->FontStyle.($this->underline ? 'U' : '');
312
+ $fontsize = $this->FontSizePt;
313
+ $lw = $this->LineWidth;
314
+ $dc = $this->DrawColor;
315
+ $fc = $this->FillColor;
316
+ $tc = $this->TextColor;
317
+ $cf = $this->ColorFlag;
318
+ if($this->page>0)
319
+ {
320
+ // Page footer
321
+ $this->InFooter = true;
322
+ $this->Footer();
323
+ $this->InFooter = false;
324
+ // Close page
325
+ $this->_endpage();
326
+ }
327
+ // Start new page
328
+ $this->_beginpage($orientation,$size);
329
+ // Set line cap style to square
330
+ $this->_out('2 J');
331
+ // Set line width
332
+ $this->LineWidth = $lw;
333
+ $this->_out(sprintf('%.2F w',$lw*$this->k));
334
+ // Set font
335
+ if($family)
336
+ $this->SetFont($family,$style,$fontsize);
337
+ // Set colors
338
+ $this->DrawColor = $dc;
339
+ if($dc!='0 G')
340
+ $this->_out($dc);
341
+ $this->FillColor = $fc;
342
+ if($fc!='0 g')
343
+ $this->_out($fc);
344
+ $this->TextColor = $tc;
345
+ $this->ColorFlag = $cf;
346
+ // Page header
347
+ $this->InHeader = true;
348
+ $this->Header();
349
+ $this->InHeader = false;
350
+ // Restore line width
351
+ if($this->LineWidth!=$lw)
352
+ {
353
+ $this->LineWidth = $lw;
354
+ $this->_out(sprintf('%.2F w',$lw*$this->k));
355
+ }
356
+ // Restore font
357
+ if($family)
358
+ $this->SetFont($family,$style,$fontsize);
359
+ // Restore colors
360
+ if($this->DrawColor!=$dc)
361
+ {
362
+ $this->DrawColor = $dc;
363
+ $this->_out($dc);
364
+ }
365
+ if($this->FillColor!=$fc)
366
+ {
367
+ $this->FillColor = $fc;
368
+ $this->_out($fc);
369
+ }
370
+ $this->TextColor = $tc;
371
+ $this->ColorFlag = $cf;
372
+ }
373
+
374
+ function Header()
375
+ {
376
+ // To be implemented in your own inherited class
377
+ }
378
+
379
+ function Footer()
380
+ {
381
+ // To be implemented in your own inherited class
382
+ }
383
+
384
+ function PageNo()
385
+ {
386
+ // Get current page number
387
+ return $this->page;
388
+ }
389
+
390
+ function SetDrawColor($r, $g=null, $b=null)
391
+ {
392
+ // Set color for all stroking operations
393
+ if(($r==0 && $g==0 && $b==0) || $g===null)
394
+ $this->DrawColor = sprintf('%.3F G',$r/255);
395
+ else
396
+ $this->DrawColor = sprintf('%.3F %.3F %.3F RG',$r/255,$g/255,$b/255);
397
+ if($this->page>0)
398
+ $this->_out($this->DrawColor);
399
+ }
400
+
401
+ function SetFillColor($r, $g=null, $b=null)
402
+ {
403
+ // Set color for all filling operations
404
+ if(($r==0 && $g==0 && $b==0) || $g===null)
405
+ $this->FillColor = sprintf('%.3F g',$r/255);
406
+ else
407
+ $this->FillColor = sprintf('%.3F %.3F %.3F rg',$r/255,$g/255,$b/255);
408
+ $this->ColorFlag = ($this->FillColor!=$this->TextColor);
409
+ if($this->page>0)
410
+ $this->_out($this->FillColor);
411
+ }
412
+
413
+ function SetTextColor($r, $g=null, $b=null)
414
+ {
415
+ // Set color for text
416
+ if(($r==0 && $g==0 && $b==0) || $g===null)
417
+ $this->TextColor = sprintf('%.3F g',$r/255);
418
+ else
419
+ $this->TextColor = sprintf('%.3F %.3F %.3F rg',$r/255,$g/255,$b/255);
420
+ $this->ColorFlag = ($this->FillColor!=$this->TextColor);
421
+ }
422
+
423
+ function GetStringWidth($s)
424
+ {
425
+ // Get width of a string in the current font
426
+ $s = (string)$s;
427
+ $cw = &$this->CurrentFont['cw'];
428
+ $w = 0;
429
+ $l = strlen($s);
430
+ for($i=0;$i<$l;$i++)
431
+ $w += $cw[$s[$i]];
432
+ return $w*$this->FontSize/1000;
433
+ }
434
+
435
+ function SetLineWidth($width)
436
+ {
437
+ // Set line width
438
+ $this->LineWidth = $width;
439
+ if($this->page>0)
440
+ $this->_out(sprintf('%.2F w',$width*$this->k));
441
+ }
442
+
443
+ function Line($x1, $y1, $x2, $y2)
444
+ {
445
+ // Draw a line
446
+ $this->_out(sprintf('%.2F %.2F m %.2F %.2F l S',$x1*$this->k,($this->h-$y1)*$this->k,$x2*$this->k,($this->h-$y2)*$this->k));
447
+ }
448
+
449
+ function Rect($x, $y, $w, $h, $style='')
450
+ {
451
+ // Draw a rectangle
452
+ if($style=='F')
453
+ $op = 'f';
454
+ elseif($style=='FD' || $style=='DF')
455
+ $op = 'B';
456
+ else
457
+ $op = 'S';
458
+ $this->_out(sprintf('%.2F %.2F %.2F %.2F re %s',$x*$this->k,($this->h-$y)*$this->k,$w*$this->k,-$h*$this->k,$op));
459
+ }
460
+
461
+ function AddFont($family, $style='', $file='')
462
+ {
463
+ // Add a TrueType, OpenType or Type1 font
464
+ $family = strtolower($family);
465
+ if($file=='')
466
+ $file = str_replace(' ','',$family).strtolower($style).'.php';
467
+ $style = strtoupper($style);
468
+ if($style=='IB')
469
+ $style = 'BI';
470
+ $fontkey = $family.$style;
471
+ if(isset($this->fonts[$fontkey]))
472
+ return;
473
+ $info = $this->_loadfont($file);
474
+ $info['i'] = count($this->fonts)+1;
475
+ if(!empty($info['diff']))
476
+ {
477
+ // Search existing encodings
478
+ $n = array_search($info['diff'],$this->diffs);
479
+ if(!$n)
480
+ {
481
+ $n = count($this->diffs)+1;
482
+ $this->diffs[$n] = $info['diff'];
483
+ }
484
+ $info['diffn'] = $n;
485
+ }
486
+ if(!empty($info['file']))
487
+ {
488
+ // Embedded font
489
+ if($info['type']=='TrueType')
490
+ $this->FontFiles[$info['file']] = array('length1'=>$info['originalsize']);
491
+ else
492
+ $this->FontFiles[$info['file']] = array('length1'=>$info['size1'], 'length2'=>$info['size2']);
493
+ }
494
+ $this->fonts[$fontkey] = $info;
495
+ }
496
+
497
+ function SetFont($family, $style='', $size=0)
498
+ {
499
+ // Select a font; size given in points
500
+ if($family=='')
501
+ $family = $this->FontFamily;
502
+ else
503
+ $family = strtolower($family);
504
+ $style = strtoupper($style);
505
+ if(strpos($style,'U')!==false)
506
+ {
507
+ $this->underline = true;
508
+ $style = str_replace('U','',$style);
509
+ }
510
+ else
511
+ $this->underline = false;
512
+ if($style=='IB')
513
+ $style = 'BI';
514
+ if($size==0)
515
+ $size = $this->FontSizePt;
516
+ // Test if font is already selected
517
+ if($this->FontFamily==$family && $this->FontStyle==$style && $this->FontSizePt==$size)
518
+ return;
519
+ // Test if font is already loaded
520
+ $fontkey = $family.$style;
521
+ if(!isset($this->fonts[$fontkey]))
522
+ {
523
+ // Test if one of the core fonts
524
+ if($family=='arial')
525
+ $family = 'helvetica';
526
+ if(in_array($family,$this->CoreFonts))
527
+ {
528
+ if($family=='symbol' || $family=='zapfdingbats')
529
+ $style = '';
530
+ $fontkey = $family.$style;
531
+ if(!isset($this->fonts[$fontkey]))
532
+ $this->AddFont($family,$style);
533
+ }
534
+ else
535
+ $this->Error('Undefined font: '.$family.' '.$style);
536
+ }
537
+ // Select it
538
+ $this->FontFamily = $family;
539
+ $this->FontStyle = $style;
540
+ $this->FontSizePt = $size;
541
+ $this->FontSize = $size/$this->k;
542
+ $this->CurrentFont = &$this->fonts[$fontkey];
543
+ if($this->page>0)
544
+ $this->_out(sprintf('BT /F%d %.2F Tf ET',$this->CurrentFont['i'],$this->FontSizePt));
545
+ }
546
+
547
+ function SetFontSize($size)
548
+ {
549
+ // Set font size in points
550
+ if($this->FontSizePt==$size)
551
+ return;
552
+ $this->FontSizePt = $size;
553
+ $this->FontSize = $size/$this->k;
554
+ if($this->page>0)
555
+ $this->_out(sprintf('BT /F%d %.2F Tf ET',$this->CurrentFont['i'],$this->FontSizePt));
556
+ }
557
+
558
+ function AddLink()
559
+ {
560
+ // Create a new internal link
561
+ $n = count($this->links)+1;
562
+ $this->links[$n] = array(0, 0);
563
+ return $n;
564
+ }
565
+
566
+ function SetLink($link, $y=0, $page=-1)
567
+ {
568
+ // Set destination of internal link
569
+ if($y==-1)
570
+ $y = $this->y;
571
+ if($page==-1)
572
+ $page = $this->page;
573
+ $this->links[$link] = array($page, $y);
574
+ }
575
+
576
+ function Link($x, $y, $w, $h, $link)
577
+ {
578
+ // Put a link on the page
579
+ $this->PageLinks[$this->page][] = array($x*$this->k, $this->hPt-$y*$this->k, $w*$this->k, $h*$this->k, $link);
580
+ }
581
+
582
+ function Text($x, $y, $txt)
583
+ {
584
+ // Output a string
585
+ $s = sprintf('BT %.2F %.2F Td (%s) Tj ET',$x*$this->k,($this->h-$y)*$this->k,$this->_escape($txt));
586
+ if($this->underline && $txt!='')
587
+ $s .= ' '.$this->_dounderline($x,$y,$txt);
588
+ if($this->ColorFlag)
589
+ $s = 'q '.$this->TextColor.' '.$s.' Q';
590
+ $this->_out($s);
591
+ }
592
+
593
+ function AcceptPageBreak()
594
+ {
595
+ // Accept automatic page break or not
596
+ return $this->AutoPageBreak;
597
+ }
598
+
599
+ function Cell($w, $h=0, $txt='', $border=0, $ln=0, $align='', $fill=false, $link='')
600
+ {
601
+ // Output a cell
602
+ $k = $this->k;
603
+ if($this->y+$h>$this->PageBreakTrigger && !$this->InHeader && !$this->InFooter && $this->AcceptPageBreak())
604
+ {
605
+ // Automatic page break
606
+ $x = $this->x;
607
+ $ws = $this->ws;
608
+ if($ws>0)
609
+ {
610
+ $this->ws = 0;
611
+ $this->_out('0 Tw');
612
+ }
613
+ $this->AddPage($this->CurOrientation,$this->CurPageSize);
614
+ $this->x = $x;
615
+ if($ws>0)
616
+ {
617
+ $this->ws = $ws;
618
+ $this->_out(sprintf('%.3F Tw',$ws*$k));
619
+ }
620
+ }
621
+ if($w==0)
622
+ $w = $this->w-$this->rMargin-$this->x;
623
+ $s = '';
624
+ if($fill || $border==1)
625
+ {
626
+ if($fill)
627
+ $op = ($border==1) ? 'B' : 'f';
628
+ else
629
+ $op = 'S';
630
+ $s = sprintf('%.2F %.2F %.2F %.2F re %s ',$this->x*$k,($this->h-$this->y)*$k,$w*$k,-$h*$k,$op);
631
+ }
632
+ if(is_string($border))
633
+ {
634
+ $x = $this->x;
635
+ $y = $this->y;
636
+ if(strpos($border,'L')!==false)
637
+ $s .= sprintf('%.2F %.2F m %.2F %.2F l S ',$x*$k,($this->h-$y)*$k,$x*$k,($this->h-($y+$h))*$k);
638
+ if(strpos($border,'T')!==false)
639
+ $s .= sprintf('%.2F %.2F m %.2F %.2F l S ',$x*$k,($this->h-$y)*$k,($x+$w)*$k,($this->h-$y)*$k);
640
+ if(strpos($border,'R')!==false)
641
+ $s .= sprintf('%.2F %.2F m %.2F %.2F l S ',($x+$w)*$k,($this->h-$y)*$k,($x+$w)*$k,($this->h-($y+$h))*$k);
642
+ if(strpos($border,'B')!==false)
643
+ $s .= sprintf('%.2F %.2F m %.2F %.2F l S ',$x*$k,($this->h-($y+$h))*$k,($x+$w)*$k,($this->h-($y+$h))*$k);
644
+ }
645
+ if($txt!=='')
646
+ {
647
+ if($align=='R')
648
+ $dx = $w-$this->cMargin-$this->GetStringWidth($txt);
649
+ elseif($align=='C')
650
+ $dx = ($w-$this->GetStringWidth($txt))/2;
651
+ else
652
+ $dx = $this->cMargin;
653
+ if($this->ColorFlag)
654
+ $s .= 'q '.$this->TextColor.' ';
655
+ $txt2 = str_replace(')','\\)',str_replace('(','\\(',str_replace('\\','\\\\',$txt)));
656
+ $s .= sprintf('BT %.2F %.2F Td (%s) Tj ET',($this->x+$dx)*$k,($this->h-($this->y+.5*$h+.3*$this->FontSize))*$k,$txt2);
657
+ if($this->underline)
658
+ $s .= ' '.$this->_dounderline($this->x+$dx,$this->y+.5*$h+.3*$this->FontSize,$txt);
659
+ if($this->ColorFlag)
660
+ $s .= ' Q';
661
+ if($link)
662
+ $this->Link($this->x+$dx,$this->y+.5*$h-.5*$this->FontSize,$this->GetStringWidth($txt),$this->FontSize,$link);
663
+ }
664
+ if($s)
665
+ $this->_out($s);
666
+ $this->lasth = $h;
667
+ if($ln>0)
668
+ {
669
+ // Go to next line
670
+ $this->y += $h;
671
+ if($ln==1)
672
+ $this->x = $this->lMargin;
673
+ }
674
+ else
675
+ $this->x += $w;
676
+ }
677
+
678
+ function MultiCell($w, $h, $txt, $border=0, $align='J', $fill=false)
679
+ {
680
+ // Output text with automatic or explicit line breaks
681
+ $cw = &$this->CurrentFont['cw'];
682
+ if($w==0)
683
+ $w = $this->w-$this->rMargin-$this->x;
684
+ $wmax = ($w-2*$this->cMargin)*1000/$this->FontSize;
685
+ $s = str_replace("\r",'',$txt);
686
+ $nb = strlen($s);
687
+ if($nb>0 && $s[$nb-1]=="\n")
688
+ $nb--;
689
+ $b = 0;
690
+ if($border)
691
+ {
692
+ if($border==1)
693
+ {
694
+ $border = 'LTRB';
695
+ $b = 'LRT';
696
+ $b2 = 'LR';
697
+ }
698
+ else
699
+ {
700
+ $b2 = '';
701
+ if(strpos($border,'L')!==false)
702
+ $b2 .= 'L';
703
+ if(strpos($border,'R')!==false)
704
+ $b2 .= 'R';
705
+ $b = (strpos($border,'T')!==false) ? $b2.'T' : $b2;
706
+ }
707
+ }
708
+ $sep = -1;
709
+ $i = 0;
710
+ $j = 0;
711
+ $l = 0;
712
+ $ns = 0;
713
+ $nl = 1;
714
+ while($i<$nb)
715
+ {
716
+ // Get next character
717
+ $c = $s[$i];
718
+ if($c=="\n")
719
+ {
720
+ // Explicit line break
721
+ if($this->ws>0)
722
+ {
723
+ $this->ws = 0;
724
+ $this->_out('0 Tw');
725
+ }
726
+ $this->Cell($w,$h,substr($s,$j,$i-$j),$b,2,$align,$fill);
727
+ $i++;
728
+ $sep = -1;
729
+ $j = $i;
730
+ $l = 0;
731
+ $ns = 0;
732
+ $nl++;
733
+ if($border && $nl==2)
734
+ $b = $b2;
735
+ continue;
736
+ }
737
+ if($c==' ')
738
+ {
739
+ $sep = $i;
740
+ $ls = $l;
741
+ $ns++;
742
+ }
743
+ $l += $cw[$c];
744
+ if($l>$wmax)
745
+ {
746
+ // Automatic line break
747
+ if($sep==-1)
748
+ {
749
+ if($i==$j)
750
+ $i++;
751
+ if($this->ws>0)
752
+ {
753
+ $this->ws = 0;
754
+ $this->_out('0 Tw');
755
+ }
756
+ $this->Cell($w,$h,substr($s,$j,$i-$j),$b,2,$align,$fill);
757
+ }
758
+ else
759
+ {
760
+ if($align=='J')
761
+ {
762
+ $this->ws = ($ns>1) ? ($wmax-$ls)/1000*$this->FontSize/($ns-1) : 0;
763
+ $this->_out(sprintf('%.3F Tw',$this->ws*$this->k));
764
+ }
765
+ $this->Cell($w,$h,substr($s,$j,$sep-$j),$b,2,$align,$fill);
766
+ $i = $sep+1;
767
+ }
768
+ $sep = -1;
769
+ $j = $i;
770
+ $l = 0;
771
+ $ns = 0;
772
+ $nl++;
773
+ if($border && $nl==2)
774
+ $b = $b2;
775
+ }
776
+ else
777
+ $i++;
778
+ }
779
+ // Last chunk
780
+ if($this->ws>0)
781
+ {
782
+ $this->ws = 0;
783
+ $this->_out('0 Tw');
784
+ }
785
+ if($border && strpos($border,'B')!==false)
786
+ $b .= 'B';
787
+ $this->Cell($w,$h,substr($s,$j,$i-$j),$b,2,$align,$fill);
788
+ $this->x = $this->lMargin;
789
+ }
790
+
791
+ function Write($h, $txt, $link='')
792
+ {
793
+ // Output text in flowing mode
794
+ $cw = &$this->CurrentFont['cw'];
795
+ $w = $this->w-$this->rMargin-$this->x;
796
+ $wmax = ($w-2*$this->cMargin)*1000/$this->FontSize;
797
+ $s = str_replace("\r",'',$txt);
798
+ $nb = strlen($s);
799
+ $sep = -1;
800
+ $i = 0;
801
+ $j = 0;
802
+ $l = 0;
803
+ $nl = 1;
804
+ while($i<$nb)
805
+ {
806
+ // Get next character
807
+ $c = $s[$i];
808
+ if($c=="\n")
809
+ {
810
+ // Explicit line break
811
+ $this->Cell($w,$h,substr($s,$j,$i-$j),0,2,'',0,$link);
812
+ $i++;
813
+ $sep = -1;
814
+ $j = $i;
815
+ $l = 0;
816
+ if($nl==1)
817
+ {
818
+ $this->x = $this->lMargin;
819
+ $w = $this->w-$this->rMargin-$this->x;
820
+ $wmax = ($w-2*$this->cMargin)*1000/$this->FontSize;
821
+ }
822
+ $nl++;
823
+ continue;
824
+ }
825
+ if($c==' ')
826
+ $sep = $i;
827
+ $l += $cw[$c];
828
+ if($l>$wmax)
829
+ {
830
+ // Automatic line break
831
+ if($sep==-1)
832
+ {
833
+ if($this->x>$this->lMargin)
834
+ {
835
+ // Move to next line
836
+ $this->x = $this->lMargin;
837
+ $this->y += $h;
838
+ $w = $this->w-$this->rMargin-$this->x;
839
+ $wmax = ($w-2*$this->cMargin)*1000/$this->FontSize;
840
+ $i++;
841
+ $nl++;
842
+ continue;
843
+ }
844
+ if($i==$j)
845
+ $i++;
846
+ $this->Cell($w,$h,substr($s,$j,$i-$j),0,2,'',0,$link);
847
+ }
848
+ else
849
+ {
850
+ $this->Cell($w,$h,substr($s,$j,$sep-$j),0,2,'',0,$link);
851
+ $i = $sep+1;
852
+ }
853
+ $sep = -1;
854
+ $j = $i;
855
+ $l = 0;
856
+ if($nl==1)
857
+ {
858
+ $this->x = $this->lMargin;
859
+ $w = $this->w-$this->rMargin-$this->x;
860
+ $wmax = ($w-2*$this->cMargin)*1000/$this->FontSize;
861
+ }
862
+ $nl++;
863
+ }
864
+ else
865
+ $i++;
866
+ }
867
+ // Last chunk
868
+ if($i!=$j)
869
+ $this->Cell($l/1000*$this->FontSize,$h,substr($s,$j),0,0,'',0,$link);
870
+ }
871
+
872
+ function Ln($h=null)
873
+ {
874
+ // Line feed; default value is last cell height
875
+ $this->x = $this->lMargin;
876
+ if($h===null)
877
+ $this->y += $this->lasth;
878
+ else
879
+ $this->y += $h;
880
+ }
881
+
882
+ function Image($file, $x=null, $y=null, $w=0, $h=0, $type='', $link='')
883
+ {
884
+ // Put an image on the page
885
+ if(!isset($this->images[$file]))
886
+ {
887
+ // First use of this image, get info
888
+ if($type=='')
889
+ {
890
+ $pos = strrpos($file,'.');
891
+ if(!$pos)
892
+ $this->Error('Image file has no extension and no type was specified: '.$file);
893
+ $type = substr($file,$pos+1);
894
+ }
895
+ $type = strtolower($type);
896
+ if($type=='jpeg')
897
+ $type = 'jpg';
898
+ $mtd = '_parse'.$type;
899
+ if(!method_exists($this,$mtd))
900
+ $this->Error('Unsupported image type: '.$type);
901
+ $info = $this->$mtd($file);
902
+ $info['i'] = count($this->images)+1;
903
+ $this->images[$file] = $info;
904
+ }
905
+ else
906
+ $info = $this->images[$file];
907
+
908
+ // Automatic width and height calculation if needed
909
+ if($w==0 && $h==0)
910
+ {
911
+ // Put image at 96 dpi
912
+ $w = -96;
913
+ $h = -96;
914
+ }
915
+ if($w<0)
916
+ $w = -$info['w']*72/$w/$this->k;
917
+ if($h<0)
918
+ $h = -$info['h']*72/$h/$this->k;
919
+ if($w==0)
920
+ $w = $h*$info['w']/$info['h'];
921
+ if($h==0)
922
+ $h = $w*$info['h']/$info['w'];
923
+
924
+ // Flowing mode
925
+ if($y===null)
926
+ {
927
+ if($this->y+$h>$this->PageBreakTrigger && !$this->InHeader && !$this->InFooter && $this->AcceptPageBreak())
928
+ {
929
+ // Automatic page break
930
+ $x2 = $this->x;
931
+ $this->AddPage($this->CurOrientation,$this->CurPageSize);
932
+ $this->x = $x2;
933
+ }
934
+ $y = $this->y;
935
+ $this->y += $h;
936
+ }
937
+
938
+ if($x===null)
939
+ $x = $this->x;
940
+ $this->_out(sprintf('q %.2F 0 0 %.2F %.2F %.2F cm /I%d Do Q',$w*$this->k,$h*$this->k,$x*$this->k,($this->h-($y+$h))*$this->k,$info['i']));
941
+ if($link)
942
+ $this->Link($x,$y,$w,$h,$link);
943
+ }
944
+
945
+ function GetX()
946
+ {
947
+ // Get x position
948
+ return $this->x;
949
+ }
950
+
951
+ function SetX($x)
952
+ {
953
+ // Set x position
954
+ if($x>=0)
955
+ $this->x = $x;
956
+ else
957
+ $this->x = $this->w+$x;
958
+ }
959
+
960
+ function GetY()
961
+ {
962
+ // Get y position
963
+ return $this->y;
964
+ }
965
+
966
+ function SetY($y)
967
+ {
968
+ // Set y position and reset x
969
+ $this->x = $this->lMargin;
970
+ if($y>=0)
971
+ $this->y = $y;
972
+ else
973
+ $this->y = $this->h+$y;
974
+ }
975
+
976
+ function SetXY($x, $y)
977
+ {
978
+ // Set x and y positions
979
+ $this->SetY($y);
980
+ $this->SetX($x);
981
+ }
982
+
983
+ function Output($name='', $dest='')
984
+ {
985
+ // Output PDF to some destination
986
+ if($this->state<3)
987
+ $this->Close();
988
+ $dest = strtoupper($dest);
989
+ if($dest=='')
990
+ {
991
+ if($name=='')
992
+ {
993
+ $name = 'doc.pdf';
994
+ $dest = 'I';
995
+ }
996
+ else
997
+ $dest = 'F';
998
+ }
999
+ switch($dest)
1000
+ {
1001
+ case 'I':
1002
+ // Send to standard output
1003
+ $this->_checkoutput();
1004
+ if(PHP_SAPI!='cli')
1005
+ {
1006
+ // We send to a browser
1007
+ header('Content-Type: application/pdf');
1008
+ header('Content-Disposition: inline; filename="'.$name.'"');
1009
+ header('Cache-Control: private, max-age=0, must-revalidate');
1010
+ header('Pragma: public');
1011
+ }
1012
+ echo $this->buffer;
1013
+ break;
1014
+ case 'D':
1015
+ // Download file
1016
+ $this->_checkoutput();
1017
+ header('Content-Type: application/x-download');
1018
+ header('Content-Disposition: attachment; filename="'.$name.'"');
1019
+ header('Cache-Control: private, max-age=0, must-revalidate');
1020
+ header('Pragma: public');
1021
+ echo $this->buffer;
1022
+ break;
1023
+ case 'F':
1024
+ // Save to local file
1025
+ $f = fopen($name,'wb');
1026
+ if(!$f)
1027
+ $this->Error('Unable to create output file: '.$name);
1028
+ fwrite($f,$this->buffer,strlen($this->buffer));
1029
+ fclose($f);
1030
+ break;
1031
+ case 'S':
1032
+ // Return as a string
1033
+ return $this->buffer;
1034
+ default:
1035
+ $this->Error('Incorrect output destination: '.$dest);
1036
+ }
1037
+ return '';
1038
+ }
1039
+
1040
+ /*******************************************************************************
1041
+ * *
1042
+ * Protected methods *
1043
+ * *
1044
+ *******************************************************************************/
1045
+ function _dochecks()
1046
+ {
1047
+ // Check availability of %F
1048
+ if(sprintf('%.1F',1.0)!='1.0')
1049
+ $this->Error('This version of PHP is not supported');
1050
+ // Check mbstring overloading
1051
+ if(ini_get('mbstring.func_overload') & 2)
1052
+ $this->Error('mbstring overloading must be disabled');
1053
+ // Ensure runtime magic quotes are disabled
1054
+ if(get_magic_quotes_runtime())
1055
+ @set_magic_quotes_runtime(0);
1056
+ }
1057
+
1058
+ function _checkoutput()
1059
+ {
1060
+ if(PHP_SAPI!='cli')
1061
+ {
1062
+ if(headers_sent($file,$line))
1063
+ $this->Error("Some data has already been output, can't send PDF file (output started at $file:$line)");
1064
+ }
1065
+ if(ob_get_length())
1066
+ {
1067
+ // The output buffer is not empty
1068
+ if(preg_match('/^(\xEF\xBB\xBF)?\s*$/',ob_get_contents()))
1069
+ {
1070
+ // It contains only a UTF-8 BOM and/or whitespace, let's clean it
1071
+ ob_clean();
1072
+ }
1073
+ else
1074
+ $this->Error("Some data has already been output, can't send PDF file");
1075
+ }
1076
+ }
1077
+
1078
+ function _getpagesize($size)
1079
+ {
1080
+ if(is_string($size))
1081
+ {
1082
+ $size = strtolower($size);
1083
+ if(!isset($this->StdPageSizes[$size]))
1084
+ $this->Error('Unknown page size: '.$size);
1085
+ $a = $this->StdPageSizes[$size];
1086
+ return array($a[0]/$this->k, $a[1]/$this->k);
1087
+ }
1088
+ else
1089
+ {
1090
+ if($size[0]>$size[1])
1091
+ return array($size[1], $size[0]);
1092
+ else
1093
+ return $size;
1094
+ }
1095
+ }
1096
+
1097
+ function _beginpage($orientation, $size)
1098
+ {
1099
+ $this->page++;
1100
+ $this->pages[$this->page] = '';
1101
+ $this->state = 2;
1102
+ $this->x = $this->lMargin;
1103
+ $this->y = $this->tMargin;
1104
+ $this->FontFamily = '';
1105
+ // Check page size and orientation
1106
+ if($orientation=='')
1107
+ $orientation = $this->DefOrientation;
1108
+ else
1109
+ $orientation = strtoupper($orientation[0]);
1110
+ if($size=='')
1111
+ $size = $this->DefPageSize;
1112
+ else
1113
+ $size = $this->_getpagesize($size);
1114
+ if($orientation!=$this->CurOrientation || $size[0]!=$this->CurPageSize[0] || $size[1]!=$this->CurPageSize[1])
1115
+ {
1116
+ // New size or orientation
1117
+ if($orientation=='P')
1118
+ {
1119
+ $this->w = $size[0];
1120
+ $this->h = $size[1];
1121
+ }
1122
+ else
1123
+ {
1124
+ $this->w = $size[1];
1125
+ $this->h = $size[0];
1126
+ }
1127
+ $this->wPt = $this->w*$this->k;
1128
+ $this->hPt = $this->h*$this->k;
1129
+ $this->PageBreakTrigger = $this->h-$this->bMargin;
1130
+ $this->CurOrientation = $orientation;
1131
+ $this->CurPageSize = $size;
1132
+ }
1133
+ if($orientation!=$this->DefOrientation || $size[0]!=$this->DefPageSize[0] || $size[1]!=$this->DefPageSize[1])
1134
+ $this->PageSizes[$this->page] = array($this->wPt, $this->hPt);
1135
+ }
1136
+
1137
+ function _endpage()
1138
+ {
1139
+ $this->state = 1;
1140
+ }
1141
+
1142
+ function _loadfont($font)
1143
+ {
1144
+ // Load a font definition file from the font directory
1145
+ include($this->fontpath.$font);
1146
+ $a = get_defined_vars();
1147
+ if(!isset($a['name']))
1148
+ $this->Error('Could not include font definition file');
1149
+ return $a;
1150
+ }
1151
+
1152
+ function _escape($s)
1153
+ {
1154
+ // Escape special characters in strings
1155
+ $s = str_replace('\\','\\\\',$s);
1156
+ $s = str_replace('(','\\(',$s);
1157
+ $s = str_replace(')','\\)',$s);
1158
+ $s = str_replace("\r",'\\r',$s);
1159
+ return $s;
1160
+ }
1161
+
1162
+ function _textstring($s)
1163
+ {
1164
+ // Format a text string
1165
+ return '('.$this->_escape($s).')';
1166
+ }
1167
+
1168
+ function _UTF8toUTF16($s)
1169
+ {
1170
+ // Convert UTF-8 to UTF-16BE with BOM
1171
+ $res = "\xFE\xFF";
1172
+ $nb = strlen($s);
1173
+ $i = 0;
1174
+ while($i<$nb)
1175
+ {
1176
+ $c1 = ord($s[$i++]);
1177
+ if($c1>=224)
1178
+ {
1179
+ // 3-byte character
1180
+ $c2 = ord($s[$i++]);
1181
+ $c3 = ord($s[$i++]);
1182
+ $res .= chr((($c1 & 0x0F)<<4) + (($c2 & 0x3C)>>2));
1183
+ $res .= chr((($c2 & 0x03)<<6) + ($c3 & 0x3F));
1184
+ }
1185
+ elseif($c1>=192)
1186
+ {
1187
+ // 2-byte character
1188
+ $c2 = ord($s[$i++]);
1189
+ $res .= chr(($c1 & 0x1C)>>2);
1190
+ $res .= chr((($c1 & 0x03)<<6) + ($c2 & 0x3F));
1191
+ }
1192
+ else
1193
+ {
1194
+ // Single-byte character
1195
+ $res .= "\0".chr($c1);
1196
+ }
1197
+ }
1198
+ return $res;
1199
+ }
1200
+
1201
+ function _dounderline($x, $y, $txt)
1202
+ {
1203
+ // Underline text
1204
+ $up = $this->CurrentFont['up'];
1205
+ $ut = $this->CurrentFont['ut'];
1206
+ $w = $this->GetStringWidth($txt)+$this->ws*substr_count($txt,' ');
1207
+ return sprintf('%.2F %.2F %.2F %.2F re f',$x*$this->k,($this->h-($y-$up/1000*$this->FontSize))*$this->k,$w*$this->k,-$ut/1000*$this->FontSizePt);
1208
+ }
1209
+
1210
+ function _parsejpg($file)
1211
+ {
1212
+ // Extract info from a JPEG file
1213
+ $a = getimagesize($file);
1214
+ if(!$a)
1215
+ $this->Error('Missing or incorrect image file: '.$file);
1216
+ if($a[2]!=2)
1217
+ $this->Error('Not a JPEG file: '.$file);
1218
+ if(!isset($a['channels']) || $a['channels']==3)
1219
+ $colspace = 'DeviceRGB';
1220
+ elseif($a['channels']==4)
1221
+ $colspace = 'DeviceCMYK';
1222
+ else
1223
+ $colspace = 'DeviceGray';
1224
+ $bpc = isset($a['bits']) ? $a['bits'] : 8;
1225
+ $data = file_get_contents($file);
1226
+ return array('w'=>$a[0], 'h'=>$a[1], 'cs'=>$colspace, 'bpc'=>$bpc, 'f'=>'DCTDecode', 'data'=>$data);
1227
+ }
1228
+
1229
+ function _parsepng($file)
1230
+ {
1231
+ // Extract info from a PNG file
1232
+ $f = fopen($file,'rb');
1233
+ if(!$f)
1234
+ $this->Error('Can\'t open image file: '.$file);
1235
+ $info = $this->_parsepngstream($f,$file);
1236
+ fclose($f);
1237
+ return $info;
1238
+ }
1239
+
1240
+ function _parsepngstream($f, $file)
1241
+ {
1242
+ // Check signature
1243
+ if($this->_readstream($f,8)!=chr(137).'PNG'.chr(13).chr(10).chr(26).chr(10))
1244
+ $this->Error('Not a PNG file: '.$file);
1245
+
1246
+ // Read header chunk
1247
+ $this->_readstream($f,4);
1248
+ if($this->_readstream($f,4)!='IHDR')
1249
+ $this->Error('Incorrect PNG file: '.$file);
1250
+ $w = $this->_readint($f);
1251
+ $h = $this->_readint($f);
1252
+ $bpc = ord($this->_readstream($f,1));
1253
+ if($bpc>8)
1254
+ $this->Error('16-bit depth not supported: '.$file);
1255
+ $ct = ord($this->_readstream($f,1));
1256
+ if($ct==0 || $ct==4)
1257
+ $colspace = 'DeviceGray';
1258
+ elseif($ct==2 || $ct==6)
1259
+ $colspace = 'DeviceRGB';
1260
+ elseif($ct==3)
1261
+ $colspace = 'Indexed';
1262
+ else
1263
+ $this->Error('Unknown color type: '.$file);
1264
+ if(ord($this->_readstream($f,1))!=0)
1265
+ $this->Error('Unknown compression method: '.$file);
1266
+ if(ord($this->_readstream($f,1))!=0)
1267
+ $this->Error('Unknown filter method: '.$file);
1268
+ if(ord($this->_readstream($f,1))!=0)
1269
+ $this->Error('Interlacing not supported: '.$file);
1270
+ $this->_readstream($f,4);
1271
+ $dp = '/Predictor 15 /Colors '.($colspace=='DeviceRGB' ? 3 : 1).' /BitsPerComponent '.$bpc.' /Columns '.$w;
1272
+
1273
+ // Scan chunks looking for palette, transparency and image data
1274
+ $pal = '';
1275
+ $trns = '';
1276
+ $data = '';
1277
+ do
1278
+ {
1279
+ $n = $this->_readint($f);
1280
+ $type = $this->_readstream($f,4);
1281
+ if($type=='PLTE')
1282
+ {
1283
+ // Read palette
1284
+ $pal = $this->_readstream($f,$n);
1285
+ $this->_readstream($f,4);
1286
+ }
1287
+ elseif($type=='tRNS')
1288
+ {
1289
+ // Read transparency info
1290
+ $t = $this->_readstream($f,$n);
1291
+ if($ct==0)
1292
+ $trns = array(ord(substr($t,1,1)));
1293
+ elseif($ct==2)
1294
+ $trns = array(ord(substr($t,1,1)), ord(substr($t,3,1)), ord(substr($t,5,1)));
1295
+ else
1296
+ {
1297
+ $pos = strpos($t,chr(0));
1298
+ if($pos!==false)
1299
+ $trns = array($pos);
1300
+ }
1301
+ $this->_readstream($f,4);
1302
+ }
1303
+ elseif($type=='IDAT')
1304
+ {
1305
+ // Read image data block
1306
+ $data .= $this->_readstream($f,$n);
1307
+ $this->_readstream($f,4);
1308
+ }
1309
+ elseif($type=='IEND')
1310
+ break;
1311
+ else
1312
+ $this->_readstream($f,$n+4);
1313
+ }
1314
+ while($n);
1315
+
1316
+ if($colspace=='Indexed' && empty($pal))
1317
+ $this->Error('Missing palette in '.$file);
1318
+ $info = array('w'=>$w, 'h'=>$h, 'cs'=>$colspace, 'bpc'=>$bpc, 'f'=>'FlateDecode', 'dp'=>$dp, 'pal'=>$pal, 'trns'=>$trns);
1319
+ if($ct>=4)
1320
+ {
1321
+ // Extract alpha channel
1322
+ if(!function_exists('gzuncompress'))
1323
+ $this->Error('Zlib not available, can\'t handle alpha channel: '.$file);
1324
+ $data = gzuncompress($data);
1325
+ $color = '';
1326
+ $alpha = '';
1327
+ if($ct==4)
1328
+ {
1329
+ // Gray image
1330
+ $len = 2*$w;
1331
+ for($i=0;$i<$h;$i++)
1332
+ {
1333
+ $pos = (1+$len)*$i;
1334
+ $color .= $data[$pos];
1335
+ $alpha .= $data[$pos];
1336
+ $line = substr($data,$pos+1,$len);
1337
+ $color .= preg_replace('/(.)./s','$1',$line);
1338
+ $alpha .= preg_replace('/.(.)/s','$1',$line);
1339
+ }
1340
+ }
1341
+ else
1342
+ {
1343
+ // RGB image
1344
+ $len = 4*$w;
1345
+ for($i=0;$i<$h;$i++)
1346
+ {
1347
+ $pos = (1+$len)*$i;
1348
+ $color .= $data[$pos];
1349
+ $alpha .= $data[$pos];
1350
+ $line = substr($data,$pos+1,$len);
1351
+ $color .= preg_replace('/(.{3})./s','$1',$line);
1352
+ $alpha .= preg_replace('/.{3}(.)/s','$1',$line);
1353
+ }
1354
+ }
1355
+ unset($data);
1356
+ $data = gzcompress($color);
1357
+ $info['smask'] = gzcompress($alpha);
1358
+ if($this->PDFVersion<'1.4')
1359
+ $this->PDFVersion = '1.4';
1360
+ }
1361
+ $info['data'] = $data;
1362
+ return $info;
1363
+ }
1364
+
1365
+ function _readstream($f, $n)
1366
+ {
1367
+ // Read n bytes from stream
1368
+ $res = '';
1369
+ while($n>0 && !feof($f))
1370
+ {
1371
+ $s = fread($f,$n);
1372
+ if($s===false)
1373
+ $this->Error('Error while reading stream');
1374
+ $n -= strlen($s);
1375
+ $res .= $s;
1376
+ }
1377
+ if($n>0)
1378
+ $this->Error('Unexpected end of stream');
1379
+ return $res;
1380
+ }
1381
+
1382
+ function _readint($f)
1383
+ {
1384
+ // Read a 4-byte integer from stream
1385
+ $a = unpack('Ni',$this->_readstream($f,4));
1386
+ return $a['i'];
1387
+ }
1388
+
1389
+ function _parsegif($file)
1390
+ {
1391
+ // Extract info from a GIF file (via PNG conversion)
1392
+ if(!function_exists('imagepng'))
1393
+ $this->Error('GD extension is required for GIF support');
1394
+ if(!function_exists('imagecreatefromgif'))
1395
+ $this->Error('GD has no GIF read support');
1396
+ $im = imagecreatefromgif($file);
1397
+ if(!$im)
1398
+ $this->Error('Missing or incorrect image file: '.$file);
1399
+ imageinterlace($im,0);
1400
+ $f = @fopen('php://temp','rb+');
1401
+ if($f)
1402
+ {
1403
+ // Perform conversion in memory
1404
+ ob_start();
1405
+ imagepng($im);
1406
+ $data = ob_get_clean();
1407
+ imagedestroy($im);
1408
+ fwrite($f,$data);
1409
+ rewind($f);
1410
+ $info = $this->_parsepngstream($f,$file);
1411
+ fclose($f);
1412
+ }
1413
+ else
1414
+ {
1415
+ // Use temporary file
1416
+ $tmp = tempnam('.','gif');
1417
+ if(!$tmp)
1418
+ $this->Error('Unable to create a temporary file');
1419
+ if(!imagepng($im,$tmp))
1420
+ $this->Error('Error while saving to temporary file');
1421
+ imagedestroy($im);
1422
+ $info = $this->_parsepng($tmp);
1423
+ unlink($tmp);
1424
+ }
1425
+ return $info;
1426
+ }
1427
+
1428
+ function _newobj()
1429
+ {
1430
+ // Begin a new object
1431
+ $this->n++;
1432
+ $this->offsets[$this->n] = strlen($this->buffer);
1433
+ $this->_out($this->n.' 0 obj');
1434
+ }
1435
+
1436
+ function _putstream($s)
1437
+ {
1438
+ $this->_out('stream');
1439
+ $this->_out($s);
1440
+ $this->_out('endstream');
1441
+ }
1442
+
1443
+ function _out($s)
1444
+ {
1445
+ // Add a line to the document
1446
+ if($this->state==2)
1447
+ $this->pages[$this->page] .= $s."\n";
1448
+ else
1449
+ $this->buffer .= $s."\n";
1450
+ }
1451
+
1452
+ function _putpages()
1453
+ {
1454
+ $nb = $this->page;
1455
+ if(!empty($this->AliasNbPages))
1456
+ {
1457
+ // Replace number of pages
1458
+ for($n=1;$n<=$nb;$n++)
1459
+ $this->pages[$n] = str_replace($this->AliasNbPages,$nb,$this->pages[$n]);
1460
+ }
1461
+ if($this->DefOrientation=='P')
1462
+ {
1463
+ $wPt = $this->DefPageSize[0]*$this->k;
1464
+ $hPt = $this->DefPageSize[1]*$this->k;
1465
+ }
1466
+ else
1467
+ {
1468
+ $wPt = $this->DefPageSize[1]*$this->k;
1469
+ $hPt = $this->DefPageSize[0]*$this->k;
1470
+ }
1471
+ $filter = ($this->compress) ? '/Filter /FlateDecode ' : '';
1472
+ for($n=1;$n<=$nb;$n++)
1473
+ {
1474
+ // Page
1475
+ $this->_newobj();
1476
+ $this->_out('<</Type /Page');
1477
+ $this->_out('/Parent 1 0 R');
1478
+ if(isset($this->PageSizes[$n]))
1479
+ $this->_out(sprintf('/MediaBox [0 0 %.2F %.2F]',$this->PageSizes[$n][0],$this->PageSizes[$n][1]));
1480
+ $this->_out('/Resources 2 0 R');
1481
+ if(isset($this->PageLinks[$n]))
1482
+ {
1483
+ // Links
1484
+ $annots = '/Annots [';
1485
+ foreach($this->PageLinks[$n] as $pl)
1486
+ {
1487
+ $rect = sprintf('%.2F %.2F %.2F %.2F',$pl[0],$pl[1],$pl[0]+$pl[2],$pl[1]-$pl[3]);
1488
+ $annots .= '<</Type /Annot /Subtype /Link /Rect ['.$rect.'] /Border [0 0 0] ';
1489
+ if(is_string($pl[4]))
1490
+ $annots .= '/A <</S /URI /URI '.$this->_textstring($pl[4]).'>>>>';
1491
+ else
1492
+ {
1493
+ $l = $this->links[$pl[4]];
1494
+ $h = isset($this->PageSizes[$l[0]]) ? $this->PageSizes[$l[0]][1] : $hPt;
1495
+ $annots .= sprintf('/Dest [%d 0 R /XYZ 0 %.2F null]>>',1+2*$l[0],$h-$l[1]*$this->k);
1496
+ }
1497
+ }
1498
+ $this->_out($annots.']');
1499
+ }
1500
+ if($this->PDFVersion>'1.3')
1501
+ $this->_out('/Group <</Type /Group /S /Transparency /CS /DeviceRGB>>');
1502
+ $this->_out('/Contents '.($this->n+1).' 0 R>>');
1503
+ $this->_out('endobj');
1504
+ // Page content
1505
+ $p = ($this->compress) ? gzcompress($this->pages[$n]) : $this->pages[$n];
1506
+ $this->_newobj();
1507
+ $this->_out('<<'.$filter.'/Length '.strlen($p).'>>');
1508
+ $this->_putstream($p);
1509
+ $this->_out('endobj');
1510
+ }
1511
+ // Pages root
1512
+ $this->offsets[1] = strlen($this->buffer);
1513
+ $this->_out('1 0 obj');
1514
+ $this->_out('<</Type /Pages');
1515
+ $kids = '/Kids [';
1516
+ for($i=0;$i<$nb;$i++)
1517
+ $kids .= (3+2*$i).' 0 R ';
1518
+ $this->_out($kids.']');
1519
+ $this->_out('/Count '.$nb);
1520
+ $this->_out(sprintf('/MediaBox [0 0 %.2F %.2F]',$wPt,$hPt));
1521
+ $this->_out('>>');
1522
+ $this->_out('endobj');
1523
+ }
1524
+
1525
+ function _putfonts()
1526
+ {
1527
+ $nf = $this->n;
1528
+ foreach($this->diffs as $diff)
1529
+ {
1530
+ // Encodings
1531
+ $this->_newobj();
1532
+ $this->_out('<</Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences ['.$diff.']>>');
1533
+ $this->_out('endobj');
1534
+ }
1535
+ foreach($this->FontFiles as $file=>$info)
1536
+ {
1537
+ // Font file embedding
1538
+ $this->_newobj();
1539
+ $this->FontFiles[$file]['n'] = $this->n;
1540
+ $font = file_get_contents($this->fontpath.$file,true);
1541
+ if(!$font)
1542
+ $this->Error('Font file not found: '.$file);
1543
+ $compressed = (substr($file,-2)=='.z');
1544
+ if(!$compressed && isset($info['length2']))
1545
+ $font = substr($font,6,$info['length1']).substr($font,6+$info['length1']+6,$info['length2']);
1546
+ $this->_out('<</Length '.strlen($font));
1547
+ if($compressed)
1548
+ $this->_out('/Filter /FlateDecode');
1549
+ $this->_out('/Length1 '.$info['length1']);
1550
+ if(isset($info['length2']))
1551
+ $this->_out('/Length2 '.$info['length2'].' /Length3 0');
1552
+ $this->_out('>>');
1553
+ $this->_putstream($font);
1554
+ $this->_out('endobj');
1555
+ }
1556
+ foreach($this->fonts as $k=>$font)
1557
+ {
1558
+ // Font objects
1559
+ $this->fonts[$k]['n'] = $this->n+1;
1560
+ $type = $font['type'];
1561
+ $name = $font['name'];
1562
+ if($type=='Core')
1563
+ {
1564
+ // Core font
1565
+ $this->_newobj();
1566
+ $this->_out('<</Type /Font');
1567
+ $this->_out('/BaseFont /'.$name);
1568
+ $this->_out('/Subtype /Type1');
1569
+ if($name!='Symbol' && $name!='ZapfDingbats')
1570
+ $this->_out('/Encoding /WinAnsiEncoding');
1571
+ $this->_out('>>');
1572
+ $this->_out('endobj');
1573
+ }
1574
+ elseif($type=='Type1' || $type=='TrueType')
1575
+ {
1576
+ // Additional Type1 or TrueType/OpenType font
1577
+ $this->_newobj();
1578
+ $this->_out('<</Type /Font');
1579
+ $this->_out('/BaseFont /'.$name);
1580
+ $this->_out('/Subtype /'.$type);
1581
+ $this->_out('/FirstChar 32 /LastChar 255');
1582
+ $this->_out('/Widths '.($this->n+1).' 0 R');
1583
+ $this->_out('/FontDescriptor '.($this->n+2).' 0 R');
1584
+ if(isset($font['diffn']))
1585
+ $this->_out('/Encoding '.($nf+$font['diffn']).' 0 R');
1586
+ else
1587
+ $this->_out('/Encoding /WinAnsiEncoding');
1588
+ $this->_out('>>');
1589
+ $this->_out('endobj');
1590
+ // Widths
1591
+ $this->_newobj();
1592
+ $cw = &$font['cw'];
1593
+ $s = '[';
1594
+ for($i=32;$i<=255;$i++)
1595
+ $s .= $cw[chr($i)].' ';
1596
+ $this->_out($s.']');
1597
+ $this->_out('endobj');
1598
+ // Descriptor
1599
+ $this->_newobj();
1600
+ $s = '<</Type /FontDescriptor /FontName /'.$name;
1601
+ foreach($font['desc'] as $k=>$v)
1602
+ $s .= ' /'.$k.' '.$v;
1603
+ if(!empty($font['file']))
1604
+ $s .= ' /FontFile'.($type=='Type1' ? '' : '2').' '.$this->FontFiles[$font['file']]['n'].' 0 R';
1605
+ $this->_out($s.'>>');
1606
+ $this->_out('endobj');
1607
+ }
1608
+ else
1609
+ {
1610
+ // Allow for additional types
1611
+ $mtd = '_put'.strtolower($type);
1612
+ if(!method_exists($this,$mtd))
1613
+ $this->Error('Unsupported font type: '.$type);
1614
+ $this->$mtd($font);
1615
+ }
1616
+ }
1617
+ }
1618
+
1619
+ function _putimages()
1620
+ {
1621
+ foreach(array_keys($this->images) as $file)
1622
+ {
1623
+ $this->_putimage($this->images[$file]);
1624
+ unset($this->images[$file]['data']);
1625
+ unset($this->images[$file]['smask']);
1626
+ }
1627
+ }
1628
+
1629
+ function _putimage(&$info)
1630
+ {
1631
+ $this->_newobj();
1632
+ $info['n'] = $this->n;
1633
+ $this->_out('<</Type /XObject');
1634
+ $this->_out('/Subtype /Image');
1635
+ $this->_out('/Width '.$info['w']);
1636
+ $this->_out('/Height '.$info['h']);
1637
+ if($info['cs']=='Indexed')
1638
+ $this->_out('/ColorSpace [/Indexed /DeviceRGB '.(strlen($info['pal'])/3-1).' '.($this->n+1).' 0 R]');
1639
+ else
1640
+ {
1641
+ $this->_out('/ColorSpace /'.$info['cs']);
1642
+ if($info['cs']=='DeviceCMYK')
1643
+ $this->_out('/Decode [1 0 1 0 1 0 1 0]');
1644
+ }
1645
+ $this->_out('/BitsPerComponent '.$info['bpc']);
1646
+ if(isset($info['f']))
1647
+ $this->_out('/Filter /'.$info['f']);
1648
+ if(isset($info['dp']))
1649
+ $this->_out('/DecodeParms <<'.$info['dp'].'>>');
1650
+ if(isset($info['trns']) && is_array($info['trns']))
1651
+ {
1652
+ $trns = '';
1653
+ for($i=0;$i<count($info['trns']);$i++)
1654
+ $trns .= $info['trns'][$i].' '.$info['trns'][$i].' ';
1655
+ $this->_out('/Mask ['.$trns.']');
1656
+ }
1657
+ if(isset($info['smask']))
1658
+ $this->_out('/SMask '.($this->n+1).' 0 R');
1659
+ $this->_out('/Length '.strlen($info['data']).'>>');
1660
+ $this->_putstream($info['data']);
1661
+ $this->_out('endobj');
1662
+ // Soft mask
1663
+ if(isset($info['smask']))
1664
+ {
1665
+ $dp = '/Predictor 15 /Colors 1 /BitsPerComponent 8 /Columns '.$info['w'];
1666
+ $smask = array('w'=>$info['w'], 'h'=>$info['h'], 'cs'=>'DeviceGray', 'bpc'=>8, 'f'=>$info['f'], 'dp'=>$dp, 'data'=>$info['smask']);
1667
+ $this->_putimage($smask);
1668
+ }
1669
+ // Palette
1670
+ if($info['cs']=='Indexed')
1671
+ {
1672
+ $filter = ($this->compress) ? '/Filter /FlateDecode ' : '';
1673
+ $pal = ($this->compress) ? gzcompress($info['pal']) : $info['pal'];
1674
+ $this->_newobj();
1675
+ $this->_out('<<'.$filter.'/Length '.strlen($pal).'>>');
1676
+ $this->_putstream($pal);
1677
+ $this->_out('endobj');
1678
+ }
1679
+ }
1680
+
1681
+ function _putxobjectdict()
1682
+ {
1683
+ foreach($this->images as $image)
1684
+ $this->_out('/I'.$image['i'].' '.$image['n'].' 0 R');
1685
+ }
1686
+
1687
+ function _putresourcedict()
1688
+ {
1689
+ $this->_out('/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]');
1690
+ $this->_out('/Font <<');
1691
+ foreach($this->fonts as $font)
1692
+ $this->_out('/F'.$font['i'].' '.$font['n'].' 0 R');
1693
+ $this->_out('>>');
1694
+ $this->_out('/XObject <<');
1695
+ $this->_putxobjectdict();
1696
+ $this->_out('>>');
1697
+ }
1698
+
1699
+ function _putresources()
1700
+ {
1701
+ $this->_putfonts();
1702
+ $this->_putimages();
1703
+ // Resource dictionary
1704
+ $this->offsets[2] = strlen($this->buffer);
1705
+ $this->_out('2 0 obj');
1706
+ $this->_out('<<');
1707
+ $this->_putresourcedict();
1708
+ $this->_out('>>');
1709
+ $this->_out('endobj');
1710
+ }
1711
+
1712
+ function _putinfo()
1713
+ {
1714
+ $this->_out('/Producer '.$this->_textstring('FPDF '.FPDF_VERSION));
1715
+ if(!empty($this->title))
1716
+ $this->_out('/Title '.$this->_textstring($this->title));
1717
+ if(!empty($this->subject))
1718
+ $this->_out('/Subject '.$this->_textstring($this->subject));
1719
+ if(!empty($this->author))
1720
+ $this->_out('/Author '.$this->_textstring($this->author));
1721
+ if(!empty($this->keywords))
1722
+ $this->_out('/Keywords '.$this->_textstring($this->keywords));
1723
+ if(!empty($this->creator))
1724
+ $this->_out('/Creator '.$this->_textstring($this->creator));
1725
+ $this->_out('/CreationDate '.$this->_textstring('D:'.@date('YmdHis')));
1726
+ }
1727
+
1728
+ function _putcatalog()
1729
+ {
1730
+ $this->_out('/Type /Catalog');
1731
+ $this->_out('/Pages 1 0 R');
1732
+ if($this->ZoomMode=='fullpage')
1733
+ $this->_out('/OpenAction [3 0 R /Fit]');
1734
+ elseif($this->ZoomMode=='fullwidth')
1735
+ $this->_out('/OpenAction [3 0 R /FitH null]');
1736
+ elseif($this->ZoomMode=='real')
1737
+ $this->_out('/OpenAction [3 0 R /XYZ null null 1]');
1738
+ elseif(!is_string($this->ZoomMode))
1739
+ $this->_out('/OpenAction [3 0 R /XYZ null null '.sprintf('%.2F',$this->ZoomMode/100).']');
1740
+ if($this->LayoutMode=='single')
1741
+ $this->_out('/PageLayout /SinglePage');
1742
+ elseif($this->LayoutMode=='continuous')
1743
+ $this->_out('/PageLayout /OneColumn');
1744
+ elseif($this->LayoutMode=='two')
1745
+ $this->_out('/PageLayout /TwoColumnLeft');
1746
+ }
1747
+
1748
+ function _putheader()
1749
+ {
1750
+ $this->_out('%PDF-'.$this->PDFVersion);
1751
+ }
1752
+
1753
+ function _puttrailer()
1754
+ {
1755
+ $this->_out('/Size '.($this->n+1));
1756
+ $this->_out('/Root '.$this->n.' 0 R');
1757
+ $this->_out('/Info '.($this->n-1).' 0 R');
1758
+ }
1759
+
1760
+ function _enddoc()
1761
+ {
1762
+ $this->_putheader();
1763
+ $this->_putpages();
1764
+ $this->_putresources();
1765
+ // Info
1766
+ $this->_newobj();
1767
+ $this->_out('<<');
1768
+ $this->_putinfo();
1769
+ $this->_out('>>');
1770
+ $this->_out('endobj');
1771
+ // Catalog
1772
+ $this->_newobj();
1773
+ $this->_out('<<');
1774
+ $this->_putcatalog();
1775
+ $this->_out('>>');
1776
+ $this->_out('endobj');
1777
+ // Cross-ref
1778
+ $o = strlen($this->buffer);
1779
+ $this->_out('xref');
1780
+ $this->_out('0 '.($this->n+1));
1781
+ $this->_out('0000000000 65535 f ');
1782
+ for($i=1;$i<=$this->n;$i++)
1783
+ $this->_out(sprintf('%010d 00000 n ',$this->offsets[$i]));
1784
+ // Trailer
1785
+ $this->_out('trailer');
1786
+ $this->_out('<<');
1787
+ $this->_puttrailer();
1788
+ $this->_out('>>');
1789
+ $this->_out('startxref');
1790
+ $this->_out($o);
1791
+ $this->_out('%%EOF');
1792
+ $this->state = 3;
1793
+ }
1794
+ // End of class
1795
+ }
1796
+
1797
+ // Handle special IE contype request
1798
+ if(isset($_SERVER['HTTP_USER_AGENT']) && $_SERVER['HTTP_USER_AGENT']=='contype')
1799
+ {
1800
+ header('Content-Type: application/pdf');
1801
+ exit;
1802
+ }
views/ecp-page-template.php CHANGED
File without changes
views/ecp-single-template.php CHANGED
File without changes
views/events-list-load-widget-display.php CHANGED
File without changes
views/full-address.php CHANGED
File without changes
views/gridview.php CHANGED
@@ -11,28 +11,26 @@
11
  if ( !defined('ABSPATH') ) { die('-1'); }
12
  $tribe_ecp = TribeEvents::instance();
13
  ?>
14
- <div id="tribe-events-content" class="grid">
15
- <!-- This title is here for ajax loading - do not remove if you wish to use ajax switching between month views -->
16
- <title><?php wp_title(); ?></title>
17
  <div id='tribe-events-calendar-header' class="clearfix">
18
  <span class='tribe-events-month-nav'>
19
  <span class='tribe-events-prev-month'>
20
- <a href='<?php echo tribe_get_previous_month_link(); ?>'>
21
  &#x2190; <?php echo tribe_get_previous_month_text(); ?>
22
  </a>
23
  </span>
24
 
25
  <?php tribe_month_year_dropdowns( "tribe-events-" ); ?>
26
-
27
  <span class='tribe-events-next-month'>
28
- <a href='<?php echo tribe_get_next_month_link(); ?>'>
29
  <?php echo tribe_get_next_month_text(); ?> &#x2192;
30
  </a>
31
  <img src="<?php echo esc_url( admin_url( 'images/wpspin_light.gif' ) ); ?>" class="ajax-loading" id="ajax-loading" alt="" style='display: none'/>
32
  </span>
33
  </span>
34
 
35
- <span class='tribe-events-calendar-buttons'>
36
  <a class='tribe-events-button-off' href='<?php echo tribe_get_listview_link(); ?>'><?php _e('Event List', 'tribe-events-calendar'); ?></a>
37
  <a class='tribe-events-button-on' href='<?php echo tribe_get_gridview_link(); ?>'><?php _e('Calendar', 'tribe-events-calendar'); ?></a>
38
  </span>
11
  if ( !defined('ABSPATH') ) { die('-1'); }
12
  $tribe_ecp = TribeEvents::instance();
13
  ?>
14
+ <div id="tribe-events-content" class="grid" data-title="<?php wp_title(); ?>">
 
 
15
  <div id='tribe-events-calendar-header' class="clearfix">
16
  <span class='tribe-events-month-nav'>
17
  <span class='tribe-events-prev-month'>
18
+ <a href='<?php echo tribe_get_previous_month_link(); ?>' class="tribe-pjax">
19
  &#x2190; <?php echo tribe_get_previous_month_text(); ?>
20
  </a>
21
  </span>
22
 
23
  <?php tribe_month_year_dropdowns( "tribe-events-" ); ?>
24
+
25
  <span class='tribe-events-next-month'>
26
+ <a href='<?php echo tribe_get_next_month_link(); ?>' class="tribe-pjax">
27
  <?php echo tribe_get_next_month_text(); ?> &#x2192;
28
  </a>
29
  <img src="<?php echo esc_url( admin_url( 'images/wpspin_light.gif' ) ); ?>" class="ajax-loading" id="ajax-loading" alt="" style='display: none'/>
30
  </span>
31
  </span>
32
 
33
+ <span class='tribe-events-calendar-buttons'>
34
  <a class='tribe-events-button-off' href='<?php echo tribe_get_listview_link(); ?>'><?php _e('Event List', 'tribe-events-calendar'); ?></a>
35
  <a class='tribe-events-button-on' href='<?php echo tribe_get_gridview_link(); ?>'><?php _e('Calendar', 'tribe-events-calendar'); ?></a>
36
  </span>
views/list.php CHANGED
@@ -111,6 +111,7 @@ if ( !defined('ABSPATH') ) { die('-1'); }
111
  </div> <!-- End post -->
112
  <?php endwhile;// posts ?>
113
  <?php else :?>
 
114
  <?php
115
  $tribe_ecp = TribeEvents::instance();
116
  if ( is_tax( $tribe_ecp->get_event_taxonomy() ) ) {
@@ -134,7 +135,7 @@ if ( !defined('ABSPATH') ) { die('-1'); }
134
  <?php _e('No previous events' , 'tribe-events-calendar');
135
  echo !empty($is_cat_message) ? $is_cat_message : "."; ?>
136
  <?php } ?>
137
-
138
  <?php endif; ?>
139
 
140
 
111
  </div> <!-- End post -->
112
  <?php endwhile;// posts ?>
113
  <?php else :?>
114
+ <div class="tribe-events-no-entry">
115
  <?php
116
  $tribe_ecp = TribeEvents::instance();
117
  if ( is_tax( $tribe_ecp->get_event_taxonomy() ) ) {
135
  <?php _e('No previous events' , 'tribe-events-calendar');
136
  echo !empty($is_cat_message) ? $is_cat_message : "."; ?>
137
  <?php } ?>
138
+ </div>
139
  <?php endif; ?>
140
 
141
 
views/single.php CHANGED
@@ -91,7 +91,7 @@ if ( !defined('ABSPATH') ) { die('-1'); }
91
  <?php if( tribe_embed_google_map( get_the_ID() ) ) : ?>
92
  <?php if( tribe_address_exists( get_the_ID() ) ) { echo tribe_get_embedded_map(); } ?>
93
  <?php endif; ?>
94
- <div class="entry">
95
  <?php
96
  if ( function_exists('has_post_thumbnail') && has_post_thumbnail() ) {?>
97
  <?php the_post_thumbnail(); ?>
91
  <?php if( tribe_embed_google_map( get_the_ID() ) ) : ?>
92
  <?php if( tribe_address_exists( get_the_ID() ) ) { echo tribe_get_embedded_map(); } ?>
93
  <?php endif; ?>
94
+ <div class="entry-content">
95
  <?php
96
  if ( function_exists('has_post_thumbnail') && has_post_thumbnail() ) {?>
97
  <?php the_post_thumbnail(); ?>
views/table-mini.php CHANGED
File without changes
views/table.php CHANGED
File without changes