emile Wed Feb 21 14:18:55 2001 EDT
Modified files:
/php4/ext/midgard Makefile.in article.c attachment.c element.c
event.c eventmember.c file.c group.c host.c
image.c member.c mgd_oop.h midgard.c oop.c page.c
pageelement.c pagelink.c person.c preferences.c
sitegroup.c snippet.c snippetdir.c style.c
topic.c
Log:
Centralized object fetching for get_object_by_guid
Index: php4/ext/midgard/Makefile.in
diff -u php4/ext/midgard/Makefile.in:1.3 php4/ext/midgard/Makefile.in:1.4
--- php4/ext/midgard/Makefile.in:1.3 Sat Feb 17 15:21:49 2001
+++ php4/ext/midgard/Makefile.in Wed Feb 21 14:18:54 2001
@@ -1,4 +1,4 @@
-# $Id: Makefile.in,v 1.3 2001/02/17 23:21:49 emile Exp $
+# $Id: Makefile.in,v 1.4 2001/02/21 22:18:54 emile Exp $
#
# Copyright (C) 1999 Jukka Zitting <[EMAIL PROTECTED]>
# Copyright (C) 2000 The Midgard Project ry
@@ -29,6 +29,7 @@
snippetdir.c style.c sitegroup.c \
preparser-parser.c preparser-scanner.c \
preparser.c
+
LTLIBRARY_SHARED_NAME = midgard.la
LTLIBRARY_SHARED_LIBADD = $(MIDGARD_SHARED_LIBADD)
Index: php4/ext/midgard/article.c
diff -u php4/ext/midgard/article.c:1.5 php4/ext/midgard/article.c:1.6
--- php4/ext/midgard/article.c:1.5 Tue Feb 20 16:24:56 2001
+++ php4/ext/midgard/article.c Wed Feb 21 14:18:54 2001
@@ -1,4 +1,4 @@
-/* $Id: article.c,v 1.5 2001/02/21 00:24:56 davidg Exp $
+/* $Id: article.c,v 1.6 2001/02/21 22:18:54 emile Exp $
Copyright (C) 1999 Jukka Zitting <[EMAIL PROTECTED]>
Copyright (C) 2000 The Midgard Project ry
Copyright (C) 2000 Emile Heyns, Aurora SA <[EMAIL PROTECTED]>
@@ -396,18 +396,7 @@
WRONG_PARAM_COUNT;
}
- php_midgard_get(&MidgardArticle, return_value,
- "id,up,topic,name,title,abstract,content,author,"
- "Date_format(created,'%d.%m.%Y') AS date,"
- "Date_format(created,'%D %b. %Y') AS adate,"
- "Date_format(created,'%D %M %Y') AS aldate,"
- "extra1,extra2,extra3,article.score,type,"
- "Unix_Timestamp(created) AS created,creator,"
- "Unix_Timestamp(revised) AS revised,revisor,revision,"
- "Unix_Timestamp(approved) AS approved,approver,"
- "Unix_Timestamp(locked) AS locked,locker,"
- "url,icon,view,print,"
- CALENDAR_FIELDS, "article", (*id)->value.lval);
+ php_midgard_get_object(return_value, MIDGARD_OBJECT_ARTICLE, (*id)->value.lval);
}
MGD_FUNCTION(get_article_by_name)
Index: php4/ext/midgard/attachment.c
diff -u php4/ext/midgard/attachment.c:1.4 php4/ext/midgard/attachment.c:1.5
--- php4/ext/midgard/attachment.c:1.4 Mon Feb 19 08:39:19 2001
+++ php4/ext/midgard/attachment.c Wed Feb 21 14:18:54 2001
@@ -1,4 +1,4 @@
-/* $Id: attachment.c,v 1.4 2001/02/19 16:39:19 davidg Exp $
+/* $Id: attachment.c,v 1.5 2001/02/21 22:18:54 emile Exp $
Copyright (C) 1999 Jukka Zitting <[EMAIL PROTECTED]>
Copyright (C) 2000 The Midgard Project ry
Copyright (C) 2000 Emile Heyns, Aurora SA <[EMAIL PROTECTED]>
@@ -356,9 +356,7 @@
else if (aid == MGD_ERR_INVALID_NAME) { WRONG_PARAM_COUNT; }
else if (aid < 0) { RETURN_FALSE_BECAUSE(aid); }
- php_midgard_get(&MidgardAttachment, return_value,
- "id,name,title,mimetype,score,author,created,ptable,pid",
- "blobs", aid);
+ php_midgard_get_object(return_value, MIDGARD_OBJECT_BLOBS, aid);
}
MGD_FUNCTION(serve_attachment)
Index: php4/ext/midgard/element.c
diff -u php4/ext/midgard/element.c:1.3 php4/ext/midgard/element.c:1.4
--- php4/ext/midgard/element.c:1.3 Sat Feb 17 15:21:49 2001
+++ php4/ext/midgard/element.c Wed Feb 21 14:18:54 2001
@@ -1,4 +1,4 @@
-/* $Id: element.c,v 1.3 2001/02/17 23:21:49 emile Exp $
+/* $Id: element.c,v 1.4 2001/02/21 22:18:54 emile Exp $
Copyright (C) 1999 Jukka Zitting <[EMAIL PROTECTED]>
Copyright (C) 2000 The Midgard Project ry
Copyright (C) 2000 Emile Heyns, Aurora SA <[EMAIL PROTECTED]>
@@ -48,10 +48,7 @@
}
convert_to_long_ex(id);
- php_midgard_get(&MidgardElement,
- return_value,
- "id,style,name,value",
- "element", (*id)->value.lval);
+ php_midgard_get_object(return_value, MIDGARD_OBJECT_ELEMENT,
+(*id)->value.lval);
break;
case 2:
if (zend_get_parameters_ex(2, &style, &name) != SUCCESS) {
Index: php4/ext/midgard/event.c
diff -u php4/ext/midgard/event.c:1.3 php4/ext/midgard/event.c:1.4
--- php4/ext/midgard/event.c:1.3 Sat Feb 17 15:21:49 2001
+++ php4/ext/midgard/event.c Wed Feb 21 14:18:54 2001
@@ -1,4 +1,4 @@
-/* $Id: event.c,v 1.3 2001/02/17 23:21:49 emile Exp $
+/* $Id: event.c,v 1.4 2001/02/21 22:18:54 emile Exp $
Copyright (C) 1999 Jukka Zitting <[EMAIL PROTECTED]>
Copyright (C) 2000 The Midgard Project ry
Copyright (C) 2000 Emile Heyns, Aurora SA <[EMAIL PROTECTED]>
@@ -234,9 +234,7 @@
WRONG_PARAM_COUNT;
}
- php_midgard_get(&MidgardEvent, return_value, "id,up,start,end,title,description,"
-
"type,extra,owner,creator,created,revisor,revised,revision,busy",
- "event", (*id)->value.lval);
+ php_midgard_get_object(return_value, MIDGARD_OBJECT_EVENT, (*id)->value.lval);
}
static const char *event_sort(const char *order)
Index: php4/ext/midgard/eventmember.c
diff -u php4/ext/midgard/eventmember.c:1.3 php4/ext/midgard/eventmember.c:1.4
--- php4/ext/midgard/eventmember.c:1.3 Sat Feb 17 15:21:50 2001
+++ php4/ext/midgard/eventmember.c Wed Feb 21 14:18:54 2001
@@ -1,4 +1,4 @@
-/* $Id: eventmember.c,v 1.3 2001/02/17 23:21:50 emile Exp $
+/* $Id: eventmember.c,v 1.4 2001/02/21 22:18:54 emile Exp $
Copyright (C) 1999 Jukka Zitting <[EMAIL PROTECTED]>
Copyright (C) 2000 The Midgard Project ry
Copyright (C) 2000 Emile Heyns, Aurora SA <[EMAIL PROTECTED]>
@@ -188,8 +188,7 @@
WRONG_PARAM_COUNT;
}
- php_midgard_get(&MidgardEventMember, return_value, "id,eid,uid,extra",
- "eventmember", (*id)->value.lval);
+ php_midgard_get_object(return_value, MIDGARD_OBJECT_EVENTMEMBER,
+(*id)->value.lval);
}
static const char *eventmember_sort(const char *order)
Index: php4/ext/midgard/file.c
diff -u php4/ext/midgard/file.c:1.3 php4/ext/midgard/file.c:1.4
--- php4/ext/midgard/file.c:1.3 Sat Feb 17 15:21:50 2001
+++ php4/ext/midgard/file.c Wed Feb 21 14:18:54 2001
@@ -1,4 +1,4 @@
-/* $Id: file.c,v 1.3 2001/02/17 23:21:50 emile Exp $
+/* $Id: file.c,v 1.4 2001/02/21 22:18:54 emile Exp $
Copyright (C) 1999 Jukka Zitting <[EMAIL PROTECTED]>
Copyright (C) 2000 The Midgard Project ry
Copyright (C) 2000 Emile Heyns, Aurora SA <[EMAIL PROTECTED]>
@@ -46,7 +46,8 @@
default:
WRONG_PARAM_COUNT;
}
- php_midgard_get(&MidgardFile, return_value,
"id,article,type,name,content,size,md5", "file", (*id)->value.lval);
+
+ php_midgard_get_object(return_value, MIDGARD_OBJECT_FILE, (*id)->value.lval);
}
MGD_FUNCTION(create_file)
Index: php4/ext/midgard/group.c
diff -u php4/ext/midgard/group.c:1.3 php4/ext/midgard/group.c:1.4
--- php4/ext/midgard/group.c:1.3 Sat Feb 17 15:21:50 2001
+++ php4/ext/midgard/group.c Wed Feb 21 14:18:54 2001
@@ -1,4 +1,4 @@
-/* $Id: group.c,v 1.3 2001/02/17 23:21:50 emile Exp $
+/* $Id: group.c,v 1.4 2001/02/21 22:18:54 emile Exp $
Copyright (C) 1999 Jukka Zitting <[EMAIL PROTECTED]>
Copyright (C) 2000 The Midgard Project ry
Copyright (C) 2000 Emile Heyns, Aurora SA <[EMAIL PROTECTED]>
@@ -72,9 +72,7 @@
WRONG_PARAM_COUNT;
}
- php_midgard_get(&MidgardGroup, return_value, "id,name,official," ADDRESS_FIELDS
","
- GROUP_HOMEPAGE_FIELDS "," GROUP_EMAIL_FIELDS
","
- "extra,owner", "grp", (*id)->value.lval);
+ php_midgard_get_object(return_value, MIDGARD_OBJECT_GRP, (*id)->value.lval);
}
MGD_FUNCTION(get_group_by_name)
@@ -96,9 +94,8 @@
convert_to_string_ex(name);
if(!(gid=mgd_exists_id(mgd_handle(),"grp","name=$q",(*name)->value.str.val)))
RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS);
- php_midgard_get(&MidgardGroup, return_value, "id,name,official,"
ADDRESS_FIELDS ","
- GROUP_HOMEPAGE_FIELDS "," GROUP_EMAIL_FIELDS
","
- "extra,owner", "grp", gid);
+
+ php_midgard_get_object(return_value, MIDGARD_OBJECT_GRP, gid);
break;
}
case 2:
Index: php4/ext/midgard/host.c
diff -u php4/ext/midgard/host.c:1.3 php4/ext/midgard/host.c:1.4
--- php4/ext/midgard/host.c:1.3 Sat Feb 17 15:21:50 2001
+++ php4/ext/midgard/host.c Wed Feb 21 14:18:54 2001
@@ -1,4 +1,4 @@
-/* $Id: host.c,v 1.3 2001/02/17 23:21:50 emile Exp $
+/* $Id: host.c,v 1.4 2001/02/21 22:18:54 emile Exp $
Copyright (C) 1999 Jukka Zitting <[EMAIL PROTECTED]>
Copyright (C) 2000 The Midgard Project ry
Copyright (C) 2000 Emile Heyns, Aurora SA <[EMAIL PROTECTED]>
@@ -70,9 +70,8 @@
default:
WRONG_PARAM_COUNT;
}
- php_midgard_get(&MidgardHost, return_value,
- "id,name,port,online,root,style,info&1 AS
auth,owner,prefix," HOSTNAME_FIELD,
- "host", (*id)->value.lval);
+
+ php_midgard_get_object(return_value, MIDGARD_OBJECT_HOST, (*id)->value.lval);
}
MGD_FUNCTION(get_host_by_name)
Index: php4/ext/midgard/image.c
diff -u php4/ext/midgard/image.c:1.3 php4/ext/midgard/image.c:1.4
--- php4/ext/midgard/image.c:1.3 Sat Feb 17 15:21:50 2001
+++ php4/ext/midgard/image.c Wed Feb 21 14:18:54 2001
@@ -1,4 +1,4 @@
-/* $Id: image.c,v 1.3 2001/02/17 23:21:50 emile Exp $
+/* $Id: image.c,v 1.4 2001/02/21 22:18:54 emile Exp $
Copyright (C) 1999 Jukka Zitting <[EMAIL PROTECTED]>
Copyright (C) 2000 The Midgard Project ry
Copyright (C) 2000 Emile Heyns, Aurora SA <[EMAIL PROTECTED]>
@@ -96,11 +96,8 @@
default:
WRONG_PARAM_COUNT;
}
- php_midgard_get(&MidgardImage, return_value,
- "id,src,x,y,info&1=1 AS offline,"
- "If(info&1,Concat('<img src=\"/img/',src,"
- "'\" width=\"',x,'\" height=\"',y,'\">'),'') AS img",
- "image", (*id)->value.lval);
+
+ php_midgard_get_object(return_value, MIDGARD_OBJECT_IMAGE, (*id)->value.lval);
}
Index: php4/ext/midgard/member.c
diff -u php4/ext/midgard/member.c:1.3 php4/ext/midgard/member.c:1.4
--- php4/ext/midgard/member.c:1.3 Sat Feb 17 15:21:50 2001
+++ php4/ext/midgard/member.c Wed Feb 21 14:18:54 2001
@@ -1,4 +1,4 @@
-/* $Id: member.c,v 1.3 2001/02/17 23:21:50 emile Exp $
+/* $Id: member.c,v 1.4 2001/02/21 22:18:54 emile Exp $
Copyright (C) 1999 Jukka Zitting <[EMAIL PROTECTED]>
Copyright (C) 2000 The Midgard Project ry
Copyright (C) 2000 Emile Heyns, Aurora SA <[EMAIL PROTECTED]>
@@ -65,8 +65,8 @@
if (!isgroupowner(mgd_idfield(mgd_handle(), "gid", "member", (*id)->value.lval)))
RETURN_FALSE_BECAUSE(MGD_ERR_ACCESS_DENIED);
- php_midgard_get(&MidgardMember, return_value,
- "id,gid,uid,extra", "member",
(*id)->value.lval);
+
+ php_midgard_get_object(return_value, MIDGARD_OBJECT_MEMBER, (*id)->value.lval);
}
MGD_FUNCTION(create_member)
Index: php4/ext/midgard/mgd_oop.h
diff -u php4/ext/midgard/mgd_oop.h:1.3 php4/ext/midgard/mgd_oop.h:1.4
--- php4/ext/midgard/mgd_oop.h:1.3 Sat Feb 17 15:21:50 2001
+++ php4/ext/midgard/mgd_oop.h Wed Feb 21 14:18:54 2001
@@ -1,4 +1,4 @@
-/* $Id: mgd_oop.h,v 1.3 2001/02/17 23:21:50 emile Exp $
+/* $Id: mgd_oop.h,v 1.4 2001/02/21 22:18:54 emile Exp $
Copyright (C) 1999 Jukka Zitting <[EMAIL PROTECTED]>
Copyright (C) 2000 The Midgard Project ry
Copyright (C) 2000 Emile Heyns, Aurora SA <[EMAIL PROTECTED]>
@@ -22,6 +22,7 @@
#define MGD_OOP_H
#include <zend.h>
+#include <midgard/tablenames.h>
MGD_FUNCTION(oop_parameter);
MGD_FUNCTION(oop_parameter_list);
@@ -124,6 +125,8 @@
MGD_FUNCTION(delete_snippet);
MGD_FUNCTION(update_snippet);
+MGD_FUNCTION(get_object_by_guid);
+
typedef struct {
int type;
char * name;
@@ -180,6 +183,8 @@
zval _midgard_getset_property(MidgardClass *Class,
zend_property_reference *property_reference,
zval *value);
+
+void php_midgard_get_object(zval *return_value, int table, int id);
extern MidgardClass MidgardArticle;
extern MidgardClass MidgardAttachment;
Index: php4/ext/midgard/midgard.c
diff -u php4/ext/midgard/midgard.c:1.10 php4/ext/midgard/midgard.c:1.11
--- php4/ext/midgard/midgard.c:1.10 Wed Feb 21 04:21:01 2001
+++ php4/ext/midgard/midgard.c Wed Feb 21 14:18:54 2001
@@ -1,4 +1,4 @@
-/* $Id: midgard.c,v 1.10 2001/02/21 12:21:01 davidg Exp $
+/* $Id: midgard.c,v 1.11 2001/02/21 22:18:54 emile Exp $
Copyright (C) 1999 Jukka Zitting <[EMAIL PROTECTED]>
Copyright (C) 2000 The Midgard Project ry
Copyright (C) 2000 Emile Heyns, Aurora SA <[EMAIL PROTECTED]>
@@ -283,6 +283,7 @@
MGD_FE(copy_style, NULL)
MGD_FE(move_style, NULL)
MGD_FE(delete_style_tree, NULL)
+MGD_FE(get_object_by_guid, NULL)
/* preparser functions */
MGD_FE(template, NULL)
MGD_FE(variable, NULL)
Index: php4/ext/midgard/oop.c
diff -u php4/ext/midgard/oop.c:1.4 php4/ext/midgard/oop.c:1.5
--- php4/ext/midgard/oop.c:1.4 Mon Feb 19 23:27:40 2001
+++ php4/ext/midgard/oop.c Wed Feb 21 14:18:54 2001
@@ -1,4 +1,4 @@
-/* $Id: oop.c,v 1.4 2001/02/20 07:27:40 davidg Exp $
+/* $Id: oop.c,v 1.5 2001/02/21 22:18:54 emile Exp $
Copyright (C) 1999 Jukka Zitting <[EMAIL PROTECTED]>
Copyright (C) 2000 The Midgard Project ry
Copyright (C) 2000 Emile Heyns, Aurora SA <[EMAIL PROTECTED]>
@@ -472,6 +472,208 @@
RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS);
}
+}
+
+void php_midgard_get_object(zval *return_value, int table, int id)
+{
+ switch (table) {
+ case MIDGARD_OBJECT_ARTICLE:
+ php_midgard_get(&MidgardArticle, return_value,
+ "id,up,topic,name,title,abstract,content,author,"
+ "Date_format(created,'%d.%m.%Y') AS date,"
+ "Date_format(created,'%D %b. %Y') AS adate,"
+ "Date_format(created,'%D %M %Y') AS aldate,"
+ "extra1,extra2,extra3,article.score,type,"
+ "Unix_Timestamp(created) AS created,creator,"
+ "Unix_Timestamp(revised) AS revised,revisor,revision,"
+ "Unix_Timestamp(approved) AS approved,approver,"
+ "Unix_Timestamp(locked) AS locked,locker,"
+ "url,icon,view,print,"
+ CALENDAR_FIELDS,
+ "article", id);
+ break;
+
+ case MIDGARD_OBJECT_BLOBS:
+ php_midgard_get(&MidgardAttachment, return_value,
+ "id,name,title,mimetype,score,author,created,ptable,pid",
+ "blobs", id);
+ break;
+
+ case MIDGARD_OBJECT_ELEMENT:
+ php_midgard_get(&MidgardElement, return_value,
+ "id,style,name,value",
+ "element", id);
+ break;
+
+ case MIDGARD_OBJECT_EVENT:
+ php_midgard_get(&MidgardEvent, return_value,
+ "id,up,start,end,title,description,"
+ "type,extra,owner,creator,created,revisor,revised,revision,busy",
+ "event", id);
+ break;
+
+ case MIDGARD_OBJECT_EVENTMEMBER:
+ php_midgard_get(&MidgardEventMember, return_value, "id,eid,uid,extra",
+ "eventmember", id);
+ break;
+
+ case MIDGARD_OBJECT_FILE:
+ php_midgard_get(&MidgardFile, return_value,
+ "id,article,type,name,content,size,md5",
+ "file", id);
+ break;
+
+ case MIDGARD_OBJECT_GRP:
+ php_midgard_get(&MidgardGroup, return_value,
+ "id,name,official," ADDRESS_FIELDS ","
+ GROUP_HOMEPAGE_FIELDS "," GROUP_EMAIL_FIELDS ","
+ "extra,owner",
+ "grp", id);
+ break;
+
+ case MIDGARD_OBJECT_HOST:
+ php_midgard_get(&MidgardHost, return_value,
+ "id,name,port,online,root,style,info&1 AS
+auth,owner,prefix,"
+ HOSTNAME_FIELD,
+ "host", id);
+ break;
+
+ case MIDGARD_OBJECT_IMAGE:
+ php_midgard_get(&MidgardImage, return_value,
+ "id,src,x,y,info&1=1 AS offline,"
+ "If(info&1,Concat('<img src=\"/img/',src,"
+ "'\" width=\"',x,'\" height=\"',y,'\">'),'') AS img",
+ "image", id);
+ break;
+
+ case MIDGARD_OBJECT_MEMBER:
+ php_midgard_get(&MidgardMember, return_value,
+ "id,gid,uid,extra", "member", id);
+ break;
+
+ case MIDGARD_OBJECT_PAGE:
+ php_midgard_get(&MidgardPage, return_value,
+ "id,up,name,style,title,changed,content,author,"
+ "info&1=1 AS auth,info&2=2 AS active",
+ "page", id);
+ break;
+
+ case MIDGARD_OBJECT_PAGEELEMENT:
+ php_midgard_get(&MidgardPageElement, return_value,
+ "id,page,name,value,info&1 AS inherit",
+ "pageelement", id);
+ break;
+
+#if HAVE_MIDGARD_PAGELINKS
+ case MIDGARD_OBJECT_PAGELINK:
+ php_midgard_get(&MidgardPagelink, return_value,
+ "id,up,name,target,grp,owner",
+ "pagelink", id);
+ break;
+#endif
+
+ case MIDGARD_OBJECT_PERSON:
+ if (isuserowner(id))
+ php_midgard_get(&MidgardPerson, return_value,
+ "id," NAME_FIELDS ","
+ "If(Left(password,2)='**',Substring(password,3),'')"
+ " AS password,"
+ ADDRESS_FIELDS "," PHONE_FIELDS ","
+ HOMEPAGE_FIELDS "," EMAIL_FIELDS ","
+ "Date_format(birthdate,'%d.%m.%Y') AS birthdate,extra,"
+ "img,topic,department,office,pgpkey," PUBLIC_FIELDS,
+ "person", id);
+ else
+ php_midgard_get(&MidgardPerson, return_value,
+ "id," NAME_FIELDS ",'' AS password,"
+ "If(info&2," ADDRESS_FIELD ",'') AS address,"
+ PUBLIC_FIELD(2,street) ","
+ PUBLIC_FIELD(2,postcode) ","
+ PUBLIC_FIELD(2,city) ","
+ "If(info&4," PHONE_FIELD ",'') AS phone,"
+ PUBLIC_FIELD(4,handphone) ","
+ PUBLIC_FIELD(4,homephone) ","
+ PUBLIC_FIELD(4,workphone) ","
+ "If(info&8," HOMEPAGE_FIELD ",'') AS homepagelink,"
+ PUBLIC_FIELD(8,homepage) ","
+ "If(info&16," EMAIL_FIELD ",'') AS emaillink,"
+ PUBLIC_FIELD(16,email) ","
+ "'' AS birthdate," PUBLIC_FIELD(32,extra) ","
+ PUBLIC_FIELD(32,img) ",topic,department,office,pgpkey,"
+ PUBLIC_FIELDS, "person", id);
+ break;
+
+ case MIDGARD_OBJECT_PREFERENCE:
+ php_midgard_get(&MidgardPreferences, return_value,
+ "id,uid,domain,name,value", "preference", id);
+ break;
+
+#if HAVE_MIDGARD_SITEGROUPS
+ case MIDGARD_OBJECT_SITEGROUP:
+ php_midgard_sitegroup_get(&MidgardSitegroup, return_value, 0, "*",
+ "sitegroup", id);
+ break;
+#endif
+
+ case MIDGARD_OBJECT_SNIPPET:
+ php_midgard_get(&MidgardSnippet, return_value,
+ "id,up,name,code,doc,author,creator,created,revisor,"
+ "revised,revision",
+ "snippet", id);
+ break;
+
+ case MIDGARD_OBJECT_SNIPPETDIR:
+ php_midgard_get(&MidgardSnippetdir, return_value,
+"id,up,name,description,owner",
+ "snippetdir", id);
+ break;
+
+ case MIDGARD_OBJECT_STYLE:
+ php_midgard_get(&MidgardStyle, return_value, "id,up,name,owner", "style",
+id);
+ break;
+
+ case MIDGARD_OBJECT_TOPIC:
+ php_midgard_get(&MidgardTopic, return_value,
+ "id,up,score,name,description,extra,owner,code,"
+ "creator,Unix_timestamp(created) as created,"
+ "revisor,Unix_timestamp(revised) as revised,revision",
+ "topic", id);
+ break;
+
+ /* EEH: These are not handled */
+ case MIDGARD_OBJECT_REPLIGARD:
+ case MIDGARD_OBJECT_RECORD_EXTENSION:
+ case MIDGARD_OBJECT_HISTORY:
+ default:
+ RETURN_FALSE_BECAUSE(MGD_ERR_INTERNAL);
+ }
+}
+
+MGD_FUNCTION(get_object_by_guid)
+{
+ zval **guid;
+ midgard_res *res;
+ long table, id;
+
+ if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(ht, 1, &guid) != SUCCESS) {
+ WRONG_PARAM_COUNT;
+ }
+
+ if ((*guid)->type != IS_STRING) { RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); }
+
+ res = mgd_sitegroup_select(mgd_handle(), "realm,id" "repligard",
+ "guid=$q", NULL, (*guid)->value.str.val);
+
+ if (!res || !mgd_fetch(res)) {
+ if (res) mgd_release(res);
+ RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS);
+ }
+
+ table = mgd_lookup_table_id(mgd_colvalue(res, 0));
+ id = atoi(mgd_colvalue(res, 1));
+
+ mgd_release(res);
+
+ php_midgard_get_object(return_value, table, id);
}
MidgardClassPtr MidgardClasses [] = {
Index: php4/ext/midgard/page.c
diff -u php4/ext/midgard/page.c:1.5 php4/ext/midgard/page.c:1.6
--- php4/ext/midgard/page.c:1.5 Tue Feb 20 16:24:56 2001
+++ php4/ext/midgard/page.c Wed Feb 21 14:18:54 2001
@@ -1,4 +1,4 @@
-/* $Id: page.c,v 1.5 2001/02/21 00:24:56 davidg Exp $
+/* $Id: page.c,v 1.6 2001/02/21 22:18:54 emile Exp $
Copyright (C) 1999 Jukka Zitting <[EMAIL PROTECTED]>
Copyright (C) 2000 The Midgard Project ry
Copyright (C) 2000 Emile Heyns, Aurora SA <[EMAIL PROTECTED]>
@@ -115,9 +115,7 @@
WRONG_PARAM_COUNT;
}
- php_midgard_get(&MidgardPage, return_value,
"id,up,name,style,title,changed,content,author,"
- "info&1=1 AS auth,info&2=2 AS active",
- "page", (*id)->value.lval);
+ php_midgard_get_object(return_value, MIDGARD_OBJECT_PAGE, (*id)->value.lval);
}
MGD_FUNCTION(get_page_by_name)
Index: php4/ext/midgard/pageelement.c
diff -u php4/ext/midgard/pageelement.c:1.3 php4/ext/midgard/pageelement.c:1.4
--- php4/ext/midgard/pageelement.c:1.3 Sat Feb 17 15:21:50 2001
+++ php4/ext/midgard/pageelement.c Wed Feb 21 14:18:54 2001
@@ -1,4 +1,4 @@
-/* $Id: pageelement.c,v 1.3 2001/02/17 23:21:50 emile Exp $
+/* $Id: pageelement.c,v 1.4 2001/02/21 22:18:54 emile Exp $
Copyright (C) 1999 Jukka Zitting <[EMAIL PROTECTED]>
Copyright (C) 2000 The Midgard Project ry
Copyright (C) 2000 Emile Heyns, Aurora SA <[EMAIL PROTECTED]>
@@ -46,8 +46,8 @@
default:
WRONG_PARAM_COUNT;
}
- php_midgard_get(&MidgardPageElement, return_value, "id,page,name,value,info&1 AS
inherit",
- "pageelement", (*id)->value.lval);
+
+ php_midgard_get_object(return_value, MIDGARD_OBJECT_PAGEELEMENT,
+(*id)->value.lval);
}
MGD_FUNCTION(get_page_element_by_name)
Index: php4/ext/midgard/pagelink.c
diff -u php4/ext/midgard/pagelink.c:1.3 php4/ext/midgard/pagelink.c:1.4
--- php4/ext/midgard/pagelink.c:1.3 Sat Feb 17 15:21:50 2001
+++ php4/ext/midgard/pagelink.c Wed Feb 21 14:18:54 2001
@@ -1,4 +1,4 @@
-/* $Id: pagelink.c,v 1.3 2001/02/17 23:21:50 emile Exp $
+/* $Id: pagelink.c,v 1.4 2001/02/21 22:18:54 emile Exp $
Copyright (C) 1999 Jukka Zitting <[EMAIL PROTECTED]>
Copyright (C) 2000 The Midgard Project ry
Copyright (C) 2000 Emile Heyns, Aurora SA <[EMAIL PROTECTED]>
@@ -101,8 +101,8 @@
default:
WRONG_PARAM_COUNT;
}
- php_midgard_get(&MidgardPagelink, return_value, "id,up,name,target,grp,owner",
- "pagelink", (*id)->value.lval);
+
+ php_midgard_get_object(return_value, MIDGARD_OBJECT_PAGELINK, (*id)->value.lval);
}
MGD_FUNCTION(get_pagelink_by_name)
Index: php4/ext/midgard/person.c
diff -u php4/ext/midgard/person.c:1.3 php4/ext/midgard/person.c:1.4
--- php4/ext/midgard/person.c:1.3 Sat Feb 17 15:21:50 2001
+++ php4/ext/midgard/person.c Wed Feb 21 14:18:54 2001
@@ -1,4 +1,4 @@
-/* $Id: person.c,v 1.3 2001/02/17 23:21:50 emile Exp $
+/* $Id: person.c,v 1.4 2001/02/21 22:18:54 emile Exp $
Copyright (C) 1999 Jukka Zitting <[EMAIL PROTECTED]>
Copyright (C) 2000 The Midgard Project ry
Copyright (C) 2000 Emile Heyns, Aurora SA <[EMAIL PROTECTED]>
@@ -204,32 +204,7 @@
WRONG_PARAM_COUNT;
}
- if (isuserowner((*id)->value.lval))
- php_midgard_get(&MidgardPerson, return_value, "id," NAME_FIELDS ","
-
"If(Left(password,2)='**',Substring(password,3),'')"
- " AS password,"
- ADDRESS_FIELDS "," PHONE_FIELDS ","
- HOMEPAGE_FIELDS "," EMAIL_FIELDS ","
- "Date_format(birthdate,'%d.%m.%Y') AS
birthdate,extra,"
- "img,topic,department,office,pgpkey,"
PUBLIC_FIELDS,
- "person", (*id)->value.lval);
- else
- php_midgard_get(&MidgardPerson, return_value, "id," NAME_FIELDS ",''
AS password,"
- "If(info&2," ADDRESS_FIELD ",'') AS
address,"
- PUBLIC_FIELD(2,street) ","
- PUBLIC_FIELD(2,postcode) ","
- PUBLIC_FIELD(2,city) ","
- "If(info&4," PHONE_FIELD ",'') AS
phone,"
- PUBLIC_FIELD(4,handphone) ","
- PUBLIC_FIELD(4,homephone) ","
- PUBLIC_FIELD(4,workphone) ","
- "If(info&8," HOMEPAGE_FIELD ",'') AS
homepagelink,"
- PUBLIC_FIELD(8,homepage) ","
- "If(info&16," EMAIL_FIELD ",'') AS
emaillink,"
- PUBLIC_FIELD(16,email) ","
- "'' AS birthdate,"
PUBLIC_FIELD(32,extra) ","
- PUBLIC_FIELD(32,img)
",topic,department,office,pgpkey,"
- PUBLIC_FIELDS, "person",
(*id)->value.lval);
+ php_midgard_get_object(return_value, MIDGARD_OBJECT_PERSON, (*id)->value.lval);
}
MGD_FUNCTION(create_person)
Index: php4/ext/midgard/preferences.c
diff -u php4/ext/midgard/preferences.c:1.3 php4/ext/midgard/preferences.c:1.4
--- php4/ext/midgard/preferences.c:1.3 Sat Feb 17 15:21:50 2001
+++ php4/ext/midgard/preferences.c Wed Feb 21 14:18:54 2001
@@ -1,4 +1,4 @@
-/* $Id: preferences.c,v 1.3 2001/02/17 23:21:50 emile Exp $
+/* $Id: preferences.c,v 1.4 2001/02/21 22:18:54 emile Exp $
Copyright (C) 1999 Jukka Zitting <[EMAIL PROTECTED]>
Copyright (C) 2000 The Midgard Project ry
Copyright (C) 2000 Emile Heyns, Aurora SA <[EMAIL PROTECTED]>
@@ -113,8 +113,8 @@
if (!mgd_isadmin(mgd_handle()) &&
mgd_user(mgd_handle()) != mgd_idfield(mgd_handle(), "uid",
"preference", id))
RETURN_FALSE_BECAUSE(MGD_ERR_ACCESS_DENIED);
- php_midgard_get(&MidgardPreferences, return_value,
- "id,uid,domain,name,value", "preference", id);
+
+ php_midgard_get_object(return_value, MIDGARD_OBJECT_PREFERENCE, id);
}
MGD_FUNCTION(create_preference)
Index: php4/ext/midgard/sitegroup.c
diff -u php4/ext/midgard/sitegroup.c:1.4 php4/ext/midgard/sitegroup.c:1.5
--- php4/ext/midgard/sitegroup.c:1.4 Mon Feb 19 23:27:40 2001
+++ php4/ext/midgard/sitegroup.c Wed Feb 21 14:18:54 2001
@@ -1,4 +1,4 @@
-/* $Id: sitegroup.c,v 1.4 2001/02/20 07:27:40 davidg Exp $
+/* $Id: sitegroup.c,v 1.5 2001/02/21 22:18:54 emile Exp $
Copyright (C) 1999 Jukka Zitting <[EMAIL PROTECTED]>
Copyright (C) 2000 The Midgard Project ry
Copyright (C) 2000 Emile Heyns, Aurora SA <[EMAIL PROTECTED]>
@@ -98,7 +98,7 @@
WRONG_PARAM_COUNT;
}
- php_midgard_sitegroup_get(&MidgardSitegroup, return_value, 0, "*", "sitegroup",
(*id)->value.lval);
+ php_midgard_get_object(return_value, MIDGARD_OBJECT_SITEGROUP, (*id)->value.lval);
}
MGD_FUNCTION(update_sitegroup)
Index: php4/ext/midgard/snippet.c
diff -u php4/ext/midgard/snippet.c:1.3 php4/ext/midgard/snippet.c:1.4
--- php4/ext/midgard/snippet.c:1.3 Sat Feb 17 15:21:50 2001
+++ php4/ext/midgard/snippet.c Wed Feb 21 14:18:54 2001
@@ -1,4 +1,4 @@
-/* $Id: snippet.c,v 1.3 2001/02/17 23:21:50 emile Exp $
+/* $Id: snippet.c,v 1.4 2001/02/21 22:18:54 emile Exp $
Copyright (C) 1999 Jukka Zitting <[EMAIL PROTECTED]>
Copyright (C) 2000 The Midgard Project ry
Copyright (C) 2000 Emile Heyns, Aurora SA <[EMAIL PROTECTED]>
@@ -70,7 +70,8 @@
}
if(!(*id)->value.lval)
RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS);
- php_midgard_get(&MidgardSnippet, return_value,
"id,up,name,code,doc,author,creator,created,revisor,revised,revision", "snippet",
(*id)->value.lval);
+
+ php_midgard_get_object(return_value, MIDGARD_OBJECT_SNIPPET, (*id)->value.lval);
}
MGD_FUNCTION(get_snippet_by_name)
Index: php4/ext/midgard/snippetdir.c
diff -u php4/ext/midgard/snippetdir.c:1.4 php4/ext/midgard/snippetdir.c:1.5
--- php4/ext/midgard/snippetdir.c:1.4 Tue Feb 20 16:24:56 2001
+++ php4/ext/midgard/snippetdir.c Wed Feb 21 14:18:54 2001
@@ -1,4 +1,4 @@
-/* $Id: snippetdir.c,v 1.4 2001/02/21 00:24:56 davidg Exp $
+/* $Id: snippetdir.c,v 1.5 2001/02/21 22:18:54 emile Exp $
Copyright (C) 1999 Jukka Zitting <[EMAIL PROTECTED]>
Copyright (C) 2000 The Midgard Project ry
Copyright (C) 2000 Emile Heyns, Aurora SA <[EMAIL PROTECTED]>
@@ -61,7 +61,7 @@
WRONG_PARAM_COUNT;
}
- php_midgard_get(&MidgardSnippetdir, return_value, "id,up,name,description,owner",
"snippetdir", (*id)->value.lval);
+ php_midgard_get_object(return_value, MIDGARD_OBJECT_SNIPPETDIR, (*id)->value.lval);
}
MGD_FUNCTION(get_snippetdir_by_path)
@@ -83,7 +83,7 @@
WRONG_PARAM_COUNT;
}
if(!MGD_PARSE_COMMON_PATH(mgd_handle(), (*path)->value.str.val, "snippetdir",
"snippetdir", &id, &up)) {
- php_midgard_get(&MidgardSnippetdir, return_value,
"id,up,name,description,owner", "snippetdir", id);
+ php_midgard_get_object(return_value, MIDGARD_OBJECT_SNIPPETDIR, id);
return;
}
}
Index: php4/ext/midgard/style.c
diff -u php4/ext/midgard/style.c:1.4 php4/ext/midgard/style.c:1.5
--- php4/ext/midgard/style.c:1.4 Tue Feb 20 16:24:56 2001
+++ php4/ext/midgard/style.c Wed Feb 21 14:18:54 2001
@@ -1,4 +1,4 @@
-/* $Id: style.c,v 1.4 2001/02/21 00:24:56 davidg Exp $
+/* $Id: style.c,v 1.5 2001/02/21 22:18:54 emile Exp $
Copyright (C) 1999 Jukka Zitting <[EMAIL PROTECTED]>
Copyright (C) 2000 The Midgard Project ry
Copyright (C) 2000 Emile Heyns, Aurora SA <[EMAIL PROTECTED]>
@@ -67,7 +67,8 @@
default:
WRONG_PARAM_COUNT;
}
- php_midgard_get(&MidgardStyle, return_value, "id,up,name,owner", "style",
(*id)->value.lval);
+
+ php_midgard_get_object(return_value, MIDGARD_OBJECT_STYLE, (*id)->value.lval);
}
MGD_FUNCTION(get_style_by_name)
Index: php4/ext/midgard/topic.c
diff -u php4/ext/midgard/topic.c:1.5 php4/ext/midgard/topic.c:1.6
--- php4/ext/midgard/topic.c:1.5 Tue Feb 20 16:24:56 2001
+++ php4/ext/midgard/topic.c Wed Feb 21 14:18:54 2001
@@ -1,4 +1,4 @@
-/* $Id: topic.c,v 1.5 2001/02/21 00:24:56 davidg Exp $
+/* $Id: topic.c,v 1.6 2001/02/21 22:18:54 emile Exp $
Copyright (C) 1999 Jukka Zitting <[EMAIL PROTECTED]>
Copyright (C) 2000 The Midgard Project ry
Copyright (C) 2000 Emile Heyns, Aurora SA <[EMAIL PROTECTED]>
@@ -152,12 +152,8 @@
case 1:
if (zend_get_parameters_ex(1, &id) == SUCCESS) {
convert_to_long_ex(id);
- php_midgard_get(&MidgardTopic,
- return_value,
-
"id,up,score,name,description,extra,owner,code,"
- "creator,Unix_timestamp(created) as
created,"
- "revisor,Unix_timestamp(revised) as
revised,revision",
- "topic", (*id)->value.lval);
+ php_midgard_get_object(return_value, MIDGARD_OBJECT_TOPIC,
+ (*id)->value.lval);
}
else {
WRONG_PARAM_COUNT;
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]