21 import(
'Dataface/Application.php');
22 import(
'Dataface/Table.php');
42 $query =&
$app->getQuery();
46 foreach ( $query as $key=>$value){
48 if ( isset(
$table->_fields[$key]) or ($key{0} ==
'-' and $key !=
'-new')){
61 public static function buildSetLink($query, $useContext=
true, $forceContext=
false){
71 public static function buildLink($query, $useContext=
true, $forceContext=
false, $stripRecordId=
false){
73 $appQuery =&
$app->getQuery();
75 if ( $stripRecordId and isset($query[
'-recordid']) ) unset($query[
'-recordid']);
77 if ( is_string($query) ){
78 $terms = explode(
'&', $query);
80 foreach ( $terms as $term){
81 $key = urldecode(substr($term, 0, strpos($term,
'=')));
82 $value = urldecode(substr($term, strpos($term,
'=')+1));
83 if ( strlen($value) == 0 ){
86 $query[$key] = $value;
92 if ( !isset($query[
'-table']) ) $query[
'-table'] = $appQuery[
'-table'];
94 if ( !$forceContext and $useContext ){
97 foreach ( $query as $key=>$val) {
98 if ( !$key )
continue;
99 if ( $key{0} !=
'-' and $query[$key] != @$appQuery[$key] ){
108 if ( $stripRecordId and isset($request[
'-recordid']) ) unset($request[
'-recordid']);
110 if ( isset( $query[
'-relationship'] ) ){
111 if ( $query[
'-relationship'] != @$appQuery[
'-relationship'] ){
112 foreach ( $request as $qkey=>$qval ){
113 if ( strstr($qkey,
'-related:') == $qkey ) unset($request[$qkey]);
118 if ( isset($request[
'-sort']) and $request[
'-table'] != $appQuery[
'-table'] ){
119 unset($request[
'-sort']);
123 $query = array_merge($request, $query);
126 if ( !isset($query[
'-search']) ) $query[
'-search'] = null;
127 if ( isset( $_REQUEST[
'-search'] ) and strlen($_REQUEST[
'-search'])>0 and $query[
'-search'] !== null ){
128 $query[
'-search'] = $_REQUEST[
'-search'];
131 foreach ($query as $key=>$value) {
132 if ( $value === null || strpos($key,
'--') === 0 ){
138 foreach ($query as $key=>$value) {
140 if ( is_array($value) ){
142 foreach ( $value as $vkey=>$vval ){
143 $str .= urlencode($key.
'['.$vkey.
']').
'='.urlencode($vval).
'&';
147 $str .= urlencode($key).
'='.urlencode($value).
'&';
150 $str = substr($str,0, strlen($str)-1);
153 $url = DATAFACE_SITE_HREF;
154 if ( strpos(
'?', $url) !==
false ){
160 $url =
$app->filterUrl($url);
161 return df_absolute_url($url);
166 static $instance = 0;