// lastpostings 0.7.0
// Hubzilla-Umgebung laden
require_once '/var/www/my_webapp/www/boot.php';
// Anzahl der anzuzeigenden Postings
define('NUMOFPOSTS', 5);
// Postings oder Karten oder Artikel
define('ITEMTYPE', 0); // 0 = Posting, 6 = Karte, 7 = Artikel
// Länge des angezeigten Auszugs
define('EXCERPT', 512);
// Kanal-ID und Kanalname – nur als Fallback, eigentlich nicht nötig
define('MYUID', 51);
define('CHANNAME', 'pepechan');
// Bild-Anzeige: 0 = keine Bilder, 1 = unverändert (Default), 2 = skaliert (max. 380×256)
define('SHOWIMG', 1);
// Bilder im gerenderten HTML je nach SHOWIMG darstellen
function process_images($html) {
if (SHOWIMG === 0) {
// Bilder komplett entfernen
return preg_replace('/]*>/i', '', $html);
}
if (SHOWIMG === 2) {
// Bilder skalieren: max. 380px breit, max. 256px hoch, Seitenverhältnis bleibt erhalten
return preg_replace_callback(
'/
]*>/i',
function ($m) {
$tag = $m[0];
// Vorhandene width/height-Angaben entfernen, damit CSS greift
$tag = preg_replace('/\s(width|height)\s*=\s*("[^"]*"|\'[^\']*\'|\S+)/i', '', $tag);
// Skalierungs-Style einfügen
if (preg_match('/\bstyle\s*=\s*("([^"]*)"|\'([^\']*)\')/i', $tag, $s)) {
$style = $s[2] . ' max-width:380px; max-height:256px; width:auto; height:auto;';
$tag = str_replace($s[0], 'style="' . $style . '"', $tag);
} else {
$tag = preg_replace('/
channel['channel_name']) ? $a->channel['channel_name'] : CHANNAME;
// SQL-Abfrage: Nur eigene, sichtbare, öffentliche Postings
// allen anderen Kram rigoros aussortieren… vor allem die gelöschten Items
$sql = sprintf(
"SELECT id, mid, llink, title, body, created FROM item
WHERE uid = %d
AND item_origin = 1
AND item_deleted = 0
AND item_unpublished = 0
AND item_hidden = 0
AND item_pending_remove = 0
AND item_private = 0
AND verb = 'Create'
AND obj_type = 'Note'
AND item_type = %d
AND mimetype = 'text/bbcode'
ORDER BY id DESC LIMIT %d",
intval($channel_id),
ITEMTYPE,
NUMOFPOSTS
);
$result = q($sql);
// Ergebnisse verarbeiten für MySQL UND PostgreSQL
$items = [];
if (is_array($result)) {
$items = $result;
} elseif ($result && property_exists($result, 'num_rows') && $result->num_rows > 0) {
while ($item = $result->fetch()) {
$items[] = $item;
}
}
// Ausgabe
if (!empty($items)) {
echo '
Keine eigenen Beiträge gefunden.
'; }