Hallo Gerhard, ich habe es nur durch einen externen (kostenpflichtigen) Proxy-Server und einen kostenlosen Cronjob (Abholdienst) hinbekommen. Das ist natürlich nicht "alltagstauglich"! Hab Vertrauen und Geduld - unsere Spezialisten bekommen da was hin!
Grüße vom Arndt
Themen bei der Community für Transportunternehmer und Führungskräfte der Transport- und Logistikbranche:
mein script hat allmählich Pluginreife erreicht und ich würde es erstmal als privates Plugin abgeben.
da man die Gruppenrechte festlegen kann, lässt es sich gleich im Hauptforum testen z.b. nur für Admins
bei der Festlegung der Teaserbilder habe ich mich an Kipper-Spedition gehalten und das erste angehängt und eingefügte Bild (xembbed) ausgewählt.
wenn bei das dir @Gerhard auch so ist, hättest du wenig Arbeit. Es genügt, dass ein berechtigtes Mitglied den Startbeitrag eines jeden Themas liest. Das Plugin "lernt" so mit der Zeit.
Wolfgang scheint einen anderen Weg zu gehen und Bilder im Startbeitrag extra zu markieren durch eine class
bei Interesse bräuchte ich die Boardnr Sollte es nicht gefallen, lässt es sich rückstandsfrei deinstallieren, weil die Beiträge nicht editiert werden müssen.
ich räume zwar gerade mein Script auf und um, weil manche Sackgassen noch ihre Spuren darin gelassen haben. (passwort-Foren bieten noch einige Überraschungen ...) Trotzdem habe ich gerade die v0.003 verschickt, denn an meiner Datenstruktur brauche ich (hoffentlich) nichts mehr ändern.
Solltet ihr versuchen, mit einer Kopie zu arbeiten, wird es nicht funktionieren, weil xobor nicht alle pluginNamen wandelt.
hoffe, das nach einem Update mein Code durchschaubarer wird
const BildExtraktor="https://www.hilfe-tricks-tipps.de/page-104774-64.html", // Link zum Bild-Extraktor, zu "Eigene Seiten" PluginName="v4last", // Plugin-Name (wie oben beschrieben) WortLimit=60, // Textlänge durch Anzahl der Worte bestimmen HinweisFenster="• Der Bild-Extractor wird geöffnet und sucht nach Bilder im Forum.\n• Aktuell stehen Bilder aus dem Thema zur Verfügung.\n• Mit einem Klick auf das Bild wird es im ersten Beitrag gespeichert.\n• Unter 'Beiträge der letzten Tage' erscheint dann das Vorschaubild.";
<div class="imgTool"> <h3><b>Der Forum Bild-URL-Extraktor</b></h3> <div class="hint"> • Die gewünschte Bildgröße kann während der Suche angepasst werden.<br> • Aktuell werden Bilder aus dem Thema angezeigt, durch eine andere URL kann die Suche erweitert werden.<br> • Über die Bild‑Verlinkung lässt sich das Originalbild in voller Größe einsehen.<br> {{user_admin==true.start}}<span class="hint_del">• Ein Klick auf das Vorschaubild bringt die Auswahl automatisch nach „Letzte Beiträge“.</span>{{user_admin==true.end}} </div>
<div class="imgTool"> <h3><b>Der Forum Bild-URL-Extraktor</b></h3> <div class="hint"> • Die gewünschte Bildgröße kann während der Suche angepasst werden.<br> • Aktuell werden Bilder aus dem Thema angezeigt, durch eine andere URL kann die Suche erweitert werden.<br> • Über die Bild‑Verlinkung lässt sich das Originalbild in voller Größe einsehen.<br> {{user_admin==true.start}}<span class="hint_del">• Ein Klick auf das Vorschaubild bringt die Auswahl automatisch nach „Letzte Beiträge“.</span>{{user_admin==true.end}} </div>
/* Kopieren */ function copyToClipboard(imgUrl,e){navigator.clipboard.writeText(imgUrl);copyInfo.style.left=e.pageX+10+"px";copyInfo.style.top=e.pageY-10+"px";copyInfo.style.display="block";setTimeout(()=>copyInfo.style.display="none",4000);}
/* Hauptfunktion */ async function loadImages(){stopLoading=false; const url=threadUrl.value.trim(),minW=+minWidth.value||0,out=imgList;if(!url){out.innerHTML="Bitte den Link einer Seite eingeben!";return bgEnd()} bgStart(); imgCount.textContent="Gefundene Bilder: 0";out.innerHTML=`<i>Lade…</i> <button id="abortLoad">Abbrechen</button>`;abortLoad.onclick=()=>{stopLoading=true;out.innerHTML="<i>Abgebrochen.</i>";bgEnd()};const u=new URL(url,location.href), isThread=/\/t\d+/.test(u.pathname+u.search); if(!isThread){try{const h=await fetch(u).then(r=>r.text()); exHtml(h,minW,out)}catch{out.innerHTML="Beitrag kann nicht geladen werden!"; bgEnd()} return;} try{const first=await fetch(u).then(r=>r.text()),all=[first]; const maxPage=(()=>{let m=1;first.replace(/href="[^"]+?-([0-9]+)\.html"/g,(_,p)=>m=Math.max(m,+p));return m})(); for(let p=1;p<=maxPage&&!stopLoading;p++){const pageUrl=u.href.replace(/\.html$/,`-${p}.html`);const html=await fetch(pageUrl).then(r=>r.text()).catch(()=>"");if(html)all.push(html);} if(!stopLoading)exThread(all,minW,out);}catch{out.innerHTML="Seite kann nicht geladen werden!"; bgEnd();} }
Ich finde, die Anwendung wertet den Bereich „Letzte Beiträge“ optisch deutlich auf. Meiner Meinung nach werden insbesondere neue Besucher dadurch eher dazu angeregt, weitere Beiträge anzuklicken und sich im Forum umzusehen, als dies ohne die Anwendung der Fall wäre.
Wenn ich wieder einmal eine solche Idee habe, bist du mit deinem Xobor-Wissen natürlich wieder gefragt.
Themen bei der Community für Transportunternehmer und Führungskräfte der Transport- und Logistikbranche:
Fehlersuche beim Einbau "Letzte Beiträge" mit Bild und Themen-Text - Manuell und gezielt einsetzen!
Hallo Wolfgang und auch Arndt, jetzt habt ihr mich damit doch gelockt, danke fürs Mich-Einbeziehen, passt doch eigentlich gut auch zu uns, besonders seitdem man manuell auswählen kann, sehr coole Idee merke ich inzwischen.
Vielleicht hab ich ausnahmsweise mal alles richtig gemacht, aber es gab eine Unregelmäßigkeit bei mir, es gibt nur ein Kästchen "Template Variable aktivieren" (dann halt stattdessen aktiviert),
nicht wie geplant
Zitat von Wolfgang im Beitrag #17Danach das Kästchen "Diese Seite als Template inkl. Template Variablen ausführen " aktivieren und den folgenden Code einfügen und abspeichern!
Wenn ich dann auf die Lupe (links unten von einem der Bild-Platzhalter der Letzten Beiträge klicke) erscheint dies:
Wie auch schon nach Einfügen des Codes: alles in einer Zeile, statt sauber übereinander. Darf das?
Wenn ich auf Seite bearbeiten klicke erscheint es so: