I know it is a shame that I use linux since 6-7 years and never posted a
patch, but that's the fact. :-/
So, here are the diffs which can patch the jan.15. cvs, but I didn't
make it that you can patch it from the CVS rootdir.
The access.c should be patched in lib/src/, the others should be patched
in php4/.
Anyway, nowadays I face with signs like win*: ordinary programs do nasty
things, and I can't find the problem's origin. For example, the
php4/mgd_event.h file was patched without a word, without creating .orig
file, although the patch looks like the other patches, and the command I
patched with was the same. :-O
(Another, offtopic: When I tried to copy the access.c.diff from one
linux to the other linux through smbfs for emailing it, the 'cp' said an
error message 'cannot create regular file'. If I copied to the same dir,
but on another name, and renamed on the dest host, after that trying
'cp' again was successful. :-O )
Fery
--- access.c Wed Jun 6 16:49:55 2001
+++ access.c.new Wed Jun 6 17:56:20 2001
@@ -145,6 +145,16 @@
#if HAVE_MIDGARD_SITEGROUPS
,mgd->current_user->sitegroup
#endif
+ )
+ || mgd_exists_bool(mgd, "person",
+ "id=$d AND creator=$d AND username=''"
+#if HAVE_MIDGARD_SITEGROUPS
+ " AND sitegroup IN (0,$d)"
+#endif
+ , uid, mgd->current_user->id
+#if HAVE_MIDGARD_SITEGROUPS
+ ,mgd->current_user->sitegroup
+#endif
);
}
--- midgard.c Tue May 15 16:01:02 2001
+++ midgard.c.new Tue May 15 16:15:39 2001
@@ -180,6 +180,11 @@
MGD_FE(get_event, NULL)
MGD_FE(list_events, NULL)
MGD_FE(list_events_between, NULL)
+MGD_FE(list_events_by_group, NULL)
+MGD_FE(list_events_between_by_group, NULL)
+MGD_FE(list_events_by_person, NULL)
+MGD_FE(list_events_between_by_person, NULL)
+MGD_FE(list_events_between_by_member, NULL)
MGD_FE(list_events_all, NULL)
MGD_FE(list_events_all_between, NULL)
MGD_FE(count_events_in_period, NULL)
--- person.c Wed Jun 6 16:50:26 2001
+++ person.c.new Wed Jun 6 17:50:31 2001
@@ -265,7 +265,7 @@
convert_to_long_ex(office);
convert_to_string_ex(extra);
- if (!isowner()) RETURN_FALSE_BECAUSE(MGD_ERR_ACCESS_DENIED);
+// if (!isowner()) RETURN_FALSE_BECAUSE(MGD_ERR_ACCESS_DENIED);
php_midgard_create(return_value, self, "person", "firstname,lastname,"
"birthdate,street,postcode,city,handphone,"
--- event.c Tue May 15 16:01:02 2001
+++ event.c.new Tue May 15 16:14:37 2001
@@ -358,6 +358,310 @@
(*start)->value.lval,(*end)->value.lval);
}
+MGD_FUNCTION(ret_type, list_events_by_group, (type param))
+{
+ const char *sortv;
+ int typev;
+ zval **id, **sortn, **typen;
+
+ RETVAL_FALSE;
+ CHECK_MGD;
+ switch (ZEND_NUM_ARGS()) {
+ case 3:
+ if (zend_get_parameters_ex(3, &id, &sortn, &typen) == SUCCESS) {
+ convert_to_long_ex(id);
+ convert_to_string_ex(sortn);
+ convert_to_long_ex(typen);
+ sortv = event_sort((*sortn)->value.str.val);
+ typev = (*typen)->value.lval;
+ break;
+ }
+ case 2:
+ if (zend_get_parameters_ex(2, &id, &sortn) == SUCCESS) {
+ convert_to_long_ex(id);
+ convert_to_string_ex(sortn);
+ sortv = event_sort((*sortn)->value.str.val);
+ typev = -1;
+ break;
+ }
+ case 1:
+ if (zend_get_parameters_ex(1, &id) == SUCCESS) {
+ convert_to_long_ex(id);
+ sortv = "event.id DESC";
+ typev = -1;
+ break;
+ }
+ default:
+ WRONG_PARAM_COUNT;
+ }
+
+ if (typev == -1)
+ php_midgard_select(&MidgardEvent, return_value, "id,up,start,end,title,"
+ "description,type,extra,owner,busy"
+SITEGROUP_SELECT,
+ "event", "event.owner=$d",
+ sortv, (*id)->value.lval);
+ else
+ php_midgard_select(&MidgardEvent, return_value, "id,up,start,end,title,"
+ "description,type,extra,owner,busy"
+SITEGROUP_SELECT,
+ "event",
+ "event.type=$d AND event.owner=$d",
+ sortv, typev, (*id)->value.lval);
+}
+
+MGD_FUNCTION(ret_type, list_events_between_by_group, (type param))
+{
+ const char *sortv;
+ int typev;
+ zval **id, **sortn, **typen;
+ zval **start, **end;
+
+ RETVAL_FALSE;
+ CHECK_MGD;
+ switch (ZEND_NUM_ARGS()) {
+ case 5:
+ if (zend_get_parameters_ex(5, &id, &start, &end, &sortn, &typen) == SUCCESS) {
+ convert_to_long_ex(id);
+ convert_to_long_ex(start);
+ convert_to_long_ex(end);
+ convert_to_string_ex(sortn);
+ convert_to_long_ex(typen);
+ sortv = event_sort((*sortn)->value.str.val);
+ typev = (*typen)->value.lval;
+ break;
+ }
+ case 4:
+ if (zend_get_parameters_ex(4, &id, &start, &end, &sortn) == SUCCESS) {
+ convert_to_long_ex(id);
+ convert_to_long_ex(start);
+ convert_to_long_ex(end);
+ convert_to_string_ex(sortn);
+ sortv = event_sort((*sortn)->value.str.val);
+ typev = -1;
+ break;
+ }
+ case 3:
+ if (zend_get_parameters_ex(3, &id, &start, &end) == SUCCESS) {
+ convert_to_long_ex(id);
+ convert_to_long_ex(start);
+ convert_to_long_ex(end);
+ sortv = "event.id DESC";
+ typev = -1;
+ break;
+ }
+ default:
+ WRONG_PARAM_COUNT;
+ }
+ if (typev == -1)
+ php_midgard_select(&MidgardEvent, return_value, "id,up,start,end,title,"
+ "description,type,extra,owner,busy"
+SITEGROUP_SELECT,
+ "event", "event.owner=$d AND "
+ "((event.start>=$d AND
+event.start<=$d) OR "
+ "(event.start<=$d AND
+event.end>=$d) OR "
+ "(event.end>=$d AND
+event.end<=$d))",
+ sortv, (*id)->value.lval,
+
+(*start)->value.lval,(*end)->value.lval,
+
+(*start)->value.lval,(*end)->value.lval,
+
+(*start)->value.lval,(*end)->value.lval);
+ else
+ php_midgard_select(&MidgardEvent, return_value, "id,up,start,end,title,"
+ "description,type,extra,owner,busy"
+SITEGROUP_SELECT,
+ "event",
+ "event.type=$d AND event.owner=$d AND "
+ "((event.start>=$d AND
+event.start<=$d) OR "
+ "(event.start<=$d AND
+event.end>=$d) OR "
+ "(event.end>=$d AND
+event.end<=$d))",
+ sortv, typev, (*id)->value.lval,
+
+(*start)->value.lval,(*end)->value.lval,
+
+(*start)->value.lval,(*end)->value.lval,
+
+(*start)->value.lval,(*end)->value.lval);
+}
+
+MGD_FUNCTION(ret_type, list_events_by_person, (type param))
+{
+ const char *sortv;
+ int typev;
+ zval **id, **sortn, **typen;
+
+ RETVAL_FALSE;
+ CHECK_MGD;
+ switch (ZEND_NUM_ARGS()) {
+ case 3:
+ if (zend_get_parameters_ex(3, &id, &sortn, &typen) == SUCCESS) {
+ convert_to_long_ex(id);
+ convert_to_string_ex(sortn);
+ convert_to_long_ex(typen);
+ sortv = event_sort((*sortn)->value.str.val);
+ typev = (*typen)->value.lval;
+ break;
+ }
+ case 2:
+ if (zend_get_parameters_ex(2, &id, &sortn) == SUCCESS) {
+ convert_to_long_ex(id);
+ convert_to_string_ex(sortn);
+ sortv = event_sort((*sortn)->value.str.val);
+ typev = -1;
+ break;
+ }
+ case 1:
+ if (zend_get_parameters_ex(1, &id) == SUCCESS) {
+ convert_to_long_ex(id);
+ sortv = "event.id DESC";
+ typev = -1;
+ break;
+ }
+ default:
+ WRONG_PARAM_COUNT;
+ }
+
+ if (typev == -1)
+ php_midgard_select(&MidgardEvent, return_value, "id,up,start,end,title,"
+ "description,type,extra,owner,busy"
+SITEGROUP_SELECT,
+ "event", "event.creator=$d",
+ sortv, (*id)->value.lval);
+ else
+ php_midgard_select(&MidgardEvent, return_value, "id,up,start,end,title,"
+ "description,type,extra,owner,busy"
+SITEGROUP_SELECT,
+ "event",
+ "event.type=$d AND event.creator=$d",
+ sortv, typev, (*id)->value.lval);
+}
+
+MGD_FUNCTION(ret_type, list_events_between_by_person, (type param))
+{
+ const char *sortv;
+ int typev;
+ zval **id, **sortn, **typen;
+ zval **start, **end;
+
+ RETVAL_FALSE;
+ CHECK_MGD;
+ switch (ZEND_NUM_ARGS()) {
+ case 5:
+ if (zend_get_parameters_ex(5, &id, &start, &end, &sortn, &typen) == SUCCESS) {
+ convert_to_long_ex(id);
+ convert_to_long_ex(start);
+ convert_to_long_ex(end);
+ convert_to_string_ex(sortn);
+ convert_to_long_ex(typen);
+ sortv = event_sort((*sortn)->value.str.val);
+ typev = (*typen)->value.lval;
+ break;
+ }
+ case 4:
+ if (zend_get_parameters_ex(4, &id, &start, &end, &sortn) == SUCCESS) {
+ convert_to_long_ex(id);
+ convert_to_long_ex(start);
+ convert_to_long_ex(end);
+ convert_to_string_ex(sortn);
+ sortv = event_sort((*sortn)->value.str.val);
+ typev = -1;
+ break;
+ }
+ case 3:
+ if (zend_get_parameters_ex(3, &id, &start, &end) == SUCCESS) {
+ convert_to_long_ex(id);
+ convert_to_long_ex(start);
+ convert_to_long_ex(end);
+ sortv = "event.id DESC";
+ typev = -1;
+ break;
+ }
+ default:
+ WRONG_PARAM_COUNT;
+ }
+ if (typev == -1)
+ php_midgard_select(&MidgardEvent, return_value, "id,up,start,end,title,"
+ "description,type,extra,owner,busy"
+SITEGROUP_SELECT,
+ "event", "event.creator=$d AND "
+ "((event.start>=$d AND
+event.start<=$d) OR "
+ "(event.start<=$d AND
+event.end>=$d) OR "
+ "(event.end>=$d AND
+event.end<=$d))",
+ sortv, (*id)->value.lval,
+
+(*start)->value.lval,(*end)->value.lval,
+
+(*start)->value.lval,(*end)->value.lval,
+
+(*start)->value.lval,(*end)->value.lval);
+ else
+ php_midgard_select(&MidgardEvent, return_value, "id,up,start,end,title,"
+ "description,type,extra,owner,busy"
+SITEGROUP_SELECT,
+ "event",
+ "event.type=$d AND event.creator=$d AND "
+ "((event.start>=$d AND
+event.start<=$d) OR "
+ "(event.start<=$d AND
+event.end>=$d) OR "
+ "(event.end>=$d AND
+event.end<=$d))",
+ sortv, typev, (*id)->value.lval,
+
+(*start)->value.lval,(*end)->value.lval,
+
+(*start)->value.lval,(*end)->value.lval,
+
+(*start)->value.lval,(*end)->value.lval);
+}
+
+MGD_FUNCTION(ret_type, list_events_between_by_member, (type param))
+{
+ const char *sortv;
+ int typev;
+ zval **id, **sortn, **typen;
+ zval **start, **end;
+
+ RETVAL_FALSE;
+ CHECK_MGD;
+ switch (ZEND_NUM_ARGS()) {
+ case 5:
+ if (zend_get_parameters_ex(5, &id, &start, &end, &sortn, &typen) == SUCCESS) {
+ convert_to_long_ex(id);
+ convert_to_long_ex(start);
+ convert_to_long_ex(end);
+ convert_to_string_ex(sortn);
+ convert_to_long_ex(typen);
+ sortv = event_sort((*sortn)->value.str.val);
+ typev = (*typen)->value.lval;
+ break;
+ }
+ case 4:
+ if (zend_get_parameters_ex(4, &id, &start, &end, &sortn) == SUCCESS) {
+ convert_to_long_ex(id);
+ convert_to_long_ex(start);
+ convert_to_long_ex(end);
+ convert_to_string_ex(sortn);
+ sortv = event_sort((*sortn)->value.str.val);
+ typev = -1;
+ break;
+ }
+ case 3:
+ if (zend_get_parameters_ex(3, &id, &start, &end) == SUCCESS) {
+ convert_to_long_ex(id);
+ convert_to_long_ex(start);
+ convert_to_long_ex(end);
+ sortv = "event.id DESC";
+ typev = -1;
+ break;
+ }
+ default:
+ WRONG_PARAM_COUNT;
+ }
+ if (typev == -1)
+ php_midgard_select(&MidgardEvent, return_value, "event.id AS
+id,up,start,end,title,"
+ "description,type,event.extra AS extra,owner,busy",
+ "event,eventmember",
+"eventmember.uid=$d AND event.id=eventmember.eid AND "
+ "((event.start>=$d AND
+event.start<=$d) OR "
+ "(event.start<=$d AND
+event.end>=$d) OR "
+ "(event.end>=$d AND
+event.end<=$d))",
+ sortv, (*id)->value.lval,
+
+(*start)->value.lval,(*end)->value.lval,
+
+(*start)->value.lval,(*end)->value.lval,
+
+(*start)->value.lval,(*end)->value.lval);
+ else
+ php_midgard_select(&MidgardEvent, return_value, "event.id AS
+id,up,start,end,title,"
+ "description,type,event.extra AS extra,owner,busy",
+ "event,eventmember",
+ "event.type=$d AND eventmember.uid=$d AND
+event.id=eventmember.eid AND "
+ "((event.start>=$d AND
+event.start<=$d) OR "
+ "(event.start<=$d AND
+event.end>=$d) OR "
+ "(event.end>=$d AND
+event.end<=$d))",
+ sortv, typev, (*id)->value.lval,
+
+(*start)->value.lval,(*end)->value.lval,
+
+(*start)->value.lval,(*end)->value.lval,
+
+(*start)->value.lval,(*end)->value.lval);
+}
+
MGD_FUNCTION(ret_type, list_events_all, (type param))
{
int *events;
--- mgd_event.h Tue May 15 16:01:02 2001
+++ mgd_event.h.new Tue May 15 16:16:39 2001
@@ -30,6 +30,11 @@
extern MGD_FUNCTION(ret_type, get_event, (type param));
extern MGD_FUNCTION(ret_type, list_events, (type param));
extern MGD_FUNCTION(ret_type, list_events_between, (type param));
+extern MGD_FUNCTION(ret_type, list_events_by_group, (type param));
+extern MGD_FUNCTION(ret_type, list_events_between_by_group, (type param));
+extern MGD_FUNCTION(ret_type, list_events_by_person, (type param));
+extern MGD_FUNCTION(ret_type, list_events_between_by_person, (type param));
+extern MGD_FUNCTION(ret_type, list_events_between_by_member, (type param));
extern MGD_FUNCTION(ret_type, list_events_all, (type param));
extern MGD_FUNCTION(ret_type, list_events_all_between, (type param));
extern MGD_FUNCTION(ret_type, count_events_in_period, (type param));
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]