Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
F
freeswitch-contrib
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
张华
freeswitch-contrib
Commits
10f46e14
提交
10f46e14
authored
2月 06, 2011
作者:
Mathieu Parent
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
MediaBrotha: LDAP search form
And more: - callback - rework of actions - exceptions handling - forms
上级
855b7802
隐藏空白字符变更
内嵌
并排
正在显示
15 个修改的文件
包含
292 行增加
和
77 行删除
+292
-77
index.php
sathieu/cisco-xml/browser/index.php
+1
-1
Cisco-XML.php
sathieu/cisco-xml/lib/Cisco-XML/Cisco-XML.php
+3
-1
Backend.php
sathieu/cisco-xml/lib/MediaBrotha/Backend.php
+4
-8
FileSystem.php
sathieu/cisco-xml/lib/MediaBrotha/Backend/FileSystem.php
+20
-13
LDAP.php
sathieu/cisco-xml/lib/MediaBrotha/Backend/LDAP.php
+63
-16
Root.php
sathieu/cisco-xml/lib/MediaBrotha/Backend/Root.php
+10
-4
VLC.php
sathieu/cisco-xml/lib/MediaBrotha/Backend/VLC.php
+0
-6
Core.php
sathieu/cisco-xml/lib/MediaBrotha/Core.php
+35
-13
Form.php
sathieu/cisco-xml/lib/MediaBrotha/Form.php
+54
-0
Frontend.php
sathieu/cisco-xml/lib/MediaBrotha/Frontend.php
+9
-1
CiscoXML.php
sathieu/cisco-xml/lib/MediaBrotha/Frontend/CiscoXML.php
+21
-1
HTML.php
sathieu/cisco-xml/lib/MediaBrotha/Frontend/HTML.php
+63
-6
HTTP.php
sathieu/cisco-xml/lib/MediaBrotha/Frontend/HTTP.php
+7
-3
Media.php
sathieu/cisco-xml/lib/MediaBrotha/Media.php
+1
-1
MediaIterator.php
sathieu/cisco-xml/lib/MediaBrotha/MediaIterator.php
+1
-3
没有找到文件。
sathieu/cisco-xml/browser/index.php
浏览文件 @
10f46e14
...
@@ -25,7 +25,7 @@ This file is part of XML services for Cisco IP Phones.
...
@@ -25,7 +25,7 @@ This file is part of XML services for Cisco IP Phones.
*/
*/
//* Debug
//* Debug
ini_set
(
'error_reporting'
,
E_ALL
|
E_STRUCT
);
ini_set
(
'error_reporting'
,
E_ALL
);
ini_set
(
'display_errors'
,
1
);
ini_set
(
'display_errors'
,
1
);
// */
// */
...
...
sathieu/cisco-xml/lib/Cisco-XML/Cisco-XML.php
浏览文件 @
10f46e14
...
@@ -25,7 +25,9 @@ This file is part of XML services for Cisco IP Phones.
...
@@ -25,7 +25,9 @@ This file is part of XML services for Cisco IP Phones.
*/
*/
class
CiscoIPPhone
{
class
CiscoIPPhone
{
static
public
function
userAgentIsCiscoIPPhone
()
{
static
public
function
userAgentIsCiscoIPPhone
()
{
return
preg_match
(
'/^Allegro-Software-WebClient\//'
,
$_SERVER
[
'HTTP_USER_AGENT'
]);
if
(
isset
(
$_SERVER
[
'HTTP_USER_AGENT'
]))
{
return
preg_match
(
'/^Allegro-Software-WebClient\//'
,
$_SERVER
[
'HTTP_USER_AGENT'
]);
}
}
}
}
}
...
...
sathieu/cisco-xml/lib/MediaBrotha/Backend.php
浏览文件 @
10f46e14
...
@@ -26,8 +26,8 @@ This file is part of MediaBrotha.
...
@@ -26,8 +26,8 @@ This file is part of MediaBrotha.
require_once
(
'MediaBrotha/Media.php'
);
require_once
(
'MediaBrotha/Media.php'
);
class
MediaBrotha_Backend
{
abstract
class
MediaBrotha_Backend
{
pr
otected
$_params
=
NULL
;
pr
ivate
$_params
=
NULL
;
public
function
__construct
(
$params
=
NULL
)
{
public
function
__construct
(
$params
=
NULL
)
{
$this
->
setParam
(
$params
);
$this
->
setParam
(
$params
);
...
@@ -35,7 +35,7 @@ class MediaBrotha_Backend {
...
@@ -35,7 +35,7 @@ class MediaBrotha_Backend {
}
}
/* params */
/* params */
public
function
getParam
(
$name
=
NULL
)
{
final
public
function
getParam
(
$name
=
NULL
)
{
if
(
$name
===
NULL
)
{
if
(
$name
===
NULL
)
{
return
$this
->
_params
;
return
$this
->
_params
;
}
elseif
(
isset
(
$this
->
_params
[
$name
]))
{
}
elseif
(
isset
(
$this
->
_params
[
$name
]))
{
...
@@ -44,7 +44,7 @@ class MediaBrotha_Backend {
...
@@ -44,7 +44,7 @@ class MediaBrotha_Backend {
return
NULL
;
return
NULL
;
}
}
}
}
public
function
setParam
(
$name
,
$value
=
NULL
)
{
final
public
function
setParam
(
$name
,
$value
=
NULL
)
{
if
(
is_array
(
$name
))
{
if
(
is_array
(
$name
))
{
$this
->
_params
=
$name
;
$this
->
_params
=
$name
;
}
else
{
}
else
{
...
@@ -66,10 +66,6 @@ class MediaBrotha_Backend {
...
@@ -66,10 +66,6 @@ class MediaBrotha_Backend {
return
$item
;
return
$item
;
}
}
public
function
fetch
(
MediaBrotha_Media
$media
)
{
return
false
;
}
// Actions
// Actions
public
function
getMediaActions
(
MediaBrotha_Media
$media
)
{
public
function
getMediaActions
(
MediaBrotha_Media
$media
)
{
return
Array
();
return
Array
();
...
...
sathieu/cisco-xml/lib/MediaBrotha/Backend/FileSystem.php
浏览文件 @
10f46e14
...
@@ -61,19 +61,6 @@ class MediaBrotha_Backend_FileSystem extends MediaBrotha_Backend {
...
@@ -61,19 +61,6 @@ class MediaBrotha_Backend_FileSystem extends MediaBrotha_Backend {
}
}
}
}
public
function
fetch
(
MediaBrotha_Media
$media
)
{
$uri
=
$media
->
getURI
();
if
((
parse_url
(
$uri
,
PHP_URL_SCHEME
)
!=
'file'
)
||
!
$this
->
isURISafe
(
$uri
))
{
$uri
=
'file://'
.
$this
->
getParam
(
'base_path'
);
}
$path
=
parse_url
(
$uri
,
PHP_URL_PATH
);
if
(
is_dir
(
$path
))
{
return
new
MediaBrotha_MediaIterator
(
$this
,
$media
,
new
DirectoryIterator
(
$path
));
}
else
{
return
false
;
}
}
// Actions
// Actions
protected
function
_isHandled
(
MediaBrotha_Media
$media
)
{
protected
function
_isHandled
(
MediaBrotha_Media
$media
)
{
return
(
$media
->
getMimeType
()
===
'application/x-directory'
)
return
(
$media
->
getMimeType
()
===
'application/x-directory'
)
...
@@ -83,6 +70,7 @@ class MediaBrotha_Backend_FileSystem extends MediaBrotha_Backend {
...
@@ -83,6 +70,7 @@ class MediaBrotha_Backend_FileSystem extends MediaBrotha_Backend {
public
function
getMediaActions
(
MediaBrotha_Media
$media
)
{
public
function
getMediaActions
(
MediaBrotha_Media
$media
)
{
if
(
$this
->
_isHandled
(
$media
))
{
if
(
$this
->
_isHandled
(
$media
))
{
return
Array
(
return
Array
(
'_default'
,
'browse'
,
'browse'
,
);
);
}
else
{
}
else
{
...
@@ -90,6 +78,25 @@ class MediaBrotha_Backend_FileSystem extends MediaBrotha_Backend {
...
@@ -90,6 +78,25 @@ class MediaBrotha_Backend_FileSystem extends MediaBrotha_Backend {
}
}
}
}
public
function
doMediaAction
(
$action
,
MediaBrotha_Media
$media
)
{
switch
(
$action
)
{
case
'_default'
:
case
'browse'
:
$uri
=
$media
->
getURI
();
if
((
parse_url
(
$uri
,
PHP_URL_SCHEME
)
!=
'file'
)
||
!
$this
->
isURISafe
(
$uri
))
{
$uri
=
'file://'
.
$this
->
getParam
(
'base_path'
);
}
$path
=
parse_url
(
$uri
,
PHP_URL_PATH
);
if
(
is_dir
(
$path
))
{
return
new
MediaBrotha_MediaIterator
(
$this
,
new
DirectoryIterator
(
$path
));
}
else
{
return
false
;
}
default
:
return
parent
::
doMediaAction
(
$action
,
$media
);
}
}
// Populate
// Populate
public
function
populateMedia
(
MediaBrotha_Media
$media
)
{
public
function
populateMedia
(
MediaBrotha_Media
$media
)
{
if
(
$this
->
_isHandled
(
$media
))
{
if
(
$this
->
_isHandled
(
$media
))
{
...
...
sathieu/cisco-xml/lib/MediaBrotha/Backend/LDAP.php
浏览文件 @
10f46e14
...
@@ -63,21 +63,6 @@ class MediaBrotha_Backend_LDAP extends MediaBrotha_Backend {
...
@@ -63,21 +63,6 @@ class MediaBrotha_Backend_LDAP extends MediaBrotha_Backend {
}
}
}
}
public
function
fetch
(
MediaBrotha_Media
$media
)
{
$uri
=
$media
->
getURI
();
if
((
$this
::
parseLDAPURI
(
$uri
,
PHP_URL_SCHEME
)
!=
'ldap'
)
||
!
$this
->
isURISafe
(
$uri
))
{
$ldap_connect_config
=
$this
->
getParam
(
'ldap_connect_config'
);
$uri
=
'ldap:///'
.
$ldap_connect_config
[
'basedn'
];
}
$basedn
=
$this
::
parseLDAPURI
(
$uri
,
PHP_URL_PATH
);
if
(
$basedn
&&
(
$basedn
{
0
}
=
'/'
))
{
$basedn
=
substr
(
$basedn
,
1
);
}
$ldap_search
=
$this
->
_ldap
->
search
(
$basedn
,
NULL
,
Array
());
return
new
MediaBrotha_MediaIterator
(
$this
,
$media
,
$ldap_search
);
return
true
;
}
// Actions
// Actions
protected
function
_isHandled
(
MediaBrotha_Media
$media
)
{
protected
function
_isHandled
(
MediaBrotha_Media
$media
)
{
return
(
$media
->
getMimeType
()
===
'text/directory'
)
return
(
$media
->
getMimeType
()
===
'text/directory'
)
...
@@ -87,12 +72,74 @@ class MediaBrotha_Backend_LDAP extends MediaBrotha_Backend {
...
@@ -87,12 +72,74 @@ class MediaBrotha_Backend_LDAP extends MediaBrotha_Backend {
public
function
getMediaActions
(
MediaBrotha_Media
$media
)
{
public
function
getMediaActions
(
MediaBrotha_Media
$media
)
{
if
(
$this
->
_isHandled
(
$media
))
{
if
(
$this
->
_isHandled
(
$media
))
{
return
Array
(
return
Array
(
'_default'
,
'browse'
,
'browse'
,
'search'
,
);
);
}
else
{
}
else
{
return
parent
::
getMediaActions
(
$media
);
return
parent
::
getMediaActions
(
$media
);
}
}
}
}
public
function
doMediaAction
(
$action
,
MediaBrotha_Media
$media
)
{
switch
(
$action
)
{
case
'browse'
:
$uri
=
$media
->
getURI
();
if
((
$this
::
parseLDAPURI
(
$uri
,
PHP_URL_SCHEME
)
!=
'ldap'
)
||
!
$this
->
isURISafe
(
$uri
))
{
$ldap_connect_config
=
$this
->
getParam
(
'ldap_connect_config'
);
$uri
=
'ldap:///'
.
$ldap_connect_config
[
'basedn'
];
}
$basedn
=
$this
::
parseLDAPURI
(
$uri
,
PHP_URL_PATH
);
if
(
$basedn
&&
(
$basedn
{
0
}
=
'/'
))
{
$basedn
=
substr
(
$basedn
,
1
);
}
$ldap_search
=
$this
->
_ldap
->
search
(
$basedn
,
NULL
,
Array
());
return
new
MediaBrotha_MediaIterator
(
$this
,
$ldap_search
);
case
'_default'
:
case
'search'
:
$form
=
new
MediaBrotha_Form
();
$form
->
setTitle
(
'search'
);
$search_fields
=
Array
(
'sn'
=>
Array
(
'display_name'
=>
'last name'
),
'givenName'
=>
Array
(
'display_name'
=>
'first name'
),
'telephoneNumber'
=>
Array
(
'display_name'
=>
'phone'
,
'filter'
=>
'(telephoneNumber=*%s*)'
),
//'o' => Array('display_name' => 'organization'),
//'mobile' => Array('display_name' => 'mobile'),
//'facsimileTelephoneNumber' => Array('display_name' => 'fax'),
//'l' => Array('display_name' => 'location'),
//'st' => Array('display_name' => 'department'),
//'roomNumber' => Array('display_name' => 'room number'),
);
$ldap_connect_config
=
$this
->
getParam
(
'ldap_connect_config'
);
$filter
=
$ldap_connect_config
[
'filter'
];
foreach
(
$search_fields
as
$attribute_name
=>
$field
)
{
$field
[
'name'
]
=
$attribute_name
;
if
(
!
empty
(
$_GET
[
$attribute_name
]))
{
$field
[
'value'
]
=
$_GET
[
$attribute_name
];
if
(
empty
(
$infos
[
'filter'
]))
{
$filter
=
"(&
$filter
(
$attribute_name
="
.
$_GET
[
$attribute_name
]
.
"*))"
;
}
else
{
$filter
=
"(&
$filter
"
.
sprintf
(
$infos
[
'filter'
],
$_GET
[
$attribute_name
])
.
")"
;
}
}
$form
->
addField
(
$field
);
}
if
(
empty
(
$_GET
[
'ldap_search'
]))
{
MediaBrotha_Core
::
addCallback
(
'MediaBrotha_Backend_LDAP::searchCallback'
);
return
$form
;
}
else
{
$ldap_search
=
$this
->
_ldap
->
search
(
NULL
,
$filter
,
Array
(
'scope'
=>
'sub'
));
return
new
MediaBrotha_MediaIterator
(
$this
,
$ldap_search
);
}
default
:
return
parent
::
doMediaAction
(
$action
,
$media
);
}
}
static
public
function
searchCallback
()
{
$_GET
[
'backend'
]
=
'LDAP'
;
$_GET
[
'action'
]
=
'search'
;
$_GET
[
'ldap_search'
]
=
'1'
;
}
}
}
sathieu/cisco-xml/lib/MediaBrotha/Backend/Root.php
浏览文件 @
10f46e14
...
@@ -35,7 +35,7 @@ class MediaBrotha_Backend_Root extends MediaBrotha_Backend {
...
@@ -35,7 +35,7 @@ class MediaBrotha_Backend_Root extends MediaBrotha_Backend {
'display_name'
=>
'Root'
,
'display_name'
=>
'Root'
,
)
)
);
);
$this
->
_media_iterator
=
new
MediaBrotha_MediaIterator
(
$this
,
$this
->
_media
);
$this
->
_media_iterator
=
new
MediaBrotha_MediaIterator
(
$this
);
}
}
public
function
addRootMedia
(
$URI
,
array
$metadata
=
Array
(),
$mime_type
=
NULL
,
$mime_encoding
=
NULL
)
{
public
function
addRootMedia
(
$URI
,
array
$metadata
=
Array
(),
$mime_type
=
NULL
,
$mime_encoding
=
NULL
)
{
...
@@ -45,9 +45,15 @@ class MediaBrotha_Backend_Root extends MediaBrotha_Backend {
...
@@ -45,9 +45,15 @@ class MediaBrotha_Backend_Root extends MediaBrotha_Backend {
$this
->
_media_iterator
->
bufferAdd
(
$media
);
$this
->
_media_iterator
->
bufferAdd
(
$media
);
}
}
// Browsing
// Actions
public
function
fetch
(
MediaBrotha_Media
$media
)
{
public
function
doMediaAction
(
$action
,
MediaBrotha_Media
$media
)
{
return
$this
->
_media_iterator
;
switch
(
$action
)
{
case
'_default'
:
case
'browse'
:
return
$this
->
_media_iterator
;
default
:
return
parent
::
doMediaAction
(
$action
,
$media
);
}
}
}
}
}
...
...
sathieu/cisco-xml/lib/MediaBrotha/Backend/VLC.php
浏览文件 @
10f46e14
...
@@ -43,12 +43,6 @@ class MediaBrotha_Backend_VLC extends MediaBrotha_Backend {
...
@@ -43,12 +43,6 @@ class MediaBrotha_Backend_VLC extends MediaBrotha_Backend {
print
$output
.
'<!--'
.
$url
.
"-->
\n
"
;
print
$output
.
'<!--'
.
$url
.
"-->
\n
"
;
}
}
// Browsing
public
function
fetch
(
MediaBrotha_Media
$media
)
{
$this
->
_buffer
[]
=
$media
;
return
true
;
}
// Actions
// Actions
protected
function
_isHandled
(
MediaBrotha_Media
$media
)
{
protected
function
_isHandled
(
MediaBrotha_Media
$media
)
{
return
in_array
(
$media
->
getMimeType
(),
Array
(
$this
::
$_supported_mime_types
))
return
in_array
(
$media
->
getMimeType
(),
Array
(
$this
::
$_supported_mime_types
))
...
...
sathieu/cisco-xml/lib/MediaBrotha/Core.php
浏览文件 @
10f46e14
...
@@ -28,6 +28,7 @@ require_once('MediaBrotha/Backend.php');
...
@@ -28,6 +28,7 @@ require_once('MediaBrotha/Backend.php');
require_once
(
'MediaBrotha/Frontend.php'
);
require_once
(
'MediaBrotha/Frontend.php'
);
require_once
(
'MediaBrotha/Media.php'
);
require_once
(
'MediaBrotha/Media.php'
);
require_once
(
'MediaBrotha/MediaIterator.php'
);
require_once
(
'MediaBrotha/MediaIterator.php'
);
require_once
(
'MediaBrotha/Form.php'
);
class
MediaBrotha_Core
{
class
MediaBrotha_Core
{
private
static
$_frontend
=
NULL
;
private
static
$_frontend
=
NULL
;
...
@@ -38,20 +39,26 @@ class MediaBrotha_Core {
...
@@ -38,20 +39,26 @@ class MediaBrotha_Core {
* Core
* Core
*/
*/
public
static
function
init
()
{
public
static
function
init
()
{
if
(
!
session_start
())
{
try
{
die
(
'Unable to start session'
);
if
(
!
session_start
())
{
throw
new
Exception
(
'Unable to start session'
);
}
MediaBrotha_Core
::
_unhashRequest
();
MediaBrotha_Core
::
loadBackend
(
'Root'
);
}
catch
(
Exception
$e
)
{
die
(
$e
);
}
}
MediaBrotha_Core
::
_unhashRequest
();
MediaBrotha_Core
::
loadBackend
(
'Root'
);
}
}
public
static
function
go
()
{
public
static
function
go
()
{
$current_backend
=
MediaBrotha_Core
::
getCurrentBackend
();
try
{
$current_media
=
MediaBrotha_Core
::
getCurrentMedia
();
MediaBrotha_Core
::
runCallback
();
if
(
MediaBrotha_Core
::
getAction
()
==
'browse'
)
{
$current_backend
=
MediaBrotha_Core
::
getCurrentBackend
();
if
(
$media_iterator
=
$current_backend
->
fetch
(
$current_media
))
{
$current_media
=
MediaBrotha_Core
::
getCurrentMedia
();
$result
=
$current_backend
->
doMediaAction
(
MediaBrotha_Core
::
getAction
(),
$current_media
);
if
(
is_a
(
$result
,
'MediaBrotha_MediaIterator'
))
{
MediaBrotha_Core
::
$_frontend
->
begin
(
$current_media
);
MediaBrotha_Core
::
$_frontend
->
begin
(
$current_media
);
foreach
(
$
media_iterator
as
$item
)
{
foreach
(
$
result
as
$item
)
{
if
((
$item
===
NULL
)
||
$item
->
isHidden
())
{
if
((
$item
===
NULL
)
||
$item
->
isHidden
())
{
continue
;
continue
;
}
}
...
@@ -59,17 +66,32 @@ class MediaBrotha_Core {
...
@@ -59,17 +66,32 @@ class MediaBrotha_Core {
}
}
MediaBrotha_Core
::
$_frontend
->
finish
(
$current_media
);
MediaBrotha_Core
::
$_frontend
->
finish
(
$current_media
);
MediaBrotha_Core
::
$_frontend
->
render
(
$current_media
);
MediaBrotha_Core
::
$_frontend
->
render
(
$current_media
);
}
elseif
(
is_a
(
$result
,
'MediaBrotha_Form'
))
{
MediaBrotha_Core
::
$_frontend
->
renderForm
(
$result
);
}
elseif
(
is_a
(
$result
,
'Exception'
))
{
throw
$result
;
}
else
{
}
else
{
throw
new
Exception
(
"Got unexpected result '
$result
'."
);
}
}
}
else
{
}
catch
(
Exception
$e
)
{
$current_backend
->
doMediaAction
(
MediaBrotha_Core
::
getAction
(),
$current_media
);
MediaBrotha_Core
::
$_frontend
->
renderException
(
$e
);
}
}
}
}
public
function
addRootMedia
(
$URI
,
array
$metadata
=
Array
(),
$mime_type
=
NULL
,
$mime_encoding
=
NULL
)
{
public
static
function
addRootMedia
(
$URI
,
array
$metadata
=
Array
(),
$mime_type
=
NULL
,
$mime_encoding
=
NULL
)
{
MediaBrotha_Core
::
$_backends
[
'Root'
]
->
addRootMedia
(
$URI
,
$metadata
,
$mime_type
,
$mime_encoding
);
MediaBrotha_Core
::
$_backends
[
'Root'
]
->
addRootMedia
(
$URI
,
$metadata
,
$mime_type
,
$mime_encoding
);
}
}
public
static
function
addCallback
(
$callback
,
$arg
=
NULL
)
{
$_SESSION
[
'CALLBACK'
][]
=
Array
(
$callback
,
$arg
);
}
public
static
function
runCallback
()
{
while
(
$callback_info
=
array_shift
(
$_SESSION
[
'CALLBACK'
]))
{
call_user_func
(
$callback_info
[
0
],
$callback_info
[
1
]);
}
}
/*
/*
* Backends
* Backends
*/
*/
...
@@ -129,7 +151,7 @@ class MediaBrotha_Core {
...
@@ -129,7 +151,7 @@ class MediaBrotha_Core {
if
(
!
empty
(
$_GET
[
'action'
]))
{
if
(
!
empty
(
$_GET
[
'action'
]))
{
return
$_GET
[
'action'
];
return
$_GET
[
'action'
];
}
else
{
}
else
{
return
'
browse
'
;
return
'
_default
'
;
}
}
}
}
...
...
sathieu/cisco-xml/lib/MediaBrotha/Form.php
0 → 100644
浏览文件 @
10f46e14
<?php
/*
Copyright 2011 Mathieu Parent <math.parent@gmail.com>
This file is part of MediaBrotha.
MediaBrotha is free software: you can
redistribute it and/or modify it under the terms of the GNU General
Public License as published by the Free Software Foundation, either
version 3 of the License, or (at your option) any later version.
MediaBrotha is distributed in the hope that it
will be useful, but WITHOUT ANY WARRANTY; without even the implied
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with MediaBrotha. If not, see
<http://www.gnu.org/licenses/>.
*/
/**
* @author Mathieu Parent
*/
class
MediaBrotha_Field
{
private
$_attrs
;
public
function
__construct
(
array
$attrs
)
{
$this
->
_attrs
=
$attrs
;
}
public
function
get
(
$name
)
{
if
(
isset
(
$this
->
_attrs
[
$name
]))
{
return
$this
->
_attrs
[
$name
];
}
}
}
class
MediaBrotha_Form
extends
ArrayIterator
{
private
$_title
;
public
function
getTitle
()
{
return
$this
->
_title
;
}
public
function
setTitle
(
$title
)
{
$this
->
_title
=
$title
;
}
public
function
addField
(
array
$args
)
{
$this
[]
=
new
MediaBrotha_Field
(
$args
);
}
}
sathieu/cisco-xml/lib/MediaBrotha/Frontend.php
浏览文件 @
10f46e14
...
@@ -24,11 +24,19 @@ This file is part of MediaBrotha.
...
@@ -24,11 +24,19 @@ This file is part of MediaBrotha.
* @author Mathieu Parent
* @author Mathieu Parent
*/
*/
class
MediaBrotha_Frontend
{
abstract
class
MediaBrotha_Frontend
{
protected
$_infos
=
NULL
;
protected
$_infos
=
NULL
;
public
function
__construct
(
array
$args
=
Array
())
{
public
function
__construct
(
array
$args
=
Array
())
{
$this
->
_infos
=
$args
;
$this
->
_infos
=
$args
;
}
}
public
function
renderException
(
Exception
$e
)
{
print
$e
;
}
public
function
renderForm
(
MediaBrotha_Form
$form
)
{
throw
new
Exception
(
__FUNCTION__
.
' not implemented in class "'
.
get_class
(
$this
)
.
'"'
);
}
}
}
sathieu/cisco-xml/lib/MediaBrotha/Frontend/CiscoXML.php
浏览文件 @
10f46e14
...
@@ -52,7 +52,7 @@ class MediaBrotha_Frontend_CiscoXML extends MediaBrotha_Frontend_HTTP {
...
@@ -52,7 +52,7 @@ class MediaBrotha_Frontend_CiscoXML extends MediaBrotha_Frontend_HTTP {
'URL'
=>
'SoftKey:Select'
,
'URL'
=>
'SoftKey:Select'
,
'Position'
=>
$pos
++
));
'Position'
=>
$pos
++
));
foreach
(
MediaBrotha_Core
::
getBackends
()
as
$backend
)
{
foreach
(
MediaBrotha_Core
::
getBackends
()
as
$backend
)
{
foreach
(
$backend
->
getMediaActions
(
MediaBrotha_Core
::
getCurrentMedia
()
)
as
$action
)
{
foreach
(
$backend
->
getMediaActions
(
$item
)
as
$action
)
{
$this
->
_xml
->
setCiscoElement
(
'SoftKeyItem'
,
$this
->
_xml
->
setCiscoElement
(
'SoftKeyItem'
,
Array
(
'Name'
=>
$action
,
Array
(
'Name'
=>
$action
,
'URL'
=>
'QueryStringParam:'
.
MediaBrotha_Core
::
value2hash
(
'action='
.
$action
.
'&backend='
.
$backend
->
getBackendName
()),
'URL'
=>
'QueryStringParam:'
.
MediaBrotha_Core
::
value2hash
(
'action='
.
$action
.
'&backend='
.
$backend
->
getBackendName
()),
...
@@ -70,5 +70,25 @@ class MediaBrotha_Frontend_CiscoXML extends MediaBrotha_Frontend_HTTP {
...
@@ -70,5 +70,25 @@ class MediaBrotha_Frontend_CiscoXML extends MediaBrotha_Frontend_HTTP {
print
$this
->
_xml
->
execute
(
$this
->
_infos
[
'push_url'
]);
print
$this
->
_xml
->
execute
(
$this
->
_infos
[
'push_url'
]);
}
}
}
}
public
function
renderForm
(
MediaBrotha_Form
$form
)
{
$xml
=
new
CiscoIPPhoneInput
();
$xml
->
setCiscoElement
(
'Title'
,
$form
->
getTitle
());
//$xml->setCiscoElement('Prompt', ...);
$xml
->
setCiscoElement
(
'URL'
,
$this
->
rootURL
());
foreach
(
$form
as
$field
)
{
$xml
->
setCiscoElement
(
'InputItem'
,
Array
(
'DisplayName'
=>
$field
->
get
(
'display_name'
),
'QueryStringParam'
=>
$field
->
get
(
'name'
),
'DefaultValue'
=>
$field
->
get
(
'value'
),
'InputFlags'
=>
''
,
)
);
}
CiscoXMLObject
::
HttpHeader
();
print
$xml
;
}
}
}
sathieu/cisco-xml/lib/MediaBrotha/Frontend/HTML.php
浏览文件 @
10f46e14
...
@@ -54,7 +54,7 @@ class MediaBrotha_Frontend_HTML extends MediaBrotha_Frontend_HTTP {
...
@@ -54,7 +54,7 @@ class MediaBrotha_Frontend_HTML extends MediaBrotha_Frontend_HTTP {
}
}
}
}
p
ublic
function
begin
(
$item
)
{
p
rivate
function
_createHTMLDocument
(
$title
)
{
$this
->
_xml
=
new
DOMDocument
(
'1.0'
);
$this
->
_xml
=
new
DOMDocument
(
'1.0'
);
$root
=
$this
->
_xml
->
createElement
(
'html'
);
$root
=
$this
->
_xml
->
createElement
(
'html'
);
$root
=
$this
->
_xml
->
appendChild
(
$root
);
$root
=
$this
->
_xml
->
appendChild
(
$root
);
...
@@ -62,11 +62,10 @@ class MediaBrotha_Frontend_HTML extends MediaBrotha_Frontend_HTTP {
...
@@ -62,11 +62,10 @@ class MediaBrotha_Frontend_HTML extends MediaBrotha_Frontend_HTTP {
$head
=
$this
->
_xml
->
createElement
(
'head'
);
$head
=
$this
->
_xml
->
createElement
(
'head'
);
$head
=
$root
->
appendChild
(
$head
);
$head
=
$root
->
appendChild
(
$head
);
$title
=
$this
->
_xml
->
createElement
(
'title'
);
$titleElement
=
$this
->
_xml
->
createElement
(
'title'
);
$title
=
$head
->
appendChild
(
$title
);
$titleElement
=
$head
->
appendChild
(
$titleElement
);
$text
=
$this
->
_xml
->
createTextNode
(
$title
);
$text
=
$this
->
_xml
->
createTextNode
(
$item
->
getDisplayName
());
$text
=
$titleElement
->
appendChild
(
$text
);
$text
=
$title
->
appendChild
(
$text
);
$style
=
$this
->
_xml
->
createElement
(
'link'
);
$style
=
$this
->
_xml
->
createElement
(
'link'
);
$style
=
$head
->
appendChild
(
$style
);
$style
=
$head
->
appendChild
(
$style
);
...
@@ -82,7 +81,10 @@ class MediaBrotha_Frontend_HTML extends MediaBrotha_Frontend_HTTP {
...
@@ -82,7 +81,10 @@ class MediaBrotha_Frontend_HTML extends MediaBrotha_Frontend_HTTP {
$this
->
_body
=
$this
->
_xml
->
createElement
(
'body'
);
$this
->
_body
=
$this
->
_xml
->
createElement
(
'body'
);
$this
->
_body
=
$root
->
appendChild
(
$this
->
_body
);
$this
->
_body
=
$root
->
appendChild
(
$this
->
_body
);
$this
->
_body
->
setAttribute
(
'onload'
,
'bodyLoaded();'
);
$this
->
_body
->
setAttribute
(
'onload'
,
'bodyLoaded();'
);
}
public
function
begin
(
$item
)
{
$this
->
_createHTMLDocument
(
$item
->
getDisplayName
());
$this
->
_mediaListElement
=
$this
->
_xml
->
createElement
(
'ul'
);
$this
->
_mediaListElement
=
$this
->
_xml
->
createElement
(
'ul'
);
$this
->
_mediaListElement
=
$this
->
_body
->
appendChild
(
$this
->
_mediaListElement
);
$this
->
_mediaListElement
=
$this
->
_body
->
appendChild
(
$this
->
_mediaListElement
);
$this
->
_mediaListElement
->
setAttribute
(
'id'
,
'mediaListElement'
);
$this
->
_mediaListElement
->
setAttribute
(
'id'
,
'mediaListElement'
);
...
@@ -123,5 +125,60 @@ class MediaBrotha_Frontend_HTML extends MediaBrotha_Frontend_HTTP {
...
@@ -123,5 +125,60 @@ class MediaBrotha_Frontend_HTML extends MediaBrotha_Frontend_HTTP {
public
function
render
()
{
public
function
render
()
{
print
$this
->
_xml
->
saveHTML
();
print
$this
->
_xml
->
saveHTML
();
}
}
public
function
renderForm
(
MediaBrotha_Form
$form
)
{
$this
->
_createHTMLDocument
(
$form
->
getTitle
());
$formElement
=
$this
->
_xml
->
createElement
(
'form'
);
$formElement
=
$this
->
_body
->
appendChild
(
$formElement
);
$tableElement
=
$this
->
_xml
->
createElement
(
'table'
);
$tableElement
=
$formElement
->
appendChild
(
$tableElement
);
foreach
(
$form
as
$field
)
{
$trElement
=
$this
->
_xml
->
createElement
(
'tr'
);
$trElement
=
$tableElement
->
appendChild
(
$trElement
);
$tdElement1
=
$this
->
_xml
->
createElement
(
'th'
);
$tdElement1
=
$trElement
->
appendChild
(
$tdElement1
);
$text1
=
$this
->
_xml
->
createTextNode
(
$field
->
get
(
'display_name'
));
$text1
=
$tdElement1
->
appendChild
(
$text1
);
$tdElement2
=
$this
->
_xml
->
createElement
(
'td'
);
$tdElement2
=
$trElement
->
appendChild
(
$tdElement2
);
$inputElement
=
$this
->
_xml
->
createElement
(
'input'
);
$inputElement
=
$tdElement2
->
appendChild
(
$inputElement
);
$inputElement
->
setAttribute
(
'name'
,
$field
->
get
(
'name'
));
$inputElement
->
setAttribute
(
'value'
,
$field
->
get
(
'value'
));
}
$trElement
=
$this
->
_xml
->
createElement
(
'tr'
);
$trElement
=
$tableElement
->
appendChild
(
$trElement
);
$tdElement
=
$this
->
_xml
->
createElement
(
'td'
);
$tdElement
=
$trElement
->
appendChild
(
$tdElement
);
$tdElement
->
setAttribute
(
'colspan'
,
2
);
$inputElement
=
$this
->
_xml
->
createElement
(
'input'
);
$inputElement
=
$tdElement
->
appendChild
(
$inputElement
);
$inputElement
->
setAttribute
(
'type'
,
'submit'
);
print
$this
->
_xml
->
saveHTML
();
}
public
function
renderException
(
Exception
$e
)
{
$this
->
_createHTMLDocument
(
'Error'
);
$divElement
=
$this
->
_xml
->
createElement
(
'pre'
);
$divElement
=
$this
->
_body
->
appendChild
(
$divElement
);
$text
=
$this
->
_xml
->
createTextNode
(
$e
->
getMessage
());
$text
=
$divElement
->
appendChild
(
$text
);
$divElement
=
$this
->
_xml
->
createElement
(
'pre'
);
$divElement
=
$this
->
_body
->
appendChild
(
$divElement
);
$text
=
$this
->
_xml
->
createTextNode
(
$e
->
getTraceAsString
());
$text
=
$divElement
->
appendChild
(
$text
);
print
$this
->
_xml
->
saveHTML
();
}
}
}
sathieu/cisco-xml/lib/MediaBrotha/Frontend/HTTP.php
浏览文件 @
10f46e14
...
@@ -24,10 +24,14 @@ This file is part of MediaBrotha.
...
@@ -24,10 +24,14 @@ This file is part of MediaBrotha.
* @author Mathieu Parent
* @author Mathieu Parent
*/
*/
class
MediaBrotha_Frontend_HTTP
extends
MediaBrotha_Frontend
{
abstract
class
MediaBrotha_Frontend_HTTP
extends
MediaBrotha_Frontend
{
public
function
rootURL
()
{
public
function
rootURL
()
{
$url
=
'http://'
.
$_SERVER
[
'SERVER_NAME'
]
.
$_SERVER
[
'SCRIPT_NAME'
];
if
(
isset
(
$_SERVER
[
'SERVER_NAME'
]))
{
$url
=
preg_replace
(
'/index\.php$/'
,
''
,
$url
);
$url
=
'http://'
.
$_SERVER
[
'SERVER_NAME'
]
.
$_SERVER
[
'SCRIPT_NAME'
];
$url
=
preg_replace
(
'/index\.php$/'
,
''
,
$url
);
}
else
{
$url
=
$_SERVER
[
'SCRIPT_NAME'
];
}
return
$url
;
return
$url
;
}
}
}
}
sathieu/cisco-xml/lib/MediaBrotha/Media.php
浏览文件 @
10f46e14
...
@@ -24,7 +24,7 @@ This file is part of MediaBrotha.
...
@@ -24,7 +24,7 @@ This file is part of MediaBrotha.
* @author Mathieu Parent
* @author Mathieu Parent
*/
*/
class
MediaBrotha_Media
{
final
class
MediaBrotha_Media
{
private
$_URI
=
NULL
;
private
$_URI
=
NULL
;
private
$_metadata
=
Array
();
private
$_metadata
=
Array
();
private
$_mimeType
=
NULL
;
private
$_mimeType
=
NULL
;
...
...
sathieu/cisco-xml/lib/MediaBrotha/MediaIterator.php
浏览文件 @
10f46e14
...
@@ -28,13 +28,11 @@ require_once('MediaBrotha/Media.php');
...
@@ -28,13 +28,11 @@ require_once('MediaBrotha/Media.php');
class
MediaBrotha_MediaIterator
implements
Iterator
{
class
MediaBrotha_MediaIterator
implements
Iterator
{
private
$_backend
=
NULL
;
private
$_backend
=
NULL
;
private
$_media
=
NULL
;
private
$_handle
=
NULL
;
private
$_handle
=
NULL
;
protected
$_buffer
=
NULL
;
protected
$_buffer
=
NULL
;
public
function
__construct
(
MediaBrotha_Backend
$backend
,
MediaBrotha_Media
$media
,
$buffer
=
NULL
)
{
public
function
__construct
(
MediaBrotha_Backend
$backend
,
$buffer
=
NULL
)
{
$this
->
_backend
=
$backend
;
$this
->
_backend
=
$backend
;
$this
->
_media
=
$media
;
if
(
$buffer
)
{
if
(
$buffer
)
{
$this
->
_buffer
=
$buffer
;
$this
->
_buffer
=
$buffer
;
}
else
{
}
else
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论