Skip to content

Commit

Permalink
Merge pull request #3 from TRMSC/footer-addons
Browse files Browse the repository at this point in the history
Footer addons
  • Loading branch information
TRMSC authored Jan 8, 2023
2 parents 66e049c + 9e6c574 commit f4df269
Show file tree
Hide file tree
Showing 8 changed files with 310 additions and 23 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Bludit - Statimize plugin

Customize visibility of static pages in the navigation bar by hiding their items.
Support for adding items to the footer is planned.
Since version v.0.2.0 it is possible to add links and an additional text block with html functionality to the footer.

## Compatibility

Expand Down
19 changes: 16 additions & 3 deletions languages/de_AT.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,23 @@
"plugin-data":
{
"name": "Statimize",
"description": "Sichtbarkeit statischer Seiten anpassen, indem deren Einträge aus der Navigationsleiste entfernt werden."
"description": "Ausgewählte Einträge statischer Seiten aus der Navigationsleiste entfernen und Links sowie Text oder HTML-Elemente im Footer einbinden."
},
"remove-header": "Einträge in der Navigationsleiste entfernen",
"remove-l1": "URLs statischer Seiten eingeben, um deren Einträge aus der Navigationsleiste zu entfernen.",
"remove-l2": "Für jede URL wird eine neue Zeile verwendet.",
"remove-tip": "Tip: URLs können komplett eingegeben bzw. kopiert werden - einmal vorkommende Teile reichen jedoch ebenso aus."
}
"remove-tip": "Tip: URLs können komplett eingegeben bzw. kopiert werden - einmal vorkommende Teile reichen jedoch ebenso aus.",
"links-header": "Verlinkungen im Footer einbinden",
"links-l1": "Links im Markdown-Format eingeben: der Linktext steht in eckigen Klammern, gefolgt von der URL in runden Klammern.",
"links-l2": "Für jeden Markdown-Link wird eine neue Zeile verwendet.",
"links-tip": "Markdown-Schreibweise: [Linktext](URL)",
"text-header": "Text zum Footer hinzufügen",
"text-l1": "Ergänzend zum Footertext in den Bludit-Einstellungen kann im folgenden Feld ein weiterer Textbaustein hinzugefügt werden.",
"text-tip": "Tip: Es kann reiner Text oder HTML-Code verarbeitet werden.",
"support-1": "Dieses Feature wird im aktuellen Theme (",
"support-2": ") nicht offiziell unterstützt, könnte jedoch kompatibel sein.",
"support-btn-1": "Feedback",
"support-3": "Dieses Feature steht für das aktuelle Theme (",
"support-4": ") noch nicht zur Verfügung.",
"support-btn-2": "Implementierung vorschlagen"
}
19 changes: 16 additions & 3 deletions languages/de_CH.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,23 @@
"plugin-data":
{
"name": "Statimize",
"description": "Sichtbarkeit statischer Seiten anpassen, indem deren Einträge aus der Navigationsleiste entfernt werden."
"description": "Ausgewählte Einträge statischer Seiten aus der Navigationsleiste entfernen und Links sowie Text oder HTML-Elemente im Footer einbinden."
},
"remove-header": "Einträge in der Navigationsleiste entfernen",
"remove-l1": "URLs statischer Seiten eingeben, um deren Einträge aus der Navigationsleiste zu entfernen.",
"remove-l2": "Für jede URL wird eine neue Zeile verwendet.",
"remove-tip": "Tip: URLs können komplett eingegeben bzw. kopiert werden - einmal vorkommende Teile reichen jedoch ebenso aus."
}
"remove-tip": "Tip: URLs können komplett eingegeben bzw. kopiert werden - einmal vorkommende Teile reichen jedoch ebenso aus.",
"links-header": "Verlinkungen im Footer einbinden",
"links-l1": "Links im Markdown-Format eingeben: der Linktext steht in eckigen Klammern, gefolgt von der URL in runden Klammern.",
"links-l2": "Für jeden Markdown-Link wird eine neue Zeile verwendet.",
"links-tip": "Markdown-Schreibweise: [Linktext](URL)",
"text-header": "Text zum Footer hinzufügen",
"text-l1": "Ergänzend zum Footertext in den Bludit-Einstellungen kann im folgenden Feld ein weiterer Textbaustein hinzugefügt werden.",
"text-tip": "Tip: Es kann reiner Text oder HTML-Code verarbeitet werden.",
"support-1": "Dieses Feature wird im aktuellen Theme (",
"support-2": ") nicht offiziell unterstützt, könnte jedoch kompatibel sein.",
"support-btn-1": "Feedback",
"support-3": "Dieses Feature steht für das aktuelle Theme (",
"support-4": ") noch nicht zur Verfügung.",
"support-btn-2": "Implementierung vorschlagen"
}
17 changes: 15 additions & 2 deletions languages/de_DE.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,23 @@
"plugin-data":
{
"name": "Statimize",
"description": "Sichtbarkeit statischer Seiten anpassen, indem deren Einträge aus der Navigationsleiste entfernt werden."
"description": "Ausgewählte Einträge statischer Seiten aus der Navigationsleiste entfernen und Links sowie Text oder HTML-Elemente im Footer einbinden."
},
"remove-header": "Einträge in der Navigationsleiste entfernen",
"remove-l1": "URLs statischer Seiten eingeben, um deren Einträge aus der Navigationsleiste zu entfernen.",
"remove-l2": "Für jede URL wird eine neue Zeile verwendet.",
"remove-tip": "Tip: URLs können komplett eingegeben bzw. kopiert werden - einmal vorkommende Teile reichen jedoch ebenso aus."
"remove-tip": "Tip: URLs können komplett eingegeben bzw. kopiert werden - einmal vorkommende Teile reichen jedoch ebenso aus.",
"links-header": "Verlinkungen im Footer einbinden",
"links-l1": "Links im Markdown-Format eingeben: der Linktext steht in eckigen Klammern, gefolgt von der URL in runden Klammern.",
"links-l2": "Für jeden Markdown-Link wird eine neue Zeile verwendet.",
"links-tip": "Markdown-Schreibweise: [Linktext](URL)",
"text-header": "Text zum Footer hinzufügen",
"text-l1": "Ergänzend zum Footertext in den Bludit-Einstellungen kann im folgenden Feld ein weiterer Textbaustein hinzugefügt werden.",
"text-tip": "Tip: Es kann reiner Text oder HTML-Code verarbeitet werden.",
"support-1": "Dieses Feature wird im aktuellen Theme (",
"support-2": ") nicht offiziell unterstützt, könnte jedoch kompatibel sein.",
"support-btn-1": "Feedback",
"support-3": "Dieses Feature steht für das aktuelle Theme (",
"support-4": ") noch nicht zur Verfügung.",
"support-btn-2": "Implementierung vorschlagen"
}
17 changes: 15 additions & 2 deletions languages/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,23 @@
"plugin-data":
{
"name": "Statimize",
"description": "Customize visibility of static pages in the navigation bar by hiding their items."
"description": "Remove selected entries of static pages from the navigation bar and include links as well as text or HTML elements in the footer."
},
"remove-header": "Remove items from navbar",
"remove-l1": "Type in static site urls for removing their items from the navbar.",
"remove-l2": "Use a several line for every url.",
"remove-tip": "Tip: You can type in respectively copy the urls completely but unique parts of the urls are also sufficient."
"remove-tip": "Tip: You can type in respectively copy the urls completely but unique parts of the urls are also sufficient.",
"links-header": "Add items to the footer",
"links-l1": "Enter links in Markdown format: the link text is in square brackets, followed by the URL in round brackets.",
"links-l2": "A new line is used for each Markdown link.",
"links-tip": "Markdown syntax: [Linktext](URL)",
"text-header": "Add text to the footer",
"text-l1": "In addition to the footer text in the Bludit settings, an additional block of text can be added in the following field.",
"text-tip": "Tip: Plain text or HTML code can be processed.",
"support-1": "This feature is not officially supported in the current theme (",
"support-2": ") but maybe it could be compatible.",
"support-btn-1": "Feedback",
"support-3": "This feature is not yet available for the current theme (",
"support-4": ") is not yet available.",
"support-btn-2": "Suggest implementation"
}
2 changes: 1 addition & 1 deletion metadata.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"author": "TRMSC",
"email": "",
"website": "https://github.com/TRMSC",
"version": "0.1.1",
"version": "0.2.0",
"releaseDate": "2022-12-03",
"license": "MIT",
"compatible": "3.14.1",
Expand Down
126 changes: 115 additions & 11 deletions plugin.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,47 +5,151 @@ class pluginStatimize extends Plugin {
public function init() {

$this->dbFields = array(
'concealItems' => ''
'removeNavLinks' => '',
'addFooterLinks' => '',
'addFooterText' => ''
);

}



public function form() {

$concealItems = preg_split("/\r\n|\n|\r/", $this->getValue("concealItems"));
foreach ($concealItems as $value) {
$entry .= '.nav-link[href*="'.trim($value).'"]{display: none;} ';
}
// ----------
// Save files
// ----------

// Prepare target path
$folder = explode('/', __FILE__);
$folder = $folder[count($folder)-2];
$file = PATH_PLUGINS.$folder.'/remove.css';
file_put_contents($file, $entry);
if (!is_dir(PATH_PLUGINS.$folder.'/data')) {
mkdir(PATH_PLUGINS.$folder.'/data');
}

// Prepare navbar (CSS)
$removeNavLinks = preg_split("/\r\n|\n|\r/", $this->getValue("removeNavLinks"));
foreach ($removeNavLinks as $value) {
$entry .= '.nav-link[href*="'.trim($value).'"]{display: none;} ';
}

// Save navbar content (CSS)
$fileCss = PATH_PLUGINS.$folder.'/data/remove.css';
file_put_contents($fileCss, $entry);

// Prepare footer links (JS)
$item .= 'items = [';
$addFooterLinks = preg_split("/\r\n|\n|\r/", $this->getValue("addFooterLinks"));
foreach ($addFooterLinks as $value) {
$item .= '"'.trim($value).'", ';
}
$item = rtrim($item, ', ');
$item .= ']; ';

// Prepare footer text (JS)
$item .= 'text = "<span>';
$prepare = addslashes(html_entity_decode($this->getValue("addFooterText")));
$split = preg_split("/\r\n|\n|\r/", $prepare);
foreach ($split as $value) {
$item .= $value.'<br>';
}
$item = rtrim($item, '<br>');
$item .= '</span>";';

// Save footer parts (JS)
$fileJs = PATH_PLUGINS.$folder.'/data/add.js';
file_put_contents($fileJs, $item);

// ----------
// Create DOM
// ----------

// Handle variables
global $site;
global $L;
$supported = array(
"smart",
"alternative",
"blogx",
"darktheme"
);
$inofficialSupport = '';
$noSupport = '';
$readonly = '';
if (!in_array($site->theme(), $supported)) {
$inofficialSupport =
'<div class="alert alert-warning">'.$L->get('support-1').$site->theme().$L->get('support-2')
.' <a href="https://github.com/TRMSC/bludit-statimize-plugin/issues" target="_blank"><button type="button" class="btn btn-light btn-sm">'
.$L->get('support-btn-1').'</button></a></div>';
$noSupport =
'<div class="alert alert-warning">'.$L->get('support-3').$site->theme().$L->get('support-4')
.' <a href="https://github.com/TRMSC/bludit-statimize-plugin/issues" target="_blank"><button type="button" class="btn btn-light btn-sm">'
.$L->get('support-btn-2').'</button></a></div>';
$readonly = 'readonly';
}

// Create settings for navbar
$html = '<h4>'.$L->get('remove-header').'</h4>';
$html .= '<p>'.$L->get('remove-l1').'<br>';
$html .= $L->get('remove-l2').'</p>';
$html .= '<textarea class="form-control" rows="3" name="concealItems" id="concealItems">'
.$this->getValue('concealItems').'</textarea>';
$html .= '<textarea class="form-control" rows="3" name="removeNavLinks" id="removeNavLinks">'
.$this->getValue('removeNavLinks').'</textarea>';
$html .= '<sub>'.$L->get('remove-tip').'</sub>';
$html .= $inofficialSupport;

// Create settings for footer links
$html .= '<hr><h4>'.$L->get('links-header').'</h4>';
$html .= '<p>'.$L->get('links-l1').'<br>';
$html .= $L->get('links-l2').'</p>';
$html .= '<textarea class="form-control" rows="3" name="addFooterLinks" id="addFooterLinks" '.$readonly.'>'
.$this->getValue('addFooterLinks').'</textarea>';
$html .= '<sub>'.$L->get('links-tip').'</sub>';
$html .= $noSupport;

// Create settings for footer text
$html .= '<hr><h4>'.$L->get('text-header').'</h4>';
$html .= '<p>'.$L->get('text-l1');
$html .= '<textarea class="form-control" rows="3" name="addFooterText" id="addFooterText" '.$readonly.'>'
.$this->getValue('addFooterText').'</textarea>';
$html .= '<sub>'.$L->get('text-tip').'</sub>';
$html .= $noSupport;

// Return DOM tree
return $html;

}



public function siteHead() {

// Get path for sources
$folder = explode('/', __FILE__);
$folder = $folder[count($folder)-2];
$file = HTML_PATH_PLUGINS.$folder.'/remove.css';
$file = HTML_PATH_PLUGINS.$folder;

// Load CSS and JS
$html = '<link rel="stylesheet" type="text/css" href="..'.$file.'/data/remove.css"/>';
$html .= '<script src="..'.$file.'/data/add.js"/></script>';
$html .= '<script src="..'.$file.'/statimize.js"/></script>';

// Return DOM tree
return $html;

}


$html = '<link rel="stylesheet" type="text/css" href="..'.$file.'"/>';

public function afterSiteLoad() {

// Create function call for preparing footer
global $site;
$html .= '<script>prepareFooter("'.$site->theme().'");</script>';

// Return DOM tree
return $html;

}


}
Loading

0 comments on commit f4df269

Please sign in to comment.