WBCE CMS – Way Better Content Editing.
You are not logged in.
Ich würde ein Modul suchen mit welchem ich eine Mitarbeiterzeitschrift (analog zur Prinzausgabe) im pdf Format zum online lesen anbieten kann.
Offline
ich würde da auf solche PDF Flipbook Converter ausweichen.
Kleine Übersicht, was es da so gibt:
https://fliphtml5.com/learning-center/d … en-teilen/
oder das hier: bietet Selbsthosting für das fertige Pageflip Paket an:
Offline
florian, jps77
ich würde da auf solche PDF Flipbook Converter ausweichen.
Kleine Übersicht, was es da so gibt:
https://fliphtml5.com/learning-center/d … en-teilen/oder das hier: bietet Selbsthosting für das fertige Pageflip Paket an:
Danke für den Tipp, das schau ich mir an
Offline
Ich habe mich jetzt dazu entschieden dafür die Download Gallery 3 zu verwenden
weil es einfach nur .pdf Dateien sind und es mit PDF Flipbook Converter einfach zu kompliziert für den Anwender wird.
Jetzt meine Frage zum Modul "Download Gallery 3"
wäre es einfach umsetzbar das bei klick auf Download die Datei in einem neuen Fenster geöffnet wird anstatt diese zu speichern?
Last edited by jps77 (31.01.2023 13:06:54)
Offline
Für einen einfachen Downloader habe ich das alte Modul "DirList" genommen. Sehr einfach zu bedienen. Ein Verzeichnis im Media erstellen, da alle PDF reingekippt, im Frontend einen Abschnitt mit dem Modul erstellt und als Ziel eben jenes Mediaverzeichnis ausgewählt.
Vorteil: wenn eine neue oder geänderte PDF Datei hochgeladen wird, erzeugt es automatisch den Downloadlink und man hat keinen Kopfschmerz damit. Broken Links gibts damit auch nicht.
Siehe: https://www.korloyeurope.eu/pages/de/download.php
Nachtrag: die Textlinks unten sind es, nicht das obere (mit Blockrocker gemacht)
Last edited by byteworker (01.02.2023 08:38:19)
Offline
Warum nimmst du nicht einfach DirList dafür?
... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...
Offline
byteworker
DirList sieht von der Optik her leider nicht so schön aus, deshalb hab ich Download Gallery 3 genommen hier kann ich das Coverbild mit anzeigen
Das wär die betreffende Seite https://team-brandl.at/pages/personaljournal.php
Deshalb meine frage ob das einfach umsetzbar wäre das statt dem download die Datei in einem neuen Fenster geöffnet wird.
Offline
Primär hängt es ja von den Browsereinstellungen ab, ob ein PDF im Browser angezeigt oder heruntergelden oder ob nachgefragt wird.
Für links gibt es zwar das Attribut "download" um Downloads unabhängig dieser Einstellung zu erzwingen. Ein Gegenstück dazu um quasi "view" zu erzwingen ist mir nicht bekannt.
Mein Browser ist auf "im Browser anzeigen" eingestellt.
Damit passiert auf meiner Spielwiese folgendes: das PDF wird im neuen Tab geöffnet und parallel dazu heruntergeladen.
Auf deiner Seite hingegen wird ein Download angefangen, der aber fehlschlägt. Das legt die Vermutung nahe, dass mit deinen PDF's irgendwas nicht stimmt und deshalb der Browser noch nicht mal den Versuch unternimmt etwas darzustellen.
... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...
Offline
Bei DirList wird die Datei bei mir im neuen Browserfenster geöffnet,
mit Download Gallery wird sie jedoch heruntergeladen, also kanns an den Browsereinstellungen nicht liegen.
also bei mir wird Datei ganz normal geladen auf all meinen Geräten (PC, Iphone, Ipad)
Last edited by jps77 (01.02.2023 00:49:25)
Offline
Die DLG hat dafür die Einstellung "Dateien immer zum Download anbieten". Stell die mal ab, dann sollte die Browser-Einstellung ziehen.
Ich habe eine Amazon-Wishlist. Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal
Online
Wenn ich den Hacken raus nehme, kommt vom Server "Fehler 500"
Offline
Was steht im Log?
Ich habe eine Amazon-Wishlist. Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal
Online
Was steht im Log?
Nichts, keine Fehlermeldung
Offline
Es könnte daran liegen, dass die Zeitschriften mit durchschnittlich 20 MB nicht gerade klein sind.
Code allein macht nicht glücklich. Jetzt spenden!
Offline
aber mit DirList werden diese ohne Problem geöffnet
Kann es sein das der Hacken bei "Dateien immer zum Download anbieten" einfach nur den Download erlaubt oder verbietet
und nicht zum quasi umschalten zwischen Download und öffnen gedacht ist?
Last edited by jps77 (01.02.2023 22:42:57)
Offline
Also, auf einer Testinstallation mit einer Datei (520Kb) benimmt sich die DLG genau wie vorgesehen.
Haken gesetzt => Dialog zum Download bzw. je nach Browserkonfig Sofort-Download der Datei ins Download-Verzeichnis auf dem lokalen PC
Haken nicht gesetzt => PDF wird direkt angezeigt (allerdings im selben Browsertab)
Eventuell kann es sonst noch an irgendeiner serverseitigen Konfiguration liegen (.htaccess)
Code allein macht nicht glücklich. Jetzt spenden!
Offline
so jetzt alles durchforstet, in media/download gallery 3 lag eine .htaccess mit folgendem eintrag
<Files .htaccess>
order allow,deny
deny from all
</Files>
<Files ~ "\.(php|pl)$">
ForceType text/plain
</Files>
Options -Indexes -ExecCGI
hab diese testhalber einfach mal gelöscht, und schwubbs funktioniert es.
sollte die datei dort liegen?
das pdf wird jetzt allerdings im gleichen Fenster geöffnet, schöner wäre jedoch wenn dies in einem neuen Fenster/Tab passiert.
wo bzw. was müsste ich hierfür ändern?
Last edited by jps77 (02.02.2023 12:03:13)
Offline
Um die Links in neuem Browsertab zu öffnen, füge in der
/modules/download_gallery_3/templates/default/frontend/panelview/files_loop.phtml
in Zeile 67 vor
class="dlg3btn"
einfach noch
target="_blank"
ein.
Code allein macht nicht glücklich. Jetzt spenden!
Offline
jps77
Vielen Dank Florian
Offline
Nun sehe ich erst recht spät diesen Thread, aber vielleicht ist es ja dennoch interessant.
Wir haben auf der Seite evgb.de auch PDFs direkt ins WBCE-Frontend eingebunden.
Das Läuft dort über OneForAll und PDFjs, den PDF-Renderer den auch die meisten Browser für ihren Reader nutzen.
Den kann man sehr gut auch ins Theme integrieren.
Wenn Interesse besteht haue ich den Code für die Seiten-Einstellungen mal hier rein.
WBCE 1.5.4, PHP 8.1.16, NWI, FullCalendar, Extcal, OneForAll, NWI Anywhere
WBCE 1.6.0, PHP 8.2.3, NWI
Offline
florian
Ich würde jetzt einfach Mal schreiben:
HAU DAS REIN ... das Team von WBCE macht das auch.
Jede Innovation hilft alle anderen die diese Plattform nutzen.
... und vielen Dank für deine Unterstützung.
Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.5.4 • BE: 2.1.0 • PHP: 8.1.16 * 1. Projekt: FE: Simple responsive • BE: Argos * 2. Projekt: FE: hortal • BE: Argos * 3. Projekt: FE: WBCEZon • BE: Argos * 4. Projekt: FE: WBCETik • BE: Argos
Status Projekt 1-4: OK
Online
trnoelli, berny
Kommt!
Ich habe die Schleife dazu genutzt um das Drop-Down zur Auswahl der anzuzeigenden PDF zu bilden.
Wenn nur die letzte gezeigt werden soll kann das natürlich angepasst werden.
Die Felder PDF und TITEL müssen natürlich existieren. PDF ist auch vom Typ Datei Upload.
Kopfzeile:
<section class="box">
<header>
<h1>Gemeindebrief</h1>
<p>Ausgewählter Gemeindebrief:
<select name="selectGB" id="selectGB" onchange="changeGB();" style="width: fit-content; margin-left: 15px; padding-left: 5px; padding-right: 5px;">
Eintrag-Schleife:
<option value="[PDF]">[TITEL]</option>
Fußzeile:
Hier befindet sich der ganze PDFjs-Code und die Logic zum wechseln der PDFs.
Leute mit mehr Erfahrung in Javascript können hier sicherlich einiges optimieren.
Vieles im letzten Script-Tag stammt aus einem Beispiel der PDFjs Homepage, hier kann noch einiges eingestellt werden, z.B. wie die Seiten geladen werden sollen.
Da müsste ich mich aber auch selber erstmal wieder einlesen.
</select><a href="[PDF]" id="gemeindebrief-dl" style="margin-left: 15px;" download ><span class="fa fa-fw fa-download" style="font-size: 15px;"> </span></a>
</p>
</header>
<header style="text-align: center;">
<ul class="actions">
<li><button id="prev">vorherige</button></li>
<li><span>Seite: <span id="page_num"></span> / <span id="page_count"></span></span></li>
<li><button id="next">nächste</button></li>
</ul>
</header>
<div id="the-container"><canvas id="the-canvas" ></canvas></div>
<footer style="text-align: center;">
<ul class="actions">
<li><button id="prev_bottom">vorherige</button></li>
<li><span>Seite: <span id="page_num_bottom"></span> / <span id="page_count_bottom"></span></span></li>
<li><button id="next_bottom">nächste</button></li>
</ul>
</footer>
</section>
<script src="https://cdn.jsdelivr.net/npm/pdfjs-dist@2.16.105/build/pdf.min.js" integrity="sha256-H8KU7v2mAuWRoGwdWvNhyuI3VrWjNPwkIdX5rMzgOOU=" crossorigin="anonymous"></script>
<script>
// If absolute URL from the remote server is provided, configure the CORS
// header on that server.
var url = '';
// Loaded via <script> tag, create shortcut to access PDF.js exports.
// var pdfjsLib = window['pdfjs-dist/build/pdf'];
// The workerSrc property shall be specified.
pdfjsLib.GlobalWorkerOptions.workerSrc = 'https://cdn.jsdelivr.net/npm/pdfjs-dist@2.16.105/build/pdf.worker.min.js'
var pdfDoc = null,
pageNum = 1,
pageRendering = false,
pageNumPending = null,
canvas = document.getElementById('the-canvas'),
ctx = canvas.getContext('2d');
/**
* Get page info from document, resize canvas accordingly, and render page.
* @param num Page number.
*/
function renderPage(num) {
pageRendering = true;
// Using promise to fetch the page
pdfDoc.getPage(num).then(function(page) {
var container = document.getElementById('the-container');
var viewport = page.getViewport({scale: 1});
var scale = container.clientWidth / viewport.width;
viewport = page.getViewport({scale: scale});
canvas.height = viewport.height;
canvas.width = viewport.width;
var renderContext = {
canvasContext: ctx,
viewport: viewport
};
var renderTask = page.render(renderContext);
// Wait for rendering to finish
renderTask.promise.then(function() {
pageRendering = false;
if (pageNumPending !== null) {
// New page rendering is pending
renderPage(pageNumPending);
pageNumPending = null;
}
});
});
// Update page counters
document.getElementById('page_num').textContent = num;
document.getElementById('page_num_bottom').textContent = num;
}
/**
* If another page rendering in progress, waits until the rendering is
* finised. Otherwise, executes rendering immediately.
*/
function queueRenderPage(num) {
if (pageRendering) {
pageNumPending = num;
} else {
renderPage(num);
}
}
/**
* Displays previous page.
*/
function onPrevPage() {
if (pageNum <= 1) {
return;
}
pageNum--;
queueRenderPage(pageNum);
}
document.getElementById('prev').addEventListener('click', onPrevPage);
document.getElementById('prev_bottom').addEventListener('click', onPrevPage);
/**
* Displays next page.
*/
function onNextPage() {
if (pageNum >= pdfDoc.numPages) {
return;
}
pageNum++;
queueRenderPage(pageNum);
}
document.getElementById('next').addEventListener('click', onNextPage);
document.getElementById('next_bottom').addEventListener('click', onNextPage);
function changeGB() {
var gb_value = document.getElementById('selectGB').value;
pageNum = 1;
if (typeof gb_value === 'string' && gb_value.length === 0) {
console.log("no PDF selected");
} else if (gb_value === url) {
console.log("already Loaded PDF");
} else {
url = gb_value;
document.getElementById('gemeindebrief-dl').href = url;
/**
* Asynchronously downloads PDF.
*/
pdfjsLib.getDocument(url).promise.then(function(pdfDoc_) {
pdfDoc = pdfDoc_;
document.getElementById('page_count').textContent = pdfDoc.numPages;
document.getElementById('page_count_bottom').textContent = pdfDoc.numPages;
// Initial/first page rendering
renderPage(pageNum);
});
}
}
changeGB();
</script>
Ich hoffe es hilft.
Last edited by trnoelli (11.03.2023 19:53:44)
WBCE 1.5.4, PHP 8.1.16, NWI, FullCalendar, Extcal, OneForAll, NWI Anywhere
WBCE 1.6.0, PHP 8.2.3, NWI
Offline
Slugger, berny, awuest
Noch ein Hinweis:
Je nachdem welche Version eingesetzt wird hat PDFjs leider ein Problem mit einer Javascript-Variable die WBCE setzt.
In neueren Versionen sollte das dank Florian allerdings gefixed sein. (Siehe Issue 520)
Last edited by trnoelli (11.03.2023 20:27:07)
WBCE 1.5.4, PHP 8.1.16, NWI, FullCalendar, Extcal, OneForAll, NWI Anywhere
WBCE 1.6.0, PHP 8.2.3, NWI
Offline