给梦一个奔跑的方向!
PDF Print E-mail
90
Written by xlingfairy
Tuesday, 09 February 2010 17:42
仍然是困了我几天,没有解决.网上关于这方面的资料太少了.
不过,我还是找到了解决方法:
 
 
SOAP Server 声明:
 
ini_set ( "soap.wsdl_cache_enabled", "0" );
$soap = new Zend_Soap_Server ( URL . "/?wsdl" ); // this current file here
$soap->setClass ( 'Joomla_User' );
$soap->handle ();
 
 
Joomla_User 的声明:
 
PDF Print E-mail
119
Written by xlingfairy
Saturday, 06 February 2010 12:32
 先说说我前面遇到的挫折:
复杂类型 与 数组.
这个问题困扰我好几天了, C# 写的 client 在请求SOAP方法之后,报错:
 
soap 未识别指定的类型: name='struct'
这个 struct 可能是其它的,你在PHP里定义的类.
 
解决办法是,指定 style 为 literal , 默认的为: encoded , 参见:
http://framework.zend.com/manual/en/zend.soap.autodiscovery.html
这个页面最下面的代码框里有写.
Last Updated ( Saturday, 06 February 2010 12:42 )
 
PDF Print E-mail
94
Written by xlingfairy
Saturday, 06 February 2010 10:52
 还是同样的代码在本地(windows)返回的是正常的. 但是在服务器上却返回:
Procedure 'xxx' not present
 
查了一下GOOGLE,在2007年的时候,有人报告过这个 BUG:
http://bugs.php.net/bug.php?id=42086
 
但是都快3年了,这个BUG应该早以修复了吧( windows 本地 执行没有这个错误).
 
最后找到一个解决办法:
http://www.anty.info/2008/09/01/soap-procedure-foo-not-present/
 
ini_set("soap.wsdl_cache_enabled", "0");
$soap = new Zend_Soap_Server ( URL . "/?wsdl"); // this current file here
$soap->setClass ( 'Joomla_User' );
$soap->handle ();
 
问题解决.
 
PDF Print E-mail
81
Written by xlingfairy
Saturday, 06 February 2010 10:04
 试着用 ZendFramework 的 SOAP, 相同的代码,在我本地(windows apache)和服务器(linux, http://test.dajiaozi.com/phpinfo.php)上返回的WSDL却有一点出入:
 
<xsd:restriction base="soap-enc:Array">
<xsd:attribute ref="soap-enc:arrayType" wsdl:arrayType="tns:User[]"/>
</xsd:restriction>
 
在服务器上,产生的 wsdl 里, 没有 wsdl:arrayType="tns:User[]" 这个 attribute.
很是纳闷. 服务器上我放的是 ZendFramework mini 1.10 
Last Updated ( Saturday, 06 February 2010 10:10 )
 
PDF Print E-mail
232
Written by xlingfairy
Saturday, 16 January 2010 15:30
joomla 的 module 有 all, none , Select Menu Item(s) 三个选项,基本来说,可以控制 module 任意显示了,但是如果想指定一个 module 除某些菜单不显示,就有点烦琐了,因为某些内容并没有对应到菜单上,要做这样,就必须先把内容对应到某个菜单,然后在 module 里选 Select Menu Item(s) , 不选择不要显示的菜单。
 
这真是件痛苦的事情。
 
现在我把它改改,加个选项:除选择的项目之外
 
这个 module 的逻辑差点把我给套进去了,搞了一上午才搞定。
 
ALTER TABLE jos_modules ADD IsExcept BOOL DEFAULT FALSE;
如果为 1 (true) 就是除选择的菜单之外。除了选择的菜单不显示该 module ,其它都的都显示。
把 jos 改成你自己的前缀。
 

Popular Contents

Recommend

Site Info

Members : 1
Content : 100
Web Links : 7
Content View Hits : 56172

Links