From karen@elderweb.com Mon Jul 9 16:07:33 2007 From: Karen Stevenson To: development@drupal.org Subject: Re: [development] associate dates to nodes Date: Mon, 09 Jul 2007 09:00:47 -0700 Message-ID: <954037.66830.qm@web60019.mail.yahoo.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============6081341372679516058==" --===============6081341372679516058== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable The Date module won't do this out of the box, but if you know enough about Dr= upal and PHP to write a custom module I don't think it would be hard to custo= mize it rather than rewrite everything from scratch. You would only need to a= dd a '#validate' item to the form via hook_form_alter(), and have it point to= whatever validation function you want to run your dates through.=20 That way your customization is only for the validation process and you can us= e all the built-in data storage, Views integration, and other goodness of CCK= pretty much as-is. If you write a custom module you have to create tables, create forms, create = validation routines, create Views integration (if you want an easy way to dis= play all this), etc. etc. Lots more work that way, and you'd have to redo muc= h of it each time you find new info you want to track or whenever the Drupal = APIs change. I don't think anyone has any benchmarks about how far you can scale something= like this, but I know we have some very large sites using CCK extensively or= exclusively for things like this.=20 Karen ----- Original Message ---- From: Alex Moreno To: development@drupal.org Sent: Monday, July 9, 2007 10:47:18 AM Subject: Re: [development] associate dates to nodes Yes, but when you assign a date to the multiple date field, it should be vali= dated to avoid the same room to be reserved twice. I suppose that this is too= complex for the cck module. I=C2=B4m wrong? This is why i was thinking in a custom module. On 7/9/07, Victor Kane wrote: On 7/9/07, B=C3=A8r Kessels wrote: Op maandag 09 juli 2007, schreef Victor Kane: > The short answer is that you want to create special content types > (reservation), and then, using the content construction kit module (cck: >=20 http://drupal.org/project/cck) add the appropriate fields, including the > date field, supported by the date field module ( >=20 http://drupal.org/project/date). This won't work. A "room" will need an arbitrary amount of dates. So you will need either nodereference, wich won't scale, or some other relational module (wich won't scale either). It will work. You can use the date field as a multiple field, which can certainly give an a= rbitrary number of dates, or any other fields necessary for reservations. To go to the trouble of a custom module seems really overkill. Of course, there is more than one way to do it. --=20 Alejandro Moreno Consultor=C3=ADa de Publicidad y Marketing Onli= ne --===============6081341372679516058== Content-Type: text/html Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" MIME-Version: 1.0 PGh0bWw+PGhlYWQ+PHN0eWxlIHR5cGU9InRleHQvY3NzIj48IS0tIERJViB7bWFyZ2luOjBweDt9 IC0tPjwvc3R5bGU+PC9oZWFkPjxib2R5PjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OmFyaWFsLGhl bHZldGljYSxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB0Ij5UaGUgRGF0ZSBtb2R1bGUgd29uJ3Qg ZG8gdGhpcyBvdXQgb2YgdGhlIGJveCwgYnV0IGlmIHlvdSBrbm93IGVub3VnaCBhYm91dCBEcnVw YWwgYW5kIFBIUCB0byB3cml0ZSBhIGN1c3RvbSBtb2R1bGUgSSBkb24ndCB0aGluayBpdCB3b3Vs ZCBiZSBoYXJkIHRvIGN1c3RvbWl6ZSBpdCByYXRoZXIgdGhhbiByZXdyaXRlIGV2ZXJ5dGhpbmcg ZnJvbSBzY3JhdGNoLiBZb3Ugd291bGQgb25seSBuZWVkIHRvIGFkZCBhICcjdmFsaWRhdGUnIGl0 ZW0gdG8gdGhlIGZvcm0gdmlhIGhvb2tfZm9ybV9hbHRlcigpLCBhbmQgaGF2ZSBpdCBwb2ludCB0 byB3aGF0ZXZlciB2YWxpZGF0aW9uIGZ1bmN0aW9uIHlvdSB3YW50IHRvIHJ1biB5b3VyIGRhdGVz IHRocm91Z2guIDxicj48YnI+VGhhdCB3YXkgeW91ciBjdXN0b21pemF0aW9uIGlzIG9ubHkgZm9y IHRoZSB2YWxpZGF0aW9uIHByb2Nlc3MgYW5kIHlvdSBjYW4gdXNlIGFsbCB0aGUgYnVpbHQtaW4g ZGF0YSBzdG9yYWdlLCBWaWV3cyBpbnRlZ3JhdGlvbiwgYW5kIG90aGVyIGdvb2RuZXNzIG9mIEND SyBwcmV0dHkgbXVjaCBhcy1pcy48YnI+PGJyPklmIHlvdSB3cml0ZSBhIGN1c3RvbSBtb2R1bGUg eW91IGhhdmUgdG8gY3JlYXRlIHRhYmxlcywgY3JlYXRlIGZvcm1zLCBjcmVhdGUgdmFsaWRhdGlv biByb3V0aW5lcywgY3JlYXRlIFZpZXdzIGludGVncmF0aW9uIChpZiB5b3Ugd2FudCBhbiBlYXN5 IHdheSB0byBkaXNwbGF5IGFsbCB0aGlzKSwgZXRjLiBldGMuIExvdHMgbW9yZSB3b3JrIHRoYXQg d2F5LCBhbmQgeW91J2QgaGF2ZSB0byByZWRvIG11Y2ggb2YgaXQgZWFjaCB0aW1lIHlvdSBmaW5k IG5ldyBpbmZvIHlvdSB3YW50CiB0byB0cmFjayBvciB3aGVuZXZlciB0aGUgRHJ1cGFsIEFQSXMg Y2hhbmdlLjxicj48YnI+SSBkb24ndCB0aGluayBhbnlvbmUgaGFzIGFueSBiZW5jaG1hcmtzIGFi b3V0IGhvdyBmYXIgeW91IGNhbiBzY2FsZSBzb21ldGhpbmcgbGlrZSB0aGlzLCBidXQgSSBrbm93 IHdlIGhhdmUgc29tZSB2ZXJ5IGxhcmdlIHNpdGVzIHVzaW5nIENDSyBleHRlbnNpdmVseSBvciBl eGNsdXNpdmVseSBmb3IgdGhpbmdzIGxpa2UgdGhpcy4gPGJyPjxicj5LYXJlbjxicj48ZGl2IHN0 eWxlPSJmb250LWZhbWlseTogYXJpYWwsaGVsdmV0aWNhLHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTog MTBwdDsiPjxicj48YnI+PGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IHRpbWVzIG5ldyByb21hbixu ZXcgeW9yayx0aW1lcyxzZXJpZjsgZm9udC1zaXplOiAxMnB0OyI+LS0tLS0gT3JpZ2luYWwgTWVz c2FnZSAtLS0tPGJyPkZyb206IEFsZXggTW9yZW5vICZsdDthbDN4bW9yM25vQGdtYWlsLmNvbSZn dDs8YnI+VG86IGRldmVsb3BtZW50QGRydXBhbC5vcmc8YnI+U2VudDogTW9uZGF5LCBKdWx5IDks IDIwMDcgMTA6NDc6MTggQU08YnI+U3ViamVjdDogUmU6IFtkZXZlbG9wbWVudF0gYXNzb2NpYXRl IGRhdGVzIHRvIG5vZGVzPGJyPjxicj5ZZXMsIGJ1dCB3aGVuIHlvdSBhc3NpZ24gYSBkYXRlIHRv IHRoZSBtdWx0aXBsZSBkYXRlIGZpZWxkLCBpdCBzaG91bGQgYmUgdmFsaWRhdGVkIHRvIGF2b2lk IHRoZSBzYW1lIHJvb20gdG8gYmUgcmVzZXJ2ZWQgdHdpY2UuIEkgc3VwcG9zZSB0aGF0IHRoaXMg aXMgdG9vIGNvbXBsZXggZm9yIHRoZSBjY2sgbW9kdWxlLiBJtG0gd3Jvbmc/PGJyPjxicj5UaGlz IGlzIHdoeSBpIHdhcyB0aGlua2luZyBpbiBhIGN1c3RvbSBtb2R1bGUuCjxicj48YnI+PGJyPjxk aXY+PHNwYW4gY2xhc3M9ImdtYWlsX3F1b3RlIj5PbiA3LzkvMDcsIDxiIGNsYXNzPSJnbWFpbF9z ZW5kZXJuYW1lIj5WaWN0b3IgS2FuZTwvYj4gJmx0OzxhIHJlbD0ibm9mb2xsb3ciIHRhcmdldD0i X2JsYW5rIiBocmVmPSJtYWlsdG86dmljdG9ya2FuZUBnbWFpbC5jb20iPnZpY3RvcmthbmVAZ21h aWwuY29tPC9hPiZndDsgd3JvdGU6PC9zcGFuPjxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90 ZSIgc3R5bGU9ImJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiKDIwNCwgMjA0LCAyMDQpOyBtYXJn aW46IDBwdCAwcHQgMHB0IDAuOGV4OyBwYWRkaW5nLWxlZnQ6IDFleDsiPgo8c3BhbiBjbGFzcz0i cSI+T24gNy85LzA3LCA8YiBjbGFzcz0iZ21haWxfc2VuZGVybmFtZSI+QuhyIEtlc3NlbHM8L2I+ ICZsdDs8YSByZWw9Im5vZm9sbG93IiB0YXJnZXQ9Il9ibGFuayIgaHJlZj0ibWFpbHRvOmJlckB3 ZWJzY2h1dXIuY29tIj5iZXJAd2Vic2NodXVyLmNvbTwvYT4mZ3Q7IHdyb3RlOjxkaXY+PHNwYW4g Y2xhc3M9ImdtYWlsX3F1b3RlIj4KPC9zcGFuPjxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90 ZSIgc3R5bGU9ImJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiKDIwNCwgMjA0LCAyMDQpOyBtYXJn aW46IDBwdCAwcHQgMHB0IDAuOGV4OyBwYWRkaW5nLWxlZnQ6IDFleDsiPgpPcCBtYWFuZGFnIDA5 IGp1bGkgMjAwNywgc2NocmVlZiBWaWN0b3IgS2FuZTo8YnI+Jmd0OyBUaGUgc2hvcnQgYW5zd2Vy IGlzIHRoYXQgeW91IHdhbnQgdG8gY3JlYXRlIHNwZWNpYWwgY29udGVudCB0eXBlczxicj4mZ3Q7 IChyZXNlcnZhdGlvbiksIGFuZCB0aGVuLCB1c2luZyB0aGUgY29udGVudCBjb25zdHJ1Y3Rpb24g a2l0IG1vZHVsZSAoY2NrOjxicj4mZ3Q7IDxhIHJlbD0ibm9mb2xsb3ciIHRhcmdldD0iX2JsYW5r IiBocmVmPSJodHRwOi8vZHJ1cGFsLm9yZy9wcm9qZWN0L2NjayI+CgpodHRwOi8vZHJ1cGFsLm9y Zy9wcm9qZWN0L2NjazwvYT4pIGFkZCB0aGUgYXBwcm9wcmlhdGUgZmllbGRzLCBpbmNsdWRpbmcg dGhlPGJyPiZndDsgZGF0ZSBmaWVsZCwgc3VwcG9ydGVkIGJ5IHRoZSBkYXRlIGZpZWxkIG1vZHVs ZSAoPGJyPiZndDsgPGEgcmVsPSJub2ZvbGxvdyIgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Imh0dHA6 Ly9kcnVwYWwub3JnL3Byb2plY3QvZGF0ZSI+Cmh0dHA6Ly9kcnVwYWwub3JnL3Byb2plY3QvZGF0 ZTwvYT4pLjxicj4KPGJyPlRoaXMgd29uJ3Qgd29yay4gQSAicm9vbSIgd2lsbCBuZWVkIGFuIGFy Yml0cmFyeSBhbW91bnQgb2YgZGF0ZXMuIFNvIHlvdSB3aWxsPGJyPm5lZWQgZWl0aGVyIG5vZGVy ZWZlcmVuY2UsIHdpY2ggd29uJ3Qgc2NhbGUsIG9yIHNvbWUgb3RoZXIgcmVsYXRpb25hbCBtb2R1 bGU8YnI+KHdpY2ggd29uJ3Qgc2NhbGUgZWl0aGVyKS48L2Jsb2NrcXVvdGU+Cgo8ZGl2Pjxicj48 L2Rpdj48L2Rpdj48L3NwYW4+SXQgd2lsbCB3b3JrLjxicj5Zb3UgY2FuIHVzZSB0aGUgZGF0ZSBm aWVsZCBhcyBhIG11bHRpcGxlIGZpZWxkLCB3aGljaCBjYW4gY2VydGFpbmx5IGdpdmUgYW4gYXJi aXRyYXJ5IG51bWJlciBvZiBkYXRlcywgb3IgYW55IG90aGVyIGZpZWxkcyBuZWNlc3NhcnkgZm9y IHJlc2VydmF0aW9ucy48YnI+VG8gZ28gdG8gdGhlIHRyb3VibGUgb2YgYSBjdXN0b20gbW9kdWxl IHNlZW1zIHJlYWxseSBvdmVya2lsbC4KPGJyPk9mIGNvdXJzZSwgdGhlcmUgaXMgbW9yZSB0aGFu IG9uZSB3YXkgdG8gZG8gaXQuPGJyPgo8L2Jsb2NrcXVvdGU+PC9kaXY+PGJyPjxiciBjbGVhcj0i YWxsIj48YnI+LS0gPGJyPkFsZWphbmRybyBNb3Jlbm88YnI+Jmx0O2EgaHJlZj0iPGEgcmVsPSJu b2ZvbGxvdyIgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Imh0dHA6Ly93d3cudGRvLmVzIj5odHRwOi8v d3d3LnRkby5lczwvYT4iJmd0O0NvbnN1bHRvcu1hIGRlIFB1YmxpY2lkYWQgeSBNYXJrZXRpbmcg T25saW5lJmx0Oy9hJmd0Owo8L2Rpdj48YnI+PC9kaXY+PC9kaXY+PC9ib2R5PjwvaHRtbD4= --===============6081341372679516058==--