forked from guiltar/DevKit
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathaddon-XenDevTools.xml
866 lines (776 loc) · 55.3 KB
/
addon-XenDevTools.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
<?xml version="1.0" encoding="utf-8"?>
<addon addon_id="XenDevTools" title="Xen Developer Tools" version_string="1.4.5 ALPHA 2" version_id="1040512" url="http://xenresources.com" install_callback_class="XenDevTools_Install" install_callback_method="installer" uninstall_callback_class="" uninstall_callback_method="">
<admin_navigation>
<navigation navigation_id="contentTypeManagement" parent_navigation_id="development" display_order="15" link="" admin_permission_id="dev" debug_only="1" hide_no_children="0"/>
<navigation navigation_id="listContentTypes" parent_navigation_id="contentTypeManagement" display_order="10" link="content-types" admin_permission_id="dev" debug_only="1" hide_no_children="0"/>
</admin_navigation>
<admin_permissions/>
<admin_style_properties/>
<admin_templates>
<template title="addon_builder_index"><![CDATA[<xen:title>{xen:phrase addon_builder}</xen:title>
<xen:navigation>
<xen:breadcrumb href="{xen:adminlink 'add-ons/build'}">{xen:phrase addon_builder}</xen:breadcrumb>
</xen:navigation>
<xen:require css="filter_list.css" />
<xen:require js="js/xenforo/filter_list.js" />
<xen:if is="{$addOns}">
<div style="margin-bottom: 15px;">{xen:phrase click_one_of_the_installed_addons_below_explain}</div>
<h2 class="subHeading">
{xen:phrase choose_an_addon}
</h2>
<ol class="FilterList">
<xen:foreach loop="$addOns" key="$addOnId" value="$addOn">
<xen:listitem id="{$addOn.addon_id}"
label="{$addOn.title}"
snippet="{$addOn.version_string}"
href="{xen:adminlink 'add-ons/build', $addOn}"
linkclass="OverlayTrigger"
tooltip="{xen:phrase add_on_id_version_id, 'addon_id={$addOn.addon_id}', 'version_id={$addOn.version_id}'}">
<xen:popup title="{xen:phrase controls}" ctrlclass="toolsCtrl">
<xen:link href="{xen:adminlink 'add-ons/edit', $addOn}" displayif="{$canAccessDevelopment}">{xen:phrase edit}</xen:link>
<xen:link href="{xen:adminlink 'add-ons/export', $addOn}" displayif="{$canAccessDevelopment}">{xen:phrase export}</xen:link>
</xen:popup>
</xen:listitem>
</xen:foreach>
</ol>
<p class="sectionFooter">{xen:phrase showing_x_of_y_items, 'count=<span class="FilterListCount">{xen:count $addOns}</span>', 'total={xen:count $addOns}'}</p>
<xen:else />
<div class="noResults">{xen:phrase no_add_ons_have_been_installed_yet}</div>
</xen:if>]]></template>
<template title="addon_builder_overlay"><![CDATA[<xen:title>{xen:phrase build_add_on}: {$addOn.title}</xen:title>
<xen:form action="{xen:adminlink 'add-ons/builder', $addOn}">
<xen:textboxunit label="{xen:phrase addon_build_location}:" name="build_location" value="{$buildLocation}" explain="{xen:phrase build_path_trailing_slash}" />
<xen:controlunit label="{xen:phrase build_from_which_directories}:">
<ul>
<li>
<label>
<input type="checkbox" name="library_check" value="1" class="Disabler" id="dir_library" {xen:checked $addOn.libraryDirExists} />
{xen:phrase library_directory} (/library/...):
</label>
<div class="libraryDirectory" id="dir_library_Disabler">
<xen:textbox name="library_dir" value="{$addOn.addon_id_library}" />
</div>
</li>
<li>
<label>
<input type="checkbox" name="js_check" value="1" class="Disabler" id="dir_js" {xen:checked $addOn.jsDirExists} />
{xen:phrase js_directory} (/js/...):
</label>
<div class="jsDirectory" id="dir_js_Disabler">
<xen:textbox name="js_dir" value="{$addOn.addon_id_js}" />
<label for="js_min"> <input type="checkbox" name="js_min" value="1" class="Disabler" id="js_min" /> {xen:phrase addon_builder_minify_js}</label>
</div>
</li>
<li>
<label>
<input type="checkbox" name="styles_check" value="1" class="Disabler" id="dir_styles" {xen:checked $addOn.styleDirExists} />
{xen:phrase styles_directory} (/styles/...):
</label>
<div class="stylesDirectory" id="dir_styles_Disabler">
<xen:textbox name="styles_dir" value="{$addOn.addon_id_style}" />
</div>
</li>
<li>
<label>
<input type="checkbox" name="custom_files_check" value="1" class="Disabler" id="files_custom" {xen:checked $addOn.customFiles} />
{xen:phrase custom_files}:
</label>
<div class="customFiles" id="files_custom_Disabler">
<xen:textbox name="custom_files" value="{$addOn.customFiles}" rows="2" />
<p class="explain">{xen:phrase custom_files_explain}</p>
</div>
</li>
</ul>
</xen:controlunit>
<xen:submitunit save="{xen:phrase build_add_on}">
<input type="submit" name="download" value="{xen:phrase build_and_download}" class="button OverlayCloser" />
</xen:submitunit>
<input type="hidden" name="_xfConfirm" value="1" />
</xen:form>]]></template>
<template title="content_type_management_content_type_delete"><![CDATA[<xen:title>{xen:phrase confirm_deletion_of_content_type}: {$contentType.content_type}</xen:title>
<xen:h1>{xen:phrase confirm_deletion_of_content_type}</xen:h1>
<xen:navigation>
<xen:breadcrumb href="{xen:adminlink 'content-types/edit', $contentType}">{$contentType.content_type}</xen:breadcrumb>
</xen:navigation>
<xen:require css="public:delete_confirmation.css" />
<xen:form action="{xen:adminlink 'content-types/delete', $contentType}" class="deleteConfirmForm formOverlay AutoValidator" data-redirect="on">
<p>{xen:phrase please_confirm_that_you_want_to_delete_following_content_type}:</p>
<strong><a href="{xen:adminlink 'content-types/edit', $contentType}">{$contentType.content_type}</a></strong>
<xen:submitunit save="{xen:phrase delete_content_type}" />
<input type="hidden" name="_xfConfirm" value="1" />
</xen:form>]]></template>
<template title="content_type_management_content_type_edit"><![CDATA[<xen:title>{xen:if '{$contentType.content_type}', '{xen:phrase edit_content_type}: {$contentType.content_type}', '{xen:phrase add_content_type}'}</xen:title>
<xen:form action="{xen:adminlink content-types/save, $contentType}" class="AutoValidator" data-redirect="on">
<xen:textboxunit name="new_content_type" value="{$contentType.content_type}" label="{xen:phrase name}:" data-livetitletemplate="{xen:if {$contentType.content_type},
'{xen:phrase edit_content_type}: <em>%s</em>',
'{xen:phrase add_content_type}: <em>%s</em>'}" />
<xen:include template="helper_addon_unit" />
<xen:submitunit save="{xen:phrase save_content_type}">
<xen:if is="{$contentType.content_type}">
<input type="button" value="{xen:phrase delete_content_type}..." accesskey="d" class="button OverlayTrigger"
data-href="{xen:adminlink 'content-types/delete', $contentType}" />
</xen:if>
</xen:submitunit>
</xen:form>]]></template>
<template title="content_type_management_content_type_field_delete"><![CDATA[<xen:title>{xen:phrase confirm_deletion_of_content_type_field}: {$contentTypeField.field_value} ({$contentTypeField.content_type})</xen:title>
<xen:h1>{xen:phrase confirm_deletion_of_content_type_field}</xen:h1>
<xen:navigation>
<xen:breadcrumb href="{xen:adminlink 'content-types/delete-field', $contentType, 'field={$contentTypeField.field_name}'}">{$contentTypeField.field_value}</xen:breadcrumb>
</xen:navigation>
<xen:require css="public:delete_confirmation.css" />
<xen:form action="{xen:adminlink 'content-types/delete-field', $contentType, 'field={$contentTypeField.field_name}'}" class="deleteConfirmForm formOverlay AutoValidator" data-redirect="on">
<p>{xen:phrase please_confirm_that_you_want_to_delete_following_content_type_field}:</p>
<strong><a href="{xen:adminlink 'content-types/edit-field', $contentType, 'field={$contentTypeField.field_name}'}">{$contentTypeField.field_value}</a></strong>
<xen:submitunit save="{xen:phrase delete_content_type_field}" />
<input type="hidden" name="_xfConfirm" value="1" />
</xen:form>]]></template>
<template title="content_type_management_content_type_field_edit"><![CDATA[<xen:title>{xen:if '{$contentTypeField.field_value}', '{xen:phrase edit_content_type_field}: {$contentTypeField.field_value} ({$contentType.content_type})', '{xen:phrase add_content_type_field} ({$contentType.content_type})'}</xen:title>
<xen:form action="{xen:adminlink content-types/save-field, $contentType, 'field={$contentTypeField.field_name}'}" class="AutoValidator" data-redirect="on">
<xen:selectunit name="field_name" value="{$contentTypeField.field_name}" label="{xen:phrase content_type_field_name}:">
<xen:options source="$contentTypeFieldNames" />
</xen:selectunit>
<xen:textboxunit name="field_value" value="{$contentTypeField.field_value}" label="{xen:phrase content_type_field_value}:" data-livetitletemplate="{xen:if {$contentTypeField.field_value},
'{xen:phrase edit_content_type_field}: <em>%s</em> ({$contentType.content_type})',
'{xen:phrase add_content_type_field}: <em>%s</em> ({$contentType.content_type})'}" />
<xen:submitunit save="{xen:phrase save_content_type_field}">
<xen:if is="{$contentTypeField.field_name}">
<input type="button" value="{xen:phrase delete_content_type_field}..." accesskey="d" class="button OverlayTrigger"
data-href="{xen:adminlink 'content-types/delete-field', $contentType, 'field={$contentTypeField.field_name}'}" />
</xen:if>
</xen:submitunit>
</xen:form>]]></template>
<template title="content_type_management_generate_sql"><![CDATA[<xen:title>{xen:phrase content_type_generate_sql_code}: {$contentType.content_type}</xen:title>
<div class="xenForm formOverlay">
<xen:textboxunit label="{xen:phrase content_type_generate_sql_code}:" readonly="true" name="sql" value="{$sqlCode}" rows="4" inputclass="Elastic" class="fullWidth surplusLabel" />
</div>]]></template>
<template title="content_type_management_index"><![CDATA[<xen:title>{xen:phrase content_types}</xen:title>
<xen:topctrl>
<a href="{xen:adminlink 'content-types/add'}" class="button">+ {xen:phrase create_new_content_type}</a>
<a href="{xen:adminlink 'content-types/rebuild'}" class="button">{xen:phrase rebuild_content_types}</a>
</xen:topctrl>
<link href="//netdna.bootstrapcdn.com/font-awesome/4.0.1/css/font-awesome.css" rel="stylesheet">
<xen:require css="content_type_management_index.css" />
<xen:require css="filter_list.css" />
<xen:require js="js/xenforo/filter_list.js" />
<xen:form action="{xen:adminlink content-types}" class="section">
<h2 class="subHeading">
<xen:include template="filter_list_controls" />
{xen:phrase content_types}
</h2>
<ul class="FilterList">
<xen:if is="{$contentTypes}">
<li>
<ol>
<xen:foreach loop="$contentTypes" key="$contentTypeId" value="$contentType">
<h3 class="textHeading">{$contentType.content_type} ({xen:phrase add_on}: {xen:if {$contentType.addon_id}, {$contentType.addon_id}, {xen:phrase n_a}})
<a href="{xen:adminlink 'content-types/generate-sql', $contentType}" class="headingLink OverlayTrigger" title="{xen:phrase content_type_generate_sql_code}...">
<i class="fa fa-code"></i> <span> {xen:phrase content_type_generate_sql_code}</span>
</a>
<a href="{xen:adminlink 'content-types/edit', $contentType}" class="headingLink OverlayTrigger" title="{xen:phrase edit_content_type}...">
<i class="fa fa-pencil"></i> <span>{xen:phrase edit_content_type}</span>
</a>
<a href="{xen:adminlink 'content-types/add-field', $contentType}" class="headingLink OverlayTrigger" title="{xen:phrase content_type_add_field}...">
<i class="fa fa-plus"></i> <span> {xen:phrase content_type_add_field}</span>
</a>
</h3>
<xen:foreach loop="$contentType.fields" key="$fieldId" value="$field">
<xen:listitem
id="{$contentTypeId}_{$fieldId}"
label="{$field}"
href="{xen:adminlink 'content-types/edit-field', $contentType, 'field={$fieldId}'}"
linkclass="OverlayTrigger"
snippet="{$fieldId}"
delete="{xen:adminlink 'content-types/delete-field', $contentType, 'field={$fieldId}'}" />
</xen:foreach>
</xen:foreach>
</ol>
</li>
</xen:if>
</ul>
<p class="sectionFooter">{xen:phrase showing_x_of_y_items, 'count=<span class="FilterListCount">{xen:number $contentTypeFieldsCount}</span>', 'total={xen:number $contentTypeFieldsCount}'}</p>
</xen:form>]]></template>
<template title="content_type_management_index.css"><![CDATA[.headingLink
{
float: right;
margin-left: 10px;
}]]></template>
<template title="devkit_phrase_filters"><![CDATA[<div class="Popup">
<span class="muted">{xen:phrase add_on}:</span> <a rel="Menu">{xen:if $addOn, '{$addOn.title}', 'All'}</a>
<div class="Menu">
<div class="primaryContent menuHeader"><h3>{xen:phrase add_ons}</h3></div>
<ul class="secondaryContent blockLinksList">
<li><a href="{xen:adminlink 'languages/phrases', $language, 'addon_id=All'}"><span>All</span></a></li>
<li><a href="{xen:adminlink 'languages/phrases', $language, 'addon_id=XenForo'}"><span>XenForo</span></a></li>
<xen:foreach loop="$addOns" key="$_addOnsId" value="$_addOn">
<li><a href="{xen:adminlink 'languages/phrases', $language, 'addon_id={$_addOn.addon_id}'}"><span>{$_addOn.title}</span></a></li>
</xen:foreach>
</ul>
</div>
</div>
<div class="Popup">
<span class="muted">{xen:phrase phrases}:</span> <a rel="Menu">{xen:if $phraseFilterTitle, '{$phraseFilterTitle}', {xen:phrase devkit_existing}}</a>
<div class="Menu">
<div class="primaryContent menuHeader"><h3>{xen:phrase phrases}</h3></div>
<ul class="secondaryContent blockLinksList">
<li><a href="{xen:adminlink 'languages/phrases', $language, 'phrase_filter=existing'}"><span>{xen:phrase devkit_existing}</span></a></li>
<xen:if is="{$language.language_id}">
<li><a href="{xen:adminlink 'languages/phrases', $language, 'phrase_filter=untranslated'}"><span>Untranslated</span></a></li>
<xen:else />
<li><a href="{xen:adminlink 'languages/phrases', $language, 'phrase_filter=found'}"><span>Found in code</span></a></li>
<li><a href="{xen:adminlink 'languages/phrases', $language, 'phrase_filter=undefined'}"><span>Undefined</span></a></li>
</xen:if>
</ul>
</div>
</div>]]></template>
<template title="xendevtools_install_upgrade"><![CDATA[<xen:title>{xen:phrase xendevtools_install_upgrade}</xen:title>
<ul class="tabs">
<li class="{xen:if '{$type} == "" OR {$type} == "file"', 'active'}"><a href="{xen:adminlink 'add-ons/install-upgrade'}">{xen:phrase xendevtools_install_from_file}</a></li>
<li class="{xen:if '{$type} == "server"', 'active'}"><a href="{xen:adminlink 'add-ons/install-upgrade', '', 'type=server'}">{xen:phrase xendevtools_install_from_server}</a></li>
<li class="{xen:if '{$type} == "xenforo"', 'active'}"><a href="{xen:adminlink 'add-ons/install-upgrade', '', 'type=xenforo'}">{xen:phrase xendevtools_upgrade_xenforo}</a></li>
</ul>
<xen:form action="{xen:adminlink 'add-ons/do-install-upgrade'}" method="post" upload="true">
<xen:if is="{$type} == 'file'">
<xen:include template="xendevtools_install_upgrade_file" />
</xen:if>
<xen:if is="{$type} == 'server'">
<xen:include template="xendevtools_install_upgrade_server" />
</xen:if>
<xen:if is="{$type} == 'xenforo'">
<xen:include template="xendevtools_install_upgrade_xenforo" />
</xen:if>
<xen:submitunit save="{xen:phrase xendevtools_install_upgrade}" />
<input type="hidden" name="type" value="{$type}" />
</xen:form>]]></template>
<template title="xendevtools_install_upgrade_file"><![CDATA[<xen:controlunit label="{xen:phrase xendevtools_install_from_file}:" hint="{xen:phrase xendevtools_select_multiple_files}">
<input type="file" multiple="true" name="from_file[]" class="textCtrl" />
<p class="explain">{xen:phrase xendevtools_allowed_file_types}: {xen:helper implode, ', ', $fileTypes}</p>
</xen:controlunit>]]></template>
<template title="xendevtools_install_upgrade_xenforo"><![CDATA[<xen:textboxunit label="{xen:phrase xendevtools_xenforo_username}:" name="xenforo_username" value="{$xenOptions.xendevCustUsername}" />
<xen:passwordunit label="{xen:phrase xendevtools_xenforo_password}:" name="xenforo_password" value="{$xenOptions.xendevCustPassword}" hint="{xen:phrase xendevtools_customer_area_not_forum}" />
<xen:textboxunit label="{xen:phrase xendevtools_xenforo_license_key}:" name="xenforo_license" value="{$xenOptions.xendevCustLicense}" />
<xen:checkboxunit label="">
<xen:option name="save_license" selected="true">{xen:phrase xendevtools_save_update_credentials}</xen:option>
<xen:option name="unsupported" selected="true">{xen:phrase xendevtools_upgrade_to_latest_unsupported_release}</xen:option>
</xen:checkboxunit>
<xen:if is="{$loadUpgradeOverlay}">
<script>
this.$trigger = { href : '{xen:adminlink add-ons/upgrade-pending }' };
this.$options = {};
this.OverlayLoader = new XenForo.OverlayLoader($(this.$trigger), false, this.$options);
this.OverlayLoader.load();
</script>
</xen:if>]]></template>
<template title="xendevtools_install_upgrade_xenforo_pending"><![CDATA[<xen:title>{xen:phrase xendevtools_upgrade_xenforo_version}: {$downloadDetails.version_string}</xen:title>
<xen:require css="public:delete_confirmation.css" />
<xen:form action="{xen:adminlink 'add-ons/upgrade-pending'}" class="deleteConfirmForm formOverlay">
<p>{xen:phrase xendevtools_confirm_upgrade_to_following_version}:</p>
<strong>{$downloadDetails.version_string}</strong>
<dl class="ctrlUnit submitUnit">
<dt></dt>
<dd>
<input type="submit" class="button primary" value="{xen:phrase upgrade}" />
<a class="button OverlayOnly OverlayCloser" href="{xen:adminlink 'add-ons/upgrade-pending', '', 'clear=true'}">{xen:phrase cancel}</a>
<input type="reset" style="display: none;">
</dd>
</dl>
<input type="hidden" name="_xfConfirm" value="1" />
</xen:form>]]></template>
<template title="xendevtools_switch"><![CDATA[<a href="{xen:link 'dev/switch'}" class="OverlayTrigger modLink concealed">
{xen:raw $debugModePhrase}
</a>]]></template>
</admin_templates>
<admin_template_modifications>
<modification template="addon_list" modification_key="AddOnBuilder_addon_list_build" description="Adds a build link to each list item" execution_order="10" enabled="1" action="str_replace">
<find><![CDATA[</xen:popup>]]></find>
<replace><![CDATA[$0
<xen:html>
<a href="{xen:adminlink add-ons/build, $addOn}" class="secondaryContent OverlayTrigger" data-cacheoverlay="false">{xen:phrase build}...</a>
</xen:html>]]></replace>
</modification>
<modification template="base_template_modification_edit" modification_key="XenDevTools_base_template_modification_edit" description="Adds the AdvancedTextArea class to textareas in the Template Modification Edit screen." execution_order="10" enabled="1" action="str_replace">
<find><![CDATA[inputclass="Elastic code]]></find>
<replace><![CDATA[$0 AdvancedTextArea]]></replace>
</modification>
<modification template="base_template_modification_list" modification_key="XenDevTools_base_template_modification_list_item" description="Adds data attribute to the TM list item" execution_order="10" enabled="1" action="str_replace">
<find><![CDATA[<li]]></find>
<replace><![CDATA[$0 id="{$addOnId}" data-collapse="accordion persist"]]></replace>
</modification>
<modification template="code_event_listener_list" modification_key="XenDevTools_code_event_listener_list_item" description="Adds data attribute to the listener list item" execution_order="10" enabled="1" action="str_replace">
<find><![CDATA[<li]]></find>
<replace><![CDATA[$0 id="{xen:if $addOn.addon_id, $addOn.addon_id, custom}" data-collapse="accordion persist"]]></replace>
</modification>
<modification template="PAGE_CONTAINER" modification_key="XenDevTools_favicon" description="Favicon for Admin CP" execution_order="10" enabled="1" action="str_replace">
<find><![CDATA[<meta charset="utf-8" />]]></find>
<replace><![CDATA[$0
<link rel="shortcut icon" href="favicon.ico" />]]></replace>
</modification>
<modification template="footer" modification_key="XenDevTools_footer_add_link" description="Add link to footer" execution_order="10" enabled="1" action="str_replace">
<find><![CDATA[<xen:if is="{$debugMode}">]]></find>
<replace><![CDATA[<xen:include template="xendevtools_switch" />
$0]]></replace>
</modification>
<modification template="page_container_js" modification_key="XenDevTools_page_container_js" description="Adds various JS to the PAGE_CONTAINER so it can be used anywhere." execution_order="10" enabled="1" action="str_replace">
<find><![CDATA[<script>]]></find>
<replace><![CDATA[<xen:require js="js/xendevtools/advanced_textarea.js" />
<xen:require js="js/xendevtools/jquery.collapse.js" />
<xen:require js="js/xendevtools/jquery.collapse_storage.js" />
<xen:require js="js/xendevtools/jquery.collapse_cookie_storage.js" />
$0]]></replace>
</modification>
<modification template="phrase_list" modification_key="XenDevTools_phrase_list" description="Adds the top choosers to the phrase list" execution_order="10" enabled="1" action="preg_replace">
<find><![CDATA[#<div class="topChoosers">.*?</ul>\s*?</div>\s*?</div>#s]]></find>
<replace><![CDATA[$0
<xen:include template="devkit_phrase_filters" />]]></replace>
</modification>
<modification template="phrase_list" modification_key="XenDevTools_phrase_list_filtercontrols" description="Removes the filter controls from the phrase list on certain pages." execution_order="10" enabled="1" action="str_replace">
<find><![CDATA[<xen:include template="filter_list_controls" />]]></find>
<replace><![CDATA[<xen:if is="{$phraseFilter} == 'undefined' OR {$phraseFilter} == 'found'"><xen:else />
$0
</xen:if>]]></replace>
</modification>
<modification template="phrase_list_items" modification_key="XenDevTools_phrase_list_items" description="Modifies the phrase list items" execution_order="10" enabled="1" action="str_replace">
<find><![CDATA[{xen:adminlink 'phrases/edit', $phrase, 'language_id={$language.language_id}'}]]></find>
<replace><![CDATA[{xen:if '({$phraseFilter} == "undefined" OR {$phraseFilter} == "found") AND !{$phrase.phrase_id}', '{xen:adminlink 'phrases/add', '', 'addon_id={$addOn.addon_id}', 'phrase_title={$phrase.title}'}', '$0'}]]></replace>
</modification>
<modification template="sidenav_entry" modification_key="XenDevTools_sidenav_entry_install_add_on_link" description="Changes the Install Add-On link" execution_order="10" enabled="1" action="str_replace">
<find><![CDATA[{xen:adminlink $link.link}]]></find>
<replace><![CDATA[{xen:if '{xen:adminlink $link.link} == {xen:adminlink add-ons/install-confirm}', '{xen:adminlink add-ons/install-upgrade}', $0}]]></replace>
</modification>
<modification template="sidenav_entry" modification_key="XenDevTools_sidenav_entry_install_add_on_phrase" description="Changes the Install Add-On phrase" execution_order="10" enabled="1" action="str_replace">
<find><![CDATA[{$link.title}]]></find>
<replace><![CDATA[<xen:if is="{$link.title} == {xen:phrase admin_navigation_installAddOn}">{xen:phrase xendevtools_install_upgrade}<xen:else />$0</xen:if>]]></replace>
</modification>
</admin_template_modifications>
<code_events/>
<code_event_listeners>
<listener event_id="init_dependencies" execute_order="10" callback_class="XenDevTools_Listener" callback_method="initDependencies" active="1" hint="" description=""/>
<listener event_id="load_class_controller" execute_order="10" callback_class="XenDevTools_Listener" callback_method="extendAddOnController" active="1" hint="XenForo_ControllerAdmin_AddOn" description="Extends the add-on controller"/>
<listener event_id="load_class_controller" execute_order="10" callback_class="XenDevTools_Listener" callback_method="extendPhraseController" active="1" hint="XenForo_ControllerAdmin_Phrase" description="Extends the phrase controller"/>
<listener event_id="load_class_controller" execute_order="10" callback_class="XenDevTools_Listener" callback_method="extendLanguageController" active="1" hint="XenForo_ControllerAdmin_Language" description="Extends the language controller"/>
<listener event_id="load_class_datawriter" execute_order="10" callback_class="XenDevTools_Listener" callback_method="extendTemplateDataWriter" active="1" hint="XenForo_DataWriter_Template" description=""/>
<listener event_id="load_class_datawriter" execute_order="10" callback_class="XenDevTools_Listener" callback_method="extendAddOnDataWriter" active="1" hint="XenForo_DataWriter_AddOn" description=""/>
<listener event_id="load_class_datawriter" execute_order="10" callback_class="XenDevTools_Listener" callback_method="extendAdminTemplateDataWriter" active="1" hint="XenForo_DataWriter_AdminTemplate" description="Extends the Admin Template DataWriter."/>
<listener event_id="load_class_model" execute_order="10" callback_class="XenDevTools_Listener" callback_method="extendContentTypeModel" active="1" hint="XenForo_Model_ContentType" description="Extends the XenForo content type model. Hint: XenForo_Model_ContentType"/>
<listener event_id="load_class_model" execute_order="10" callback_class="XenDevTools_Listener" callback_method="extendAddOnModel" active="1" hint="XenForo_Model_AddOn" description="Extends the Add On Model."/>
<listener event_id="load_class_model" execute_order="10" callback_class="XenDevTools_Listener" callback_method="extendPhraseModel" active="1" hint="XenForo_Model_Phrase" description="Extends the Phrase Model"/>
<listener event_id="load_class_model" execute_order="10" callback_class="XenDevTools_Listener" callback_method="extendAdminTemplateModel" active="1" hint="XenForo_Model_AdminTemplate" description="Extends the admin template model"/>
<listener event_id="navigation_tabs" execute_order="10" callback_class="XenDevTools_Listener" callback_method="navigationTabs" active="1" hint="" description=""/>
<listener event_id="template_create" execute_order="10" callback_class="XenDevTools_Listener" callback_method="templateCreate" active="1" hint="" description="Adds some global params."/>
</code_event_listeners>
<cron/>
<email_templates/>
<email_template_modifications/>
<optiongroups>
<option option_id="templateManFiles" edit_format="onoff" data_type="boolean" can_backup="1" validation_class="XenDevTools_Option_TemplateFiles" validation_method="verifyOption">
<default_value>0</default_value>
<edit_format_params></edit_format_params>
<sub_options></sub_options>
<relation group_id="debug" display_order="3010"/>
</option>
<option option_id="xendevCustLicense" edit_format="textbox" data_type="string" can_backup="1">
<default_value></default_value>
<edit_format_params></edit_format_params>
<sub_options></sub_options>
<relation group_id="serviceProviders" display_order="10003"/>
</option>
<option option_id="xendevCustPassword" edit_format="textbox" data_type="string" can_backup="1">
<default_value></default_value>
<edit_format_params>type=password</edit_format_params>
<sub_options></sub_options>
<relation group_id="serviceProviders" display_order="10002"/>
</option>
<option option_id="xendevCustUsername" edit_format="textbox" data_type="string" can_backup="1">
<default_value></default_value>
<edit_format_params></edit_format_params>
<sub_options></sub_options>
<relation group_id="serviceProviders" display_order="10001"/>
</option>
</optiongroups>
<permissions>
<permission_groups/>
<permissions/>
<interface_groups/>
</permissions>
<phrases>
<phrase title="addon_builder" version_id="1000070" version_string="1.0.0"><![CDATA[Add-on Builder]]></phrase>
<phrase title="addon_builder_cannot_build_zip_file" version_id="1000070" version_string="1.0.0"><![CDATA[Add-On Builder Cannot Build ZIP File.]]></phrase>
<phrase title="addon_builder_minify_js" version_id="1000070" version_string="1.0.0"><![CDATA[Minify JS]]></phrase>
<phrase title="addon_builder_source_file_x_cannot_be_loaded" version_id="1000070" version_string="1.0.0"><![CDATA[The source file {source} cannot be loaded. Make sure that the file exists at the given path.]]></phrase>
<phrase title="addon_build_location" version_id="1000070" version_string="1.0.0"><![CDATA[Add-on build location]]></phrase>
<phrase title="add_content_type" version_id="1000070" version_string="1.0.0"><![CDATA[Add Content Type]]></phrase>
<phrase title="add_content_type_field" version_id="1000070" version_string="1.0.0"><![CDATA[Add Content Type Field]]></phrase>
<phrase title="admin_navigation_contentTypeManagement" version_id="1000070" version_string="1.0.0"><![CDATA[Content Type Management]]></phrase>
<phrase title="admin_navigation_listContentTypes" version_id="1000070" version_string="1.0.0"><![CDATA[List Content Types]]></phrase>
<phrase title="build" version_id="1000070" version_string="1.0.0"><![CDATA[Build]]></phrase>
<phrase title="build_add_on" version_id="1000070" version_string="1.0.0"><![CDATA[Build add-on]]></phrase>
<phrase title="build_and_download" version_id="1000070" version_string="1.0.0"><![CDATA[Build and Download]]></phrase>
<phrase title="build_from_which_directories" version_id="1000070" version_string="1.0.0"><![CDATA[Build the add-on from these directories]]></phrase>
<phrase title="build_path_trailing_slash" version_id="1000070" version_string="1.0.0"><![CDATA[Specify the build path (relative to your XenForo root). Please include the trailing slash]]></phrase>
<phrase title="choose_an_addon" version_id="1000070" version_string="1.0.0"><![CDATA[Choose an add-on]]></phrase>
<phrase title="click_one_of_the_installed_addons_below_explain" version_id="1000070" version_string="1.0.0"><![CDATA[Click on of the installed add-ons below to build. Specify the build location, and the names of your library, js and styles folders. Once the build is complete you will find a copy of your files plus a package of your add-on which is compatible with the add-on installer and containing the add-on XML file.]]></phrase>
<phrase title="confirm_deletion_of_content_type" version_id="1000070" version_string="1.0.0"><![CDATA[Confirm deletion of content type]]></phrase>
<phrase title="confirm_deletion_of_content_type_field" version_id="1000070" version_string="1.0.0"><![CDATA[Confirm deletion of content type field]]></phrase>
<phrase title="content_types" version_id="1000070" version_string="1.0.0"><![CDATA[Content Types]]></phrase>
<phrase title="content_type_add_field" version_id="1000070" version_string="1.0.0"><![CDATA[Add Field]]></phrase>
<phrase title="content_type_created_successfully" version_id="1000070" version_string="1.0.0"><![CDATA[Content type created successfully]]></phrase>
<phrase title="content_type_deleted_successfully" version_id="1000070" version_string="1.0.0"><![CDATA[Content type deleted successfully]]></phrase>
<phrase title="content_type_field_created_successfully" version_id="1000070" version_string="1.0.0"><![CDATA[Content type field created successfully]]></phrase>
<phrase title="content_type_field_deleted_successfully" version_id="1000070" version_string="1.0.0"><![CDATA[Content type field deleted successfully]]></phrase>
<phrase title="content_type_field_name" version_id="1000070" version_string="1.0.0"><![CDATA[Field name]]></phrase>
<phrase title="content_type_field_updated_successfully" version_id="1000070" version_string="1.0.0"><![CDATA[Content type field updated successfully]]></phrase>
<phrase title="content_type_field_value" version_id="1000070" version_string="1.0.0"><![CDATA[Field value]]></phrase>
<phrase title="content_type_field_value_must_be_a_valid_class_that_already_exists" version_id="1000070" version_string="1.0.0"><![CDATA[Content type field value must be a valid class that already exists.]]></phrase>
<phrase title="content_type_generate_sql_code" version_id="1000070" version_string="1.0.0"><![CDATA[SQL Code]]></phrase>
<phrase title="content_type_please_enter_valid_field_name" version_id="1000070" version_string="1.0.0"><![CDATA[Please enter a valid field name.]]></phrase>
<phrase title="content_type_please_enter_valid_field_value" version_id="1000070" version_string="1.0.0"><![CDATA[Please enter a valid field value.]]></phrase>
<phrase title="content_type_please_enter_valid_name" version_id="1000070" version_string="1.0.0"><![CDATA[Please enter a valid name.]]></phrase>
<phrase title="content_type_updated_successfully" version_id="1000070" version_string="1.0.0"><![CDATA[Content type updated successfully.]]></phrase>
<phrase title="could_not_copy_files_did_you_specify_correct_dir" version_id="1000070" version_string="1.0.0"><![CDATA[Could not copy the add-on files to the build directory. Did you specify the correct source directory?]]></phrase>
<phrase title="create_new_content_type" version_id="1000070" version_string="1.0.0"><![CDATA[Create New Content Type]]></phrase>
<phrase title="custom_files" version_id="1000070" version_string="1.0.0"><![CDATA[Custom Files]]></phrase>
<phrase title="custom_files_explain" version_id="1000070" version_string="1.0.0"><![CDATA[Specify additional file/files that should be included in the package.]]></phrase>
<phrase title="delete_content_type" version_id="1000070" version_string="1.0.0"><![CDATA[Delete Content Type]]></phrase>
<phrase title="delete_content_type_field" version_id="1000070" version_string="1.0.0"><![CDATA[Delete Content Type Field]]></phrase>
<phrase title="devkit_addon_directory_not_found" version_id="1" version_string="1.00"><![CDATA[Can't find directory of the addon. </br>
It is supposed to be '/library/{dirName}' or '/library/XXX/{dirName}'. </br>
You may copy the files to the supposed dir to make it work.]]></phrase>
<phrase title="devkit_create_zip" version_id="1" version_string="1.0.4"><![CDATA[Create Zip]]></phrase>
<phrase title="devkit_error_while_creating_zip" version_id="1" version_string="1.0.4"><![CDATA[Error while creating zip]]></phrase>
<phrase title="devkit_existing" version_id="0" version_string=""><![CDATA[Existing]]></phrase>
<phrase title="devkit_found" version_id="0" version_string=""><![CDATA[Found in code]]></phrase>
<phrase title="devkit_undefined" version_id="0" version_string=""><![CDATA[Undefined]]></phrase>
<phrase title="devkit_untranslated" version_id="0" version_string=""><![CDATA[Untranslated]]></phrase>
<phrase title="edit_content_type" version_id="1000070" version_string="1.0.0"><![CDATA[Edit Content Type]]></phrase>
<phrase title="edit_content_type_field" version_id="1000070" version_string="1.0.0"><![CDATA[Edit Content Type Field]]></phrase>
<phrase title="js_directory" version_id="1000070" version_string="1.0.0"><![CDATA[Javascript Directory]]></phrase>
<phrase title="library_directory" version_id="1000070" version_string="1.0.0"><![CDATA[Library directory]]></phrase>
<phrase title="option_templateManFiles" version_id="1020070" version_string="1.2.0"><![CDATA[Write templates to file system]]></phrase>
<phrase title="option_templateManFiles_explain" version_id="1020070" version_string="1.2.0"><![CDATA[With this option enabled, templates will be written to the file system and this directory will be monitored for changes before page load.]]></phrase>
<phrase title="option_xendevCustLicense" version_id="1030070" version_string="1.3.0"><![CDATA[XenForo Customer License]]></phrase>
<phrase title="option_xendevCustLicense_explain" version_id="1030070" version_string="1.3.0"><![CDATA[]]></phrase>
<phrase title="option_xendevCustPassword" version_id="1030070" version_string="1.3.0"><![CDATA[XenForo Customer Area Password]]></phrase>
<phrase title="option_xendevCustPassword_explain" version_id="1030070" version_string="1.3.0"><![CDATA[]]></phrase>
<phrase title="option_xendevCustUsername" version_id="1030070" version_string="1.3.0"><![CDATA[XenForo Customer Area Username]]></phrase>
<phrase title="option_xendevCustUsername_explain" version_id="1030070" version_string="1.3.0"><![CDATA[]]></phrase>
<phrase title="please_confirm_that_you_want_to_delete_following_content_type" version_id="1000070" version_string="1.0.0"><![CDATA[Please confirm that you want to delete the following content type]]></phrase>
<phrase title="please_confirm_that_you_want_to_delete_following_content_type_field" version_id="1000070" version_string="1.0.0"><![CDATA[Please confirm that you want to delete the following content type field]]></phrase>
<phrase title="rebuild_content_types" version_id="1000070" version_string="1.0.0"><![CDATA[Rebuild Content Types]]></phrase>
<phrase title="requested_content_type_could_not_be_found" version_id="1000070" version_string="1.0.0"><![CDATA[The requested content type could not be found.]]></phrase>
<phrase title="requested_content_type_field_could_not_be_found" version_id="1000070" version_string="1.0.0"><![CDATA[The requested content type field could not be found.]]></phrase>
<phrase title="save_content_type" version_id="1000070" version_string="1.0.0"><![CDATA[Save Content Type]]></phrase>
<phrase title="save_content_type_field" version_id="1000070" version_string="1.0.0"><![CDATA[Save Content Type Field]]></phrase>
<phrase title="styles_directory" version_id="1000070" version_string="1.0.0"><![CDATA[Styles Directory]]></phrase>
<phrase title="xendevtools_affects_x_rows" version_id="1030070" version_string="1.3.0"><![CDATA[Affects {rows} rows.]]></phrase>
<phrase title="xendevtools_allowed_file_types" version_id="1020070" version_string="1.2.0"><![CDATA[Allowed file types]]></phrase>
<phrase title="xendevtools_a_valid_installable_xml_not_found" version_id="1030070" version_string="1.3.0"><![CDATA[A valid and installable XML file not found.]]></phrase>
<phrase title="xendevtools_change_dev_options" version_id="1010070" version_string="1.1.0"><![CDATA[Change Developer Options]]></phrase>
<phrase title="xendevtools_check_username_password_and_license_key" version_id="1030070" version_string="1.3.0"><![CDATA[Please check you have entered your XenForo Customer Area (not XenForo Community) username, password and license key correctly.]]></phrase>
<phrase title="xendevtools_confirm_upgrade_to_following_version" version_id="1030070" version_string="1.3.0"><![CDATA[Please confirm that you wish to upgrade to the following version]]></phrase>
<phrase title="xendevtools_convert_timestamp" version_id="1040070" version_string="1.4.0"><![CDATA[Convert Timestamp]]></phrase>
<phrase title="xendevtools_customer_area_not_forum" version_id="1030070" version_string="1.3.0"><![CDATA[Customer Area (Not Forum)]]></phrase>
<phrase title="xendevtools_debug_off_default_addon_off" global_cache="1" version_id="1000070" version_string="1.0.0"><![CDATA[Debug: <span class="xenDev permissionTest">Off</span> Add-on: <span class="xenDev permissionTest">Off</span>]]></phrase>
<phrase title="xendevtools_debug_off_default_addon_on" global_cache="1" version_id="1000070" version_string="1.0.0"><![CDATA[Debug: <span class="xenDev permissionTest">Off</span> Add-on: <span class="xenDev permissionTest">{addon}</span>]]></phrase>
<phrase title="xendevtools_debug_on_default_addon_off" global_cache="1" version_id="1000070" version_string="1.0.0"><![CDATA[Debug: <span class="xenDev permissionTest">On</span> Add-on: <span class="xenDev permissionTest">Off</span>]]></phrase>
<phrase title="xendevtools_debug_on_default_addon_on" global_cache="1" version_id="1000070" version_string="1.0.0"><![CDATA[Debug: <span class="xenDev permissionTest">On</span> Add-on: <span class="xenDev permissionTest">{addon}</span>]]></phrase>
<phrase title="xendevtools_default_add_on" version_id="1010070" version_string="1.1.0"><![CDATA[Default Add-on]]></phrase>
<phrase title="xendevtools_development" global_cache="1" version_id="1040470" version_string="1.4.4"><![CDATA[Dev Tools]]></phrase>
<phrase title="xendevtools_enable_debug_mode" version_id="1010070" version_string="1.1.0"><![CDATA[Enable debug mode]]></phrase>
<phrase title="xendevtools_enter_query_to_execute" version_id="1030070" version_string="1.3.0"><![CDATA[Enter Query to Execute]]></phrase>
<phrase title="xendevtools_enter_string_to_json_decode" version_id="1030070" version_string="1.3.0"><![CDATA[Enter a JSON encoded string to decode]]></phrase>
<phrase title="xendevtools_enter_string_to_unserialize" version_id="1030070" version_string="1.3.0"><![CDATA[Enter string to unserialize]]></phrase>
<phrase title="xendevtools_enter_timestamp_to_convert" version_id="1040070" version_string="1.4.0"><![CDATA[Enter timestamp to convert]]></phrase>
<phrase title="xendevtools_execute_query" version_id="1030070" version_string="1.3.0"><![CDATA[Execute Query]]></phrase>
<phrase title="xendevtools_fetch_all" version_id="1030070" version_string="1.3.0"><![CDATA[Fetch All]]></phrase>
<phrase title="xendevtools_fetch_all_keyed" version_id="1030070" version_string="1.3.0"><![CDATA[Fetch All Keyed]]></phrase>
<phrase title="xendevtools_fetch_assoc" version_id="1030070" version_string="1.3.0"><![CDATA[Fetch Assoc.]]></phrase>
<phrase title="xendevtools_fetch_col" version_id="1030070" version_string="1.3.0"><![CDATA[Fetch Col.]]></phrase>
<phrase title="xendevtools_fetch_one" version_id="1030070" version_string="1.3.0"><![CDATA[Fetch One]]></phrase>
<phrase title="xendevtools_fetch_pairs" version_id="1030070" version_string="1.3.0"><![CDATA[Fetch Pairs]]></phrase>
<phrase title="xendevtools_fetch_results" version_id="1030070" version_string="1.3.0"><![CDATA[Fetch Results]]></phrase>
<phrase title="xendevtools_fetch_row" version_id="1030070" version_string="1.3.0"><![CDATA[Fetch Row]]></phrase>
<phrase title="xendevtools_fetch_type" version_id="1040270" version_string="1.4.2"><![CDATA[Fetch Type]]></phrase>
<phrase title="xendevtools_install_from_file" version_id="1020070" version_string="1.2.0"><![CDATA[Install From File]]></phrase>
<phrase title="xendevtools_install_from_server" version_id="1020070" version_string="1.2.0"><![CDATA[Install From Server]]></phrase>
<phrase title="xendevtools_install_upgrade" version_id="1020070" version_string="1.2.0"><![CDATA[Install / Upgrade]]></phrase>
<phrase title="xendevtools_json_decode" version_id="1030070" version_string="1.3.0"><![CDATA[JSON Decode]]></phrase>
<phrase title="xendevtools_json_decode_data" version_id="1030070" version_string="1.3.0"><![CDATA[JSON Decode Data]]></phrase>
<phrase title="xendevtools_key" version_id="1030070" version_string="1.3.0"><![CDATA[Key]]></phrase>
<phrase title="xendevtools_latest_version_already_installed" version_id="1030070" version_string="1.3.0"><![CDATA[You already have the latest version of XenForo installed.]]></phrase>
<phrase title="xendevtools_perform_mysql_query" version_id="1030070" version_string="1.3.0"><![CDATA[Perform MySQL Query]]></phrase>
<phrase title="xendevtools_please_enter_all_details" version_id="1030070" version_string="1.3.0"><![CDATA[Please enter all details including the username, password and license key.]]></phrase>
<phrase title="xendevtools_raw_query" version_id="1030070" version_string="1.3.0"><![CDATA[Raw Query]]></phrase>
<phrase title="xendevtools_redirect_here" version_id="1030070" version_string="1.3.0"><![CDATA[Redirect here (instead of add-on list)]]></phrase>
<phrase title="xendevtools_result" version_id="1030070" version_string="1.3.0"><![CDATA[Result]]></phrase>
<phrase title="xendevtools_returns_rows_affected" version_id="1030070" version_string="1.3.0"><![CDATA[Only returns rows affected. Use fetch options to view returned data.]]></phrase>
<phrase title="xendevtools_save_update_credentials" version_id="1030070" version_string="1.3.0"><![CDATA[Save / Update Credentials]]></phrase>
<phrase title="xendevtools_select_multiple_files" version_id="1020070" version_string="1.2.0"><![CDATA[Select multiple files]]></phrase>
<phrase title="xendevtools_skip_cache_rebuild" version_id="1020070" version_string="1.2.0"><![CDATA[Skip Cache Rebuild]]></phrase>
<phrase title="xendevtools_some_values_may_not_update_immediately" version_id="1010070" version_string="1.1.0"><![CDATA[Note: Some values may not update immediately.]]></phrase>
<phrase title="xendevtools_tools" version_id="1030070" version_string="1.3.0"><![CDATA[Tools]]></phrase>
<phrase title="xendevtools_unserialize" version_id="1030070" version_string="1.3.0"><![CDATA[Unserialize]]></phrase>
<phrase title="xendevtools_unserialize_data" version_id="1030070" version_string="1.3.0"><![CDATA[Unserialize Data]]></phrase>
<phrase title="xendevtools_upgrade_to_latest_unsupported_release" version_id="1030070" version_string="1.3.0"><![CDATA[Upgrade to the latest "Unsupported" release (if available).]]></phrase>
<phrase title="xendevtools_upgrade_xenforo" version_id="1020070" version_string="1.2.0"><![CDATA[Upgrade XenForo]]></phrase>
<phrase title="xendevtools_upgrade_xenforo_version" version_id="1030070" version_string="1.3.0"><![CDATA[Upgrade XenForo Version]]></phrase>
<phrase title="xendevtools_verify_valid_query" version_id="1030070" version_string="1.3.0"><![CDATA[Please verify the query you have entered is valid.]]></phrase>
<phrase title="xendevtools_xenforo_license_key" version_id="1030070" version_string="1.3.0"><![CDATA[XenForo License Key]]></phrase>
<phrase title="xendevtools_xenforo_password" version_id="1030070" version_string="1.3.0"><![CDATA[XenForo Password]]></phrase>
<phrase title="xendevtools_xenforo_username" version_id="1030070" version_string="1.3.0"><![CDATA[XenForo Username]]></phrase>
<phrase title="xendevtools_your_changes_have_been_saved" version_id="1010070" version_string="1.1.0"><![CDATA[Your changes have been saved.]]></phrase>
<phrase title="your_addon_has_been_built" version_id="1000070" version_string="1.0.0"><![CDATA[Your add-on has been built]]></phrase>
</phrases>
<route_prefixes>
<route_type type="admin">
<prefix original_prefix="content-types" class="XenDevTools_Route_PrefixAdmin_ContentTypes" build_link="data_only"/>
</route_type>
<route_type type="public">
<prefix original_prefix="dev" class="XenDevTools_Route_Prefix_Tools" build_link="data_only"/>
</route_type>
</route_prefixes>
<style_properties/>
<templates>
<template title="xendevtools_dev_index" version_id="1040270" version_string="1.4.2"><![CDATA[<xen:require js="js/xendevtools/display_results.js" />
<xen:require js="js/xendevtools/advanced_textarea.js" />
<style>
.checkboxColumns li
{
padding-left: 1px;
}
</style>
<xen:title>{xen:phrase xendevtools_tools}</xen:title>
<form action="{xen:link 'dev/process'}" method="post" class="xenForm ToolSubmit AutoValidator" id="templateEditor" data-redirect="off">
<dl class="ctrlUnit fullWidth surplusLabel">
<dt></dt>
<dd>
<h3 class="subHeading">{xen:phrase xendevtools_unserialize_data}</h3>
</dd>
</dl>
<dl class="ctrlUnit">
<dt><label for="ctrl_unserialize">{xen:phrase xendevtools_enter_string_to_unserialize}:</label></dt>
<dd>
<textarea class="textCtrl Elastic AdvancedTextArea" rows="5" name="unserialize" id="ctrl_unserialize"></textarea>
</dd>
</dl>
<dl class="ctrlUnit CodeContainer">
<dt></dt>
<dd></dd>
</dl>
<dl class="ctrlUnit submitUnit">
<dt></dt>
<dd><input type="submit" name="unserialize_submit" id="ctrl_unserialize_submit" class="button primary" value="{xen:phrase xendevtools_unserialize}" /></dd>
</dl>
<input type="hidden" name="tool" value="unserialize" class="Tool" />
<input type="hidden" name="_xfConfirm" value="1" />
<input type="hidden" name="_xfToken" value="{$visitor.csrf_token_page}" />
</form>
<form action="{xen:link 'dev/process'}" method="post" class="xenForm ToolSubmit AutoValidator">
<dl class="ctrlUnit fullWidth surplusLabel">
<dt></dt>
<dd>
<h3 class="subHeading">{xen:phrase xendevtools_json_decode_data}</h3>
</dd>
</dl>
<dl class="ctrlUnit">
<dt><label for="ctrl_json_decode">{xen:phrase xendevtools_enter_string_to_json_decode}:</label></dt>
<dd>
<textarea class="textCtrl Elastic AdvancedTextArea" rows="5" name="json_decode" id="ctrl_json_decode"></textarea>
</dd>
</dl>
<dl class="ctrlUnit CodeContainer">
<dt></dt>
<dd></dd>
</dl>
<dl class="ctrlUnit submitUnit">
<dt></dt>
<dd><input type="submit" name="json_decode_submit" id="ctrl_json_decode_submit" class="button primary" value="{xen:phrase xendevtools_json_decode}" /></dd>
</dl>
<input type="hidden" name="tool" value="json_decode" class="Tool" />
<input type="hidden" name="_xfConfirm" value="1" />
<input type="hidden" name="_xfToken" value="{$visitor.csrf_token_page}" />
</form>
<form action="{xen:link 'dev/process'}" method="post" class="xenForm ToolSubmit AutoValidator">
<dl class="ctrlUnit fullWidth surplusLabel">
<dt></dt>
<dd>
<h3 class="subHeading">{xen:phrase xendevtools_convert_timestamp}</h3>
</dd>
</dl>
<dl class="ctrlUnit">
<dt><label for="ctrl_json_decode">{xen:phrase xendevtools_enter_timestamp_to_convert}:</label></dt>
<dd>
<input type="text" class="textCtrl" name="timestamp_convert" id="ctrl_timestamp_convert" />
</dd>
</dl>
<dl class="ctrlUnit CodeContainer">
<dt></dt>
<dd></dd>
</dl>
<dl class="ctrlUnit submitUnit">
<dt></dt>
<dd><input type="submit" name="timestamp_convert_submit" id="ctrl_timestamp_convert_submit" class="button primary" value="{xen:phrase xendevtools_convert_timestamp}" /></dd>
</dl>
<input type="hidden" name="tool" value="timestamp_convert" class="Tool" />
<input type="hidden" name="_xfConfirm" value="1" />
<input type="hidden" name="_xfToken" value="{$visitor.csrf_token_page}" />
</form>
<form action="{xen:link 'dev/process'}" method="post" class="xenForm ToolSubmit AutoValidator">
<dl class="ctrlUnit fullWidth surplusLabel">
<dt></dt>
<dd>
<h3 class="subHeading">{xen:phrase xendevtools_perform_mysql_query}</h3>
</dd>
</dl>
<dl class="ctrlUnit">
<dt><label for="ctrl_query">{xen:phrase xendevtools_enter_query_to_execute}:</label></dt>
<dd>
<textarea class="textCtrl Elastic AdvancedTextArea" rows="5" name="query" id="ctrl_query"></textarea>
</dd>
</dl>
<dl class="ctrlUnit">
<dt><label>{xen:phrase xendevtools_fetch_type}:</label></dt>
<dd>
<ul>
<li>
<label>
<input type="radio" name="format" value="" />
{xen:phrase xendevtools_raw_query}
</label>
<p class="explain">{xen:phrase xendevtools_returns_rows_affected}</p>
</li>
<li>
<label>
<input type="radio" class="Disabler" name="format" value="fetch" id="ctrl_fetch" />
{xen:phrase xendevtools_fetch_results}
</label>
<ul class="checkboxColumns" id="ctrl_fetch_Disabler">
<li>
<label for="fetch_type_one">
<input type="radio" name="fetch_type" value="one" id="fetch_type_one" />
{xen:phrase xendevtools_fetch_one}
</label>
</li>
<li>
<label for="fetch_type_row">
<input type="radio" name="fetch_type" value="row" id="fetch_type_row" />
{xen:phrase xendevtools_fetch_row}
</label>
</li>
<li>
<label for="fetch_type_col">
<input type="radio" name="fetch_type" value="col" id="fetch_type_col" />
{xen:phrase xendevtools_fetch_col}
</label>
</li>
<li>
<label for="fetch_type_pairs">
<input type="radio" name="fetch_type" value="pairs" id="fetch_type_pairs" />
{xen:phrase xendevtools_fetch_pairs}
</label>
</li>
<li>
<label for="fetch_type_assoc">
<input type="radio" name="fetch_type" value="assoc" id="fetch_type_assoc" />
{xen:phrase xendevtools_fetch_assoc}
</label>
</li>
<li>
<label for="fetch_type_all">
<input type="radio" name="fetch_type" value="all" id="fetch_type_all" />
{xen:phrase xendevtools_fetch_all}
</label>
</li>
<li>
<label for="fetch_type_all_keyed">
<input type="radio" class="Disabler" name="fetch_type" value="allKeyed" id="fetch_type_all_keyed" />
{xen:phrase xendevtools_fetch_all_keyed}
</label>
</li>
<ul id="fetch_type_all_keyed_Disabler">
<li>
<dl class="ctrlUnit">
<dt>{xen:phrase xendevtools_key}:</dt>
<dd><input type="text" class="textCtrl" name="key" id="ctrl_key" /></dd>
</dl>
</li>
</ul>
</ul>
</li>
</ul>
</dd>
</dl>
<dl class="ctrlUnit CodeContainer">
<dt></dt>
<dd></dd>
</dl>
<dl class="ctrlUnit submitUnit">
<dt></dt>
<dd><input type="submit" name="query_submit" id="ctrl_query_submit" class="button primary" value="{xen:phrase xendevtools_execute_query}" /></dd>
</dl>
<input type="hidden" name="tool" value="query" class="Tool" />
<input type="hidden" name="_xfConfirm" value="1" />
<input type="hidden" name="_xfToken" value="{$visitor.csrf_token_page}" />
</form>]]></template>
<template title="xendevtools_helper_addon_unit" version_id="1010070" version_string="1.1.0"><![CDATA[<xen:if is="{$addOnOptions}">
<dl class="ctrlUnit">
<dt>{xen:phrase xendevtools_default_add_on}:</dt>
<dd>
<select name="addon_id" class="textCtrl">
<xen:foreach loop="$addOnOptions" key="$addOnId" value="$addOnTitle">
<option value="{$addOnId}"{xen:selected '{$addOnId} == {$defaultAddOn}'}>{$addOnTitle}</option>
</xen:foreach>
</select>
</dd>
</dl>
</xen:if>]]></template>
<template title="xendevtools_moderator_bar_dropdowns" version_id="1010070" version_string="1.1.0"><![CDATA[<xen:if is="{$visitor.is_admin}">
<style>
.xenDev.permissionTest
{
display: inline-block;
padding: 2px 5px;
border-radius: 3px;
}
</style>
<a href="{xen:link 'dev/switch'}" class="OverlayTrigger modLink">
{xen:raw $debugModePhrase}
</a>
</xen:if>]]></template>
<template title="xendevtools_processed" version_id="1030070" version_string="1.3.0"><![CDATA[<dl class="ctrlUnit CodeContainer">
<dt>{xen:phrase xendevtools_result}:</dt>
<dd>{xen:raw $result}</dd>
</dl>]]></template>
<template title="xendevtools_switch" version_id="1010070" version_string="1.1.0"><![CDATA[<xen:title>{xen:phrase xendevtools_change_dev_options}</xen:title>
<form action="{xen:link 'dev/switch'}" method="post" class="xenForm formOverlay" data-redirect="on">
<dl class="ctrlUnit">
<dt></dt>
<dd>
<label for="ctrl_debug_mode"><input type="checkbox" name="debug_mode" id="ctrl_debug_mode" value="1" {xen:checked $debugMode} />
{xen:phrase xendevtools_enable_debug_mode}</label>
</dd>
</dl>
<xen:include template="xendevtools_helper_addon_unit" />
<dl class="ctrlUnit submitUnit">
<dt></dt>
<dd>
<input type="submit" value="{xen:phrase save}" accesskey="s" class="button primary" />
<p class="explain">{xen:phrase xendevtools_some_values_may_not_update_immediately}</p>
</dd>
</dl>
<input type="hidden" name="_xfConfirm" value="1" />
<input type="hidden" name="_xfToken" value="{$visitor.csrf_token_page}" />
</form>]]></template>
<template title="xendevtools_tab_links" version_id="1030070" version_string="1.3.0"><![CDATA[<ul class="secondaryContent blockLinksList">
<li><a href="{xen:link 'dev'}">{xen:phrase xendevtools_tools}</a></li>
<li><a href="{xen:link 'dev/switch'}" class="OverlayTrigger">{xen:phrase xendevtools_change_dev_options}</a></li>
</ul>]]></template>
</templates>
<public_template_modifications>
<modification template="moderator_bar" modification_key="XenDevTools_moderator_bar_dropdowns" description="Adds some drop downs to the moderator bar." execution_order="10" enabled="1" action="str_replace">
<find><![CDATA[<xen:hook name="moderator_bar" />]]></find>
<replace><![CDATA[<xen:include template="xendevtools_moderator_bar_dropdowns" />
$0]]></replace>
</modification>
</public_template_modifications>
<bb_code_media_sites/>
<bb_codes/>
</addon>