Toon posts:

[PHP] Content Management System

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb zorgvuldig de threads gelezen ivm met dit onderwerp, maar ik heb niet gevonden wat ik zocht.

Ik zit dus met een klein designprobleempje voor een CMS.
In mijn database staan 2 tables die menu en sub_menu heten. Ze bevatten volgende velden:
  • menu: menu_id, menu_name en menu_image
  • sub_menu: main_menu_id, sub_menu_id en sub_menu_name
't is de eerste keer dat ik een CMS maak, dus het zal vast niet 100% in orde zijn ;)

Die 2 tables gebruik ik om een menustructuur op te bouwen, in een kolom op de index pagina.

Het probleem is het linken naar artikels/pagina's over het geselecteerde onderwerp. Ik heb momenteel hetvolgende in elkaar gestoken, maar het staat me totaal niet aan. Ziet er zo slordig uit.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
    include("./Admin/config.inc.php");
    include("./Admin/mysql.inc.php");
    
    $query = "SELECT menu_id, menu_name, menu_image FROM menu";
    $result = mysql_query($query);
    if(mysql_num_rows($result) == 0)
    {
        echo "No menu available!";
    }
    else
    {
        while($row = mysql_fetch_array($result))
        {
            echo "$row[menu_name]<BR>";
            $sub_result = mysql_query("SELECT sub_menu_name FROM sub_menu WHERE main_menu_id = $row[menu_id] ORDER BY sub_menu_id");
            while($sub_row = mysql_fetch_array($sub_result))
            {
                $name = str_replace(" ","_",$sub_row[sub_menu_name]);
                echo "<a href=\"?page=$row[menu_id]"."_"."$name\">$sub_row[sub_menu_name]</a><br>";
            }
        }   
    }
?>


Het gaat om dat echo "<a href="blaat"> deel.

Ik zie mij slecht iedere keer dat ik een nieuw submenuutje toevoeg, ik een php pagina moet maken van het soort 3_new_archive.php om maar een voorbeeld te geven.

Volgens mij moet het een pagina zijn zoals show_topic.php of iets dergelijks dat mijn artikel rechtstreeks ophaalt uit de database. Ik wed dat dit de juiste manier van werken is, maar hoe zit dat dan op MySQL niveau?

Ik maak een nieuwe table met id, title en article als velden. Het gaat om hetgeen effectief op die pagina moet. Ze hebben me aangeraden om mediumtext te gebruiken. Maar zijn die 16777215 bytes niet te zwaar voor de DB en de bezoeker?

Vanuit praktisch zicht, dus als iemand een artikel schrijft voor die bepaalde sectie en dat dan nog moet posten lijkt me dat eerder slecht.
Ik kan me dat eigenlijk niet goed voorstellen, maar volgens mij zou text voldoende moeten zijn met z'n 65535 bytes, niet?

Bestaat er eventueel ook een manier om die textvelden te beperken tot 4096 bytes?

Dan zijn er nog de afbeeldingen die op de pagina moeten komen.
Ik zou een knopje kunnen maken die de <img> tag neerpoot en een dialog box opent om een beeldje te uploaden naar de juiste directory.
Bij endoria hernoemden ze die dan naar 026659959.jpg bijvoorbeeld.
Hoe moet ik dat doen? Is dan een random getal, of een volgnummer?
Hoe zit dat dan zo'n systeem in elkaar?

Dit terzijde. Wat zouden jullie me aanraden, ivm met die links en het genereren van de artikels? Uit de DB of aparte HTML/PHP bestandjes?

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 08:31
Verwijderd schreef op 05 oktober 2002 @ 21:26:
Het probleem is het linken naar artikels/pagina's over het geselecteerde onderwerp. Ik heb momenteel hetvolgende in elkaar gestoken, maar het staat me totaal niet aan. Ziet er zo slordig uit.

Het gaat om dat echo "<a href="blaat"> deel.

Ik zie mij slecht iedere keer dat ik een nieuw submenuutje toevoeg, ik een php pagina moet maken van het soort 3_new_archive.php om maar een voorbeeld te geven.

Volgens mij moet het een pagina zijn zoals show_topic.php of iets dergelijks dat mijn artikel rechtstreeks ophaalt uit de database. Ik wed dat dit de juiste manier van werken is, maar hoe zit dat dan op MySQL niveau?
Ja uiteraard, je maakt gewoon een query die dat desbetreffende artikel uit de database haalt neem ik aan.
Ik maak een nieuwe table met id, title en article als velden. Het gaat om hetgeen effectief op die pagina moet. Ze hebben me aangeraden om mediumtext te gebruiken. Maar zijn die 16777215 bytes niet te zwaar voor de DB en de bezoeker?

Vanuit praktisch zicht, dus als iemand een artikel schrijft voor die bepaalde sectie en dat dan nog moet posten lijkt me dat eerder slecht.
Ik kan me dat eigenlijk niet goed voorstellen, maar volgens mij zou text voldoende moeten zijn met z'n 65535 bytes, niet?

Bestaat er eventueel ook een manier om die textvelden te beperken tot 4096 bytes?
Zover ik weet zijn er geen velden van 4000 characters max. Maar je moet je écht geen zorgen maken om die grootte hoor, dat is bijzaak.

PHP:
1
echo "<a href=\"?page=$row[menu_id]"."_"."$name\">$sub_row[sub_menu_name]</a><br>";


kun je beter als volgt doen:

PHP:
1
echo "<a href=\"?page=".$row['menu_id']."_".$name."\">".$sub_row."[sub_menu_name]</a><br>";
Dan zijn er nog de afbeeldingen die op de pagina moeten komen.
Ik zou een knopje kunnen maken die de <img> tag neerpoot en een dialog box opent om een beeldje te uploaden naar de juiste directory.
Bij endoria hernoemden ze die dan naar 026659959.jpg bijvoorbeeld.
Hoe moet ik dat doen? Is dan een random getal, of een volgnummer?
Hoe zit dat dan zo'n systeem in elkaar?

Dit terzijde. Wat zouden jullie me aanraden, ivm met die links en het genereren van de artikels? Uit de DB of aparte HTML/PHP bestandjes?
Bij endoria zal het wel met een primary key zijn die steeds wordt opgehoogd. Volgnummer dus.

  • Jaspertje
  • Registratie: September 2001
  • Laatst online: 12-08 16:04

Jaspertje

Max & Milo.. lief

Als ik het goed begrijp moet je bij iedere keer dat er een submenu item wordt aangemaakt een nieuwe pagina maken met die url...

Ik werk in ASP en daar heb je de functie filesystemobject. Die kan folders en files maken (in een windows omgeving) misschien is dat een idee (als je met msoft werkt.).

Met dat textveld, of je bytes kan meegeven weet ik nie, maar je kan toch zeggen maxlength="" dat wertk wel, moet je alleen ff checken hoeveel karakters dat zijn.

met die images, met hetzelfde filesystem object kan je ook tellen hoeveel files er in een folder staan. dan tel je en doe je pplus 1.jrg (renamen kan ook) maar nogmaals ASP en Msoft.

Hoop dat je er iets aan hebt.

Verwijderd

Topicstarter
Net de PHP4 help file eens doorlopen ivm filesystem functions.
Je kan dus probleemloos alle mogelijke operaties op bestanden en directories uitvoeren.

Wat me dwars zit is dat mijn CMS uiteindelijk een zootje gaat worden, zeker als er verschillende staff-members die beginnen met artikels te posten. Als er na verloop van tijd 100 artikels (section uit menu die uit meerdere bladzijden bestaan) staan, gaat het toch eruitzien zoals mijn vorige site: +300 HTML pagina's :7
Omdat het me zoveel tijd kost om daar aanpassingen te maken, heb ik er de brui aan gegeven.

News topics haal ik mooi uit de db. Nu lijkt het me het beste om gewoon alles in de db te zetten. Hoe gebeurt dat op Tweakers.net trouwens?

Als ik nu links bouw aan de hand van:
code:
1
<a href=\"index.php?action=show&id=$sub_row[article_id]\">$sub_row[sub_menu_name]</a>
(article_id zijnde een extra veld)

Wat ik dan niet kan terugvinden in m'n boek, is hoe ik die $id kan doorgeven aan het include bestand?

index.php roept menu.inc.php, news.inc.php,... aan.
Voor de items uit het menu, zou ie op de plaats waar news.inc.php staat view_topic.inc.php moeten staan. Dat is geen probleem.

code:
1
2
3
4
5
6
7
8
9
10
11
12
switch ($action)
{
    case "show":
    {
        include("show_topic.inc.php");
        break;
    }
    default:
    {
        ...
    }
}


Maar hoe geef ik de waarden van $action en $id door aan show_topic.inc.php?
include("show_topic.inc.php?id=$var"); mag waarschijnlijk niet :?

Zoiets lijkt me netjes tegenover dat vorige (zie eerste post)
Het doel is om een overzichtelijk, gebruiksvriendelijk en snel CMSje te bouwen.

Momenteel gebruik ik ook nog geen classen en objecten. Kan ik daar enig voordeel uit halen voor een CMS, of is dat meer iets voor een e-commerce site? Je weet wel, het opbject "winkelkarretje" e.d.

[ Voor 0% gewijzigd door Verwijderd op 05-10-2002 22:58 . Reden: Correctie code ]


  • Apollo_Futurae
  • Registratie: November 2000
  • Niet online
News topics haal ik mooi uit de db. Nu lijkt het me het beste om gewoon alles in de db te zetten.
inderdaad :)
Wat ik dan niet kan terugvinden in m'n boek, is hoe ik die $id kan doorgeven aan het include bestand?
dat hoeft niet! als je een bestand include(), wordt het betreffende script als het ware ingevoegd in het huidige script en vervolgens uitgevoerd. alle variabelen die in het includend bestand gebruikt worden, zijn dus ook beschikbaar in het geïnclude bestand.
Momenteel gebruik ik ook nog geen classen en objecten. Kan ik daar enig voordeel uit halen voor een CMS, of is dat meer iets voor een e-commerce site? Je weet wel, het opbject "winkelkarretje" e.d.
ik ben zelf, na ongeveer een jaar te hebben aangerotzooid zonder (want zo voelt het nu), overgestapt op oo; het is een enorme verademing. ik zou zelfs willen zeggen: stop tijdelijk met je CMS, oefen met classes tot ze je vertrouwd zijn (maak bij voorbeeld een mooie class voor tabellen of formulieren, die komt altijd van pas), en begin dan opnieuw. het is verleidelijker om meteen aan de slag te gaan, maar je zult zien dat het netjes indelen van je code in classes verlichtend en efficientievergrotend werkt 8) .

Pas de replâtrage, la structure est pourrie.


Verwijderd

Topicstarter
Ziet ernaar uit dat ik nog een hoop werk ga hebben :9
OO doe ik momenteel met Java. Nu zou ik dat nog moeten leren met C++ en PHP. Hmmm... welke zou ik eerst doen?

Als ik PHP code in een TEXT-veld opsla, wordt die dan uitgevoerd bij het uitlezen, of moet er één of meerdere functies aan vooraf gaan?

Alvast bedankt voor de jullie hulp en jullie tips.

[ Voor 0% gewijzigd door Verwijderd op 06-10-2002 09:40 . Reden: Extra vraagje ]


  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 08:31
Verwijderd schreef op 06 oktober 2002 @ 09:24:
Als ik PHP code in een TEXT-veld opsla, wordt die dan uitgevoerd bij het uitlezen, of moet er één of meerdere functies aan vooraf gaan?
www.php.net/eval

Verwijderd

Topicstarter
Kan iemand me raad geven ivm met een logische directory structure voor mijn CMS?
Ik heb nu:
\
\Admin
\Content
\Errors

Het geeft wel wat problemen bij het aanroepen van bepaalde includes, die zelf ook nog een include gebruiken, zoals mysql.inc.php (om de connections te maken met de DB) die config.inc.php (variabelen als $server, $database, $user, $password,...) aanroept.

mysql.inc.php en config.inc.php staan \Admin. Soms, wanneer een bestand uit \Content die nodig heeft, geeft hij er de brui aan.

Hoe kan ik dit het best indelen?

Verwijderd

Verwijderd schreef op 09 november 2002 @ 13:32:
Kan iemand me raad geven ivm met een logische directory structure voor mijn CMS?
Ik heb nu:
\
\Admin
\Content
\Errors

Het geeft wel wat problemen bij het aanroepen van bepaalde includes, die zelf ook nog een include gebruiken, zoals mysql.inc.php (om de connections te maken met de DB) die config.inc.php (variabelen als $server, $database, $user, $password,...) aanroept.

mysql.inc.php en config.inc.php staan \Admin. Soms, wanneer een bestand uit \Content die nodig heeft, geeft hij er de brui aan.

Hoe kan ik dit het best indelen?
Ik heb voor mijn cms

Admin -- Echte admin
Includes -- Hier staan alle include files.. mysql inc , config inc, authentication inc, functions inc
Templates -- hier alle templates in eigenmappen
modules -- hierin de modules
en 1 index.php file die alles included wat ie nodig heeft

Verwijderd

Topicstarter
Je directory structuur is gemakkelijker om te coderen :)
Nu doet ie tenminste wat ik verwacht ^^

Ander vraagje. Ik heb een authenticate.inc.php die ofwel een login form maakt, ofwel een logout knopje. Hoe kan ik aan die form een PHP functie authenticate($user, $pass) doorgeven als parameter?

Dit is de code:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
    // Login Block
    
    if ($SESSION["user"] == "")
    {
        echo "<table width=\"100%\"><tr align=\"center\"><td>User's Login</td></tr></table>";
        echo "<table width=\"100%\"><tr align=\"center\"><td><form name=\"Login\" method=\"post\" action=\"\">";
        echo "Username:<br>";
            echo "<input name=\"Username\" type=\"text\" id=\"Username\" size=\"16\" maxlength=\"16\"><br>";
            echo "Password: <br>";
            echo "<input name=\"Password\" type=\"password\" id=\"Password\" size=\"16\" maxlength=\"16\"><br>";
            echo "<input name=\"Login\" type=\"submit\" id=\"Login\" value=\"Login\">";
        echo "</form>";
        echo "</td></tr></table>";
    }
    else
    {
        echo "<table width=\"100%\"><tr align=\"center\"><td>User's Panel</td></tr></table>";
        echo "<table width=\"100%\"><tr><td><form name=\"logout\" method=\"post\" action=\"\">";
        echo "<center><input type=\"submit\" name=\"logout\" value=\"Log Out\"></center>";
        echo "</form></td></tr></table>";
    }
?>


Kan dat via een andere php bestand? zoiets als get_function.php?func=auth

In dat bestand zet ik dan een case die nagaat wat de func in de de gepaste functie oproept uit functions.inc.php.
Is dit een goed idee?

Verwijderd

include ("functions.inc.php")

if ($SESSION["login"])
{
auth ($logih);
}
else{
error ("blaat niet ingelogd");
}


wees creatief!! :) je begint aan een cms maar je kan amper php ?

Verwijderd

Topicstarter
Tja... ik vind PHP best leuk ^^
Ik ben inderdaad een n00b op PHP-vlak. De plezantste methode om iets te leren is voor mij iets eerder complex te proberen en trachten te verstaan hoe alles in elkaar zit. En ja... soms zie ik niet precies hoe alles in elkaar steekt.

En echt boek over PHP heb ik nog niet. Mijn e-book is gewoonweg enorm saai. Allemaal kleine fragmentjes code maar niets concreets.

Wat ik tot nu toe heb vindt ik anders best goed gemaakt voor een n00b.
Kijk hier maar eens: http://satoshi.homeip.net/users/cms/

't is wel niet erg grafisch, maar dat is voor de finishing touch :9

Verwijderd

Ik wil niet vervelend doen hoor, maar het is $_SESSION, en niet $SESSION (note the _)... :P

Verwijderd

Topicstarter
Hmmm... waarom werk $SESSION dan even goed als $_SESSION ?

  • damouzer
  • Registratie: Oktober 2000
  • Laatst online: 26-08 13:11
Ik ga binnenkort ook beginnen met de bouw van een CMS, ik hou dit topic in de gaten ;)

btw de maximale grootte van een tekst vak kun je vast zetten door de variable op variant in te stellen en dan een max grootte. (installeer phpmyadmin maar is, daar kun je het overzichtelijk zien :) ).

  • damouzer
  • Registratie: Oktober 2000
  • Laatst online: 26-08 13:11
Verwijderd schreef op 10 november 2002 @ 11:56:
Tja... ik vind PHP best leuk ^^
Ik ben inderdaad een n00b op PHP-vlak. De plezantste methode om iets te leren is voor mij iets eerder complex te proberen en trachten te verstaan hoe alles in elkaar zit. En ja... soms zie ik niet precies hoe alles in elkaar steekt.

En echt boek over PHP heb ik nog niet. Mijn e-book is gewoonweg enorm saai. Allemaal kleine fragmentjes code maar niets concreets.

Wat ik tot nu toe heb vindt ik anders best goed gemaakt voor een n00b.
Kijk hier maar eens: http://satoshi.homeip.net/users/cms/

't is wel niet erg grafisch, maar dat is voor de finishing touch :9
Het is leuk voor je dat je gelijk iets moeilijks wilt proberen, maar als je aankomt met een BERG aan vragen. Misschien moet je je dan is afvragen of je niet eerst de losse delen moet leren? database, login systeem, etc.

Neem een kijkje op http://www.phpfreakz.nl en lees de artikelen en je bent gelijk een stap verder. (ok het kost even wat tijd om het door te spitten).

No flame intended B)

Verwijderd

Topicstarter
Tja ^^ Ik heb daar geen geduld voor alles wat met PC te maken heeft. Voor alle rest ben ik zelfs té geduldig.

Verwijderd

Topicstarter
Even iets anders. Ik heb een soort editor gemaakt voor mijn CMS. Het is een textarea met een aantal knopjes die wat html tags zoals <b></b>, [img]".."[/img] e.d. kan toevoegen. Al bij al een combinatie van Javascript, HTML en PHP

Het werkt perfect, laadt zich correct in een cel van tabel op index.php. Geen errors bij submitten naar de database e.d. 'k ben er eigenlijk héél blij mee.

Men wijst me nu op http://www.webedpro.com/.
Je kunt daar html pagina's mee maken zoals in de design mode van Dreamweaver.
Mijn vraag is nu: Op wat voor object typ je bij webedpro? t'is in ieder geval geen textarea :9
Het ziet er gewoon zo 1337 uit :)

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 00:27

mulder

ik spuug op het trottoir

Gok op een editable div.

oogjes open, snaveltjes dicht


Verwijderd

Ik denk ook iets in die richting.

Het is wel moeilijk te maken, je moet namelijk alle instellingen terugstuuren die gemaakt zijn(htmlcode generator van de WYSIWYG editor), dat kan volgends mij best wel wat tijd innemen.

Ik ben zelf ook bezig met een CMS, dit is een soort van website host waardat mensen zelf via zoonsoort systeem een website kunnen maken, het is best wel leuk als je ziet hoe ik dat aan het maken ben. Alleen een WYSIWYG editor er bij maken is nog niet echt een optie.

Heeft homestead/hetnet groepen/en dergelijke sites toevallig een soortgelijk systeem? volgends mij wel, ik zal het wel even aan mijn zusje vragen die werkt er namelijk altijd mee. Als ik dan eventjes die html code copyeer dan heb ik een voorbeeldje.

Is het mischien een leuk project om met meerdere mensen aan te werken(die WYSIWYG editor). Ik ben zelf niet echt in staat om via html zoon super geavanseerd systeem te maken, maar kan wel helpen als de engine er is.

Verwijderd

Topicstarter
Ik heb public stukje sourcecode van WebEdit Pro eens bekeken.
Het werkt ongeveer op deze manier:

Je vraagt om een nieuwe pagina te schrijven en geeft die een naam. Dan kies je een template (bijvoorbeeld een lege pagina). Dan stuurt hij je door naar de editor pagina.
Die bevat een toolbar bestaande uit image buttons met CSS.

Iedere button heeft een onclick="...." event. De events zelf staan in een extern .js bestand dat je niet kan lezen (soort encryptie :?)

De pagina die wil aanmaken, [naam].html verschijnt dan in een <iframe></iframe> dat de rest van je IE venster vult. Om dan effectief te kunnen typen staat er ee, scriptregel met enkel [object].contentEditable = true; erin.

Ziet er best leuk uit :)
De moeilijk is om de waarden van die knoppen door te sturen, zoals [img]"...">[/img]</form> en andere tags.

Het nadeel is wel dat het enkel met Internet Explorer v5.5 werkt. Ik heb ook op het Opera community board gevraagd hoe het zit met die editable objects.

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 00:27

mulder

ik spuug op het trottoir

het stikt van de (freeware) htmleditors... en persoonlijk vind ik het een beetje overdone (voor een CMS). Die dingen zijn om content toe te voegen, niet om html pagina's te maken.

oogjes open, snaveltjes dicht


Verwijderd

Don Facundo schreef op 15 November 2002 @ 10:56:
het stikt van de (freeware) htmleditors... en persoonlijk vind ik het een beetje overdone (voor een CMS). Die dingen zijn om content toe te voegen, niet om html pagina's te maken.
klopt, maar ik wil een WYSIWYG gebruiken voor het maken van een layout
de content kan ik al toevoegen, maar layout bewerken gaat nou nog via html, en dat vinden niet alle gebruikers leuk.

[ Voor 0% gewijzigd door Verwijderd op 15-11-2002 11:05 . Reden: WYSIWYG ipv CMS ]


  • wustenveld
  • Registratie: Februari 2002
  • Laatst online: 08-08 17:31
Ik ben zelf ook bezig met een CMS systeem, hij is al ver klaar en op dit moment gebruik ik een opensource WYSIWYG editor die ik gedownload heb van http://richtext.sourceforge.net/
Is een leuk systeem en je kunt allerlei opties uitzetten als je niet wilt dat een gebruiker dat kan aanpassen (zoals de broncode, lettertypes enz.). Het systeem werkt uitstekend en de klanten die tot nu het CMS systeem gebruiken zijn zeer te spreken over de editor. Ik ben zelf ook van mening dat een CMS is bedoeld om content aan te maken, maar als een klant invloed wilt hebben op vette tekst, groter font, tabellen e.d. denk ik dat je het wel moet kunnen aanbieden.

Verwijderd

Topicstarter
Dit zal wel een domme vraag zijn, maar bij echo, gebruikt men double quotes of single quotes?
Bij de PHP documentatie staat
PHP:
1
echo "foo $bar";
en op bepaalde developer sites staat
PHP:
1
echo 'foo '.$bar;


Welke is de juiste notatie?

Verwijderd

mag je zelf weten . . . ik vind die laatste netter.. die gebruik ik altijd .. vooral bij arrays

PHP:
1
2
3
<?php
echo "Hoi " . $array[naam] . ", hoe gaat het ";
?>

Verwijderd

wustenveld schreef op 15 november 2002 @ 11:44:
Ik ben zelf ook bezig met een CMS systeem, hij is al ver klaar en op dit moment gebruik ik een opensource WYSIWYG editor die ik gedownload heb van http://richtext.sourceforge.net/
Is een leuk systeem en je kunt allerlei opties uitzetten als je niet wilt dat een gebruiker dat kan aanpassen (zoals de broncode, lettertypes enz.). Het systeem werkt uitstekend en de klanten die tot nu het CMS systeem gebruiken zijn zeer te spreken over de editor. Ik ben zelf ook van mening dat een CMS is bedoeld om content aan te maken, maar als een klant invloed wilt hebben op vette tekst, groter font, tabellen e.d. denk ik dat je het wel moet kunnen aanbieden.
ik neem aan dat je hem niet verkocht hebt ?? want dat mag niet he .. tis een free ware ding.. staat toch zo'n overeenkomst bij .. GPL ofzow.. GNU weet ik het .. iig mag je het neit voor commerciele doeleinden gebruiken .. wil je dat wel meot je dokke :) ..

  • Kettrick
  • Registratie: Augustus 2000
  • Laatst online: 15:26

Kettrick

Rantmeister!

Verwijderd schreef op 15 november 2002 @ 19:20:
mag je zelf weten . . . ik vind die laatste netter.. die gebruik ik altijd .. vooral bij arrays

PHP:
1
2
3
<?php
echo "Hoi " . $array[naam] . ", hoe gaat het ";
?>
Dit hoort eigenlijk zo

PHP:
1
2
3
<?php
echo "Hoi " . $array['naam'] . ", hoe gaat het ";
?>


;) :X

Verwijderd

RoeLz schreef op 15 November 2002 @ 19:32:
[...]


Dit hoort eigenlijk zo

PHP:
1
2
3
<?php
echo "Hoi " . $array['naam'] . ", hoe gaat het ";
?>


;) :X
jah maar da doe ik nooit :) .. Vind dat niet nodig.. waarom is dat eigenlijk zo nodig dan ? vertel eens wat er beter aan is :)

Verwijderd

Het is dus niet nodig. Maar in een hoop talen wordt jouw versie als variabele gezien en in PHP dus niet, waardoor jij denkt dat het overal zo moet en iemand die een echte taal kent, die zou dan jouw code verkeerd kunnen lezen. Tenminste dat denk ik. Maar in principe zijn jij en de personen met wie je je code schrijft de enige personen die die code moeten kunnen begrijpen/lezen.

Verwijderd

en wat als je nu een multi-dimensional array hebt:
PHP:
1
2
3
4
5
6
7
<?php
    // levert niet zo'n goed resultaat  :)
    print "Hoi $user[personal][name], hoe gaat het";

    // dit gaat al beter
    print "Hoi " . $user['personal']['name'] . ", hoe gaat het";    
?>

en natuurlijk highlight mijn editor de laatste versie ook beter dan de eerste

Verwijderd

Alles wat tussen double quotes staat wordt door PHP wel geparst, alles wat tussen single quotes staat niet, dus:

PHP:
1
2
3
4
$bar = "bar";
echo "foo $bar"; // Levert op "foo bar"
echo 'foo $bar'; // Levert op "foo $bar"
echo 'foo ' . $bar; // Levert op "foo bar";


Ik gebruik persoonlijk zoveel mogelijk double quotes omdat ik dan variabelen kan opnemen in de quotes, die dan ook geparst worden. Ook bijv speciale tekens zoals de newline \n worden dan geparst:

PHP:
1
2
3
4
5
echo 'foo bar\nnieuwe regel'; // Produceert "foo bar\nnieuwe regel"
echo "foo bar\nnieuwe regel";
// Produceert:
// foo bar
// nieuwe regel

  • Koetjeboe
  • Registratie: Maart 2002
  • Laatst online: 16:45

Koetjeboe

Boe, zegt de koe

PHP:
1
2
3
<?php
$t_posts[$posts]->user .= "\n" . '<span class="username">' . $t_user->name . '</span>';
?>


Zo doe ik het meestal....Dingen die niet geparsed hoeven te worden worden zo ook niet geparsed.

Niet dat het in tijd zoveel uitmaakt ;)

Ohhi - Familie foto's delen via een europees prive sociaal netwerk - Blubhub - IOS app om je aquarium bij te houden


Verwijderd

Koetjeboe schreef op 16 November 2002 @ 09:52:
PHP:
1
2
3
<?php
$t_posts[$posts]->user .= "\n" . '<span class="username">' . $t_user->name . '</span>';
?>


Zo doe ik het meestal....Dingen die niet geparsed hoeven te worden worden zo ook niet geparsed.

Niet dat het in tijd zoveel uitmaakt ;)
Das niet netjes want bij het eerste stuk heb je "" en bij de twee volgende stukken '' dus dat staat al zowieso slordig..

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 14:34
Dat is wel een hele duidelijke manier idd.

Verwijderd

Topicstarter
Ik hou het ook bij dubbele quotes. Single quotes vind ik bij nader inzien niet zo handig.

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 00:27

mulder

ik spuug op het trottoir

Single quotes zijn wel netter, *vind ik dan*, het dwingt je variabelen niet in je string te stoppen maar er aan vast te plakken. Leesbaarder, en ik denk dat het minder foutgevoelig is.

oogjes open, snaveltjes dicht


  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 14:34
Dat lijkt mij ook bij nader inziens ook, zeker omdat je dan alle variablen er gewoon buiten moet zetten, verder kan je gemakkelijk html invoeren op de juiste manier: met ""

Verwijderd

Topicstarter
HTML is dan toch een belangrijk onderdeel bij een CMS :)
Dan ziet het er netjes uit ^^

Verwijderd

Topicstarter
Hoe kan je ervoor zorgen dat bij news topics bijvoorbeeld enkel de eerste 3 lijnen getoont worden? Is dat te doen via een SQL statement of via PHP? Ik zou graag zo'n soort preview maken.

Verwijderd

substr :)

  • wustenveld
  • Registratie: Februari 2002
  • Laatst online: 08-08 17:31
Verwijderd schreef op 15 November 2002 @ 19:29:
[...]

ik neem aan dat je hem niet verkocht hebt ?? want dat mag niet he .. tis een free ware ding.. staat toch zo'n overeenkomst bij .. GPL ofzow.. GNU weet ik het .. iig mag je het neit voor commerciele doeleinden gebruiken .. wil je dat wel meot je dokke :) ..
De HTML Editor wordt niet verkocht, die wordt gratis bij het CMS geleverd ;)
Voor de rest van het CMS moet je wel betalen, daarnaast heb ik de HTML editor zwaar aangepast omdat het nog niet helemaal optimaal is, die aanpassingen heb ik overigens wel weer gemaild naar de eigenaar van dat project

Verwijderd

Topicstarter
Ik ben aan m'n "My Images" module bezig. De bedoeling hiervan is om afbeeldingen, foto's e.d. te uploaden en opslaan volgens categorie. Die afbeeldingen kunnen daarna opgeroepen worden via m'n editor.
Om de gebruiker een overzicht te geven en zijn afbeelding te laten kiezen zou ik thumbnails moeten maken van iedere afbeelding.
Nu werken imagesx($image) en imagesy($image) niet. Ik heb wel een workaround gevonden:
PHP:
1
2
3
$imagesize = getimagesize($open.$file_array[$i]);
            $x = $imagesize[0];
            $y = $imagesize[1];


Ik weet dat voor ImageSX() e.a. ik de GD Library moet hebben, omdat ze niet werken op mijn testserver. Heb ik die nodig voor alle image...() functies?

Is het verder mogelijk om thumbnails te genereren wanneer de pagina's worden opgevraagd, zodat ze niet op mijn webspace hoeven te staan?

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 14:34
Is het verder mogelijk om thumbnails te genereren wanneer de pagina's worden opgevraagd, zodat ze niet op mijn webspace hoeven te staan?
Natuurlijk, je kunt het toch gewoon in de pagina zetten waar je de thumbs wilt weergeven?
Toch zou ik ze gewoon maken als je ze upload, omdat het laden van een pagina met een groot aantal plaatjes anders toch een flinke kluif gaat worden. Je kunt ze natuurlijk ook weer verwijderen als de gebruiker de foto delete.

Verwijderd

Topicstarter
Als ik het goed begrijp genereer ik best een thumb met PHP van de afbeelding tijdens het uploaden?

  • SJR
  • Registratie: Januari 2000
  • Laatst online: 15-02 13:58

SJR

Verwijderd schreef op 15 november 2002 @ 19:29:
[...]

ik neem aan dat je hem niet verkocht hebt ?? want dat mag niet he .. tis een free ware ding.. staat toch zo'n overeenkomst bij .. GPL ofzow.. GNU weet ik het .. iig mag je het neit voor commerciele doeleinden gebruiken .. wil je dat wel meot je dokke :) ..
Zowel richtext als XS dhtml editor vallen onder de LGPL license, de Lesser General Public License. Volgens mij houdt deze license in dat je het programma wel mag gebruiken in een commercieel project, en dat dus ook mag verkopen. Als het het programma wijzigt moet je de broncode wel beschikbaar maken.

Voor meer info: GNU

[ Voor 5% gewijzigd door SJR op 23-11-2002 22:35 ]


Verwijderd

Topicstarter
Hoe kun je zo'n "Saving your preferences..." berichtje tonen terwijl je iemand naar een nieuwe pagina stuurt met header("Location: http://blaat");

Ik heb al vanalles geprobeerd. Het wil maar niet lukken. Verschillende volgordes van volgende regels e.d.
PHP:
1
2
3
echo "Saving your settings...";
sleep(3);
header("Location: http://blaat");


'k zal weer iets totaal verkeerd doen, maar ja... al doende leert men :p

  • Shadowman
  • Registratie: Januari 2002
  • Niet online
Verwijderd schreef op 15 november 2002 @ 18:41:
Dit zal wel een domme vraag zijn, maar bij echo, gebruikt men double quotes of single quotes?
Bij de PHP documentatie staat
PHP:
1
echo "foo $bar";
en op bepaalde developer sites staat
PHP:
1
echo 'foo '.$bar;


Welke is de juiste notatie?
Bij double quotes kun je de variabelen gewoon in de string zetten en dan worden ze gewoon geparst. Bij single quotes kan dit niet.
PHP:
1
echo 'foo $bar';

geeft als uitvoer
code:
1
foo $bar

  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

Verwijderd schreef op 15 November 2002 @ 20:04:
[...]

jah maar da doe ik nooit :) .. Vind dat niet nodig.. waarom is dat eigenlijk zo nodig dan ? vertel eens wat er beter aan is :)
Nou, zonder quotes gaat php op zoek naar een constante 'naam'. Die heb je niet. Dus is het fout. Maar php die denkt, die Stoel bedoelt vast een string, ipv een constante, en dan werkt het wel. Maar het is dus niet goed.

  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Verwijderd schreef op 01 december 2002 @ 15:36:
Hoe kun je zo'n "Saving your preferences..." berichtje tonen terwijl je iemand naar een nieuwe pagina stuurt met header("Location: http://blaat");

[...]
Daar moet je niet header voor gebruiken. Deze wordt namelijk direct door de client uitgevoerd en dat wil je natuurlijk niet (ook moet je headers als eerste zetten voordat je andere uitvoer doet).

Probeer het met HTML (refresh) en Javascript ofzo op te lossen.

"The shell stopped unexpectedly and Explorer.exe was restarted."


  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

Verwijderd schreef op 01 December 2002 @ 15:36:
Hoe kun je zo'n "Saving your preferences..." berichtje tonen terwijl je iemand naar een nieuwe pagina stuurt met header("Location: http://blaat");

Ik heb al vanalles geprobeerd. Het wil maar niet lukken. Verschillende volgordes van volgende regels e.d.
PHP:
1
2
3
echo "Saving your settings...";
sleep(3);
header("Location: http://blaat");


'k zal weer iets totaal verkeerd doen, maar ja... al doende leert men :p
Nou, met een meta refresh ofzo. Als je in de documentatie leest, dan zie je dat je header voor alle output moet gebruiken. Als jij dan eerst een berichtje gaat blaten, dan werkt het niet... :)
Pagina: 1