Compare commits
63 Commits
ba736ef661
...
developmen
Author | SHA1 | Date | |
---|---|---|---|
64a5dbf74b | |||
ad0585180e | |||
3983108048 | |||
4c95333c05 | |||
3cbb6415b6 | |||
9318732f07 | |||
574f670ee0 | |||
073c167746 | |||
bca4f2639b | |||
f7ca614b38 | |||
ca02db7b28 | |||
da63fe3b3c | |||
138b3859aa | |||
f9238eef72 | |||
e7fe409ae5 | |||
a424a4e6e5 | |||
aeddfbd339 | |||
5b6b06e70d | |||
33287c4b40 | |||
923d76c085 | |||
5e107d36ca | |||
19a10e5704 | |||
b9307c2f5a | |||
c7b3072e59 | |||
b0c576bad3 | |||
30375476cc | |||
943e8dc273 | |||
2b5e1cf9b9 | |||
050aff5f69 | |||
92af6f6cd7 | |||
c1d83d5536 | |||
492d5a0028 | |||
837b371d9c | |||
b63b849218 | |||
3782ef7282 | |||
a69d83bc0a | |||
a66f2d2422 | |||
e9740e86b5 | |||
5e766bc2e5 | |||
abc3a2a0a0 | |||
c85d93e06f | |||
3fcd0f2c2b | |||
caa2bc6493 | |||
49f1ebc5ba | |||
d2c74a158a | |||
bee1f6c96c | |||
96e084e353 | |||
c7ba74d7e3 | |||
76ecb7d978 | |||
5492bda6d2 | |||
dd6af287f3 | |||
9835f32dfa | |||
b3b58ce103 | |||
4d479cedaf | |||
e204c8a53e | |||
d1eece5875 | |||
9d6c90e9cd | |||
6dafa7f1ee | |||
40a3b93d4b | |||
18820c7191 | |||
bb741539f6 | |||
80fb6cd452 | |||
69322d64f3 |
27
.deployment/create_info_json.php
Normal file
27
.deployment/create_info_json.php
Normal file
@ -0,0 +1,27 @@
|
||||
<?php
|
||||
if (!isset($argv[1])) {
|
||||
die('No version set, please use ' . PHP_EOL .'make deploy version=' . PHP_EOL);
|
||||
}
|
||||
$file = file_get_contents(dirname(__FILE__) . '/info.json.tpl');
|
||||
$file = str_replace('%version%', $argv[1], $file);
|
||||
$file = str_replace('%date%', date('d.m.Y H:i:00'), $file);
|
||||
$file = str_replace('%changelog%', parseChangeLog(), $file);
|
||||
|
||||
$ptr = fopen('info.json', 'w');
|
||||
fwrite($ptr, $file);
|
||||
fclose($ptr);
|
||||
|
||||
|
||||
system('lftp -e "put -O / info.json; bye" -u "lv-sachsen-main_ftp3,sE&xDXc8za#S" bdp.mein-verein.online');
|
||||
function parseChangeLog()
|
||||
{
|
||||
$return = '';
|
||||
foreach (file(dirname(__FILE__) . '/../changelog') as $line) {
|
||||
$line = trim($line);
|
||||
if ($line !== '') {
|
||||
$return .= $line;
|
||||
}
|
||||
};
|
||||
|
||||
return $return;
|
||||
}
|
17
.deployment/info.json
Normal file
17
.deployment/info.json
Normal file
@ -0,0 +1,17 @@
|
||||
{
|
||||
"name": "BdP Kompass",
|
||||
"slug": "bdp-kompass",
|
||||
"author": "Thomas Günther",
|
||||
"author_profile": "https://sachsen.pfadfinden.de",
|
||||
"version": "4.3.2",
|
||||
"download_url": "http://lv-sachsen-main.bdp.mein-verein.online/wordpress/bdp-kompass-4.3.2.zip",
|
||||
"requires": "6.0",
|
||||
"tested": "6.7",
|
||||
"requires_php": "8.2",
|
||||
"last_updated": "02.03.2024 16:24:00",
|
||||
"sections": {
|
||||
"description": "Wordpress-Plugin zur Unterstützung von Stämmen im Bund der Pfadfinderinnen und Pfadfinder e.V. zur optimalen Verwaltung eurer Webseite",
|
||||
"installation": "Bitte wendet euch an den LB IT, falls ihr zur Installation oder zu Updates Fragen habt.",
|
||||
"changelog": "<h4>Version 4.3.1</h4><ul><li>Mehrsprachrigkeit unterstütz</li><li>Unterstützung für Smartphones</li></ul><h4>Version 4.2.1</h4><ul><li>Erweiterte Sicherheitsfunktionen implemntiert</li><li>Passwort-Policies implementiert</li><li>Integration von Limit Login Attempts (classic)</li><li>Integration von WPS Hide Login</li></ul><h4>Version 4.1.1</h4><ul><li>Erster release des Plugins</li></ul>"
|
||||
}
|
||||
}
|
17
.deployment/info.json.tpl
Normal file
17
.deployment/info.json.tpl
Normal file
@ -0,0 +1,17 @@
|
||||
{
|
||||
"name": "BdP Kompass",
|
||||
"slug": "bdp-kompass",
|
||||
"author": "Thomas Günther",
|
||||
"author_profile": "https://sachsen.pfadfinden.de",
|
||||
"version": "%version%",
|
||||
"download_url": "http://lv-sachsen-main.bdp.mein-verein.online/wordpress/bdp-kompass-%version%.zip",
|
||||
"requires": "6.0",
|
||||
"tested": "6.7",
|
||||
"requires_php": "8.2",
|
||||
"last_updated": "%date%",
|
||||
"sections": {
|
||||
"description": "Wordpress-Plugin zur Unterstützung von Stämmen im Bund der Pfadfinderinnen und Pfadfinder e.V. zur optimalen Verwaltung eurer Webseite",
|
||||
"installation": "Bitte wendet euch an den LB IT, falls ihr zur Installation oder zu Updates Fragen habt.",
|
||||
"changelog": "%changelog%"
|
||||
}
|
||||
}
|
17
Makefile
Normal file
17
Makefile
Normal file
@ -0,0 +1,17 @@
|
||||
translate: bdp-kompass.php
|
||||
msgfmt lang/bdp-kompass_de_DE.po -olang/bdp-kompass-de_DE.mo
|
||||
|
||||
deploy: bdp-kompass.php
|
||||
make translate
|
||||
@php ./.deployment/create_info_json.php $(version)
|
||||
mkdir -p ./.deployment/bdp-kompass/bdp-kompass
|
||||
cp -r * ./.deployment/bdp-kompass/bdp-kompass
|
||||
rm ./.deployment/bdp-kompass/bdp-kompass/changelog
|
||||
rm ./.deployment/bdp-kompass/bdp-kompass/Makefile
|
||||
rm -rf ./.deployment/bdp-kompass/bdp-kompass/.deployment
|
||||
rm -rf ./.deployment/bdp-kompass/bdp-kompass/.git
|
||||
cd ./.deployment/bdp-kompass/ && zip -qr ./bdp-kompass-$(version).zip ./bdp-kompass/
|
||||
lftp -e "put -O / ./.deployment/bdp-kompass/bdp-kompass-$(version).zip; bye" -u "lv-sachsen-main_ftp3,sE&xDXc8za#S" bdp.mein-verein.online
|
||||
rm -rf ./.deployment/bdp-kompass/
|
||||
rm -rf ./.deployment/info.json/
|
||||
rm -rf ./info.json
|
26
assets/ajax.js
Normal file
26
assets/ajax.js
Normal file
@ -0,0 +1,26 @@
|
||||
function kompass_generate_ajax_url(module, ajaxmethode, params) {
|
||||
return ajaxurl + '?action=kompass_show_ajax&module=' + module + '&method=' + ajaxmethode + '&' + params;
|
||||
}
|
||||
function kompass_load_ajax_nw(module, ajaxmethode, params='') {
|
||||
ajaxurl = kompass_generate_ajax_url(module, ajaxmethode, params);
|
||||
window.open(ajaxurl);
|
||||
}
|
||||
|
||||
function kompass_load_ajax_div(module, ajaxmethode, targetid, params = '') {
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.onreadystatechange = function() {
|
||||
if (xhr.readyState === XMLHttpRequest.DONE) {
|
||||
if (xhr.status === 200) {
|
||||
// Erfolgreiche Antwort erhalten
|
||||
document.getElementById(targetid).innerHTML = xhr.responseText;
|
||||
} else {
|
||||
console.log(xhr);
|
||||
// Fehlerbehandlung
|
||||
//console.error('Fehler beim Laden der Inhalte');
|
||||
}
|
||||
}
|
||||
};
|
||||
var scriptcall = kompass_generate_ajax_url(module, ajaxmethode, params);
|
||||
xhr.open('GET', scriptcall,true);
|
||||
xhr.send();
|
||||
}
|
BIN
assets/klilie.png
Normal file
BIN
assets/klilie.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 132 KiB |
175
assets/mareike.css
Normal file
175
assets/mareike.css
Normal file
@ -0,0 +1,175 @@
|
||||
/* Allgemeine Anpassungen */
|
||||
body {
|
||||
--ame-ms-menu-width: 250px;
|
||||
}
|
||||
|
||||
#wpwrap {
|
||||
background-color: #f3f3f1; /* Hintergrundfarbe angepasst */
|
||||
}
|
||||
|
||||
/* Admin Menü */
|
||||
#adminmenuback, #adminmenuwrap, #adminmenu {
|
||||
width: 250px;
|
||||
background-color: #ffffff; /* Hintergrundfarbe angepasst */
|
||||
}
|
||||
|
||||
#adminmenu .wp-has-current-submenu > .wp-submenu {
|
||||
width: 250px;
|
||||
}
|
||||
|
||||
#wpcontent, #wpfooter {
|
||||
margin-left: 250px;
|
||||
background-color: #ffffff;
|
||||
padding-left: 20px; /* Padding reduziert */
|
||||
}
|
||||
|
||||
#adminmenu .wp-not-current-submenu .wp-submenu, .folded #adminmenu .wp-has-current-submenu .wp-submenu, #adminmenu .ame-has-deep-submenu:not(.ame-has-highlighted-item) > .wp-submenu {
|
||||
width: 250px;
|
||||
}
|
||||
|
||||
/* Menüelemente */
|
||||
#adminmenu > li {
|
||||
padding: 10px 10px; /* Padding angepasst */
|
||||
font-weight: bold; /* Schriftstärke angepasst */
|
||||
}
|
||||
|
||||
#adminmenu > li a {
|
||||
color: #333; /* Textfarbe angepasst */
|
||||
}
|
||||
|
||||
#adminmenu > li div.wp-menu-image:before {
|
||||
color: #333; /* Iconfarbe angepasst */
|
||||
}
|
||||
|
||||
#adminmenu > li a:hover, #adminmenu > li.menu-top:hover, #adminmenu > li.opensub > a.menu-top, #adminmenu > li > a.menu-top:focus {
|
||||
color: #0056b3; /* Textfarbe bei Hover angepasst */
|
||||
}
|
||||
|
||||
#adminmenu > li.menu-top:hover, #adminmenu > li.opensub > a.menu-top, #adminmenu > li > a.menu-top:focus {
|
||||
background-color: #e9ecef; /* Hintergrundfarbe bei Hover angepasst */
|
||||
}
|
||||
|
||||
#adminmenu .wp-submenu, #adminmenu .wp-submenu a {
|
||||
background-color: #f8f9fa; /* Untermenü-Hintergrundfarbe angepasst */
|
||||
color: #333; /* Untermenü-Textfarbe angepasst */
|
||||
}
|
||||
|
||||
#adminmenu .wp-submenu a:hover {
|
||||
background-color: #e9ecef; /* Untermenü-Hintergrundfarbe bei Hover angepasst */
|
||||
color: #0056b3; /* Untermenü-Textfarbe bei Hover angepasst */
|
||||
}
|
||||
|
||||
/* Admin Bar */
|
||||
#wpadminbar {
|
||||
background-color: #ffffff; /* Admin Bar Hintergrundfarbe angepasst */
|
||||
color: #0056b3; /* Admin Bar Textfarbe angepasst */
|
||||
}
|
||||
|
||||
#wpadminbar .ab-item, #wpadminbar a.ab-item, #wpadminbar > #wp-toolbar span.ab-label, #wpadminbar > #wp-toolbar span.noticon {
|
||||
color: #0056b3; /* Admin Bar Textfarbe angepasst */
|
||||
}
|
||||
|
||||
#wpadminbar .ab-icon, #wpadminbar .ab-icon:before, #wpadminbar .ab-item:before, #wpadminbar .ab-item:after {
|
||||
color: #0056b3; /* Admin Bar Icon-Farbe angepasst */
|
||||
}
|
||||
|
||||
#wpadminbar:not(.mobile) .ab-top-menu > li:hover > .ab-item, #wpadminbar:not(.mobile) .ab-top-menu > li > .ab-item:focus, #wpadminbar.nojq .quicklinks .ab-top-menu > li > .ab-item:focus, #wpadminbar.nojs .ab-top-menu > li.menupop:hover > .ab-item, #wpadminbar .ab-top-menu > li.menupop.hover > .ab-item {
|
||||
background-color: #e9ecef; /* Admin Bar Hintergrundfarbe bei Hover angepasst */
|
||||
color: #0056b3; /* Admin Bar Textfarbe bei Hover angepasst */
|
||||
}
|
||||
|
||||
#wpadminbar .quicklinks .menupop ul li a:hover, #wpadminbar .quicklinks .menupop ul li a:focus {
|
||||
background-color: #e9ecef; /* Untermenü Hintergrundfarbe bei Hover angepasst */
|
||||
color: #0056b3; /* Untermenü Textfarbe bei Hover angepasst */
|
||||
}
|
||||
|
||||
/* Buttons */
|
||||
.button-primary {
|
||||
border-style: none;
|
||||
background-color: #0056b3 !important; /* Button Hintergrundfarbe angepasst */
|
||||
color: #ffffff !important; /* Button Textfarbe angepasst */
|
||||
box-shadow: none; /* Box-Shadow entfernt */
|
||||
}
|
||||
|
||||
.button-primary:hover {
|
||||
background-color: #004085 !important; /* Button Hintergrundfarbe bei Hover angepasst */
|
||||
}
|
||||
|
||||
/* Anpassungen für Bildschirme mit unterschiedlichen Breiten */
|
||||
@media screen and (min-width: 783px) {
|
||||
#adminmenu .wp-not-current-submenu .wp-submenu {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 960px) and (min-width: 783px) {
|
||||
body.auto-fold #widgets-editor .interface-interface-skeleton {
|
||||
left: var(--ame-ms-collapsed-menu-width, 36px);
|
||||
}
|
||||
}
|
||||
|
||||
/* Weitere Anpassungen */
|
||||
.nav-tab {
|
||||
border-color: #0056b3;
|
||||
background-color: #e9ecef;
|
||||
border-radius: 5px 5px 0 0;
|
||||
}
|
||||
|
||||
.about-wrap .nav-tab-active, .nav-tab-active, .nav-tab-active:hover {
|
||||
border-style: none;
|
||||
background-color: #ffffff;
|
||||
border-bottom-color: #ffffff;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
/* Weitere spezifische Anpassungen */
|
||||
#collapse-button {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* Spezielle Einstellungen Box */
|
||||
.bdp_setting_box {
|
||||
margin-right: 10px;
|
||||
background-color: #ffffff;
|
||||
padding: 15px;
|
||||
border: 1px solid #1d94cf;
|
||||
}
|
||||
|
||||
.bdp_setting_box label {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.bdp_setting_box label span {
|
||||
cursor: pointer;
|
||||
width: 10pt;
|
||||
color: #a0a0a0;
|
||||
}
|
||||
|
||||
@media screen and (min-width: 783px) {
|
||||
.wp-has-current-submenu li a {
|
||||
width: 210px !important;
|
||||
}
|
||||
}
|
||||
|
||||
.wp-submenu li a:hover {
|
||||
background-color: #e9ecef !important;
|
||||
color: #0056b3 !important;
|
||||
}
|
||||
|
||||
.current .menu-top .wp-menu-name, .wp-has-current-submenu .wp-menu-name {
|
||||
background-color: #0056b3 !important;
|
||||
border-style: none !important;
|
||||
width: 202px;
|
||||
}
|
||||
|
||||
@media screen and (min-width: 783px) {
|
||||
.wp-submenu, .wp-submenu-wrap {
|
||||
background-color: #f8f9fa !important;
|
||||
width: 220px !important;
|
||||
}
|
||||
|
||||
#adminmenu .current .menu-top .wp-menu-name {
|
||||
padding: 10px;
|
||||
width: 225px !important;
|
||||
}
|
||||
}
|
43
assets/password.js
Normal file
43
assets/password.js
Normal file
@ -0,0 +1,43 @@
|
||||
jQuery(document).ready(function($) {
|
||||
$( "<button class='button button-primary' disabled id='password_too_short'>" +
|
||||
php_vars.password_too_short_text + "</button>" ).insertBefore( ".submit" );
|
||||
|
||||
$("#password_too_short").css('display', 'none');
|
||||
|
||||
$(document).on('DOMSubtreeModified', '#pass-strength-result', function() {
|
||||
var strengthMeter = $(this).attr('class');
|
||||
var allowedStrengths = php_vars.allowed_strengths;
|
||||
|
||||
$( "[name='pw_weak']" ).css('visibility', 'hidden');
|
||||
$( '.pw-weak' ).css('visibility', 'hidden');
|
||||
$( '#pw-weak-text-label' ).css('visibility', 'hidden');
|
||||
|
||||
if (strengthMeter !== '') {
|
||||
if (allowedStrengths.includes(strengthMeter)) {
|
||||
$("[name='pw_weak']").prop("checked", true);
|
||||
$("[name='submit']").css('display', 'inline');
|
||||
$('#createusersub').css('display', 'inline');
|
||||
$('submit').onclick = function() {
|
||||
$('your-profile').submit();
|
||||
};
|
||||
$("#createusersub").onclick = function() {
|
||||
$('createuser').submit();
|
||||
};
|
||||
|
||||
$("#password_too_short").css('display', 'none');
|
||||
} else {
|
||||
$("#createusersub").css('display', 'none');
|
||||
$("[name='submit']").prop("disabled", true);
|
||||
$("[name='pw_weak']").prop("checked", false);
|
||||
$("[name='submit']").css('display', 'none');
|
||||
$('submit').onclick = function() {
|
||||
return false;
|
||||
};
|
||||
$("#createusersub").onclick = function() {
|
||||
return false;
|
||||
};
|
||||
$("#password_too_short").css('display', 'inline');
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
BIN
assets/rr.png
Normal file
BIN
assets/rr.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 132 KiB |
21
assets/searchtable.js
Normal file
21
assets/searchtable.js
Normal file
@ -0,0 +1,21 @@
|
||||
function searchTable(tableId, searchField) {
|
||||
var input, filter, table, tr, td, i, j, txtValue;
|
||||
input = searchField;
|
||||
filter = input.value.toUpperCase();
|
||||
table = document.getElementById(tableId);
|
||||
tr = table.getElementsByTagName("tr");
|
||||
for (i = 0; i < tr.length; i++) {
|
||||
td = tr[i].getElementsByTagName("td");
|
||||
for (j = 0; j < td.length; j++) {
|
||||
if (td[j]) {
|
||||
txtValue = td[j].textContent || td[j].innerText;
|
||||
if (txtValue.toUpperCase().indexOf(filter) > -1) {
|
||||
tr[i].style.display = "";
|
||||
break;
|
||||
} else {
|
||||
tr[i].style.display = "none";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -3,13 +3,11 @@
|
||||
width: 85%;
|
||||
margin: auto;
|
||||
padding: 10px;
|
||||
border-style: solid; border-color: #d0d0d0; border-radius: 10px; padding: 15px; border-width: 1px;
|
||||
box-shadow: 2px 2px 5px #c0c0c0;
|
||||
|
||||
}
|
||||
|
||||
.bdp_security_inner {
|
||||
border-style: solid; border-color: #d0d0d0; border-radius: 10px; padding: 15px; border-width: 1px;
|
||||
box-shadow: 2px 2px 5px #c0c0c0;
|
||||
|
||||
width: 80%;
|
||||
margin: 0 auto 40px;
|
||||
}
|
||||
@ -53,3 +51,15 @@
|
||||
.long_text {
|
||||
width: 80%;
|
||||
}
|
||||
|
||||
.bdp-kompass-no-blocked-ips
|
||||
{
|
||||
padding: 5px 10px;
|
||||
width: 90%;
|
||||
background-color: #ffffff;
|
||||
border-style: solid;
|
||||
border-color: #00a32a;
|
||||
border-width: 1px;
|
||||
font-weight: bold;
|
||||
font-size: 12pt;
|
||||
}
|
BIN
assets/woe.png
Normal file
BIN
assets/woe.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 73 KiB |
@ -1,87 +1,406 @@
|
||||
#adminmenu,
|
||||
#wpadminbar,
|
||||
#adminmenuwrap,
|
||||
#adminmenuback, #adminmenuwrap, #adminmenu, #adminmenu .wp-has-current-submenu > .wp-submenu {
|
||||
width: 250px;
|
||||
}
|
||||
|
||||
|
||||
#wpcontent, #wpfooter {
|
||||
margin-left: 230px;
|
||||
background-color: #ffffff !important;
|
||||
padding-left: 40px;
|
||||
}
|
||||
|
||||
#adminmenu .wp-submenu {
|
||||
left: 210px;
|
||||
}
|
||||
|
||||
#adminmenu .wp-not-current-submenu .wp-submenu, .folded #adminmenu .wp-has-current-submenu .wp-submenu, #adminmenu .ame-has-deep-submenu:not(.ame-has-highlighted-item) > .wp-submenu {
|
||||
width: 30px;
|
||||
}
|
||||
|
||||
body {
|
||||
--ame-ms-menu-width: 250px;
|
||||
}
|
||||
|
||||
@media screen and (min-width: 783px) {
|
||||
body:not(.folded) #widgets-editor .interface-interface-skeleton {
|
||||
left: 250px;
|
||||
}
|
||||
|
||||
|
||||
#adminmenu .wp-not-current-submenu .wp-submenu {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@media screen and (max-width: 960px) and (min-width: 783px) {
|
||||
body.auto-fold #widgets-editor .interface-interface-skeleton {
|
||||
left: var(--ame-ms-collapsed-menu-width, 36px);
|
||||
}
|
||||
|
||||
}
|
||||
#wpwrap {
|
||||
background-color: #ffffff;
|
||||
}
|
||||
#adminmenuback {
|
||||
background-color: #ffcb04 !important;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
#toplevel_page_limit-login-attempts,
|
||||
#wp-admin-bar-llar-root {
|
||||
#adminmenu .wp-submenu a {
|
||||
font-weight: 200;
|
||||
}
|
||||
#adminmenu > li {
|
||||
padding: 10px 5px;
|
||||
font-weight: bolder;
|
||||
}
|
||||
|
||||
#adminmenu > li a {
|
||||
color: #020918;
|
||||
}
|
||||
|
||||
#adminmenu > li div.wp-menu-image:before {
|
||||
color: #020918;
|
||||
}
|
||||
|
||||
#adminmenu > li a:hover, #adminmenu > li.menu-top:hover, #adminmenu > li.opensub > a.menu-top, #adminmenu > li > a.menu-top:focus {
|
||||
color: #020918;
|
||||
}
|
||||
|
||||
#adminmenu > li.menu-top:hover, #adminmenu > li.opensub > a.menu-top, #adminmenu > li > a.menu-top:focus {
|
||||
background-color: rgb(240, 244, 247);
|
||||
color: #1d4899 !important;
|
||||
}
|
||||
|
||||
#adminmenu > li.menu-top:hover div.wp-menu-image:before, #adminmenu > li.menu-top > a:focus div.wp-menu-image:before, #adminmenu > li.opensub > a.menu-top div.wp-menu-image:before {
|
||||
color: #1d4899;
|
||||
}
|
||||
|
||||
#adminmenu > li .wp-submenu, #adminmenu > li.wp-has-current-submenu .wp-submenu, #adminmenu > li.wp-has-current-submenu.opensub .wp-submenu, .folded #adminmenu > li.wp-has-current-submenu .wp-submenu a.wp-has-current-submenu:focus + .wp-submenu {
|
||||
background: #ffcb04;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.nav-tab {
|
||||
border-color: rgb(128, 159, 245);
|
||||
background-color: rgba(185, 203, 255, 0.84);
|
||||
border-radius: 5px 5px 0 0;
|
||||
}
|
||||
|
||||
/* Active tabs use a bottom border color that matches the page background color. */
|
||||
.about-wrap .nav-tab-active,
|
||||
.nav-tab-active,
|
||||
.nav-tab-active:hover {
|
||||
border-style: none;
|
||||
background-color: #F0F4F7;
|
||||
border-bottom-color: #fff;
|
||||
box-shadow: 2px 2px 5px #c0c0c0;
|
||||
}
|
||||
|
||||
|
||||
.button-primary {
|
||||
border-style: none;
|
||||
background-color: #F0F4F7 !important;
|
||||
color: #404040 !important;
|
||||
box-shadow: 2px 2px 5px #c0c0c0;
|
||||
}
|
||||
|
||||
#adminmenu > li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after {
|
||||
border-right-color: #ffcb04;
|
||||
}
|
||||
|
||||
#adminmenu > li .wp-submenu .wp-submenu-head {
|
||||
color: #1d4899;
|
||||
}
|
||||
|
||||
.wp-has-current-submenu:hover {
|
||||
background-color: #fafafa !important;
|
||||
}
|
||||
|
||||
.wp-submenu li a {
|
||||
padding: 10px 0px 10px 10px;
|
||||
padding-top: 10px !important;
|
||||
padding-bottom: 10px !important;
|
||||
}
|
||||
|
||||
#collapse-button {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.wp-submenu-wrap,
|
||||
.wp-submenu-head {
|
||||
color: #FFFFFF !important;
|
||||
.bdp_setting_box {
|
||||
margin-right: 10px;
|
||||
background-color: #ffffff;
|
||||
padding: 15px;
|
||||
border-style: solid;
|
||||
border-width: 1px;
|
||||
border-top-width: 0 !important;
|
||||
border-color: #1d94cf;
|
||||
}
|
||||
|
||||
.wp-has-submenu,
|
||||
.wp-not-current-submenu,
|
||||
.menu-top,
|
||||
|
||||
#collapse-button,
|
||||
#wp-submenu ul,
|
||||
#wp-admin-bar-site-name,
|
||||
.ab-item
|
||||
{
|
||||
color: #46484d !important;
|
||||
font-weight: bold !important;
|
||||
}
|
||||
.wp-menu-open ,
|
||||
.wp-has-current-submenu li,
|
||||
#adminmenu ul
|
||||
{
|
||||
background-color: #3163bd !important;
|
||||
color: #FFFFFF !important;
|
||||
.bdp_setting_box:first-of-type {
|
||||
border-top-width: 1px !important;
|
||||
}
|
||||
|
||||
.wp-not-current-submenu:hover,
|
||||
#wpadminbar .ab-item:hover
|
||||
{
|
||||
background-color: #3163bd !important;
|
||||
color: #FFFFFF !important;
|
||||
.bdp_setting_box label {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.bdp_setting_box label span {
|
||||
cursor: pointer;
|
||||
width: 10pt;
|
||||
color: #a0a0a0;
|
||||
}
|
||||
|
||||
@media screen and (min-width: 783px) {
|
||||
.wp-has-current-submenu li a {
|
||||
width: 210px !important;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.ab-submenu {
|
||||
.wp-submenu li a:hover {
|
||||
background-color: rgb(240, 244, 247) !important;
|
||||
color: #1d4899 !important;
|
||||
}
|
||||
|
||||
.current .menu-top .wp-menu-name,
|
||||
.wp-has-current-submenu .wp-menu-name {
|
||||
background-color: #ffcb04 !important;
|
||||
border-style: none !important;
|
||||
width: 202px;
|
||||
}
|
||||
|
||||
.wp-has-submenu:after {
|
||||
border-right-color: #ffcb04 !important;
|
||||
}
|
||||
|
||||
@media screen and (min-width: 783px) {
|
||||
.wp-submenu, .wp-submenu-wrap {
|
||||
background-color: #fafafa !important;
|
||||
width: 220px !important;
|
||||
}
|
||||
|
||||
#adminmenu .current .menu-top .wp-menu-name {
|
||||
padding: 10px;
|
||||
width: 225px !important;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
ul#adminmenu a.wp-has-current-submenu::after, ul#adminmenu > li.current > a.current::after,
|
||||
.auto-fold ul#adminmenu a.wp-has-current-submenu::after, .auto-fold ul#adminmenu > li.current > a.current::after {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
#adminmenu .wp-has-current-submenu .wp-submenu .wp-submenu-head, #adminmenu .wp-menu-arrow, #adminmenu .wp-menu-arrow div, #adminmenu li.current a.menu-top, #adminmenu li.wp-has-current-submenu a.wp-has-current-submenu
|
||||
{
|
||||
background-color: #fafafa;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 782px) {
|
||||
|
||||
#adminmenu > li.menu-top:hover, #adminmenu > li.opensub > a.menu-top, #adminmenu > li > a.menu-top:focus {
|
||||
background-color: #fafafa;
|
||||
color: #1d4899 !important;
|
||||
width: 285px !important;
|
||||
}
|
||||
|
||||
#adminmenu .current .menu-top{
|
||||
width: 280px;
|
||||
}
|
||||
|
||||
#adminmenu .current .menu-top .wp-menu-name {
|
||||
width: 245px !important;
|
||||
}
|
||||
|
||||
#adminmenu > li .wp-submenu, #adminmenu > li.wp-has-current-submenu .wp-submenu, #adminmenu > li.wp-has-current-submenu.opensub .wp-submenu, .folded #adminmenu > li.wp-has-current-submenu .wp-submenu a.wp-has-current-submenu:focus + .wp-submenu {
|
||||
width: 285px !important;
|
||||
}
|
||||
|
||||
|
||||
.wp-submenu:hover,
|
||||
.wp-submenu .wp-submenu-wrap:hover,
|
||||
.nav-tab-active:hover {
|
||||
border-style: none;
|
||||
background-color: #fafafa !important;
|
||||
}
|
||||
|
||||
|
||||
#adminmenuback, #adminmenuwrap, #adminmenu, #adminmenu .wp-has-current-submenu > .wp-submenu {
|
||||
width: 300px !important;
|
||||
}
|
||||
.wp-submenu,
|
||||
.wp-submenu .wp-submenu-wrap li,
|
||||
.auto-fold #adminmenu li.menu-top .wp-submenu > li > a {
|
||||
background-color: #fafafa !important;
|
||||
width: 285px !important;
|
||||
}
|
||||
|
||||
#wp-admin-bar-updates,
|
||||
#wp-admin-bar-comments,
|
||||
#wp-admin-bar-new-content,
|
||||
#wp-admin-bar-wp-logo
|
||||
{
|
||||
#wp-admin-bar-new-content {
|
||||
display: none !important;
|
||||
}
|
||||
#wp-admin-bar-kompass_gruppen {
|
||||
display: block !important;
|
||||
}
|
||||
|
||||
#wp-admin-bar-kompass_events {
|
||||
display: block !important;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
#adminmenu div.wp-menu-name {
|
||||
|
||||
}
|
||||
|
||||
#adminmenu > li .wp-submenu a, #adminmenu > li.wp-has-current-submenu .wp-submenu a, #adminmenu > li a.wp-has-current-submenu:focus + .wp-submenu a, .folded #adminmenu > li.wp-has-current-submenu .wp-submenu a, #adminmenu > li.wp-has-current-submenu.opensub .wp-submenu a {
|
||||
color: #020918;
|
||||
padding-left: 25px;
|
||||
|
||||
}
|
||||
|
||||
|
||||
#adminmenu > li .wp-submenu a:focus, #adminmenu > li .wp-submenu a:hover, #adminmenu > li.wp-has-current-submenu .wp-submenu a:focus, #adminmenu > li.wp-has-current-submenu .wp-submenu a:hover, #adminmenu > li a.wp-has-current-submenu:focus + .wp-submenu a:focus, #adminmenu > li a.wp-has-current-submenu:focus + .wp-submenu a:hover, .folded #adminmenu > li.wp-has-current-submenu .wp-submenu a, #adminmenu > li.wp-has-current-submenu.opensub .wp-submenu a:focus, #adminmenu > li.wp-has-current-submenu.opensub .wp-submenu a:hover {
|
||||
color: #ffcb04;
|
||||
background-color: #ffffff;
|
||||
}
|
||||
|
||||
#adminmenu > li .wp-submenu li.current a, #adminmenu > li a.wp-has-current-submenu:focus + .wp-submenu li.current a, #adminmenu > li.wp-has-current-submenu.opensub .wp-submenu li.current a {
|
||||
color: #010a1a;
|
||||
}
|
||||
|
||||
#adminmenu > li .wp-submenu li.current a:hover, #adminmenu > li .wp-submenu li.current a:focus, #adminmenu > li a.wp-has-current-submenu:focus + .wp-submenu li.current a:hover, #adminmenu > li a.wp-has-current-submenu:focus + .wp-submenu li.current a:focus, #adminmenu > li.wp-has-current-submenu.opensub .wp-submenu li.current a:hover, #adminmenu > li.wp-has-current-submenu.opensub .wp-submenu li.current a:focus {
|
||||
color: #ffcb04;
|
||||
background-color: #ffffff;
|
||||
}
|
||||
|
||||
#adminmenu > li.current a.menu-top, #adminmenu > li.wp-has-current-submenu a.wp-has-current-submenu, #adminmenu > li.wp-has-current-submenu .wp-submenu .wp-submenu-head, .folded #adminmenu > li.current.menu-top {
|
||||
color: #1d4899;
|
||||
}
|
||||
|
||||
#adminmenu > li.wp-has-current-submenu div.wp-menu-image:before, #adminmenu a.current:hover div.wp-menu-image:before, #adminmenu > li.current div.wp-menu-image::before, #adminmenu > li.wp-has-current-submenu a:focus div.wp-menu-image:before, #adminmenu > li.wp-has-current-submenu.opensub div.wp-menu-image:before, #adminmenu > li:hover div.wp-menu-image:before, #adminmenu > li a:focus div.wp-menu-image:before, #adminmenu > li.opensub div.wp-menu-image:before, .ie8 #adminmenu > li.opensub div.wp-menu-image:before, #adminmenu a.current:hover div.wp-menu-image:before {
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
#adminmenu > li .awaiting-mod, #adminmenu > li .update-plugins {
|
||||
background: #ffcb04 !important;
|
||||
color: #1d4899;
|
||||
}
|
||||
|
||||
#adminmenu > li .current a .awaiting-mod, #adminmenu > li a.wp-has-current-submenu .update-plugins, #adminmenu > li:hover a .awaiting-mod, #adminmenu > li.menu-top:hover > a .update-plugins {
|
||||
color: #1d4899;
|
||||
background: #ffcb04;
|
||||
}
|
||||
|
||||
#adminmenuback, #adminmenuwrap, #adminmenu {
|
||||
background-color: #fafafa;
|
||||
|
||||
}
|
||||
|
||||
#adminmenuback {
|
||||
box-shadow: 10px 10px 5px rgb(240, 244, 247);
|
||||
}
|
||||
|
||||
@media screen and (min-width: 783px) {
|
||||
|
||||
|
||||
}
|
||||
|
||||
#wpadminbar {
|
||||
background-color: rgb(240, 244, 247);
|
||||
color: #1d4899;
|
||||
|
||||
|
||||
}
|
||||
|
||||
#wpadminbar .ab-item, #wpadminbar a.ab-item, #wpadminbar > #wp-toolbar span.ab-label, #wpadminbar > #wp-toolbar span.noticon {
|
||||
color: #1d4899;
|
||||
}
|
||||
|
||||
#wpadminbar .ab-icon, #wpadminbar .ab-icon:before, #wpadminbar .ab-item:before, #wpadminbar .ab-item:after {
|
||||
color: #1d4899;
|
||||
}
|
||||
|
||||
#wpadminbar:not(.mobile) .ab-top-menu > li:hover > .ab-item, #wpadminbar:not(.mobile) .ab-top-menu > li > .ab-item:focus, #wpadminbar.nojq .quicklinks .ab-top-menu > li > .ab-item:focus, #wpadminbar.nojs .ab-top-menu > li.menupop:hover > .ab-item, #wpadminbar .ab-top-menu > li.menupop.hover > .ab-item {
|
||||
background-color: #ffffff;
|
||||
color: #ffcb04;
|
||||
}
|
||||
|
||||
#wpadminbar:not(.mobile) > #wp-toolbar li:hover span.ab-label, #wpadminbar:not(.mobile) > #wp-toolbar li.hover span.ab-label, #wpadminbar:not(.mobile) > #wp-toolbar a:focus span.ab-label, #wpadminbar:not(.mobile) li:hover .ab-icon:before, #wpadminbar:not(.mobile) li:hover .ab-item:before, #wpadminbar:not(.mobile) li:hover .ab-item:after, #wpadminbar:not(.mobile) li:hover #adminbarsearch:before {
|
||||
color: #ffcb04;
|
||||
background-color: #ffffff;
|
||||
}
|
||||
|
||||
#wpadminbar .menupop .ab-sub-wrapper {
|
||||
background-color: #ffffff;
|
||||
}
|
||||
|
||||
#wpadminbar .quicklinks .menupop ul.ab-sub-secondary, #wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu {
|
||||
background-color: #ffffff;
|
||||
}
|
||||
|
||||
#wpadminbar .ab-submenu .ab-item, #wpadminbar .quicklinks .menupop ul li a, #wpadminbar .quicklinks .menupop.hover ul li a, #wpadminbar.nojs .quicklinks .menupop:hover ul li a {
|
||||
color: #1d4899;
|
||||
}
|
||||
|
||||
#wpadminbar .quicklinks li .blavatar, #wpadminbar .menupop .menupop > .ab-item:before {
|
||||
color: #f3f3f1;
|
||||
}
|
||||
|
||||
#wpadminbar .quicklinks .menupop ul li a {
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
#wpadminbar .quicklinks .menupop ul li a:hover, #wpadminbar .quicklinks .menupop ul li a:focus, #wpadminbar .quicklinks .menupop ul li a:hover strong, #wpadminbar .quicklinks .menupop ul li a:focus strong, #wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover > a, #wpadminbar .quicklinks .menupop.hover ul li a:hover, #wpadminbar .quicklinks .menupop.hover ul li a:focus, #wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover, #wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus, #wpadminbar li:hover .ab-icon:before, #wpadminbar li:hover .ab-item:before, #wpadminbar li a:focus .ab-icon:before, #wpadminbar li .ab-item:focus:before, #wpadminbar li .ab-item:focus .ab-icon:before, #wpadminbar li.hover .ab-icon:before, #wpadminbar li.hover .ab-item:before, #wpadminbar li:hover #adminbarsearch:before, #wpadminbar li #adminbarsearch.adminbar-focused:before, #wpadminbar .quicklinks li a:hover .blavatar, #wpadminbar .quicklinks li a:focus .blavatar, #wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover > a .blavatar, #wpadminbar .menupop .menupop > .ab-item:hover:before, #wpadminbar.mobile .quicklinks .ab-icon:before, #wpadminbar.mobile .quicklinks .ab-item:before {
|
||||
color: #1d4899;
|
||||
background-color: rgb(240, 244, 247);
|
||||
}
|
||||
|
||||
#wpadminbar #wp-admin-bar-user-info .display-name {
|
||||
color: #1d4899;
|
||||
}
|
||||
|
||||
#wpadminbar #wp-admin-bar-user-info a:hover .display-name {
|
||||
color: #ffcb04;
|
||||
background-color: #ffffff;
|
||||
}
|
||||
|
||||
#wpadminbar #wp-admin-bar-user-info .username {
|
||||
color: #1d4899;
|
||||
}
|
||||
|
||||
#wpadminbar.mobile .quicklinks .hover .ab-icon:before, #wpadminbar.mobile .quicklinks .hover .ab-item:before, #wpadminbar #adminbarsearch:before {
|
||||
color: #f3f3f1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
li.wp-has-submenu.wp-not-current-submenu.opensub:after,
|
||||
li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after,
|
||||
|
||||
.wp-menu-name:after {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.bdp_submit:hover {
|
||||
color: #ffffff;
|
||||
background-color: #3163bd;
|
||||
cursor: pointer;
|
||||
border-radius: 5px;
|
||||
#adminmenu .wp-menu-arrow div {
|
||||
display: none !important;
|
||||
background-color: #FFFFFF !important;
|
||||
}
|
||||
|
||||
.bdp_submit {
|
||||
background-color: #ffffff;
|
||||
padding: 5px 25px;
|
||||
border-style: solid;
|
||||
border-width: 1px;
|
||||
border-color: #769be7;
|
||||
cursor: pointer;
|
||||
border-radius: 5px;
|
||||
box-shadow: 2px 2px 2px #d0d0d0;
|
||||
.bdp-newplugin-button:hover {
|
||||
color: #ffffff !important;
|
||||
background-color: #1d4899 !important;
|
||||
}
|
||||
|
||||
#bdp_success {
|
||||
background-color: #ffffff;
|
||||
border-color: #c3c4c7;
|
||||
border-left-color: #00a32a;
|
||||
padding: 10px 12px;
|
||||
margin: 5px 0 15px;
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
border-left-width: 4px;
|
||||
width: 97%;
|
||||
|
||||
.bdp-newplugin-button {
|
||||
background-color: #ffffff !important;
|
||||
padding: 5px 20px !important;
|
||||
cursor: pointer !important;
|
||||
color: #1d4899 !important;
|
||||
}
|
269
bdp-kompass.php
269
bdp-kompass.php
@ -2,201 +2,148 @@
|
||||
/**
|
||||
* Plugin Name: BdP Kompass
|
||||
* Description: Wordpress-Plugin zur Unterstützung von Stämmen im Bund der Pfadfinderinnen und Pfadfinder e.V. zur optimalen Verwaltung eurer Webseite
|
||||
* Version: 4.1.1
|
||||
* Version: 4.10.1
|
||||
* Tags: bdp, utility, helper
|
||||
* Requires at least: 6.0
|
||||
* Requires PHP: 8.2
|
||||
* Author: Thomas Günther
|
||||
* Author URI: https://www.sachsen.pfadfinden.de
|
||||
* Update URI: https://lv-sachsen-main.bdp.mein-verein.online/wordpress/
|
||||
* Update URI: http://lv-sachsen-main.bdp.mein-verein.online/wordpress/
|
||||
* Text Domain: bdp-kompass
|
||||
*/
|
||||
|
||||
use Bdp\Modules\EventParticipants\Controllers\MainController as EventsMain;
|
||||
use Bdp\Modules\KompassSettings\Controllers\SettingsPage as KomnpassSettings;
|
||||
use Bdp\Modules\Mail\Controllers\MailController;
|
||||
use Bdp\Modules\Mail\Controllers\MailSettingsController;
|
||||
use Bdp\Modules\Security\Security;
|
||||
use Bdp\Modules\Seo\Seo;
|
||||
use ProtectLogin\Modules\LimitLoginAttempts\Controllers\LoginHandler;
|
||||
|
||||
|
||||
define('BDP_LV_PLUGIN_DIR', ABSPATH . '/wp-content/plugins/bdp-kompass/');
|
||||
define('BDP_LV_PLUGIN_URL', plugin_dir_url(__FILE__));
|
||||
define('BDP_LV_PLUGIN_SLUG', 'bdp-kompass');
|
||||
|
||||
require_once BDP_LV_PLUGIN_DIR . 'core/fileloader.php';
|
||||
|
||||
|
||||
bdp_create_menu_structure();
|
||||
require_once dirname(__FILE__) . '/includes/setup.php';
|
||||
|
||||
function bdp_plugin_install() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
function bdp_plugin_init() {
|
||||
bdp_kompass_load_plugin_textdomain();
|
||||
Security::ProhibitBots();
|
||||
Security::SetPageFilters();
|
||||
|
||||
if ( !file_exists( dirname( BDP_LV_STARTUP_FILE ) . '/../protect-login/protect-login.php' ) ) {
|
||||
$allowed_ips = get_option('kompass_limit_login_allowlist', []);
|
||||
$blocked_ips = get_option('kompass_limit_login_blocklist', []);
|
||||
$lockouts = get_option('protect_login_limit_login_lockouts', []);
|
||||
|
||||
kompass_install_plugin('https://downloads.wordpress.org/plugin/protect-login.latest-stable.zip', 'protect-login');
|
||||
|
||||
update_option('protect_login_limit_login_blocklist', $blocked_ips);
|
||||
update_option('protect_login_limit_login_allowlist', $allowed_ips);
|
||||
foreach ($lockouts as $address => $duration) {
|
||||
LoginHandler::lockout($address);
|
||||
}
|
||||
}
|
||||
|
||||
if (null == get_option('kompass_already_installed', null)) {
|
||||
Seo::setup();
|
||||
Calendar::setup();
|
||||
Security::setup();
|
||||
update_option('kompass_installation', true);
|
||||
update_option('kompass_already_installed', true);
|
||||
wp_redirect( 'site-health.php?tab=bdp_enhanced_security');
|
||||
}
|
||||
Seo::importVerificationKeys();
|
||||
|
||||
}
|
||||
|
||||
function bdp_plugin_init()
|
||||
{
|
||||
remove_menu_page('admin.php?page=limit-login-attempts&tab=dashboard');
|
||||
if (get_option('kompass_installation') == true) {
|
||||
delete_option('kompass_installation');
|
||||
wp_redirect('admin.php?page=bdp-kompass%2Fmodules%2Findex.php&loadmodule=firstusage');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
register_activation_hook(__FILE__, 'bdp_plugin_install');
|
||||
add_action('init', 'bdp_plugin_init');
|
||||
add_action('admin_menu', function () {
|
||||
bdp_kompass_load_plugin_textdomain();
|
||||
new KomnpassSettings();
|
||||
new EventsMain();
|
||||
new MailController();
|
||||
});
|
||||
add_action('wp_ajax_bdp_kompass_show_ajax', 'bdp_kompass_load_ajax_content');
|
||||
add_action('wp_ajax_nopriv_bdp_kompass_show_ajax', 'bdp_kompass_load_ajax_content');
|
||||
|
||||
function register_custom_theme_directory() {
|
||||
$file = ABSPATH . '/wp-content/plugins/bdp-kompass/buena/' ;
|
||||
|
||||
system('mkdir ' . ABSPATH . 'wp-content/themes/buena/');
|
||||
system('cp -r ' . $file . '* ' . ABSPATH . 'wp-content/themes/buena/');
|
||||
|
||||
switch_theme('buena');
|
||||
if (is_dir(ABSPATH . '/wp-content/themes/mareike-theme/')) {
|
||||
return;
|
||||
}
|
||||
$file = ABSPATH . '/wp-content/plugins/bdp-kompass/lib/mareike-theme/' ;
|
||||
|
||||
#add_action( 'after_setup_theme', 'register_custom_theme_directory' );
|
||||
|
||||
class BdpVersionChecker
|
||||
{
|
||||
public $plugin_slug;
|
||||
public $version;
|
||||
public $cache_key;
|
||||
public $cache_allowed;
|
||||
public $updateUrl;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$plugin_data = get_plugin_data(__FILE__);
|
||||
$this->plugin_slug = 'bdp-kompass';
|
||||
$this->updateUrl = $plugin_data['UpdateURI'] . '/info.json';
|
||||
$this->version = $plugin_data['Version'];
|
||||
$this->cache_key = 'bdp_kompass_upd';
|
||||
$this->cache_allowed = true;
|
||||
|
||||
add_filter('plugins_api', array($this, 'info'), 20, 3);
|
||||
add_filter('site_transient_update_plugins', array($this, 'update'));
|
||||
add_action('upgrader_process_complete', array($this, 'purge'), 10, 2);
|
||||
}
|
||||
|
||||
public function request()
|
||||
{
|
||||
$remote = get_transient($this->cache_key);
|
||||
|
||||
if (false === $remote || !$this->cache_allowed) {
|
||||
|
||||
$remote = wp_remote_get(
|
||||
$this->updateUrl
|
||||
,
|
||||
array(
|
||||
'timeout' => 10,
|
||||
'headers' => array(
|
||||
'Accept' => 'application/json'
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
if (
|
||||
is_wp_error($remote)
|
||||
|| 200 !== wp_remote_retrieve_response_code($remote)
|
||||
|| empty(wp_remote_retrieve_body($remote))
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
|
||||
set_transient($this->cache_key, $remote, 3600);
|
||||
}
|
||||
|
||||
$remote = json_decode(wp_remote_retrieve_body($remote));
|
||||
return $remote;
|
||||
system('mkdir ' . ABSPATH . '/wp-content/themes/mareike-theme/');
|
||||
system('cp -r ' . $file . '* ' . ABSPATH . '/wp-content/themes/mareike-theme/');
|
||||
|
||||
}
|
||||
|
||||
|
||||
function info($res = '', $action = '', $args = '')
|
||||
{
|
||||
if (!isset($args->slug) || $args->slug !== $this->plugin_slug) {
|
||||
return $res;
|
||||
function enqueue_custom_password_js() {
|
||||
wp_enqueue_script( 'kompass-ajax', BDP_LV_PLUGIN_URL . '/assets/ajax.js');
|
||||
wp_enqueue_script( 'searchable-table', BDP_LV_PLUGIN_URL . '/assets/searchtable.js');
|
||||
}
|
||||
|
||||
// get updates
|
||||
$remote = $this->request();
|
||||
if (!$remote) {
|
||||
return $res;
|
||||
|
||||
add_action( 'after_setup_theme', 'kompass_after_setup_theme' );
|
||||
|
||||
add_action( 'admin_menu', ['Bdp\Modules\KompassSettings\Controllers\SettingsPage', 'add_menu'] );
|
||||
|
||||
|
||||
|
||||
function crp_custom_register_form() {
|
||||
|
||||
}
|
||||
add_action('register_form', ['Bdp\Modules\Registration\Controllers\ExtendRegistrationForm', 'execute']);
|
||||
|
||||
// Validate registration form fields
|
||||
add_filter('registration_errors', ['Bdp\Modules\Registration\Controllers\ExtendRegistrationForm', 'error_messages'], 10, 3);
|
||||
|
||||
// Save custom user meta data
|
||||
add_action('user_register', ['\Bdp\Modules\Registration\Controllers\SaveRegistration', 'execute']);
|
||||
|
||||
// Handle account activation
|
||||
|
||||
add_action('init', ['Bdp\Modules\Registration\Controllers\SaveRegistration', 'activate_user']);
|
||||
|
||||
// Prevent login if account is not activated
|
||||
|
||||
add_filter('authenticate', ['Bdp\Modules\Registration\Controllers\SaveRegistration', 'check_user_activation'], 30, 3);
|
||||
|
||||
function crp_allow_umlauts_in_usernames($username, $raw_username, $strict) {
|
||||
if (!$strict) {
|
||||
return $username;
|
||||
}
|
||||
|
||||
$res = new stdClass();
|
||||
// Allow letters, numbers, underscores, spaces, periods, hyphens, and umlauts
|
||||
$username = preg_replace('/[^a-zA-Z0-9 _.\-äöüÄÖÜß]/', '', $raw_username);
|
||||
|
||||
$res->name = $remote->name;
|
||||
$res->slug = $remote->slug;
|
||||
$res->version = $remote->version;
|
||||
$res->tested = $remote->tested;
|
||||
$res->requires = $remote->requires;
|
||||
$res->author = $remote->author;
|
||||
$res->author_profile = $remote->author_profile;
|
||||
$res->download_link = $remote->download_url;
|
||||
$res->trunk = $remote->download_url;
|
||||
$res->requires_php = $remote->requires_php;
|
||||
$res->last_updated = $remote->last_updated;
|
||||
return $username;
|
||||
}
|
||||
add_filter('sanitize_user', 'crp_allow_umlauts_in_usernames', 10, 3);
|
||||
|
||||
$res->sections = array(
|
||||
'description' => $remote->sections->description,
|
||||
'installation' => $remote->sections->installation,
|
||||
'changelog' => $remote->sections->changelog
|
||||
);
|
||||
|
||||
if (!empty($remote->banners)) {
|
||||
$res->banners = array(
|
||||
'low' => $remote->banners->low,
|
||||
'high' => $remote->banners->high
|
||||
);
|
||||
add_action('login_message', ['Bdp\Modules\Registration\Controllers\SaveRegistration','display_custom_message']);
|
||||
|
||||
if (false === (bool)get_option('user_can_register', false)) {
|
||||
|
||||
add_filter('registration_errors', 'kompass_disable_user_registration', 10, 3);
|
||||
|
||||
function kompass_disable_user_registration($errors, $sanitized_user_login, $user_email) {
|
||||
$errors->add('registration_disabled', __('Die Registrierung ist derzeit deaktiviert.'));
|
||||
return $errors;
|
||||
}
|
||||
|
||||
return $res;
|
||||
add_action('login_enqueue_scripts', 'kompass_remove_register_link');
|
||||
|
||||
function kompass_remove_register_link() {
|
||||
?>
|
||||
<style>
|
||||
#registerform {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
public function update($transient)
|
||||
{
|
||||
if (empty($transient->checked)) {
|
||||
return $transient;
|
||||
}
|
||||
|
||||
$remote = $this->request();
|
||||
if(
|
||||
$remote
|
||||
&& version_compare( $this->version, $remote->version, '<' )
|
||||
&& version_compare( $remote->requires, get_bloginfo( 'version' ), '<=' )
|
||||
&& version_compare( $remote->requires_php, PHP_VERSION, '<' )
|
||||
) {
|
||||
$res = new stdClass();
|
||||
$res->slug = $this->plugin_slug;
|
||||
$res->plugin = plugin_basename( __FILE__ );
|
||||
$res->new_version = $remote->version;
|
||||
$res->tested = $remote->tested;
|
||||
$res->package = $remote->download_url;
|
||||
|
||||
$transient->response[ $res->plugin ] = $res;
|
||||
|
||||
} else {
|
||||
$res = new stdClass();
|
||||
$res->slug = $this->plugin_slug;
|
||||
$res->plugin = plugin_basename( __FILE__ );
|
||||
$transient->no_update[ $res->plugin ] = $res;
|
||||
}
|
||||
|
||||
return $transient;
|
||||
}
|
||||
|
||||
public function purge($upgrader, $options)
|
||||
{
|
||||
if (
|
||||
$this->cache_allowed
|
||||
&& 'update' === $options['action']
|
||||
&& 'plugin' === $options['type']
|
||||
) {
|
||||
delete_transient($this->cache_key);
|
||||
</style>
|
||||
<?php
|
||||
}
|
||||
}
|
||||
}
|
||||
$class = new BdpVersionChecker();
|
||||
|
||||
add_filter( 'plugins_api', array( $class, 'info' ), 20, 3 );
|
||||
MailSettingsController::set_smtp_if_required();
|
||||
|
||||
|
||||
|
@ -1,96 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<!--[if IE 7]>
|
||||
<html class="ie ie7" <?php language_attributes(); ?>>
|
||||
<![endif]-->
|
||||
<!--[if IE 8]>
|
||||
<html class="ie ie8" <?php language_attributes(); ?>>
|
||||
<![endif]-->
|
||||
<!--[if !(IE 7) | !(IE 8) ]><!-->
|
||||
<html <?php language_attributes(); ?>>
|
||||
<!--<![endif]-->
|
||||
<head>
|
||||
<meta charset="<?php bloginfo( 'charset' ); ?>" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="shortcut icon" href="<?php echo esc_url( get_template_directory_uri() ); ?>/img/favicon.ico" />
|
||||
<link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>" />
|
||||
<?php if ( is_singular() ) wp_enqueue_script( 'comment-reply' ); ?>
|
||||
<?php wp_head(); ?>
|
||||
</head>
|
||||
<!-- FIXME: Mehr ARIA role setzen -->
|
||||
<body <?php body_class(); ?>>
|
||||
<div id="wrap"><!-- FIXME: Klassen hfeed, site? -->
|
||||
<header id="header" role="banner"><!-- FIXME: Klasse site-header? -->
|
||||
<hgroup id="branding">
|
||||
<h1 class="site-title">
|
||||
<a href="<?php echo esc_url( home_url( '/' ) ); ?>" title="<?php _e( 'Zurück zur Startseite', 'buena-theme' ); ?>">
|
||||
<img alt="Bund der Pfadfinderinnen und Pfadfinder" src="<?php echo esc_url( get_template_directory_uri() ); ?>/img/bundeszeichen.png" srcset="<?php echo esc_url( get_template_directory_uri() ); ?>/img/bundeszeichen.png 1x, <?php echo esc_url( get_template_directory_uri() ); ?>/img/bundeszeichen@2x.png 2x" width="390" height="79" />
|
||||
</a>
|
||||
</h1>
|
||||
<h2 class="site-description">
|
||||
<?php echo esc_html( get_bloginfo( 'name', 'display' ) ); ?>
|
||||
</h2>
|
||||
</hgroup>
|
||||
<nav class="screen-reader-text">
|
||||
<!-- FIXME: Tollere Navigation ausdenken -->
|
||||
<a href="#content">
|
||||
<?php _e( 'Zum Inhalt springen', 'buena-theme' ); ?>
|
||||
</a>
|
||||
</nav>
|
||||
<?php do_action( 'buena_search_form' ); ?>
|
||||
</header>
|
||||
<div id="left">
|
||||
<?php wp_nav_menu( [ 'theme_location' => 'primary', 'depth' => 2, 'container' => 'nav', 'container_class' => 'nav-menu' ] ); ?>
|
||||
<?php if ( is_active_sidebar( 'below-navigation' ) ): ?>
|
||||
<ul class="widgets">
|
||||
<?php dynamic_sidebar( 'below-navigation' ); ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<div id="teaser">
|
||||
<?php if ( is_page() || have_posts() && is_single() ): the_post(); ?>
|
||||
<?php if ( has_post_thumbnail() ): ?>
|
||||
<?php the_post_thumbnail( 'poster', [ 'alt' => '' ] ); ?>
|
||||
<?php else: ?>
|
||||
<img src="<?php header_image(); ?>" height="<?php echo get_custom_header()->height; ?>" width="<?php echo get_custom_header()->width; ?>" alt="" />
|
||||
<?php endif; ?>
|
||||
<div id="teaserTitle">
|
||||
<h2><?php the_title(); ?></h2>
|
||||
</div>
|
||||
<?php rewind_posts(); ?>
|
||||
<?php elseif ( get_header_image() ): ?>
|
||||
<img src="<?php header_image(); ?>" height="<?php echo get_custom_header()->height; ?>" width="<?php echo get_custom_header()->width; ?>" alt="" />
|
||||
<div id="teaserTitle">
|
||||
<h2><?php bloginfo( 'description' ); ?></h2>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<div id="main" role="main">
|
||||
<div id="content">
|
||||
<?php if ( have_posts() ): ?>
|
||||
<?php while ( have_posts() ): the_post(); ?>
|
||||
<?php get_template_part( 'content', get_post_format() ); ?>
|
||||
<?php endwhile; ?>
|
||||
<?php else: // FIXME: Wenn berechtigt: Erstellen anbieten ?>
|
||||
<article id="post-0" class="post no-results not-found">
|
||||
<?php _e( 'Nicht gefunden.', 'buena-theme' ); ?>
|
||||
</article>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<nav class="pagination">
|
||||
<div class="previous"><?php previous_posts_link( __( '« Neuere Beiträge', 'buena-theme' ) ); ?></div>
|
||||
<div class="next"><?php next_posts_link( __( 'Ältere Beiträge »', 'buena-theme' ) ); ?></div>
|
||||
</nav>
|
||||
<?php comments_template(); ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php if ( is_active_sidebar( 'footer' ) ): ?>
|
||||
<footer id="footer">
|
||||
<ul class="widgets">
|
||||
<?php dynamic_sidebar( 'footer' ); ?>
|
||||
</ul>
|
||||
</footer>
|
||||
<?php endif; ?>
|
||||
<?php wp_footer(); ?>
|
||||
</body>
|
||||
</html>
|
@ -1,27 +0,0 @@
|
||||
<?php
|
||||
|
||||
if ( post_password_required() ) {
|
||||
printf( '<p class="nocomments">%s</p>', __( 'Kommentare werden erst angezeigt, wenn das Kennwort eingegeben wurde.', 'buena-theme' ) );
|
||||
return;
|
||||
}
|
||||
|
||||
// FIXME: Hier sollten die Social-Media-Knöpfe auftauchen…
|
||||
|
||||
?>
|
||||
<div class="comments">
|
||||
<?php if ( have_comments() ) : ?>
|
||||
<h4 id="comments"><?php comments_number( 'Keine Kommentare', 'Ein Kommentar', '% Kommentare' );?></h4>
|
||||
<ul class="commentlist">
|
||||
<?php wp_list_comments(); ?>
|
||||
</ul>
|
||||
<nav class="pagination">
|
||||
<div class="alignleft"><?php previous_comments_link() ?></div>
|
||||
<div class="alignright"><?php next_comments_link() ?></div>
|
||||
</nav>
|
||||
<?php endif; ?>
|
||||
<?php if ( comments_open() ) : ?>
|
||||
<?php comment_form(); ?>
|
||||
<?php else: ?>
|
||||
<p class="nocomments screen-reader-text"><?php _e( 'Es kann nicht kommentiert werden.', 'buena-theme' ); ?></p>
|
||||
<?php endif; ?>
|
||||
</div>
|
@ -1,17 +0,0 @@
|
||||
<article id="post-<?php the_ID(); ?>" <?php post_class( 'clearfix' ); ?>>
|
||||
<?php if ( is_singular() ): ?>
|
||||
<?php the_content(); ?>
|
||||
<p><?php the_tags(); ?></p>
|
||||
<?php wp_link_pages( array( 'before' => '<nav class="page-links">Seiten:', 'after' => '</nav>' ) ); ?>
|
||||
<?php else: ?>
|
||||
<a class="h h-box h-box-blaugelb<?php if ( ! has_post_thumbnail() ): ?> h-box-blaugelb-bildlos<?php endif; ?>" href="<?php echo esc_url( get_permalink() ); ?>">
|
||||
<?php the_post_thumbnail( 'gallery-thumb', [ 'alt' => '' ] ); ?>
|
||||
<?php if ( get_the_title() ): ?>
|
||||
<header class="wrap">
|
||||
<h3><?php the_title(); ?></h3>
|
||||
</header>
|
||||
<?php endif; ?>
|
||||
</a>
|
||||
<?php has_excerpt() ? the_excerpt() : the_content(); ?>
|
||||
<?php endif; ?>
|
||||
</article>
|
@ -1,89 +0,0 @@
|
||||
<?php
|
||||
|
||||
if ( ! defined( 'ABSPATH' ) ) {
|
||||
die( 'I’m a theme.' );
|
||||
}
|
||||
|
||||
if ( ! function_exists( 'trigger_pfadfinden_plugin_error' ) ) {
|
||||
/**
|
||||
* Show an error message.
|
||||
*
|
||||
* @see http://www.squarepenguin.com/wordpress/?p=6 Inspiration
|
||||
*
|
||||
* @param string $message
|
||||
* @param int $type optional
|
||||
* @return bool
|
||||
*/
|
||||
function trigger_pfadfinden_plugin_error( $message, $type = 0 )
|
||||
{
|
||||
if ( isset( $_GET['action'] ) && 'error_scrape' === $_GET['action'] ) {
|
||||
echo $message;
|
||||
return true;
|
||||
}
|
||||
|
||||
if ( ! $type ) {
|
||||
$type = E_USER_WARNING;
|
||||
}
|
||||
|
||||
return trigger_error( $message, $type );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Check for suitable environment
|
||||
if ( defined( 'PHP_VERSION_ID' ) && PHP_VERSION_ID >= 50400 ) {
|
||||
// Register autoloader if updater plugin missing
|
||||
if ( ! class_exists( 'plugins\buena\use\shy-wordpress\src\Shy\WordPress\Theme' ) ) {
|
||||
if ( ! include_once __DIR__ . '/use/shy-wordpress/src/autoloader.php' ) {
|
||||
trigger_pfadfinden_plugin_error(
|
||||
__( 'Das Theme ist unvollständig und konnte nicht geladen werden. Neuinstallation müsste helfen.', 'buena-theme' ),
|
||||
E_USER_ERROR
|
||||
);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// Register our autoloader
|
||||
if ( ! include_once __DIR__ . '/src/autoloader.php' ) {
|
||||
trigger_pfadfinden_plugin_error(
|
||||
__( 'Das Theme ist unvollständig und konnte nicht geladen werden. Neuinstallation müsste helfen.', 'buena-theme' ),
|
||||
E_USER_ERROR
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \plugins\buena\src\Pfadfinden\WordPress\BuenaTheme
|
||||
*/
|
||||
function buena_get_theme()
|
||||
{
|
||||
static $theme = null;
|
||||
if (!$theme) {
|
||||
$theme = new ReflectionClass( 'plugins\buena\src\Pfadfinden\WordPress\BuenaTheme' );
|
||||
$theme = $theme->newInstance();
|
||||
}
|
||||
|
||||
return $theme;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $method
|
||||
* @return callable
|
||||
*/
|
||||
function buena_get_callback( $method )
|
||||
{
|
||||
return array( buena_get_theme(), (string) $method );
|
||||
}
|
||||
|
||||
return buena_get_theme();
|
||||
}
|
||||
|
||||
|
||||
// Display error message
|
||||
trigger_pfadfinden_plugin_error(
|
||||
sprintf(
|
||||
__( 'You need at least PHP 5.4 to use the Buena theme. Your are using %s.', 'buena-theme' ),
|
||||
PHP_VERSION
|
||||
),
|
||||
E_USER_ERROR
|
||||
);
|
106
buena/index.php
106
buena/index.php
@ -1,106 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<!--[if IE 7]>
|
||||
<html class="ie ie7" <?php language_attributes(); ?>>
|
||||
<![endif]-->
|
||||
<!--[if IE 8]>
|
||||
<html class="ie ie8" <?php language_attributes(); ?>>
|
||||
<![endif]-->
|
||||
<!--[if !(IE 7) | !(IE 8) ]><!-->
|
||||
<html <?php language_attributes(); ?>>
|
||||
<!--<![endif]-->
|
||||
<head>
|
||||
<meta charset="<?php bloginfo( 'charset' ); ?>" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<?php if ( ! function_exists( 'has_site_icon' ) || ! has_site_icon() ): // FIXME: Remove workaround on 2016-02-16 ?>
|
||||
<link rel="shortcut icon" href="<?php echo esc_url( get_template_directory_uri() ); ?>/img/favicon.ico" />
|
||||
<?php endif; ?>
|
||||
<link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>" />
|
||||
<?php if ( is_singular() ) wp_enqueue_script( 'comment-reply' ); ?>
|
||||
<?php wp_head(); ?>
|
||||
</head>
|
||||
<!-- FIXME: Mehr ARIA role setzen -->
|
||||
<body <?php body_class(); ?>>
|
||||
<div id="wrap"><!-- FIXME: Klassen hfeed, site? -->
|
||||
<header id="header" role="banner"><!-- FIXME: Klasse site-header? -->
|
||||
<hgroup id="branding">
|
||||
<h1 class="site-title">
|
||||
<a href="<?php echo esc_url( home_url( '/' ) ); ?>" title="<?php _e( 'Zurück zur Startseite', 'buena-theme' ); ?>">
|
||||
<img alt="Bund der Pfadfinderinnen und Pfadfinder" src="<?php echo esc_url( get_template_directory_uri() ); ?>/img/bundeszeichen.png" srcset="<?php echo esc_url( get_template_directory_uri() ); ?>/img/bundeszeichen.png 1x, <?php echo esc_url( get_template_directory_uri() ); ?>/img/bundeszeichen@2x.png 2x" width="390" height="79" />
|
||||
</a>
|
||||
</h1>
|
||||
<h2 class="site-description">
|
||||
<?php echo esc_html( get_bloginfo( 'name', 'display' ) ); ?>
|
||||
</h2>
|
||||
</hgroup>
|
||||
<nav>
|
||||
<!-- FIXME: Tollere Navigation ausdenken -->
|
||||
<a href="#content" class="screen-reader-text"><?php _e( 'Zum Inhalt springen', 'buena-theme' ); ?></a>
|
||||
<button type="button" id="responsiveMenu" title="<?php esc_attr_e( 'Menü', 'buena-theme' ); ?>">
|
||||
<img alt="<?php esc_attr_e( 'Menü', 'buena-theme' ); ?>" src="<?php echo esc_url( get_template_directory_uri() ); ?>/img/hamburger.png" width="32" height="32" />
|
||||
</button>
|
||||
</nav>
|
||||
<?php do_action( 'buena_search_form' ); ?>
|
||||
</header>
|
||||
<div id="left">
|
||||
<?php wp_nav_menu( [ 'theme_location' => 'primary', 'depth' => 2, 'container' => 'nav', 'container_class' => 'nav-menu nav-menu-primary' ] ); ?>
|
||||
<?php if ( is_active_sidebar( 'below-navigation' ) ): ?>
|
||||
<ul class="widgets">
|
||||
<?php dynamic_sidebar( 'below-navigation' ); ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<?php if ( $buenaTeaserImage = buena_get_theme()->getTeaserImage() ): ?>
|
||||
<header class="h h-box h-box-teaser">
|
||||
<?php echo $buenaTeaserImage; ?>
|
||||
<hgroup class="wrap">
|
||||
<h2><?php buena_get_theme()->printTitle(); ?></h2>
|
||||
</hgroup>
|
||||
</header>
|
||||
<?php else: ?>
|
||||
<header class="h">
|
||||
<h2><?php buena_get_theme()->printTitle(); ?></h2>
|
||||
</header>
|
||||
<?php endif; ?>
|
||||
<div id="main" role="main" class="container">
|
||||
<div id="content" class="content-<?php if ( is_singular() ): ?>singular<?php else: ?>gallery<?php endif; ?>">
|
||||
<?php if ( have_posts() ): ?>
|
||||
<?php while ( have_posts() ): the_post(); ?>
|
||||
<?php get_template_part( 'content', get_post_format() ); ?>
|
||||
<?php endwhile; ?>
|
||||
<?php else: // FIXME: Wenn berechtigt: Erstellen anbieten ?>
|
||||
<article id="post-0" class="post no-results not-found">
|
||||
<?php _e( 'Nicht gefunden.', 'buena-theme' ); ?>
|
||||
</article>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<nav class="pagination">
|
||||
<div class="alignright"><?php next_posts_link( __( 'Ältere Beiträge »', 'buena-theme' ) ); ?></div>
|
||||
<div class="alignleft"><?php previous_posts_link( __( '« Neuere Beiträge', 'buena-theme' ) ); ?></div>
|
||||
</nav>
|
||||
<?php comments_template(); ?>
|
||||
</div>
|
||||
</div>
|
||||
<footer id="footer">
|
||||
<div class="wrapper media">
|
||||
<?php if ( is_active_sidebar( 'footer' ) || has_nav_menu( 'footer' ) ): ?>
|
||||
<header class="h">
|
||||
<?php echo esc_html( get_bloginfo( 'name', 'display' ) ?: 'Bund der Pfadfinderinnen und Pfadfinder e.V.' ); ?>
|
||||
</header>
|
||||
<?php wp_nav_menu( [ 'theme_location' => 'footer', 'container' => 'nav', 'container_class' => 'nav-menu nav-menu-footer alignleft', 'fallback_cb' => '' ] ); ?>
|
||||
<ul class="widgets bd">
|
||||
<?php dynamic_sidebar( 'footer' ); ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</footer>
|
||||
<script>
|
||||
+function() {
|
||||
document.getElementById('responsiveMenu').addEventListener('click', function() {
|
||||
document.body.classList.toggle('show-responsive-menu');
|
||||
});
|
||||
}();
|
||||
</script>
|
||||
<?php wp_footer(); ?>
|
||||
</body>
|
||||
</html>
|
@ -1,11 +0,0 @@
|
||||
<form role="search" method="get" class="search-form" action="<?php echo home_url( '/' ); ?>">
|
||||
<label>
|
||||
<span class="screen-reader-text"><?php echo _x( 'Search for:', 'label' ); ?></span>
|
||||
<?php if ( doing_action( 'buena_search_form' ) ): ?>
|
||||
<input type="search" class="search-field" value="<?php echo get_search_query(); ?>" name="s" title="<?php echo esc_attr_x( 'Search for:', 'label' ); ?>" />
|
||||
<?php else: ?>
|
||||
<input type="search" class="search-field" placeholder="<?php echo esc_attr_x( 'Search …', 'placeholder' ); ?>" value="<?php echo get_search_query(); ?>" name="s" title="<?php echo esc_attr_x( 'Search for:', 'label' ); ?>" />
|
||||
<?php endif; ?>
|
||||
</label>
|
||||
<button type="submit" class="search-submit" title="<?php esc_attr_e( 'Query search', 'buena-theme' ); ?>"><?php echo esc_html_x( 'Search', 'submit button' ); ?></button>
|
||||
</form>
|
@ -1,19 +0,0 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Try to load a Pfadfinden WordPress class.
|
||||
*
|
||||
* @param string $name
|
||||
* @return bool
|
||||
*/
|
||||
function buena_autoloader( $name )
|
||||
{
|
||||
if ( substr( $name, 0, 21 ) !== 'Pfadfinden\\WordPress\\' ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$name = __DIR__ . '/' . str_replace( '\\', DIRECTORY_SEPARATOR, $name ) . '.php';
|
||||
return is_file( $name ) && include( $name );
|
||||
}
|
||||
|
||||
spl_autoload_register( 'buena_autoloader' );
|
@ -1,98 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace plugins\buena\use\shy-wordpress\src\Shy\WordPress;
|
||||
|
||||
|
||||
|
||||
use plugins\buena\use\shy/**
|
||||
* A composite option with a fixed number of suboptions and their default values.
|
||||
*/
|
||||
abstract class CompositeOption implements \ArrayAccess, \Countable, \IteratorAggregate
|
||||
{
|
||||
use HookableTrait;
|
||||
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
protected $slug;
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getSlug()
|
||||
{
|
||||
return $this->slug;
|
||||
}
|
||||
|
||||
|
||||
protected function __construct( $slug )
|
||||
{
|
||||
$this->slug = (string) $slug;
|
||||
|
||||
$this->addHookMethod( 'default_option_' . $this->slug, 'getDefaults' );
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Return default values for all suboptions.
|
||||
* Hooked into get_option() defaults.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
abstract public function getDefaults();
|
||||
|
||||
/**
|
||||
* @param string $offset
|
||||
* @return mixed
|
||||
*/
|
||||
public function getDefault( $offset )
|
||||
{
|
||||
return $this->getDefaults()[ $offset ];
|
||||
}
|
||||
|
||||
|
||||
public function offsetExists( $offset )
|
||||
{
|
||||
$settings = get_option( $this->slug );
|
||||
return isset( $settings[ $offset ] );
|
||||
}
|
||||
|
||||
public function offsetGet( $offset )
|
||||
{
|
||||
$settings = get_option( $this->slug );
|
||||
if ( ! isset( $settings[ $offset ] ) ) {
|
||||
throw new \OutOfBoundsException( "There is no setting '$offset'." );
|
||||
}
|
||||
|
||||
return $settings[ $offset ];
|
||||
}
|
||||
|
||||
public function offsetSet( $offset, $value )
|
||||
{
|
||||
$settings = get_option( $this->slug );
|
||||
if ( ! isset( $settings[ $offset ] ) ) {
|
||||
throw new \OutOfBoundsException( "There is no setting '$offset'." );
|
||||
}
|
||||
|
||||
$settings[ $offset ] = $value;
|
||||
update_option( $this->slug, $settings );
|
||||
}
|
||||
|
||||
public function offsetUnset( $offset )
|
||||
{
|
||||
throw new \BadMethodCallException( 'You cannot unset settings.' );
|
||||
}
|
||||
|
||||
|
||||
public function count()
|
||||
{
|
||||
return count( $this->getDefaults() );
|
||||
}
|
||||
|
||||
|
||||
public function getIterator()
|
||||
{
|
||||
return new \ArrayIterator( get_option( $this->slug ) );
|
||||
}
|
||||
}
|
@ -1,35 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace plugins\buena\use\shy-wordpress\src\Shy\WordPress;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Making actions and filters how they should be.
|
||||
*
|
||||
* Default to pass all arguments.
|
||||
*/
|
||||
trait HookableTrait
|
||||
{
|
||||
/**
|
||||
* @param string $action_or_filter
|
||||
* @param string $method
|
||||
* @param int $priority
|
||||
* @param int $acceptedArgs
|
||||
*/
|
||||
protected function addHookMethod( $action_or_filter, $method, $priority = 10, $acceptedArgs = 99 )
|
||||
{
|
||||
add_filter( $action_or_filter, array( $this, $method ), $priority, $acceptedArgs );
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $action_or_filter
|
||||
* @param string $method
|
||||
* @param int $priority
|
||||
* @param int $acceptedArgs
|
||||
*/
|
||||
protected function removeHookMethod( $action_or_filter, $method, $priority = 10, $acceptedArgs = 99 )
|
||||
{
|
||||
remove_filter( $action_or_filter, array( $this, $method ), $priority, $acceptedArgs );
|
||||
}
|
||||
}
|
@ -1,13 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace plugins\buena\use\shy-wordpress\src\Shy\WordPress;
|
||||
|
||||
|
||||
|
||||
use plugins\buena\use\shy/**
|
||||
* Marker class for WordPress plugins.
|
||||
*/
|
||||
abstract class Plugin
|
||||
{
|
||||
use HookableTrait;
|
||||
}
|
@ -1,383 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace plugins\buena\use\shy-wordpress\src\Shy\WordPress;
|
||||
|
||||
|
||||
|
||||
use plugins\buena\use\shyuse plugins\buena\use\shy/**
|
||||
* Abstracts common functionality and escaping for the Settings API.
|
||||
*
|
||||
* TODO: Check slug and field names for illegal characters.
|
||||
* TODO: Refactor to not extend but use CompositeOption
|
||||
*/
|
||||
abstract class SettingsPage extends CompositeOption
|
||||
{
|
||||
use HookableTrait;
|
||||
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
protected $capability;
|
||||
|
||||
|
||||
/**
|
||||
* Slug (file name) of the parent menu entry.
|
||||
*
|
||||
* @see add_submenu_page() for suggestions.
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
protected function getParentSlug()
|
||||
{
|
||||
return 'options-general.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* Title for this setting page.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
abstract protected function getPageTitle();
|
||||
|
||||
/**
|
||||
* String to show in the menu entry.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function getMenuTitle()
|
||||
{
|
||||
return $this->getPageTitle();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param string $slug Page slug
|
||||
* @param string $capability Required capability to view
|
||||
*/
|
||||
protected function __construct( $slug, $capability = 'manage_options' )
|
||||
{
|
||||
parent::__construct( $slug );
|
||||
|
||||
$this->capability = (string) $capability;
|
||||
|
||||
$this->addHookMethod( 'admin_menu', 'registerPage' );
|
||||
$this->addHookMethod( 'admin_init', 'registerSettings' );
|
||||
}
|
||||
|
||||
public function __toString()
|
||||
{
|
||||
return $this->slug;
|
||||
}
|
||||
|
||||
/**
|
||||
* Register our options page.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function registerPage()
|
||||
{
|
||||
add_submenu_page(
|
||||
$this->getParentSlug(),
|
||||
$this->getPageTitle(),
|
||||
$this->getMenuTitle(),
|
||||
$this->capability,
|
||||
$this->slug,
|
||||
array( $this, 'renderPage' )
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Register the actual settings.
|
||||
* Override and use addSection() and add*Field() methods.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function registerSettings()
|
||||
{
|
||||
register_setting(
|
||||
$this->slug,
|
||||
$this->slug,
|
||||
array( $this, 'sanitizeOptions' )
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sanitize option values after form submission.
|
||||
*
|
||||
* @param array $options
|
||||
* @return array
|
||||
*/
|
||||
abstract public function sanitizeOptions( array $options );
|
||||
|
||||
|
||||
/**
|
||||
* Section to add fields to.
|
||||
*
|
||||
* Parameter default from add_settings_field().
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $currentSection = 'default';
|
||||
|
||||
/**
|
||||
* Add a new section and return its generated name.
|
||||
*
|
||||
* @param string $title optional, can be empty
|
||||
* @param string $name optional, will be generated if empty
|
||||
* @return string
|
||||
*/
|
||||
protected function addSection( $title = '', $name = '' )
|
||||
{
|
||||
$name = (string) $name;
|
||||
if ( ! strlen( $name ) ) {
|
||||
$name = $this->slug . '-section' . ( count( $this->getSections() ) + 1 );
|
||||
}
|
||||
|
||||
add_settings_section(
|
||||
$name,
|
||||
esc_html( $title ),
|
||||
array( $this, 'renderSectionTeaser' ),
|
||||
$this->slug
|
||||
);
|
||||
|
||||
return $this->currentSection = $name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback before output of section fields.
|
||||
*
|
||||
* Teasers must escape their output themselves.
|
||||
*
|
||||
* @param array $section {
|
||||
* @type string $id
|
||||
* @type string $title
|
||||
* @type callable $callback
|
||||
* }
|
||||
*/
|
||||
public function renderSectionTeaser( array $section )
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all known section names on this page.
|
||||
*
|
||||
* @global $wp_settings_fields
|
||||
* @return array<string>
|
||||
*/
|
||||
public function getSections()
|
||||
{
|
||||
global $wp_settings_fields;
|
||||
|
||||
if ( ! isset( $wp_settings_fields[ $this->slug ] ) ) {
|
||||
return array();
|
||||
}
|
||||
|
||||
return array_keys( $wp_settings_fields[ $this->slug ] );
|
||||
}
|
||||
|
||||
/**
|
||||
* @global $wp_settings_fields
|
||||
* @param string $section
|
||||
* @return array<string, array {
|
||||
* @type string $id
|
||||
* @type string $title
|
||||
* @type callable $callback
|
||||
* @type array $args
|
||||
* }>
|
||||
*/
|
||||
public function getFieldsForSection( $section )
|
||||
{
|
||||
global $wp_settings_fields;
|
||||
|
||||
return $wp_settings_fields[ $this->slug ][ $section ];
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a custom field to this setting page.
|
||||
*
|
||||
* @param string $name
|
||||
* @param string $label
|
||||
* @param callable $callback
|
||||
* @param array $args
|
||||
*/
|
||||
protected function addField( $name, $label, $callback, $args = array() )
|
||||
{
|
||||
if ( ! is_callable( $callback ) ) {
|
||||
throw new \InvalidArgumentException( 'Parameter $callback must be callable.' );
|
||||
}
|
||||
|
||||
add_settings_field(
|
||||
$name,
|
||||
esc_html( $label ),
|
||||
$callback,
|
||||
$this->slug,
|
||||
$this->currentSection,
|
||||
$args
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a text field to this settings page.
|
||||
*
|
||||
* @param string $name
|
||||
* @param string $label
|
||||
* @param array $args
|
||||
* @param string $callback
|
||||
*/
|
||||
protected function addTextField( $name, $label, $args = array(), $callback = '' )
|
||||
{
|
||||
if ( ! $callback || ! is_callable( $callback ) ) {
|
||||
$callback = array( $this, 'renderTextField' );
|
||||
}
|
||||
|
||||
$this->addField(
|
||||
$name,
|
||||
$label,
|
||||
$callback,
|
||||
$args + array(
|
||||
'label_for' => $this->slug . '-' . $name,
|
||||
'name' => $name,
|
||||
'attr' => array(),
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
* @param string $label
|
||||
* @param string $caption
|
||||
* @param array $args
|
||||
* @param callable $callback
|
||||
*/
|
||||
protected function addCheckboxField( $name, $label, $caption, $args = array(), $callback = '' )
|
||||
{
|
||||
if ( ! $callback || ! is_callable( $callback ) ) {
|
||||
$callback = array( $this, 'renderCheckboxField' );
|
||||
}
|
||||
|
||||
$this->addField(
|
||||
$name,
|
||||
$label,
|
||||
$callback,
|
||||
$args + array(
|
||||
'label_for' => $this->slug . '-' . $name,
|
||||
'name' => $name,
|
||||
'caption' => $caption,
|
||||
'attr' => array(),
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add an error.
|
||||
*
|
||||
* @param string $code
|
||||
* @param string $message
|
||||
*/
|
||||
protected function addError( $code, $message )
|
||||
{
|
||||
add_settings_error( $this->slug, $code, $message );
|
||||
}
|
||||
|
||||
/**
|
||||
* Errors for this setting.
|
||||
*
|
||||
* @return array {
|
||||
* @type string $setting
|
||||
* @type string $code
|
||||
* @type string $message
|
||||
* @type string $type 'error'
|
||||
* }
|
||||
*/
|
||||
public function getErrors()
|
||||
{
|
||||
return get_settings_errors( $this->slug );
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Render a setting as text field.
|
||||
*
|
||||
* @param array $args {
|
||||
* @type string $name
|
||||
* @type string $label_for
|
||||
* @type array $attr
|
||||
* }
|
||||
*/
|
||||
public function renderTextField( array $args )
|
||||
{
|
||||
$name = $args['name'];
|
||||
|
||||
$this->renderInputTag( array(
|
||||
'type' => 'text',
|
||||
'id' => $args['label_for'],
|
||||
'class' => 'regular-text',
|
||||
'name' => $this->slug . '[' . $name . ']',
|
||||
'value' => $this[ $name ],
|
||||
) + $args['attr'] );
|
||||
}
|
||||
|
||||
/**
|
||||
* Render a setting as checkbox.
|
||||
*
|
||||
* @param array $args {
|
||||
* @type string $caption
|
||||
* @type string $name
|
||||
* @type string $label_for
|
||||
* @type array $attr
|
||||
* }
|
||||
*/
|
||||
public function renderCheckboxField( array $args )
|
||||
{
|
||||
$name = $args['name'];
|
||||
|
||||
echo '<label>';
|
||||
$this->renderInputTag( array(
|
||||
'type' => 'checkbox',
|
||||
'id' => isset( $args['label_for'] ) ? $args['label_for'] : null,
|
||||
'name' => $this->slug . '[' . $name . ']',
|
||||
'value' => '1',
|
||||
'checked' => $this[ $name ] ? 'checked' : null,
|
||||
) + $args['attr'] );
|
||||
echo ' ' . esc_html( $args['caption'] ) . '</label>';
|
||||
}
|
||||
|
||||
/**
|
||||
* Output an input tag with given HTML attributes.
|
||||
*
|
||||
* @param array $attr
|
||||
*/
|
||||
protected function renderInputTag( array $attr )
|
||||
{
|
||||
echo '<input';
|
||||
foreach ( $attr as $k => $v ) {
|
||||
if ( null !== $v ) {
|
||||
printf( ' %s="%s"', $k, esc_attr( $v ) );
|
||||
}
|
||||
}
|
||||
echo ' />';
|
||||
}
|
||||
|
||||
/**
|
||||
* Output settings page.
|
||||
*/
|
||||
public function renderPage()
|
||||
{
|
||||
if ( ! current_user_can( $this->capability ) ) {
|
||||
wp_die( __( 'You do not have sufficient permissions to access this page.' ) );
|
||||
}
|
||||
|
||||
?>
|
||||
<div class="wrap">
|
||||
<h2><?php echo esc_html( $this->getPageTitle() ); ?></h2>
|
||||
<form action="options.php" method="post">
|
||||
<?php settings_errors( 'general' ); // “Settings saved.” message ?>
|
||||
<?php settings_fields( $this->slug ); ?>
|
||||
<?php do_settings_sections( $this->slug ); ?>
|
||||
<?php submit_button(); ?>
|
||||
</form>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
}
|
@ -1,18 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace plugins\buena\use\shy-wordpress\src\Shy\WordPress;
|
||||
|
||||
|
||||
|
||||
use plugins\buena\use\shyabstract class Theme extends Plugin
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$GLOBALS['content_width'] = $this->getContentWidth();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return integer
|
||||
*/
|
||||
abstract public function getContentWidth();
|
||||
}
|
@ -1,20 +0,0 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Try to load a Shy WordPress class.
|
||||
*
|
||||
* @param string $name
|
||||
* @return boolean
|
||||
*/
|
||||
function shy_wordpress_autoloader( $name )
|
||||
{
|
||||
if ( substr( $name, 0, 14 ) !== 'Shy\\WordPress\\' ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$name = __DIR__ . '/' . str_replace( '\\', DIRECTORY_SEPARATOR, $name ) . '.php';
|
||||
|
||||
return is_file( $name ) && include( $name );
|
||||
}
|
||||
|
||||
spl_autoload_register( 'shy_wordpress_autoloader' );
|
@ -1,40 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace plugins\buena\use\shy-wordpress\tests\Shy\WordPress\Tests;
|
||||
|
||||
use wordpress\src\Shy\WordPress\HookableTrait;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Check that HookableTrait actually works.
|
||||
*
|
||||
* @author Philipp Cordes <pc@irgendware.net>
|
||||
*/
|
||||
class HookableTraitTest extends \WP_UnitTestCase
|
||||
{
|
||||
use HookableTrait;
|
||||
|
||||
|
||||
public function actionMethod()
|
||||
{
|
||||
}
|
||||
|
||||
public function testWorksAsAction()
|
||||
{
|
||||
$this->addHookMethod( 'shywp_test_action', 'actionMethod' );
|
||||
$this->assertTrue( has_action( 'shywp_test_action' ), 'Registering an action via addHookMethod() worked.' );
|
||||
}
|
||||
|
||||
|
||||
public function filterMethod( $value )
|
||||
{
|
||||
return $value;
|
||||
}
|
||||
|
||||
public function testWorksAsFilter()
|
||||
{
|
||||
$this->addHookMethod( 'shywp_test_filter', 'filterMethod' );
|
||||
$this->assertTrue( has_filter( 'shywp_test_filter' ), 'Registering a filter via addHookMethod() worked.' );
|
||||
}
|
||||
}
|
@ -1,181 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace plugins\buena\use\shy-wordpress\tests\Shy\WordPress\Tests;
|
||||
|
||||
use wordpress\src\Shy\WordPress\SettingsPage;
|
||||
use PHPUnit_Framework_MockObject_MockObject as MockObject;
|
||||
use PHPUnit_Framework_MockObject_Builder_InvocationMocker as BuilderInvocationMocker;
|
||||
|
||||
|
||||
|
||||
class SettingsPageTest extends \WP_UnitTestCase
|
||||
{
|
||||
/**
|
||||
* Mock a SettingsPage.
|
||||
*
|
||||
* @param string|null $slug
|
||||
* @param string $capability
|
||||
*
|
||||
* @return wordpress\src\Shy\WordPress\SettingsPage|MockObject {
|
||||
* @method BuilderInvocationMocker method(string)
|
||||
* }
|
||||
*/
|
||||
protected function mockSettingsPage( $slug = null, $capability = 'manage_options' )
|
||||
{
|
||||
$builder = $this->getMockBuilder( 'plugins\buena\use\shy-wordpress\src\Shy\WordPress\SettingsPage' )
|
||||
->enableProxyingToOriginalMethods();
|
||||
|
||||
if ( null === $slug ) {
|
||||
$builder->disableOriginalConstructor();
|
||||
} else {
|
||||
$builder->setConstructorArgs( array( $slug, $capability ) );
|
||||
}
|
||||
|
||||
return $builder->getMock();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Test reading defaults from the settings page.
|
||||
*
|
||||
* @covers wordpress\src\Shy\WordPress\SettingsPage::__construct()
|
||||
* @covers wordpress\src\Shy\WordPress\SettingsPage::getDefaults()
|
||||
* @covers wordpress\src\Shy\WordPress\SettingsPage::offsetExists()
|
||||
* @covers wordpress\src\Shy\WordPress\SettingsPage::offsetGet()
|
||||
* @expectedException OutOfBoundsException
|
||||
*/
|
||||
public function testReading()
|
||||
{
|
||||
$slug = 'shywp_settingspage_test_slug_reading';
|
||||
$defaults = array( 'foo' => 'bar' );
|
||||
|
||||
$page = $this->mockSettingsPage( $slug );
|
||||
$page->method( 'getDefaults' )->willReturn( $defaults );
|
||||
|
||||
$this->assertEquals( $defaults, get_option( $slug ) );
|
||||
|
||||
$this->assertArrayHasKey( 'foo', $page );
|
||||
$this->assertEquals( $defaults['foo'], $page['foo'] );
|
||||
|
||||
$this->assertArrayNotHasKey( 'baz', $page );
|
||||
$page['baz'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Test writing to the settings page.
|
||||
*
|
||||
* @covers wordpress\src\Shy\WordPress\SettingsPage::offsetSet()
|
||||
* @expectedException OutOfBoundsException
|
||||
*/
|
||||
public function testWriting()
|
||||
{
|
||||
$slug = 'shywp_settingspage_test_slug_writing';
|
||||
$defaults = array( 'foo' => 'bar' );
|
||||
|
||||
$page = $this->mockSettingsPage( $slug );
|
||||
$page->method( 'getDefaults' )->willReturn( $defaults );
|
||||
|
||||
$page['foo'] = 'foo';
|
||||
$this->assertEquals( 'foo', $page['foo'] );
|
||||
$page['baz'] = '123';
|
||||
}
|
||||
|
||||
/**
|
||||
* Fail to remove a setting.
|
||||
*
|
||||
* @covers SettingPage::offsetUnset()
|
||||
* @expectedException BadMethodCallException
|
||||
*/
|
||||
public function testRemoving()
|
||||
{
|
||||
$slug = 'shywp_settingspage_test_slug_removing';
|
||||
$defaults = array();
|
||||
|
||||
$page = $this->mockSettingsPage( $slug );
|
||||
$page->method( 'getDefaults' )->willReturn( $defaults );
|
||||
|
||||
unset( $page['baz'] );
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Test whether the settings page can be showed.
|
||||
*
|
||||
* @covers wordpress\src\Shy\WordPress\SettingsPage::__construct()
|
||||
* @covers wordpress\src\Shy\WordPress\SettingsPage::getParentSlug()
|
||||
* @covers wordpress\src\Shy\WordPress\SettingsPage::getPageTitle()
|
||||
* @covers wordpress\src\Shy\WordPress\SettingsPage::getMenuTitle()
|
||||
*/
|
||||
public function testRegisterPage()
|
||||
{
|
||||
$this->expectOutputRegex( '/<page&title>/' );
|
||||
|
||||
$slug = 'shywp_settingspage_test_slug_registerpage';
|
||||
|
||||
$page = $this->mockSettingsPage( $slug );
|
||||
$page->method( 'getParentSlug' )->willReturn( 'index.php' );
|
||||
$page->method( 'getPageTitle' )->willReturn( '<page&title>' );
|
||||
$page->method( 'getMenuTitle' )->willReturn( '<menu&title>' );
|
||||
|
||||
$page->expects( $this->once() )->method( 'registerPage' )->with();
|
||||
$page->expects( $this->once() )->method( 'registerSettings' )->with();
|
||||
|
||||
// FIXME: Simulate display of backend.
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @covers wordpress\src\Shy\WordPress\SettingsPage::sanitizeOptions()
|
||||
*/
|
||||
public function testSanitize()
|
||||
{
|
||||
$slug = 'shywp_settingspage_test_slug_sanitize';
|
||||
|
||||
$page = $this->mockSettingsPage( $slug );
|
||||
$page->method( 'sanitizeOptions' )->will( $this->returnArgument( 0 ) );
|
||||
$page->expects( $this->atLeastOnce() )->method( 'sanitizeOptions' );
|
||||
|
||||
$this->markTestIncomplete();
|
||||
// FIXME: Simulate form submission
|
||||
}
|
||||
|
||||
public function testRenderTextField()
|
||||
{
|
||||
$this->expectOutputRegex( '/^<input type="text"/' );
|
||||
|
||||
$page = $this->mockSettingsPage();
|
||||
$page->renderTextField( array(
|
||||
'label_for' => 'foo',
|
||||
'name' => 'bar',
|
||||
) );
|
||||
}
|
||||
|
||||
public function testRenderCheckboxField()
|
||||
{
|
||||
$this->expectOutputRegex( '/^<label><input type="checkbox"/' );
|
||||
|
||||
$page = $this->mockSettingsPage();
|
||||
$page->renderCheckboxField( array(
|
||||
'label_for' => 'foo',
|
||||
'name' => 'bar',
|
||||
'caption' => 'baz',
|
||||
) );
|
||||
}
|
||||
|
||||
public function testRenderPage()
|
||||
{
|
||||
$this->markTestIncomplete();
|
||||
$this->expectOutputRegex( '/<form action="options.php" method="post">.*<3&>.*cryptic_teaser.*</form>/' );
|
||||
|
||||
$slug = 'shywp_settingspage_test_slug_renderpage';
|
||||
|
||||
$page = $this->mockSettingsPage( $slug, 'read' );
|
||||
$page->method( 'getPageTitle' )->willReturn( '<3&>' );
|
||||
$page->method( 'renderSectionTeaser' )->will( $this->returnCallback( function () use ( $teaser ) {
|
||||
echo 'cryptic_teaser';
|
||||
} ) );
|
||||
|
||||
// FIXME: Simulate view of the settings page
|
||||
$page->renderPage();
|
||||
}
|
||||
}
|
@ -1,20 +0,0 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Try to load a Shy WordPress test class.
|
||||
*
|
||||
* @param string $name
|
||||
* @return boolean
|
||||
*/
|
||||
function shy_wordpress_tests_autoloader( $name )
|
||||
{
|
||||
if ( substr( $name, 0, 20 ) !== 'Shy\\WordPress\\Tests\\' ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$name = __DIR__ . '/' . str_replace( '\\', DIRECTORY_SEPARATOR, $name ) . '.php';
|
||||
|
||||
return is_file( $name ) && include( $name );
|
||||
}
|
||||
|
||||
spl_autoload_register( 'shy_wordpress_tests_autoloader' );
|
@ -1,14 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* PHPUnit bootstrap file
|
||||
*
|
||||
* Variant of the one from github.com/tierra/wordpress-plugins-tests
|
||||
*/
|
||||
|
||||
require_once '../src/autoloader.php';
|
||||
require_once 'autoloader.php';
|
||||
|
||||
|
||||
|
||||
require_once ( getenv( 'WP_DEVELOP_DIR' ) ?: '../../../..' )
|
||||
. '/tests/phpunit/includes/bootstrap.php';
|
94
changelog
Normal file
94
changelog
Normal file
@ -0,0 +1,94 @@
|
||||
<h4>Version 4.10.1</h4>
|
||||
<ul>
|
||||
<li>Replaced IP blocking by "Protect Login"</li>
|
||||
<li>Replaced login redirecting by "WPS Hide login"</li>
|
||||
<li>Prepared to update new kompass Version</li>
|
||||
</ul>
|
||||
|
||||
<h4>Version 4.8.3</h4>
|
||||
<ul>
|
||||
<li>Bugfix</li>
|
||||
</ul>
|
||||
|
||||
<h4>Version 4.8.2</h4>
|
||||
<ul>
|
||||
<li>Added Control element for manual cronjobs</li>
|
||||
</ul>
|
||||
|
||||
<h4>Version 4.8.1</h4>
|
||||
<ul>
|
||||
<li>Handling of deprecated components</h4>
|
||||
</ul>
|
||||
|
||||
<h4>Version 4.6.2</h4>
|
||||
<ul>
|
||||
<li>Bugfixes</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h4>Version 4.6.1</h4>
|
||||
<ul>
|
||||
<li>Veranstaltungsanmeldungen</li>
|
||||
</ul>
|
||||
|
||||
<h4>Version 4.3.9</h4>
|
||||
<ul>
|
||||
<li>Fehlerbehebung</li>
|
||||
</ul>
|
||||
|
||||
<h4>Version 4.3.8</h4>
|
||||
<ul>
|
||||
<li>Google- und Bing-Verifizierung nun auch im Plugin möglich</li>
|
||||
<li>Neue Nutzerrollen</li>
|
||||
<li>Update in Menüstruktur</li>
|
||||
</ul>
|
||||
|
||||
<h4>Version 4.3.7</h4>
|
||||
<ul>
|
||||
<li>Design - Optimierungen</li>
|
||||
</ul>
|
||||
|
||||
<h4>Version 4.3.6</h4>
|
||||
<ul>
|
||||
<li>Sicherheitspatch</li>
|
||||
</ul>
|
||||
|
||||
<h4>Version 4.3.5</h4>
|
||||
<ul>
|
||||
<li>Translation fixes</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h4>Version 4.3.4</h4>
|
||||
<ul>
|
||||
<li>Optimized menu tree</li>
|
||||
</ul>
|
||||
|
||||
<h4>Version 4.3.3</h4>
|
||||
<ul>
|
||||
<li>Bugfix für osobletete Plugins</li>
|
||||
</ul>
|
||||
|
||||
<h4>Version 4.3.2</h4>
|
||||
<ul>
|
||||
<li>Bugfix: Zeitzone in Kalender korrigiert</li>
|
||||
</ul>
|
||||
|
||||
<h4>Version 4.3.1</h4>
|
||||
<ul>
|
||||
<li>Mehrsprachigkeit unterstützt</li>
|
||||
<li>Unterstützung für Smartphones</li>
|
||||
</ul>
|
||||
|
||||
<h4>Version 4.2.1</h4>
|
||||
<ul>
|
||||
<li>Erweiterte Sicherheitsfunktionen implemntiert</li>
|
||||
<li>Passwort-Policies implementiert</li>
|
||||
<li>Integration von Limit Login Attempts (classic)</li>
|
||||
<li>Integration von WPS Hide Login</li>
|
||||
</ul>
|
||||
|
||||
<h4>Version 4.1.1</h4>
|
||||
<ul>
|
||||
<li>Erster release des Plugins</li>
|
||||
</ul>
|
28
components/partials/checkbox-option.php
Normal file
28
components/partials/checkbox-option.php
Normal file
@ -0,0 +1,28 @@
|
||||
<?php
|
||||
function kompass_print_checkbox(string $settingName) {
|
||||
$currentSetting = get_option($settingName, []);
|
||||
if (!is_array($currentSetting)) {
|
||||
$currentSetting = [$currentSetting];
|
||||
}
|
||||
$options = ['kompass_limit_login_lockout_notify' => [
|
||||
'email' => __('E-Mail to site admin', BDP_LV_PLUGIN_SLUG)
|
||||
],
|
||||
];
|
||||
|
||||
if(!isset($options[$settingName])) {
|
||||
return;
|
||||
}
|
||||
|
||||
$setting = $options[$settingName];
|
||||
foreach ($setting as $radioOption => $optionText) {
|
||||
$isChecked = in_array($radioOption, $currentSetting) ? 'checked ' : '' ;
|
||||
|
||||
echo '<input ' .
|
||||
$isChecked .
|
||||
'type="checkbox"
|
||||
name="' . $settingName . '[]"
|
||||
value="' . $radioOption . '"
|
||||
id="setting_' . $settingName . '_' . $radioOption . '" />' .
|
||||
'<label for="setting_' . $settingName . '_' . $radioOption . '">' . $optionText . '</label><br />';
|
||||
}
|
||||
}
|
24
components/partials/date-element.php
Normal file
24
components/partials/date-element.php
Normal file
@ -0,0 +1,24 @@
|
||||
<?php
|
||||
function _kompass_print_datebox($settingName, $settingValue, $style = '') {
|
||||
echo '<input required style="' . $style . '" type="date" name="' . $settingName . '" value="' . $settingValue. '" />';
|
||||
if (defined('WP_DEBUG') && WP_DEBUG == true) {
|
||||
echo '<br />' . $settingName;
|
||||
}
|
||||
}
|
||||
|
||||
function kompass_print_datebox(array $args) {
|
||||
if (!isset($args['setting'])) {
|
||||
wp_die('Missing argument setting at text-element ' . print_r($args, true));
|
||||
}
|
||||
$setting = get_option($args['setting'], null);
|
||||
$setting = $setting ?? ( $args['value'] ?? '' );
|
||||
|
||||
$style = isset($args['style']) ? $args['style'] : '';
|
||||
|
||||
$value = esc_attr($setting);
|
||||
|
||||
if ($value === null && isset($args['value'])) {
|
||||
$value = $args['value'];
|
||||
}
|
||||
_kompass_print_datebox($args['setting'], $value, $style);
|
||||
}
|
9
components/partials/email-link.php
Normal file
9
components/partials/email-link.php
Normal file
@ -0,0 +1,9 @@
|
||||
<?php
|
||||
function kompass_get_email_link(string $email) : string {
|
||||
return '<a href="mailto:' . $email . '">' . $email . '</a>';
|
||||
}
|
||||
|
||||
function kompass_print_email_link(string $email)
|
||||
{
|
||||
echo kompass_get_email_link($email);
|
||||
}
|
18
components/partials/form-start.php
Normal file
18
components/partials/form-start.php
Normal file
@ -0,0 +1,18 @@
|
||||
<?php
|
||||
function kompass_prepare_form($params = [])
|
||||
{
|
||||
if (isset($params['page'])) {
|
||||
echo ' <form method="post" action="admin.php?page=' .$params['page'] . '">';
|
||||
}
|
||||
|
||||
echo '<input type="hidden" name="update_options" value="true" />';
|
||||
foreach ($params as $key => $value) {
|
||||
echo '<input type="hidden" name="' . $key . '" value="' . $value . '">';
|
||||
}
|
||||
}
|
||||
|
||||
function kompass_close_form(string $buttonText)
|
||||
{
|
||||
submit_button($buttonText,'button');
|
||||
echo '</form>';
|
||||
}
|
8
components/partials/message-box.php
Normal file
8
components/partials/message-box.php
Normal file
@ -0,0 +1,8 @@
|
||||
<?php
|
||||
function kompass_print_message_box(string $message, string $type = 'success')
|
||||
{
|
||||
echo '<div class="notice notice-' . $type .'" style="padding: 5px 10px;">';
|
||||
echo $message;
|
||||
echo '</div>';
|
||||
|
||||
}
|
35
components/partials/radio-option.php
Normal file
35
components/partials/radio-option.php
Normal file
@ -0,0 +1,35 @@
|
||||
<?php
|
||||
function kompass_print_radio(string $settingName) {
|
||||
$currentSetting = get_option($settingName, '');
|
||||
$options = [
|
||||
'kompass_limit_login_client_type' => [
|
||||
'REMOTE_ADDR' => __('Direct connection', BDP_LV_PLUGIN_SLUG),
|
||||
'HTTP_X_FORWARDED_FOR' => __('Behind a proxy', BDP_LV_PLUGIN_SLUG)
|
||||
],
|
||||
'kompass_limit_login_cookies' => [
|
||||
true => __('Yes', BDP_LV_PLUGIN_SLUG),
|
||||
false => __('No', BDP_LV_PLUGIN_SLUG)
|
||||
],
|
||||
'kompass_password_minimal_strength' => [
|
||||
'1' => __('Allow all password strengths', BDP_LV_PLUGIN_SLUG),
|
||||
'2' => __('At least passwords with medium strength', BDP_LV_PLUGIN_SLUG),
|
||||
'3' => __('Only allow strong passwords', BDP_LV_PLUGIN_SLUG)
|
||||
]
|
||||
];
|
||||
|
||||
if(!isset($options[$settingName])) {
|
||||
return;
|
||||
}
|
||||
|
||||
$setting = $options[$settingName];
|
||||
foreach ($setting as $radioOption => $optionText) {
|
||||
$isChecked = $currentSetting == $radioOption ? 'checked ' : '' ;
|
||||
echo '<input
|
||||
' . $isChecked .
|
||||
' type="radio"
|
||||
name="' . $settingName . '"
|
||||
value="' . $radioOption . '"
|
||||
id="setting_' . $settingName . '_' . $radioOption . '" />' .
|
||||
'<label for="setting_' . $settingName . '_' . $radioOption . '">' . $optionText . '</label><br />';
|
||||
}
|
||||
}
|
13
components/partials/telephon-link.php
Normal file
13
components/partials/telephon-link.php
Normal file
@ -0,0 +1,13 @@
|
||||
<?php
|
||||
function kompass_get_telephone_link(string $telephonnumber) : string {
|
||||
$numberInternational = $telephonnumber;
|
||||
if (str_starts_with($numberInternational, '0')) {
|
||||
$numberInternational = '+49' . substr($numberInternational,1);
|
||||
}
|
||||
return '<a href="tel:' . $numberInternational . '">' . $telephonnumber . '</a>';
|
||||
}
|
||||
|
||||
function kompass_print_telephone_link(string $telephonnumber)
|
||||
{
|
||||
echo kompass_get_telephone_link($telephonnumber);
|
||||
}
|
40
components/partials/text-element.php
Normal file
40
components/partials/text-element.php
Normal file
@ -0,0 +1,40 @@
|
||||
<?php
|
||||
function _kompass_print_textbox($settingName, $settingValue, $style = '', $appendix = '', $lines = 1, $data_type = 'text') {
|
||||
if (1 === $lines) {
|
||||
echo '<input required style="' . $style . '" type="' . $data_type . '" name="' . $settingName . '" value="' . $settingValue . '" />';
|
||||
} else {
|
||||
echo '<textarea required style="' . $style . '" name="' . $settingName . '" rows=' . $lines . '>' . $settingValue . '</textarea>';
|
||||
}
|
||||
if (null !== $appendix) {
|
||||
echo ' ' . $appendix;
|
||||
}
|
||||
if (defined('WP_DEBUG') && WP_DEBUG == true) {
|
||||
echo '<br />' . $settingName;
|
||||
}
|
||||
}
|
||||
|
||||
function kompass_print_textbox(array $args) {
|
||||
if (!isset($args['setting'])) {
|
||||
wp_die('Missing argument setting at text-element ' . print_r($args, true));
|
||||
}
|
||||
$setting = get_option($args['setting'], null);
|
||||
$setting = $setting ?? ( $args['value'] ?? '' );
|
||||
$appendix = $args['appendix'] ?? null;
|
||||
$lines = $args['lines'] ?? 1;
|
||||
$type = $args['type'] ?? 'text';
|
||||
|
||||
|
||||
$style = isset($args['style']) ? $args['style'] : '';
|
||||
|
||||
$value = esc_attr($setting);
|
||||
if (isset($args['unit_division'])) {
|
||||
$value = (int)$value / (int)$args['unit_division'];
|
||||
}
|
||||
|
||||
if ($value === null && isset($args['value'])) {
|
||||
$value = $args['value'];
|
||||
}
|
||||
|
||||
|
||||
_kompass_print_textbox($args['setting'], $value, $style, $appendix, $lines, $type);
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
<?php
|
||||
require_once (ABSPATH . '/wp-admin/includes/plugin.php');
|
||||
require_once (ABSPATH . '/wp-admin/includes/class-wp-filesystem-base.php');
|
||||
require_once (ABSPATH . '/wp-admin/includes/class-wp-filesystem-direct.php');
|
||||
require_once (BDP_LV_PLUGIN_DIR . '/lib/ics-parser/Event.php');
|
||||
require_once (BDP_LV_PLUGIN_DIR . '/lib/ics-parser/ICal.php');
|
||||
|
||||
require_once (BDP_LV_PLUGIN_DIR . '/modules/seo/seo.php');
|
||||
require_once (BDP_LV_PLUGIN_DIR . '/modules/calendar/calendar.php');
|
||||
require_once (ABSPATH . '/wp-includes/pluggable.php');
|
||||
|
||||
require_once (BDP_LV_PLUGIN_DIR . '/core/frontend-functions.php');
|
||||
|
||||
require_once (BDP_LV_PLUGIN_DIR . '/modules/security/security.php');
|
@ -1,179 +0,0 @@
|
||||
<?php
|
||||
|
||||
add_action('admin_enqueue_scripts', 'bdp_update_dashboard_style');
|
||||
add_action('login_enqueue_scripts', 'bdp_update_login_style');
|
||||
|
||||
function bdp_update_login_style() {
|
||||
$css = file_get_contents(BDP_LV_PLUGIN_DIR . 'assets/dashboard.style.css.tpl');
|
||||
echo str_replace('%%BDP_LV_PLUGIN_URL%%', BDP_LV_PLUGIN_URL, $css);
|
||||
}
|
||||
|
||||
function bdp_update_dashboard_style() {
|
||||
wp_enqueue_style('custom-dashboard-styles', BDP_LV_PLUGIN_URL . '/assets/wordpress-bdp.css');
|
||||
wp_enqueue_style('custom-calendar-styles', BDP_LV_PLUGIN_URL . '/assets/calendar.css');
|
||||
wp_enqueue_style('custom-security-styles', BDP_LV_PLUGIN_URL . '/assets/security.css');
|
||||
}
|
||||
|
||||
|
||||
function bdp_add_menu_security() {
|
||||
$moduleLoad = get_admin_url() . 'admin.php?page=' . BDP_LV_PLUGIN_SLUG . '/modules/index.php&loadmodule=';
|
||||
|
||||
add_menu_page(
|
||||
'Sicherheit',
|
||||
'Erweiterte<br />Sicherheit',
|
||||
'manage_options',
|
||||
'site-health.php',
|
||||
'',
|
||||
'dashicons-admin-network',
|
||||
5
|
||||
);
|
||||
|
||||
https://wordpress.local.development.contelli.de/wp-admin/admin.php?page=limit-login-attempts
|
||||
add_submenu_page('site-health.php',
|
||||
'Login-Kontrolle',
|
||||
'Login-Kontrolle',
|
||||
'manage_options',
|
||||
get_admin_url() . 'admin.php?page=limit-login-attempts'
|
||||
);
|
||||
}
|
||||
|
||||
function bdp_add_menu_contents() {
|
||||
add_menu_page(
|
||||
'Beiträge',
|
||||
'Inhalte',
|
||||
'edit_posts',
|
||||
'edit.php',
|
||||
'',
|
||||
'dashicons-format-aside',
|
||||
4
|
||||
);
|
||||
|
||||
add_submenu_page('edit.php',
|
||||
'media',
|
||||
'Medienverwaltung',
|
||||
'edit_posts',
|
||||
'upload.php'
|
||||
);
|
||||
|
||||
add_submenu_page('edit.php',
|
||||
'media',
|
||||
'Statische Seiten',
|
||||
'edit_posts',
|
||||
'edit.php?post_type=page'
|
||||
);
|
||||
|
||||
add_submenu_page('edit.php',
|
||||
'comments',
|
||||
'Kommentare',
|
||||
'edit_posts',
|
||||
'edit-comments.php'
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
function bdp_add_menu_mein_lv() {
|
||||
$location = BDP_LV_PLUGIN_DIR . '/modules/';
|
||||
$mainSlug = $location . 'index.php';
|
||||
$moduleLoad = get_admin_url() . 'admin.php?page=' . BDP_LV_PLUGIN_SLUG . '/modules/index.php&loadmodule=';
|
||||
|
||||
add_menu_page(
|
||||
'Mein BDP',
|
||||
'BdP',
|
||||
'manage_options',
|
||||
$mainSlug,
|
||||
'',
|
||||
BDP_LV_PLUGIN_URL . '/icon.png',
|
||||
3
|
||||
);
|
||||
|
||||
add_submenu_page($mainSlug,
|
||||
'calendar_settings',
|
||||
'Kalender-Einstellungen',
|
||||
'manage_options',
|
||||
$moduleLoad . 'calendar'
|
||||
);
|
||||
|
||||
add_submenu_page($mainSlug,
|
||||
'calendar_settings',
|
||||
'Über',
|
||||
'manage_options',
|
||||
$moduleLoad . 'about'
|
||||
);
|
||||
}
|
||||
|
||||
function bdp_add_menu_setup() {
|
||||
add_menu_page(
|
||||
'Allgemeine Einstellungen',
|
||||
'Webseiten-Setup',
|
||||
'manage_options',
|
||||
'users.php',
|
||||
'',
|
||||
'dashicons-admin-generic',
|
||||
6
|
||||
);
|
||||
|
||||
add_submenu_page('users.php',
|
||||
'Allgemeine Einstellungen',
|
||||
'Allgemeine Einstellungen',
|
||||
'manage_options',
|
||||
'options-general.php'
|
||||
);
|
||||
|
||||
add_submenu_page('users.php',
|
||||
'Design-Einstellungen',
|
||||
'Design',
|
||||
'manage_options',
|
||||
'customize.php?return=/wp-admin/'
|
||||
);
|
||||
|
||||
add_submenu_page('users.php',
|
||||
'plugins',
|
||||
'Erweiterungen',
|
||||
'manage_options',
|
||||
'plugins.php'
|
||||
);
|
||||
|
||||
|
||||
add_submenu_page('users.php',
|
||||
'themes',
|
||||
'Designs',
|
||||
'manage_options',
|
||||
'themes.php'
|
||||
);
|
||||
}
|
||||
|
||||
function bdp_cleanup_menu()
|
||||
{
|
||||
global $submenu;
|
||||
|
||||
remove_menu_page('edit-comments.php');
|
||||
remove_menu_page('edit.php');
|
||||
remove_menu_page('edit.php?post_type=page');
|
||||
remove_menu_page('upload.php');
|
||||
remove_menu_page('themes.php');
|
||||
remove_menu_page('plugins.php');
|
||||
remove_menu_page('options-general.php');
|
||||
remove_menu_page('users.php');
|
||||
remove_menu_page('tools.php');
|
||||
|
||||
bdp_add_menu_contents();
|
||||
bdp_add_menu_setup();
|
||||
bdp_add_menu_security();
|
||||
|
||||
|
||||
|
||||
remove_submenu_page('users.php','user-new.php');
|
||||
remove_submenu_page('users.php','profile.php');
|
||||
|
||||
remove_submenu_page('edit.php','post-new.php');
|
||||
remove_submenu_page('edit.php','edit-tags.php?taxonomy=category');
|
||||
remove_submenu_page('edit.php','edit-tags.php?taxonomy=post_tag');
|
||||
|
||||
|
||||
}
|
||||
|
||||
function bdp_create_menu_structure()
|
||||
{
|
||||
add_action('admin_menu', 'bdp_cleanup_menu');
|
||||
bdp_add_menu_mein_lv();
|
||||
}
|
71
includes/DatabaseHandler.php
Normal file
71
includes/DatabaseHandler.php
Normal file
@ -0,0 +1,71 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Bdp\Libs;
|
||||
|
||||
class DatabaseHandler {
|
||||
public function readFromDb(string $table, array $conditions = []) : array {
|
||||
global $wpdb;
|
||||
$sql = 'SELECT * FROM ' . $wpdb->prefix . $table . $this->parseConditions($conditions);
|
||||
return $this->getResults( $sql );
|
||||
}
|
||||
|
||||
public function readSqlFromDb(string $tableName, string $preparedSql) : array
|
||||
{
|
||||
global $wpdb;
|
||||
$sql = str_replace('%tablename%', $wpdb->prefix . $tableName, $preparedSql );
|
||||
return $this->getResults($sql);
|
||||
}
|
||||
|
||||
public function deleteFromDb(string $table, array $conditions = []) {
|
||||
global $wpdb;
|
||||
$table = $wpdb->prefix . $table;
|
||||
$wpdb->delete($table, $conditions);
|
||||
}
|
||||
|
||||
public function insertRows(string $tableName, array $newData) : ?int
|
||||
{
|
||||
global $wpdb;
|
||||
$tableName = $wpdb->prefix . $tableName;
|
||||
|
||||
|
||||
if (!$wpdb->insert( $tableName, $newData )) {
|
||||
return null;
|
||||
};
|
||||
return $wpdb->insert_id;
|
||||
}
|
||||
|
||||
public function updateRows(string $tableName, array $newData, $conditions = [])
|
||||
{
|
||||
global $wpdb;
|
||||
$tableName = $wpdb->prefix . $tableName;
|
||||
return $wpdb->update( $tableName, $newData, $conditions );
|
||||
}
|
||||
|
||||
public function countSqlRows(string $tableName, array $conditions = []) : int
|
||||
{
|
||||
global $wpdb;
|
||||
$sql = 'SELECT COUNT(*) as count_data FROM ' . $wpdb->prefix . $tableName . $this->parseConditions($conditions);
|
||||
$res = $this->getResults( $sql );
|
||||
$res = $res[0];
|
||||
return (int)$res->count_data;
|
||||
}
|
||||
|
||||
private function getResults(string $sql) : array
|
||||
{
|
||||
global $wpdb;
|
||||
return $wpdb->get_results($sql, OBJECT );
|
||||
}
|
||||
|
||||
private function parseConditions(array $conditionArray) : string
|
||||
{
|
||||
global $wpdb;
|
||||
$_tmpArr = [];
|
||||
foreach ($conditionArray as $key => $value) {
|
||||
$_tmpArr[] = '`' . $key .'` = "' . $wpdb->_real_escape($value) . '"';
|
||||
}
|
||||
|
||||
$returnString = implode(' AND ', $_tmpArr);
|
||||
return $returnString !== '' ? (' WHERE ' . $returnString) : '';
|
||||
}
|
||||
}
|
56
includes/FileAccess.class.php
Normal file
56
includes/FileAccess.class.php
Normal file
@ -0,0 +1,56 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Bdp\Libs;
|
||||
|
||||
class FileAccess extends \WP_Filesystem_Direct
|
||||
{
|
||||
public const HTACCESS_MAIN = '/.htaccess';
|
||||
public const HTACCESS_UPLOADS = '/wp-content/uploads/.htaccess';
|
||||
|
||||
public function __construct( $arg = null )
|
||||
{
|
||||
if ( ! defined( 'FS_CHMOD_FILE' ) ) {
|
||||
define( 'FS_CHMOD_FILE', ( fileperms( ABSPATH . 'index.php' ) & 0777 | 0644 ) );
|
||||
}
|
||||
}
|
||||
|
||||
public static function htaccessContains(string $needle, $file = self::HTACCESS_MAIN) : bool
|
||||
{
|
||||
return str_contains(FileAccess::readHtaccess($file), $needle);
|
||||
}
|
||||
|
||||
public static function readHtaccess($file = self::HTACCESS_MAIN) : string
|
||||
{
|
||||
$wfs = new self();
|
||||
if (!$wfs->exists(ABSPATH . $file)) {
|
||||
return '';
|
||||
}
|
||||
|
||||
return $wfs->get_contents(ABSPATH . $file);
|
||||
}
|
||||
|
||||
public static function writeHtaccess(string $value, $file = self::HTACCESS_MAIN) : bool
|
||||
{
|
||||
$wfs = new self();
|
||||
$wfs->put_contents(ABSPATH . $file, $value);
|
||||
return true;
|
||||
}
|
||||
|
||||
public static function insertInHtaccess(string $element, $file = self::HTACCESS_MAIN) : bool
|
||||
{
|
||||
if (FileAccess::htaccessContains($element, $file)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
$htaccessFile = FileAccess::readHtaccess($file);
|
||||
$htaccessFile .= PHP_EOL . $element . PHP_EOL;
|
||||
FileAccess::writeHtaccess($htaccessFile, $file);
|
||||
return true;
|
||||
}
|
||||
|
||||
public static function deleteFromHtaccess(string $element, $file = self::HTACCESS_MAIN) : bool {
|
||||
$htaccessFile = str_replace($element . PHP_EOL, '', FileAccess::readHtaccess($file));
|
||||
return FileAccess::writeHtaccess($htaccessFile, $file);
|
||||
}
|
||||
}
|
89
includes/WpConfigEditor.class.php
Normal file
89
includes/WpConfigEditor.class.php
Normal file
@ -0,0 +1,89 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Bdp\Libs;
|
||||
|
||||
class WpConfigEditor extends \WP_Filesystem_Direct
|
||||
{
|
||||
public const WP_CONFIG_FILE = '/wp-config.php';
|
||||
|
||||
public function __construct($arg = null)
|
||||
{
|
||||
if (!defined('FS_CHMOD_FILE')) {
|
||||
define('FS_CHMOD_FILE', (fileperms(ABSPATH . 'index.php') & 0777 | 0644));
|
||||
}
|
||||
}
|
||||
|
||||
public function readConfig(): string
|
||||
{
|
||||
if (!$this->exists(ABSPATH . self::WP_CONFIG_FILE)) {
|
||||
return '';
|
||||
}
|
||||
|
||||
return $this->get_contents(ABSPATH . self::WP_CONFIG_FILE);
|
||||
}
|
||||
|
||||
public function writeConfig($value): bool
|
||||
{
|
||||
$value = str_replace('<?php', '', $value);
|
||||
$value = str_replace('<?', '', $value);
|
||||
$value = str_replace('?>', '', $value);
|
||||
|
||||
$value = str_replace(PHP_EOL . PHP_EOL, PHP_EOL, $value);
|
||||
|
||||
$value = '<?php' . PHP_EOL . $value;
|
||||
$this->put_contents(ABSPATH . self::WP_CONFIG_FILE, $value);
|
||||
return true;
|
||||
}
|
||||
|
||||
public static function updateConfig($key, $value): bool
|
||||
{
|
||||
$wfs = new self();
|
||||
$configContent = $wfs->readConfig();
|
||||
|
||||
if (null === self::getConfigValue($key)) {
|
||||
$configContent .= "define( '$key', $value );" . PHP_EOL;
|
||||
}
|
||||
|
||||
preg_match("/define\([ ]?'($key)'\,[ ]?(.*)[ ]?\);/",$configContent, $matches);
|
||||
$configContent = str_replace($matches[0], "define( '$key', $value );", $configContent);
|
||||
return $wfs->writeConfig($configContent);
|
||||
}
|
||||
|
||||
public static function getConfigValue($key): ?string
|
||||
{
|
||||
$wfs = new self();
|
||||
$configContent = $wfs->readConfig();
|
||||
|
||||
preg_match("/define\([ ]?'($key)'\,[ ]?(.*)[ ]?\);/",$configContent, $matches);
|
||||
if (count($matches) == 0) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return trim($matches[2]);
|
||||
}
|
||||
|
||||
public static function updateSiteKeys(string $newKeySet)
|
||||
{
|
||||
foreach (explode(PHP_EOL, trim($newKeySet)) as $currentKeyLine) {
|
||||
preg_match("/define\([ ]?'(.*)'\,[ ]?(.*)[ ]?\);/", $currentKeyLine, $matches);
|
||||
self::updateConfig($matches[1], trim($matches[2]));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public static function deleteConfigKey($key): bool
|
||||
{
|
||||
if (null === self::getConfigValue($key)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
$wfs = new self();
|
||||
$configContent = $wfs->readConfig();
|
||||
|
||||
preg_match("/define\([ ]?'($key)'\,[ ]?(.*)[ ]?\);/",$configContent, $matches);
|
||||
$configContent = str_replace($matches[0], '', $configContent);
|
||||
return $wfs->writeConfig($configContent);
|
||||
}
|
||||
}
|
32
includes/action_caller.php
Normal file
32
includes/action_caller.php
Normal file
@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
add_filter( 'admin_enqueue_scripts', 'enqueue_custom_password_js',10 );
|
||||
|
||||
add_action('admin_init', 'kompass_admin_init');
|
||||
|
||||
function add_custom_admin_bar_item() {
|
||||
return;
|
||||
global $wp_admin_bar;
|
||||
|
||||
// Überprüfen, ob der Benutzer die erforderliche Berechtigung hat
|
||||
if ( current_user_can( 'show_groups' ) ) {
|
||||
// Das Array mit den Eigenschaften des benutzerdefinierten Elements
|
||||
$args = [
|
||||
'id' => 'kompass_events',
|
||||
'title' => '<span class="ab-icon dashicons-tickets-alt"></span>' .
|
||||
'<span class="ab-label">' .__('Events', BDP_LV_PLUGIN_SLUG) . '</span>',
|
||||
'href' => get_admin_url() . 'admin.php?page=kompass-events',
|
||||
|
||||
];
|
||||
|
||||
// Das benutzerdefinierte Element zur Admin-Leiste hinzufügen
|
||||
$wp_admin_bar->add_node( $args );
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// Die Funktion aufrufen, um das benutzerdefinierte Element zur Admin-Leiste hinzuzufügen
|
||||
add_action( 'admin_bar_menu', 'add_custom_admin_bar_item', 50 );
|
||||
|
||||
add_action('wp_head', 'kompass_seo_add_verifications' );
|
34
includes/class-modelcommon.php
Normal file
34
includes/class-modelcommon.php
Normal file
@ -0,0 +1,34 @@
|
||||
<?php
|
||||
namespace Bdp\Libs;
|
||||
|
||||
class CommonModel extends \stdClass {
|
||||
protected string $_tablename;
|
||||
|
||||
public static function load_by_id(string $table_name, int $object_id) {
|
||||
global $dbHandler;
|
||||
|
||||
$data = $dbHandler->readFromDb($table_name, ['id' => $object_id]);
|
||||
$class = new CommonModel();
|
||||
|
||||
foreach (get_object_vars($data[0]) as $key => $value) {
|
||||
$class->$key = $value;
|
||||
}
|
||||
|
||||
return $class;
|
||||
}
|
||||
|
||||
public function delete() {
|
||||
global $dbHandler;
|
||||
|
||||
}
|
||||
public function is_fullaged() : bool {
|
||||
return kompass_is_fullaged($this->geburtsdatum);
|
||||
}
|
||||
|
||||
public function get_age() {
|
||||
$obj_birthday = \DateTime::createFromFormat('Y-m-d', $this->geburtsdatum);
|
||||
$today = new \DateTime();
|
||||
$compare = date_diff($today, $obj_birthday);
|
||||
return $compare->y;
|
||||
}
|
||||
}
|
7
includes/environment.php
Normal file
7
includes/environment.php
Normal file
@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
define('BDP_LV_PLUGIN_SLUG', 'bdp-kompass');
|
||||
define('BDP_LV_STARTUP_FILE', WP_PLUGIN_DIR . '/' . BDP_LV_PLUGIN_SLUG . '/' . BDP_LV_PLUGIN_SLUG . '.php');
|
||||
|
||||
define('BDP_LV_PLUGIN_DIR', plugin_dir_path(BDP_LV_STARTUP_FILE));
|
||||
define('BDP_LV_PLUGIN_URL', plugin_dir_url(BDP_LV_STARTUP_FILE));
|
59
includes/filters.php
Normal file
59
includes/filters.php
Normal file
@ -0,0 +1,59 @@
|
||||
<?php
|
||||
|
||||
use Bdp\Modules\EventParticipants\Controllers\EventSignupPageController;
|
||||
use Bdp\Modules\EventParticipants\Controllers\RegisterMemberController;
|
||||
|
||||
add_action( 'plugins_loaded', 'bdp_kompass_load_plugin_textdomain' );
|
||||
|
||||
register_activation_hook(BDP_LV_STARTUP_FILE, 'bdp_plugin_install');
|
||||
add_action('init', 'bdp_plugin_init');
|
||||
|
||||
|
||||
|
||||
function _protect_wp_disablexmlrpc_string() {
|
||||
return "<FilesMatch \"xmlrpc.php\">
|
||||
Require all denied
|
||||
</FilesMatch>";
|
||||
}
|
||||
|
||||
function _protect_wp_disable_script_execution_string() {
|
||||
return '<FilesMatch "\.(php|phtml|php3|php4|php5|pl|py|jsp|asp|html|htm|shtml|sh|cgi|suspected)$">' . "
|
||||
deny from all
|
||||
</FilesMatch>";
|
||||
}
|
||||
|
||||
function _protect_wp_disable_special_files_string() {
|
||||
return '<FilesMatch "^.*(README|error_log|wp-config\.php|user.ini|log|php.ini|\.[hH][tT][aApP].*)$">' . "
|
||||
deny from all
|
||||
</FilesMatch>";
|
||||
}
|
||||
|
||||
function _protect_wp_disable_directory_listing_string() {
|
||||
return 'Options -Indexes';
|
||||
}
|
||||
|
||||
function _protect_wp_secure_include_dir_string() {
|
||||
return "RewriteEngine On
|
||||
RewriteBase /
|
||||
RewriteRule ^wp-admin/includes/ - [F,L]
|
||||
RewriteRule !^wp-includes/ - [S=3]
|
||||
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
|
||||
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
|
||||
RewriteRule ^wp-includes/theme-compat/ - [F,L]";
|
||||
}
|
||||
|
||||
function _protect_wp_initial_bot_list_array()
|
||||
{
|
||||
return explode(';', 'SemrushBot;AhrefsBot;DotBot;WhatCMS;Rogerbot;trendictionbot;BLEXBot;linkfluence;magpie-crawler;MJ12bot;Mediatoolkitbot;AspiegelBot;DomainStatsBot;Cincraw;Nimbostratus;HTTrack;serpstatbot;omgili;GrapeshotCrawler;MegaIndex;PetalBot;Semanticbot;Cocolyzebot;DomCopBot;Traackr;BomboraBot;Linguee;webtechbot;DomainStatsBot;Clickagy;sqlmap;Internet-structure-research-project-bot;Seekport;AwarioSmartBot;OnalyticaBot;Buck;Riddler;SBL-BOT;DF Bot 1.0;PubMatic Crawler Bot;BVBot;Sogou;Barkrowler;Yandex');
|
||||
}
|
||||
|
||||
|
||||
add_filter('the_content', 'load_kompass_content');
|
||||
|
||||
|
||||
function load_kompass_content($content) {
|
||||
$content = Calendar::printCalendar($content);
|
||||
$content = EventSignupPageController::print_signup_page($content);
|
||||
|
||||
return $content;
|
||||
}
|
70
includes/frontend-functions.php
Normal file
70
includes/frontend-functions.php
Normal file
@ -0,0 +1,70 @@
|
||||
<?php
|
||||
|
||||
add_action('admin_enqueue_scripts', 'bdp_update_dashboard_style');
|
||||
add_action('login_enqueue_scripts', 'bdp_update_login_style');
|
||||
|
||||
function bdp_update_login_style() {
|
||||
if (false === (bool)get_option( 'use_mareike_theme', false )) {
|
||||
$css = file_get_contents( BDP_LV_PLUGIN_DIR . 'assets/dashboard.style.css.tpl' );
|
||||
echo str_replace( '%%BDP_LV_PLUGIN_URL%%', BDP_LV_PLUGIN_URL, $css );
|
||||
}
|
||||
}
|
||||
|
||||
function bdp_update_dashboard_style() {
|
||||
if (true === (bool)get_option( 'use_mareike_theme', false )) {
|
||||
#wp_enqueue_style( 'custom-dashboard-styles', BDP_LV_PLUGIN_URL . '/assets/mareike.css' );
|
||||
wp_enqueue_style( 'custom-dashboard-styles', BDP_LV_PLUGIN_URL . '/assets/wordpress-bdp.css' );
|
||||
} else {
|
||||
wp_enqueue_style( 'custom-dashboard-styles', BDP_LV_PLUGIN_URL . '/assets/wordpress-bdp.css' );
|
||||
}
|
||||
wp_enqueue_style('custom-calendar-styles', BDP_LV_PLUGIN_URL . '/assets/calendar.css');
|
||||
wp_enqueue_style('custom-security-styles', BDP_LV_PLUGIN_URL . '/assets/security.css');
|
||||
}
|
||||
|
||||
function kompass_install_plugin($url, $slug) {
|
||||
// Überprüfen, ob die URL gültig ist
|
||||
if (filter_var($url, FILTER_VALIDATE_URL) === FALSE) {
|
||||
echo 'Ungültige URL';
|
||||
return;
|
||||
}
|
||||
|
||||
// Dateinamen und Pfad festlegen
|
||||
$tmp_file = download_url($url);
|
||||
|
||||
// Überprüfen, ob der Download erfolgreich war
|
||||
if (is_wp_error($tmp_file)) {
|
||||
echo 'Download-Fehler: ' . $tmp_file->get_error_message();
|
||||
return;
|
||||
}
|
||||
|
||||
// Pfad des Plugins
|
||||
$plugin_folder = WP_PLUGIN_DIR;
|
||||
|
||||
// Plugin Upgrader Klassen einbinden
|
||||
require_once ABSPATH . 'wp-admin/includes/file.php';
|
||||
require_once ABSPATH . 'wp-admin/includes/plugin.php';
|
||||
require_once ABSPATH . 'wp-admin/includes/misc.php';
|
||||
require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
|
||||
require_once ABSPATH . 'wp-admin/includes/class-wp-ajax-upgrader-skin.php';
|
||||
require_once ABSPATH . 'wp-admin/includes/class-plugin-upgrader.php';
|
||||
|
||||
// Plugin upgrader initialisieren
|
||||
$upgrader = new Plugin_Upgrader(new WP_Ajax_Upgrader_Skin());
|
||||
|
||||
// Plugin installieren
|
||||
$result = $upgrader->install($tmp_file);
|
||||
|
||||
// Temp Datei löschen
|
||||
unlink($tmp_file);
|
||||
activate_plugin($slug . '/' . $slug . '.php' );
|
||||
|
||||
|
||||
// Überprüfen, ob die Installation erfolgreich war
|
||||
if (is_wp_error($result)) {
|
||||
echo 'Installations-Fehler: ' . $result->get_error_message();
|
||||
} else {
|
||||
echo 'Plugin erfolgreich installiert';
|
||||
}
|
||||
|
||||
}
|
||||
|
21
includes/pdfhandler.php
Normal file
21
includes/pdfhandler.php
Normal file
@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
use Dompdf\Dompdf;
|
||||
use Dompdf\Options;
|
||||
|
||||
function kompass_create_pdf (string $content, string $filename, string $format = 'portrait', bool $force_download = true): ?string {
|
||||
|
||||
|
||||
$dompdf = new Dompdf();
|
||||
$dompdf->setPaper('A4', $format);
|
||||
$dompdf->loadHtml($content);
|
||||
|
||||
$dompdf->render();
|
||||
|
||||
if (!$force_download) {
|
||||
return $dompdf->output();
|
||||
}
|
||||
|
||||
$dompdf->stream( $filename );
|
||||
return null;
|
||||
}
|
9
includes/pre_requires.php
Normal file
9
includes/pre_requires.php
Normal file
@ -0,0 +1,9 @@
|
||||
<?php
|
||||
require_once (ABSPATH . '/wp-admin/includes/plugin.php');
|
||||
require_once (ABSPATH . '/wp-admin/includes/class-wp-filesystem-base.php');
|
||||
require_once (ABSPATH . '/wp-admin/includes/class-wp-filesystem-direct.php');
|
||||
require_once (ABSPATH . '/wp-includes/pluggable.php');
|
||||
require_once (ABSPATH . '/wp-includes/capabilities.php');
|
||||
require_once (ABSPATH . '/wp-admin/includes/template.php');
|
||||
require_once (ABSPATH . '/wp-admin/includes/file.php');
|
||||
require_once( ABSPATH . '/wp-admin/includes/upgrade.php' );
|
79
includes/roles.php
Normal file
79
includes/roles.php
Normal file
@ -0,0 +1,79 @@
|
||||
<?php
|
||||
function setup_site_roles()
|
||||
{
|
||||
remove_role( 'subscriber' ); // Hier 'custom_role_slug' durch den tatsächlichen Slug der zu löschenden Rolle ersetzen
|
||||
remove_role( 'contributor' ); // Hier 'custom_role_slug' durch den tatsächlichen Slug der zu löschenden Rolle ersetzen
|
||||
remove_role( 'author' ); // Hier 'custom_role_slug' durch den tatsächlichen Slug der zu löschenden Rolle ersetzen
|
||||
remove_role( 'editor' ); // Hier 'custom_role_slug' durch den tatsächlichen Slug der zu löschenden Rolle ersetzen
|
||||
|
||||
$role = get_role( 'director' );
|
||||
if ( null === $role ) {
|
||||
add_role(
|
||||
'director',
|
||||
true === get_option( 'solea_used_for_state', false )
|
||||
? __( 'State director', 'mareike' )
|
||||
: __( 'Club director', 'mareike' ),
|
||||
kompass_get_capa_editor()
|
||||
);
|
||||
} else {
|
||||
$role = get_role( 'director' );
|
||||
foreach ( kompass_get_capa_editor() as $capability => $value ) {
|
||||
$role->add_cap( $capability );
|
||||
}
|
||||
}
|
||||
|
||||
add_role( 'author', 'Redakteur', kompass_get_capa_editor() );
|
||||
|
||||
$role = get_role( 'user' );
|
||||
if ( null === $role ) {
|
||||
add_role(
|
||||
'user',
|
||||
'Standardnutzer',
|
||||
array('read' => true)
|
||||
);
|
||||
} else {
|
||||
$role->add_cap( 'read' );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function kompass_get_capa_editor() : array
|
||||
{
|
||||
return [
|
||||
'moderate_comments' => true,
|
||||
'manage_categories' => true,
|
||||
'manage_links' => true,
|
||||
'upload_files' => true,
|
||||
'unfiltered_html' => true,
|
||||
'edit_posts' => true,
|
||||
'edit_others_posts' => true,
|
||||
'edit_published_posts' => true,
|
||||
'publish_posts' => true,
|
||||
'edit_pages' => true,
|
||||
'read' => true,
|
||||
'level_7' => true,
|
||||
'level_6' => true,
|
||||
'level_5' => true,
|
||||
'level_4' => true,
|
||||
'level_3' => true,
|
||||
'level_2' => true,
|
||||
'level_1' => true,
|
||||
'level_0' => true,
|
||||
'edit_others_pages' => true,
|
||||
'edit_published_pages' => true,
|
||||
'publish_pages' => true,
|
||||
'delete_pages' => true,
|
||||
'delete_others_pages' => true,
|
||||
'delete_published_pages' => true,
|
||||
'delete_posts' => true,
|
||||
'delete_others_posts' => true,
|
||||
'delete_published_posts' => true,
|
||||
'delete_private_posts' => true,
|
||||
'edit_private_posts' => true,
|
||||
'read_private_posts' => true,
|
||||
'delete_private_pages' => true,
|
||||
'edit_private_pages' => true,
|
||||
'read_private_pages' => true,
|
||||
|
||||
];
|
||||
}
|
80
includes/setup.php
Normal file
80
includes/setup.php
Normal file
@ -0,0 +1,80 @@
|
||||
<?php
|
||||
use Bdp\Libs\DatabaseHandler;
|
||||
|
||||
|
||||
require_once dirname(__FILE__) . '/pre_requires.php';
|
||||
require_once dirname(__FILE__) . '/environment.php';
|
||||
|
||||
require_once (BDP_LV_PLUGIN_DIR . '/lib/dompdf/autoload.php');
|
||||
require_once dirname(__FILE__) . '/pdfhandler.php';
|
||||
|
||||
require_once (BDP_LV_PLUGIN_DIR . '/includes/class-modelcommon.php');
|
||||
|
||||
require_once dirname(__FILE__) . '/spl.php';
|
||||
require_once dirname(__FILE__) . '/update.class.php';
|
||||
|
||||
require_once BDP_LV_PLUGIN_DIR . 'includes/FileAccess.class.php';
|
||||
require_once BDP_LV_PLUGIN_DIR . 'includes/WpConfigEditor.class.php';
|
||||
require_once BDP_LV_PLUGIN_DIR . 'includes/DatabaseHandler.php';
|
||||
require_once (BDP_LV_PLUGIN_DIR . '/includes/roles.php');
|
||||
|
||||
|
||||
|
||||
require_once (BDP_LV_PLUGIN_DIR . '/includes/filters.php');
|
||||
|
||||
require_once (BDP_LV_PLUGIN_DIR . '/lib/ics-parser/Event.php');
|
||||
require_once (BDP_LV_PLUGIN_DIR . '/lib/ics-parser/ICal.php');
|
||||
|
||||
require_once (BDP_LV_PLUGIN_DIR . '/modules/seo/seo.php');
|
||||
require_once (BDP_LV_PLUGIN_DIR . '/modules/calendar/calendar.php');
|
||||
require_once (BDP_LV_PLUGIN_DIR . '/includes/frontend-functions.php');
|
||||
|
||||
require_once (BDP_LV_PLUGIN_DIR . '/modules/calendar/Views/settings-form.php');
|
||||
require_once (BDP_LV_PLUGIN_DIR . '/modules/security/security.php');
|
||||
|
||||
|
||||
$dbHandler = new DatabaseHandler();
|
||||
function kompass_admin_init()
|
||||
{
|
||||
}
|
||||
|
||||
function bdp_kompass_load_plugin_textdomain() {
|
||||
load_textdomain( BDP_LV_PLUGIN_SLUG, BDP_LV_PLUGIN_DIR . '/lang/' . BDP_LV_PLUGIN_SLUG . '-' . get_locale() . '.mo' );
|
||||
}
|
||||
|
||||
|
||||
function kompass_after_setup_theme()
|
||||
{
|
||||
setup_site_roles();
|
||||
register_custom_theme_directory();
|
||||
|
||||
}
|
||||
|
||||
function kompass_is_fullaged(string $birthday) : bool {
|
||||
$obj_birthday = \DateTime::createFromFormat('Y-m-d', $birthday);
|
||||
$today = new DateTime();
|
||||
$compare = date_diff($today, $obj_birthday);
|
||||
return $compare->y >= 18;
|
||||
}
|
||||
|
||||
function kompass_get_age(string $birthday) : int {
|
||||
$obj_birthday = \DateTime::createFromFormat('Y-m-d', $birthday);
|
||||
$today = new DateTime();
|
||||
$compare = date_diff($today, $obj_birthday);
|
||||
return $compare->y;
|
||||
}
|
||||
|
||||
function bdp_kompass_load_ajax_content() {
|
||||
$class = 'Bdp\\Modules\\' . $_REQUEST['module'] . '\\Controllers\\AjaxRouterController';
|
||||
if (!class_exists($class)) {
|
||||
wp_die('Invalid module call: Module=' . $_REQUEST['module']);
|
||||
}
|
||||
new $class();
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
new BdpVersionChecker();
|
||||
|
||||
#add_filter( 'plugins_api', array( $class, 'info' ), 20, 3 );
|
||||
require_once dirname(__FILE__) . '/action_caller.php';
|
49
includes/spl.php
Normal file
49
includes/spl.php
Normal file
@ -0,0 +1,49 @@
|
||||
<?php
|
||||
spl_autoload_register(function ($className) {
|
||||
|
||||
if (!str_starts_with($className, 'ProtectLogin\\')) {
|
||||
return;
|
||||
}
|
||||
|
||||
$fileName = str_replace('\\','/', $className);
|
||||
$fileName = str_replace('ProtectLogin/Modules/', 'ProtectLogin/modules/', $fileName);
|
||||
$fileName = str_replace('ProtectLogin/', '', $fileName);
|
||||
|
||||
|
||||
|
||||
$fileName = BDP_LV_PLUGIN_DIR . $fileName . '.php';
|
||||
if (!file_exists($fileName)) {
|
||||
return;
|
||||
}
|
||||
|
||||
require_once $fileName;
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
$directoryPath = BDP_LV_PLUGIN_DIR . 'components/partials/';
|
||||
foreach (glob($directoryPath . '*.php') as $file) {
|
||||
require_once $file;
|
||||
}
|
||||
|
||||
$subdirs = ['includes', 'Controllers', 'Views', 'Requests', 'Actions', 'Models'];
|
||||
|
||||
foreach (scandir(BDP_LV_PLUGIN_DIR . 'modules/') as $curModule) {
|
||||
if ($curModule != '.' && $curModule != '..' && is_dir(BDP_LV_PLUGIN_DIR . 'modules/' . $curModule))
|
||||
{
|
||||
if ($curModule == 'calendar') {
|
||||
continue;
|
||||
}
|
||||
|
||||
foreach ($subdirs as $dir) {
|
||||
$directoryPath = BDP_LV_PLUGIN_DIR . 'modules/' . $curModule . '/' . $dir . '/';
|
||||
foreach (glob($directoryPath . '*.php') as $file) {
|
||||
require_once $file;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
153
includes/update.class.php
Normal file
153
includes/update.class.php
Normal file
@ -0,0 +1,153 @@
|
||||
<?php
|
||||
|
||||
|
||||
class BdpVersionChecker
|
||||
{
|
||||
public $plugin_slug;
|
||||
public $version;
|
||||
public $cache_key;
|
||||
public $cache_allowed;
|
||||
public $updateUrl;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$plugin_data = get_plugin_data( BDP_LV_STARTUP_FILE, true, false );
|
||||
$this->plugin_slug = BDP_LV_PLUGIN_SLUG;
|
||||
$this->updateUrl = $plugin_data['UpdateURI'] . '/info.json';
|
||||
$this->version = $plugin_data['Version'];
|
||||
$this->cache_key = 'bdp-kompass-upd';
|
||||
$this->cache_allowed = false;
|
||||
|
||||
add_filter( 'plugins_api', array( $this, 'info' ), 20, 3 );
|
||||
add_filter( 'site_transient_update_plugins', array( $this, 'update' ) );
|
||||
add_action( 'upgrader_process_complete', array( $this, 'purge' ), 10, 2 );
|
||||
}
|
||||
|
||||
public function request(){
|
||||
|
||||
$remote = get_transient( $this->cache_key );
|
||||
|
||||
if( false === $remote || ! $this->cache_allowed ) {
|
||||
|
||||
$remote = wp_remote_get(
|
||||
$this->updateUrl
|
||||
,
|
||||
array(
|
||||
'timeout' => 10,
|
||||
'headers' => array(
|
||||
'Accept' => 'application/json'
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
if(
|
||||
is_wp_error( $remote )
|
||||
|| 200 !== wp_remote_retrieve_response_code( $remote )
|
||||
|| empty( wp_remote_retrieve_body( $remote ) )
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
|
||||
set_transient( $this->cache_key, $remote, 3600 );
|
||||
|
||||
}
|
||||
|
||||
$remote = json_decode( wp_remote_retrieve_body( $remote ) );
|
||||
|
||||
return $remote;
|
||||
|
||||
}
|
||||
|
||||
|
||||
function info( $res = '', $action = '', $args = '' )
|
||||
{
|
||||
if (!isset($args->slug) || $args->slug !== $this->plugin_slug) {
|
||||
return $res;
|
||||
}
|
||||
|
||||
// get updates
|
||||
$remote = $this->request();
|
||||
|
||||
if( ! $remote ) {
|
||||
return $res;
|
||||
}
|
||||
|
||||
$newVersion = $remote->version;
|
||||
$res = new stdClass();
|
||||
|
||||
$res->name = $remote->name;
|
||||
$res->slug = $remote->slug;
|
||||
$res->version = $newVersion;
|
||||
$res->tested = $remote->tested;
|
||||
$res->requires = $remote->requires;
|
||||
$res->author = $remote->author;
|
||||
$res->author_profile = $remote->author_profile;
|
||||
$res->download_link = $remote->download_url;
|
||||
$res->trunk = $remote->download_url;
|
||||
$res->requires_php = $remote->requires_php;
|
||||
$res->last_updated = $remote->last_updated;
|
||||
|
||||
$res->sections = array(
|
||||
'description' => $remote->sections->description,
|
||||
'installation' => $remote->sections->installation,
|
||||
'changelog' => $remote->sections->changelog
|
||||
);
|
||||
|
||||
if( ! empty( $remote->banners ) ) {
|
||||
$res->banners = array(
|
||||
'low' => $remote->banners->low,
|
||||
'high' => $remote->banners->high
|
||||
);
|
||||
}
|
||||
|
||||
return $res;
|
||||
|
||||
}
|
||||
|
||||
public function update( $transient ) {
|
||||
if ( empty($transient->checked ) ) {
|
||||
return $transient;
|
||||
}
|
||||
|
||||
$remote = $this->request();
|
||||
if(
|
||||
$remote
|
||||
&& version_compare( $this->version, $remote->version, '<' )
|
||||
&& version_compare( $remote->requires, get_bloginfo( 'version' ), '<=' )
|
||||
&& version_compare( $remote->requires_php, PHP_VERSION, '<' )
|
||||
) {
|
||||
|
||||
$newVersion = $remote->version;
|
||||
|
||||
$res = new stdClass();
|
||||
$res->slug = $this->plugin_slug;
|
||||
$res->plugin = plugin_basename( BDP_LV_STARTUP_FILE );
|
||||
$res->new_version = $newVersion;
|
||||
$res->tested = $remote->tested;
|
||||
$res->package = $remote->download_url;
|
||||
|
||||
$transient->response[ $res->plugin ] = $res;
|
||||
|
||||
} else {
|
||||
$res = new stdClass();
|
||||
$res->slug = $this->plugin_slug;
|
||||
$res->plugin = plugin_basename( BDP_LV_STARTUP_FILE );
|
||||
$transient->no_update[ $res->plugin ] = $res;
|
||||
}
|
||||
|
||||
return $transient;
|
||||
|
||||
}
|
||||
|
||||
public function purge( $upgrader, $options ){
|
||||
|
||||
if (
|
||||
$this->cache_allowed
|
||||
&& 'update' === $options['action']
|
||||
&& 'plugin' === $options[ 'type' ]
|
||||
) {
|
||||
// just clean the cache when new plugin version is installed
|
||||
delete_transient( $this->cache_key );
|
||||
}
|
||||
}
|
||||
}
|
BIN
lang/bdp-kompass-de_DE.mo
Normal file
BIN
lang/bdp-kompass-de_DE.mo
Normal file
Binary file not shown.
405
lang/bdp-kompass_de_DE.po
Normal file
405
lang/bdp-kompass_de_DE.po
Normal file
@ -0,0 +1,405 @@
|
||||
msgid "kompass"
|
||||
msgstr "kompass"
|
||||
|
||||
msgid "Calendar settings"
|
||||
msgstr "Kalender-Einstellungen"
|
||||
|
||||
msgid "Calendar URL"
|
||||
msgstr "Kalender-Adresse"
|
||||
|
||||
msgid "SEO-Options"
|
||||
msgstr "Suchmaschinen-Einstellungen"
|
||||
|
||||
msgid "Google Site verification"
|
||||
msgstr "Google Seiten-Verifikation"
|
||||
|
||||
msgid "Bing Site verification"
|
||||
msgstr "Bing Seiten-Verifikation"
|
||||
|
||||
msgid "Calendar Settings"
|
||||
msgstr "Kalender-Einstellungen"
|
||||
|
||||
msgid "Extended Security"
|
||||
msgstr "Erweiterte Sicherheit"
|
||||
|
||||
msgid "Save changes"
|
||||
msgstr "Änderungen speichern"
|
||||
|
||||
msgid "All settings are saved."
|
||||
msgstr "Die Einstellungen wurden gespeichert."
|
||||
|
||||
msgid "Disable xmlrpc"
|
||||
msgstr "xmlrpc deaktivieren"
|
||||
|
||||
msgid "By introducing the REST API in WordPress, xmlrpc. However, php is no longer needed to communicate outside of WordPress, which is why there is no longer any reason to leave it active or use it. Therefore, for the security of your site, it is better to deactivate or delete it."
|
||||
msgstr "Durch die Einführung der REST API in WordPress wird xmlrpc. php jedoch nicht mehr benötigt, um außerhalb von WordPress zu kommunizieren, weshalb es hier keinen Grund mehr gibt, diese aktiv zu lassen oder zu nutzen. Deshalb ist es für die Sicherheit deiner Seite besser, diese zu deaktivieren oder zu löschen."
|
||||
|
||||
msgid "Disable Authorscan"
|
||||
msgstr "Autorenscan deaktivieren"
|
||||
|
||||
|
||||
msgid "The author page in WordPress typically displays a list of all posts by a specific author on your website. Unfortunately, Google also records the page and to prevent this, we can deactivate the author page. When a visitor clicks on an name of an author, they are redirected to the author page. This page contains a list of posts written by this author, as well as possibly a brief description of the author and a photo. It is also possible to record which user names have been created."
|
||||
msgstr "Die Autorenseite in WordPress zeigt normalerweise eine Liste aller Beiträge eines bestimmten Autors auf deiner Website an. Google erfasst die Seite auch leider und um das zu verhindern, können wir die Autorenseite deaktivieren. Wenn ein Besucher auf den Namen eines Autors klickt, wird er auf die Autorenseite weitergeleitet. Diese Seite enthält eine Liste der Beiträge, die von diesem Autor verfasst wurden, sowie möglicherweise eine kurze Beschreibung des Autors und ein Foto. Auch ist es darüber möglich zu erfassen, welche Nutzernamen angelegt sind."
|
||||
|
||||
msgid "Disable scripting in /wp-content/uploads/"
|
||||
msgstr "Scripting in /wp-content/uploads/ deaktivieren"
|
||||
|
||||
msgid "Disabling scripting in /wp-content/uploads/ can be a security measure to protect your WordPress website from potential threats. The /wp-content/uploads folder is usually the default folder where WordPress stores uploaded files, such as images, videos, and other media files."
|
||||
msgstr "Das Deaktivieren von Scripting in /wp-content/uploads/ kann eine Sicherheitsmaßnahme sein, um dein WordPress-Website vor potenziellen Bedrohungen zu schützen. Der Ordner /wp-content/uploads ist normalerweise der Standardordner, in dem WordPress hochgeladene Dateien, wie Bilder, Videos und andere Mediendateien, speichert."
|
||||
|
||||
msgid "Block access to potentially sensitive files"
|
||||
msgstr "Zugriff auf potenziell sensible Dateien blockieren"
|
||||
|
||||
msgid "This setting prohibits access to configuration files and log files"
|
||||
msgstr "Diese Einstellung verbietet den Zugriff auf Konfigurationsdateien sowie Log-Dateien"
|
||||
|
||||
msgid "Disable file editor in WP Dashboard"
|
||||
msgstr "Dateieditor im WP Dashboard deaktivieren"
|
||||
|
||||
msgid "This is a security feature that allows you to prevent users from editing theme and plugin files directly from the WordPress dashboard. This can be useful for a variety of reasons, including preventing accidental code changes and protecting your website from malicious attacks."
|
||||
msgstr "Hierbei handelt es sich um eine Sicherheitsfunktion, mit der Sie verhindern können, dass Benutzer Theme- und Plugin-Dateien direkt über das WordPress-Dashboard bearbeiten können. Dies kann aus verschiedenen Gründen nützlich sein, unter anderem um versehentliche Änderungen am Code zu verhindern und Ihre Website vor böswilligen Angriffen zu schützen."
|
||||
|
||||
msgid "Disable script concatenation"
|
||||
msgstr "Skriptverkettung deaktivieren"
|
||||
|
||||
msgid "Disabling script concatenation in the WordPress admin panel is a simple and effective way to enhance performance. However, it is crucial to carefully consider the impact of this change, as it may increase the number of HTTP requests, potentially affecting loading times"
|
||||
msgstr "Das Deaktivieren der Skriptverkettung im WordPress-Admin-Panel ist eine einfache und effektive Möglichkeit, die Leistung zu verbessern. Es ist jedoch wichtig, die Auswirkungen dieser Änderung sorgfältig abzuwägen, da sie die Anzahl der HTTP-Anfragen erhöhen und sich möglicherweise auf die Ladezeiten auswirken kann."
|
||||
|
||||
msgid "Disable script execution in include dir"
|
||||
msgstr "Skriptausführung im Include-Verzeichnis deaktivieren"
|
||||
|
||||
msgid "Limiting script execution in specific directories can improve security by preventing potentially malicious scripts from running in critical parts of the WordPress system. This is particularly important to prevent attacks such as Cross-Site Scripting (XSS), which inject malicious code into website content."
|
||||
msgstr "Das Begrenzen der Skriptausführung in bestimmten Verzeichnissen kann die Sicherheit verbessern, indem potenziell schädliche Skripte daran gehindert werden, in kritischen Teilen des WordPress-Systems ausgeführt zu werden. Dies ist besonders wichtig, um Angriffe wie Cross-Site Scripting (XSS) zu verhindern, bei denen schädlicher Code in Webseiteninhalte eingeschleust wird."
|
||||
|
||||
msgid "Change site keys"
|
||||
msgstr "Seitenschlüssel erneuern"
|
||||
|
||||
msgid "An error occured connecting api.wordpress.org"
|
||||
msgstr "Beim Kontaktieren von api.wordpress.org trat ein Fehler auf"
|
||||
|
||||
msgid "The site keys were updated successfully."
|
||||
msgstr "Die Seitenschlüssel wurden erneuert."
|
||||
|
||||
msgid "Protect WP detected missing security settings"
|
||||
msgstr "Protect WP hat fehlende Sicherheitseinstellungen festgestellt"
|
||||
|
||||
msgid "Protect WP has detected that advanced security settings are missing.<br />You can update the settings directly in the dashboard."
|
||||
msgstr "Protect WP hat festgestellt, dass erweiterte Sicherheitseinstellungen fehlen.<br />Du kannst die Einstellungen direkt im Dashboard aktualisieren."
|
||||
|
||||
msgid "Protect WP - security settings"
|
||||
msgstr "Protect WP - Sicherheitseinstellungen"
|
||||
|
||||
msgid "Prohibit access from unwanted bots"
|
||||
msgstr "Zugriff von ungewollten Bots verbieten"
|
||||
|
||||
msgid "Excluding specific bots from a WordPress website provides improved security by reducing potentially malicious activity and security risks, optimizes resource consumption and site performance, protects against content theft and duplicate content, enables more precise control of traffic, and promotes more effective SEO -Optimization by reducing irrelevant bots, ultimately leading to a safer, more efficient and better performing website."
|
||||
msgstr "Das Ausschließen bestimmter Bots von einer WordPress-Website bietet eine verbesserte Sicherheit, indem potenziell bösartige Aktivitäten und Sicherheitsrisiken reduziert werden, optimiert den Ressourcenverbrauch und die Website-Performance, schützt vor Inhaltsdiebstahl und Duplicate Content, ermöglicht eine genauere Kontrolle des Datenverkehrs und fördert eine effektivere SEO-Optimierung durch die Reduzierung nicht relevanter Bots, was letztendlich zu einer sichereren, effizienteren und besser performenden Website führt."
|
||||
|
||||
msgid "Bot Detection Database"
|
||||
msgstr "Datenbank zur Bot-Erkennung"
|
||||
|
||||
msgid "Registered bots"
|
||||
msgstr "Vorhandene Bots"
|
||||
|
||||
msgid "Add more bots"
|
||||
msgstr "Weitere Bots hinzufügen"
|
||||
|
||||
msgid "Leave blank in order to delete"
|
||||
msgstr "Zum Löschen leer lassen"
|
||||
|
||||
msgid "Please use line breaks to enter multiple bots"
|
||||
msgstr "Bitte Zeilenumbruch verwenden, um mehrere Bots einzutragen"#
|
||||
|
||||
msgid "Bot Detection Database updated successfully."
|
||||
msgstr "Die Datenbank zur Bot-Erkennung wurde erfolgreich aktualisiert."
|
||||
|
||||
msgid "Disable directory listing"
|
||||
msgstr "Auflistung von Verzeichnissen deaktivieren"
|
||||
|
||||
msgid "Directory listing should be disabled to ensure the security and privacy of a website. When Directory Listing is enabled, this allows users to directly access the contents of directories on a web server without having to specify a specific file. This can expose sensitive information such as directory structures, internal files and scripts, posing a potential security risk. Disabling Directory Listing prevents users from accessing this sensitive information, thereby providing an additional layer of security for the website."
|
||||
msgstr "Das Auflisten von Verzeichnissen sollte deaktiviert werden, um die Sicherheit und Privatsphäre einer Website zu gewährleisten. Wenn Directory Listing aktiviert ist, ermöglicht dies Benutzern den direkten Zugriff auf die Inhalte von Verzeichnissen auf einem Webserver, ohne dass eine spezifische Datei angegeben werden muss. Dies kann sensible Informationen wie Verzeichnisstrukturen, interne Dateien und Skripte offenlegen, was ein potenzielles Sicherheitsrisiko darstellt. Durch das Deaktivieren von Directory Listing wird verhindert, dass Benutzer auf diese sensiblen Informationen zugreifen können, und bietet somit eine zusätzliche Sicherheitsschicht für die Website."
|
||||
|
||||
msgid "Disable debug output"
|
||||
msgstr "Debug-Ausgaben deaktivieren"
|
||||
|
||||
msgid "Debugging should be disabled to protect sensitive information about the internal structure and potential security vulnerabilities of a a WordPress website from potential attackers. When debugging is enabled, error messages and warnings are displayed directly on the website, which can provide attackers with valuable information about the configuration of the website and possible vulnerabilities."
|
||||
msgstr "Debugging sollte deaktiviert werden, um sensible Informationen über die interne Struktur und mögliche Sicherheitslücken einer WordPress-Website vor potenziellen Angreifern zu schützen. Wenn Debuggin aktiviert ist, werden Fehlermeldungen und Warnungen direkt auf der Webseite angezeigt, was Angreifern wertvolle Informationen über die Konfiguration und mögliche Schwachstellen der Website geben kann. "
|
||||
|
||||
msgid "Change Login URL"
|
||||
msgstr "Login-URL ändern"
|
||||
|
||||
msgid "Changing the default login URL of WordPress is advisable to enhance the security of your website. By default, WordPress login URLs is /wp-admin or /wp-login.php, which are easily guessed by hackers and facilitate attacks such as brute-force attacks. Changing the login URL to something unique and difficult to guess increases security since potential attackers will struggle to find the correct URL. This can help protect your website from unauthorized access and other malicious activities."
|
||||
msgstr "Es ist ratsam, die Standard-Login-URL von WordPress zu ändern, um die Sicherheit deiner Website zu erhöhen. Standardmäßig lautet die Login-URL von WordPress /wp-admin oder /wp-login.php, was für Hacker leicht zu erraten ist und Angriffe wie Brute-Force-Attacken erleichtern kann. Durch Ändern der Login-URL auf etwas Einzigartiges und schwer zu erraten, erhöhst du die Sicherheit, da potenzielle Angreifer Schwierigkeiten haben werden, die richtige URL zu finden. Dies kann helfen, deine Website vor unautorisiertem Zugriff und anderen böswilligen Aktivitäten zu schützen."
|
||||
|
||||
msgid "Login-Protection"
|
||||
msgstr "Login-Sicherheit"
|
||||
|
||||
msgid "Settings"
|
||||
msgstr "Einstellungen"
|
||||
|
||||
msgid "There are no ip addresses blocked."
|
||||
msgstr "Derzeit sind keine Adressen gesperrt."
|
||||
|
||||
msgid "IP address"
|
||||
msgstr "IP-Adresse"
|
||||
|
||||
msgid "Blocked until"
|
||||
msgstr "Gesperrt bis"
|
||||
|
||||
msgid "Actions"
|
||||
msgstr "Aktionen"
|
||||
|
||||
msgid "The settings were saved."
|
||||
msgstr "Die Einstellungen wurden gespeichert."
|
||||
|
||||
msgid "The ip address was released."
|
||||
msgstr "Die IP-Adresse wurde freigegeben."
|
||||
|
||||
msgid "The list was saved."
|
||||
msgstr "Die Liste wurde gespeichert."
|
||||
|
||||
msgid "An error occured."
|
||||
msgstr "Es ist ein Fehler aufgetreten"
|
||||
|
||||
msgid "Options"
|
||||
msgstr "Optionen"
|
||||
|
||||
msgid "Blocklist"
|
||||
msgstr "Blocklist"
|
||||
|
||||
msgid "Allowlist"
|
||||
msgstr "Allowlist"
|
||||
|
||||
msgid "Blocked IP addresses"
|
||||
msgstr "Gesperrte IP-Adressen"
|
||||
|
||||
msgid "Too many failed login attempts."
|
||||
msgstr "Zu vile fehlerhafte Login-Versuche."
|
||||
|
||||
msgid "Please try again later."
|
||||
msgstr "Bitte versuche es später erneut."
|
||||
|
||||
msgid "%d hour"
|
||||
msgid_plural "%d hours"
|
||||
msgstr[0] "%d Stunde"
|
||||
msgstr[1] "%d Stunden"
|
||||
|
||||
|
||||
msgid "Please try again in %d hour."
|
||||
msgid_plural "Please try again in %d hours."
|
||||
msgstr[0] "Bitte versuche es in %d Stunde noch einmal."
|
||||
msgstr[1] "Bitte versuche es in %d Stunden noch einmal."
|
||||
|
||||
msgid "Please try again in %d minute."
|
||||
msgid_plural "Please try again in %d minutes."
|
||||
msgstr[0] "Bitte versuche es in %d Minute noch einmal."
|
||||
msgstr[1] "Bitte versuche es in %d Minuten noch einmal."
|
||||
|
||||
msgid "%d minute"
|
||||
msgid_plural "%d minutes"
|
||||
msgstr[0] "%d Minute"
|
||||
msgstr[1] "%d Minuten"
|
||||
|
||||
msgid "Leave blank for delete"
|
||||
msgstr "Zum Löschen frei lassen"
|
||||
|
||||
msgid "Add ip address"
|
||||
msgstr "IP-Adresse hinzufügen"
|
||||
|
||||
msgid "Please use line breaks to enter multiple ip addresses"
|
||||
msgstr "Bitte Zeilenumbruch verwenden, um mehrere IP-Adressen einzutragen"
|
||||
|
||||
msgid "Maximum reps until lockout"
|
||||
msgstr "Maximale Wiederholungen bis zur Sperrung"
|
||||
|
||||
msgid "Duration of lockout (in minutes)"
|
||||
msgstr "Dauer der Sperre (in Minuten)"
|
||||
|
||||
msgid "Maximum number of lockouts"
|
||||
msgstr "Maximale Anzahl an Sperrungen"
|
||||
|
||||
msgid "Long-term duration (in hours)"
|
||||
msgstr "Langzeitsperre (in Stunden)"
|
||||
|
||||
msgid "Minimum password strength"
|
||||
msgstr "Minimale Passwort-Stärke"
|
||||
|
||||
msgid "Page accessible via"
|
||||
msgstr "Seite erreichbar über"
|
||||
|
||||
msgid "Handle cookies"
|
||||
msgstr "Cookies verarbeiten"
|
||||
|
||||
msgid "Notify if blocked"
|
||||
msgstr "Bei Sperrung benachrichtigen"
|
||||
|
||||
msgid "Failed attempts until notification"
|
||||
msgstr "Fehlversuche bis zur Benachrichtigung"
|
||||
|
||||
msgid "E-Mail to site admin"
|
||||
msgstr "E-Mail an den Webseiten-Administrator"
|
||||
|
||||
msgid "Direct connection"
|
||||
msgstr "Direkte Verbindung"
|
||||
|
||||
msgid "Behind a proxy"
|
||||
msgstr "Hinter einem Proxy"
|
||||
|
||||
msgid "Yes"
|
||||
msgstr "Ja"
|
||||
|
||||
msgid "No"
|
||||
msgstr "Nein"
|
||||
|
||||
msgid "Allow all password strengths"
|
||||
msgstr "Alle Passwort-Stärken erlauben"
|
||||
|
||||
msgid "At least passwords with medium strength"
|
||||
msgstr "Mindestens Passwortstärke normal"
|
||||
|
||||
msgid "Only allow strong passwords"
|
||||
msgstr "Nur starke Passwörter erlauben"
|
||||
|
||||
msgid "The password does not correspond to the requirements."
|
||||
msgstr "Dass Passwort entspricht nicht den Anforderungen."
|
||||
|
||||
msgid "Release ip address"
|
||||
msgstr "IP-Adresse freigeben"
|
||||
|
||||
msgid "Add ip address to blocklist"
|
||||
msgstr "IP-Adresse auf Blocklist setzen"
|
||||
|
||||
msgid "Add ip address to allowlist and release"
|
||||
msgstr "IP-Adresse auf Allowlist setzen und freigeben"
|
||||
|
||||
msgid "Search for ip address"
|
||||
msgstr "Nach IP-Adresse suchen"
|
||||
|
||||
msgid "Delete"
|
||||
msgstr "Löschen"
|
||||
|
||||
msgid "Participation data updated successfull."
|
||||
msgstr "Die Teilidaten wurden erfolgreich aktualisiert."
|
||||
|
||||
msgid "Paricipant details"
|
||||
msgstr "Teili-Daten"
|
||||
|
||||
msgid "Events"
|
||||
msgstr "Veranstaltungen"
|
||||
|
||||
msgid "Event-Overview"
|
||||
msgstr "Veranstaltungsübersicht"
|
||||
|
||||
msgid "Participants by groups"
|
||||
msgstr "Teilis nach Gruppe"
|
||||
|
||||
msgid "Participants by tribes"
|
||||
msgstr "Teilis nach Stämmen"
|
||||
|
||||
msgid "Tribe"
|
||||
msgstr "Stamm"
|
||||
|
||||
msgid "Amount"
|
||||
msgstr "Betrag"
|
||||
|
||||
msgid "Email"
|
||||
msgstr "E-Mail"
|
||||
|
||||
msgid "Telephone"
|
||||
msgstr "Telefonnummer"
|
||||
|
||||
msgid "The participant was deleted."
|
||||
msgstr "Der Teili wurde abgemeldet."
|
||||
|
||||
msgid "Event Name"
|
||||
msgstr "Veranstaltungsname"
|
||||
|
||||
msgid "Count participants"
|
||||
msgstr "Anzahl Teilis"
|
||||
|
||||
msgid "Event closed for signup"
|
||||
msgstr "Die Veranstaltung wurde für Neuanmeldungen geschlossen."
|
||||
|
||||
msgid "Event opened for signup"
|
||||
msgstr "Die Veranstaltung wurde für Neuanmeldungen freigegeben."
|
||||
|
||||
msgid "Event archived successfully."
|
||||
msgstr "Die Veranstaltung wurde archiviert."
|
||||
|
||||
msgid "New Event"
|
||||
msgstr "Neue Veranstaltung"
|
||||
|
||||
msgid "Edit"
|
||||
msgstr "Bearbeiten"
|
||||
|
||||
msgid "Allow registration"
|
||||
msgstr "Anmeldung erlauben"
|
||||
|
||||
msgid "Deny registration"
|
||||
msgstr "Anmeldung verbieten"
|
||||
|
||||
msgid "Move to Archive"
|
||||
msgstr "Archivieren"
|
||||
|
||||
msgid "Edit event"
|
||||
msgstr "Veranstaltung bearbeiten"
|
||||
|
||||
msgid "Start date"
|
||||
msgstr "Startdatum"
|
||||
|
||||
msgid "End date"
|
||||
msgstr "Enddatum"
|
||||
|
||||
msgid "Maximum participants"
|
||||
msgstr "Maximale Anzahl an Teilnehmenden"
|
||||
|
||||
msgid "Maximum volunteers"
|
||||
msgstr "Maximale Anzahl an Teamis"
|
||||
|
||||
msgid "Reduced amount"
|
||||
msgstr "Reduzierter Beitrag"
|
||||
|
||||
msgid "Default amount"
|
||||
msgstr "Normalbeitrag"
|
||||
|
||||
msgid "Additional social amount"
|
||||
msgstr "Zusätzlicher Solidaritätsbeitrag"
|
||||
|
||||
msgid "Contributing Tribes"
|
||||
msgstr "Beteiligte Stämme"
|
||||
|
||||
msgid "Please one line per row"
|
||||
msgstr "Bitte ein Eintrag pro Zeile"
|
||||
|
||||
msgid "Event data updated successfull."
|
||||
msgstr "Die Veranstaltung wurde aktualisiert."
|
||||
|
||||
msgid "Event created successfull."
|
||||
msgstr "Die Veranstaltung wurde erstellt."
|
||||
|
||||
msgid "Registration"
|
||||
msgstr "Anmeldung"
|
||||
|
||||
msgid "Filter participant"
|
||||
msgstr "Nach Teili filtern"
|
||||
|
||||
msgid "Filter member"
|
||||
msgstr "Nach Mitglied filtern"
|
||||
|
||||
msgid "Presence days"
|
||||
msgstr "Anwesenheitstage"
|
||||
|
||||
msgid "Save"
|
||||
msgstr "Speichern"
|
||||
|
||||
msgid "This amount gets added to the selected amount"
|
||||
msgstr "Dieser Betrag wird dem gewählten Betrag hinzuaddiert"
|
||||
|
||||
msgid "Organisator E-Mail"
|
||||
msgstr "E-Mail für Benachrichtigungen"
|
||||
|
||||
msgid "Mail successfully sent to"
|
||||
msgstr "E-Mail erfolgreich gesendet an"
|
||||
|
||||
msgid "Mail failed to sent to"
|
||||
msgstr "Fehler beim Senden der E-Mail an"
|
30
lib/database/kompass_veranstaltungen_index.sql
Normal file
30
lib/database/kompass_veranstaltungen_index.sql
Normal file
@ -0,0 +1,30 @@
|
||||
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
|
||||
START TRANSACTION;
|
||||
|
||||
CREATE TABLE `%tablename%` (
|
||||
`id` int NOT NULL AUTO_INCREMENT,
|
||||
`event_name` varchar(1024) NOT NULL,
|
||||
`event_email` varchar(1024) NOT NULL,
|
||||
`archived` tinyint NOT NULL DEFAULT '0',
|
||||
`signup_allowed` tinyint NOT NULL DEFAULT '0',
|
||||
`startdatum` date DEFAULT NULL,
|
||||
`enddatum` date DEFAULT NULL,
|
||||
`amount_reduced` decimal(8,2) NOT NULL,
|
||||
`amount_default` decimal(8,2) NOT NULL,
|
||||
`amount_social` decimal(8,2) NOT NULL,
|
||||
`max_participants` INT NOT NULL,
|
||||
`max_volunteers` INT NOT NULL,
|
||||
`contributing_tribes` TEXT NOT NULL,
|
||||
PRIMARY KEY (id)
|
||||
|
||||
) %charset%;
|
||||
|
||||
|
||||
ALTER TABLE `%tablename%`
|
||||
ADD PRIMARY KEY (`id`);
|
||||
|
||||
|
||||
ALTER TABLE `%tablename%`
|
||||
MODIFY `id` int NOT NULL AUTO_INCREMENT;
|
||||
|
||||
COMMIT;
|
52
lib/database/kompass_veranstaltungen_teilis.sql
Normal file
52
lib/database/kompass_veranstaltungen_teilis.sql
Normal file
@ -0,0 +1,52 @@
|
||||
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
|
||||
START TRANSACTION;
|
||||
SET time_zone = "+00:00";
|
||||
|
||||
CREATE TABLE `%tablename%` (
|
||||
`id` int NOT NULL AUTO_INCREMENT,
|
||||
`eventID` int NOT NULL,
|
||||
`teilnahme` ENUM('participant','volunteer','other','') NOT NULL,
|
||||
`vorname` varchar(128) NOT NULL,
|
||||
`nachname` varchar(128) NOT NULL,
|
||||
`pfadiname` varchar(256) DEFAULT NULL,
|
||||
`stamm` varchar(256) DEFAULT NULL,
|
||||
`geburtsdatum` date DEFAULT NULL,
|
||||
`ansprechpartner` varchar(256) DEFAULT NULL,
|
||||
`strasse` varchar(128) DEFAULT NULL,
|
||||
`hausnummer` varchar(8) DEFAULT NULL,
|
||||
`plz` varchar(5) DEFAULT NULL,
|
||||
`ort` varchar(128) DEFAULT NULL,
|
||||
`email_1` varchar(512) NOT NULL,
|
||||
`email_2` varchar(512) DEFAULT NULL,
|
||||
`telefon_1` varchar(16) NOT NULL,
|
||||
`telefon_2` varchar(16) DEFAULT NULL,
|
||||
`badeerlaubnis` enum('complete','partial','none','') NOT NULL DEFAULT 'none',
|
||||
`allergien` varchar(2048) NOT NULL,
|
||||
`medikamente` varchar(2048) NOT NULL,
|
||||
`essgewohnheit` enum('all','vegetarisch','vegan') NOT NULL DEFAULT 'vegetarisch',
|
||||
`foto_socialmedia` tinyint NOT NULL DEFAULT '0',
|
||||
`foto_print` tinyint NOT NULL DEFAULT '0',
|
||||
`foto_webseite` tinyint NOT NULL DEFAULT '0',
|
||||
`foto_partner` tinyint NOT NULL DEFAULT '0',
|
||||
`foto_intern` tinyint NOT NULL DEFAULT '0',
|
||||
`anmerkungen` varchar(2048) NOT NULL,
|
||||
`beitrag` decimal(8,2) NOT NULL DEFAULT '0',
|
||||
`beitrag_bezahlt` decimal(8,2) NOT NULL DEFAULT '0',
|
||||
`anreise` date DEFAULT NULL,
|
||||
`anreise_essen` int NOT NULL,
|
||||
`abreise` date DEFAULT NULL,
|
||||
`abreise_essen` int NOT NULL,
|
||||
`anmeldedatum` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (id)
|
||||
) %charset%;
|
||||
|
||||
|
||||
ALTER TABLE `%tablename%`
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD KEY `event_gruppe` (`gruppe_id`);
|
||||
|
||||
|
||||
ALTER TABLE `%tablename%`
|
||||
MODIFY `id` int NOT NULL AUTO_INCREMENT;
|
||||
|
||||
COMMIT;
|
28
lib/dompdf/autoload.php
Normal file
28
lib/dompdf/autoload.php
Normal file
@ -0,0 +1,28 @@
|
||||
<?php
|
||||
/**
|
||||
* @package dompdf
|
||||
* @link http://dompdf.github.com/
|
||||
* @author Benj Carson <benjcarson@digitaljunkies.ca>
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
/**
|
||||
* Dompdf autoload function
|
||||
*
|
||||
* If you have an existing autoload function, add a call to this function
|
||||
* from your existing __autoload() implementation.
|
||||
*
|
||||
* @param string $class
|
||||
*/
|
||||
|
||||
require_once __DIR__ . '/lib/html5lib/Parser.php';
|
||||
require_once __DIR__ . '/lib/php-font-lib/src/FontLib/Autoloader.php';
|
||||
require_once __DIR__ . '/lib/php-svg-lib/src/autoload.php';
|
||||
|
||||
/*
|
||||
* New PHP 5.3.0 namespaced autoloader
|
||||
*/
|
||||
require_once __DIR__ . '/src/Autoloader.php';
|
||||
|
||||
Dompdf\Autoloader::register();
|
5566
lib/dompdf/lib/Cpdf.php
Normal file
5566
lib/dompdf/lib/Cpdf.php
Normal file
File diff suppressed because it is too large
Load Diff
344
lib/dompdf/lib/fonts/Courier-Bold.afm
Normal file
344
lib/dompdf/lib/fonts/Courier-Bold.afm
Normal file
@ -0,0 +1,344 @@
|
||||
StartFontMetrics 4.1
|
||||
Comment Copyright (c) 1989, 1990, 1991, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.
|
||||
Comment Creation Date: Mon Jun 23 16:28:00 0:00:00
|
||||
Comment UniqueID 43048
|
||||
Comment VMusage 41139 52164
|
||||
FontName Courier-Bold
|
||||
FullName Courier Bold
|
||||
FamilyName Courier
|
||||
Weight Bold
|
||||
ItalicAngle 0
|
||||
IsFixedPitch true
|
||||
CharacterSet ExtendedRoman
|
||||
FontBBox -113 -250 749 801
|
||||
UnderlinePosition -100
|
||||
UnderlineThickness 50
|
||||
Version 003.000
|
||||
Notice Copyright (c) 1989, 1990, 1991, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.
|
||||
EncodingScheme WinAnsiEncoding
|
||||
CapHeight 562
|
||||
XHeight 439
|
||||
Ascender 629
|
||||
Descender -157
|
||||
StdHW 84
|
||||
StdVW 106
|
||||
StartCharMetrics 317
|
||||
C 32 ; WX 600 ; N space ; B 0 0 0 0 ;
|
||||
C 160 ; WX 600 ; N space ; B 0 0 0 0 ;
|
||||
C 33 ; WX 600 ; N exclam ; B 202 -15 398 572 ;
|
||||
C 34 ; WX 600 ; N quotedbl ; B 135 277 465 562 ;
|
||||
C 35 ; WX 600 ; N numbersign ; B 56 -45 544 651 ;
|
||||
C 36 ; WX 600 ; N dollar ; B 82 -126 519 666 ;
|
||||
C 37 ; WX 600 ; N percent ; B 5 -15 595 616 ;
|
||||
C 38 ; WX 600 ; N ampersand ; B 36 -15 546 543 ;
|
||||
C 146 ; WX 600 ; N quoteright ; B 171 277 423 562 ;
|
||||
C 40 ; WX 600 ; N parenleft ; B 219 -102 461 616 ;
|
||||
C 41 ; WX 600 ; N parenright ; B 139 -102 381 616 ;
|
||||
C 42 ; WX 600 ; N asterisk ; B 91 219 509 601 ;
|
||||
C 43 ; WX 600 ; N plus ; B 71 39 529 478 ;
|
||||
C 44 ; WX 600 ; N comma ; B 123 -111 393 174 ;
|
||||
C 45 ; WX 600 ; N hyphen ; B 100 203 500 313 ;
|
||||
C 173 ; WX 600 ; N hyphen ; B 100 203 500 313 ;
|
||||
C 46 ; WX 600 ; N period ; B 192 -15 408 171 ;
|
||||
C 47 ; WX 600 ; N slash ; B 98 -77 502 626 ;
|
||||
C 48 ; WX 600 ; N zero ; B 87 -15 513 616 ;
|
||||
C 49 ; WX 600 ; N one ; B 81 0 539 616 ;
|
||||
C 50 ; WX 600 ; N two ; B 61 0 499 616 ;
|
||||
C 51 ; WX 600 ; N three ; B 63 -15 501 616 ;
|
||||
C 52 ; WX 600 ; N four ; B 53 0 507 616 ;
|
||||
C 53 ; WX 600 ; N five ; B 70 -15 521 601 ;
|
||||
C 54 ; WX 600 ; N six ; B 90 -15 521 616 ;
|
||||
C 55 ; WX 600 ; N seven ; B 55 0 494 601 ;
|
||||
C 56 ; WX 600 ; N eight ; B 83 -15 517 616 ;
|
||||
C 57 ; WX 600 ; N nine ; B 79 -15 510 616 ;
|
||||
C 58 ; WX 600 ; N colon ; B 191 -15 407 425 ;
|
||||
C 59 ; WX 600 ; N semicolon ; B 123 -111 408 425 ;
|
||||
C 60 ; WX 600 ; N less ; B 66 15 523 501 ;
|
||||
C 61 ; WX 600 ; N equal ; B 71 118 529 398 ;
|
||||
C 62 ; WX 600 ; N greater ; B 77 15 534 501 ;
|
||||
C 63 ; WX 600 ; N question ; B 98 -14 501 580 ;
|
||||
C 64 ; WX 600 ; N at ; B 16 -15 584 616 ;
|
||||
C 65 ; WX 600 ; N A ; B -9 0 609 562 ;
|
||||
C 66 ; WX 600 ; N B ; B 30 0 573 562 ;
|
||||
C 67 ; WX 600 ; N C ; B 22 -18 560 580 ;
|
||||
C 68 ; WX 600 ; N D ; B 30 0 594 562 ;
|
||||
C 69 ; WX 600 ; N E ; B 25 0 560 562 ;
|
||||
C 70 ; WX 600 ; N F ; B 39 0 570 562 ;
|
||||
C 71 ; WX 600 ; N G ; B 22 -18 594 580 ;
|
||||
C 72 ; WX 600 ; N H ; B 20 0 580 562 ;
|
||||
C 73 ; WX 600 ; N I ; B 77 0 523 562 ;
|
||||
C 74 ; WX 600 ; N J ; B 37 -18 601 562 ;
|
||||
C 75 ; WX 600 ; N K ; B 21 0 599 562 ;
|
||||
C 76 ; WX 600 ; N L ; B 39 0 578 562 ;
|
||||
C 77 ; WX 600 ; N M ; B -2 0 602 562 ;
|
||||
C 78 ; WX 600 ; N N ; B 8 -12 610 562 ;
|
||||
C 79 ; WX 600 ; N O ; B 22 -18 578 580 ;
|
||||
C 80 ; WX 600 ; N P ; B 48 0 559 562 ;
|
||||
C 81 ; WX 600 ; N Q ; B 32 -138 578 580 ;
|
||||
C 82 ; WX 600 ; N R ; B 24 0 599 562 ;
|
||||
C 83 ; WX 600 ; N S ; B 47 -22 553 582 ;
|
||||
C 84 ; WX 600 ; N T ; B 21 0 579 562 ;
|
||||
C 85 ; WX 600 ; N U ; B 4 -18 596 562 ;
|
||||
C 86 ; WX 600 ; N V ; B -13 0 613 562 ;
|
||||
C 87 ; WX 600 ; N W ; B -18 0 618 562 ;
|
||||
C 88 ; WX 600 ; N X ; B 12 0 588 562 ;
|
||||
C 89 ; WX 600 ; N Y ; B 12 0 589 562 ;
|
||||
C 90 ; WX 600 ; N Z ; B 62 0 539 562 ;
|
||||
C 91 ; WX 600 ; N bracketleft ; B 245 -102 475 616 ;
|
||||
C 92 ; WX 600 ; N backslash ; B 99 -77 503 626 ;
|
||||
C 93 ; WX 600 ; N bracketright ; B 125 -102 355 616 ;
|
||||
C 94 ; WX 600 ; N asciicircum ; B 108 250 492 616 ;
|
||||
C 95 ; WX 600 ; N underscore ; B 0 -125 600 -75 ;
|
||||
C 145 ; WX 600 ; N quoteleft ; B 178 277 428 562 ;
|
||||
C 97 ; WX 600 ; N a ; B 35 -15 570 454 ;
|
||||
C 98 ; WX 600 ; N b ; B 0 -15 584 626 ;
|
||||
C 99 ; WX 600 ; N c ; B 40 -15 545 459 ;
|
||||
C 100 ; WX 600 ; N d ; B 20 -15 591 626 ;
|
||||
C 101 ; WX 600 ; N e ; B 40 -15 563 454 ;
|
||||
C 102 ; WX 600 ; N f ; B 83 0 547 626 ; L i fi ; L l fl ;
|
||||
C 103 ; WX 600 ; N g ; B 30 -146 580 454 ;
|
||||
C 104 ; WX 600 ; N h ; B 5 0 592 626 ;
|
||||
C 105 ; WX 600 ; N i ; B 77 0 523 658 ;
|
||||
C 106 ; WX 600 ; N j ; B 63 -146 440 658 ;
|
||||
C 107 ; WX 600 ; N k ; B 20 0 585 626 ;
|
||||
C 108 ; WX 600 ; N l ; B 77 0 523 626 ;
|
||||
C 109 ; WX 600 ; N m ; B -22 0 626 454 ;
|
||||
C 110 ; WX 600 ; N n ; B 18 0 592 454 ;
|
||||
C 111 ; WX 600 ; N o ; B 30 -15 570 454 ;
|
||||
C 112 ; WX 600 ; N p ; B -1 -142 570 454 ;
|
||||
C 113 ; WX 600 ; N q ; B 20 -142 591 454 ;
|
||||
C 114 ; WX 600 ; N r ; B 47 0 580 454 ;
|
||||
C 115 ; WX 600 ; N s ; B 68 -17 535 459 ;
|
||||
C 116 ; WX 600 ; N t ; B 47 -15 532 562 ;
|
||||
C 117 ; WX 600 ; N u ; B -1 -15 569 439 ;
|
||||
C 118 ; WX 600 ; N v ; B -1 0 601 439 ;
|
||||
C 119 ; WX 600 ; N w ; B -18 0 618 439 ;
|
||||
C 120 ; WX 600 ; N x ; B 6 0 594 439 ;
|
||||
C 121 ; WX 600 ; N y ; B -4 -142 601 439 ;
|
||||
C 122 ; WX 600 ; N z ; B 81 0 520 439 ;
|
||||
C 123 ; WX 600 ; N braceleft ; B 160 -102 464 616 ;
|
||||
C 124 ; WX 600 ; N bar ; B 255 -250 345 750 ;
|
||||
C 125 ; WX 600 ; N braceright ; B 136 -102 440 616 ;
|
||||
C 126 ; WX 600 ; N asciitilde ; B 71 153 530 356 ;
|
||||
C 161 ; WX 600 ; N exclamdown ; B 202 -146 398 449 ;
|
||||
C 162 ; WX 600 ; N cent ; B 66 -49 518 614 ;
|
||||
C 163 ; WX 600 ; N sterling ; B 72 -28 558 611 ;
|
||||
C -1 ; WX 600 ; N fraction ; B 25 -60 576 661 ;
|
||||
C 165 ; WX 600 ; N yen ; B 10 0 590 562 ;
|
||||
C 131 ; WX 600 ; N florin ; B -30 -131 572 616 ;
|
||||
C 167 ; WX 600 ; N section ; B 83 -70 517 580 ;
|
||||
C 164 ; WX 600 ; N currency ; B 54 49 546 517 ;
|
||||
C 39 ; WX 600 ; N quotesingle ; B 227 277 373 562 ;
|
||||
C 147 ; WX 600 ; N quotedblleft ; B 71 277 535 562 ;
|
||||
C 171 ; WX 600 ; N guillemotleft ; B 8 70 553 446 ;
|
||||
C 139 ; WX 600 ; N guilsinglleft ; B 141 70 459 446 ;
|
||||
C 155 ; WX 600 ; N guilsinglright ; B 141 70 459 446 ;
|
||||
C -1 ; WX 600 ; N fi ; B 12 0 593 626 ;
|
||||
C -1 ; WX 600 ; N fl ; B 12 0 593 626 ;
|
||||
C 150 ; WX 600 ; N endash ; B 65 203 535 313 ;
|
||||
C 134 ; WX 600 ; N dagger ; B 106 -70 494 580 ;
|
||||
C 135 ; WX 600 ; N daggerdbl ; B 106 -70 494 580 ;
|
||||
C 183 ; WX 600 ; N periodcentered ; B 196 165 404 351 ;
|
||||
C 182 ; WX 600 ; N paragraph ; B 6 -70 576 580 ;
|
||||
C 149 ; WX 600 ; N bullet ; B 140 132 460 430 ;
|
||||
C 130 ; WX 600 ; N quotesinglbase ; B 175 -142 427 143 ;
|
||||
C 132 ; WX 600 ; N quotedblbase ; B 65 -142 529 143 ;
|
||||
C 148 ; WX 600 ; N quotedblright ; B 61 277 525 562 ;
|
||||
C 187 ; WX 600 ; N guillemotright ; B 47 70 592 446 ;
|
||||
C 133 ; WX 600 ; N ellipsis ; B 26 -15 574 116 ;
|
||||
C 137 ; WX 600 ; N perthousand ; B -113 -15 713 616 ;
|
||||
C 191 ; WX 600 ; N questiondown ; B 99 -146 502 449 ;
|
||||
C 96 ; WX 600 ; N grave ; B 132 508 395 661 ;
|
||||
C 180 ; WX 600 ; N acute ; B 205 508 468 661 ;
|
||||
C 136 ; WX 600 ; N circumflex ; B 103 483 497 657 ;
|
||||
C 152 ; WX 600 ; N tilde ; B 89 493 512 636 ;
|
||||
C 175 ; WX 600 ; N macron ; B 88 505 512 585 ;
|
||||
C -1 ; WX 600 ; N breve ; B 83 468 517 631 ;
|
||||
C -1 ; WX 600 ; N dotaccent ; B 230 498 370 638 ;
|
||||
C 168 ; WX 600 ; N dieresis ; B 128 498 472 638 ;
|
||||
C -1 ; WX 600 ; N ring ; B 198 481 402 678 ;
|
||||
C 184 ; WX 600 ; N cedilla ; B 205 -206 387 0 ;
|
||||
C -1 ; WX 600 ; N hungarumlaut ; B 68 488 588 661 ;
|
||||
C -1 ; WX 600 ; N ogonek ; B 169 -199 400 0 ;
|
||||
C -1 ; WX 600 ; N caron ; B 103 493 497 667 ;
|
||||
C 151 ; WX 600 ; N emdash ; B -10 203 610 313 ;
|
||||
C 198 ; WX 600 ; N AE ; B -29 0 602 562 ;
|
||||
C 170 ; WX 600 ; N ordfeminine ; B 147 196 453 580 ;
|
||||
C -1 ; WX 600 ; N Lslash ; B 39 0 578 562 ;
|
||||
C 216 ; WX 600 ; N Oslash ; B 22 -22 578 584 ;
|
||||
C 140 ; WX 600 ; N OE ; B -25 0 595 562 ;
|
||||
C 186 ; WX 600 ; N ordmasculine ; B 147 196 453 580 ;
|
||||
C 230 ; WX 600 ; N ae ; B -4 -15 601 454 ;
|
||||
C -1 ; WX 600 ; N dotlessi ; B 77 0 523 439 ;
|
||||
C -1 ; WX 600 ; N lslash ; B 77 0 523 626 ;
|
||||
C 248 ; WX 600 ; N oslash ; B 30 -24 570 463 ;
|
||||
C 156 ; WX 600 ; N oe ; B -18 -15 611 454 ;
|
||||
C 223 ; WX 600 ; N germandbls ; B 22 -15 596 626 ;
|
||||
C 207 ; WX 600 ; N Idieresis ; B 77 0 523 761 ;
|
||||
C 233 ; WX 600 ; N eacute ; B 40 -15 563 661 ;
|
||||
C -1 ; WX 600 ; N abreve ; B 35 -15 570 661 ;
|
||||
C -1 ; WX 600 ; N uhungarumlaut ; B -1 -15 628 661 ;
|
||||
C -1 ; WX 600 ; N ecaron ; B 40 -15 563 667 ;
|
||||
C 159 ; WX 600 ; N Ydieresis ; B 12 0 589 761 ;
|
||||
C 247 ; WX 600 ; N divide ; B 71 16 529 500 ;
|
||||
C 221 ; WX 600 ; N Yacute ; B 12 0 589 784 ;
|
||||
C 194 ; WX 600 ; N Acircumflex ; B -9 0 609 780 ;
|
||||
C 225 ; WX 600 ; N aacute ; B 35 -15 570 661 ;
|
||||
C 219 ; WX 600 ; N Ucircumflex ; B 4 -18 596 780 ;
|
||||
C 253 ; WX 600 ; N yacute ; B -4 -142 601 661 ;
|
||||
C -1 ; WX 600 ; N scommaaccent ; B 68 -250 535 459 ;
|
||||
C 234 ; WX 600 ; N ecircumflex ; B 40 -15 563 657 ;
|
||||
C -1 ; WX 600 ; N Uring ; B 4 -18 596 801 ;
|
||||
C 220 ; WX 600 ; N Udieresis ; B 4 -18 596 761 ;
|
||||
C -1 ; WX 600 ; N aogonek ; B 35 -199 586 454 ;
|
||||
C 218 ; WX 600 ; N Uacute ; B 4 -18 596 784 ;
|
||||
C -1 ; WX 600 ; N uogonek ; B -1 -199 585 439 ;
|
||||
C 203 ; WX 600 ; N Edieresis ; B 25 0 560 761 ;
|
||||
C -1 ; WX 600 ; N Dcroat ; B 30 0 594 562 ;
|
||||
C -1 ; WX 600 ; N commaaccent ; B 205 -250 397 -57 ;
|
||||
C 169 ; WX 600 ; N copyright ; B 0 -18 600 580 ;
|
||||
C -1 ; WX 600 ; N Emacron ; B 25 0 560 708 ;
|
||||
C -1 ; WX 600 ; N ccaron ; B 40 -15 545 667 ;
|
||||
C 229 ; WX 600 ; N aring ; B 35 -15 570 678 ;
|
||||
C -1 ; WX 600 ; N Ncommaaccent ; B 8 -250 610 562 ;
|
||||
C -1 ; WX 600 ; N lacute ; B 77 0 523 801 ;
|
||||
C 224 ; WX 600 ; N agrave ; B 35 -15 570 661 ;
|
||||
C -1 ; WX 600 ; N Tcommaaccent ; B 21 -250 579 562 ;
|
||||
C -1 ; WX 600 ; N Cacute ; B 22 -18 560 784 ;
|
||||
C 227 ; WX 600 ; N atilde ; B 35 -15 570 636 ;
|
||||
C -1 ; WX 600 ; N Edotaccent ; B 25 0 560 761 ;
|
||||
C 154 ; WX 600 ; N scaron ; B 68 -17 535 667 ;
|
||||
C -1 ; WX 600 ; N scedilla ; B 68 -206 535 459 ;
|
||||
C 237 ; WX 600 ; N iacute ; B 77 0 523 661 ;
|
||||
C -1 ; WX 600 ; N lozenge ; B 66 0 534 740 ;
|
||||
C -1 ; WX 600 ; N Rcaron ; B 24 0 599 790 ;
|
||||
C -1 ; WX 600 ; N Gcommaaccent ; B 22 -250 594 580 ;
|
||||
C 251 ; WX 600 ; N ucircumflex ; B -1 -15 569 657 ;
|
||||
C 226 ; WX 600 ; N acircumflex ; B 35 -15 570 657 ;
|
||||
C -1 ; WX 600 ; N Amacron ; B -9 0 609 708 ;
|
||||
C -1 ; WX 600 ; N rcaron ; B 47 0 580 667 ;
|
||||
C 231 ; WX 600 ; N ccedilla ; B 40 -206 545 459 ;
|
||||
C -1 ; WX 600 ; N Zdotaccent ; B 62 0 539 761 ;
|
||||
C 222 ; WX 600 ; N Thorn ; B 48 0 557 562 ;
|
||||
C -1 ; WX 600 ; N Omacron ; B 22 -18 578 708 ;
|
||||
C -1 ; WX 600 ; N Racute ; B 24 0 599 784 ;
|
||||
C -1 ; WX 600 ; N Sacute ; B 47 -22 553 784 ;
|
||||
C -1 ; WX 600 ; N dcaron ; B 20 -15 727 626 ;
|
||||
C -1 ; WX 600 ; N Umacron ; B 4 -18 596 708 ;
|
||||
C -1 ; WX 600 ; N uring ; B -1 -15 569 678 ;
|
||||
C 179 ; WX 600 ; N threesuperior ; B 138 222 433 616 ;
|
||||
C 210 ; WX 600 ; N Ograve ; B 22 -18 578 784 ;
|
||||
C 192 ; WX 600 ; N Agrave ; B -9 0 609 784 ;
|
||||
C -1 ; WX 600 ; N Abreve ; B -9 0 609 784 ;
|
||||
C 215 ; WX 600 ; N multiply ; B 81 39 520 478 ;
|
||||
C 250 ; WX 600 ; N uacute ; B -1 -15 569 661 ;
|
||||
C -1 ; WX 600 ; N Tcaron ; B 21 0 579 790 ;
|
||||
C -1 ; WX 600 ; N partialdiff ; B 63 -38 537 728 ;
|
||||
C 255 ; WX 600 ; N ydieresis ; B -4 -142 601 638 ;
|
||||
C -1 ; WX 600 ; N Nacute ; B 8 -12 610 784 ;
|
||||
C 238 ; WX 600 ; N icircumflex ; B 73 0 523 657 ;
|
||||
C 202 ; WX 600 ; N Ecircumflex ; B 25 0 560 780 ;
|
||||
C 228 ; WX 600 ; N adieresis ; B 35 -15 570 638 ;
|
||||
C 235 ; WX 600 ; N edieresis ; B 40 -15 563 638 ;
|
||||
C -1 ; WX 600 ; N cacute ; B 40 -15 545 661 ;
|
||||
C -1 ; WX 600 ; N nacute ; B 18 0 592 661 ;
|
||||
C -1 ; WX 600 ; N umacron ; B -1 -15 569 585 ;
|
||||
C -1 ; WX 600 ; N Ncaron ; B 8 -12 610 790 ;
|
||||
C 205 ; WX 600 ; N Iacute ; B 77 0 523 784 ;
|
||||
C 177 ; WX 600 ; N plusminus ; B 71 24 529 515 ;
|
||||
C 166 ; WX 600 ; N brokenbar ; B 255 -175 345 675 ;
|
||||
C 174 ; WX 600 ; N registered ; B 0 -18 600 580 ;
|
||||
C -1 ; WX 600 ; N Gbreve ; B 22 -18 594 784 ;
|
||||
C -1 ; WX 600 ; N Idotaccent ; B 77 0 523 761 ;
|
||||
C -1 ; WX 600 ; N summation ; B 15 -10 586 706 ;
|
||||
C 200 ; WX 600 ; N Egrave ; B 25 0 560 784 ;
|
||||
C -1 ; WX 600 ; N racute ; B 47 0 580 661 ;
|
||||
C -1 ; WX 600 ; N omacron ; B 30 -15 570 585 ;
|
||||
C -1 ; WX 600 ; N Zacute ; B 62 0 539 784 ;
|
||||
C 142 ; WX 600 ; N Zcaron ; B 62 0 539 790 ;
|
||||
C -1 ; WX 600 ; N greaterequal ; B 26 0 523 696 ;
|
||||
C 208 ; WX 600 ; N Eth ; B 30 0 594 562 ;
|
||||
C 199 ; WX 600 ; N Ccedilla ; B 22 -206 560 580 ;
|
||||
C -1 ; WX 600 ; N lcommaaccent ; B 77 -250 523 626 ;
|
||||
C -1 ; WX 600 ; N tcaron ; B 47 -15 532 703 ;
|
||||
C -1 ; WX 600 ; N eogonek ; B 40 -199 563 454 ;
|
||||
C -1 ; WX 600 ; N Uogonek ; B 4 -199 596 562 ;
|
||||
C 193 ; WX 600 ; N Aacute ; B -9 0 609 784 ;
|
||||
C 196 ; WX 600 ; N Adieresis ; B -9 0 609 761 ;
|
||||
C 232 ; WX 600 ; N egrave ; B 40 -15 563 661 ;
|
||||
C -1 ; WX 600 ; N zacute ; B 81 0 520 661 ;
|
||||
C -1 ; WX 600 ; N iogonek ; B 77 -199 523 658 ;
|
||||
C 211 ; WX 600 ; N Oacute ; B 22 -18 578 784 ;
|
||||
C 243 ; WX 600 ; N oacute ; B 30 -15 570 661 ;
|
||||
C -1 ; WX 600 ; N amacron ; B 35 -15 570 585 ;
|
||||
C -1 ; WX 600 ; N sacute ; B 68 -17 535 661 ;
|
||||
C 239 ; WX 600 ; N idieresis ; B 77 0 523 618 ;
|
||||
C 212 ; WX 600 ; N Ocircumflex ; B 22 -18 578 780 ;
|
||||
C 217 ; WX 600 ; N Ugrave ; B 4 -18 596 784 ;
|
||||
C -1 ; WX 600 ; N Delta ; B 6 0 594 688 ;
|
||||
C 254 ; WX 600 ; N thorn ; B -14 -142 570 626 ;
|
||||
C 178 ; WX 600 ; N twosuperior ; B 143 230 436 616 ;
|
||||
C 214 ; WX 600 ; N Odieresis ; B 22 -18 578 761 ;
|
||||
C 181 ; WX 600 ; N mu ; B -1 -142 569 439 ;
|
||||
C 236 ; WX 600 ; N igrave ; B 77 0 523 661 ;
|
||||
C -1 ; WX 600 ; N ohungarumlaut ; B 30 -15 668 661 ;
|
||||
C -1 ; WX 600 ; N Eogonek ; B 25 -199 576 562 ;
|
||||
C -1 ; WX 600 ; N dcroat ; B 20 -15 591 626 ;
|
||||
C 190 ; WX 600 ; N threequarters ; B -47 -60 648 661 ;
|
||||
C -1 ; WX 600 ; N Scedilla ; B 47 -206 553 582 ;
|
||||
C -1 ; WX 600 ; N lcaron ; B 77 0 597 626 ;
|
||||
C -1 ; WX 600 ; N Kcommaaccent ; B 21 -250 599 562 ;
|
||||
C -1 ; WX 600 ; N Lacute ; B 39 0 578 784 ;
|
||||
C 153 ; WX 600 ; N trademark ; B -9 230 749 562 ;
|
||||
C -1 ; WX 600 ; N edotaccent ; B 40 -15 563 638 ;
|
||||
C 204 ; WX 600 ; N Igrave ; B 77 0 523 784 ;
|
||||
C -1 ; WX 600 ; N Imacron ; B 77 0 523 708 ;
|
||||
C -1 ; WX 600 ; N Lcaron ; B 39 0 637 562 ;
|
||||
C 189 ; WX 600 ; N onehalf ; B -47 -60 648 661 ;
|
||||
C -1 ; WX 600 ; N lessequal ; B 26 0 523 696 ;
|
||||
C 244 ; WX 600 ; N ocircumflex ; B 30 -15 570 657 ;
|
||||
C 241 ; WX 600 ; N ntilde ; B 18 0 592 636 ;
|
||||
C -1 ; WX 600 ; N Uhungarumlaut ; B 4 -18 638 784 ;
|
||||
C 201 ; WX 600 ; N Eacute ; B 25 0 560 784 ;
|
||||
C -1 ; WX 600 ; N emacron ; B 40 -15 563 585 ;
|
||||
C -1 ; WX 600 ; N gbreve ; B 30 -146 580 661 ;
|
||||
C 188 ; WX 600 ; N onequarter ; B -56 -60 656 661 ;
|
||||
C 138 ; WX 600 ; N Scaron ; B 47 -22 553 790 ;
|
||||
C -1 ; WX 600 ; N Scommaaccent ; B 47 -250 553 582 ;
|
||||
C -1 ; WX 600 ; N Ohungarumlaut ; B 22 -18 628 784 ;
|
||||
C 176 ; WX 600 ; N degree ; B 86 243 474 616 ;
|
||||
C 242 ; WX 600 ; N ograve ; B 30 -15 570 661 ;
|
||||
C -1 ; WX 600 ; N Ccaron ; B 22 -18 560 790 ;
|
||||
C 249 ; WX 600 ; N ugrave ; B -1 -15 569 661 ;
|
||||
C -1 ; WX 600 ; N radical ; B -19 -104 473 778 ;
|
||||
C -1 ; WX 600 ; N Dcaron ; B 30 0 594 790 ;
|
||||
C -1 ; WX 600 ; N rcommaaccent ; B 47 -250 580 454 ;
|
||||
C 209 ; WX 600 ; N Ntilde ; B 8 -12 610 759 ;
|
||||
C 245 ; WX 600 ; N otilde ; B 30 -15 570 636 ;
|
||||
C -1 ; WX 600 ; N Rcommaaccent ; B 24 -250 599 562 ;
|
||||
C -1 ; WX 600 ; N Lcommaaccent ; B 39 -250 578 562 ;
|
||||
C 195 ; WX 600 ; N Atilde ; B -9 0 609 759 ;
|
||||
C -1 ; WX 600 ; N Aogonek ; B -9 -199 625 562 ;
|
||||
C 197 ; WX 600 ; N Aring ; B -9 0 609 801 ;
|
||||
C 213 ; WX 600 ; N Otilde ; B 22 -18 578 759 ;
|
||||
C -1 ; WX 600 ; N zdotaccent ; B 81 0 520 638 ;
|
||||
C -1 ; WX 600 ; N Ecaron ; B 25 0 560 790 ;
|
||||
C -1 ; WX 600 ; N Iogonek ; B 77 -199 523 562 ;
|
||||
C -1 ; WX 600 ; N kcommaaccent ; B 20 -250 585 626 ;
|
||||
C -1 ; WX 600 ; N minus ; B 71 203 529 313 ;
|
||||
C 206 ; WX 600 ; N Icircumflex ; B 77 0 523 780 ;
|
||||
C -1 ; WX 600 ; N ncaron ; B 18 0 592 667 ;
|
||||
C -1 ; WX 600 ; N tcommaaccent ; B 47 -250 532 562 ;
|
||||
C 172 ; WX 600 ; N logicalnot ; B 71 103 529 413 ;
|
||||
C 246 ; WX 600 ; N odieresis ; B 30 -15 570 638 ;
|
||||
C 252 ; WX 600 ; N udieresis ; B -1 -15 569 638 ;
|
||||
C -1 ; WX 600 ; N notequal ; B 12 -47 537 563 ;
|
||||
C -1 ; WX 600 ; N gcommaaccent ; B 30 -146 580 714 ;
|
||||
C 240 ; WX 600 ; N eth ; B 58 -27 543 626 ;
|
||||
C 158 ; WX 600 ; N zcaron ; B 81 0 520 667 ;
|
||||
C -1 ; WX 600 ; N ncommaaccent ; B 18 -250 592 454 ;
|
||||
C 185 ; WX 600 ; N onesuperior ; B 153 230 447 616 ;
|
||||
C -1 ; WX 600 ; N imacron ; B 77 0 523 585 ;
|
||||
C 128 ; WX 600 ; N Euro ; B 0 0 0 0 ;
|
||||
EndCharMetrics
|
||||
EndFontMetrics
|
344
lib/dompdf/lib/fonts/Courier-BoldOblique.afm
Normal file
344
lib/dompdf/lib/fonts/Courier-BoldOblique.afm
Normal file
@ -0,0 +1,344 @@
|
||||
StartFontMetrics 4.1
|
||||
Comment Copyright (c) 1989, 1990, 1991, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.
|
||||
Comment Creation Date: Mon Jun 23 16:28:46 0:00:00
|
||||
Comment UniqueID 43049
|
||||
Comment VMusage 17529 79244
|
||||
FontName Courier-BoldOblique
|
||||
FullName Courier Bold Oblique
|
||||
FamilyName Courier
|
||||
Weight Bold
|
||||
ItalicAngle -12
|
||||
IsFixedPitch true
|
||||
CharacterSet ExtendedRoman
|
||||
FontBBox -57 -250 869 801
|
||||
UnderlinePosition -100
|
||||
UnderlineThickness 50
|
||||
Version 3
|
||||
Notice Copyright (c) 1989, 1990, 1991, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.
|
||||
EncodingScheme WinAnsiEncoding
|
||||
CapHeight 562
|
||||
XHeight 439
|
||||
Ascender 629
|
||||
Descender -157
|
||||
StdHW 84
|
||||
StdVW 106
|
||||
StartCharMetrics 317
|
||||
C 32 ; WX 600 ; N space ; B 0 0 0 0 ;
|
||||
C 160 ; WX 600 ; N space ; B 0 0 0 0 ;
|
||||
C 33 ; WX 600 ; N exclam ; B 215 -15 495 572 ;
|
||||
C 34 ; WX 600 ; N quotedbl ; B 211 277 585 562 ;
|
||||
C 35 ; WX 600 ; N numbersign ; B 88 -45 641 651 ;
|
||||
C 36 ; WX 600 ; N dollar ; B 87 -126 630 666 ;
|
||||
C 37 ; WX 600 ; N percent ; B 101 -15 625 616 ;
|
||||
C 38 ; WX 600 ; N ampersand ; B 61 -15 595 543 ;
|
||||
C 146 ; WX 600 ; N quoteright ; B 229 277 543 562 ;
|
||||
C 40 ; WX 600 ; N parenleft ; B 265 -102 592 616 ;
|
||||
C 41 ; WX 600 ; N parenright ; B 117 -102 444 616 ;
|
||||
C 42 ; WX 600 ; N asterisk ; B 179 219 598 601 ;
|
||||
C 43 ; WX 600 ; N plus ; B 114 39 596 478 ;
|
||||
C 44 ; WX 600 ; N comma ; B 99 -111 430 174 ;
|
||||
C 45 ; WX 600 ; N hyphen ; B 143 203 567 313 ;
|
||||
C 173 ; WX 600 ; N hyphen ; B 143 203 567 313 ;
|
||||
C 46 ; WX 600 ; N period ; B 206 -15 427 171 ;
|
||||
C 47 ; WX 600 ; N slash ; B 90 -77 626 626 ;
|
||||
C 48 ; WX 600 ; N zero ; B 135 -15 593 616 ;
|
||||
C 49 ; WX 600 ; N one ; B 93 0 562 616 ;
|
||||
C 50 ; WX 600 ; N two ; B 61 0 594 616 ;
|
||||
C 51 ; WX 600 ; N three ; B 71 -15 571 616 ;
|
||||
C 52 ; WX 600 ; N four ; B 81 0 559 616 ;
|
||||
C 53 ; WX 600 ; N five ; B 77 -15 621 601 ;
|
||||
C 54 ; WX 600 ; N six ; B 135 -15 652 616 ;
|
||||
C 55 ; WX 600 ; N seven ; B 147 0 622 601 ;
|
||||
C 56 ; WX 600 ; N eight ; B 115 -15 604 616 ;
|
||||
C 57 ; WX 600 ; N nine ; B 75 -15 592 616 ;
|
||||
C 58 ; WX 600 ; N colon ; B 205 -15 480 425 ;
|
||||
C 59 ; WX 600 ; N semicolon ; B 99 -111 481 425 ;
|
||||
C 60 ; WX 600 ; N less ; B 120 15 613 501 ;
|
||||
C 61 ; WX 600 ; N equal ; B 96 118 614 398 ;
|
||||
C 62 ; WX 600 ; N greater ; B 97 15 589 501 ;
|
||||
C 63 ; WX 600 ; N question ; B 183 -14 592 580 ;
|
||||
C 64 ; WX 600 ; N at ; B 65 -15 642 616 ;
|
||||
C 65 ; WX 600 ; N A ; B -9 0 632 562 ;
|
||||
C 66 ; WX 600 ; N B ; B 30 0 630 562 ;
|
||||
C 67 ; WX 600 ; N C ; B 74 -18 675 580 ;
|
||||
C 68 ; WX 600 ; N D ; B 30 0 664 562 ;
|
||||
C 69 ; WX 600 ; N E ; B 25 0 670 562 ;
|
||||
C 70 ; WX 600 ; N F ; B 39 0 684 562 ;
|
||||
C 71 ; WX 600 ; N G ; B 74 -18 675 580 ;
|
||||
C 72 ; WX 600 ; N H ; B 20 0 700 562 ;
|
||||
C 73 ; WX 600 ; N I ; B 77 0 643 562 ;
|
||||
C 74 ; WX 600 ; N J ; B 58 -18 721 562 ;
|
||||
C 75 ; WX 600 ; N K ; B 21 0 692 562 ;
|
||||
C 76 ; WX 600 ; N L ; B 39 0 636 562 ;
|
||||
C 77 ; WX 600 ; N M ; B -2 0 722 562 ;
|
||||
C 78 ; WX 600 ; N N ; B 8 -12 730 562 ;
|
||||
C 79 ; WX 600 ; N O ; B 74 -18 645 580 ;
|
||||
C 80 ; WX 600 ; N P ; B 48 0 643 562 ;
|
||||
C 81 ; WX 600 ; N Q ; B 83 -138 636 580 ;
|
||||
C 82 ; WX 600 ; N R ; B 24 0 617 562 ;
|
||||
C 83 ; WX 600 ; N S ; B 54 -22 673 582 ;
|
||||
C 84 ; WX 600 ; N T ; B 86 0 679 562 ;
|
||||
C 85 ; WX 600 ; N U ; B 101 -18 716 562 ;
|
||||
C 86 ; WX 600 ; N V ; B 84 0 733 562 ;
|
||||
C 87 ; WX 600 ; N W ; B 79 0 738 562 ;
|
||||
C 88 ; WX 600 ; N X ; B 12 0 690 562 ;
|
||||
C 89 ; WX 600 ; N Y ; B 109 0 709 562 ;
|
||||
C 90 ; WX 600 ; N Z ; B 62 0 637 562 ;
|
||||
C 91 ; WX 600 ; N bracketleft ; B 223 -102 606 616 ;
|
||||
C 92 ; WX 600 ; N backslash ; B 222 -77 496 626 ;
|
||||
C 93 ; WX 600 ; N bracketright ; B 103 -102 486 616 ;
|
||||
C 94 ; WX 600 ; N asciicircum ; B 171 250 556 616 ;
|
||||
C 95 ; WX 600 ; N underscore ; B -27 -125 585 -75 ;
|
||||
C 145 ; WX 600 ; N quoteleft ; B 297 277 487 562 ;
|
||||
C 97 ; WX 600 ; N a ; B 61 -15 593 454 ;
|
||||
C 98 ; WX 600 ; N b ; B 13 -15 636 626 ;
|
||||
C 99 ; WX 600 ; N c ; B 81 -15 631 459 ;
|
||||
C 100 ; WX 600 ; N d ; B 60 -15 645 626 ;
|
||||
C 101 ; WX 600 ; N e ; B 81 -15 605 454 ;
|
||||
C 102 ; WX 600 ; N f ; B 83 0 677 626 ; L i fi ; L l fl ;
|
||||
C 103 ; WX 600 ; N g ; B 40 -146 674 454 ;
|
||||
C 104 ; WX 600 ; N h ; B 18 0 615 626 ;
|
||||
C 105 ; WX 600 ; N i ; B 77 0 546 658 ;
|
||||
C 106 ; WX 600 ; N j ; B 36 -146 580 658 ;
|
||||
C 107 ; WX 600 ; N k ; B 33 0 643 626 ;
|
||||
C 108 ; WX 600 ; N l ; B 77 0 546 626 ;
|
||||
C 109 ; WX 600 ; N m ; B -22 0 649 454 ;
|
||||
C 110 ; WX 600 ; N n ; B 18 0 615 454 ;
|
||||
C 111 ; WX 600 ; N o ; B 71 -15 622 454 ;
|
||||
C 112 ; WX 600 ; N p ; B -32 -142 622 454 ;
|
||||
C 113 ; WX 600 ; N q ; B 60 -142 685 454 ;
|
||||
C 114 ; WX 600 ; N r ; B 47 0 655 454 ;
|
||||
C 115 ; WX 600 ; N s ; B 66 -17 608 459 ;
|
||||
C 116 ; WX 600 ; N t ; B 118 -15 567 562 ;
|
||||
C 117 ; WX 600 ; N u ; B 70 -15 592 439 ;
|
||||
C 118 ; WX 600 ; N v ; B 70 0 695 439 ;
|
||||
C 119 ; WX 600 ; N w ; B 53 0 712 439 ;
|
||||
C 120 ; WX 600 ; N x ; B 6 0 671 439 ;
|
||||
C 121 ; WX 600 ; N y ; B -21 -142 695 439 ;
|
||||
C 122 ; WX 600 ; N z ; B 81 0 614 439 ;
|
||||
C 123 ; WX 600 ; N braceleft ; B 203 -102 595 616 ;
|
||||
C 124 ; WX 600 ; N bar ; B 201 -250 505 750 ;
|
||||
C 125 ; WX 600 ; N braceright ; B 114 -102 506 616 ;
|
||||
C 126 ; WX 600 ; N asciitilde ; B 120 153 590 356 ;
|
||||
C 161 ; WX 600 ; N exclamdown ; B 196 -146 477 449 ;
|
||||
C 162 ; WX 600 ; N cent ; B 121 -49 605 614 ;
|
||||
C 163 ; WX 600 ; N sterling ; B 106 -28 650 611 ;
|
||||
C -1 ; WX 600 ; N fraction ; B 22 -60 708 661 ;
|
||||
C 165 ; WX 600 ; N yen ; B 98 0 710 562 ;
|
||||
C 131 ; WX 600 ; N florin ; B -57 -131 702 616 ;
|
||||
C 167 ; WX 600 ; N section ; B 74 -70 620 580 ;
|
||||
C 164 ; WX 600 ; N currency ; B 77 49 644 517 ;
|
||||
C 39 ; WX 600 ; N quotesingle ; B 303 277 493 562 ;
|
||||
C 147 ; WX 600 ; N quotedblleft ; B 190 277 594 562 ;
|
||||
C 171 ; WX 600 ; N guillemotleft ; B 62 70 639 446 ;
|
||||
C 139 ; WX 600 ; N guilsinglleft ; B 195 70 545 446 ;
|
||||
C 155 ; WX 600 ; N guilsinglright ; B 165 70 514 446 ;
|
||||
C -1 ; WX 600 ; N fi ; B 12 0 644 626 ;
|
||||
C -1 ; WX 600 ; N fl ; B 12 0 644 626 ;
|
||||
C 150 ; WX 600 ; N endash ; B 108 203 602 313 ;
|
||||
C 134 ; WX 600 ; N dagger ; B 175 -70 586 580 ;
|
||||
C 135 ; WX 600 ; N daggerdbl ; B 121 -70 587 580 ;
|
||||
C 183 ; WX 600 ; N periodcentered ; B 248 165 461 351 ;
|
||||
C 182 ; WX 600 ; N paragraph ; B 61 -70 700 580 ;
|
||||
C 149 ; WX 600 ; N bullet ; B 196 132 523 430 ;
|
||||
C 130 ; WX 600 ; N quotesinglbase ; B 144 -142 458 143 ;
|
||||
C 132 ; WX 600 ; N quotedblbase ; B 34 -142 560 143 ;
|
||||
C 148 ; WX 600 ; N quotedblright ; B 119 277 645 562 ;
|
||||
C 187 ; WX 600 ; N guillemotright ; B 71 70 647 446 ;
|
||||
C 133 ; WX 600 ; N ellipsis ; B 35 -15 587 116 ;
|
||||
C 137 ; WX 600 ; N perthousand ; B -45 -15 743 616 ;
|
||||
C 191 ; WX 600 ; N questiondown ; B 100 -146 509 449 ;
|
||||
C 96 ; WX 600 ; N grave ; B 272 508 503 661 ;
|
||||
C 180 ; WX 600 ; N acute ; B 312 508 609 661 ;
|
||||
C 136 ; WX 600 ; N circumflex ; B 212 483 607 657 ;
|
||||
C 152 ; WX 600 ; N tilde ; B 199 493 643 636 ;
|
||||
C 175 ; WX 600 ; N macron ; B 195 505 637 585 ;
|
||||
C -1 ; WX 600 ; N breve ; B 217 468 652 631 ;
|
||||
C -1 ; WX 600 ; N dotaccent ; B 348 498 493 638 ;
|
||||
C 168 ; WX 600 ; N dieresis ; B 246 498 595 638 ;
|
||||
C -1 ; WX 600 ; N ring ; B 319 481 528 678 ;
|
||||
C 184 ; WX 600 ; N cedilla ; B 168 -206 368 0 ;
|
||||
C -1 ; WX 600 ; N hungarumlaut ; B 171 488 729 661 ;
|
||||
C -1 ; WX 600 ; N ogonek ; B 143 -199 367 0 ;
|
||||
C -1 ; WX 600 ; N caron ; B 238 493 633 667 ;
|
||||
C 151 ; WX 600 ; N emdash ; B 33 203 677 313 ;
|
||||
C 198 ; WX 600 ; N AE ; B -29 0 708 562 ;
|
||||
C 170 ; WX 600 ; N ordfeminine ; B 188 196 526 580 ;
|
||||
C -1 ; WX 600 ; N Lslash ; B 39 0 636 562 ;
|
||||
C 216 ; WX 600 ; N Oslash ; B 48 -22 673 584 ;
|
||||
C 140 ; WX 600 ; N OE ; B 26 0 701 562 ;
|
||||
C 186 ; WX 600 ; N ordmasculine ; B 188 196 543 580 ;
|
||||
C 230 ; WX 600 ; N ae ; B 21 -15 652 454 ;
|
||||
C -1 ; WX 600 ; N dotlessi ; B 77 0 546 439 ;
|
||||
C -1 ; WX 600 ; N lslash ; B 77 0 587 626 ;
|
||||
C 248 ; WX 600 ; N oslash ; B 54 -24 638 463 ;
|
||||
C 156 ; WX 600 ; N oe ; B 18 -15 662 454 ;
|
||||
C 223 ; WX 600 ; N germandbls ; B 22 -15 629 626 ;
|
||||
C 207 ; WX 600 ; N Idieresis ; B 77 0 643 761 ;
|
||||
C 233 ; WX 600 ; N eacute ; B 81 -15 609 661 ;
|
||||
C -1 ; WX 600 ; N abreve ; B 61 -15 658 661 ;
|
||||
C -1 ; WX 600 ; N uhungarumlaut ; B 70 -15 769 661 ;
|
||||
C -1 ; WX 600 ; N ecaron ; B 81 -15 633 667 ;
|
||||
C 159 ; WX 600 ; N Ydieresis ; B 109 0 709 761 ;
|
||||
C 247 ; WX 600 ; N divide ; B 114 16 596 500 ;
|
||||
C 221 ; WX 600 ; N Yacute ; B 109 0 709 784 ;
|
||||
C 194 ; WX 600 ; N Acircumflex ; B -9 0 632 780 ;
|
||||
C 225 ; WX 600 ; N aacute ; B 61 -15 609 661 ;
|
||||
C 219 ; WX 600 ; N Ucircumflex ; B 101 -18 716 780 ;
|
||||
C 253 ; WX 600 ; N yacute ; B -21 -142 695 661 ;
|
||||
C -1 ; WX 600 ; N scommaaccent ; B 66 -250 608 459 ;
|
||||
C 234 ; WX 600 ; N ecircumflex ; B 81 -15 607 657 ;
|
||||
C -1 ; WX 600 ; N Uring ; B 101 -18 716 801 ;
|
||||
C 220 ; WX 600 ; N Udieresis ; B 101 -18 716 761 ;
|
||||
C -1 ; WX 600 ; N aogonek ; B 61 -199 593 454 ;
|
||||
C 218 ; WX 600 ; N Uacute ; B 101 -18 716 784 ;
|
||||
C -1 ; WX 600 ; N uogonek ; B 70 -199 592 439 ;
|
||||
C 203 ; WX 600 ; N Edieresis ; B 25 0 670 761 ;
|
||||
C -1 ; WX 600 ; N Dcroat ; B 30 0 664 562 ;
|
||||
C -1 ; WX 600 ; N commaaccent ; B 151 -250 385 -57 ;
|
||||
C 169 ; WX 600 ; N copyright ; B 53 -18 667 580 ;
|
||||
C -1 ; WX 600 ; N Emacron ; B 25 0 670 708 ;
|
||||
C -1 ; WX 600 ; N ccaron ; B 81 -15 633 667 ;
|
||||
C 229 ; WX 600 ; N aring ; B 61 -15 593 678 ;
|
||||
C -1 ; WX 600 ; N Ncommaaccent ; B 8 -250 730 562 ;
|
||||
C -1 ; WX 600 ; N lacute ; B 77 0 639 801 ;
|
||||
C 224 ; WX 600 ; N agrave ; B 61 -15 593 661 ;
|
||||
C -1 ; WX 600 ; N Tcommaaccent ; B 86 -250 679 562 ;
|
||||
C -1 ; WX 600 ; N Cacute ; B 74 -18 675 784 ;
|
||||
C 227 ; WX 600 ; N atilde ; B 61 -15 643 636 ;
|
||||
C -1 ; WX 600 ; N Edotaccent ; B 25 0 670 761 ;
|
||||
C 154 ; WX 600 ; N scaron ; B 66 -17 633 667 ;
|
||||
C -1 ; WX 600 ; N scedilla ; B 66 -206 608 459 ;
|
||||
C 237 ; WX 600 ; N iacute ; B 77 0 609 661 ;
|
||||
C -1 ; WX 600 ; N lozenge ; B 145 0 614 740 ;
|
||||
C -1 ; WX 600 ; N Rcaron ; B 24 0 659 790 ;
|
||||
C -1 ; WX 600 ; N Gcommaaccent ; B 74 -250 675 580 ;
|
||||
C 251 ; WX 600 ; N ucircumflex ; B 70 -15 597 657 ;
|
||||
C 226 ; WX 600 ; N acircumflex ; B 61 -15 607 657 ;
|
||||
C -1 ; WX 600 ; N Amacron ; B -9 0 633 708 ;
|
||||
C -1 ; WX 600 ; N rcaron ; B 47 0 655 667 ;
|
||||
C 231 ; WX 600 ; N ccedilla ; B 81 -206 631 459 ;
|
||||
C -1 ; WX 600 ; N Zdotaccent ; B 62 0 637 761 ;
|
||||
C 222 ; WX 600 ; N Thorn ; B 48 0 620 562 ;
|
||||
C -1 ; WX 600 ; N Omacron ; B 74 -18 663 708 ;
|
||||
C -1 ; WX 600 ; N Racute ; B 24 0 665 784 ;
|
||||
C -1 ; WX 600 ; N Sacute ; B 54 -22 673 784 ;
|
||||
C -1 ; WX 600 ; N dcaron ; B 60 -15 861 626 ;
|
||||
C -1 ; WX 600 ; N Umacron ; B 101 -18 716 708 ;
|
||||
C -1 ; WX 600 ; N uring ; B 70 -15 592 678 ;
|
||||
C 179 ; WX 600 ; N threesuperior ; B 193 222 526 616 ;
|
||||
C 210 ; WX 600 ; N Ograve ; B 74 -18 645 784 ;
|
||||
C 192 ; WX 600 ; N Agrave ; B -9 0 632 784 ;
|
||||
C -1 ; WX 600 ; N Abreve ; B -9 0 684 784 ;
|
||||
C 215 ; WX 600 ; N multiply ; B 104 39 606 478 ;
|
||||
C 250 ; WX 600 ; N uacute ; B 70 -15 599 661 ;
|
||||
C -1 ; WX 600 ; N Tcaron ; B 86 0 679 790 ;
|
||||
C -1 ; WX 600 ; N partialdiff ; B 91 -38 627 728 ;
|
||||
C 255 ; WX 600 ; N ydieresis ; B -21 -142 695 638 ;
|
||||
C -1 ; WX 600 ; N Nacute ; B 8 -12 730 784 ;
|
||||
C 238 ; WX 600 ; N icircumflex ; B 77 0 577 657 ;
|
||||
C 202 ; WX 600 ; N Ecircumflex ; B 25 0 670 780 ;
|
||||
C 228 ; WX 600 ; N adieresis ; B 61 -15 595 638 ;
|
||||
C 235 ; WX 600 ; N edieresis ; B 81 -15 605 638 ;
|
||||
C -1 ; WX 600 ; N cacute ; B 81 -15 649 661 ;
|
||||
C -1 ; WX 600 ; N nacute ; B 18 0 639 661 ;
|
||||
C -1 ; WX 600 ; N umacron ; B 70 -15 637 585 ;
|
||||
C -1 ; WX 600 ; N Ncaron ; B 8 -12 730 790 ;
|
||||
C 205 ; WX 600 ; N Iacute ; B 77 0 643 784 ;
|
||||
C 177 ; WX 600 ; N plusminus ; B 76 24 614 515 ;
|
||||
C 166 ; WX 600 ; N brokenbar ; B 217 -175 489 675 ;
|
||||
C 174 ; WX 600 ; N registered ; B 53 -18 667 580 ;
|
||||
C -1 ; WX 600 ; N Gbreve ; B 74 -18 684 784 ;
|
||||
C -1 ; WX 600 ; N Idotaccent ; B 77 0 643 761 ;
|
||||
C -1 ; WX 600 ; N summation ; B 15 -10 672 706 ;
|
||||
C 200 ; WX 600 ; N Egrave ; B 25 0 670 784 ;
|
||||
C -1 ; WX 600 ; N racute ; B 47 0 655 661 ;
|
||||
C -1 ; WX 600 ; N omacron ; B 71 -15 637 585 ;
|
||||
C -1 ; WX 600 ; N Zacute ; B 62 0 665 784 ;
|
||||
C 142 ; WX 600 ; N Zcaron ; B 62 0 659 790 ;
|
||||
C -1 ; WX 600 ; N greaterequal ; B 26 0 627 696 ;
|
||||
C 208 ; WX 600 ; N Eth ; B 30 0 664 562 ;
|
||||
C 199 ; WX 600 ; N Ccedilla ; B 74 -206 675 580 ;
|
||||
C -1 ; WX 600 ; N lcommaaccent ; B 77 -250 546 626 ;
|
||||
C -1 ; WX 600 ; N tcaron ; B 118 -15 627 703 ;
|
||||
C -1 ; WX 600 ; N eogonek ; B 81 -199 605 454 ;
|
||||
C -1 ; WX 600 ; N Uogonek ; B 101 -199 716 562 ;
|
||||
C 193 ; WX 600 ; N Aacute ; B -9 0 655 784 ;
|
||||
C 196 ; WX 600 ; N Adieresis ; B -9 0 632 761 ;
|
||||
C 232 ; WX 600 ; N egrave ; B 81 -15 605 661 ;
|
||||
C -1 ; WX 600 ; N zacute ; B 81 0 614 661 ;
|
||||
C -1 ; WX 600 ; N iogonek ; B 77 -199 546 658 ;
|
||||
C 211 ; WX 600 ; N Oacute ; B 74 -18 645 784 ;
|
||||
C 243 ; WX 600 ; N oacute ; B 71 -15 649 661 ;
|
||||
C -1 ; WX 600 ; N amacron ; B 61 -15 637 585 ;
|
||||
C -1 ; WX 600 ; N sacute ; B 66 -17 609 661 ;
|
||||
C 239 ; WX 600 ; N idieresis ; B 77 0 561 618 ;
|
||||
C 212 ; WX 600 ; N Ocircumflex ; B 74 -18 645 780 ;
|
||||
C 217 ; WX 600 ; N Ugrave ; B 101 -18 716 784 ;
|
||||
C -1 ; WX 600 ; N Delta ; B 6 0 594 688 ;
|
||||
C 254 ; WX 600 ; N thorn ; B -32 -142 622 626 ;
|
||||
C 178 ; WX 600 ; N twosuperior ; B 191 230 542 616 ;
|
||||
C 214 ; WX 600 ; N Odieresis ; B 74 -18 645 761 ;
|
||||
C 181 ; WX 600 ; N mu ; B 49 -142 592 439 ;
|
||||
C 236 ; WX 600 ; N igrave ; B 77 0 546 661 ;
|
||||
C -1 ; WX 600 ; N ohungarumlaut ; B 71 -15 809 661 ;
|
||||
C -1 ; WX 600 ; N Eogonek ; B 25 -199 670 562 ;
|
||||
C -1 ; WX 600 ; N dcroat ; B 60 -15 712 626 ;
|
||||
C 190 ; WX 600 ; N threequarters ; B 8 -60 699 661 ;
|
||||
C -1 ; WX 600 ; N Scedilla ; B 54 -206 673 582 ;
|
||||
C -1 ; WX 600 ; N lcaron ; B 77 0 731 626 ;
|
||||
C -1 ; WX 600 ; N Kcommaaccent ; B 21 -250 692 562 ;
|
||||
C -1 ; WX 600 ; N Lacute ; B 39 0 636 784 ;
|
||||
C 153 ; WX 600 ; N trademark ; B 86 230 869 562 ;
|
||||
C -1 ; WX 600 ; N edotaccent ; B 81 -15 605 638 ;
|
||||
C 204 ; WX 600 ; N Igrave ; B 77 0 643 784 ;
|
||||
C -1 ; WX 600 ; N Imacron ; B 77 0 663 708 ;
|
||||
C -1 ; WX 600 ; N Lcaron ; B 39 0 757 562 ;
|
||||
C 189 ; WX 600 ; N onehalf ; B 22 -60 716 661 ;
|
||||
C -1 ; WX 600 ; N lessequal ; B 26 0 671 696 ;
|
||||
C 244 ; WX 600 ; N ocircumflex ; B 71 -15 622 657 ;
|
||||
C 241 ; WX 600 ; N ntilde ; B 18 0 643 636 ;
|
||||
C -1 ; WX 600 ; N Uhungarumlaut ; B 101 -18 805 784 ;
|
||||
C 201 ; WX 600 ; N Eacute ; B 25 0 670 784 ;
|
||||
C -1 ; WX 600 ; N emacron ; B 81 -15 637 585 ;
|
||||
C -1 ; WX 600 ; N gbreve ; B 40 -146 674 661 ;
|
||||
C 188 ; WX 600 ; N onequarter ; B 13 -60 707 661 ;
|
||||
C 138 ; WX 600 ; N Scaron ; B 54 -22 689 790 ;
|
||||
C -1 ; WX 600 ; N Scommaaccent ; B 54 -250 673 582 ;
|
||||
C -1 ; WX 600 ; N Ohungarumlaut ; B 74 -18 795 784 ;
|
||||
C 176 ; WX 600 ; N degree ; B 173 243 570 616 ;
|
||||
C 242 ; WX 600 ; N ograve ; B 71 -15 622 661 ;
|
||||
C -1 ; WX 600 ; N Ccaron ; B 74 -18 689 790 ;
|
||||
C 249 ; WX 600 ; N ugrave ; B 70 -15 592 661 ;
|
||||
C -1 ; WX 600 ; N radical ; B 67 -104 635 778 ;
|
||||
C -1 ; WX 600 ; N Dcaron ; B 30 0 664 790 ;
|
||||
C -1 ; WX 600 ; N rcommaaccent ; B 47 -250 655 454 ;
|
||||
C 209 ; WX 600 ; N Ntilde ; B 8 -12 730 759 ;
|
||||
C 245 ; WX 600 ; N otilde ; B 71 -15 643 636 ;
|
||||
C -1 ; WX 600 ; N Rcommaaccent ; B 24 -250 617 562 ;
|
||||
C -1 ; WX 600 ; N Lcommaaccent ; B 39 -250 636 562 ;
|
||||
C 195 ; WX 600 ; N Atilde ; B -9 0 669 759 ;
|
||||
C -1 ; WX 600 ; N Aogonek ; B -9 -199 632 562 ;
|
||||
C 197 ; WX 600 ; N Aring ; B -9 0 632 801 ;
|
||||
C 213 ; WX 600 ; N Otilde ; B 74 -18 669 759 ;
|
||||
C -1 ; WX 600 ; N zdotaccent ; B 81 0 614 638 ;
|
||||
C -1 ; WX 600 ; N Ecaron ; B 25 0 670 790 ;
|
||||
C -1 ; WX 600 ; N Iogonek ; B 77 -199 643 562 ;
|
||||
C -1 ; WX 600 ; N kcommaaccent ; B 33 -250 643 626 ;
|
||||
C -1 ; WX 600 ; N minus ; B 114 203 596 313 ;
|
||||
C 206 ; WX 600 ; N Icircumflex ; B 77 0 643 780 ;
|
||||
C -1 ; WX 600 ; N ncaron ; B 18 0 633 667 ;
|
||||
C -1 ; WX 600 ; N tcommaaccent ; B 118 -250 567 562 ;
|
||||
C 172 ; WX 600 ; N logicalnot ; B 135 103 617 413 ;
|
||||
C 246 ; WX 600 ; N odieresis ; B 71 -15 622 638 ;
|
||||
C 252 ; WX 600 ; N udieresis ; B 70 -15 595 638 ;
|
||||
C -1 ; WX 600 ; N notequal ; B 30 -47 626 563 ;
|
||||
C -1 ; WX 600 ; N gcommaaccent ; B 40 -146 674 714 ;
|
||||
C 240 ; WX 600 ; N eth ; B 93 -27 661 626 ;
|
||||
C 158 ; WX 600 ; N zcaron ; B 81 0 643 667 ;
|
||||
C -1 ; WX 600 ; N ncommaaccent ; B 18 -250 615 454 ;
|
||||
C 185 ; WX 600 ; N onesuperior ; B 212 230 514 616 ;
|
||||
C -1 ; WX 600 ; N imacron ; B 77 0 575 585 ;
|
||||
C 128 ; WX 600 ; N Euro ; B 0 0 0 0 ;
|
||||
EndCharMetrics
|
||||
EndFontMetrics
|
344
lib/dompdf/lib/fonts/Courier-Oblique.afm
Normal file
344
lib/dompdf/lib/fonts/Courier-Oblique.afm
Normal file
@ -0,0 +1,344 @@
|
||||
StartFontMetrics 4.1
|
||||
Comment Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.
|
||||
Comment Creation Date: Thu May 0:00:00 17:37:52 1997
|
||||
Comment UniqueID 43051
|
||||
Comment VMusage 16248 75829
|
||||
FontName Courier-Oblique
|
||||
FullName Courier Oblique
|
||||
FamilyName Courier
|
||||
Weight Medium
|
||||
ItalicAngle -12
|
||||
IsFixedPitch true
|
||||
CharacterSet ExtendedRoman
|
||||
FontBBox -27 -250 849 805
|
||||
UnderlinePosition -100
|
||||
UnderlineThickness 50
|
||||
Version 003.000
|
||||
Notice Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.
|
||||
EncodingScheme WinAnsiEncoding
|
||||
CapHeight 562
|
||||
XHeight 426
|
||||
Ascender 629
|
||||
Descender -157
|
||||
StdHW 51
|
||||
StdVW 51
|
||||
StartCharMetrics 317
|
||||
C 32 ; WX 600 ; N space ; B 0 0 0 0 ;
|
||||
C 160 ; WX 600 ; N space ; B 0 0 0 0 ;
|
||||
C 33 ; WX 600 ; N exclam ; B 243 -15 464 572 ;
|
||||
C 34 ; WX 600 ; N quotedbl ; B 273 328 532 562 ;
|
||||
C 35 ; WX 600 ; N numbersign ; B 133 -32 596 639 ;
|
||||
C 36 ; WX 600 ; N dollar ; B 108 -126 596 662 ;
|
||||
C 37 ; WX 600 ; N percent ; B 134 -15 599 622 ;
|
||||
C 38 ; WX 600 ; N ampersand ; B 87 -15 580 543 ;
|
||||
C 146 ; WX 600 ; N quoteright ; B 283 328 495 562 ;
|
||||
C 40 ; WX 600 ; N parenleft ; B 313 -108 572 622 ;
|
||||
C 41 ; WX 600 ; N parenright ; B 137 -108 396 622 ;
|
||||
C 42 ; WX 600 ; N asterisk ; B 212 257 580 607 ;
|
||||
C 43 ; WX 600 ; N plus ; B 129 44 580 470 ;
|
||||
C 44 ; WX 600 ; N comma ; B 157 -112 370 122 ;
|
||||
C 45 ; WX 600 ; N hyphen ; B 152 231 558 285 ;
|
||||
C 173 ; WX 600 ; N hyphen ; B 152 231 558 285 ;
|
||||
C 46 ; WX 600 ; N period ; B 238 -15 382 109 ;
|
||||
C 47 ; WX 600 ; N slash ; B 112 -80 604 629 ;
|
||||
C 48 ; WX 600 ; N zero ; B 154 -15 575 622 ;
|
||||
C 49 ; WX 600 ; N one ; B 98 0 515 622 ;
|
||||
C 50 ; WX 600 ; N two ; B 70 0 568 622 ;
|
||||
C 51 ; WX 600 ; N three ; B 82 -15 538 622 ;
|
||||
C 52 ; WX 600 ; N four ; B 108 0 541 622 ;
|
||||
C 53 ; WX 600 ; N five ; B 99 -15 589 607 ;
|
||||
C 54 ; WX 600 ; N six ; B 155 -15 629 622 ;
|
||||
C 55 ; WX 600 ; N seven ; B 182 0 612 607 ;
|
||||
C 56 ; WX 600 ; N eight ; B 132 -15 588 622 ;
|
||||
C 57 ; WX 600 ; N nine ; B 93 -15 574 622 ;
|
||||
C 58 ; WX 600 ; N colon ; B 238 -15 441 385 ;
|
||||
C 59 ; WX 600 ; N semicolon ; B 157 -112 441 385 ;
|
||||
C 60 ; WX 600 ; N less ; B 96 42 610 472 ;
|
||||
C 61 ; WX 600 ; N equal ; B 109 138 600 376 ;
|
||||
C 62 ; WX 600 ; N greater ; B 85 42 599 472 ;
|
||||
C 63 ; WX 600 ; N question ; B 222 -15 583 572 ;
|
||||
C 64 ; WX 600 ; N at ; B 127 -15 582 622 ;
|
||||
C 65 ; WX 600 ; N A ; B 3 0 607 562 ;
|
||||
C 66 ; WX 600 ; N B ; B 43 0 616 562 ;
|
||||
C 67 ; WX 600 ; N C ; B 93 -18 655 580 ;
|
||||
C 68 ; WX 600 ; N D ; B 43 0 645 562 ;
|
||||
C 69 ; WX 600 ; N E ; B 53 0 660 562 ;
|
||||
C 70 ; WX 600 ; N F ; B 53 0 660 562 ;
|
||||
C 71 ; WX 600 ; N G ; B 83 -18 645 580 ;
|
||||
C 72 ; WX 600 ; N H ; B 32 0 687 562 ;
|
||||
C 73 ; WX 600 ; N I ; B 96 0 623 562 ;
|
||||
C 74 ; WX 600 ; N J ; B 52 -18 685 562 ;
|
||||
C 75 ; WX 600 ; N K ; B 38 0 671 562 ;
|
||||
C 76 ; WX 600 ; N L ; B 47 0 607 562 ;
|
||||
C 77 ; WX 600 ; N M ; B 4 0 715 562 ;
|
||||
C 78 ; WX 600 ; N N ; B 7 -13 712 562 ;
|
||||
C 79 ; WX 600 ; N O ; B 94 -18 625 580 ;
|
||||
C 80 ; WX 600 ; N P ; B 79 0 644 562 ;
|
||||
C 81 ; WX 600 ; N Q ; B 95 -138 625 580 ;
|
||||
C 82 ; WX 600 ; N R ; B 38 0 598 562 ;
|
||||
C 83 ; WX 600 ; N S ; B 76 -20 650 580 ;
|
||||
C 84 ; WX 600 ; N T ; B 108 0 665 562 ;
|
||||
C 85 ; WX 600 ; N U ; B 125 -18 702 562 ;
|
||||
C 86 ; WX 600 ; N V ; B 105 -13 723 562 ;
|
||||
C 87 ; WX 600 ; N W ; B 106 -13 722 562 ;
|
||||
C 88 ; WX 600 ; N X ; B 23 0 675 562 ;
|
||||
C 89 ; WX 600 ; N Y ; B 133 0 695 562 ;
|
||||
C 90 ; WX 600 ; N Z ; B 86 0 610 562 ;
|
||||
C 91 ; WX 600 ; N bracketleft ; B 246 -108 574 622 ;
|
||||
C 92 ; WX 600 ; N backslash ; B 249 -80 468 629 ;
|
||||
C 93 ; WX 600 ; N bracketright ; B 135 -108 463 622 ;
|
||||
C 94 ; WX 600 ; N asciicircum ; B 175 354 587 622 ;
|
||||
C 95 ; WX 600 ; N underscore ; B -27 -125 584 -75 ;
|
||||
C 145 ; WX 600 ; N quoteleft ; B 343 328 457 562 ;
|
||||
C 97 ; WX 600 ; N a ; B 76 -15 569 441 ;
|
||||
C 98 ; WX 600 ; N b ; B 29 -15 625 629 ;
|
||||
C 99 ; WX 600 ; N c ; B 106 -15 608 441 ;
|
||||
C 100 ; WX 600 ; N d ; B 85 -15 640 629 ;
|
||||
C 101 ; WX 600 ; N e ; B 106 -15 598 441 ;
|
||||
C 102 ; WX 600 ; N f ; B 114 0 662 629 ; L i fi ; L l fl ;
|
||||
C 103 ; WX 600 ; N g ; B 61 -157 657 441 ;
|
||||
C 104 ; WX 600 ; N h ; B 33 0 592 629 ;
|
||||
C 105 ; WX 600 ; N i ; B 95 0 515 657 ;
|
||||
C 106 ; WX 600 ; N j ; B 52 -157 550 657 ;
|
||||
C 107 ; WX 600 ; N k ; B 58 0 633 629 ;
|
||||
C 108 ; WX 600 ; N l ; B 95 0 515 629 ;
|
||||
C 109 ; WX 600 ; N m ; B -5 0 615 441 ;
|
||||
C 110 ; WX 600 ; N n ; B 26 0 585 441 ;
|
||||
C 111 ; WX 600 ; N o ; B 102 -15 588 441 ;
|
||||
C 112 ; WX 600 ; N p ; B -24 -157 605 441 ;
|
||||
C 113 ; WX 600 ; N q ; B 85 -157 682 441 ;
|
||||
C 114 ; WX 600 ; N r ; B 60 0 636 441 ;
|
||||
C 115 ; WX 600 ; N s ; B 78 -15 584 441 ;
|
||||
C 116 ; WX 600 ; N t ; B 167 -15 561 561 ;
|
||||
C 117 ; WX 600 ; N u ; B 101 -15 572 426 ;
|
||||
C 118 ; WX 600 ; N v ; B 90 -10 681 426 ;
|
||||
C 119 ; WX 600 ; N w ; B 76 -10 695 426 ;
|
||||
C 120 ; WX 600 ; N x ; B 20 0 655 426 ;
|
||||
C 121 ; WX 600 ; N y ; B -4 -157 683 426 ;
|
||||
C 122 ; WX 600 ; N z ; B 99 0 593 426 ;
|
||||
C 123 ; WX 600 ; N braceleft ; B 233 -108 569 622 ;
|
||||
C 124 ; WX 600 ; N bar ; B 222 -250 485 750 ;
|
||||
C 125 ; WX 600 ; N braceright ; B 140 -108 477 622 ;
|
||||
C 126 ; WX 600 ; N asciitilde ; B 116 197 600 320 ;
|
||||
C 161 ; WX 600 ; N exclamdown ; B 225 -157 445 430 ;
|
||||
C 162 ; WX 600 ; N cent ; B 151 -49 588 614 ;
|
||||
C 163 ; WX 600 ; N sterling ; B 124 -21 621 611 ;
|
||||
C -1 ; WX 600 ; N fraction ; B 84 -57 646 665 ;
|
||||
C 165 ; WX 600 ; N yen ; B 120 0 693 562 ;
|
||||
C 131 ; WX 600 ; N florin ; B -26 -143 671 622 ;
|
||||
C 167 ; WX 600 ; N section ; B 104 -78 590 580 ;
|
||||
C 164 ; WX 600 ; N currency ; B 94 58 628 506 ;
|
||||
C 39 ; WX 600 ; N quotesingle ; B 345 328 460 562 ;
|
||||
C 147 ; WX 600 ; N quotedblleft ; B 262 328 541 562 ;
|
||||
C 171 ; WX 600 ; N guillemotleft ; B 92 70 652 446 ;
|
||||
C 139 ; WX 600 ; N guilsinglleft ; B 204 70 540 446 ;
|
||||
C 155 ; WX 600 ; N guilsinglright ; B 170 70 506 446 ;
|
||||
C -1 ; WX 600 ; N fi ; B 3 0 619 629 ;
|
||||
C -1 ; WX 600 ; N fl ; B 3 0 619 629 ;
|
||||
C 150 ; WX 600 ; N endash ; B 124 231 586 285 ;
|
||||
C 134 ; WX 600 ; N dagger ; B 217 -78 546 580 ;
|
||||
C 135 ; WX 600 ; N daggerdbl ; B 163 -78 546 580 ;
|
||||
C 183 ; WX 600 ; N periodcentered ; B 275 189 434 327 ;
|
||||
C 182 ; WX 600 ; N paragraph ; B 100 -78 630 562 ;
|
||||
C 149 ; WX 600 ; N bullet ; B 224 130 485 383 ;
|
||||
C 130 ; WX 600 ; N quotesinglbase ; B 185 -134 397 100 ;
|
||||
C 132 ; WX 600 ; N quotedblbase ; B 115 -134 478 100 ;
|
||||
C 148 ; WX 600 ; N quotedblright ; B 213 328 576 562 ;
|
||||
C 187 ; WX 600 ; N guillemotright ; B 58 70 618 446 ;
|
||||
C 133 ; WX 600 ; N ellipsis ; B 46 -15 575 111 ;
|
||||
C 137 ; WX 600 ; N perthousand ; B 59 -15 627 622 ;
|
||||
C 191 ; WX 600 ; N questiondown ; B 105 -157 466 430 ;
|
||||
C 96 ; WX 600 ; N grave ; B 294 497 484 672 ;
|
||||
C 180 ; WX 600 ; N acute ; B 348 497 612 672 ;
|
||||
C 136 ; WX 600 ; N circumflex ; B 229 477 581 654 ;
|
||||
C 152 ; WX 600 ; N tilde ; B 212 489 629 606 ;
|
||||
C 175 ; WX 600 ; N macron ; B 232 525 600 565 ;
|
||||
C -1 ; WX 600 ; N breve ; B 279 501 576 609 ;
|
||||
C -1 ; WX 600 ; N dotaccent ; B 373 537 478 640 ;
|
||||
C 168 ; WX 600 ; N dieresis ; B 272 537 579 640 ;
|
||||
C -1 ; WX 600 ; N ring ; B 332 463 500 627 ;
|
||||
C 184 ; WX 600 ; N cedilla ; B 197 -151 344 10 ;
|
||||
C -1 ; WX 600 ; N hungarumlaut ; B 239 497 683 672 ;
|
||||
C -1 ; WX 600 ; N ogonek ; B 189 -172 377 4 ;
|
||||
C -1 ; WX 600 ; N caron ; B 262 492 614 669 ;
|
||||
C 151 ; WX 600 ; N emdash ; B 49 231 661 285 ;
|
||||
C 198 ; WX 600 ; N AE ; B 3 0 655 562 ;
|
||||
C 170 ; WX 600 ; N ordfeminine ; B 209 249 512 580 ;
|
||||
C -1 ; WX 600 ; N Lslash ; B 47 0 607 562 ;
|
||||
C 216 ; WX 600 ; N Oslash ; B 94 -80 625 629 ;
|
||||
C 140 ; WX 600 ; N OE ; B 59 0 672 562 ;
|
||||
C 186 ; WX 600 ; N ordmasculine ; B 210 249 535 580 ;
|
||||
C 230 ; WX 600 ; N ae ; B 41 -15 626 441 ;
|
||||
C -1 ; WX 600 ; N dotlessi ; B 95 0 515 426 ;
|
||||
C -1 ; WX 600 ; N lslash ; B 95 0 587 629 ;
|
||||
C 248 ; WX 600 ; N oslash ; B 102 -80 588 506 ;
|
||||
C 156 ; WX 600 ; N oe ; B 54 -15 615 441 ;
|
||||
C 223 ; WX 600 ; N germandbls ; B 48 -15 617 629 ;
|
||||
C 207 ; WX 600 ; N Idieresis ; B 96 0 623 753 ;
|
||||
C 233 ; WX 600 ; N eacute ; B 106 -15 612 672 ;
|
||||
C -1 ; WX 600 ; N abreve ; B 76 -15 576 609 ;
|
||||
C -1 ; WX 600 ; N uhungarumlaut ; B 101 -15 723 672 ;
|
||||
C -1 ; WX 600 ; N ecaron ; B 106 -15 614 669 ;
|
||||
C 159 ; WX 600 ; N Ydieresis ; B 133 0 695 753 ;
|
||||
C 247 ; WX 600 ; N divide ; B 136 48 573 467 ;
|
||||
C 221 ; WX 600 ; N Yacute ; B 133 0 695 805 ;
|
||||
C 194 ; WX 600 ; N Acircumflex ; B 3 0 607 787 ;
|
||||
C 225 ; WX 600 ; N aacute ; B 76 -15 612 672 ;
|
||||
C 219 ; WX 600 ; N Ucircumflex ; B 125 -18 702 787 ;
|
||||
C 253 ; WX 600 ; N yacute ; B -4 -157 683 672 ;
|
||||
C -1 ; WX 600 ; N scommaaccent ; B 78 -250 584 441 ;
|
||||
C 234 ; WX 600 ; N ecircumflex ; B 106 -15 598 654 ;
|
||||
C -1 ; WX 600 ; N Uring ; B 125 -18 702 760 ;
|
||||
C 220 ; WX 600 ; N Udieresis ; B 125 -18 702 753 ;
|
||||
C -1 ; WX 600 ; N aogonek ; B 76 -172 569 441 ;
|
||||
C 218 ; WX 600 ; N Uacute ; B 125 -18 702 805 ;
|
||||
C -1 ; WX 600 ; N uogonek ; B 101 -172 572 426 ;
|
||||
C 203 ; WX 600 ; N Edieresis ; B 53 0 660 753 ;
|
||||
C -1 ; WX 600 ; N Dcroat ; B 43 0 645 562 ;
|
||||
C -1 ; WX 600 ; N commaaccent ; B 145 -250 323 -58 ;
|
||||
C 169 ; WX 600 ; N copyright ; B 53 -18 667 580 ;
|
||||
C -1 ; WX 600 ; N Emacron ; B 53 0 660 698 ;
|
||||
C -1 ; WX 600 ; N ccaron ; B 106 -15 614 669 ;
|
||||
C 229 ; WX 600 ; N aring ; B 76 -15 569 627 ;
|
||||
C -1 ; WX 600 ; N Ncommaaccent ; B 7 -250 712 562 ;
|
||||
C -1 ; WX 600 ; N lacute ; B 95 0 640 805 ;
|
||||
C 224 ; WX 600 ; N agrave ; B 76 -15 569 672 ;
|
||||
C -1 ; WX 600 ; N Tcommaaccent ; B 108 -250 665 562 ;
|
||||
C -1 ; WX 600 ; N Cacute ; B 93 -18 655 805 ;
|
||||
C 227 ; WX 600 ; N atilde ; B 76 -15 629 606 ;
|
||||
C -1 ; WX 600 ; N Edotaccent ; B 53 0 660 753 ;
|
||||
C 154 ; WX 600 ; N scaron ; B 78 -15 614 669 ;
|
||||
C -1 ; WX 600 ; N scedilla ; B 78 -151 584 441 ;
|
||||
C 237 ; WX 600 ; N iacute ; B 95 0 612 672 ;
|
||||
C -1 ; WX 600 ; N lozenge ; B 94 0 519 706 ;
|
||||
C -1 ; WX 600 ; N Rcaron ; B 38 0 642 802 ;
|
||||
C -1 ; WX 600 ; N Gcommaaccent ; B 83 -250 645 580 ;
|
||||
C 251 ; WX 600 ; N ucircumflex ; B 101 -15 572 654 ;
|
||||
C 226 ; WX 600 ; N acircumflex ; B 76 -15 581 654 ;
|
||||
C -1 ; WX 600 ; N Amacron ; B 3 0 607 698 ;
|
||||
C -1 ; WX 600 ; N rcaron ; B 60 0 636 669 ;
|
||||
C 231 ; WX 600 ; N ccedilla ; B 106 -151 614 441 ;
|
||||
C -1 ; WX 600 ; N Zdotaccent ; B 86 0 610 753 ;
|
||||
C 222 ; WX 600 ; N Thorn ; B 79 0 606 562 ;
|
||||
C -1 ; WX 600 ; N Omacron ; B 94 -18 628 698 ;
|
||||
C -1 ; WX 600 ; N Racute ; B 38 0 670 805 ;
|
||||
C -1 ; WX 600 ; N Sacute ; B 76 -20 650 805 ;
|
||||
C -1 ; WX 600 ; N dcaron ; B 85 -15 849 629 ;
|
||||
C -1 ; WX 600 ; N Umacron ; B 125 -18 702 698 ;
|
||||
C -1 ; WX 600 ; N uring ; B 101 -15 572 627 ;
|
||||
C 179 ; WX 600 ; N threesuperior ; B 213 240 501 622 ;
|
||||
C 210 ; WX 600 ; N Ograve ; B 94 -18 625 805 ;
|
||||
C 192 ; WX 600 ; N Agrave ; B 3 0 607 805 ;
|
||||
C -1 ; WX 600 ; N Abreve ; B 3 0 607 732 ;
|
||||
C 215 ; WX 600 ; N multiply ; B 103 43 607 470 ;
|
||||
C 250 ; WX 600 ; N uacute ; B 101 -15 602 672 ;
|
||||
C -1 ; WX 600 ; N Tcaron ; B 108 0 665 802 ;
|
||||
C -1 ; WX 600 ; N partialdiff ; B 45 -38 546 710 ;
|
||||
C 255 ; WX 600 ; N ydieresis ; B -4 -157 683 620 ;
|
||||
C -1 ; WX 600 ; N Nacute ; B 7 -13 712 805 ;
|
||||
C 238 ; WX 600 ; N icircumflex ; B 95 0 551 654 ;
|
||||
C 202 ; WX 600 ; N Ecircumflex ; B 53 0 660 787 ;
|
||||
C 228 ; WX 600 ; N adieresis ; B 76 -15 575 620 ;
|
||||
C 235 ; WX 600 ; N edieresis ; B 106 -15 598 620 ;
|
||||
C -1 ; WX 600 ; N cacute ; B 106 -15 612 672 ;
|
||||
C -1 ; WX 600 ; N nacute ; B 26 0 602 672 ;
|
||||
C -1 ; WX 600 ; N umacron ; B 101 -15 600 565 ;
|
||||
C -1 ; WX 600 ; N Ncaron ; B 7 -13 712 802 ;
|
||||
C 205 ; WX 600 ; N Iacute ; B 96 0 640 805 ;
|
||||
C 177 ; WX 600 ; N plusminus ; B 96 44 594 558 ;
|
||||
C 166 ; WX 600 ; N brokenbar ; B 238 -175 469 675 ;
|
||||
C 174 ; WX 600 ; N registered ; B 53 -18 667 580 ;
|
||||
C -1 ; WX 600 ; N Gbreve ; B 83 -18 645 732 ;
|
||||
C -1 ; WX 600 ; N Idotaccent ; B 96 0 623 753 ;
|
||||
C -1 ; WX 600 ; N summation ; B 15 -10 670 706 ;
|
||||
C 200 ; WX 600 ; N Egrave ; B 53 0 660 805 ;
|
||||
C -1 ; WX 600 ; N racute ; B 60 0 636 672 ;
|
||||
C -1 ; WX 600 ; N omacron ; B 102 -15 600 565 ;
|
||||
C -1 ; WX 600 ; N Zacute ; B 86 0 670 805 ;
|
||||
C 142 ; WX 600 ; N Zcaron ; B 86 0 642 802 ;
|
||||
C -1 ; WX 600 ; N greaterequal ; B 98 0 594 710 ;
|
||||
C 208 ; WX 600 ; N Eth ; B 43 0 645 562 ;
|
||||
C 199 ; WX 600 ; N Ccedilla ; B 93 -151 658 580 ;
|
||||
C -1 ; WX 600 ; N lcommaaccent ; B 95 -250 515 629 ;
|
||||
C -1 ; WX 600 ; N tcaron ; B 167 -15 587 717 ;
|
||||
C -1 ; WX 600 ; N eogonek ; B 106 -172 598 441 ;
|
||||
C -1 ; WX 600 ; N Uogonek ; B 124 -172 702 562 ;
|
||||
C 193 ; WX 600 ; N Aacute ; B 3 0 660 805 ;
|
||||
C 196 ; WX 600 ; N Adieresis ; B 3 0 607 753 ;
|
||||
C 232 ; WX 600 ; N egrave ; B 106 -15 598 672 ;
|
||||
C -1 ; WX 600 ; N zacute ; B 99 0 612 672 ;
|
||||
C -1 ; WX 600 ; N iogonek ; B 95 -172 515 657 ;
|
||||
C 211 ; WX 600 ; N Oacute ; B 94 -18 640 805 ;
|
||||
C 243 ; WX 600 ; N oacute ; B 102 -15 612 672 ;
|
||||
C -1 ; WX 600 ; N amacron ; B 76 -15 600 565 ;
|
||||
C -1 ; WX 600 ; N sacute ; B 78 -15 612 672 ;
|
||||
C 239 ; WX 600 ; N idieresis ; B 95 0 545 620 ;
|
||||
C 212 ; WX 600 ; N Ocircumflex ; B 94 -18 625 787 ;
|
||||
C 217 ; WX 600 ; N Ugrave ; B 125 -18 702 805 ;
|
||||
C -1 ; WX 600 ; N Delta ; B 6 0 598 688 ;
|
||||
C 254 ; WX 600 ; N thorn ; B -24 -157 605 629 ;
|
||||
C 178 ; WX 600 ; N twosuperior ; B 230 249 535 622 ;
|
||||
C 214 ; WX 600 ; N Odieresis ; B 94 -18 625 753 ;
|
||||
C 181 ; WX 600 ; N mu ; B 72 -157 572 426 ;
|
||||
C 236 ; WX 600 ; N igrave ; B 95 0 515 672 ;
|
||||
C -1 ; WX 600 ; N ohungarumlaut ; B 102 -15 723 672 ;
|
||||
C -1 ; WX 600 ; N Eogonek ; B 53 -172 660 562 ;
|
||||
C -1 ; WX 600 ; N dcroat ; B 85 -15 704 629 ;
|
||||
C 190 ; WX 600 ; N threequarters ; B 73 -56 659 666 ;
|
||||
C -1 ; WX 600 ; N Scedilla ; B 76 -151 650 580 ;
|
||||
C -1 ; WX 600 ; N lcaron ; B 95 0 667 629 ;
|
||||
C -1 ; WX 600 ; N Kcommaaccent ; B 38 -250 671 562 ;
|
||||
C -1 ; WX 600 ; N Lacute ; B 47 0 607 805 ;
|
||||
C 153 ; WX 600 ; N trademark ; B 75 263 742 562 ;
|
||||
C -1 ; WX 600 ; N edotaccent ; B 106 -15 598 620 ;
|
||||
C 204 ; WX 600 ; N Igrave ; B 96 0 623 805 ;
|
||||
C -1 ; WX 600 ; N Imacron ; B 96 0 628 698 ;
|
||||
C -1 ; WX 600 ; N Lcaron ; B 47 0 632 562 ;
|
||||
C 189 ; WX 600 ; N onehalf ; B 65 -57 669 665 ;
|
||||
C -1 ; WX 600 ; N lessequal ; B 98 0 645 710 ;
|
||||
C 244 ; WX 600 ; N ocircumflex ; B 102 -15 588 654 ;
|
||||
C 241 ; WX 600 ; N ntilde ; B 26 0 629 606 ;
|
||||
C -1 ; WX 600 ; N Uhungarumlaut ; B 125 -18 761 805 ;
|
||||
C 201 ; WX 600 ; N Eacute ; B 53 0 670 805 ;
|
||||
C -1 ; WX 600 ; N emacron ; B 106 -15 600 565 ;
|
||||
C -1 ; WX 600 ; N gbreve ; B 61 -157 657 609 ;
|
||||
C 188 ; WX 600 ; N onequarter ; B 65 -57 674 665 ;
|
||||
C 138 ; WX 600 ; N Scaron ; B 76 -20 672 802 ;
|
||||
C -1 ; WX 600 ; N Scommaaccent ; B 76 -250 650 580 ;
|
||||
C -1 ; WX 600 ; N Ohungarumlaut ; B 94 -18 751 805 ;
|
||||
C 176 ; WX 600 ; N degree ; B 214 269 576 622 ;
|
||||
C 242 ; WX 600 ; N ograve ; B 102 -15 588 672 ;
|
||||
C -1 ; WX 600 ; N Ccaron ; B 93 -18 672 802 ;
|
||||
C 249 ; WX 600 ; N ugrave ; B 101 -15 572 672 ;
|
||||
C -1 ; WX 600 ; N radical ; B 85 -15 765 792 ;
|
||||
C -1 ; WX 600 ; N Dcaron ; B 43 0 645 802 ;
|
||||
C -1 ; WX 600 ; N rcommaaccent ; B 60 -250 636 441 ;
|
||||
C 209 ; WX 600 ; N Ntilde ; B 7 -13 712 729 ;
|
||||
C 245 ; WX 600 ; N otilde ; B 102 -15 629 606 ;
|
||||
C -1 ; WX 600 ; N Rcommaaccent ; B 38 -250 598 562 ;
|
||||
C -1 ; WX 600 ; N Lcommaaccent ; B 47 -250 607 562 ;
|
||||
C 195 ; WX 600 ; N Atilde ; B 3 0 655 729 ;
|
||||
C -1 ; WX 600 ; N Aogonek ; B 3 -172 607 562 ;
|
||||
C 197 ; WX 600 ; N Aring ; B 3 0 607 750 ;
|
||||
C 213 ; WX 600 ; N Otilde ; B 94 -18 655 729 ;
|
||||
C -1 ; WX 600 ; N zdotaccent ; B 99 0 593 620 ;
|
||||
C -1 ; WX 600 ; N Ecaron ; B 53 0 660 802 ;
|
||||
C -1 ; WX 600 ; N Iogonek ; B 96 -172 623 562 ;
|
||||
C -1 ; WX 600 ; N kcommaaccent ; B 58 -250 633 629 ;
|
||||
C -1 ; WX 600 ; N minus ; B 129 232 580 283 ;
|
||||
C 206 ; WX 600 ; N Icircumflex ; B 96 0 623 787 ;
|
||||
C -1 ; WX 600 ; N ncaron ; B 26 0 614 669 ;
|
||||
C -1 ; WX 600 ; N tcommaaccent ; B 165 -250 561 561 ;
|
||||
C 172 ; WX 600 ; N logicalnot ; B 155 108 591 369 ;
|
||||
C 246 ; WX 600 ; N odieresis ; B 102 -15 588 620 ;
|
||||
C 252 ; WX 600 ; N udieresis ; B 101 -15 575 620 ;
|
||||
C -1 ; WX 600 ; N notequal ; B 43 -16 621 529 ;
|
||||
C -1 ; WX 600 ; N gcommaaccent ; B 61 -157 657 708 ;
|
||||
C 240 ; WX 600 ; N eth ; B 102 -15 639 629 ;
|
||||
C 158 ; WX 600 ; N zcaron ; B 99 0 624 669 ;
|
||||
C -1 ; WX 600 ; N ncommaaccent ; B 26 -250 585 441 ;
|
||||
C 185 ; WX 600 ; N onesuperior ; B 231 249 491 622 ;
|
||||
C -1 ; WX 600 ; N imacron ; B 95 0 543 565 ;
|
||||
C 128 ; WX 600 ; N Euro ; B 0 0 0 0 ;
|
||||
EndCharMetrics
|
||||
EndFontMetrics
|
344
lib/dompdf/lib/fonts/Courier.afm
Normal file
344
lib/dompdf/lib/fonts/Courier.afm
Normal file
@ -0,0 +1,344 @@
|
||||
StartFontMetrics 4.1
|
||||
Comment Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.
|
||||
Comment Creation Date: Thu May 1 17:27:09 1997
|
||||
Comment UniqueID 43050
|
||||
Comment VMusage 39754 50779
|
||||
FontName Courier
|
||||
FullName Courier
|
||||
FamilyName Courier
|
||||
Weight Medium
|
||||
ItalicAngle 0
|
||||
IsFixedPitch true
|
||||
CharacterSet ExtendedRoman
|
||||
FontBBox -23 -250 715 805
|
||||
UnderlinePosition -100
|
||||
UnderlineThickness 50
|
||||
Version 003.000
|
||||
Notice Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.
|
||||
EncodingScheme WinAnsiEncoding
|
||||
CapHeight 562
|
||||
XHeight 426
|
||||
Ascender 629
|
||||
Descender -157
|
||||
StdHW 51
|
||||
StdVW 51
|
||||
StartCharMetrics 317
|
||||
C 32 ; WX 600 ; N space ; B 0 0 0 0 ;
|
||||
C 160 ; WX 600 ; N space ; B 0 0 0 0 ;
|
||||
C 33 ; WX 600 ; N exclam ; B 236 -15 364 572 ;
|
||||
C 34 ; WX 600 ; N quotedbl ; B 187 328 413 562 ;
|
||||
C 35 ; WX 600 ; N numbersign ; B 93 -32 507 639 ;
|
||||
C 36 ; WX 600 ; N dollar ; B 105 -126 496 662 ;
|
||||
C 37 ; WX 600 ; N percent ; B 81 -15 518 622 ;
|
||||
C 38 ; WX 600 ; N ampersand ; B 63 -15 538 543 ;
|
||||
C 146 ; WX 600 ; N quoteright ; B 213 328 376 562 ;
|
||||
C 40 ; WX 600 ; N parenleft ; B 269 -108 440 622 ;
|
||||
C 41 ; WX 600 ; N parenright ; B 160 -108 331 622 ;
|
||||
C 42 ; WX 600 ; N asterisk ; B 116 257 484 607 ;
|
||||
C 43 ; WX 600 ; N plus ; B 80 44 520 470 ;
|
||||
C 44 ; WX 600 ; N comma ; B 181 -112 344 122 ;
|
||||
C 45 ; WX 600 ; N hyphen ; B 103 231 497 285 ;
|
||||
C 173 ; WX 600 ; N hyphen ; B 103 231 497 285 ;
|
||||
C 46 ; WX 600 ; N period ; B 229 -15 371 109 ;
|
||||
C 47 ; WX 600 ; N slash ; B 125 -80 475 629 ;
|
||||
C 48 ; WX 600 ; N zero ; B 106 -15 494 622 ;
|
||||
C 49 ; WX 600 ; N one ; B 96 0 505 622 ;
|
||||
C 50 ; WX 600 ; N two ; B 70 0 471 622 ;
|
||||
C 51 ; WX 600 ; N three ; B 75 -15 466 622 ;
|
||||
C 52 ; WX 600 ; N four ; B 78 0 500 622 ;
|
||||
C 53 ; WX 600 ; N five ; B 92 -15 497 607 ;
|
||||
C 54 ; WX 600 ; N six ; B 111 -15 497 622 ;
|
||||
C 55 ; WX 600 ; N seven ; B 82 0 483 607 ;
|
||||
C 56 ; WX 600 ; N eight ; B 102 -15 498 622 ;
|
||||
C 57 ; WX 600 ; N nine ; B 96 -15 489 622 ;
|
||||
C 58 ; WX 600 ; N colon ; B 229 -15 371 385 ;
|
||||
C 59 ; WX 600 ; N semicolon ; B 181 -112 371 385 ;
|
||||
C 60 ; WX 600 ; N less ; B 41 42 519 472 ;
|
||||
C 61 ; WX 600 ; N equal ; B 80 138 520 376 ;
|
||||
C 62 ; WX 600 ; N greater ; B 66 42 544 472 ;
|
||||
C 63 ; WX 600 ; N question ; B 129 -15 492 572 ;
|
||||
C 64 ; WX 600 ; N at ; B 77 -15 533 622 ;
|
||||
C 65 ; WX 600 ; N A ; B 3 0 597 562 ;
|
||||
C 66 ; WX 600 ; N B ; B 43 0 559 562 ;
|
||||
C 67 ; WX 600 ; N C ; B 41 -18 540 580 ;
|
||||
C 68 ; WX 600 ; N D ; B 43 0 574 562 ;
|
||||
C 69 ; WX 600 ; N E ; B 53 0 550 562 ;
|
||||
C 70 ; WX 600 ; N F ; B 53 0 545 562 ;
|
||||
C 71 ; WX 600 ; N G ; B 31 -18 575 580 ;
|
||||
C 72 ; WX 600 ; N H ; B 32 0 568 562 ;
|
||||
C 73 ; WX 600 ; N I ; B 96 0 504 562 ;
|
||||
C 74 ; WX 600 ; N J ; B 34 -18 566 562 ;
|
||||
C 75 ; WX 600 ; N K ; B 38 0 582 562 ;
|
||||
C 76 ; WX 600 ; N L ; B 47 0 554 562 ;
|
||||
C 77 ; WX 600 ; N M ; B 4 0 596 562 ;
|
||||
C 78 ; WX 600 ; N N ; B 7 -13 593 562 ;
|
||||
C 79 ; WX 600 ; N O ; B 43 -18 557 580 ;
|
||||
C 80 ; WX 600 ; N P ; B 79 0 558 562 ;
|
||||
C 81 ; WX 600 ; N Q ; B 43 -138 557 580 ;
|
||||
C 82 ; WX 600 ; N R ; B 38 0 588 562 ;
|
||||
C 83 ; WX 600 ; N S ; B 72 -20 529 580 ;
|
||||
C 84 ; WX 600 ; N T ; B 38 0 563 562 ;
|
||||
C 85 ; WX 600 ; N U ; B 17 -18 583 562 ;
|
||||
C 86 ; WX 600 ; N V ; B -4 -13 604 562 ;
|
||||
C 87 ; WX 600 ; N W ; B -3 -13 603 562 ;
|
||||
C 88 ; WX 600 ; N X ; B 23 0 577 562 ;
|
||||
C 89 ; WX 600 ; N Y ; B 24 0 576 562 ;
|
||||
C 90 ; WX 600 ; N Z ; B 86 0 514 562 ;
|
||||
C 91 ; WX 600 ; N bracketleft ; B 269 -108 442 622 ;
|
||||
C 92 ; WX 600 ; N backslash ; B 118 -80 482 629 ;
|
||||
C 93 ; WX 600 ; N bracketright ; B 158 -108 331 622 ;
|
||||
C 94 ; WX 600 ; N asciicircum ; B 94 354 506 622 ;
|
||||
C 95 ; WX 600 ; N underscore ; B 0 -125 600 -75 ;
|
||||
C 145 ; WX 600 ; N quoteleft ; B 224 328 387 562 ;
|
||||
C 97 ; WX 600 ; N a ; B 53 -15 559 441 ;
|
||||
C 98 ; WX 600 ; N b ; B 14 -15 575 629 ;
|
||||
C 99 ; WX 600 ; N c ; B 66 -15 529 441 ;
|
||||
C 100 ; WX 600 ; N d ; B 45 -15 591 629 ;
|
||||
C 101 ; WX 600 ; N e ; B 66 -15 548 441 ;
|
||||
C 102 ; WX 600 ; N f ; B 114 0 531 629 ; L i fi ; L l fl ;
|
||||
C 103 ; WX 600 ; N g ; B 45 -157 566 441 ;
|
||||
C 104 ; WX 600 ; N h ; B 18 0 582 629 ;
|
||||
C 105 ; WX 600 ; N i ; B 95 0 505 657 ;
|
||||
C 106 ; WX 600 ; N j ; B 82 -157 410 657 ;
|
||||
C 107 ; WX 600 ; N k ; B 43 0 580 629 ;
|
||||
C 108 ; WX 600 ; N l ; B 95 0 505 629 ;
|
||||
C 109 ; WX 600 ; N m ; B -5 0 605 441 ;
|
||||
C 110 ; WX 600 ; N n ; B 26 0 575 441 ;
|
||||
C 111 ; WX 600 ; N o ; B 62 -15 538 441 ;
|
||||
C 112 ; WX 600 ; N p ; B 9 -157 555 441 ;
|
||||
C 113 ; WX 600 ; N q ; B 45 -157 591 441 ;
|
||||
C 114 ; WX 600 ; N r ; B 60 0 559 441 ;
|
||||
C 115 ; WX 600 ; N s ; B 80 -15 513 441 ;
|
||||
C 116 ; WX 600 ; N t ; B 87 -15 530 561 ;
|
||||
C 117 ; WX 600 ; N u ; B 21 -15 562 426 ;
|
||||
C 118 ; WX 600 ; N v ; B 10 -10 590 426 ;
|
||||
C 119 ; WX 600 ; N w ; B -4 -10 604 426 ;
|
||||
C 120 ; WX 600 ; N x ; B 20 0 580 426 ;
|
||||
C 121 ; WX 600 ; N y ; B 7 -157 592 426 ;
|
||||
C 122 ; WX 600 ; N z ; B 99 0 502 426 ;
|
||||
C 123 ; WX 600 ; N braceleft ; B 182 -108 437 622 ;
|
||||
C 124 ; WX 600 ; N bar ; B 275 -250 326 750 ;
|
||||
C 125 ; WX 600 ; N braceright ; B 163 -108 418 622 ;
|
||||
C 126 ; WX 600 ; N asciitilde ; B 63 197 540 320 ;
|
||||
C 161 ; WX 600 ; N exclamdown ; B 236 -157 364 430 ;
|
||||
C 162 ; WX 600 ; N cent ; B 96 -49 500 614 ;
|
||||
C 163 ; WX 600 ; N sterling ; B 84 -21 521 611 ;
|
||||
C -1 ; WX 600 ; N fraction ; B 92 -57 509 665 ;
|
||||
C 165 ; WX 600 ; N yen ; B 26 0 574 562 ;
|
||||
C 131 ; WX 600 ; N florin ; B 4 -143 539 622 ;
|
||||
C 167 ; WX 600 ; N section ; B 113 -78 488 580 ;
|
||||
C 164 ; WX 600 ; N currency ; B 73 58 527 506 ;
|
||||
C 39 ; WX 600 ; N quotesingle ; B 259 328 341 562 ;
|
||||
C 147 ; WX 600 ; N quotedblleft ; B 143 328 471 562 ;
|
||||
C 171 ; WX 600 ; N guillemotleft ; B 37 70 563 446 ;
|
||||
C 139 ; WX 600 ; N guilsinglleft ; B 149 70 451 446 ;
|
||||
C 155 ; WX 600 ; N guilsinglright ; B 149 70 451 446 ;
|
||||
C -1 ; WX 600 ; N fi ; B 3 0 597 629 ;
|
||||
C -1 ; WX 600 ; N fl ; B 3 0 597 629 ;
|
||||
C 150 ; WX 600 ; N endash ; B 75 231 525 285 ;
|
||||
C 134 ; WX 600 ; N dagger ; B 141 -78 459 580 ;
|
||||
C 135 ; WX 600 ; N daggerdbl ; B 141 -78 459 580 ;
|
||||
C 183 ; WX 600 ; N periodcentered ; B 222 189 378 327 ;
|
||||
C 182 ; WX 600 ; N paragraph ; B 50 -78 511 562 ;
|
||||
C 149 ; WX 600 ; N bullet ; B 172 130 428 383 ;
|
||||
C 130 ; WX 600 ; N quotesinglbase ; B 213 -134 376 100 ;
|
||||
C 132 ; WX 600 ; N quotedblbase ; B 143 -134 457 100 ;
|
||||
C 148 ; WX 600 ; N quotedblright ; B 143 328 457 562 ;
|
||||
C 187 ; WX 600 ; N guillemotright ; B 37 70 563 446 ;
|
||||
C 133 ; WX 600 ; N ellipsis ; B 37 -15 563 111 ;
|
||||
C 137 ; WX 600 ; N perthousand ; B 3 -15 600 622 ;
|
||||
C 191 ; WX 600 ; N questiondown ; B 108 -157 471 430 ;
|
||||
C 96 ; WX 600 ; N grave ; B 151 497 378 672 ;
|
||||
C 180 ; WX 600 ; N acute ; B 242 497 469 672 ;
|
||||
C 136 ; WX 600 ; N circumflex ; B 124 477 476 654 ;
|
||||
C 152 ; WX 600 ; N tilde ; B 105 489 503 606 ;
|
||||
C 175 ; WX 600 ; N macron ; B 120 525 480 565 ;
|
||||
C -1 ; WX 600 ; N breve ; B 153 501 447 609 ;
|
||||
C -1 ; WX 600 ; N dotaccent ; B 249 537 352 640 ;
|
||||
C 168 ; WX 600 ; N dieresis ; B 148 537 453 640 ;
|
||||
C -1 ; WX 600 ; N ring ; B 218 463 382 627 ;
|
||||
C 184 ; WX 600 ; N cedilla ; B 224 -151 362 10 ;
|
||||
C -1 ; WX 600 ; N hungarumlaut ; B 133 497 540 672 ;
|
||||
C -1 ; WX 600 ; N ogonek ; B 211 -172 407 4 ;
|
||||
C -1 ; WX 600 ; N caron ; B 124 492 476 669 ;
|
||||
C 151 ; WX 600 ; N emdash ; B 0 231 600 285 ;
|
||||
C 198 ; WX 600 ; N AE ; B 3 0 550 562 ;
|
||||
C 170 ; WX 600 ; N ordfeminine ; B 156 249 442 580 ;
|
||||
C -1 ; WX 600 ; N Lslash ; B 47 0 554 562 ;
|
||||
C 216 ; WX 600 ; N Oslash ; B 43 -80 557 629 ;
|
||||
C 140 ; WX 600 ; N OE ; B 7 0 567 562 ;
|
||||
C 186 ; WX 600 ; N ordmasculine ; B 157 249 443 580 ;
|
||||
C 230 ; WX 600 ; N ae ; B 19 -15 570 441 ;
|
||||
C -1 ; WX 600 ; N dotlessi ; B 95 0 505 426 ;
|
||||
C -1 ; WX 600 ; N lslash ; B 95 0 505 629 ;
|
||||
C 248 ; WX 600 ; N oslash ; B 62 -80 538 506 ;
|
||||
C 156 ; WX 600 ; N oe ; B 19 -15 559 441 ;
|
||||
C 223 ; WX 600 ; N germandbls ; B 48 -15 588 629 ;
|
||||
C 207 ; WX 600 ; N Idieresis ; B 96 0 504 753 ;
|
||||
C 233 ; WX 600 ; N eacute ; B 66 -15 548 672 ;
|
||||
C -1 ; WX 600 ; N abreve ; B 53 -15 559 609 ;
|
||||
C -1 ; WX 600 ; N uhungarumlaut ; B 21 -15 580 672 ;
|
||||
C -1 ; WX 600 ; N ecaron ; B 66 -15 548 669 ;
|
||||
C 159 ; WX 600 ; N Ydieresis ; B 24 0 576 753 ;
|
||||
C 247 ; WX 600 ; N divide ; B 87 48 513 467 ;
|
||||
C 221 ; WX 600 ; N Yacute ; B 24 0 576 805 ;
|
||||
C 194 ; WX 600 ; N Acircumflex ; B 3 0 597 787 ;
|
||||
C 225 ; WX 600 ; N aacute ; B 53 -15 559 672 ;
|
||||
C 219 ; WX 600 ; N Ucircumflex ; B 17 -18 583 787 ;
|
||||
C 253 ; WX 600 ; N yacute ; B 7 -157 592 672 ;
|
||||
C -1 ; WX 600 ; N scommaaccent ; B 80 -250 513 441 ;
|
||||
C 234 ; WX 600 ; N ecircumflex ; B 66 -15 548 654 ;
|
||||
C -1 ; WX 600 ; N Uring ; B 17 -18 583 760 ;
|
||||
C 220 ; WX 600 ; N Udieresis ; B 17 -18 583 753 ;
|
||||
C -1 ; WX 600 ; N aogonek ; B 53 -172 587 441 ;
|
||||
C 218 ; WX 600 ; N Uacute ; B 17 -18 583 805 ;
|
||||
C -1 ; WX 600 ; N uogonek ; B 21 -172 590 426 ;
|
||||
C 203 ; WX 600 ; N Edieresis ; B 53 0 550 753 ;
|
||||
C -1 ; WX 600 ; N Dcroat ; B 30 0 574 562 ;
|
||||
C -1 ; WX 600 ; N commaaccent ; B 198 -250 335 -58 ;
|
||||
C 169 ; WX 600 ; N copyright ; B 0 -18 600 580 ;
|
||||
C -1 ; WX 600 ; N Emacron ; B 53 0 550 698 ;
|
||||
C -1 ; WX 600 ; N ccaron ; B 66 -15 529 669 ;
|
||||
C 229 ; WX 600 ; N aring ; B 53 -15 559 627 ;
|
||||
C -1 ; WX 600 ; N Ncommaaccent ; B 7 -250 593 562 ;
|
||||
C -1 ; WX 600 ; N lacute ; B 95 0 505 805 ;
|
||||
C 224 ; WX 600 ; N agrave ; B 53 -15 559 672 ;
|
||||
C -1 ; WX 600 ; N Tcommaaccent ; B 38 -250 563 562 ;
|
||||
C -1 ; WX 600 ; N Cacute ; B 41 -18 540 805 ;
|
||||
C 227 ; WX 600 ; N atilde ; B 53 -15 559 606 ;
|
||||
C -1 ; WX 600 ; N Edotaccent ; B 53 0 550 753 ;
|
||||
C 154 ; WX 600 ; N scaron ; B 80 -15 513 669 ;
|
||||
C -1 ; WX 600 ; N scedilla ; B 80 -151 513 441 ;
|
||||
C 237 ; WX 600 ; N iacute ; B 95 0 505 672 ;
|
||||
C -1 ; WX 600 ; N lozenge ; B 18 0 443 706 ;
|
||||
C -1 ; WX 600 ; N Rcaron ; B 38 0 588 802 ;
|
||||
C -1 ; WX 600 ; N Gcommaaccent ; B 31 -250 575 580 ;
|
||||
C 251 ; WX 600 ; N ucircumflex ; B 21 -15 562 654 ;
|
||||
C 226 ; WX 600 ; N acircumflex ; B 53 -15 559 654 ;
|
||||
C -1 ; WX 600 ; N Amacron ; B 3 0 597 698 ;
|
||||
C -1 ; WX 600 ; N rcaron ; B 60 0 559 669 ;
|
||||
C 231 ; WX 600 ; N ccedilla ; B 66 -151 529 441 ;
|
||||
C -1 ; WX 600 ; N Zdotaccent ; B 86 0 514 753 ;
|
||||
C 222 ; WX 600 ; N Thorn ; B 79 0 538 562 ;
|
||||
C -1 ; WX 600 ; N Omacron ; B 43 -18 557 698 ;
|
||||
C -1 ; WX 600 ; N Racute ; B 38 0 588 805 ;
|
||||
C -1 ; WX 600 ; N Sacute ; B 72 -20 529 805 ;
|
||||
C -1 ; WX 600 ; N dcaron ; B 45 -15 715 629 ;
|
||||
C -1 ; WX 600 ; N Umacron ; B 17 -18 583 698 ;
|
||||
C -1 ; WX 600 ; N uring ; B 21 -15 562 627 ;
|
||||
C 179 ; WX 600 ; N threesuperior ; B 155 240 406 622 ;
|
||||
C 210 ; WX 600 ; N Ograve ; B 43 -18 557 805 ;
|
||||
C 192 ; WX 600 ; N Agrave ; B 3 0 597 805 ;
|
||||
C -1 ; WX 600 ; N Abreve ; B 3 0 597 732 ;
|
||||
C 215 ; WX 600 ; N multiply ; B 87 43 515 470 ;
|
||||
C 250 ; WX 600 ; N uacute ; B 21 -15 562 672 ;
|
||||
C -1 ; WX 600 ; N Tcaron ; B 38 0 563 802 ;
|
||||
C -1 ; WX 600 ; N partialdiff ; B 17 -38 459 710 ;
|
||||
C 255 ; WX 600 ; N ydieresis ; B 7 -157 592 620 ;
|
||||
C -1 ; WX 600 ; N Nacute ; B 7 -13 593 805 ;
|
||||
C 238 ; WX 600 ; N icircumflex ; B 94 0 505 654 ;
|
||||
C 202 ; WX 600 ; N Ecircumflex ; B 53 0 550 787 ;
|
||||
C 228 ; WX 600 ; N adieresis ; B 53 -15 559 620 ;
|
||||
C 235 ; WX 600 ; N edieresis ; B 66 -15 548 620 ;
|
||||
C -1 ; WX 600 ; N cacute ; B 66 -15 529 672 ;
|
||||
C -1 ; WX 600 ; N nacute ; B 26 0 575 672 ;
|
||||
C -1 ; WX 600 ; N umacron ; B 21 -15 562 565 ;
|
||||
C -1 ; WX 600 ; N Ncaron ; B 7 -13 593 802 ;
|
||||
C 205 ; WX 600 ; N Iacute ; B 96 0 504 805 ;
|
||||
C 177 ; WX 600 ; N plusminus ; B 87 44 513 558 ;
|
||||
C 166 ; WX 600 ; N brokenbar ; B 275 -175 326 675 ;
|
||||
C 174 ; WX 600 ; N registered ; B 0 -18 600 580 ;
|
||||
C -1 ; WX 600 ; N Gbreve ; B 31 -18 575 732 ;
|
||||
C -1 ; WX 600 ; N Idotaccent ; B 96 0 504 753 ;
|
||||
C -1 ; WX 600 ; N summation ; B 15 -10 585 706 ;
|
||||
C 200 ; WX 600 ; N Egrave ; B 53 0 550 805 ;
|
||||
C -1 ; WX 600 ; N racute ; B 60 0 559 672 ;
|
||||
C -1 ; WX 600 ; N omacron ; B 62 -15 538 565 ;
|
||||
C -1 ; WX 600 ; N Zacute ; B 86 0 514 805 ;
|
||||
C 142 ; WX 600 ; N Zcaron ; B 86 0 514 802 ;
|
||||
C -1 ; WX 600 ; N greaterequal ; B 98 0 502 710 ;
|
||||
C 208 ; WX 600 ; N Eth ; B 30 0 574 562 ;
|
||||
C 199 ; WX 600 ; N Ccedilla ; B 41 -151 540 580 ;
|
||||
C -1 ; WX 600 ; N lcommaaccent ; B 95 -250 505 629 ;
|
||||
C -1 ; WX 600 ; N tcaron ; B 87 -15 530 717 ;
|
||||
C -1 ; WX 600 ; N eogonek ; B 66 -172 548 441 ;
|
||||
C -1 ; WX 600 ; N Uogonek ; B 17 -172 583 562 ;
|
||||
C 193 ; WX 600 ; N Aacute ; B 3 0 597 805 ;
|
||||
C 196 ; WX 600 ; N Adieresis ; B 3 0 597 753 ;
|
||||
C 232 ; WX 600 ; N egrave ; B 66 -15 548 672 ;
|
||||
C -1 ; WX 600 ; N zacute ; B 99 0 502 672 ;
|
||||
C -1 ; WX 600 ; N iogonek ; B 95 -172 505 657 ;
|
||||
C 211 ; WX 600 ; N Oacute ; B 43 -18 557 805 ;
|
||||
C 243 ; WX 600 ; N oacute ; B 62 -15 538 672 ;
|
||||
C -1 ; WX 600 ; N amacron ; B 53 -15 559 565 ;
|
||||
C -1 ; WX 600 ; N sacute ; B 80 -15 513 672 ;
|
||||
C 239 ; WX 600 ; N idieresis ; B 95 0 505 620 ;
|
||||
C 212 ; WX 600 ; N Ocircumflex ; B 43 -18 557 787 ;
|
||||
C 217 ; WX 600 ; N Ugrave ; B 17 -18 583 805 ;
|
||||
C -1 ; WX 600 ; N Delta ; B 6 0 598 688 ;
|
||||
C 254 ; WX 600 ; N thorn ; B -6 -157 555 629 ;
|
||||
C 178 ; WX 600 ; N twosuperior ; B 177 249 424 622 ;
|
||||
C 214 ; WX 600 ; N Odieresis ; B 43 -18 557 753 ;
|
||||
C 181 ; WX 600 ; N mu ; B 21 -157 562 426 ;
|
||||
C 236 ; WX 600 ; N igrave ; B 95 0 505 672 ;
|
||||
C -1 ; WX 600 ; N ohungarumlaut ; B 62 -15 580 672 ;
|
||||
C -1 ; WX 600 ; N Eogonek ; B 53 -172 561 562 ;
|
||||
C -1 ; WX 600 ; N dcroat ; B 45 -15 591 629 ;
|
||||
C 190 ; WX 600 ; N threequarters ; B 8 -56 593 666 ;
|
||||
C -1 ; WX 600 ; N Scedilla ; B 72 -151 529 580 ;
|
||||
C -1 ; WX 600 ; N lcaron ; B 95 0 533 629 ;
|
||||
C -1 ; WX 600 ; N Kcommaaccent ; B 38 -250 582 562 ;
|
||||
C -1 ; WX 600 ; N Lacute ; B 47 0 554 805 ;
|
||||
C 153 ; WX 600 ; N trademark ; B -23 263 623 562 ;
|
||||
C -1 ; WX 600 ; N edotaccent ; B 66 -15 548 620 ;
|
||||
C 204 ; WX 600 ; N Igrave ; B 96 0 504 805 ;
|
||||
C -1 ; WX 600 ; N Imacron ; B 96 0 504 698 ;
|
||||
C -1 ; WX 600 ; N Lcaron ; B 47 0 554 562 ;
|
||||
C 189 ; WX 600 ; N onehalf ; B 0 -57 611 665 ;
|
||||
C -1 ; WX 600 ; N lessequal ; B 98 0 502 710 ;
|
||||
C 244 ; WX 600 ; N ocircumflex ; B 62 -15 538 654 ;
|
||||
C 241 ; WX 600 ; N ntilde ; B 26 0 575 606 ;
|
||||
C -1 ; WX 600 ; N Uhungarumlaut ; B 17 -18 590 805 ;
|
||||
C 201 ; WX 600 ; N Eacute ; B 53 0 550 805 ;
|
||||
C -1 ; WX 600 ; N emacron ; B 66 -15 548 565 ;
|
||||
C -1 ; WX 600 ; N gbreve ; B 45 -157 566 609 ;
|
||||
C 188 ; WX 600 ; N onequarter ; B 0 -57 600 665 ;
|
||||
C 138 ; WX 600 ; N Scaron ; B 72 -20 529 802 ;
|
||||
C -1 ; WX 600 ; N Scommaaccent ; B 72 -250 529 580 ;
|
||||
C -1 ; WX 600 ; N Ohungarumlaut ; B 43 -18 580 805 ;
|
||||
C 176 ; WX 600 ; N degree ; B 123 269 477 622 ;
|
||||
C 242 ; WX 600 ; N ograve ; B 62 -15 538 672 ;
|
||||
C -1 ; WX 600 ; N Ccaron ; B 41 -18 540 802 ;
|
||||
C 249 ; WX 600 ; N ugrave ; B 21 -15 562 672 ;
|
||||
C -1 ; WX 600 ; N radical ; B 3 -15 597 792 ;
|
||||
C -1 ; WX 600 ; N Dcaron ; B 43 0 574 802 ;
|
||||
C -1 ; WX 600 ; N rcommaaccent ; B 60 -250 559 441 ;
|
||||
C 209 ; WX 600 ; N Ntilde ; B 7 -13 593 729 ;
|
||||
C 245 ; WX 600 ; N otilde ; B 62 -15 538 606 ;
|
||||
C -1 ; WX 600 ; N Rcommaaccent ; B 38 -250 588 562 ;
|
||||
C -1 ; WX 600 ; N Lcommaaccent ; B 47 -250 554 562 ;
|
||||
C 195 ; WX 600 ; N Atilde ; B 3 0 597 729 ;
|
||||
C -1 ; WX 600 ; N Aogonek ; B 3 -172 608 562 ;
|
||||
C 197 ; WX 600 ; N Aring ; B 3 0 597 750 ;
|
||||
C 213 ; WX 600 ; N Otilde ; B 43 -18 557 729 ;
|
||||
C -1 ; WX 600 ; N zdotaccent ; B 99 0 502 620 ;
|
||||
C -1 ; WX 600 ; N Ecaron ; B 53 0 550 802 ;
|
||||
C -1 ; WX 600 ; N Iogonek ; B 96 -172 504 562 ;
|
||||
C -1 ; WX 600 ; N kcommaaccent ; B 43 -250 580 629 ;
|
||||
C -1 ; WX 600 ; N minus ; B 80 232 520 283 ;
|
||||
C 206 ; WX 600 ; N Icircumflex ; B 96 0 504 787 ;
|
||||
C -1 ; WX 600 ; N ncaron ; B 26 0 575 669 ;
|
||||
C -1 ; WX 600 ; N tcommaaccent ; B 87 -250 530 561 ;
|
||||
C 172 ; WX 600 ; N logicalnot ; B 87 108 513 369 ;
|
||||
C 246 ; WX 600 ; N odieresis ; B 62 -15 538 620 ;
|
||||
C 252 ; WX 600 ; N udieresis ; B 21 -15 562 620 ;
|
||||
C -1 ; WX 600 ; N notequal ; B 15 -16 540 529 ;
|
||||
C -1 ; WX 600 ; N gcommaaccent ; B 45 -157 566 708 ;
|
||||
C 240 ; WX 600 ; N eth ; B 62 -15 538 629 ;
|
||||
C 158 ; WX 600 ; N zcaron ; B 99 0 502 669 ;
|
||||
C -1 ; WX 600 ; N ncommaaccent ; B 26 -250 575 441 ;
|
||||
C 185 ; WX 600 ; N onesuperior ; B 172 249 428 622 ;
|
||||
C -1 ; WX 600 ; N imacron ; B 95 0 505 565 ;
|
||||
C 128 ; WX 600 ; N Euro ; B 0 0 0 0 ;
|
||||
EndCharMetrics
|
||||
EndFontMetrics
|
BIN
lib/dompdf/lib/fonts/DejaVuSans-Bold.ttf
Normal file
BIN
lib/dompdf/lib/fonts/DejaVuSans-Bold.ttf
Normal file
Binary file not shown.
6067
lib/dompdf/lib/fonts/DejaVuSans-Bold.ufm
Normal file
6067
lib/dompdf/lib/fonts/DejaVuSans-Bold.ufm
Normal file
File diff suppressed because it is too large
Load Diff
BIN
lib/dompdf/lib/fonts/DejaVuSans-BoldOblique.ttf
Normal file
BIN
lib/dompdf/lib/fonts/DejaVuSans-BoldOblique.ttf
Normal file
Binary file not shown.
5712
lib/dompdf/lib/fonts/DejaVuSans-BoldOblique.ufm
Normal file
5712
lib/dompdf/lib/fonts/DejaVuSans-BoldOblique.ufm
Normal file
File diff suppressed because it is too large
Load Diff
BIN
lib/dompdf/lib/fonts/DejaVuSans-Oblique.ttf
Normal file
BIN
lib/dompdf/lib/fonts/DejaVuSans-Oblique.ttf
Normal file
Binary file not shown.
5268
lib/dompdf/lib/fonts/DejaVuSans-Oblique.ufm
Normal file
5268
lib/dompdf/lib/fonts/DejaVuSans-Oblique.ufm
Normal file
File diff suppressed because it is too large
Load Diff
BIN
lib/dompdf/lib/fonts/DejaVuSans.ttf
Normal file
BIN
lib/dompdf/lib/fonts/DejaVuSans.ttf
Normal file
Binary file not shown.
6661
lib/dompdf/lib/fonts/DejaVuSans.ufm
Normal file
6661
lib/dompdf/lib/fonts/DejaVuSans.ufm
Normal file
File diff suppressed because it is too large
Load Diff
BIN
lib/dompdf/lib/fonts/DejaVuSansMono-Bold.ttf
Normal file
BIN
lib/dompdf/lib/fonts/DejaVuSansMono-Bold.ttf
Normal file
Binary file not shown.
3285
lib/dompdf/lib/fonts/DejaVuSansMono-Bold.ufm
Normal file
3285
lib/dompdf/lib/fonts/DejaVuSansMono-Bold.ufm
Normal file
File diff suppressed because it is too large
Load Diff
BIN
lib/dompdf/lib/fonts/DejaVuSansMono-BoldOblique.ttf
Normal file
BIN
lib/dompdf/lib/fonts/DejaVuSansMono-BoldOblique.ttf
Normal file
Binary file not shown.
2707
lib/dompdf/lib/fonts/DejaVuSansMono-BoldOblique.ufm
Normal file
2707
lib/dompdf/lib/fonts/DejaVuSansMono-BoldOblique.ufm
Normal file
File diff suppressed because it is too large
Load Diff
BIN
lib/dompdf/lib/fonts/DejaVuSansMono-Oblique.ttf
Normal file
BIN
lib/dompdf/lib/fonts/DejaVuSansMono-Oblique.ttf
Normal file
Binary file not shown.
2707
lib/dompdf/lib/fonts/DejaVuSansMono-Oblique.ufm
Normal file
2707
lib/dompdf/lib/fonts/DejaVuSansMono-Oblique.ufm
Normal file
File diff suppressed because it is too large
Load Diff
BIN
lib/dompdf/lib/fonts/DejaVuSansMono.ttf
Normal file
BIN
lib/dompdf/lib/fonts/DejaVuSansMono.ttf
Normal file
Binary file not shown.
3284
lib/dompdf/lib/fonts/DejaVuSansMono.ufm
Normal file
3284
lib/dompdf/lib/fonts/DejaVuSansMono.ufm
Normal file
File diff suppressed because it is too large
Load Diff
BIN
lib/dompdf/lib/fonts/DejaVuSerif-Bold.ttf
Normal file
BIN
lib/dompdf/lib/fonts/DejaVuSerif-Bold.ttf
Normal file
Binary file not shown.
4013
lib/dompdf/lib/fonts/DejaVuSerif-Bold.ufm
Normal file
4013
lib/dompdf/lib/fonts/DejaVuSerif-Bold.ufm
Normal file
File diff suppressed because it is too large
Load Diff
BIN
lib/dompdf/lib/fonts/DejaVuSerif-BoldItalic.ttf
Normal file
BIN
lib/dompdf/lib/fonts/DejaVuSerif-BoldItalic.ttf
Normal file
Binary file not shown.
3892
lib/dompdf/lib/fonts/DejaVuSerif-BoldItalic.ufm
Normal file
3892
lib/dompdf/lib/fonts/DejaVuSerif-BoldItalic.ufm
Normal file
File diff suppressed because it is too large
Load Diff
BIN
lib/dompdf/lib/fonts/DejaVuSerif-Italic.ttf
Normal file
BIN
lib/dompdf/lib/fonts/DejaVuSerif-Italic.ttf
Normal file
Binary file not shown.
3883
lib/dompdf/lib/fonts/DejaVuSerif-Italic.ufm
Normal file
3883
lib/dompdf/lib/fonts/DejaVuSerif-Italic.ufm
Normal file
File diff suppressed because it is too large
Load Diff
BIN
lib/dompdf/lib/fonts/DejaVuSerif.ttf
Normal file
BIN
lib/dompdf/lib/fonts/DejaVuSerif.ttf
Normal file
Binary file not shown.
4012
lib/dompdf/lib/fonts/DejaVuSerif.ufm
Normal file
4012
lib/dompdf/lib/fonts/DejaVuSerif.ufm
Normal file
File diff suppressed because it is too large
Load Diff
2829
lib/dompdf/lib/fonts/Helvetica-Bold.afm
Normal file
2829
lib/dompdf/lib/fonts/Helvetica-Bold.afm
Normal file
File diff suppressed because it is too large
Load Diff
2829
lib/dompdf/lib/fonts/Helvetica-BoldOblique.afm
Normal file
2829
lib/dompdf/lib/fonts/Helvetica-BoldOblique.afm
Normal file
File diff suppressed because it is too large
Load Diff
3053
lib/dompdf/lib/fonts/Helvetica-Oblique.afm
Normal file
3053
lib/dompdf/lib/fonts/Helvetica-Oblique.afm
Normal file
File diff suppressed because it is too large
Load Diff
3053
lib/dompdf/lib/fonts/Helvetica.afm
Normal file
3053
lib/dompdf/lib/fonts/Helvetica.afm
Normal file
File diff suppressed because it is too large
Load Diff
213
lib/dompdf/lib/fonts/Symbol.afm
Normal file
213
lib/dompdf/lib/fonts/Symbol.afm
Normal file
@ -0,0 +1,213 @@
|
||||
StartFontMetrics 4.1
|
||||
Comment Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All rights reserved.
|
||||
Comment Creation Date: Thu May 1 15:12:25 1997
|
||||
Comment UniqueID 43064
|
||||
Comment VMusage 30820 39997
|
||||
FontName Symbol
|
||||
FullName Symbol
|
||||
FamilyName Symbol
|
||||
Weight Medium
|
||||
ItalicAngle 0
|
||||
IsFixedPitch false
|
||||
CharacterSet Special
|
||||
FontBBox -180 -293 1090 1010
|
||||
UnderlinePosition -100
|
||||
UnderlineThickness 50
|
||||
Version 001.008
|
||||
Notice Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All rights reserved.
|
||||
EncodingScheme FontSpecific
|
||||
StdHW 92
|
||||
StdVW 85
|
||||
StartCharMetrics 190
|
||||
C 32 ; WX 250 ; N space ; B 0 0 0 0 ;
|
||||
C 33 ; WX 333 ; N exclam ; B 128 -17 240 672 ;
|
||||
C 34 ; WX 713 ; N universal ; B 31 0 681 705 ;
|
||||
C 35 ; WX 500 ; N numbersign ; B 20 -16 481 673 ;
|
||||
C 36 ; WX 549 ; N existential ; B 25 0 478 707 ;
|
||||
C 37 ; WX 833 ; N percent ; B 63 -36 771 655 ;
|
||||
C 38 ; WX 778 ; N ampersand ; B 41 -18 750 661 ;
|
||||
C 39 ; WX 439 ; N suchthat ; B 48 -17 414 500 ;
|
||||
C 40 ; WX 333 ; N parenleft ; B 53 -191 300 673 ;
|
||||
C 41 ; WX 333 ; N parenright ; B 30 -191 277 673 ;
|
||||
C 42 ; WX 500 ; N asteriskmath ; B 65 134 427 551 ;
|
||||
C 43 ; WX 549 ; N plus ; B 10 0 539 533 ;
|
||||
C 44 ; WX 250 ; N comma ; B 56 -152 194 104 ;
|
||||
C 45 ; WX 549 ; N minus ; B 11 233 535 288 ;
|
||||
C 46 ; WX 250 ; N period ; B 69 -17 181 95 ;
|
||||
C 47 ; WX 278 ; N slash ; B 0 -18 254 646 ;
|
||||
C 48 ; WX 500 ; N zero ; B 24 -14 476 685 ;
|
||||
C 49 ; WX 500 ; N one ; B 117 0 390 673 ;
|
||||
C 50 ; WX 500 ; N two ; B 25 0 475 685 ;
|
||||
C 51 ; WX 500 ; N three ; B 43 -14 435 685 ;
|
||||
C 52 ; WX 500 ; N four ; B 15 0 469 685 ;
|
||||
C 53 ; WX 500 ; N five ; B 32 -14 445 690 ;
|
||||
C 54 ; WX 500 ; N six ; B 34 -14 468 685 ;
|
||||
C 55 ; WX 500 ; N seven ; B 24 -16 448 673 ;
|
||||
C 56 ; WX 500 ; N eight ; B 56 -14 445 685 ;
|
||||
C 57 ; WX 500 ; N nine ; B 30 -18 459 685 ;
|
||||
C 58 ; WX 278 ; N colon ; B 81 -17 193 460 ;
|
||||
C 59 ; WX 278 ; N semicolon ; B 83 -152 221 460 ;
|
||||
C 60 ; WX 549 ; N less ; B 26 0 523 522 ;
|
||||
C 61 ; WX 549 ; N equal ; B 11 141 537 390 ;
|
||||
C 62 ; WX 549 ; N greater ; B 26 0 523 522 ;
|
||||
C 63 ; WX 444 ; N question ; B 70 -17 412 686 ;
|
||||
C 64 ; WX 549 ; N congruent ; B 11 0 537 475 ;
|
||||
C 65 ; WX 722 ; N Alpha ; B 4 0 684 673 ;
|
||||
C 66 ; WX 667 ; N Beta ; B 29 0 592 673 ;
|
||||
C 67 ; WX 722 ; N Chi ; B -9 0 704 673 ;
|
||||
C 68 ; WX 612 ; N Delta ; B 6 0 608 688 ;
|
||||
C 69 ; WX 611 ; N Epsilon ; B 32 0 617 673 ;
|
||||
C 70 ; WX 763 ; N Phi ; B 26 0 741 673 ;
|
||||
C 71 ; WX 603 ; N Gamma ; B 24 0 609 673 ;
|
||||
C 72 ; WX 722 ; N Eta ; B 39 0 729 673 ;
|
||||
C 73 ; WX 333 ; N Iota ; B 32 0 316 673 ;
|
||||
C 74 ; WX 631 ; N theta1 ; B 18 -18 623 689 ;
|
||||
C 75 ; WX 722 ; N Kappa ; B 35 0 722 673 ;
|
||||
C 76 ; WX 686 ; N Lambda ; B 6 0 680 688 ;
|
||||
C 77 ; WX 889 ; N Mu ; B 28 0 887 673 ;
|
||||
C 78 ; WX 722 ; N Nu ; B 29 -8 720 673 ;
|
||||
C 79 ; WX 722 ; N Omicron ; B 41 -17 715 685 ;
|
||||
C 80 ; WX 768 ; N Pi ; B 25 0 745 673 ;
|
||||
C 81 ; WX 741 ; N Theta ; B 41 -17 715 685 ;
|
||||
C 82 ; WX 556 ; N Rho ; B 28 0 563 673 ;
|
||||
C 83 ; WX 592 ; N Sigma ; B 5 0 589 673 ;
|
||||
C 84 ; WX 611 ; N Tau ; B 33 0 607 673 ;
|
||||
C 85 ; WX 690 ; N Upsilon ; B -8 0 694 673 ;
|
||||
C 86 ; WX 439 ; N sigma1 ; B 40 -233 436 500 ;
|
||||
C 87 ; WX 768 ; N Omega ; B 34 0 736 688 ;
|
||||
C 88 ; WX 645 ; N Xi ; B 40 0 599 673 ;
|
||||
C 89 ; WX 795 ; N Psi ; B 15 0 781 684 ;
|
||||
C 90 ; WX 611 ; N Zeta ; B 44 0 636 673 ;
|
||||
C 91 ; WX 333 ; N bracketleft ; B 86 -155 299 674 ;
|
||||
C 92 ; WX 863 ; N therefore ; B 163 0 701 487 ;
|
||||
C 93 ; WX 333 ; N bracketright ; B 33 -155 246 674 ;
|
||||
C 94 ; WX 658 ; N perpendicular ; B 15 0 652 674 ;
|
||||
C 95 ; WX 500 ; N underscore ; B -2 -125 502 -75 ;
|
||||
C 96 ; WX 500 ; N radicalex ; B 480 881 1090 917 ;
|
||||
C 97 ; WX 631 ; N alpha ; B 41 -18 622 500 ;
|
||||
C 98 ; WX 549 ; N beta ; B 61 -223 515 741 ;
|
||||
C 99 ; WX 549 ; N chi ; B 12 -231 522 499 ;
|
||||
C 100 ; WX 494 ; N delta ; B 40 -19 481 740 ;
|
||||
C 101 ; WX 439 ; N epsilon ; B 22 -19 427 502 ;
|
||||
C 102 ; WX 521 ; N phi ; B 28 -224 492 673 ;
|
||||
C 103 ; WX 411 ; N gamma ; B 5 -225 484 499 ;
|
||||
C 104 ; WX 603 ; N eta ; B 0 -202 527 514 ;
|
||||
C 105 ; WX 329 ; N iota ; B 0 -17 301 503 ;
|
||||
C 106 ; WX 603 ; N phi1 ; B 36 -224 587 499 ;
|
||||
C 107 ; WX 549 ; N kappa ; B 33 0 558 501 ;
|
||||
C 108 ; WX 549 ; N lambda ; B 24 -17 548 739 ;
|
||||
C 109 ; WX 576 ; N mu ; B 33 -223 567 500 ;
|
||||
C 110 ; WX 521 ; N nu ; B -9 -16 475 507 ;
|
||||
C 111 ; WX 549 ; N omicron ; B 35 -19 501 499 ;
|
||||
C 112 ; WX 549 ; N pi ; B 10 -19 530 487 ;
|
||||
C 113 ; WX 521 ; N theta ; B 43 -17 485 690 ;
|
||||
C 114 ; WX 549 ; N rho ; B 50 -230 490 499 ;
|
||||
C 115 ; WX 603 ; N sigma ; B 30 -21 588 500 ;
|
||||
C 116 ; WX 439 ; N tau ; B 10 -19 418 500 ;
|
||||
C 117 ; WX 576 ; N upsilon ; B 7 -18 535 507 ;
|
||||
C 118 ; WX 713 ; N omega1 ; B 12 -18 671 583 ;
|
||||
C 119 ; WX 686 ; N omega ; B 42 -17 684 500 ;
|
||||
C 120 ; WX 493 ; N xi ; B 27 -224 469 766 ;
|
||||
C 121 ; WX 686 ; N psi ; B 12 -228 701 500 ;
|
||||
C 122 ; WX 494 ; N zeta ; B 60 -225 467 756 ;
|
||||
C 123 ; WX 480 ; N braceleft ; B 58 -183 397 673 ;
|
||||
C 124 ; WX 200 ; N bar ; B 65 -293 135 707 ;
|
||||
C 125 ; WX 480 ; N braceright ; B 79 -183 418 673 ;
|
||||
C 126 ; WX 549 ; N similar ; B 17 203 529 307 ;
|
||||
C 160 ; WX 750 ; N Euro ; B 20 -12 714 685 ;
|
||||
C 161 ; WX 620 ; N Upsilon1 ; B -2 0 610 685 ;
|
||||
C 162 ; WX 247 ; N minute ; B 27 459 228 735 ;
|
||||
C 163 ; WX 549 ; N lessequal ; B 29 0 526 639 ;
|
||||
C 164 ; WX 167 ; N fraction ; B -180 -12 340 677 ;
|
||||
C 165 ; WX 713 ; N infinity ; B 26 124 688 404 ;
|
||||
C 166 ; WX 500 ; N florin ; B 2 -193 494 686 ;
|
||||
C 167 ; WX 753 ; N club ; B 86 -26 660 533 ;
|
||||
C 168 ; WX 753 ; N diamond ; B 142 -36 600 550 ;
|
||||
C 169 ; WX 753 ; N heart ; B 117 -33 631 532 ;
|
||||
C 170 ; WX 753 ; N spade ; B 113 -36 629 548 ;
|
||||
C 171 ; WX 1042 ; N arrowboth ; B 24 -15 1024 511 ;
|
||||
C 172 ; WX 987 ; N arrowleft ; B 32 -15 942 511 ;
|
||||
C 173 ; WX 603 ; N arrowup ; B 45 0 571 910 ;
|
||||
C 174 ; WX 987 ; N arrowright ; B 49 -15 959 511 ;
|
||||
C 175 ; WX 603 ; N arrowdown ; B 45 -22 571 888 ;
|
||||
C 176 ; WX 400 ; N degree ; B 50 385 350 685 ;
|
||||
C 177 ; WX 549 ; N plusminus ; B 10 0 539 645 ;
|
||||
C 178 ; WX 411 ; N second ; B 20 459 413 737 ;
|
||||
C 179 ; WX 549 ; N greaterequal ; B 29 0 526 639 ;
|
||||
C 180 ; WX 549 ; N multiply ; B 17 8 533 524 ;
|
||||
C 181 ; WX 713 ; N proportional ; B 27 123 639 404 ;
|
||||
C 182 ; WX 494 ; N partialdiff ; B 26 -20 462 746 ;
|
||||
C 183 ; WX 460 ; N bullet ; B 50 113 410 473 ;
|
||||
C 184 ; WX 549 ; N divide ; B 10 71 536 456 ;
|
||||
C 185 ; WX 549 ; N notequal ; B 15 -25 540 549 ;
|
||||
C 186 ; WX 549 ; N equivalence ; B 14 82 538 443 ;
|
||||
C 187 ; WX 549 ; N approxequal ; B 14 135 527 394 ;
|
||||
C 188 ; WX 1000 ; N ellipsis ; B 111 -17 889 95 ;
|
||||
C 189 ; WX 603 ; N arrowvertex ; B 280 -120 336 1010 ;
|
||||
C 190 ; WX 1000 ; N arrowhorizex ; B -60 220 1050 276 ;
|
||||
C 191 ; WX 658 ; N carriagereturn ; B 15 -16 602 629 ;
|
||||
C 192 ; WX 823 ; N aleph ; B 175 -18 661 658 ;
|
||||
C 193 ; WX 686 ; N Ifraktur ; B 10 -53 578 740 ;
|
||||
C 194 ; WX 795 ; N Rfraktur ; B 26 -15 759 734 ;
|
||||
C 195 ; WX 987 ; N weierstrass ; B 159 -211 870 573 ;
|
||||
C 196 ; WX 768 ; N circlemultiply ; B 43 -17 733 673 ;
|
||||
C 197 ; WX 768 ; N circleplus ; B 43 -15 733 675 ;
|
||||
C 198 ; WX 823 ; N emptyset ; B 39 -24 781 719 ;
|
||||
C 199 ; WX 768 ; N intersection ; B 40 0 732 509 ;
|
||||
C 200 ; WX 768 ; N union ; B 40 -17 732 492 ;
|
||||
C 201 ; WX 713 ; N propersuperset ; B 20 0 673 470 ;
|
||||
C 202 ; WX 713 ; N reflexsuperset ; B 20 -125 673 470 ;
|
||||
C 203 ; WX 713 ; N notsubset ; B 36 -70 690 540 ;
|
||||
C 204 ; WX 713 ; N propersubset ; B 37 0 690 470 ;
|
||||
C 205 ; WX 713 ; N reflexsubset ; B 37 -125 690 470 ;
|
||||
C 206 ; WX 713 ; N element ; B 45 0 505 468 ;
|
||||
C 207 ; WX 713 ; N notelement ; B 45 -58 505 555 ;
|
||||
C 208 ; WX 768 ; N angle ; B 26 0 738 673 ;
|
||||
C 209 ; WX 713 ; N gradient ; B 36 -19 681 718 ;
|
||||
C 210 ; WX 790 ; N registerserif ; B 50 -17 740 673 ;
|
||||
C 211 ; WX 790 ; N copyrightserif ; B 51 -15 741 675 ;
|
||||
C 212 ; WX 890 ; N trademarkserif ; B 18 293 855 673 ;
|
||||
C 213 ; WX 823 ; N product ; B 25 -101 803 751 ;
|
||||
C 214 ; WX 549 ; N radical ; B 10 -38 515 917 ;
|
||||
C 215 ; WX 250 ; N dotmath ; B 69 210 169 310 ;
|
||||
C 216 ; WX 713 ; N logicalnot ; B 15 0 680 288 ;
|
||||
C 217 ; WX 603 ; N logicaland ; B 23 0 583 454 ;
|
||||
C 218 ; WX 603 ; N logicalor ; B 30 0 578 477 ;
|
||||
C 219 ; WX 1042 ; N arrowdblboth ; B 27 -20 1023 510 ;
|
||||
C 220 ; WX 987 ; N arrowdblleft ; B 30 -15 939 513 ;
|
||||
C 221 ; WX 603 ; N arrowdblup ; B 39 2 567 911 ;
|
||||
C 222 ; WX 987 ; N arrowdblright ; B 45 -20 954 508 ;
|
||||
C 223 ; WX 603 ; N arrowdbldown ; B 44 -19 572 890 ;
|
||||
C 224 ; WX 494 ; N lozenge ; B 18 0 466 745 ;
|
||||
C 225 ; WX 329 ; N angleleft ; B 25 -198 306 746 ;
|
||||
C 226 ; WX 790 ; N registersans ; B 50 -20 740 670 ;
|
||||
C 227 ; WX 790 ; N copyrightsans ; B 49 -15 739 675 ;
|
||||
C 228 ; WX 786 ; N trademarksans ; B 5 293 725 673 ;
|
||||
C 229 ; WX 713 ; N summation ; B 14 -108 695 752 ;
|
||||
C 230 ; WX 384 ; N parenlefttp ; B 24 -293 436 926 ;
|
||||
C 231 ; WX 384 ; N parenleftex ; B 24 -85 108 925 ;
|
||||
C 232 ; WX 384 ; N parenleftbt ; B 24 -293 436 926 ;
|
||||
C 233 ; WX 384 ; N bracketlefttp ; B 0 -80 349 926 ;
|
||||
C 234 ; WX 384 ; N bracketleftex ; B 0 -79 77 925 ;
|
||||
C 235 ; WX 384 ; N bracketleftbt ; B 0 -80 349 926 ;
|
||||
C 236 ; WX 494 ; N bracelefttp ; B 209 -85 445 925 ;
|
||||
C 237 ; WX 494 ; N braceleftmid ; B 20 -85 284 935 ;
|
||||
C 238 ; WX 494 ; N braceleftbt ; B 209 -75 445 935 ;
|
||||
C 239 ; WX 494 ; N braceex ; B 209 -85 284 935 ;
|
||||
C 241 ; WX 329 ; N angleright ; B 21 -198 302 746 ;
|
||||
C 242 ; WX 274 ; N integral ; B 2 -107 291 916 ;
|
||||
C 243 ; WX 686 ; N integraltp ; B 308 -88 675 920 ;
|
||||
C 244 ; WX 686 ; N integralex ; B 308 -88 378 975 ;
|
||||
C 245 ; WX 686 ; N integralbt ; B 11 -87 378 921 ;
|
||||
C 246 ; WX 384 ; N parenrighttp ; B 54 -293 466 926 ;
|
||||
C 247 ; WX 384 ; N parenrightex ; B 382 -85 466 925 ;
|
||||
C 248 ; WX 384 ; N parenrightbt ; B 54 -293 466 926 ;
|
||||
C 249 ; WX 384 ; N bracketrighttp ; B 22 -80 371 926 ;
|
||||
C 250 ; WX 384 ; N bracketrightex ; B 294 -79 371 925 ;
|
||||
C 251 ; WX 384 ; N bracketrightbt ; B 22 -80 371 926 ;
|
||||
C 252 ; WX 494 ; N bracerighttp ; B 48 -85 284 925 ;
|
||||
C 253 ; WX 494 ; N bracerightmid ; B 209 -85 473 935 ;
|
||||
C 254 ; WX 494 ; N bracerightbt ; B 48 -75 284 935 ;
|
||||
C -1 ; WX 790 ; N apple ; B 56 -3 733 808 ;
|
||||
EndCharMetrics
|
||||
EndFontMetrics
|
2590
lib/dompdf/lib/fonts/Times-Bold.afm
Normal file
2590
lib/dompdf/lib/fonts/Times-Bold.afm
Normal file
File diff suppressed because it is too large
Load Diff
572
lib/dompdf/lib/fonts/Times-Bold.afm.php
Normal file
572
lib/dompdf/lib/fonts/Times-Bold.afm.php
Normal file
@ -0,0 +1,572 @@
|
||||
<?php return array (
|
||||
'codeToName' =>
|
||||
array (
|
||||
32 => 'space',
|
||||
160 => 'space',
|
||||
33 => 'exclam',
|
||||
34 => 'quotedbl',
|
||||
35 => 'numbersign',
|
||||
36 => 'dollar',
|
||||
37 => 'percent',
|
||||
38 => 'ampersand',
|
||||
146 => 'quoteright',
|
||||
40 => 'parenleft',
|
||||
41 => 'parenright',
|
||||
42 => 'asterisk',
|
||||
43 => 'plus',
|
||||
44 => 'comma',
|
||||
45 => 'hyphen',
|
||||
173 => 'hyphen',
|
||||
46 => 'period',
|
||||
47 => 'slash',
|
||||
48 => 'zero',
|
||||
49 => 'one',
|
||||
50 => 'two',
|
||||
51 => 'three',
|
||||
52 => 'four',
|
||||
53 => 'five',
|
||||
54 => 'six',
|
||||
55 => 'seven',
|
||||
56 => 'eight',
|
||||
57 => 'nine',
|
||||
58 => 'colon',
|
||||
59 => 'semicolon',
|
||||
60 => 'less',
|
||||
61 => 'equal',
|
||||
62 => 'greater',
|
||||
63 => 'question',
|
||||
64 => 'at',
|
||||
65 => 'A',
|
||||
66 => 'B',
|
||||
67 => 'C',
|
||||
68 => 'D',
|
||||
69 => 'E',
|
||||
70 => 'F',
|
||||
71 => 'G',
|
||||
72 => 'H',
|
||||
73 => 'I',
|
||||
74 => 'J',
|
||||
75 => 'K',
|
||||
76 => 'L',
|
||||
77 => 'M',
|
||||
78 => 'N',
|
||||
79 => 'O',
|
||||
80 => 'P',
|
||||
81 => 'Q',
|
||||
82 => 'R',
|
||||
83 => 'S',
|
||||
84 => 'T',
|
||||
85 => 'U',
|
||||
86 => 'V',
|
||||
87 => 'W',
|
||||
88 => 'X',
|
||||
89 => 'Y',
|
||||
90 => 'Z',
|
||||
91 => 'bracketleft',
|
||||
92 => 'backslash',
|
||||
93 => 'bracketright',
|
||||
94 => 'asciicircum',
|
||||
95 => 'underscore',
|
||||
145 => 'quoteleft',
|
||||
97 => 'a',
|
||||
98 => 'b',
|
||||
99 => 'c',
|
||||
100 => 'd',
|
||||
101 => 'e',
|
||||
102 => 'f',
|
||||
103 => 'g',
|
||||
104 => 'h',
|
||||
105 => 'i',
|
||||
106 => 'j',
|
||||
107 => 'k',
|
||||
108 => 'l',
|
||||
109 => 'm',
|
||||
110 => 'n',
|
||||
111 => 'o',
|
||||
112 => 'p',
|
||||
113 => 'q',
|
||||
114 => 'r',
|
||||
115 => 's',
|
||||
116 => 't',
|
||||
117 => 'u',
|
||||
118 => 'v',
|
||||
119 => 'w',
|
||||
120 => 'x',
|
||||
121 => 'y',
|
||||
122 => 'z',
|
||||
123 => 'braceleft',
|
||||
124 => 'bar',
|
||||
125 => 'braceright',
|
||||
126 => 'asciitilde',
|
||||
161 => 'exclamdown',
|
||||
162 => 'cent',
|
||||
163 => 'sterling',
|
||||
165 => 'yen',
|
||||
131 => 'florin',
|
||||
167 => 'section',
|
||||
164 => 'currency',
|
||||
39 => 'quotesingle',
|
||||
147 => 'quotedblleft',
|
||||
171 => 'guillemotleft',
|
||||
139 => 'guilsinglleft',
|
||||
155 => 'guilsinglright',
|
||||
150 => 'endash',
|
||||
134 => 'dagger',
|
||||
135 => 'daggerdbl',
|
||||
183 => 'periodcentered',
|
||||
182 => 'paragraph',
|
||||
149 => 'bullet',
|
||||
130 => 'quotesinglbase',
|
||||
132 => 'quotedblbase',
|
||||
148 => 'quotedblright',
|
||||
187 => 'guillemotright',
|
||||
133 => 'ellipsis',
|
||||
137 => 'perthousand',
|
||||
191 => 'questiondown',
|
||||
96 => 'grave',
|
||||
180 => 'acute',
|
||||
136 => 'circumflex',
|
||||
152 => 'tilde',
|
||||
175 => 'macron',
|
||||
168 => 'dieresis',
|
||||
184 => 'cedilla',
|
||||
151 => 'emdash',
|
||||
198 => 'AE',
|
||||
170 => 'ordfeminine',
|
||||
216 => 'Oslash',
|
||||
140 => 'OE',
|
||||
186 => 'ordmasculine',
|
||||
230 => 'ae',
|
||||
248 => 'oslash',
|
||||
156 => 'oe',
|
||||
223 => 'germandbls',
|
||||
207 => 'Idieresis',
|
||||
233 => 'eacute',
|
||||
159 => 'Ydieresis',
|
||||
247 => 'divide',
|
||||
221 => 'Yacute',
|
||||
194 => 'Acircumflex',
|
||||
225 => 'aacute',
|
||||
219 => 'Ucircumflex',
|
||||
253 => 'yacute',
|
||||
234 => 'ecircumflex',
|
||||
220 => 'Udieresis',
|
||||
218 => 'Uacute',
|
||||
203 => 'Edieresis',
|
||||
169 => 'copyright',
|
||||
229 => 'aring',
|
||||
224 => 'agrave',
|
||||
227 => 'atilde',
|
||||
154 => 'scaron',
|
||||
237 => 'iacute',
|
||||
251 => 'ucircumflex',
|
||||
226 => 'acircumflex',
|
||||
231 => 'ccedilla',
|
||||
222 => 'Thorn',
|
||||
179 => 'threesuperior',
|
||||
210 => 'Ograve',
|
||||
192 => 'Agrave',
|
||||
215 => 'multiply',
|
||||
250 => 'uacute',
|
||||
255 => 'ydieresis',
|
||||
238 => 'icircumflex',
|
||||
202 => 'Ecircumflex',
|
||||
228 => 'adieresis',
|
||||
235 => 'edieresis',
|
||||
205 => 'Iacute',
|
||||
177 => 'plusminus',
|
||||
166 => 'brokenbar',
|
||||
174 => 'registered',
|
||||
200 => 'Egrave',
|
||||
142 => 'Zcaron',
|
||||
208 => 'Eth',
|
||||
199 => 'Ccedilla',
|
||||
193 => 'Aacute',
|
||||
196 => 'Adieresis',
|
||||
232 => 'egrave',
|
||||
211 => 'Oacute',
|
||||
243 => 'oacute',
|
||||
239 => 'idieresis',
|
||||
212 => 'Ocircumflex',
|
||||
217 => 'Ugrave',
|
||||
254 => 'thorn',
|
||||
178 => 'twosuperior',
|
||||
214 => 'Odieresis',
|
||||
181 => 'mu',
|
||||
236 => 'igrave',
|
||||
190 => 'threequarters',
|
||||
153 => 'trademark',
|
||||
204 => 'Igrave',
|
||||
189 => 'onehalf',
|
||||
244 => 'ocircumflex',
|
||||
241 => 'ntilde',
|
||||
201 => 'Eacute',
|
||||
188 => 'onequarter',
|
||||
138 => 'Scaron',
|
||||
176 => 'degree',
|
||||
242 => 'ograve',
|
||||
249 => 'ugrave',
|
||||
209 => 'Ntilde',
|
||||
245 => 'otilde',
|
||||
195 => 'Atilde',
|
||||
197 => 'Aring',
|
||||
213 => 'Otilde',
|
||||
206 => 'Icircumflex',
|
||||
172 => 'logicalnot',
|
||||
246 => 'odieresis',
|
||||
252 => 'udieresis',
|
||||
240 => 'eth',
|
||||
158 => 'zcaron',
|
||||
185 => 'onesuperior',
|
||||
128 => 'Euro',
|
||||
),
|
||||
'isUnicode' => false,
|
||||
'FontName' => 'Times-Bold',
|
||||
'FullName' => 'Times Bold',
|
||||
'FamilyName' => 'Times',
|
||||
'Weight' => 'Bold',
|
||||
'ItalicAngle' => '0',
|
||||
'IsFixedPitch' => 'false',
|
||||
'CharacterSet' => 'ExtendedRoman',
|
||||
'FontBBox' =>
|
||||
array (
|
||||
0 => '-168',
|
||||
1 => '-218',
|
||||
2 => '1000',
|
||||
3 => '935',
|
||||
),
|
||||
'UnderlinePosition' => '-100',
|
||||
'UnderlineThickness' => '50',
|
||||
'Version' => '002.000',
|
||||
'EncodingScheme' => 'WinAnsiEncoding',
|
||||
'CapHeight' => '676',
|
||||
'XHeight' => '461',
|
||||
'Ascender' => '683',
|
||||
'Descender' => '-217',
|
||||
'StdHW' => '44',
|
||||
'StdVW' => '139',
|
||||
'StartCharMetrics' => '317',
|
||||
'C' =>
|
||||
array (
|
||||
32 => 250.0,
|
||||
160 => 250.0,
|
||||
33 => 333.0,
|
||||
34 => 555.0,
|
||||
35 => 500.0,
|
||||
36 => 500.0,
|
||||
37 => 1000.0,
|
||||
38 => 833.0,
|
||||
146 => 333.0,
|
||||
40 => 333.0,
|
||||
41 => 333.0,
|
||||
42 => 500.0,
|
||||
43 => 570.0,
|
||||
44 => 250.0,
|
||||
45 => 333.0,
|
||||
173 => 333.0,
|
||||
46 => 250.0,
|
||||
47 => 278.0,
|
||||
48 => 500.0,
|
||||
49 => 500.0,
|
||||
50 => 500.0,
|
||||
51 => 500.0,
|
||||
52 => 500.0,
|
||||
53 => 500.0,
|
||||
54 => 500.0,
|
||||
55 => 500.0,
|
||||
56 => 500.0,
|
||||
57 => 500.0,
|
||||
58 => 333.0,
|
||||
59 => 333.0,
|
||||
60 => 570.0,
|
||||
61 => 570.0,
|
||||
62 => 570.0,
|
||||
63 => 500.0,
|
||||
64 => 930.0,
|
||||
65 => 722.0,
|
||||
66 => 667.0,
|
||||
67 => 722.0,
|
||||
68 => 722.0,
|
||||
69 => 667.0,
|
||||
70 => 611.0,
|
||||
71 => 778.0,
|
||||
72 => 778.0,
|
||||
73 => 389.0,
|
||||
74 => 500.0,
|
||||
75 => 778.0,
|
||||
76 => 667.0,
|
||||
77 => 944.0,
|
||||
78 => 722.0,
|
||||
79 => 778.0,
|
||||
80 => 611.0,
|
||||
81 => 778.0,
|
||||
82 => 722.0,
|
||||
83 => 556.0,
|
||||
84 => 667.0,
|
||||
85 => 722.0,
|
||||
86 => 722.0,
|
||||
87 => 1000.0,
|
||||
88 => 722.0,
|
||||
89 => 722.0,
|
||||
90 => 667.0,
|
||||
91 => 333.0,
|
||||
92 => 278.0,
|
||||
93 => 333.0,
|
||||
94 => 581.0,
|
||||
95 => 500.0,
|
||||
145 => 333.0,
|
||||
97 => 500.0,
|
||||
98 => 556.0,
|
||||
99 => 444.0,
|
||||
100 => 556.0,
|
||||
101 => 444.0,
|
||||
102 => 333.0,
|
||||
103 => 500.0,
|
||||
104 => 556.0,
|
||||
105 => 278.0,
|
||||
106 => 333.0,
|
||||
107 => 556.0,
|
||||
108 => 278.0,
|
||||
109 => 833.0,
|
||||
110 => 556.0,
|
||||
111 => 500.0,
|
||||
112 => 556.0,
|
||||
113 => 556.0,
|
||||
114 => 444.0,
|
||||
115 => 389.0,
|
||||
116 => 333.0,
|
||||
117 => 556.0,
|
||||
118 => 500.0,
|
||||
119 => 722.0,
|
||||
120 => 500.0,
|
||||
121 => 500.0,
|
||||
122 => 444.0,
|
||||
123 => 394.0,
|
||||
124 => 220.0,
|
||||
125 => 394.0,
|
||||
126 => 520.0,
|
||||
161 => 333.0,
|
||||
162 => 500.0,
|
||||
163 => 500.0,
|
||||
'fraction' => 167.0,
|
||||
165 => 500.0,
|
||||
131 => 500.0,
|
||||
167 => 500.0,
|
||||
164 => 500.0,
|
||||
39 => 278.0,
|
||||
147 => 500.0,
|
||||
171 => 500.0,
|
||||
139 => 333.0,
|
||||
155 => 333.0,
|
||||
'fi' => 556.0,
|
||||
'fl' => 556.0,
|
||||
150 => 500.0,
|
||||
134 => 500.0,
|
||||
135 => 500.0,
|
||||
183 => 250.0,
|
||||
182 => 540.0,
|
||||
149 => 350.0,
|
||||
130 => 333.0,
|
||||
132 => 500.0,
|
||||
148 => 500.0,
|
||||
187 => 500.0,
|
||||
133 => 1000.0,
|
||||
137 => 1000.0,
|
||||
191 => 500.0,
|
||||
96 => 333.0,
|
||||
180 => 333.0,
|
||||
136 => 333.0,
|
||||
152 => 333.0,
|
||||
175 => 333.0,
|
||||
'breve' => 333.0,
|
||||
'dotaccent' => 333.0,
|
||||
168 => 333.0,
|
||||
'ring' => 333.0,
|
||||
184 => 333.0,
|
||||
'hungarumlaut' => 333.0,
|
||||
'ogonek' => 333.0,
|
||||
'caron' => 333.0,
|
||||
151 => 1000.0,
|
||||
198 => 1000.0,
|
||||
170 => 300.0,
|
||||
'Lslash' => 667.0,
|
||||
216 => 778.0,
|
||||
140 => 1000.0,
|
||||
186 => 330.0,
|
||||
230 => 722.0,
|
||||
'dotlessi' => 278.0,
|
||||
'lslash' => 278.0,
|
||||
248 => 500.0,
|
||||
156 => 722.0,
|
||||
223 => 556.0,
|
||||
207 => 389.0,
|
||||
233 => 444.0,
|
||||
'abreve' => 500.0,
|
||||
'uhungarumlaut' => 556.0,
|
||||
'ecaron' => 444.0,
|
||||
159 => 722.0,
|
||||
247 => 570.0,
|
||||
221 => 722.0,
|
||||
194 => 722.0,
|
||||
225 => 500.0,
|
||||
219 => 722.0,
|
||||
253 => 500.0,
|
||||
'scommaaccent' => 389.0,
|
||||
234 => 444.0,
|
||||
'Uring' => 722.0,
|
||||
220 => 722.0,
|
||||
'aogonek' => 500.0,
|
||||
218 => 722.0,
|
||||
'uogonek' => 556.0,
|
||||
203 => 667.0,
|
||||
'Dcroat' => 722.0,
|
||||
'commaaccent' => 250.0,
|
||||
169 => 747.0,
|
||||
'Emacron' => 667.0,
|
||||
'ccaron' => 444.0,
|
||||
229 => 500.0,
|
||||
'Ncommaaccent' => 722.0,
|
||||
'lacute' => 278.0,
|
||||
224 => 500.0,
|
||||
'Tcommaaccent' => 667.0,
|
||||
'Cacute' => 722.0,
|
||||
227 => 500.0,
|
||||
'Edotaccent' => 667.0,
|
||||
154 => 389.0,
|
||||
'scedilla' => 389.0,
|
||||
237 => 278.0,
|
||||
'lozenge' => 494.0,
|
||||
'Rcaron' => 722.0,
|
||||
'Gcommaaccent' => 778.0,
|
||||
251 => 556.0,
|
||||
226 => 500.0,
|
||||
'Amacron' => 722.0,
|
||||
'rcaron' => 444.0,
|
||||
231 => 444.0,
|
||||
'Zdotaccent' => 667.0,
|
||||
222 => 611.0,
|
||||
'Omacron' => 778.0,
|
||||
'Racute' => 722.0,
|
||||
'Sacute' => 556.0,
|
||||
'dcaron' => 672.0,
|
||||
'Umacron' => 722.0,
|
||||
'uring' => 556.0,
|
||||
179 => 300.0,
|
||||
210 => 778.0,
|
||||
192 => 722.0,
|
||||
'Abreve' => 722.0,
|
||||
215 => 570.0,
|
||||
250 => 556.0,
|
||||
'Tcaron' => 667.0,
|
||||
'partialdiff' => 494.0,
|
||||
255 => 500.0,
|
||||
'Nacute' => 722.0,
|
||||
238 => 278.0,
|
||||
202 => 667.0,
|
||||
228 => 500.0,
|
||||
235 => 444.0,
|
||||
'cacute' => 444.0,
|
||||
'nacute' => 556.0,
|
||||
'umacron' => 556.0,
|
||||
'Ncaron' => 722.0,
|
||||
205 => 389.0,
|
||||
177 => 570.0,
|
||||
166 => 220.0,
|
||||
174 => 747.0,
|
||||
'Gbreve' => 778.0,
|
||||
'Idotaccent' => 389.0,
|
||||
'summation' => 600.0,
|
||||
200 => 667.0,
|
||||
'racute' => 444.0,
|
||||
'omacron' => 500.0,
|
||||
'Zacute' => 667.0,
|
||||
142 => 667.0,
|
||||
'greaterequal' => 549.0,
|
||||
208 => 722.0,
|
||||
199 => 722.0,
|
||||
'lcommaaccent' => 278.0,
|
||||
'tcaron' => 416.0,
|
||||
'eogonek' => 444.0,
|
||||
'Uogonek' => 722.0,
|
||||
193 => 722.0,
|
||||
196 => 722.0,
|
||||
232 => 444.0,
|
||||
'zacute' => 444.0,
|
||||
'iogonek' => 278.0,
|
||||
211 => 778.0,
|
||||
243 => 500.0,
|
||||
'amacron' => 500.0,
|
||||
'sacute' => 389.0,
|
||||
239 => 278.0,
|
||||
212 => 778.0,
|
||||
217 => 722.0,
|
||||
'Delta' => 612.0,
|
||||
254 => 556.0,
|
||||
178 => 300.0,
|
||||
214 => 778.0,
|
||||
181 => 556.0,
|
||||
236 => 278.0,
|
||||
'ohungarumlaut' => 500.0,
|
||||
'Eogonek' => 667.0,
|
||||
'dcroat' => 556.0,
|
||||
190 => 750.0,
|
||||
'Scedilla' => 556.0,
|
||||
'lcaron' => 394.0,
|
||||
'Kcommaaccent' => 778.0,
|
||||
'Lacute' => 667.0,
|
||||
153 => 1000.0,
|
||||
'edotaccent' => 444.0,
|
||||
204 => 389.0,
|
||||
'Imacron' => 389.0,
|
||||
'Lcaron' => 667.0,
|
||||
189 => 750.0,
|
||||
'lessequal' => 549.0,
|
||||
244 => 500.0,
|
||||
241 => 556.0,
|
||||
'Uhungarumlaut' => 722.0,
|
||||
201 => 667.0,
|
||||
'emacron' => 444.0,
|
||||
'gbreve' => 500.0,
|
||||
188 => 750.0,
|
||||
138 => 556.0,
|
||||
'Scommaaccent' => 556.0,
|
||||
'Ohungarumlaut' => 778.0,
|
||||
176 => 400.0,
|
||||
242 => 500.0,
|
||||
'Ccaron' => 722.0,
|
||||
249 => 556.0,
|
||||
'radical' => 549.0,
|
||||
'Dcaron' => 722.0,
|
||||
'rcommaaccent' => 444.0,
|
||||
209 => 722.0,
|
||||
245 => 500.0,
|
||||
'Rcommaaccent' => 722.0,
|
||||
'Lcommaaccent' => 667.0,
|
||||
195 => 722.0,
|
||||
'Aogonek' => 722.0,
|
||||
197 => 722.0,
|
||||
213 => 778.0,
|
||||
'zdotaccent' => 444.0,
|
||||
'Ecaron' => 667.0,
|
||||
'Iogonek' => 389.0,
|
||||
'kcommaaccent' => 556.0,
|
||||
'minus' => 570.0,
|
||||
206 => 389.0,
|
||||
'ncaron' => 556.0,
|
||||
'tcommaaccent' => 333.0,
|
||||
172 => 570.0,
|
||||
246 => 500.0,
|
||||
252 => 556.0,
|
||||
'notequal' => 549.0,
|
||||
'gcommaaccent' => 500.0,
|
||||
240 => 500.0,
|
||||
158 => 444.0,
|
||||
'ncommaaccent' => 556.0,
|
||||
185 => 300.0,
|
||||
'imacron' => 278.0,
|
||||
128 => 500.0,
|
||||
),
|
||||
'CIDtoGID_Compressed' => true,
|
||||
'CIDtoGID' => 'eJwDAAAAAAE=',
|
||||
'_version_' => 6,
|
||||
);
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user