leilukin-tumbleblog/modules/rights/rights.php

202 lines
8.5 KiB
PHP

<?php
class Rights extends Modules {
public static function __uninstall($confirm): void {
if ($confirm) {
$sql = SQL::current();
$sql->delete(
"post_attributes",
array("name" => "rights_title")
);
$sql->delete(
"post_attributes",
array("name" => "rights_holder")
);
$sql->delete(
"post_attributes",
array("name" => "rights_licence")
);
}
}
public function post_options($fields, $post = null): array {
$licences = array(
array(
"name" => __("All rights reserved", "rights"),
"value" => "All rights reserved",
"selected" => isset($post) ?
($post->rights_licence == "All rights reserved") :
true
),
array(
"name" => __("Creative Commons BY", "rights"),
"value" => "Creative Commons BY",
"selected" => isset($post) ?
($post->rights_licence == "Creative Commons BY") :
false
),
array(
"name" => __("Creative Commons BY-ND", "rights"),
"value" => "Creative Commons BY-ND",
"selected" => isset($post) ?
($post->rights_licence == "Creative Commons BY-ND") :
false
),
array(
"name" => __("Creative Commons BY-SA", "rights"),
"value" => "Creative Commons BY-SA",
"selected" => isset($post) ?
($post->rights_licence == "Creative Commons BY-SA") :
false
),
array(
"name" => __("Creative Commons BY-NC", "rights"),
"value" => "Creative Commons BY-NC",
"selected" => isset($post) ?
($post->rights_licence == "Creative Commons BY-NC") :
false
),
array(
"name" => __("Creative Commons BY-NC-ND", "rights"),
"value" => "Creative Commons BY-NC-ND",
"selected" => isset($post) ?
($post->rights_licence == "Creative Commons BY-NC-ND") :
false
),
array(
"name" => __("Creative Commons BY-NC-SA", "rights"),
"value" => "Creative Commons BY-NC-SA",
"selected" => isset($post) ?
($post->rights_licence == "Creative Commons BY-NC-SA") :
false
),
array(
"name" => __("Creative Commons CC0", "rights"),
"value" => "Creative Commons CC0",
"selected" => isset($post) ?
($post->rights_licence == "Creative Commons CC0") :
false
),
array(
"name" => __("Orphan Work", "rights"),
"value" => "Orphan Work",
"selected" => isset($post) ?
($post->rights_licence == "Orphan Work") :
false
),
array(
"name" => __("Public Domain", "rights"),
"value" => "Public Domain",
"selected" => isset($post) ?
($post->rights_licence == "Public Domain") :
false
),
array(
"name" => __("Crown Copyright", "rights"),
"value" => "Crown Copyright",
"selected" => isset($post) ?
($post->rights_licence == "Crown Copyright") :
false
)
);
$fields[] = array(
"attr" => "option[rights_title]",
"label" => __("Original Work", "rights"),
"type" => "text",
"value" => isset($post->rights_title) ?
$post->rights_title :
""
);
$fields[] = array(
"attr" => "option[rights_holder]",
"label" => __("Rights Holder", "rights"),
"type" => "text",
"value" => isset($post->rights_holder) ?
$post->rights_holder :
""
);
$fields[] = array(
"attr" => "option[rights_licence]",
"label" => __("License", "rights"),
"help" => "choosing_a_licence",
"type" => "select",
"options" => $licences
);
return $fields;
}
public function feed_item($post, $feed): void {
if (!empty($post->rights_licence))
$feed->rights($post->rights_licence);
}
public function post_licence_link_attr($attr, $post): string {
switch ($post->rights_licence) {
case "Creative Commons BY":
$mark = '<a rel="license"'.
' href="http://creativecommons.org/licenses/by/4.0"'.
' target="_blank" class="rights_licence_link">'.
__("Creative Commons BY", "rights").
'</a>';
break;
case "Creative Commons BY-ND":
$mark = '<a rel="license"'.
' href="http://creativecommons.org/licenses/by-nd/4.0"'.
' target="_blank" class="rights_licence_link">'.
__("Creative Commons BY-ND", "rights").
'</a>';
break;
case "Creative Commons BY-SA":
$mark = '<a rel="license"'.
' href="http://creativecommons.org/licenses/by-sa/4.0"'.
' target="_blank" class="rights_licence_link">'.
__("Creative Commons BY-SA", "rights").
'</a>';
break;
case "Creative Commons BY-NC":
$mark = '<a rel="license"'.
' href="http://creativecommons.org/licenses/by-nc/4.0"'.
' target="_blank" class="rights_licence_link">'.
__("Creative Commons BY-NC", "rights").
'</a>';
break;
case "Creative Commons BY-NC-ND":
$mark = '<a rel="license"'.
' href="http://creativecommons.org/licenses/by-nc-nd/4.0"'.
' target="_blank" class="rights_licence_link">'.
__("Creative Commons BY-NC-ND", "rights").
'</a>';
break;
case "Creative Commons BY-NC-SA":
$mark = '<a rel="license"'.
' href="http://creativecommons.org/licenses/by-nc-sa/4.0"'.
' target="_blank" class="rights_licence_link">'.
__("Creative Commons BY-NC-SA", "rights").
'</a>';
break;
case "Creative Commons CC0":
$mark = '<a rel="license"'.
' href="http://creativecommons.org/publicdomain/zero/1.0"'.
' target="_blank" class="rights_licence_link">'.
__("Creative Commons CC0", "rights").
'</a>';
break;
case "Public Domain":
$mark = '<a rel="license"'.
' href="http://wiki.creativecommons.org/Public_domain"'.
' target="_blank" class="rights_licence_link">'.
__("Public Domain", "rights").
'</a>';
break;
default:
$mark = __("All rights reserved", "rights");
}
return $mark;
}
}