Update dejure-plugin to version 1.5 from upstream. (#57)
v1.5 taken from <https://dejure.org/vernetzung.html> with author's consent. Some minor changes to the database queries, trying to be more compatible to other database backends, see <https://board.s9y.org/viewtopic.php?f=10&t=21255>. Update language files (as far as I speak those languages). Signed-off-by: Thomas Hochstein <thh@inter.net>
This commit is contained in:
parent
ae01d649d8
commit
3f67f1ab30
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
|
||||
@define('DEJURE_TITLE', 'Dejure.org Rechtvernetzung');
|
||||
@define('DEJURE_TITLE', 'dejure.org Rechtsvernetzung');
|
||||
@define('DEJURE_DESCRIPTION', 'Verlinkt automatisch zitierte Gesetze und Rechtsprechung (Aktenzeichen und Fundstellen) mit den Inhalten von dejure.org.');
|
||||
@define('DEJURE_MAIL', 'E-Mail Adresse des Blogbetreibers');
|
||||
@define('DEJURE_MAIL_DESC', 'Diese Informationen werden im Rahmen der Serverkommunikation jeweils an dejure.org übertragen und dienen im übrigen nur der Kommunikation bei technischen Problemen. Die Weitergabe der Daten an Dritte sowie eine Verwendung für Werbezwecke o.ä. ist ausgeschlossen!');
|
||||
|
@ -14,3 +14,5 @@
|
|||
@define('DEJURE_LINKSTYLE_DESC', '');
|
||||
@define('DEJURE_LINKSTYLE_SHORT', 'Nur die Nummern der Vorschriften verlinken (Bsp.: § _242_ BGB; §§ _278_, _254_ BGB)');
|
||||
@define('DEJURE_LINKSTYLE_WIDE', 'Möglichst weite Verlinkung (Bsp.: _§ 242 BGB_; _§§ 278_, _254 BGB_)');
|
||||
@define('DEJURE_CACHE', 'Cache leeren');
|
||||
@define('DEJURE_CACHE_DESC', 'Den kompletten Cache beim nächsten Aufruf des Blogs leeren. Notwendig, wenn Sie das Linkziel, die CSS-Klasse oder den Linkstil ändern.');
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
|
||||
@define('DEJURE_TITLE', 'Dejure.org Rechtvernetzung');
|
||||
@define('DEJURE_TITLE', 'dejure.org Rechtsvernetzung');
|
||||
@define('DEJURE_DESCRIPTION', 'Verlinkt automatisch zitierte Gesetze und Rechtsprechung (Aktenzeichen und Fundstellen) mit den Inhalten von dejure.org.');
|
||||
@define('DEJURE_MAIL', 'E-Mail Adresse des Blogbetreibers');
|
||||
@define('DEJURE_MAIL_DESC', 'Diese Informationen werden im Rahmen der Serverkommunikation jeweils an dejure.org übertragen und dienen im übrigen nur der Kommunikation bei technischen Problemen. Die Weitergabe der Daten an Dritte sowie eine Verwendung für Werbezwecke o.ä. ist ausgeschlossen!');
|
||||
|
@ -14,3 +14,5 @@
|
|||
@define('DEJURE_LINKSTYLE_DESC', '');
|
||||
@define('DEJURE_LINKSTYLE_SHORT', 'Nur die Nummern der Vorschriften verlinken (Bsp.: § _242_ BGB; §§ _278_, _254_ BGB)');
|
||||
@define('DEJURE_LINKSTYLE_WIDE', 'Möglichst weite Verlinkung (Bsp.: _§ 242 BGB_; _§§ 278_, _254 BGB_)');
|
||||
@define('DEJURE_CACHE', 'Cache leeren');
|
||||
@define('DEJURE_CACHE_DESC', 'Den kompletten Cache beim nächsten Aufruf des Blogs leeren. Notwendig, wenn Sie das Linkziel, die CSS-Klasse oder den Linkstil ändern.');
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
|
||||
@define('DEJURE_TITLE', 'Dejure.org automatic linking');
|
||||
@define('DEJURE_TITLE', 'dejure.org automatic linking');
|
||||
@define('DEJURE_DESCRIPTION', 'Automatically links quoted statues and judicature (references and source of information) with contents of dejure.org.');
|
||||
@define('DEJURE_MAIL', 'E-Mail address of the blog owner');
|
||||
@define('DEJURE_MAIL_DESC', 'This information is sent to dejure.org and only servers for communication means on technical failures. No data is forwarded for marketing reasons or similar!');
|
||||
|
@ -8,9 +8,11 @@
|
|||
@define('DEJURE_NEWSLETTER_DESC', 'I want to subscribe to updates to the dejure.org service.');
|
||||
@define('DEJURE_TARGET', 'Open links...');
|
||||
@define('DEJURE_TARGET_DESC', 'An empty field opens links in the same target, "_blank" in a new one.');
|
||||
@define('DEJURE_CSS', 'CSS-class for dejure.org links');
|
||||
@define('DEJURE_CSS', 'CSS class for dejure.org links');
|
||||
@define('DEJURE_CSS_DESC', '');
|
||||
@define('DEJURE_LINKSTYLE', 'Style of dejure.org links');
|
||||
@define('DEJURE_LINKSTYLE_DESC', '');
|
||||
@define('DEJURE_LINKSTYLE_SHORT', 'Only link numbers of judicature (i.e.: § _242_ BGB; §§ _278_, _254_ BGB)');
|
||||
@define('DEJURE_LINKSTYLE_WIDE', 'Use detailed linking (i.e.: _§ 242 BGB_; _§§ 278_, _254 BGB_)');
|
||||
@define('DEJURE_CACHE', 'Purge cache');
|
||||
@define('DEJURE_CACHE_DESC', 'Completely purge the cache - necessary after changes to link targets ("Open links..."), CSS class or style.');
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<?php #
|
||||
<?php
|
||||
|
||||
if (IN_serendipity !== true) {
|
||||
die ("Don't hack!");
|
||||
|
@ -12,6 +12,8 @@ if (file_exists($probelang)) {
|
|||
|
||||
include dirname(__FILE__) . '/lang_en.inc.php';
|
||||
|
||||
define('CACHE_VORHALT', 4); # (Tage) Wann ein vernetzter Text aus dem Cache entfernt und neu vernetzt werden soll
|
||||
|
||||
class serendipity_event_dejure extends serendipity_event
|
||||
{
|
||||
function introspect(&$propbag) {
|
||||
|
@ -19,8 +21,8 @@ class serendipity_event_dejure extends serendipity_event
|
|||
|
||||
$propbag->add('name', DEJURE_TITLE);
|
||||
$propbag->add('description', DEJURE_DESCRIPTION);
|
||||
$propbag->add('author', 'Garvin Hicking, dejure.org');
|
||||
$propbag->add('version', '1.2');
|
||||
$propbag->add('author', 'Garvin Hicking, Bjoern Urban, dejure.org');
|
||||
$propbag->add('version', '1.5');
|
||||
$propbag->add('stackable', false);
|
||||
$propbag->add('groups', array('FRONTEND_EXTERNAL_SERVICES'));
|
||||
|
||||
|
@ -46,7 +48,8 @@ class serendipity_event_dejure extends serendipity_event
|
|||
'newsletter',
|
||||
'target',
|
||||
'css',
|
||||
'linkstyle'
|
||||
'linkstyle',
|
||||
'cache'
|
||||
)
|
||||
);
|
||||
}
|
||||
|
@ -95,6 +98,13 @@ class serendipity_event_dejure extends serendipity_event
|
|||
$propbag->add('radio_per_row', 1);
|
||||
break;
|
||||
|
||||
case 'cache':
|
||||
$propbag->add('type', 'boolean');
|
||||
$propbag->add('name', DEJURE_CACHE);
|
||||
$propbag->add('description', DEJURE_CACHE_DESC);
|
||||
$propbag->add('default', false);
|
||||
break;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
@ -107,15 +117,21 @@ class serendipity_event_dejure extends serendipity_event
|
|||
|
||||
$built = $this->get_config('db_built', null);
|
||||
if (empty($built)) {
|
||||
serendipity_db_schema_import("CREATE TABLE {$serendipity['dbPrefix']}dejure (
|
||||
serendipity_db_schema_import("CREATE TABLE IF NOT EXISTS {$serendipity['dbPrefix']}dejure (
|
||||
ckey varchar(32),
|
||||
cache text,
|
||||
last_update int(10) {UNSIGNED}
|
||||
)");
|
||||
) {UTF_8}");
|
||||
serendipity_db_schema_import('CREATE UNIQUE INDEX dejure_cacheidx ON {PREFIX}dejure (ckey)');
|
||||
}
|
||||
}
|
||||
|
||||
function dropDB() {
|
||||
global $serendipity;
|
||||
|
||||
serendipity_db_schema_import("DROP TABLE {$serendipity['dbPrefix']}dejure");
|
||||
}
|
||||
|
||||
function generate_content(&$title) {
|
||||
$title = DEJURE_TITLE;
|
||||
}
|
||||
|
@ -124,30 +140,34 @@ class serendipity_event_dejure extends serendipity_event
|
|||
$this->setupDB();
|
||||
}
|
||||
|
||||
function uninstall() {
|
||||
$this->dropDB();
|
||||
}
|
||||
|
||||
function cleanup() {
|
||||
global $serendipity;
|
||||
|
||||
// Purge DB cache
|
||||
// Purge the whole DB cache
|
||||
serendipity_db_query("DELETE FROM {$serendipity['dbPrefix']}dejure");
|
||||
}
|
||||
|
||||
function cache_cleanup() {
|
||||
global $serendipity;
|
||||
|
||||
// Purge DB cache
|
||||
serendipity_db_query("DELETE FROM {$serendipity['dbPrefix']}dejure WHERE last_update < " . (time()-86400*4));
|
||||
// Purge old DB cache
|
||||
serendipity_db_query("DELETE FROM {$serendipity['dbPrefix']}dejure
|
||||
WHERE last_update < " . (time()-86400*CACHE_VORHALT));
|
||||
}
|
||||
|
||||
|
||||
function djo_vernetzen_ueber_dejure_org($ausgangstext, $parameter = array()) {
|
||||
// Mögliche Parameter: Anbieterkennung / Dokumentkennung / target / class / AktenzeichenIgnorieren / zeitlimit_in_sekunden
|
||||
|
||||
$uebergabe = "Originaltext=".urlencode($ausgangstext);
|
||||
$uebergabe = 'Originaltext='.urlencode($ausgangstext);
|
||||
foreach ($parameter as $option => $wert) {
|
||||
if ($option == "zeitlimit_in_sekunden") {
|
||||
if ($option == 'zeitlimit_in_sekunden') {
|
||||
$zeitlimit_in_sekunden = $wert;
|
||||
} else {
|
||||
$uebergabe .= "&" . urlencode($option) . "=" . urlencode($wert);
|
||||
$uebergabe .= '&' . urlencode($option) . '=' . urlencode($wert);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -155,6 +175,10 @@ class serendipity_event_dejure extends serendipity_event
|
|||
$zeitlimit_in_sekunden = 2;
|
||||
}
|
||||
|
||||
if (preg_match("/<!-- zeitlimitDJO:([0-9]+) -->/", $ausgangstext, $wert_ARR)) {
|
||||
$zeitlimit_in_sekunden = $wert_ARR[1];
|
||||
}
|
||||
|
||||
$header = "POST http://rechtsnetz.dejure.org/dienste/vernetzung/vernetzen HTTP/1.0\r\n";
|
||||
$header .= "Content-type: application/x-www-form-urlencoded\r\n";
|
||||
$header .= "Content-length: " . strlen($uebergabe) . "\r\n\r\n";
|
||||
|
@ -169,7 +193,7 @@ class serendipity_event_dejure extends serendipity_event
|
|||
fputs($fp, $header.$uebergabe);
|
||||
$timeOutSock = false;
|
||||
$eofSock = false;
|
||||
$rueckgabe="";
|
||||
$rueckgabe = '';
|
||||
while (!$eofSock && !$timeOutSock) {
|
||||
$rueckgabe.= fgets($fp, 1024); //
|
||||
$stSock = socket_get_status($fp);
|
||||
|
@ -179,7 +203,7 @@ class serendipity_event_dejure extends serendipity_event
|
|||
fclose($fp);
|
||||
if (!preg_match("/^(.*?)\r?\n\r?\n\r?\n?(.*)/s",$rueckgabe, $rueckgabeARR)) {
|
||||
return false; // Zeitüberschreitung oder Verbindungsproblem
|
||||
} else if (strpos($rueckgabeARR[1],"200 OK")===false) {
|
||||
} else if (strpos($rueckgabeARR[1],"200 OK") === false) {
|
||||
return false; // sonstiges Serverproblem
|
||||
} else {
|
||||
$rueckgabe = $rueckgabeARR[2];
|
||||
|
@ -194,6 +218,8 @@ class serendipity_event_dejure extends serendipity_event
|
|||
|
||||
function djo_zwischenspeicherung() {
|
||||
global $serendipity;
|
||||
# Cache auf alte Eintraege pruefen vor dem Eintrag
|
||||
$this->cache_cleanup();
|
||||
|
||||
if (is_array($this->djo_vernetzung_in_cache_schreiben)) {
|
||||
foreach ($this->djo_vernetzung_in_cache_schreiben as $vernetzung) {
|
||||
|
@ -204,7 +230,9 @@ class serendipity_event_dejure extends serendipity_event
|
|||
$text = $vernetzung[1];
|
||||
}
|
||||
serendipity_db_Query("DELETE FROM {$serendipity['dbPrefix']}dejure WHERE ckey = '" . $schluessel . "'");
|
||||
serendipity_db_Query("INSERT INTO {$serendipity['dbPrefix']}dejure (ckey, cache, last_update) VALUES ('" . $schluessel . "', '" . serendipity_db_escape_string($text) . "', " . time() . ")");
|
||||
serendipity_db_Query("INSERT INTO {$serendipity['dbPrefix']}dejure
|
||||
(ckey, cache, last_update)
|
||||
VALUES ('".$schluessel."', '".serendipity_db_escape_string($text)."', " . time() . ")");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -213,9 +241,10 @@ class serendipity_event_dejure extends serendipity_event
|
|||
global $serendipity;
|
||||
|
||||
$schluessel = md5($ausgangstext);
|
||||
$rueckgabe = serendipity_db_query("SELECT cache FROM {$serendipity['dbPrefix']}dejure WHERE ckey = '" . $schluessel . "'", true, 'assoc');
|
||||
$rueckgabe = serendipity_db_query("SELECT cache FROM {$serendipity['dbPrefix']}dejure
|
||||
WHERE ckey = '".$schluessel."' AND last_update > " . (time()-86400*CACHE_VORHALT), true, 'assoc');
|
||||
if (!empty($rueckgabe['cache']) && $rueckgabe['cache'] == "<!-- idem -->") {
|
||||
return $ausgangstext;
|
||||
return $ausgangstext;
|
||||
} else {
|
||||
return $rueckgabe['cache'];
|
||||
}
|
||||
|
@ -225,6 +254,12 @@ class serendipity_event_dejure extends serendipity_event
|
|||
function djo_vernetzen(&$text) {
|
||||
global $serendipity;
|
||||
|
||||
# Cache leeren wenn Option gesetzt
|
||||
if ($this->get_config('cache') === true) {
|
||||
$this->cleanup;
|
||||
$this->set_config('cache', false);
|
||||
}
|
||||
|
||||
if (!preg_match("/§|§|Art\.|\/[0-9][0-9](?![0-9\/])|[0-9][0-9], /", $text) || preg_match("/<!--ohnedjo-->/", $text)) {
|
||||
return false;
|
||||
}
|
||||
|
@ -275,7 +310,6 @@ class serendipity_event_dejure extends serendipity_event
|
|||
if (date("G") < 6 && rand(0,50) < 1) {
|
||||
$this->cache_cleanup();
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 'frontend_display':
|
||||
|
@ -285,7 +319,6 @@ class serendipity_event_dejure extends serendipity_event
|
|||
} elseif ($eventData['comment'] != '') {
|
||||
$this->djo_vernetzen($eventData['comment']);
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 'frontend_footer':
|
||||
|
|
Loading…
Reference in a new issue