12 |
|
# url() : return the full url name with all expansion |
13 |
|
# expandurl(URLbase) : expand the url to include the given base |
14 |
|
# file() : return the filename from the end of the path |
15 |
+ |
# base() : return the basename of the path |
16 |
+ |
# fullfile() : return base/file |
17 |
|
# param(var) : return the value of a url parameter |
18 |
|
# |
19 |
|
# -- specialised use methods |
20 |
|
# type() : get/set the url type |
21 |
|
# vars() : get/set the vars hash |
22 |
< |
# base(base) : push a base into the url path if it dosnt already mactch |
22 |
> |
# base(base) : push a base into the url path if it dosnt already match |
23 |
|
# transfervars(varhash) : transfer any variables from varhash into vars |
24 |
|
# only if they do not already exist |
25 |
|
|
61 |
|
$self->{vars}={}; |
62 |
|
$self->_url($self->{origurl}); # reset the current url; |
63 |
|
$self->transfervars($base->cmds()); |
64 |
< |
$self->base($base->base()); |
64 |
> |
$self->_base($base->base()); |
65 |
|
} |
66 |
|
|
65 |
– |
sub base { |
66 |
– |
my $self=shift; |
67 |
– |
if ( @_ ) { |
68 |
– |
my $server=shift; |
69 |
– |
if ( ($server ne "") && ($self->{server}!~/\/\//) && |
70 |
– |
($self->{server}!~/$server/) ) { |
71 |
– |
# only set if not already in there |
72 |
– |
$self->{server}=$server."/".$self->{server}; |
73 |
– |
} |
74 |
– |
} |
75 |
– |
return $self->{server}; |
76 |
– |
} |
67 |
|
|
68 |
|
sub url { |
69 |
|
my $self=shift; |
70 |
|
|
71 |
|
my $vars=$self->_vartostring(); |
72 |
< |
my $fullurl=$self->type()."://".$self->{server}. |
73 |
< |
(($vars ne "")?"\?".$vars:""); |
72 |
> |
my $base=$self->base(); |
73 |
> |
my $fullurl=$self->type()."://".(($base ne "")?$base."/":""). |
74 |
> |
$self->file().(($vars ne "")?"\?".$vars:""); |
75 |
|
return $fullurl; |
76 |
|
} |
77 |
|
|
86 |
|
} |
87 |
|
} |
88 |
|
|
89 |
+ |
sub fullfile { |
90 |
+ |
my $self=shift; |
91 |
+ |
return $self->{server} |
92 |
+ |
} |
93 |
+ |
|
94 |
+ |
sub base { |
95 |
+ |
my $self=shift; |
96 |
+ |
my $base=""; |
97 |
+ |
if ( $self->{server}=~/\/\// ) { |
98 |
+ |
($base=$self->{server})=~s/(.*)\/\/.*/$1/; |
99 |
+ |
} |
100 |
+ |
elsif ( $self->{server}=~/\// ) { |
101 |
+ |
($base=$self->{server})=~s/(.*)\/.*/$1/; |
102 |
+ |
} |
103 |
+ |
return $base; |
104 |
+ |
} |
105 |
+ |
|
106 |
|
sub file { |
107 |
|
my $self=shift; |
108 |
|
my $file; |
109 |
|
|
110 |
< |
if ( $self->{server}=~/\// ) { |
110 |
> |
if ( $self->{server}=~/\/\// ) { |
111 |
> |
($file=$self->{server})=~s/.*\/\/(.*)/$1/; |
112 |
> |
} |
113 |
> |
elsif ( $self->{server}=~/\// ) { |
114 |
|
($file=$self->{server})=~s/.*\///g; |
115 |
|
} |
116 |
|
else { |
129 |
|
# |
130 |
|
# --- Support Routines |
131 |
|
# |
132 |
+ |
|
133 |
+ |
# push a base name into the url string |
134 |
+ |
sub _base { |
135 |
+ |
my $self=shift; |
136 |
+ |
if ( @_ ) { |
137 |
+ |
my $server=shift; |
138 |
+ |
if ( ($server ne "") && ($self->{server}!~/\/\//) && |
139 |
+ |
($self->{server}!~/$server/) ) { |
140 |
+ |
# only set if not already in there |
141 |
+ |
$self->{server}=$server."\/\/".$self->{server}; |
142 |
+ |
} |
143 |
+ |
} |
144 |
+ |
return $self->{server}; |
145 |
+ |
} |
146 |
+ |
|
147 |
|
sub _vartostring { |
148 |
|
my $self=shift; |
149 |
|
|