diff --git a/README.md b/README.md
index f12a2ed..6614b18 100644
--- a/README.md
+++ b/README.md
@@ -44,7 +44,6 @@ The following optional attributes modify the behavior of the list of commits:
* `max=NUM`: Optional; `NUM`: Positive integer; list not more than `NUM` commits (example: `5`).
* `ref_name=STRING`: Optional: list only commit from branch or reference name `STRING` (examples: `main`, `v1.1`).
* `default_branch`: Optional; if set, list only commits from the project's default branch.
-* `author="none"`: Optional; do not print names of authors in the commit list.
## Author and License
diff --git a/lang/linuxfoo-gitlab-de_DE.po b/lang/linuxfoo-gitlab-de_DE.po
index d993d55..9d39fe0 100644
--- a/lang/linuxfoo-gitlab-de_DE.po
+++ b/lang/linuxfoo-gitlab-de_DE.po
@@ -22,8 +22,8 @@ msgid "http://tk-sls.de/ref/gitlab-list-commits"
msgstr "http://tk-sls.de/ref/gitlab-list-commits"
#. Description of the plugin
-msgid "Summary: Embed list of most recent commits to a Gitlab project from a Gitlab instance's public REST API. Example: Add [gitlab-list-commits url=https://tk-sls.de/gitlab project_id=42 commits=\"all\" since=\"3 month\" max=5 releases=\"latest\"] for a list of at most 5 commits to that project that were made since at most 3 months ago, followed by alink to the latest release of the project (if any). To disable the list of commits, set commits=\"none\". To disable printing the author name of a commit, set author=\"none\". To generate a list of all releases, set releases=\"all\". To disable the list of releases, omit the \"releases\" attribute or set releases=\"none\"."
-msgstr "Zusammenfassung: Bette Liste der neuesten Commits eines Gitlab-Projektes ein, die mit Gitlabs REST API abgerufen wird. Beispiel: Füge folgenden Shortcode zu einem Artikel hinzu, um die letzten 5 Commits anzuzeigen, die nicht älter als 3 Monate sind: [gitlab-list-commits url=https://tk-sls.de/gitlab project_id=42 since=\"3 month\" max=5]. Um die Liste der Commits zu deaktivieren: commits=\"none\". Um die Ausgabe der Autor-Namens pro Commit zu deaktivieren: author=\"none\". Um eine Liste von Releases hinzuzufügen: releases=\"all\". Um nur die neueste Release anzuzeigen: releases=\"latest\"."
+msgid "Summary: Embed list of most recent commits to a Gitlab project from a Gitlab instance's public REST API. Example: Add [gitlab-list-commits url=https://tk-sls.de/gitlab project_id=42 commits=\"all\" since=\"3 month\" max=5 releases=\"latest\"] for a list of at most 5 commits to that project that were made since at most 3 months ago, followed by alink to the latest release of the project (if any). To disable the list of commits, set commits=\"none\". To generate a list of all releases, set releases=\"all\". To disable the list of releases, omit the \"releases\" attribute or set releases=\"none\"."
+msgstr "Zusammenfassung: Bette Liste der neuesten Commits eines Gitlab-Projektes ein, die mit Gitlabs REST API abgerufen wird. Beispiel: Füge folgenden Shortcode zu einem Artikel hinzu, um die letzten 5 Commits anzuzeigen, die nicht älter als 3 Monate sind: [gitlab-list-commits url=https://tk-sls.de/gitlab project_id=42 since=\"3 month\" max=5]. Um die Liste der Commits zu deaktivieren: commits=\"none\". Um eine Liste von Releases hinzuzufügen: releases=\"all\". Um nur die neueste Release anzuzeigen: releases=\"latest\"."
#. Author of the plugin
msgid "Tilman Kranz"
diff --git a/lang/linuxfoo-gitlab.pot b/lang/linuxfoo-gitlab.pot
index 53ef2a9..810ea64 100644
--- a/lang/linuxfoo-gitlab.pot
+++ b/lang/linuxfoo-gitlab.pot
@@ -23,7 +23,7 @@ msgid "http://tk-sls.de/ref/gitlab-list-commits"
msgstr ""
#. Description of the plugin
-msgid "Summary: Embed list of most recent commits to a Gitlab project from a Gitlab instance's public REST API. Example: Add [gitlab-list-commits url=https://tk-sls.de/gitlab project_id=42 commits=\"all\" since=\"3 month\" max=5 releases=\"latest\"] for a list of at most 5 commits to that project that were made since at most 3 months ago, followed by alink to the latest release of the project (if any). To disable the list of commits, set commits=\"none\". To disable printing the author name of a commit, set author=\"none\". To generate a list of all releases, set releases=\"all\". To disable the list of releases, omit the \"releases\" attribute or set releases=\"none\"."
+msgid "Summary: Embed list of most recent commits to a Gitlab project from a Gitlab instance's public REST API. Example: Add [gitlab-list-commits url=https://tk-sls.de/gitlab project_id=42 commits=\"all\" since=\"3 month\" max=5 releases=\"latest\"] for a list of at most 5 commits to that project that were made since at most 3 months ago, followed by alink to the latest release of the project (if any). To disable the list of commits, set commits=\"none\". To generate a list of all releases, set releases=\"all\". To disable the list of releases, omit the \"releases\" attribute or set releases=\"none\"."
msgstr ""
#. Author of the plugin
diff --git a/linuxfoo-gitlab.php b/linuxfoo-gitlab.php
index 0e87b76..85b603c 100644
--- a/linuxfoo-gitlab.php
+++ b/linuxfoo-gitlab.php
@@ -3,39 +3,31 @@
/*
Plugin Name: Gitlab REST API Shortcodes
Plugin URI: http://tk-sls.de/ref/gitlab-list-commits
-Description: Summary: Embed list of most recent commits to a Gitlab project from a Gitlab instance's public REST API. Example: Add [gitlab-list-commits url=https://tk-sls.de/gitlab project_id=42 commits="all" since="3 month" max=5 releases="latest"] for a list of at most 5 commits to that project that were made since at most 3 months ago, followed by alink to the latest release of the project (if any). To disable the list of commits, set commits="none". To disable printing the author name of a commit, set author="none". To generate a list of all releases, set releases="all". To disable the list of releases, omit the "releases" attribute or set releases="none".
+Description: Summary: Embed list of most recent commits to a Gitlab project from a Gitlab instance's public REST API. Example: Add [gitlab-list-commits url=https://tk-sls.de/gitlab project_id=42 commits="all" since="3 month" max=5 releases="latest"] for a list of at most 5 commits to that project that were made since at most 3 months ago, followed by alink to the latest release of the project (if any). To disable the list of commits, set commits="none". To generate a list of all releases, set releases="all". To disable the list of releases, omit the "releases" attribute or set releases="none".
Author: Tilman Kranz
Version: 1.4
Author URI: https://tk-sls.de
*/
class LinuxfooGitlab {
- public function __construct() {
- }
+ public function __construct() {
+ }
static function load_textdomain() {
load_plugin_textdomain('linuxfoo-gitlab', false, dirname(plugin_basename(__FILE__)).'/lang');
}
static function css() {
- wp_enqueue_style('linuxfoo_gitlab_css', plugins_url('styles.css', __FILE__ ), '', '1.4' );
+ wp_enqueue_style('linuxfoo_gitlab_css', plugins_url('styles.css', __FILE__ ), '', '1.4' );
}
- static function error ( $msg ) {
+ static function error ( $msg ) {
return
''.
$msg.
'';
}
- static function project_header($atts, $project) {
- return
- ''.
- __('Gitlab project', 'linuxfoo-gitlab').' '.
- ''.$project->name.''.
- '';
- }
-
static function format_since($since) {
preg_match('/^([0-9]+)\s+(.*)$/', $since, $m);
$num = $m[1];
@@ -56,35 +48,43 @@ class LinuxfooGitlab {
}
static function format_commit($atts, $commit) {
+ $out = '';
+
preg_match('/^....-..-../', $commit->committed_date, $m);
+ $date = $m[0];
- $result = $m[0].' ';
+ $title = htmlspecialchars($commit->title, ENT_NOQUOTES|ENT_HTML5|ENT_SUBSTITUTE, 'UTF-8', FALSE);
- if($atts['author']==null || $atts['author']!='none')
- $result .=
- __('by', 'linuxfoo-gitlab').' '.$commit->author_name;
-
- $result .=
+ $out .=
+ $date.' '.
+ __('by', 'linuxfoo-gitlab').' '.$commit->author_name.
': '.
- ''.$commit->short_id.' '.
- htmlspecialchars($commit->title, ENT_NOQUOTES|ENT_HTML5|ENT_SUBSTITUTE, 'UTF-8', FALSE);
+ ''.$commit->short_id.' '.$title;
- return $result;
+ return $out;
}
static function format_commit_stats($atts, $commits_count, $branch) {
- return
- (
- ($commits_count==0)
- ? __('No commits', 'linuxfoo-gitlab')
- /* translators: %d: maximum number of commits displayed */
- : sprintf(__('Last %d commits', 'linuxfoo-gitlab'), $commits_count)
- ).
- (is_null($branch) ? '' : ' '.__('in branch', 'linuxfoo-gitlab').' "'.$branch.'"').
- (is_null($atts['since']) ? '' : ' '.self::format_since($atts['since'])).':';
+ $out = '';
+
+ if($commits_count==0) {
+ $out .=
+ __('No commits', 'linuxfoo-gitlab').
+ (is_null($branch) ? '' : ' '.__('in branch', 'linuxfoo-gitlab').' "'.$branch.'"').
+ (is_null($atts['since']) ? '' : ' '.('since '.$atts['since'].' ago')).'.';
+ }
+ else {
+ $out .=
+ /* translators: %d: maximum number of commits displayed */
+ sprintf(__('Last %d commits', 'linuxfoo-gitlab'), $commits_count).
+ (is_null($branch) ? '' : ' '.__('in branch', 'linuxfoo-gitlab').' "'.$branch.'"').
+ (is_null($atts['since']) ? '' : ' '.self::format_since($atts['since'])).':';
+ }
+
+ return $out;
}
- static function commits_list($atts, $project_url) {
+ static function commits_list($atts, $project_url) {
$since = null;
if($atts['commits']=='none') {
@@ -144,13 +144,13 @@ class LinuxfooGitlab {
'';
if($commits_count>0) {
- $out .= '';
+ $out .= ' '.
__('This project has currently no releases.', 'linuxfoo-gitlab').
- '';
foreach($commits as $commit) {
- $out .= ''.self::format_commit($atts, $commit).'';
+ $out .= '
';
+ $out .= '';
}
}
}
@@ -158,7 +158,7 @@ class LinuxfooGitlab {
return $out;
}
- static function releases_list($atts, $project_url) {
+ static function releases_list($atts, $project_url) {
$out = '';
if(is_null($atts['releases']) || $atts['releases']=='none') {
@@ -183,32 +183,32 @@ class LinuxfooGitlab {
else {
if(count($releases)==0) {
$out .=
- ''.
+ '
'. __('Latest release', 'linuxfoo-gitlab').': '. ''.$releases[0]->name.''. - '
'; + ''; } elseif($atts['releases']=='all') { $out .= - ''. + ''. __('Releases', 'linuxfoo-gitlab').': '. - '
'. - ''; + ''. + '