ugrás a tartalomhoz

Hogy kell telepítőt csinálni egy saját tartalomkezelőnek?

lillilla · 2014. Már. 12. (Sze), 19.39
Próbálok leírni mindent, ami ahhoz kell, hogy egyáltalán segíteni tudjatok nekem, de ha hiányzik valami, kérlek, szóljatok. Van egy nem objektum orientált, saját, nagyon kezdetleges, fapados kis cms-em, egyetlen admin userrel, adatbázissal, pár mappával, admin felülettel. Hogy tudnék ehhez olyan telepítőt készíteni, mint mondjuk a wordpress 5perces telepítője, hogy az adatbázishoz nem hozzáférő felhasználó is tudja -pár adat beírásával, pár kattintással- a remélhetőleg pucér tárhelyére telepíteni. Mi kell ehhez? Hogy kell csinálni? Az a baj, hogy a wordpress vagy az egyéb tartalomkezelők telepítőjének a leírását sem tudom, hogy hol keressem,mert mindenhol csak tutorialok vannak,hogy hogy kell telepíteni,de magáról a háttérfolyamatról semmi. (bár gyanítom,hogy ha megtalálnám, sem sokat értenék belőle, jó lenne, ha valaki részletesen elmagyarázná). Nem kell valami nagy,összetett dologra gondolni, a lényeg, hogy egy szakdolgozat erejéig működjön.

Az eddigi gondolataim alapján van egy zip,amit a tárhelyre ftp-n fel kell tölteni kicsomagolva. Ez tartalmaz mindent. Ebben van egy telepítő fájl (hova kell tenni? mi legyen benne?) ami egyből elindul, ha még nem futott le (már van egy index.php-m, hogy csináljam,hogy előbb induljon el,mint az?) és miután lefutott és megcsinálta a dolgát, törölje le magát. (hogyan?)

Közben: gondolom, az adatok, amiket be kell kérni az elején, azok a következők:
az oldal címe,
az admin neve,
jelszava,

az adatbázis neve,
felhasználója,
jelszava

Milyen adatok kellenek még? Volt szó valami verziószám ellenőrzésről, hogy egyáltalán megengedje telepíteni, ilyet hogy tudok csinálni? Egyáltalán hogy állapítsam meg az innen-onnan összeszedett, iskolában szerzett összevissza tudásom alapján megírt tartalomkezelőmről,hogy mik azok a verziószámok,amik kellenek hozzá? Honnan tudom,hogy milyen verziószámú, milyen összetevők jelenlétében nem működik megfelelően? Le lehet ezt egyáltalán ellenőrizni valahogy?

Aztán, ha bekértem az adatokat,akkor azt hova tárolom le és melyek azok a fájlok, amikbe bele kell tennem ezeket az adatokat és hogyan?
Van egy mysql.php-m,amiben az adatbázis kapcsolat van, gondolom, ez az egyik,ami kelleni fog.
Ha jó a gondolatmenetem, akkor kell egy kiexportált adatbazis.sql fájl is,ami az adatbázist tartalmazza, és ez is kelleni fog.

A telepítőnek valahogy úgy kellene működni, hogy
-elindul
-bekéri az adatbázis adatokat
-beleteszi a mysql.php-ba, és az adatbazis.sql-be
-lefuttatja a adatbazis.sql fájlt,így bekerülnek az adatbázisba az adatok
-bekéri az admin nevét, jelszavát
-ezeket beleteszi a user táblába
-bekéri az oldal nevét
-ezt valahogy beteszi az index.php-ban lévő <title></title> és a szintén ugyanott lévő <header id="mainheader"></header> tagek közé
-kiír egy gombot,hogy arra kattintva törölhesse önmagát.

Nagyon lelkes vagyok,de eléggé letör, hogy a mondataimban több a kérdőszó,mint kellene. Tudnátok segíteni? Előre is köszönöm.
 
1

Ha van mar egy kezdetleges

mahoo · 2014. Már. 12. (Sze), 21.42
Ha van mar egy kezdetleges CMS-ed akkor szerintem ezt meg kellene tudnod csinalni...

Leirtad, hogy mikent kellene mukodnie a telepitonek, ami valojaban egy urlap adatainak feldogozason alapulna. Es ahogy olvasom, zip kicsomagolason, fajlszerkesztesen, SQL lekerdezeseken es fajl torlesen kivul mast nem kell megvalositanod.

Szoval en csinalnek a zip-en kivul egy install.php-et amivel bekernem az adatokat es vegrehajtanam a szukseges muveleteket. Vagy hol akadtal el?
2

A kezdetleges cms-t órán

lillilla · 2014. Már. 12. (Sze), 21.50
A kezdetleges cms-t órán csináltuk, a működését értem, de egyedül nem tudtam volna megírni. Leírtam, hogy hol akadtam el, de ha az nem elég, akkor segíts, kérlek, hogy mit írjak még le.
3

Szerintem csináld úgy, hogy

Karvaly84 · 2014. Már. 12. (Sze), 23.10
Szerintem csináld úgy, hogy írsz egy install.php-t, és azt hívod meg a telepítéshez, majd utána törlöd.

Ebben kérd be az adatbázis nevét, felhasználót, jelszót.

Majd létrehozod az adatbázis szerkezetét. Az ehhez szükséges utasításokat a már meglévő adatbázis alapján is létre lehet hozni. A normálisabb fejlesztőeszközökben keres valami olyasmi funkciót, hogy "generating DDL" vagy hasonló.

wiki

Ezután kérd be az adatokat, majd egy insert-el a megfelelő helyre told be az adatbázisba.

Továbbá ha pl. feltöltött fájloknak akarsz egy mappát akkor a PHP idevonatkozo része: Filesystem Functions

Ebből pl. olyanok érdekesek mint a "mkdir, chgrp, chmod, chown".

Előfordulhat, hogy nem tudsz írni a fájlrendszerre, ebben az esetben a ssh-n, vagy ftp kliensen kell engedélyt adnod a php-t futtató usernek, hogy tudjon könyvtárat létre hozni.
4

Az install.php-t hogy

lillilla · 2014. Már. 13. (Cs), 10.56
Az install.php-t hogy csinálom úgy meg,hogy az index.php előtt töltődjön be?

Hogy kell olyan php-t írni,ami "oldalakból" áll? Szóval,hogy
az elején kiír egy formot,
ha létezik a submit,akkor lementi az adatbazis.sql-t,
aztán ha elvégezte(de csak akkor), kiír mégegy formot(az előző form már nincs ott),
ha létezik a submit,akkor insert into az adatbázisba,
ha ez megvolt(de csak akkor) kiír mégegy formot,
ha létezik a submit,beleír az index.php-ba,
ha ez megtörtént(de csak akkor) kiír egy gombot,
ha létezik a submit, törli önmagát.
Ezt hogy lehet egyetlen fájllal megcsinálni? Sok-sok if-else kell bele?

Az install.php hogy írja bele az űrlapból átvett adatokat az adatbazis.sql-be? .sql fájlba lehet php kódot írni? Vagy egy változóba beleteszem az egész sql fájl tartalmát, hozzáfűzögetem az űrlapról átvett adatokat és valahogy lementem adatbazis.sql néven?

Ha ez valami csoda folytán összejön, hogy importálja be az adatbázisba az install.php az adatbazis.sql-t?
5

Az install.php-t hogy

Karvaly84 · 2014. Már. 13. (Cs), 15.27
Az install.php-t hogy csinálom úgy meg,hogy az index.php előtt töltődjön be?

Pl require_once, abban az esetben ha nincs konfigurálva adatbázis kapcsolat.

Pl az adatbázis eléréséhez az adatokat egy fájlban tárolod. (javaslom ez legyen PHP) ha fájl nem létezik, vagy nem hivatkozik érvényes adatokra akkor berántod a install.php-t és annak adod át a vezérlét ellenkező esetben építed az oldalt.

A további kérdések számomra alapvető hiányosságokról árulkodnak. Javaslom ásd bele magad a PHP-be önszorgalmi alapon, mert fogalmam nincs milyen iskolában tanulsz, de ha felmerülnek benned ezek a kérdések ott komoly gondok vannak. Segíteni már csak ugy tudnék ha megírnám helyetted kb. Az meg nem segítség.
6

Határidő?

Vilmos · 2014. Már. 13. (Cs), 15.29
1, Install.php csak akkor töltődik be az index.php előtt ha meghívod a böngészőből. Egyébként bele kell inkludálni az index-be. (akkor az lesz a gond, hogy mindig futni akar.) Jobb ha külön program a telepítés.

2, Folyamatot megvalósító index.php-t például a hirek.php mintájára írhatsz.
A php-nek tudnia kell, a weboldal melyik lépésnél tartott amikor ő meghívódott, és lehetőség szerint indítja majd a következő lépést, vagy ismétli az előzőt. Feltételekkel most ne foglalkozzunk, nézzük mit lehet tenni általában. Használjunk mondjuk egy "lepes" nevű változót. Ez fogja tárolni hol tartunk éppen.

Az első oldalunk így néz ki:

<a href="index.php?lepes=1"> 1.lépés ellenőrzése </a>
A php a változót a $_GET['lepes'] utasításal éri el. Utána felépíti a következő oldalt, és a változót növeli, valahogy így:

<a href="index.php?lepes= <?php echo $_GET['lepes']+1 ?> "> 2.lépés ellenőrzése </a>
Mindezt annyiszor, ahány lépést le akarsz programozni.

3, Az adatbazis.sql üres táblákat tartalmaz, vagy van benne minta adat?
7

Köszönöm :)

lillilla · 2014. Már. 14. (P), 17.48
Kedves Vilmos!

A határidő március 25.

Mi a helyzet akkor, ha az index.php-t a lépések végén,a törlés előtt gyártatom le az install.php-val? Ez egynek megoldás lehet? Gondolom, olyan opció létezik,hogy egy php egy másik php-t tartalommal együtt lementsen. Vagy már előre megvan az index.php,de mondjuk atnevez.php néven és csak átneveztetem a telepítés végén index.php-ra, Viszont akkor hogy indítom el egyből az install.php-t...

Az adatbázis fel van töltve mintaadatokkal az egyszerűség kedvéért.
Eddig csak olyat csináltam, hogy kiexportáltuk phpmyadmin-ból gyors exportálással a .sql-t és aztán kézzel beimportáltuk. Ezt hogy tudom kóddal megoldani? Mármint addig oké,hogy
CREATE TABLE IF NOT EXISTS
meg
INSERT INTO
de ahogy belenézek a .sql fájlba, van még benne sok más egyéb is. Azokból mi kell még nekem?
8

Local help

Vilmos · 2014. Már. 14. (P), 21.35
Nincs mit.
(Nem ismerem az iskolai anyagokat, de amin tanulsz azt öröm volt látni. "<?php", így kezdődik a program és nem "<html>" mint sok esetben. Meghatározó különbség.)

Ha rajtam múlna, nem javasolnám az install.php-ból az index.php előállítást. Inkább ellenőrizném, indulhat-e a telepítés. Például, ha valami beimportálta az adatbázist akkor ellenőrizni lehet ott van-e vagy sem. Ha ott van akkor nincs újra telepítés, ki lehet írni "telepítve van", a törlés pedig felesleges.

Nem értem az elgondolást. Felsoroltad: valahol kimenteni a táblákat, bekérni az adatbázis nevét, importálni a mentett táblát, ugyanott gyártani index.php-t, de ebből csak egy lehet. Nem arról van szó, a mentés egy minta helyen történik, a telepítés egy másik helyen?

Ragadozó madárnak igaza van, itt nem fogsz elég segítséget kapni erre a határidőre. Azt hiszem jobban teszed, ha helyben keresel valakit, aki több időt tud rád szánni.
9

Megtaláltam,amit kerestem,

lillilla · 2014. Már. 18. (K), 20.36
Megtaláltam,amit kerestem, gondoltam,közlöm, hátha valaki hasonló problémával téved ide. Azt hiszem, ez megoldja a gondjaim nagy részét. http://tutsforweb.blogspot.hu/2012/02/php-installation-script.html