Skip to content

Commit f63d8fb

Browse files
author
Andras Guseo
authored
Initial commit
Index.php uploaded
0 parents  commit f63d8fb

File tree

1 file changed

+354
-0
lines changed

1 file changed

+354
-0
lines changed

index.php

Lines changed: 354 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,354 @@
1+
<?php
2+
/**
3+
* Plugin Name: The Events Calendar Extension: Relabeler
4+
* Description: Adds option to WP Admin > Events > Display for altering labels. For example, you can change the word "Events" to a different word such as "Gigs".
5+
* Version: 1.0.1
6+
* Extension Class: Tribe__Extension__Relabeler
7+
* Author: Modern Tribe, Inc.
8+
* Author URI: http://m.tri.be/1971
9+
* License: GPLv2 or later
10+
* License URI: https://www.gnu.org/licenses/gpl-2.0.html
11+
*/
12+
13+
// Do not load directly.
14+
if ( ! defined( 'ABSPATH' ) ) {
15+
die( '-1' );
16+
}
17+
18+
// Do not load unless Tribe Common is fully loaded.
19+
if ( ! class_exists( 'Tribe__Extension' ) ) {
20+
return;
21+
}
22+
23+
/**
24+
* Extension main class, class begins loading on init() function.
25+
*/
26+
class Tribe__Extension__Relabeler extends Tribe__Extension {
27+
28+
/**
29+
* Caches labels that are retrieved from the database.
30+
*
31+
* @var array {
32+
* @type $option_name string Full text for the altered label
33+
* }
34+
*/
35+
protected $label_cache = array();
36+
37+
/**
38+
* Setup the Extension's properties.
39+
*
40+
* This always executes even if the required plugins are not present.
41+
*/
42+
public function construct() {
43+
$this->add_required_plugin( 'Tribe__Events__Main' );
44+
$this->set_url( 'https://theeventscalendar.com/extensions/extensions/change-labels-events-venues-organizers/' );
45+
$this->set_version( '1.0.1' );
46+
}
47+
48+
/**
49+
* Extension initialization and hooks.
50+
*/
51+
public function init() {
52+
// Settings area.
53+
if ( ! class_exists( 'Tribe__Extension__Settings_Helper' ) ) {
54+
require_once dirname( __FILE__ ) . '/src/Tribe/Settings_Helper.php';
55+
}
56+
add_action( 'admin_init', array( $this, 'add_settings' ) );
57+
58+
// Events.
59+
add_filter( 'tribe_event_label_singular', array( $this, 'get_event_single' ) );
60+
add_filter( 'tribe_event_label_singular_lowercase', array( $this, 'get_event_single_lowercase' ) );
61+
add_filter( 'tribe_event_label_plural', array( $this, 'get_event_plural' ) );
62+
add_filter( 'tribe_event_label_plural_lowercase', array( $this, 'get_event_plural_lowercase' ) );
63+
64+
// Venues.
65+
add_filter( 'tribe_venue_label_singular', array( $this, 'get_venue_single' ) );
66+
add_filter( 'tribe_venue_label_singular_lowercase', array( $this, 'get_venue_single_lowercase' ) );
67+
add_filter( 'tribe_venue_label_plural', array( $this, 'get_venue_plural' ) );
68+
add_filter( 'tribe_venue_label_plural_lowercase', array( $this, 'get_venue_plural_lowercase' ) );
69+
70+
// Organizers.
71+
add_filter( 'tribe_organizer_label_singular', array( $this, 'get_organizer_single' ) );
72+
add_filter( 'tribe_organizer_label_singular_lowercase', array( $this, 'get_organizer_single_lowercase' ) );
73+
add_filter( 'tribe_organizer_label_plural', array( $this, 'get_organizer_plural' ) );
74+
add_filter( 'tribe_organizer_label_plural_lowercase', array( $this, 'get_organizer_plural_lowercase' ) );
75+
}
76+
77+
/**
78+
* Adds settings options
79+
*/
80+
public function add_settings() {
81+
$setting_helper = new Tribe__Settings_Helper();
82+
83+
$fields = array(
84+
'labels_heading' => array(
85+
'type' => 'html',
86+
'html' => '<h3>' . esc_html__( 'Labels', 'tribe-extension' ) . '</h3>',
87+
),
88+
'labels_helper_text' => array(
89+
'type' => 'html',
90+
'html' => '<p>' . esc_html__( 'The following fields allow you to change the default labels. Inputting something other than the default will change that word everywhere it appears.', 'tribe-extension' ) . '</p>',
91+
),
92+
'label_event_single' => array(
93+
'type' => 'text',
94+
'label' => esc_html__( 'Events', 'the-events-calendar' ),
95+
'default' => esc_attr__( 'Events', 'the-events-calendar' ),
96+
'tooltip' => esc_html__( 'Singular label for Events.', 'tribe-extension' ),
97+
'validation_type' => 'html',
98+
),
99+
'label_event_single_lowercase' => array(
100+
'type' => 'text',
101+
'label' => esc_html__( 'event', 'the-events-calendar' ),
102+
'default' => esc_attr__( 'event', 'the-events-calendar' ),
103+
'tooltip' => sprintf(
104+
esc_html__( 'Lowercase singular label for Events. You might wish to also modify the "Events URL Slug" found in the %s events settings tab.', 'tribe-extension' ),
105+
$this->general_settings_tab_link()
106+
),
107+
'validation_type' => 'html',
108+
),
109+
'label_event_plural' => array(
110+
'type' => 'text',
111+
'label' => esc_html__( 'Events', 'the-events-calendar' ),
112+
'default' => esc_attr__( 'Events', 'the-events-calendar' ),
113+
'tooltip' => esc_html__( 'Plural label for Events.', 'tribe-extension' ),
114+
'validation_type' => 'html',
115+
),
116+
'label_event_plural_lowercase' => array(
117+
'type' => 'text',
118+
'label' => esc_html__( 'events', 'the-events-calendar' ),
119+
'default' => esc_attr__( 'events', 'the-events-calendar' ),
120+
'tooltip' => sprintf(
121+
esc_html__( 'Lowercase plural label for Events. You might wish to also modify the "Single Event URL Slug" found in the %s events settings tab.','tribe-extension' ),
122+
$this->general_settings_tab_link()
123+
),
124+
'validation_type' => 'html',
125+
),
126+
'label_venue_single' => array(
127+
'type' => 'text',
128+
'label' => esc_html__( 'Venue', 'the-events-calendar' ),
129+
'default' => esc_attr__( 'Venue', 'the-events-calendar' ),
130+
'tooltip' => esc_html__( 'Singular label for Venues.', 'tribe-extension' ),
131+
'validation_type' => 'html',
132+
),
133+
'label_venue_single_lowercase' => array(
134+
'type' => 'text',
135+
'label' => esc_html__( 'venue', 'the-events-calendar' ),
136+
'default' => esc_attr__( 'venue', 'the-events-calendar' ),
137+
'tooltip' => esc_html__( 'Lowercase singular label for Venues.', 'tribe-extension' ),
138+
'validation_type' => 'html',
139+
),
140+
'label_venue_plural' => array(
141+
'type' => 'text',
142+
'label' => esc_html__( 'Venues', 'the-events-calendar' ),
143+
'default' => esc_attr__( 'Venues', 'the-events-calendar' ),
144+
'tooltip' => esc_html__( 'Plural label for Venues.', 'tribe-extension' ),
145+
'validation_type' => 'html',
146+
),
147+
'label_venue_plural_lowercase' => array(
148+
'type' => 'text',
149+
'label' => esc_html__( 'venues', 'the-events-calendar' ),
150+
'default' => esc_attr__( 'venues', 'the-events-calendar' ),
151+
'tooltip' => esc_html__( 'Lowercase plural label for Venues.', 'tribe-extension' ),
152+
'validation_type' => 'html',
153+
),
154+
'label_organizer_single' => array(
155+
'type' => 'text',
156+
'label' => esc_html__( 'Organizer', 'the-events-calendar' ),
157+
'default' => esc_attr__( 'Organizer', 'the-events-calendar' ),
158+
'tooltip' => esc_html__( 'Singular label for Organizers.', 'tribe-extension' ),
159+
'validation_type' => 'html',
160+
),
161+
'label_organizer_single_lowercase' => array(
162+
'type' => 'text',
163+
'label' => esc_html__( 'organizer', 'the-events-calendar' ),
164+
'default' => esc_attr__( 'organizer', 'the-events-calendar' ),
165+
'tooltip' => esc_html__( 'Lowercase singular label for Organizers.', 'tribe-extension' ),
166+
'validation_type' => 'html',
167+
),
168+
'label_organizer_plural' => array(
169+
'type' => 'text',
170+
'label' => esc_html__( 'Organizers', 'the-events-calendar' ),
171+
'default' => esc_attr__( 'Organizers', 'the-events-calendar' ),
172+
'tooltip' => esc_html__( 'Plural label for Organizers.', 'tribe-extension' ),
173+
'validation_type' => 'html',
174+
),
175+
'label_organizer_plural_lowercase' => array(
176+
'type' => 'text',
177+
'label' => esc_html__( 'organizers', 'the-events-calendar' ),
178+
'default' => esc_attr__( 'organizers', 'the-events-calendar' ),
179+
'tooltip' => esc_html__( 'Lowercase plural label for Organizers.', 'tribe-extension' ),
180+
'validation_type' => 'html',
181+
),
182+
);
183+
184+
$setting_helper->add_fields(
185+
$fields,
186+
'display',
187+
'tribeEventsDateFormatSettingsTitle',
188+
true
189+
);
190+
}
191+
192+
/**
193+
* Get an HTML link to the General settings tab
194+
*
195+
* @return string HTML link element to the general settings tab
196+
*/
197+
protected function general_settings_tab_link() {
198+
$url = Tribe__Settings::instance()->get_url( array( 'tab' => 'general' ) );
199+
200+
return sprintf(
201+
'<a href="%2$s">%1$s</a>',
202+
esc_html__( 'General', 'tribe-extension' ),
203+
esc_url( $url )
204+
);
205+
}
206+
207+
/**
208+
* Gets the label from the database and caches it
209+
*
210+
* @param $key string Option key for the label.
211+
* @param $default string Value to return if none set.
212+
*
213+
* @return string|null
214+
*/
215+
public function get_label( $key, $default = null ) {
216+
if ( ! isset( $this->label_cache[ $key ] ) ) {
217+
$this->label_cache[ $key ] = tribe_get_option( $key, $default );
218+
}
219+
220+
return $this->label_cache[ $key ];
221+
}
222+
223+
/**
224+
* Gets the label
225+
*
226+
* @param $label string
227+
*
228+
* @return string
229+
*/
230+
public function get_event_single( $label ) {
231+
return $this->get_label( 'label_event_single', $label );
232+
}
233+
234+
/**
235+
* Gets the label
236+
*
237+
* @param $label string
238+
*
239+
* @return string
240+
*/
241+
public function get_event_single_lowercase( $label ) {
242+
return $this->get_label( 'label_event_single_lowercase', $label );
243+
}
244+
245+
/**
246+
* Gets the label
247+
*
248+
* @param $label string
249+
*
250+
* @return string
251+
*/
252+
public function get_event_plural( $label ) {
253+
return $this->get_label( 'label_event_plural', $label );
254+
}
255+
256+
/**
257+
* Gets the label
258+
*
259+
* @param $label string
260+
*
261+
* @return string
262+
*/
263+
public function get_event_plural_lowercase( $label ) {
264+
return $this->get_label( 'label_event_plural_lowercase', $label );
265+
}
266+
267+
/**
268+
* Gets the label
269+
*
270+
* @param $label string
271+
*
272+
* @return string
273+
*/
274+
public function get_venue_single( $label ) {
275+
return $this->get_label( 'label_venue_single', $label );
276+
}
277+
278+
/**
279+
* Gets the label
280+
*
281+
* @param $label string
282+
*
283+
* @return string
284+
*/
285+
public function get_venue_single_lowercase( $label ) {
286+
return $this->get_label( 'label_venue_single_lowercase', $label );
287+
}
288+
289+
/**
290+
* Gets the label
291+
*
292+
* @param $label string
293+
*
294+
* @return string
295+
*/
296+
public function get_venue_plural( $label ) {
297+
return $this->get_label( 'label_venue_plural', $label );
298+
}
299+
300+
/**
301+
* Gets the label
302+
*
303+
* @param $label string
304+
*
305+
* @return string
306+
*/
307+
public function get_venue_plural_lowercase( $label ) {
308+
return $this->get_label( 'label_venue_plural_lowercase', $label );
309+
}
310+
311+
/**
312+
* Gets the label
313+
*
314+
* @param $label string
315+
*
316+
* @return string
317+
*/
318+
public function get_organizer_single( $label ) {
319+
return $this->get_label( 'label_organizer_single', $label );
320+
}
321+
322+
/**
323+
* Gets the label
324+
*
325+
* @param $label string
326+
*
327+
* @return string
328+
*/
329+
public function get_organizer_single_lowercase( $label ) {
330+
return $this->get_label( 'label_organizer_single_lowercase', $label );
331+
}
332+
333+
/**
334+
* Gets the label
335+
*
336+
* @param $label string
337+
*
338+
* @return string
339+
*/
340+
public function get_organizer_plural( $label ) {
341+
return $this->get_label( 'label_organizer_plural', $label );
342+
}
343+
344+
/**
345+
* Gets the label
346+
*
347+
* @param $label string
348+
*
349+
* @return string
350+
*/
351+
public function get_organizer_plural_lowercase( $label ) {
352+
return $this->get_label( 'label_organizer_plural_lowercase', $label );
353+
}
354+
}

0 commit comments

Comments
 (0)