Lataa sovellus nyt ja kokeile 10 päivää ilmaiseksi
Valuutta Valitse kieli Valitse alue

Yhdistä CMS:n Edit-napit PHP:n ja MySQL:n avulla

Kehittäjätunnuksella voit liittää MySQL-tietueen sen ID:n kautta Edit-napilla. Tämä opas näyttää, miten voit lukea ID:n PHP:llä, sijoittaa sen $LayoutHTML:iin ja mahdollistaa sisällön muokkaamisen suoraan verkkosivustollasi.

Vaatimukset ja tavoite

Tarvitset kehittäjätunnuksen bluetronix CMS:ään ja esimerkkisivun aiemmasta PHP- ja MySQL-ohjeesta. Tämä lukee tietueen MySQL-taulusta ja näyttää sen sisällön $LayoutHTML:ssa verkkosivustolla.

Nyt yhdistämme tämän tietueen Edit-nappiin. Näytetyissä kuvakaappauksissa taulun nimi on Test, ja näytettävän tietueen ID 1. Lisää ensin PHP-skripti ja sitten HTML-koodi esimerkkisivullesi.

1. PHP-skripti: Tietueen ja ID:n lukeminen

Avaa esimerkkisivullasi PHP-koodi -osio. Käytä seuraavaa skriptiä täydellisenä SELECT-esimerkkinä. Nykyinen tietokantayhteys $mysqli ja CMS-muuttuja $LayoutHTML ovat jo käytettävissä. Tarvitset lisää PHP-tageja täällä.

$ID = 1; // Beispiel: der Datensatz, der auf dieser Seite angezeigt wird

//---- SELECT ----
$stmt = $mysqli->prepare("SELECT ID, `Date`, Title, Description, Image FROM Test WHERE ID = ?");
$stmt->bind_param("i", $ID);
$stmt->execute();
$result = $stmt->get_result();

if($row = $result->fetch_assoc()) {
   $ID = $row["ID"];
   $Date = $row["Date"];
   $Title = $row["Title"];
   $Description = $row["Description"];
   $Image = $row["Image"];

   $LayoutHTML = str_replace("__DB_ID__", $ID, $LayoutHTML);
   $LayoutHTML = str_replace("__DB_Date__", htmlspecialchars($Date, ENT_QUOTES, "UTF-8"), $LayoutHTML);
   $LayoutHTML = str_replace("__DB_Title__", htmlspecialchars($Title, ENT_QUOTES, "UTF-8"), $LayoutHTML);
   $LayoutHTML = str_replace("__DB_Description__", htmlspecialchars($Description, ENT_QUOTES, "UTF-8"), $LayoutHTML);
   $LayoutHTML = str_replace("__DB_Image__", htmlspecialchars($Image, ENT_QUOTES, "UTF-8"), $LayoutHTML);
}

$stmt->close();

Kysely lataa ID, Päivämäärä, Otsikko, Kuvaus ja Kuva taulusta Testi. Uutta Edit-painikkeessa on ennen kaikkea mukana luettu ID. PHP korvataa myöhemmin paikan __DB_ID__ $LayoutHTML:ssa todellisella tietue-ID:llä. Muiden paikkojen täyttäminen tapahtuu edelleen päivämäärällä, otsikolla, kuvauksella ja kuvapolulla.

Päivämäärän, otsikon, kuvauksen ja kuvatiedostopolun arvot maskataan htmlspecialchars():illa HTML-ulostuloa varten. $ID = 1 toimii täällä vain kiinteänä esimerkkinä; muille tietueille käytät sopivaa arvoa.

Jos edellisestä oppaasta on vielä automaattisesti suoritettavissa oleva UPDATE-esimerkki, deaktivoit se ennen tätä testiä. Muutoin se voi ylikirjoittaa muutokset, jotka tallennat myöhemmin Edit-napilla seuraavassa sivun latauksessa.

2. HTML-skripti: Edit-napin lisääminen

Avaa nyt saman sivun HTML-koodi. Seuraava esimerkki näyttää täydellisen sivuosion, jossa on kuva, päivämäärä, otsikko ja kuvaus. Se on rakennettu luettavaksi HTML-esimerkiksi kuvakaappauksesi perusteella. Voit säilyttää olemassa olevat CSS-luokat ja kuvasi omalla sivullasi.

<section class="section py-5 sectionAll">
   <div class="container py-4">
      <div class="row g-5 align-items-center">
         <div class="colAll col-lg-6 wowOff fadeInLeft">
            <div class="ratio ratio-4x3 rounded-4 overflow-hidden">
               <img src="/CMS/cgi-bin/IMG.pl?__DB_Image__=700=500=1=100=1" class="w-100 h-100 object-fit-cover" alt="">
            </div>
         </div>
         <div class="colAll col-lg-6 wowOff fadeInRight">
            <span class="badge text-bg-secondary text-white mb-3">__DB_Date__</span>
            <!--bxEB_DSedit Test __DB_ID__ bxEB_DSedit-->
            <h2>__DB_Title__</h2>
            <p>__DB_Description__</p>
            <a href="#" class="btn btn-primary">Mehr erfahren</a>
         </div>
      </div>
   </div>
</section>

Ratkaiseva uusi rivi on suoraan päivämäärän jälkeen: edit-painike HTML-kommenttina. Se sisältää painikketyypin bxEB_DSedit, taulun nimen Testi ja paikan __DB_ID__. bluetronix CMS käsittelee tämän kommentin ja näyttää muokkaustilassa sopivan edit-kynän.

Ota Edit-nappi-rivi mukaan tarkasti mukaan kommenttimerkit. Taulun nimen ja ID:n on vastattava PHP-skriptiä. Jos oma taulusi on eri niminen, korvataan Test sekä SELECT-kyselyssä että Edit-napissa.

3. Näin PHP ja HTML toimivat yhdessä

Sivun latauksessa PHP ensin lukee tietueen taulusta Testi. Tämän jälkeen skripti korvataan paikat __DB_ID__, __DB_Date__, __DB_Title__, __DB_Description__ ja __DB_Image__ HTML:ssä. Esimerkissämme edit-painikeriviltä __DB_ID__ saadaan yhteys tauluun Testi ja tietue-ID:hen 1.

Sivusto näyttää edelleen kuvan ja tekstit tietokannasta. Lisäksi muokkausnappi tietää, minkä tietueen se avaa. Loppukäyttäjän ei tarvitse muokata PHP:tä tai HTML:ää.

4. Tuloksena: Tietueen muokkaaminen suoraan verkkosivustolla

Tallenna ensin PHP- ja HTML-koodi. Lataa esimerkkisivu muokkaustilassa uudelleen. Päivämäärän viereen ilmestyy nyt Muokkauskynä, kuten ensimmäisessä kuvakaappauksessa on nähtävissä.

Napauta muokkauskynää. CMS avaa muokkausmaskin Test – ID: 1 varten. Siellä voit muuttaa päivämäärää, otsikkoa, kuvausta ja kuvaa. Kuvalle on saatavilla olemassa oleva BX-Kuva-nappi.

Napauta Tallenna ja lataa verkkosivusto uudelleen. PHP lukee päivitetyt arvot MySQL:stä ja asettaa ne samoihin HTML-paikkamerkkeihin. Ulkoasu pysyy muuttumattomana; vain muokatut sisällöt päivitetään.

Yhteenveto

Yhdistääksesi edit-painikkeen lisää olemassa olevaan SELECT-kyselyyn ID, välitä se $LayoutHTML:n kautta __DB_ID__:hin ja lisää edit-painikkeen merkintä HTML:ssä halutun sisällön viereen. Tämän jälkeen vain asiaankuuluva tietue voidaan muokata suoraan verkkosivustolta.

UKK

mitä asiakkaat meiltä usein kysyvät

Mitä vaatimuksia tarvitsen tälle oppaalle?

Tarvitset kehittäjätunnukset ja CMS-sivun, joka jo lataa tietueen omasta MySQL-taulustaan PHP:n avulla.

Mitä minun pitää lisätä PHP-skriptiin?

SELECT-kyselyn on myös ladattava ID-sarakkeen. Tämän jälkeen korvataan paikat __DB_ID__ $LayoutHTML:ssa ladatulla tietue-ID:llä.

Mitä minun pitää lisätä HTML-koodiin?

Lisää halutun sisällön viereen muokkausnapin merkintä taulun nimellä ja ID-paikkamerkillä. Tässä esimerkissä taulun nimi on Test.

Pitääkö minun luoda olemassa olevat HTML-alueeni uusiksi?

Ei. Voit säilyttää olemassa olevat kuva-, päivämäärä-, otsikko- ja kuvaus-elementit ja lisätä muokkausnapin merkinnän haluttuun kohtaan.

Miksi automaattinen UPDATE-esimerkki on poistettava käytöstä?

Jatkuvasti automaattisesti suoritettu UPDATE kiinteällä testiarvolla voi peittää muutokset seuraavalla sivun avauksella.

Mitä tapahtuu, kun napautan muokkauskynää?

CMS avaa tietueen annetulla ID:llä annetusta taulusta. Esimerkissä tämä on Test – ID: 1. Siellä voit muokata ja tallentaa määritettyjä kenttiä.

Milloin muutetut sisällöt näkyvät verkkosivustolla?

Tallennuksen ja uudelleen lataamisen jälkeen PHP lukee päivitetyt tiedot MySQL:stä ja asettaa ne olemassa olevaan HTML-ulkoasuun.

CMS