News Script

Anwendungen für Webseiten. Künstliche Intelligenz verwenden.
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 7752
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: News Script

Ungelesener Beitrag von Tommy Herrmann »

Wie beim Finanzamt - Seite 799, Absatz 18B, Ziffer 22 im 12. Untertitel :D
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 7752
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: News Script

Ungelesener Beitrag von Tommy Herrmann »

> Ja - also ich würde dennoch zur Beschreibung einer "MariaDB" neigen, wenn Du diese auch selbst verwendet hast. Weiterhin fehlt das Datum und die Versionsnummer und der Hinweis, dass die Verwendung als MIT-Lizenz übertragen wird, Du aber keinerlei Haftung für irgendwelche Nachteile oder Schäden übernimmst. Fehlt das, könnte Dich jemand bei Schaden haftbar machen.

> Weiterhin sind die Konfigurationen von TinyMCE immer noch unterschiedlich in den beiden Dateien, das ist unlogisch.

> Die erwähnten META-Tags müssen zwingend noch nachgetragen werden.
Volker
Moderator
Moderator
Beiträge: 1431
Registriert: Sa 12. Dez 2020, 22:35

Re: News Script

Ungelesener Beitrag von Volker »

So, habe die Scripte angepasst.

Echo ist raus bei login.php
Tiny bei add_news.php und edit_news.php ist gleich
Metatag bei news.php nach Tommys Vorgaben erweitert

Lizenz gibts keine, steht in der readme.txt und das man eben eine SQL Datenbank braucht.

Das ganze geht gleich in den aktuellen Download

Falls jemand das runter lädt und Probleme hat, kann ja hier fragen. Ist auch nur eine Laienhafte Umsetzung meiner neuen PHP Kenntnisse die ich mal testen wollte. Aber wer es brauchen kann, darf natürlich alles nach seinen Bedürfnissen anpassen oder ändern oder erweitern.

Hier nochmal der Download Link : https://www.niederastroth.de/news1/page3.php
Gruß Volker
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 7752
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: News Script

Ungelesener Beitrag von Tommy Herrmann »

... ist das jetzt so fertig (habe noch nicht geguckt)?

Baue das jetzt als Tutorial auch noch ein - mit dem Link zu.

https://www.niederastroth.de/news1/down ... sscript.7z
Volker
Moderator
Moderator
Beiträge: 1431
Registriert: Sa 12. Dez 2020, 22:35

Re: News Script

Ungelesener Beitrag von Volker »

Ist jetzt lauffähig und alles geändert was noch zu ändern war.
Gruß Volker
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 7752
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: News Script

Ungelesener Beitrag von Tommy Herrmann »

OK - lade es gleich nochmals runter.

Das kommt dann hier hin:

gelöscht/News/direkteinbau/Newsscript-Volker.html

Falls Du da spezielle Links zu Seiten von Dir haben möchtest, dann sage Bescheid.

Komme gerade nicht dazu das fertig zu erstellen.
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 7752
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: News Script

Ungelesener Beitrag von Tommy Herrmann »

Du hast versehentlich in der Datei "edit_news.php" diesen Verweis jetzt doppelt:

Code: Alles auswählen

<script src="../js/tinymce/tinymce.min.js"></script>


Weiterhin hast Du einen überflüssigen Ordner im Download: "Neuer Ordner"

Neue Ordner.jpg
Volker
Moderator
Moderator
Beiträge: 1431
Registriert: Sa 12. Dez 2020, 22:35

Re: News Script

Ungelesener Beitrag von Volker »

Ups
Hab ich nun auch wieder raus den neuen Ordner und doppelt script.

Ich kann auch die news.php mit Paginierung anbieten, damit es im dynamischen Iframe bleiben kann.

Code: Alles auswählen


<?php
require_once 'config.php';

$headerfarbe = '#0d6efd';
$bildBreite = 300;
$textHintergrund = '#ffffff';

$settingsResult = $conn->query("SELECT * FROM settings WHERE id = 1");
if ($settingsResult && $settingsResult->num_rows > 0) {
    $settings = $settingsResult->fetch_assoc();
    $headerfarbe = $settings['headerfarbe'] ?? $headerfarbe;
    $bildBreite = (int)($settings['bild_breite'] ?? $bildBreite);
    $textHintergrund = $settings['text_hintergrund'] ?? $textHintergrund;
}

// Paginierung
$newsProSeite = 3;
$seite = isset($_GET['seite']) ? max(1, (int)$_GET['seite']) : 1;
$offset = ($seite - 1) * $newsProSeite;

// Gesamtanzahl News
$anzahlResult = $conn->query("SELECT COUNT(*) AS gesamt FROM news");
$gesamtNews = ($anzahlResult && $anzahlResult->num_rows > 0) ? (int)$anzahlResult->fetch_assoc()['gesamt'] : 0;
$gesamtSeiten = ceil($gesamtNews / $newsProSeite);

// Aktuelle News laden
$newsResult = $conn->query("SELECT * FROM news ORDER BY datum DESC LIMIT $newsProSeite OFFSET $offset");
?>

<!DOCTYPE html>
<html lang="de">
<head>
    <meta charset="UTF-8">
	 <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">   
    <title>News</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
    <style>
        .news-image {
            max-width: <?= $bildBreite ?>px;
            height: auto;
            margin-bottom: 10px;
        }
        .header {
            background-color: <?= htmlspecialchars($headerfarbe) ?>;
            color: white;
            padding: 20px;
            border-radius: 5px;
        }
        .card-text {
            background-color: <?= htmlspecialchars($textHintergrund) ?>;
            padding: 15px;
            border-radius: 5px;
        }
    </style>
    <script>
      window.addEventListener("load", fenster);
      window.addEventListener("resize", fenster);

      function fenster() {
        if (parent.document.getElementsByTagName("iframe")[0]) {
          parent.document.getElementsByTagName("iframe")[0].style.height =
            document.getElementsByTagName("html")[0].offsetHeight +'px';
        }
      }
    </script>
</head>
<body class="bg-light">
<div class="container mt-4">
    <div class="header mb-4">
        <h1>Aktuelle News</h1>
    </div>

    <?php if ($newsResult && $newsResult->num_rows > 0): ?>
        <?php while ($news = $newsResult->fetch_assoc()): ?>
            <div class="card mb-4">
                <div class="card-body">
                    <h4 class="card-title"><?= htmlspecialchars($news['titel']) ?></h4>
                    <p class="text-muted"><?= date('d.m.Y', strtotime($news['datum'])) ?></p>

                    <div class="row g-3 align-items-start">
                        <?php if (!empty($news['bild']) && file_exists('uploads/' . $news['bild'])): ?>
                            <div class="col-md-4">
                                <img src="uploads/<?= htmlspecialchars($news['bild']) ?>" class="img-fluid rounded shadow-sm news-image" alt="Bild">
                            </div>
                            <div class="col-md-8">
                        <?php else: ?>
                            <div class="col-12">
                        <?php endif; ?>
                            <div class="card-text"><?= nl2br($news['text']) ?></div>
                        </div>
                    </div>
                </div>
            </div>
        <?php endwhile; ?>

        <!-- PAGINIERUNG Wert kann hier geändert werden-->
        <?php if ($gesamtSeiten > 1): ?> 
            <nav>
              <ul class="pagination justify-content-center">

                <!-- Zurück -->
                <li class="page-item <?= ($seite <= 1) ? 'disabled' : '' ?>">
                  <a class="page-link" href="?seite=<?= max(1, $seite - 1) ?>">Zurück</a>
                </li>

                <!-- Seitenzahlen -->
                <?php for ($i = 1; $i <= $gesamtSeiten; $i++): ?>
                  <li class="page-item <?= ($i === $seite) ? 'active' : '' ?>">
                    <a class="page-link" href="?seite=<?= $i ?>"><?= $i ?></a>
                  </li>
                <?php endfor; ?>

                <!-- Weiter -->
                <li class="page-item <?= ($seite >= $gesamtSeiten) ? 'disabled' : '' ?>">
                  <a class="page-link" href="?seite=<?= min($gesamtSeiten, $seite + 1) ?>">Weiter</a>
                </li>

              </ul>
            </nav>
        <?php endif; ?>

    <?php else: ?>
        <div class="alert alert-info">Noch keine News vorhanden.</div>
    <?php endif; ?>
</div>
</body>
</html>


Sieht dann so aus : https://www.niederastroth.de/news1/index.html

Ich dachte mehr als 3 News schreibt eh keiner rein ;)

Wenn es nach der 2. Seite wieder oben stehen soll, kann man noch das hier einbauen :

Code: Alles auswählen

<script>
  // Beim Laden der Seite wird das Elternelement (iframe-Umgebung) nach oben gescrollt
  window.addEventListener("load", function () {
    if (window.parent && window.parent.scrollTo) {
      window.parent.scrollTo({ top: 0, behavior: "smooth" });
    }
  });
</script>

Download der überarbeiteten news.php mit Sprung nach oben und Paginierung:https://www.niederastroth.de/news1/news.7z
Gruß Volker
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 7752
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: News Script

Ungelesener Beitrag von Tommy Herrmann »

Na ja - auch wenn ich extrem wenige News eintrage - sind es bei mir gerade 15 Seiten von je 5 Einträgen:

https://www.mobirise-tutorials.com/News/direkteinbau/

Ich habe heute keine Zeit mehr und kann das nicht angucken.

Wenn ich das auf meiner Tutorialseite beschreiben soll, dann brauche ich aber eine stabile Version und nicht ständig etwas anderes. Ich muss das sonst lassen, denn ich kann nicht ein Tutorial schreiben, das am Ende hinten und vorne nicht zum Script im Download passt.

Dann wäre ein alternativer Download gut.

Ein Sprung nach oben - so wie jetzt - geht gar nicht. Der Sprung muss dann an den Anfang des News-Scripts gehen, so wie z.B. hier:

https://www.mobirise-tutorials.com/News/

Ich muss für heute Schluss machen ...
Volker
Moderator
Moderator
Beiträge: 1431
Registriert: Sa 12. Dez 2020, 22:35

Re: News Script

Ungelesener Beitrag von Volker »

Ja klar, das ist jetzt in der alternativen news.php so geändert, dass es zum ersten Beitrag springt:

https://www.niederastroth.de/news1/news.7z

Einfach die vorhandene news.php durch die neue Version ersetzen.
Das Script sollte stabil laufen mit beiden Versionen ;)

In der zip wurde die neue news.php ebenfalls eingebunden und somit ist der aktuelle Download als dyn. Iframe nutzbar

https://www.niederastroth.de/news1/page3.php

Test hier : https://www.niederastroth.de/news1/index.html

Das ist jetzt auch gleichzeitig die Endversion. Wenn ich noch was an der news.php ändern sollte, kann man die ja einfach ersetzen. Der Rest des Scriptes bleibt davon unberührt.

Ich könnte z.B. noch die Uhrzeit anzeigen lassen oder sonstige schicke Sachen. Die news.php ist das eigentliche Backend und die einzige Datei die in die Webseite eingebunden werden muss. Die könnte man bei einer PHP Seite sogar mit include einbinden. ;)
Gruß Volker
Benutzeravatar
zen2cool
Mitglied (Level 6)
Mitglied (Level 6)
Beiträge: 55
Registriert: Do 24. Dez 2020, 14:01
Wohnort: Belgium
Kontaktdaten:

Re: News Script

Ungelesener Beitrag von zen2cool »

Hallo,

Ich habe Ihren Beitrag gelesen.
Ich liebe PHP

Probieren Sie Folgendes:

Ein Installationsformular.
Eine Überschreibbestätigung, falls die Datenbank bereits vorhanden ist.
Installationsverzeichnis automatisch löschen
Erstellen der Datei config.php (gemeinsam für Nachrichten und den Verwaltungsteil)

Entpacken Sie die Datei in ein Verzeichnis auf Ihrem FTP und führen Sie

Code: Alles auswählen

https://wwww.yourwebsite.de/yourdirectory/install/install.php
Rudy

Link to download
https://www.unsitepourtous.be/DEMO/newsmitinstall.zip

Bild
Bild
Visit my website !
zen2cool pack V2.1 updated 09/01/2021
Volker
Moderator
Moderator
Beiträge: 1431
Registriert: Sa 12. Dez 2020, 22:35

Re: News Script

Ungelesener Beitrag von Volker »

Hi Rudy,

danke dafür :D

Werde ich mit einbauen damit die Installation leichter für die Nutzer wird.
Gruß Volker
Benutzeravatar
zen2cool
Mitglied (Level 6)
Mitglied (Level 6)
Beiträge: 55
Registriert: Do 24. Dez 2020, 14:01
Wohnort: Belgium
Kontaktdaten:

Re: News Script

Ungelesener Beitrag von zen2cool »

Hinweis: Ich habe die Admin-Dateien so geändert, dass sie auf die vom Installationsprogramm generierte Datei „config.php“ verweisen.

Es ist nicht mehr erforderlich, eine „config.php“-Datei im „admin“-Verzeichnis zu haben.

----------------

Note: I've modified the admin files to point to the "config.php" file generated by the installer.
It's no longer necessary to have a "config.php" file in the "admin" directory.
Visit my website !
zen2cool pack V2.1 updated 09/01/2021
Volker
Moderator
Moderator
Beiträge: 1431
Registriert: Sa 12. Dez 2020, 22:35

Re: News Script

Ungelesener Beitrag von Volker »

Ich hab es bereits in die neue zip gepackt. Kannst ja mal testen ob das so richtig war ;)

https://www.niederastroth.de/news1/page3.php
Gruß Volker
Volker
Moderator
Moderator
Beiträge: 1431
Registriert: Sa 12. Dez 2020, 22:35

Re: News Script

Ungelesener Beitrag von Volker »

Hab es gerade mal getestet - Klappt super Rudy !
Nochmals vielen Dank für das tolle Install Script :tu:
Gruß Volker
Benutzeravatar
zen2cool
Mitglied (Level 6)
Mitglied (Level 6)
Beiträge: 55
Registriert: Do 24. Dez 2020, 14:01
Wohnort: Belgium
Kontaktdaten:

Re: News Script

Ungelesener Beitrag von zen2cool »

We can fix it to be better.

- I think we need a recaptcha to secure the administration section.
- Give the admin the ability to change their password (admin settings)
- ..
Visit my website !
zen2cool pack V2.1 updated 09/01/2021
Volker
Moderator
Moderator
Beiträge: 1431
Registriert: Sa 12. Dez 2020, 22:35

Re: News Script

Ungelesener Beitrag von Volker »

Admin Passwort kann ja mit change_password.php geändert werden und soll es ja auch nach Installation ;)
Klar kann man das Script sicherer machen, aber ich bin PHP Anfänger und habe das mal als kleines Script für Leute gedacht, die schnell Aktuelles auf der Webseite anzeigen lassen möchten und das mit entsprechender Farbanpassung
an ihr vorhandenes Layout.

Aber jeder kann das Script gerne weiter verbessern, da ist keinerlei Lizenz drauf ;) Fühl Dich frei :D
Gruß Volker
Volker
Moderator
Moderator
Beiträge: 1431
Registriert: Sa 12. Dez 2020, 22:35

Re: News Script

Ungelesener Beitrag von Volker »

So, noch zum Abschluss ein Weg um die news.php in einer PHP Seite mit include einzubinden ( geht auch in Mobirise)

Die Installation des News Script wie gehabt. Dann bitte die news.php aus dem Script mit der neuen news.php die ihr hier runter laden könnt ersetzen. https://www.niederastroth.de/include/newsinclude.7z

Allerdings sollte jetzt alles in dem Verzeichnis liegen, in dem auch die Webseite liegt. Andernfalls müsst ihr den include Befehl entsprechend anpassen.

In Mobirise muss die Seite in der die news.php includiert werden soll die Endung .php haben. Also z.B. aktuell.php.
Nehmt einen leeren HTML Block und gebt dort folgendes ein: Siehe Screenshot:
include.png
Die include Version könnt ihr hier sehen: https://www.niederastroth.de/include/

Die neue news.php hat kein HTML und CSS. Die Farben werden nach wie vor aus der Datenbank gelesen. Einzig das CSS für die Höhe der Card und die Abrundung werden aus der CSS von Mobirise genommen.
Gruß Volker
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 7752
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: News Script

Ungelesener Beitrag von Tommy Herrmann »

Moin,

also - ich habe mich entschlossen das zunächst wieder zu löschen.

Ich warte dann mal ab, bis das alles so halbwegs fertig ist und auch sicher.

Ich habe selbst bereits häufig Sicherheitsprobleme erlebt und möchte keine Verantwortung für mögliche Sicherheitslücken bei anderen übernehmen, wie beispielsweise ungeschützte Konfigurationsdateien oder nicht abgesicherte Upload-Verzeichnisse. Da ich mit PHP, SQL und den entsprechenden Sicherheitsaspekten nicht vollständig vertraut bin, kann ich die Sicherheit dieser Skripte nicht abschließend beurteilen.

Weiterhin habe ich ja eigentlich exakt diese Anwendung in perfektem Zustand bereits seit Jahren vom Werner mehrfach am Server und das wäre jetzt für mich persönlich ja nur nochmals die gleiche Anwendung:

https://www.mobirise-tutorials.com/News/direkteinbau/

Es gibt dort auch eine Seitenübersicht, eine Suchfunktion und vieles, vieles mehr.

Es können auch beliebig viele Autoren mit ihren eigenen Zugangsdaten eingetragen werden. Ebenso ist die Verwaltung mit einem eigenen Editor optimal angepasst:

News-Administrator-Editor.jpg


Dennoch - tolle Entwicklung! :tu:
Volker
Moderator
Moderator
Beiträge: 1431
Registriert: Sa 12. Dez 2020, 22:35

Re: News Script

Ungelesener Beitrag von Volker »

Ich habe Chat GPT mal über alle Scripte gucken lassen mit der Bitte diese sicherer zu machen.
Im aktuellen Download liegen also jetzt die Scripte so, wie Chat GPT den Schutz empfohlen hat. Ob das nun 100 % Sicher ist weiß ich natürlich auch nicht.

Eingebaut wurde:
Prepared Statements
CSRF-Schutz
Session-/Rechteprüfung
Bildtausch mit optionalem Bild-Upload
Dateilöschung bei Bildwechsel/Löschung
.htaccess damit die config.php geschützt wird


Natürlich übernehme ich auch keine Haftung für Schäden, da es sich hier um ein privates Hobby Projekt handelt.

Wichtig ist das admin Passwort nach Installation sofort zu ändern ! Aber ich denke das ist jedem klar ;)
Gruß Volker
Antworten

Wer ist online?

Mitglieder in diesem Forum: Amazon [Bot] und 4 Gäste