Scoutnet vzw

We connect scouts!
Het is momenteel 27 Apr 2024 6:43

Alle tijden zijn UTC + 1 uur




Plaats een nieuw onderwerp Reageren op dit onderwerp  [ 9 berichten ] 
Auteur Bericht
BerichtGeplaatst: 14 Jun 2007 11:03 
Offline
 
 

Geregistreerd: 09 Nov 2006 16:54
Berichten: 7
Ahoi,

ik ben op zoek naar een simpel evenlist script. Gewoon de verschillende events sorteren op datum en een beperking kunnen instellen van het aantal events dat getoond wordt.

Heeft iemand zoiets of weet iemand zoiets staan op het net?

Alvast bedankt


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 14 Jun 2007 11:32 
Offline
Site Admin
Site Admin
Gebruikers-avatar

Geregistreerd: 17 Jul 2002 23:00
Berichten: 1522
Woonplaats: Wetteren
Je bedoelt een soort basic online kalender? Zoiets kan je vrij eenvoudig zelf schrijven. Je steekt de "events" gewoon in een database en haalt die er meteen eenvoudig PHP-scriptje uit.

Heb je al wat ervaring met PHP en/of MySQL?

To


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 14 Jun 2007 12:04 
Offline
 
 

Geregistreerd: 09 Nov 2006 16:54
Berichten: 7
Met beide niet echt ervaring. Behalve dan het aanpassen van code om het in mijn layout te krijgen :wink:

En ik bedoel idd zo'n vereenvoudigde kalender die bijvoorbeeld dit toont (maar automatisch sorteert op datum):


Zaterdag 28/03/2008 - vergadering - Lokaal
Zondag 29/03/2008 - sporten - sporthal

En dat zou dan x aantal agendapuntjes moeten tonen (bijvoorbeeld 5 ofzo) zodat ik een "agenda in 't kort" kan hebben op onze website.


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 14 Jun 2007 16:29 
Offline
Site Admin
Site Admin
Gebruikers-avatar

Geregistreerd: 17 Jul 2002 23:00
Berichten: 1522
Woonplaats: Wetteren
Ik heb geen "plug & play"-script klaar, maar zo kan je aan de slag:

> Maak via PhpMyAdmin een tabel "kalender" aan:
Code:
CREATE TABLE `kalender` (
`kalender_id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`datum` DATE NOT NULL ,
`startuur` TIME NOT NULL ,
`einduur` TIME NOT NULL ,
`titel` VARCHAR( 100 ) NOT NULL ,
`locatie` VARCHAR( 150 ) NOT NULL ,
`opmerkingen` TEXT NOT NULL
) ENGINE = MYISAM ;


> Steek wat (test)data in je tabel:
Code:
INSERT INTO `kalender` ( `kalender_id` , `datum` , `startuur` , `einduur` , `titel` , `locatie` , `opmerkingen` )
VALUES (
NULL , '2008-03-28', '14:00:00', '17:30:00', 'Vergadering', 'Lokaal', ''
), (
NULL , '2008-03-29', '19:00:00', '22:00:00', 'Sporten', 'Sporthal', 'Samen met Jan'
);


> Maak een pagina kalender.php aan waarin je ongeveer dit zet:
Code:
<?php

$naam = "snXXXX";
$wachtwoord = "WACHTWOORDHIER";
$host = "localhost";
$db = "snXXXX";

// verbinding maken met de MySQL-server:
mysql_connect($host,$naam,$wachtwoord) or die ("Er is momenteel een probleem met de MySQL-server op Scoutnet Belgium. Daardoor kan deze pagina niet correct worden weergegeven. Probeer later opnieuw.");
mysql_select_db($db);

// logingegevens vergeten:
unset($naam);
unset($wachtwoord);
unset($host);
unset($db);

// alle gegevens uit de tabel halen (en sorteren op datum, startuur, einduur):
$selecteer = "SELECT * FROM kalender ORDER BY datum, startuur, einduur";
$query = mysql_query($selecteer)or die(mysql_error());

while($gegevens = mysql_fetch_object($query)) {
  // alle gegevens overlopen en weergeven
  echo ("\n<h3>$gegevens->titel</h3>");
  echo ("\n");
  echo ("\n<ul>");
  echo ("\n  <li><strong>Datum:</strong> $gegevens->datum ($gegevens->startuur tot $gegevens->einduur)</li>");
  echo ("\n  <li><strong>Locatie:</strong> $gegevens->locatie</li>");
  echo ("\n  <li><strong>Opmerkingen:</strong> $gegevens->opmerkingen</li>");
  echo ("\n</ul>");
  echo ("\n");
}

?>


> Je krijgt dan een pagina die brongewijs er zo uit ziet:
Code:
<h3>Vergadering</h3>

<ul>
  <li><strong>Datum:</strong> 2008-03-28 (14:00:00 tot 17:30:00</li>
  <li><strong>Locatie:</strong> Lokaal</li>
  <li><strong>Opmerkingen:</strong> </li>
</ul>

<h3>Sporten</h3>

<ul>
  <li><strong>Datum:</strong> 2008-03-29 (19:00:00 tot 22:00:00</li>
  <li><strong>Locatie:</strong> Sporthal</li>
  <li><strong>Opmerkingen:</strong> Samen met Jan</li>
</ul>


Uiteraard kan je dit nog verder verfijnen, door bijvoorbeeld in te stellen dat hij alleen mag tonen wat nog niet voorbij is (of niet verder dan x dagen vooruit mag kijken), door de data en uren op betere manieren weer te geven,...

Succes ermee; PHP is een fijne taal!

To


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 15 Jun 2007 12:01 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 23 Sep 2003 23:00
Berichten: 76
Woonplaats: Meise
Ik had ook een vraagje, nu heb je die datum zo "2008-03-29" hoe krijg je die zo: 29 maart 2008"?


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 15 Jun 2007 22:04 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 15 Mei 2006 9:46
Berichten: 64
Woonplaats: Humbeek
Niet echt superveel ervaring met dates in php, maar hier vind je alvast meer informatie:http://www.php.net/manual/en/function.date.php Denk dat het ook te maken heeft met hoe je je datum mbv php in je database stopt. In dit geval dus date?

_________________
Longboarding to Heaven °~


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 16 Jun 2007 13:34 
Offline
Site Admin
Site Admin
Gebruikers-avatar

Geregistreerd: 17 Jul 2002 23:00
Berichten: 1522
Woonplaats: Wetteren
scoutsrode schreef:
Ik had ook een vraagje, nu heb je die datum zo "2008-03-29" hoe krijg je die zo: 29 maart 2008"?

Dat kan je op verschillende manieren doen.

Methode 1: Zelf schrijven:

Code:
<?php

$maandenrij = array("januari","februari","maart","april","mei","juni", "juli","augustus","september","oktober","november","december");

$naam = "snXXXX";
$wachtwoord = "WACHTWOORDHIER";
$host = "localhost";
$db = "snXXXX";

// verbinding maken met de MySQL-server:
mysql_connect($host,$naam,$wachtwoord) or die ("Er is momenteel een probleem met de MySQL-server op Scoutnet Belgium. Daardoor kan deze pagina niet correct worden weergegeven. Probeer later opnieuw.");
mysql_select_db($db);

// logingegevens vergeten:
unset($naam);
unset($wachtwoord);
unset($host);
unset($db);

// alle gegevens uit de tabel halen (en sorteren op datum, startuur, einduur):
$selecteer = "SELECT * FROM kalender ORDER BY datum, startuur, einduur";
$query = mysql_query($selecteer)or die(mysql_error());

while($gegevens = mysql_fetch_object($query)) {
  // alle gegevens overlopen en weergeven:
  echo ("\n<h3>$gegevens->titel</h3>");
  echo ("\n");
 
  // datumformaat wijzigen:
  $datumrij = preg_split('//', $gegevens->datum, -1, PREG_SPLIT_NO_EMPTY);
  // datum uit elkaar halen:
  $jaar = $datumrij[0] . $datumrij[1] . $datumrij[2] . $datumrij[3];
  $maand = $datumrij[5] . $datumrij[6];
  $dag = $datumrij[8] . $datumrij[9];
  $dag = $dag + 0;
  // datum weer samenstellen:
  $datum = $dag . " " . $maandenrij[$maand - 1] . " " . $jaar;
 
  echo ("\n<ul>");
  echo ("\n  <li><strong>Datum:</strong> $datum ($gegevens->startuur tot $gegevens->einduur)</li>");
  echo ("\n  <li><strong>Locatie:</strong> $gegevens->locatie</li>");
  echo ("\n  <li><strong>Opmerkingen:</strong> $gegevens->opmerkingen</li>");
  echo ("\n</ul>");
  echo ("\n");
}

?>


Methode 2: gebruik maken van de PHP-functies setlocale (voor de Nederlandstalige woorden "januari" tot "december"), date en strtotime (voor het omzetten van een string in een datumformaat):

Code:
<?php

// PHP aangeven dat de gebruikers Nederlandstalig zijn:
setlocale(LC_ALL, 'nl_NL');

$naam = "snXXXX";
$wachtwoord = "WACHTWOORDHIER";
$host = "localhost";
$db = "snXXXX";

// verbinding maken met de MySQL-server:
mysql_connect($host,$naam,$wachtwoord) or die ("Er is momenteel een probleem met de MySQL-server op Scoutnet Belgium. Daardoor kan deze pagina niet correct worden weergegeven. Probeer later opnieuw.");
mysql_select_db($db);

// logingegevens vergeten:
unset($naam);
unset($wachtwoord);
unset($host);
unset($db);

// alle gegevens uit de tabel halen (en sorteren op datum, startuur, einduur):
$selecteer = "SELECT * FROM kalender ORDER BY datum, startuur, einduur";
$query = mysql_query($selecteer)or die(mysql_error());

while($gegevens = mysql_fetch_object($query)) {
  // alle gegevens overlopen en weergeven
  echo ("\n<h3>$gegevens->titel</h3>");
  echo ("\n");
 
  // datumformaat wijzigen:
  $datum = date("d F Y",strtotime($gegevens->datum));
 
  echo ("\n<ul>");
  echo ("\n  <li><strong>Datum:</strong> $datum ($gegevens->startuur tot $gegevens->einduur)</li>");
  echo ("\n  <li><strong>Locatie:</strong> $gegevens->locatie</li>");
  echo ("\n  <li><strong>Opmerkingen:</strong> $gegevens->opmerkingen</li>");
  echo ("\n</ul>");
  echo ("\n");
}

?>


Ikzelf gebruik meestal de eerste manier. Voor een andere weergave van het uur kan je gelijkaardig te werk gaan.

To


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 16 Jun 2007 13:59 
Offline
 
 

Geregistreerd: 27 Aug 2005 16:13
Berichten: 50
Woonplaats: Deurne
Methode 3:
Deze methode probeer ik altijd te gebruiken tenzij methode één handiger is.

Gewoon door mysql het in eens in het goede formaat eruit halen.
bv. http://dev.mysql.com/doc/refman/5.0/en/ ... ate-format
Soms kan dit erbij helpen.


Dan moet je niet met php zitten sukkelen en gaat het sneller.

Het enige wat er nog moet zijn is dat de hoster Mysql Nederlands taalpakket heeft. (Met scoutnet weet ik het niet zeker, omdat ik daar een site van iemand anders verder onderhoud en het dus niet gebruik)


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 16 Jun 2007 14:16 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 23 Sep 2003 23:00
Berichten: 76
Woonplaats: Meise
de eerste oplossing werkt, heel hard bedankt.


Omhoog
 Profiel  
 
Berichten weergeven van de afgelopen:  Sorteer op  
Plaats een nieuw onderwerp Reageren op dit onderwerp  [ 9 berichten ] 

Alle tijden zijn UTC + 1 uur


Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 26 gasten


U mag geen nieuwe onderwerpen plaatsen in dit forum
U mag geen reacties plaatsen op onderwerpen in dit forum
U mag uw berichten niet wijzigen in dit forum
U mag uw berichten niet verwijderen in dit forum
U mag geen bijlagen plaatsen in dit forum

Zoeken naar:
Ga naar:  
Powered by phpBB® Forum Software © phpBB Group
Vertaald door phpBBservice.nl.