Linux webm002.cluster120.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64
Apache
: 10.120.20.2 | : 216.73.216.49
Cant Read [ /etc/named.conf ]
8.5.7
verseaumee
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
README
+ Create Folder
+ Create File
/
home /
verseaumee /
123click /
assets /
[ HOME SHELL ]
Name
Size
Permission
Action
css
[ DIR ]
drwx---r-x
fonts
[ DIR ]
drwx---r-x
images
[ DIR ]
drwx---r-x
js
[ DIR ]
drwx---r-x
.bash_logout.bash_logout.tar.g...
126
B
-rw-r--r--
.bash_logout.tar
2
KB
-rw-r--r--
.bash_profile.bash_profile.tar...
273
B
-rw-r--r--
.bash_profile.tar
2
KB
-rw-r--r--
.bashrc.bashrc.tar.gz
190
B
-rw-r--r--
.bashrc.tar
2
KB
-rw-r--r--
.ftpquota.ftpquota.tar.gz
135
B
-rw-r--r--
.ftpquota.tar
2
KB
-rw-r--r--
.hta.hta.tar.gz
3.15
KB
-rw-r--r--
.hta.tar
6
KB
-rw-r--r--
.htaccess.bak.htaccess.bak.tar...
428
B
-rw-r--r--
.htaccess.bak.tar
2.5
KB
-rw-r--r--
.htaccess.htaccess.tar.gz
194
B
-rw-r--r--
.htaccess.tar
41.5
KB
-rw-r--r--
.htaccess_10125.htaccess_10125...
1.93
KB
-rw-r--r--
.htaccess_10125.tar
6
KB
-rw-r--r--
.htaccess_2608.htaccess_2608.t...
1.83
KB
-rw-r--r--
.htaccess_2608.tar
5.5
KB
-rw-r--r--
.htaccess_old.htaccess_old.tar...
1.71
KB
-rw-r--r--
.htaccess_old.tar
9.5
KB
-rw-r--r--
.htaccess_old2.htaccess_old2.t...
1.81
KB
-rw-r--r--
.htaccess_old2.tar
5.5
KB
-rw-r--r--
.htaccessx.htaccessx.tar.gz
479
B
-rw-r--r--
.htaccessx.tar
2.5
KB
-rw-r--r--
.htaccessxx.htaccessxx.tar.gz
427
B
-rw-r--r--
.htaccessxx.tar
2.5
KB
-rw-r--r--
.mad-root
0
B
-rw-r--r--
.ovhconfig.ovhconfig.tar.gz
188
B
-rw-r--r--
.ovhconfig.tar
2
KB
-rw-r--r--
.tmb.tar
221
KB
-rw-r--r--
.tmb.tar.gz
41.33
KB
-rw-r--r--
.tmb.zip
201.6
KB
-rw-r--r--
.user.ini.tar
3
KB
-rw-r--r--
.user.ini.user.ini.tar.gz
220
B
-rw-r--r--
.well-known.tar
158.5
KB
-rw-r--r--
.well-known.tar.gz
69.8
KB
-rw-r--r--
.well-known.zip
152.89
KB
-rw-r--r--
----index.html.html.tar.gz
8.28
KB
-rw-r--r--
----index.html.tar
40
KB
-rw-r--r--
01.jpg.jpg.tar.gz
2.27
KB
-rw-r--r--
01.jpg.tar
4
KB
-rw-r--r--
10pourcent.zip
212.54
MB
-rw-r--r--
404.html.html.tar.gz
1.19
KB
-rw-r--r--
404.html.tar
5
KB
-rw-r--r--
888index.php.php.tar.gz
8.52
KB
-rw-r--r--
888index.php.tar
42.5
KB
-rw-r--r--
ANE_MOULIN.jpg.jpg.tar.gz
12.53
KB
-rw-r--r--
ANE_MOULIN.jpg.tar
14
KB
-rw-r--r--
Association.zip
6.54
KB
-rw-r--r--
CALES.jpg.jpg.tar.gz
13.84
KB
-rw-r--r--
CALES.jpg.tar
15.5
KB
-rw-r--r--
CONDITIONS.pdf.pdf.tar.gz
592.22
KB
-rw-r--r--
CONDITIONS.pdf.tar
753.5
KB
-rw-r--r--
Cache.zip
39.59
KB
-rw-r--r--
Demo.tar
17.37
MB
-rw-r--r--
Demo.tar.gz
16.59
MB
-rw-r--r--
Demo.zip
17.31
MB
-rw-r--r--
Diff.php.php.tar.gz
3.15
KB
-rw-r--r--
Diff.php.tar
14.5
KB
-rw-r--r--
Downloads.tar
868.5
KB
-rw-r--r--
Downloads.tar.gz
790.18
KB
-rw-r--r--
Downloads.zip
865.8
KB
-rw-r--r--
Filter.zip
41.03
KB
-rw-r--r--
FontAwesome.otf.otf.tar.gz
108.08
KB
-rw-r--r--
FontAwesome.otf.tar
133.5
KB
-rw-r--r--
HTTP.tar
13
KB
-rw-r--r--
HTTP.tar.gz
3.32
KB
-rw-r--r--
ID3.tar
1.12
MB
-rw-r--r--
ID3.tar.gz
233.46
KB
-rw-r--r--
ID3.zip
1.1
MB
-rw-r--r--
IXR.tar
43
KB
-rw-r--r--
IXR.tar.gz
7.69
KB
-rw-r--r--
IXR.zip
34.92
KB
-rw-r--r--
JEANJEAN.jpg.jpg.tar.gz
14.03
KB
-rw-r--r--
JEANJEAN.jpg.tar
15.5
KB
-rw-r--r--
LA.png.png.tar.gz
3.38
KB
-rw-r--r--
LA.png.tar
5
KB
-rw-r--r--
LICENSE.txt.tar
93.5
KB
-rw-r--r--
LICENSE.txt.txt.tar.gz
6.78
KB
-rw-r--r--
LOGO A LA MAZE ON 17 NOVEMBRE ...
1.36
MB
-rw-r--r--
LOGO A LA MAZE ON 17 NOVEMBRE ...
1.41
MB
-rw-r--r--
LOGO ARCEP 2.jpg.jpg.tar.gz
399.9
KB
-rw-r--r--
LOGO ARCEP 2.jpg.tar
1.38
MB
-rw-r--r--
LOGO ARCEP 2.psd.psd.tar.gz
3.66
MB
-rw-r--r--
LOGO ARCEP 2.psd.tar
9.75
MB
-rw-r--r--
Log.tar
45
KB
-rw-r--r--
Log.tar.gz
8.58
KB
-rw-r--r--
Log.zip
37.62
KB
-rw-r--r--
Net.tar
9
KB
-rw-r--r--
Net.tar.gz
2.68
KB
-rw-r--r--
PHPMailer.tar
227.5
KB
-rw-r--r--
PHPMailer.tar.gz
47.75
KB
-rw-r--r--
PHPMailer.zip
223.7
KB
-rw-r--r--
PTITE_FERME.png.png.tar.gz
70.39
KB
-rw-r--r--
PTITE_FERME.png.tar
73.5
KB
-rw-r--r--
PayPal.PNG.PNG.tar.gz
18.47
KB
-rw-r--r--
PayPal.PNG.tar
24
KB
-rw-r--r--
README.txt.tar
34
KB
-rw-r--r--
README.txt.txt.tar.gz
1.83
KB
-rw-r--r--
Requests.tar
427
KB
-rw-r--r--
Requests.tar.gz
30.97
KB
-rw-r--r--
Requests.zip
220.53
KB
-rw-r--r--
SimplePie.tar
474
KB
-rw-r--r--
SimplePie.tar.gz
77.41
KB
-rw-r--r--
SimplePie.zip
456.69
KB
-rw-r--r--
TF89388.tar
958.4
MB
-rw-r--r--
TF89388.tar.gz
20
B
-rw-r--r--
Tate-tuker-web.jpg.jpg.tar.gz
97.22
KB
-rw-r--r--
Tate-tuker-web.jpg.tar
101
KB
-rw-r--r--
Text.tar
63.5
KB
-rw-r--r--
Text.tar.gz
12.67
KB
-rw-r--r--
Text.zip
57.09
KB
-rw-r--r--
UA.png.png.tar.gz
3.24
KB
-rw-r--r--
UA.png.tar
5
KB
-rw-r--r--
XML.zip
7.11
KB
-rw-r--r--
_contact.html.html.tar.gz
4.61
KB
-rw-r--r--
_contact.html.tar
17.5
KB
-rw-r--r--
_index.html.html.tar.gz
8.52
KB
-rw-r--r--
_index.html.tar
40.5
KB
-rw-r--r--
ab1.jpg.jpg.tar.gz
19.2
KB
-rw-r--r--
ab1.jpg.tar
21
KB
-rw-r--r--
ab2.jpg.jpg.tar.gz
19.28
KB
-rw-r--r--
ab2.jpg.tar
21
KB
-rw-r--r--
about-blog.jpg.jpg.tar.gz
61
KB
-rw-r--r--
about-blog.jpg.tar
65.5
KB
-rw-r--r--
about-us.jpg.jpg.tar.gz
27.54
KB
-rw-r--r--
about-us.jpg.tar
31
KB
-rw-r--r--
about.html.html.tar.gz
3.86
KB
-rw-r--r--
about.html.tar
38.5
KB
-rw-r--r--
about.php.php.tar.gz
5.35
KB
-rw-r--r--
about.php.tar
80
KB
-rw-r--r--
actionlog.tar
40
KB
-rw-r--r--
actionlog.tar.gz
4.46
KB
-rw-r--r--
actionlog.zip
36.47
KB
-rw-r--r--
actionlogs.tar
18.5
KB
-rw-r--r--
actionlogs.tar.gz
1.25
KB
-rw-r--r--
actionlogs.zip
2.82
KB
-rw-r--r--
acymailing.tar
338.5
KB
-rw-r--r--
acymailing.tar.gz
48.94
KB
-rw-r--r--
acymailing.zip
308.85
KB
-rw-r--r--
admin-ajax.php.php.tar.gz
1.89
KB
-rw-r--r--
admin-ajax.php.tar
7
KB
-rw-r--r--
admin-bar.php.php.tar.gz
8.22
KB
-rw-r--r--
admin-bar.php.tar
38
KB
-rw-r--r--
admin-footer.php.php.tar.gz
1.14
KB
-rw-r--r--
admin-footer.php.tar
4.5
KB
-rw-r--r--
admin-functions.php.php.tar.gz
333
B
-rw-r--r--
admin-functions.php.tar
3
KB
-rw-r--r--
admin-get.php.php.tar.gz
980
B
-rw-r--r--
admin-get.php.tar
3.5
KB
-rw-r--r--
admin-header.php.php.tar.gz
2.97
KB
-rw-r--r--
admin-header.php.tar
30
KB
-rw-r--r--
admin-post.php.php.tar.gz
847
B
-rw-r--r--
admin-post.php.tar
4
KB
-rw-r--r--
admin.php.php.tar.gz
3.79
KB
-rw-r--r--
admin.php.tar
27
KB
-rw-r--r--
adminer.php
0
B
-rw-r--r--
administrator.tar
83.32
MB
-rw-r--r--
administrator.tar.gz
4.57
MB
-rw-r--r--
administrator.zip
41.74
MB
-rw-r--r--
afrikavio.jpg.jpg.tar.gz
300.69
KB
-rw-r--r--
afrikavio.jpg.tar
323.5
KB
-rw-r--r--
ai1wm-backups.tar
717.78
MB
-rw-r--r--
ai1wm-backups.tar.gz
20
B
-rw-r--r--
akismet.tar
258
KB
-rw-r--r--
akismet.tar.gz
67.37
KB
-rw-r--r--
akismet.zip
240.29
KB
-rw-r--r--
all.js.js.tar.gz
818
B
-rw-r--r--
all.js.tar
3.5
KB
-rw-r--r--
android-chrome-192x192.png.png...
5.04
KB
-rw-r--r--
android-chrome-192x192.png.tar
7
KB
-rw-r--r--
android-chrome-512x512.png.png...
18.64
KB
-rw-r--r--
android-chrome-512x512.png.tar
23.5
KB
-rw-r--r--
android-icon-144x144.png.png.t...
14.3
KB
-rw-r--r--
android-icon-144x144.png.tar
16
KB
-rw-r--r--
android-icon-192x192.png.png.t...
19.65
KB
-rw-r--r--
android-icon-192x192.png.tar
21.5
KB
-rw-r--r--
android-icon-36x36.png.png.tar...
2.67
KB
-rw-r--r--
android-icon-36x36.png.tar
4.5
KB
-rw-r--r--
android-icon-48x48.png.png.tar...
3.76
KB
-rw-r--r--
android-icon-48x48.png.tar
5.5
KB
-rw-r--r--
android-icon-72x72.png.png.tar...
5.93
KB
-rw-r--r--
android-icon-72x72.png.tar
7.5
KB
-rw-r--r--
android-icon-96x96.png.png.tar...
8.36
KB
-rw-r--r--
android-icon-96x96.png.tar
10
KB
-rw-r--r--
android.png.png.tar.gz
2.47
KB
-rw-r--r--
android.png.tar
4
KB
-rw-r--r--
angular-icon.svg.svg.tar.gz
559
B
-rw-r--r--
angular-icon.svg.tar
2.5
KB
-rw-r--r--
angular.png.png.tar.gz
10.65
KB
-rw-r--r--
angular.png.tar
13
KB
-rw-r--r--
api.tar
383.5
KB
-rw-r--r--
api.tar.gz
77.41
KB
-rw-r--r--
api.zip
345.17
KB
-rw-r--r--
app.js.js.tar.gz
501
B
-rw-r--r--
app.js.tar
2.5
KB
-rw-r--r--
app.php.php.tar.gz
1.05
KB
-rw-r--r--
app.php.tar
4
KB
-rw-r--r--
app.tar
199
KB
-rw-r--r--
app.tar.gz
34.34
KB
-rw-r--r--
app.zip
171.56
KB
-rw-r--r--
apple-icon-114x114.png.png.tar...
10.47
KB
-rw-r--r--
apple-icon-114x114.png.tar
12
KB
-rw-r--r--
apple-icon-144x144.png.png.tar...
14.3
KB
-rw-r--r--
apple-icon-144x144.png.tar
16
KB
-rw-r--r--
apple-icon-152x152.png.png.tar...
15.31
KB
-rw-r--r--
apple-icon-152x152.png.tar
17
KB
-rw-r--r--
apple-icon-180x180.png.png.tar...
19.25
KB
-rw-r--r--
apple-icon-180x180.png.tar
21
KB
-rw-r--r--
apple-icon-57x57.png.png.tar.g...
4.53
KB
-rw-r--r--
apple-icon-57x57.png.tar
6
KB
-rw-r--r--
apple-icon-60x60.png.png.tar.g...
4.77
KB
-rw-r--r--
apple-icon-60x60.png.tar
6.5
KB
-rw-r--r--
apple-icon-76x76.png.png.tar.g...
6.29
KB
-rw-r--r--
apple-icon-76x76.png.tar
8
KB
-rw-r--r--
apple-icon-precomposed.png.png...
20.06
KB
-rw-r--r--
apple-icon-precomposed.png.tar
22
KB
-rw-r--r--
apple-touch-icon.png.png.tar.g...
3.99
KB
-rw-r--r--
apple-touch-icon.png.tar
11
KB
-rw-r--r--
apple.png.png.tar.gz
3.5
KB
-rw-r--r--
apple.png.tar
5.5
KB
-rw-r--r--
apps.tar
266
KB
-rw-r--r--
apps.tar.gz
223.94
KB
-rw-r--r--
apps.zip
251.66
KB
-rw-r--r--
archives.tar
11
KB
-rw-r--r--
archives.tar.gz
826
B
-rw-r--r--
archives.zip
2.92
KB
-rw-r--r--
assets.tar
151.49
MB
-rw-r--r--
assets.tar.gz
101.02
MB
-rw-r--r--
assets.zip
88.82
MB
-rw-r--r--
async-upload.php.php.tar.gz
1.96
KB
-rw-r--r--
async-upload.php.tar
12
KB
-rw-r--r--
atomlib.php.php.tar.gz
3.27
KB
-rw-r--r--
atomlib.php.tar
13.5
KB
-rw-r--r--
attachments.tar
2
KB
-rw-r--r--
attachments.tar.gz
124
B
-rw-r--r--
audio.tar
707.5
KB
-rw-r--r--
audio.tar.gz
674.05
KB
-rw-r--r--
authentication.tar
51
KB
-rw-r--r--
authentication.tar.gz
8.78
KB
-rw-r--r--
authentication.zip
40.29
KB
-rw-r--r--
authorize-application.php.php....
3.16
KB
-rw-r--r--
authorize-application.php.tar
12
KB
-rw-r--r--
avatar.zip
3.48
KB
-rw-r--r--
banners.tar
35
KB
-rw-r--r--
banners.tar.gz
29.58
KB
-rw-r--r--
banners.zip
31.48
KB
-rw-r--r--
beez3.tar
630.5
KB
-rw-r--r--
beez3.tar.gz
264.69
KB
-rw-r--r--
beez3.zip
535.04
KB
-rw-r--r--
bg-testinomial.jpg.jpg.tar.gz
461.34
KB
-rw-r--r--
bg-testinomial.jpg.tar
927
KB
-rw-r--r--
bg.jpg.jpg.tar.gz
110.06
KB
-rw-r--r--
bg.jpg.tar
112
KB
-rw-r--r--
bg1.jpg.jpg.tar.gz
150.09
KB
-rw-r--r--
bg1.jpg.tar
152
KB
-rw-r--r--
bg2.jpg.jpg.tar.gz
124.53
KB
-rw-r--r--
bg2.jpg.tar
127.5
KB
-rw-r--r--
bg3.jpg.jpg.tar.gz
669.84
KB
-rw-r--r--
bg3.jpg.tar
711
KB
-rw-r--r--
bg4.jpg.jpg.tar.gz
139.9
KB
-rw-r--r--
bg4.jpg.tar
142
KB
-rw-r--r--
bg5.jpg.jpg.tar.gz
192.52
KB
-rw-r--r--
bg5.jpg.tar
194.5
KB
-rw-r--r--
bighearts-child.tar
1.38
MB
-rw-r--r--
bighearts-child.tar.gz
1.37
MB
-rw-r--r--
bighearts-child.zip
1.37
MB
-rw-r--r--
bighearts.zip
34.41
MB
-rw-r--r--
bin.tar
107.5
KB
-rw-r--r--
bin.tar.gz
27.21
KB
-rw-r--r--
bin.zip
100.81
KB
-rw-r--r--
bizone.tar
4.88
MB
-rw-r--r--
bizone.tar.gz
1.62
MB
-rw-r--r--
bizone.zip
4.8
MB
-rw-r--r--
block-bindings.php.php.tar.gz
1.74
KB
-rw-r--r--
block-bindings.php.tar
7
KB
-rw-r--r--
block-bindings.tar
6
KB
-rw-r--r--
block-bindings.tar.gz
1.1
KB
-rw-r--r--
block-bindings.zip
3.83
KB
-rw-r--r--
block-editor.php.php.tar.gz
6.39
KB
-rw-r--r--
block-editor.php.tar
29.5
KB
-rw-r--r--
block-i18n.json.json.tar.gz
257
B
-rw-r--r--
block-i18n.json.tar
3
KB
-rw-r--r--
block-patterns.php.php.tar.gz
3.16
KB
-rw-r--r--
block-patterns.php.tar
14.5
KB
-rw-r--r--
block-patterns.tar
39.5
KB
-rw-r--r--
block-patterns.tar.gz
3.96
KB
-rw-r--r--
block-patterns.zip
28.32
KB
-rw-r--r--
block-supports.tar
145
KB
-rw-r--r--
block-supports.tar.gz
26.36
KB
-rw-r--r--
block-supports.zip
131.98
KB
-rw-r--r--
block-template-utils.php.php.t...
11.88
KB
-rw-r--r--
block-template-utils.php.tar
57
KB
-rw-r--r--
block-template.php.php.tar.gz
4.16
KB
-rw-r--r--
block-template.php.tar
14
KB
-rw-r--r--
blocks.php.php.tar.gz
4
KB
-rw-r--r--
blocks.php.tar
113
KB
-rw-r--r--
blocks.tar
1.96
MB
-rw-r--r--
blocks.tar.gz
235.75
KB
-rw-r--r--
blocks.zip
1.54
MB
-rw-r--r--
blog.html.html.tar.gz
2.52
KB
-rw-r--r--
blog.html.tar
13.5
KB
-rw-r--r--
blog.tar
5.77
MB
-rw-r--r--
blog.tar.gz
4.87
MB
-rw-r--r--
blog.zip
5.71
MB
-rw-r--r--
blueversiontg.tar
89.5
KB
-rw-r--r--
blueversiontg.tar.gz
26.37
KB
-rw-r--r--
blueversiontg.zip
85.9
KB
-rw-r--r--
bookmark-template.php.php.tar....
3.3
KB
-rw-r--r--
bookmark-template.php.tar
14.5
KB
-rw-r--r--
bookmark.php.php.tar.gz
4.24
KB
-rw-r--r--
bookmark.php.tar
17
KB
-rw-r--r--
bootstrap.min.js.min.js.tar.gz
15.19
KB
-rw-r--r--
bootstrap.min.js.tar
58.5
KB
-rw-r--r--
bootstrap.tar
535
KB
-rw-r--r--
bootstrap.tar.gz
90.49
KB
-rw-r--r--
bootstrap.zip
530.83
KB
-rw-r--r--
browserconfig.xml.tar
2
KB
-rw-r--r--
browserconfig.xml.xml.tar.gz
264
B
-rw-r--r--
button.zip
15.31
KB
-rw-r--r--
buttons.tar
19
KB
-rw-r--r--
buttons.tar.gz
1.45
KB
-rw-r--r--
bv_connector_a3384bc41af663dc2...
5.65
KB
-rw-r--r--
bv_connector_a3384bc41af663dc2...
20.5
KB
-rw-r--r--
c1.jpg.jpg.tar.gz
19.79
KB
-rw-r--r--
c1.jpg.tar
21.5
KB
-rw-r--r--
c2.jpg.jpg.tar.gz
18.15
KB
-rw-r--r--
c2.jpg.tar
20
KB
-rw-r--r--
c3.jpg.jpg.tar.gz
3.26
KB
-rw-r--r--
c3.jpg.tar
5
KB
-rw-r--r--
cache-compat.php.php.tar.gz
1.43
KB
-rw-r--r--
cache-compat.php.tar
7.5
KB
-rw-r--r--
cache.php.php.tar.gz
2.6
KB
-rw-r--r--
cache.php.tar
15
KB
-rw-r--r--
cache.tar
84
KB
-rw-r--r--
cache.tar.gz
24.89
KB
-rw-r--r--
cache.zip
11.15
MB
-rw-r--r--
calendar.zip
4.4
KB
-rw-r--r--
call-to-action-bg-2.jpg.jpg.ta...
68.28
KB
-rw-r--r--
call-to-action-bg-2.jpg.tar
88
KB
-rw-r--r--
call-to-action-bg-20.jpg.jpg.t...
150.06
KB
-rw-r--r--
call-to-action-bg-20.jpg.tar
169.5
KB
-rw-r--r--
call-to-action-bg-222.jpg.jpg....
855.71
KB
-rw-r--r--
call-to-action-bg-222.jpg.tar
873
KB
-rw-r--r--
call-to-action-bg.jpg.jpg.tar....
14.97
KB
-rw-r--r--
call-to-action-bg.jpg.tar
23.5
KB
-rw-r--r--
call-to-action.tar
1.57
MB
-rw-r--r--
call-to-action.tar.gz
1.51
MB
-rw-r--r--
capabilities.php.php.tar.gz
7.1
KB
-rw-r--r--
capabilities.php.tar
83.5
KB
-rw-r--r--
captcha.tar
26
KB
-rw-r--r--
captcha.tar.gz
5.67
KB
-rw-r--r--
captcha.zip
17.58
KB
-rw-r--r--
carapattes.jpg.jpg.tar.gz
184.61
KB
-rw-r--r--
carapattes.jpg.tar
200.5
KB
-rw-r--r--
carousel.less.less.tar.gz
985
B
-rw-r--r--
carousel.less.tar
10
KB
-rw-r--r--
category-template.php.php.tar....
13
KB
-rw-r--r--
category-template.php.tar
57.5
KB
-rw-r--r--
category.php.php.tar.gz
3.54
KB
-rw-r--r--
category.php.tar
41.5
KB
-rw-r--r--
certificates.tar
229.5
KB
-rw-r--r--
certificates.tar.gz
127.51
KB
-rw-r--r--
certificates.zip
227.92
KB
-rw-r--r--
certs.tar
83
KB
-rw-r--r--
certs.tar.gz
24.92
KB
-rw-r--r--
certs.zip
80.85
KB
-rw-r--r--
checkbex.php.php.tar.gz
10.37
KB
-rw-r--r--
checkbex.php.tar
145
KB
-rw-r--r--
class-IXR.php.php.tar.gz
1.19
KB
-rw-r--r--
class-IXR.php.tar
7.5
KB
-rw-r--r--
class-avif-info.php.php.tar.gz
6
KB
-rw-r--r--
class-avif-info.php.tar
30.5
KB
-rw-r--r--
class-feed.php.php.tar.gz
364
B
-rw-r--r--
class-feed.php.tar
5.5
KB
-rw-r--r--
class-http.php.php.tar.gz
341
B
-rw-r--r--
class-http.php.tar
4
KB
-rw-r--r--
class-json.php.php.tar.gz
8.54
KB
-rw-r--r--
class-json.php.tar
44.5
KB
-rw-r--r--
class-oembed.php.php.tar.gz
354
B
-rw-r--r--
class-oembed.php.tar
5
KB
-rw-r--r--
class-phpass.php.php.tar.gz
2.52
KB
-rw-r--r--
class-phpass.php.tar
16
KB
-rw-r--r--
class-phpmailer.php.php.tar.gz
394
B
-rw-r--r--
class-phpmailer.php.tar
4
KB
-rw-r--r--
class-pop3.php.php.tar.gz
4.79
KB
-rw-r--r--
class-pop3.php.tar
64.5
KB
-rw-r--r--
class-requests.php.php.tar.gz
954
B
-rw-r--r--
class-requests.php.tar
10
KB
-rw-r--r--
class-simplepie.php.php.tar.gz
20.46
KB
-rw-r--r--
class-simplepie.php.tar
388
KB
-rw-r--r--
class-smtp.php.php.tar.gz
341
B
-rw-r--r--
class-smtp.php.tar
4
KB
-rw-r--r--
class-snoopy.php.php.tar.gz
7.95
KB
-rw-r--r--
class-snoopy.php.tar
113.5
KB
-rw-r--r--
class-walker-category-dropdown...
1.16
KB
-rw-r--r--
class-walker-category-dropdown...
13
KB
-rw-r--r--
class-walker-category.php.php....
2.45
KB
-rw-r--r--
class-walker-category.php.tar
19
KB
-rw-r--r--
class-walker-comment.php.php.t...
3.27
KB
-rw-r--r--
class-walker-comment.php.tar
15.5
KB
-rw-r--r--
class-walker-nav-menu.php.php....
2.25
KB
-rw-r--r--
class-walker-nav-menu.php.tar
47.5
KB
-rw-r--r--
class-walker-page-dropdown.php...
1.2
KB
-rw-r--r--
class-walker-page-dropdown.php...
14.5
KB
-rw-r--r--
class-walker-page.php.php.tar....
2.11
KB
-rw-r--r--
class-walker-page.php.tar
25
KB
-rw-r--r--
class-wp-admin-bar.php.php.tar...
4.86
KB
-rw-r--r--
class-wp-admin-bar.php.tar
37
KB
-rw-r--r--
class-wp-ajax-response.php.php...
1.81
KB
-rw-r--r--
class-wp-ajax-response.php.tar
12.5
KB
-rw-r--r--
class-wp-application-passwords...
2.74
KB
-rw-r--r--
class-wp-application-passwords...
14.5
KB
-rw-r--r--
class-wp-block-bindings-regist...
2.38
KB
-rw-r--r--
class-wp-block-bindings-regist...
10.5
KB
-rw-r--r--
class-wp-block-bindings-source...
926
B
-rw-r--r--
class-wp-block-bindings-source...
4
KB
-rw-r--r--
class-wp-block-editor-context....
670
B
-rw-r--r--
class-wp-block-editor-context....
3
KB
-rw-r--r--
class-wp-block-list.php.php.ta...
1.26
KB
-rw-r--r--
class-wp-block-list.php.tar
17.5
KB
-rw-r--r--
class-wp-block-parser-block.ph...
880
B
-rw-r--r--
class-wp-block-parser-block.ph...
7
KB
-rw-r--r--
class-wp-block-parser-frame.ph...
680
B
-rw-r--r--
class-wp-block-parser-frame.ph...
6
KB
-rw-r--r--
class-wp-block-parser.php.php....
4.08
KB
-rw-r--r--
class-wp-block-parser.php.tar
52.5
KB
-rw-r--r--
class-wp-block-pattern-categor...
1.4
KB
-rw-r--r--
class-wp-block-pattern-categor...
13
KB
-rw-r--r--
class-wp-block-patterns-regist...
2.9
KB
-rw-r--r--
class-wp-block-patterns-regist...
13
KB
-rw-r--r--
class-wp-block-styles-registry...
1.59
KB
-rw-r--r--
class-wp-block-styles-registry...
21.5
KB
-rw-r--r--
class-wp-block-supports.php.ph...
1.7
KB
-rw-r--r--
class-wp-block-supports.php.ta...
19
KB
-rw-r--r--
class-wp-block-template.php.ph...
693
B
-rw-r--r--
class-wp-block-template.php.ta...
3.5
KB
-rw-r--r--
class-wp-block-type-registry.p...
1.41
KB
-rw-r--r--
class-wp-block-type-registry.p...
17.5
KB
-rw-r--r--
class-wp-block-type.php.php.ta...
3.95
KB
-rw-r--r--
class-wp-block-type.php.tar
36
KB
-rw-r--r--
class-wp-block.php.php.tar.gz
2.14
KB
-rw-r--r--
class-wp-block.php.tar
61
KB
-rw-r--r--
class-wp-classic-to-block-menu...
1.37
KB
-rw-r--r--
class-wp-classic-to-block-menu...
10
KB
-rw-r--r--
class-wp-comment-query.php.php...
10.21
KB
-rw-r--r--
class-wp-comment-query.php.tar
49
KB
-rw-r--r--
class-wp-comment.php.php.tar.g...
2.59
KB
-rw-r--r--
class-wp-comment.php.tar
31
KB
-rw-r--r--
class-wp-customize-control.php...
5.7
KB
-rw-r--r--
class-wp-customize-control.php...
27
KB
-rw-r--r--
class-wp-customize-manager.php...
44.55
KB
-rw-r--r--
class-wp-customize-manager.php...
199.5
KB
-rw-r--r--
class-wp-customize-nav-menu-se...
4.98
KB
-rw-r--r--
class-wp-customize-nav-menu-se...
20
KB
-rw-r--r--
class-wp-customize-panel.php.p...
3.12
KB
-rw-r--r--
class-wp-customize-panel.php.t...
23
KB
-rw-r--r--
class-wp-customize-section.php...
3.25
KB
-rw-r--r--
class-wp-customize-section.php...
12.5
KB
-rw-r--r--
class-wp-customize-setting.php...
6.58
KB
-rw-r--r--
class-wp-customize-setting.php...
31
KB
-rw-r--r--
class-wp-customize-widgets.php...
15.96
KB
-rw-r--r--
class-wp-customize-widgets.php...
277.5
KB
-rw-r--r--
class-wp-date-query.php.php.ta...
8.43
KB
-rw-r--r--
class-wp-date-query.php.tar
36.5
KB
-rw-r--r--
class-wp-dependencies.php.php....
3.37
KB
-rw-r--r--
class-wp-dependencies.php.tar
15.5
KB
-rw-r--r--
class-wp-dependency.php.php.ta...
1.01
KB
-rw-r--r--
class-wp-dependency.php.tar
4.5
KB
-rw-r--r--
class-wp-duotone.php.php.tar.g...
9.24
KB
-rw-r--r--
class-wp-duotone.php.tar
41.5
KB
-rw-r--r--
class-wp-editor.php.php.tar.gz
16.58
KB
-rw-r--r--
class-wp-editor.php.tar
285.5
KB
-rw-r--r--
class-wp-embed.php.php.tar.gz
4.77
KB
-rw-r--r--
class-wp-embed.php.tar
50.5
KB
-rw-r--r--
class-wp-error.php.php.tar.gz
1.93
KB
-rw-r--r--
class-wp-error.php.tar
9
KB
-rw-r--r--
class-wp-fatal-error-handler.p...
2.76
KB
-rw-r--r--
class-wp-fatal-error-handler.p...
9.5
KB
-rw-r--r--
class-wp-feed-cache-transient....
918
B
-rw-r--r--
class-wp-feed-cache-transient....
7.5
KB
-rw-r--r--
class-wp-feed-cache.php.php.ta...
631
B
-rw-r--r--
class-wp-feed-cache.php.tar
4
KB
-rw-r--r--
class-wp-hook.php.php.tar.gz
3.43
KB
-rw-r--r--
class-wp-hook.php.tar
48.5
KB
-rw-r--r--
class-wp-http-cookie.php.php.t...
2.55
KB
-rw-r--r--
class-wp-http-cookie.php.tar
9
KB
-rw-r--r--
class-wp-http-curl.php.php.tar...
3.68
KB
-rw-r--r--
class-wp-http-curl.php.tar
40
KB
-rw-r--r--
class-wp-http-encoding.php.php...
2.21
KB
-rw-r--r--
class-wp-http-encoding.php.tar
8.5
KB
-rw-r--r--
class-wp-http-ixr-client.php.p...
1.45
KB
-rw-r--r--
class-wp-http-ixr-client.php.t...
13
KB
-rw-r--r--
class-wp-http-netfilter.php.ph...
321
B
-rw-r--r--
class-wp-http-netfilter.php.ta...
2
KB
-rw-r--r--
class-wp-http-proxy.php.php.ta...
2.02
KB
-rw-r--r--
class-wp-http-proxy.php.tar
20.5
KB
-rw-r--r--
class-wp-http-requests-respons...
1.35
KB
-rw-r--r--
class-wp-http-requests-respons...
6
KB
-rw-r--r--
class-wp-http-response.php.php...
1.04
KB
-rw-r--r--
class-wp-http-response.php.tar
4.5
KB
-rw-r--r--
class-wp-http-streams.php.php....
4.62
KB
-rw-r--r--
class-wp-http-streams.php.tar
120
KB
-rw-r--r--
class-wp-http.php.php.tar.gz
11.09
KB
-rw-r--r--
class-wp-http.php.tar
123.5
KB
-rw-r--r--
class-wp-image-editor-gd.php.p...
3.94
KB
-rw-r--r--
class-wp-image-editor-gd.php.t...
16
KB
-rw-r--r--
class-wp-image-editor.php.php....
4.85
KB
-rw-r--r--
class-wp-image-editor.php.tar
19
KB
-rw-r--r--
class-wp-list-util.php.php.tar...
1.96
KB
-rw-r--r--
class-wp-list-util.php.tar
32
KB
-rw-r--r--
class-wp-locale-switcher.php.p...
1.87
KB
-rw-r--r--
class-wp-locale-switcher.php.t...
15.5
KB
-rw-r--r--
class-wp-locale.php.php.tar.gz
3.36
KB
-rw-r--r--
class-wp-locale.php.tar
67.5
KB
-rw-r--r--
class-wp-matchesmapregex.php.p...
818
B
-rw-r--r--
class-wp-matchesmapregex.php.t...
8.5
KB
-rw-r--r--
class-wp-meta-query.php.php.ta...
7.19
KB
-rw-r--r--
class-wp-meta-query.php.tar
170.5
KB
-rw-r--r--
class-wp-metadata-lazyloader.p...
1.75
KB
-rw-r--r--
class-wp-metadata-lazyloader.p...
32.5
KB
-rw-r--r--
class-wp-navigation-fallback.p...
2.33
KB
-rw-r--r--
class-wp-navigation-fallback.p...
20
KB
-rw-r--r--
class-wp-network-query.php.php...
4.88
KB
-rw-r--r--
class-wp-network-query.php.tar
39.5
KB
-rw-r--r--
class-wp-network.php.php.tar.g...
3.78
KB
-rw-r--r--
class-wp-network.php.tar
39
KB
-rw-r--r--
class-wp-object-cache.php.php....
3.76
KB
-rw-r--r--
class-wp-object-cache.php.tar
79
KB
-rw-r--r--
class-wp-oembed-controller.php...
2.19
KB
-rw-r--r--
class-wp-oembed-controller.php...
8.5
KB
-rw-r--r--
class-wp-oembed.php.php.tar.gz
7.33
KB
-rw-r--r--
class-wp-oembed.php.tar
185.5
KB
-rw-r--r--
class-wp-paused-extensions-sto...
1.33
KB
-rw-r--r--
class-wp-paused-extensions-sto...
6.5
KB
-rw-r--r--
class-wp-phpmailer.php.php.tar...
1.23
KB
-rw-r--r--
class-wp-phpmailer.php.tar
5.5
KB
-rw-r--r--
class-wp-plugin-dependencies.p...
5.1
KB
-rw-r--r--
class-wp-plugin-dependencies.p...
26.5
KB
-rw-r--r--
class-wp-post-type.php.php.tar...
6.61
KB
-rw-r--r--
class-wp-post-type.php.tar
31.5
KB
-rw-r--r--
class-wp-post.php.php.tar.gz
1.76
KB
-rw-r--r--
class-wp-post.php.tar
29
KB
-rw-r--r--
class-wp-query.php.php.tar.gz
29.76
KB
-rw-r--r--
class-wp-query.php.tar
734.5
KB
-rw-r--r--
class-wp-recovery-mode-email-s...
3.41
KB
-rw-r--r--
class-wp-recovery-mode-email-s...
34.5
KB
-rw-r--r--
class-wp-recovery-mode-key-ser...
1.38
KB
-rw-r--r--
class-wp-recovery-mode-key-ser...
6
KB
-rw-r--r--
class-wp-recovery-mode-link-se...
1.23
KB
-rw-r--r--
class-wp-recovery-mode-link-se...
5
KB
-rw-r--r--
class-wp-recovery-mode.php.php...
3.2
KB
-rw-r--r--
class-wp-recovery-mode.php.tar
13
KB
-rw-r--r--
class-wp-rewrite.php.php.tar.g...
14.56
KB
-rw-r--r--
class-wp-rewrite.php.tar
63.5
KB
-rw-r--r--
class-wp-role.php.php.tar.gz
868
B
-rw-r--r--
class-wp-role.php.tar
10
KB
-rw-r--r--
class-wp-roles.php.php.tar.gz
2.38
KB
-rw-r--r--
class-wp-roles.php.tar
28
KB
-rw-r--r--
class-wp-script-modules.php.ph...
3.02
KB
-rw-r--r--
class-wp-script-modules.php.ta...
35
KB
-rw-r--r--
class-wp-scripts.php.php.tar.g...
6.52
KB
-rw-r--r--
class-wp-scripts.php.tar
57.5
KB
-rw-r--r--
class-wp-session-tokens.php.ph...
1.95
KB
-rw-r--r--
class-wp-session-tokens.php.ta...
33
KB
-rw-r--r--
class-wp-simplepie-file.php.ph...
1.45
KB
-rw-r--r--
class-wp-simplepie-file.php.ta...
9
KB
-rw-r--r--
class-wp-simplepie-sanitize-ks...
964
B
-rw-r--r--
class-wp-simplepie-sanitize-ks...
6
KB
-rw-r--r--
class-wp-site-query.php.php.ta...
6.63
KB
-rw-r--r--
class-wp-site-query.php.tar
64
KB
-rw-r--r--
class-wp-site.php.php.tar.gz
2.12
KB
-rw-r--r--
class-wp-site.php.tar
33
KB
-rw-r--r--
class-wp-styles.php.php.tar.gz
3.06
KB
-rw-r--r--
class-wp-styles.php.tar
35.5
KB
-rw-r--r--
class-wp-tax-query.php.php.tar...
5.11
KB
-rw-r--r--
class-wp-tax-query.php.tar
60.5
KB
-rw-r--r--
class-wp-taxonomy.php.php.tar....
4.47
KB
-rw-r--r--
class-wp-taxonomy.php.tar
20
KB
-rw-r--r--
class-wp-term-query.php.php.ta...
8.14
KB
-rw-r--r--
class-wp-term-query.php.tar
71
KB
-rw-r--r--
class-wp-term.php.php.tar.gz
1.86
KB
-rw-r--r--
class-wp-term.php.tar
13
KB
-rw-r--r--
class-wp-text-diff-renderer-in...
611
B
-rw-r--r--
class-wp-text-diff-renderer-in...
2.5
KB
-rw-r--r--
class-wp-text-diff-renderer-ta...
4.78
KB
-rw-r--r--
class-wp-text-diff-renderer-ta...
37
KB
-rw-r--r--
class-wp-textdomain-registry.p...
2.92
KB
-rw-r--r--
class-wp-textdomain-registry.p...
22.5
KB
-rw-r--r--
class-wp-theme-json.php.php.ta...
13.41
KB
-rw-r--r--
class-wp-theme-json.php.tar
63
KB
-rw-r--r--
class-wp-theme.php.php.tar.gz
14.06
KB
-rw-r--r--
class-wp-theme.php.tar
65.5
KB
-rw-r--r--
class-wp-token-map.php.php.tar...
7.84
KB
-rw-r--r--
class-wp-token-map.php.tar
58
KB
-rw-r--r--
class-wp-user-meta-session-tok...
999
B
-rw-r--r--
class-wp-user-meta-session-tok...
22
KB
-rw-r--r--
class-wp-user-query.php.php.ta...
9.26
KB
-rw-r--r--
class-wp-user-query.php.tar
44.5
KB
-rw-r--r--
class-wp-user-request.php.php....
726
B
-rw-r--r--
class-wp-user-request.php.tar
13
KB
-rw-r--r--
class-wp-user.php.php.tar.gz
5.65
KB
-rw-r--r--
class-wp-user.php.tar
47
KB
-rw-r--r--
class-wp-walker.php.php.tar.gz
3.15
KB
-rw-r--r--
class-wp-walker.php.tar
42.5
KB
-rw-r--r--
class-wp-widget-factory.php.ph...
1.09
KB
-rw-r--r--
class-wp-widget-factory.php.ta...
5
KB
-rw-r--r--
class-wp-widget.php.php.tar.gz
4.41
KB
-rw-r--r--
class-wp-widget.php.tar
56.5
KB
-rw-r--r--
class-wp-xmlrpc-server.php.php...
34.01
KB
-rw-r--r--
class-wp-xmlrpc-server.php.tar
420
KB
-rw-r--r--
class-wp.php.php.tar.gz
7.18
KB
-rw-r--r--
class-wp.php.tar
131.5
KB
-rw-r--r--
class-wpdb.php.php.tar.gz
28.19
KB
-rw-r--r--
class-wpdb.php.tar
468
KB
-rw-r--r--
class.wp-dependencies.php.tar
2
KB
-rw-r--r--
class.wp-dependencies.php.wp-d...
321
B
-rw-r--r--
class.wp-scripts.php.tar
3
KB
-rw-r--r--
class.wp-scripts.php.wp-script...
318
B
-rw-r--r--
class.wp-styles.php.tar
4
KB
-rw-r--r--
class.wp-styles.php.wp-styles....
318
B
-rw-r--r--
cli.tar
133.5
KB
-rw-r--r--
cli.tar.gz
26.04
KB
-rw-r--r--
cli.zip
124.09
KB
-rw-r--r--
client-logo.tar
91
KB
-rw-r--r--
client-logo.tar.gz
49.92
KB
-rw-r--r--
client-logo.zip
84.41
KB
-rw-r--r--
clients.zip
28.76
KB
-rw-r--r--
clipboard.min.js.min.js.tar.gz
3.19
KB
-rw-r--r--
clipboard.min.js.tar
10.5
KB
-rw-r--r--
cms.tar
276.5
KB
-rw-r--r--
cms.tar.gz
1.01
KB
-rw-r--r--
cms.zip
3.35
KB
-rw-r--r--
code.tar
15
KB
-rw-r--r--
code.tar.gz
1.08
KB
-rw-r--r--
colors.tar
661.5
KB
-rw-r--r--
colors.tar.gz
56.18
KB
-rw-r--r--
com_acymailing.tar
1.73
MB
-rw-r--r--
com_acymailing.tar.gz
85.93
KB
-rw-r--r--
com_acymailing.zip
1.56
MB
-rw-r--r--
com_ajax.tar
8
KB
-rw-r--r--
com_ajax.tar.gz
2.12
KB
-rw-r--r--
com_ajax.zip
6.41
KB
-rw-r--r--
com_akeeba.tar
222.5
KB
-rw-r--r--
com_akeeba.tar.gz
0
B
-rw-r--r--
com_akeeba.zip
172.83
KB
-rw-r--r--
com_associations.tar
85.5
KB
-rw-r--r--
com_associations.tar.gz
18.65
KB
-rw-r--r--
com_associations.zip
68.85
KB
-rw-r--r--
com_banners.tar
24.5
KB
-rw-r--r--
com_banners.tar.gz
4.86
KB
-rw-r--r--
com_banners.zip
19.06
KB
-rw-r--r--
com_blue_pagebuilder.tar
33.5
KB
-rw-r--r--
com_blue_pagebuilder.tar.gz
5.23
KB
-rw-r--r--
com_blue_pagebuilder.zip
19.04
KB
-rw-r--r--
com_categories.tar
15
KB
-rw-r--r--
com_categories.tar.gz
3.24
KB
-rw-r--r--
com_config.tar
114.5
KB
-rw-r--r--
com_config.tar.gz
16.39
KB
-rw-r--r--
com_config.zip
89.48
KB
-rw-r--r--
com_contact.tar
523.5
KB
-rw-r--r--
com_contact.tar.gz
40.36
KB
-rw-r--r--
com_contact.zip
466.35
KB
-rw-r--r--
com_content.tar
365
KB
-rw-r--r--
com_content.tar.gz
59.99
KB
-rw-r--r--
com_content.zip
334.19
KB
-rw-r--r--
com_contenthistory.tar
3.5
KB
-rw-r--r--
com_contenthistory.tar.gz
603
B
-rw-r--r--
com_contenthistory.zip
839
B
-rw-r--r--
com_falang.tar
28
KB
-rw-r--r--
com_falang.tar.gz
6.08
KB
-rw-r--r--
com_fields.tar
12
KB
-rw-r--r--
com_fields.tar.gz
2.45
KB
-rw-r--r--
com_fields.zip
7.84
KB
-rw-r--r--
com_finder.tar
109
KB
-rw-r--r--
com_finder.tar.gz
20.25
KB
-rw-r--r--
com_finder.zip
121.6
KB
-rw-r--r--
com_gantry5.tar
14.5
KB
-rw-r--r--
com_gantry5.tar.gz
3.09
KB
-rw-r--r--
com_gantry5.zip
10.35
KB
-rw-r--r--
com_icagenda.tar
1.56
MB
-rw-r--r--
com_icagenda.tar.gz
252.83
KB
-rw-r--r--
com_icagenda.zip
1.4
MB
-rw-r--r--
com_jce.tar
4.82
MB
-rw-r--r--
com_jce.tar.gz
1.2
MB
-rw-r--r--
com_jce.zip
4.39
MB
-rw-r--r--
com_k2.tar
650
KB
-rw-r--r--
com_k2.tar.gz
115.57
KB
-rw-r--r--
com_k2.zip
587.73
KB
-rw-r--r--
com_login.zip
11.37
KB
-rw-r--r--
com_mailto.tar
23.5
KB
-rw-r--r--
com_mailto.tar.gz
4.42
KB
-rw-r--r--
com_mailto.zip
15.79
KB
-rw-r--r--
com_media.tar
2.5
KB
-rw-r--r--
com_media.tar.gz
484
B
-rw-r--r--
com_media.zip
776
B
-rw-r--r--
com_menus.tar
14
KB
-rw-r--r--
com_menus.tar.gz
1.34
KB
-rw-r--r--
com_menus.zip
10.05
KB
-rw-r--r--
com_messages.tar
80.5
KB
-rw-r--r--
com_messages.tar.gz
13.21
KB
-rw-r--r--
com_modules.tar
12.5
KB
-rw-r--r--
com_modules.tar.gz
1.75
KB
-rw-r--r--
com_modules.zip
8.49
KB
-rw-r--r--
com_newsfeeds.tar
98.5
KB
-rw-r--r--
com_newsfeeds.tar.gz
16.45
KB
-rw-r--r--
com_newsfeeds.zip
83.79
KB
-rw-r--r--
com_privacy.tar
109.5
KB
-rw-r--r--
com_privacy.tar.gz
7.42
KB
-rw-r--r--
com_privacy.zip
87.26
KB
-rw-r--r--
com_search.tar
38
KB
-rw-r--r--
com_search.tar.gz
8.07
KB
-rw-r--r--
com_search.zip
31.14
KB
-rw-r--r--
com_solidres.tar
1.65
MB
-rw-r--r--
com_solidres.tar.gz
264.5
KB
-rw-r--r--
com_solidres.zip
1.59
MB
-rw-r--r--
com_tags.tar
107.5
KB
-rw-r--r--
com_tags.tar.gz
16.49
KB
-rw-r--r--
com_tags.zip
90.96
KB
-rw-r--r--
com_templates.tar
69.5
KB
-rw-r--r--
com_templates.tar.gz
12.41
KB
-rw-r--r--
com_templates.zip
51.97
KB
-rw-r--r--
com_uniterevolution2.tar
1.08
MB
-rw-r--r--
com_uniterevolution2.tar.gz
425.96
KB
-rw-r--r--
com_uniterevolution2.zip
1.4
KB
-rw-r--r--
com_users.tar
201.5
KB
-rw-r--r--
com_users.tar.gz
27.25
KB
-rw-r--r--
com_users.zip
167.94
KB
-rw-r--r--
com_virtuemart_allinone.tar
35.5
KB
-rw-r--r--
com_virtuemart_allinone.tar.gz
8.84
KB
-rw-r--r--
com_wrapper.tar
21
KB
-rw-r--r--
com_wrapper.tar.gz
391
B
-rw-r--r--
com_wrapper.zip
13.73
KB
-rw-r--r--
coming_soon.zip
5.16
MB
-rw-r--r--
comment-reply-link.tar
2.5
KB
-rw-r--r--
comment-reply-link.tar.gz
515
B
-rw-r--r--
comment-template.php.php.tar.g...
8.54
KB
-rw-r--r--
comment-template.php.tar
239.5
KB
-rw-r--r--
comment.php.php.tar.gz
27.88
KB
-rw-r--r--
comment.php.tar
389.5
KB
-rw-r--r--
compat.php.php.tar.gz
4.28
KB
-rw-r--r--
compat.php.tar
34.5
KB
-rw-r--r--
components.html.html.tar.gz
3.12
KB
-rw-r--r--
components.html.tar
14.5
KB
-rw-r--r--
components.tar
52.99
MB
-rw-r--r--
components.tar.gz
3.27
MB
-rw-r--r--
components.zip
51.21
MB
-rw-r--r--
composer.json.json.tar.gz
168
B
-rw-r--r--
composer.json.tar
2
KB
-rw-r--r--
composer.lock.lock.tar.gz
1.38
KB
-rw-r--r--
composer.lock.tar
5.5
KB
-rw-r--r--
conditions.docx.docx.tar.gz
40.58
KB
-rw-r--r--
conditions.docx.tar
48.5
KB
-rw-r--r--
configuration.php.php.tar.gz
1.17
KB
-rw-r--r--
configuration.php.tar
28.5
KB
-rw-r--r--
configuration_old.php.php.tar....
1.18
KB
-rw-r--r--
configuration_old.php.tar
5
KB
-rw-r--r--
configuration_old2.php.php.tar...
1.25
KB
-rw-r--r--
configuration_old2.php.tar
5.5
KB
-rw-r--r--
configuration_old33.php.php.ta...
1.27
KB
-rw-r--r--
configuration_old33.php.tar
5.5
KB
-rw-r--r--
construction-prev-arrow.png.pn...
3.88
KB
-rw-r--r--
construction-prev-arrow.png.ta...
5.5
KB
-rw-r--r--
contact-sec.jpg.jpg.tar.gz
66.15
KB
-rw-r--r--
contact-sec.jpg.tar
67.5
KB
-rw-r--r--
contact.html.html.tar.gz
3.29
KB
-rw-r--r--
contact.html.tar
37
KB
-rw-r--r--
contact.php.php.tar.gz
5.84
KB
-rw-r--r--
contact.php.tar
28
KB
-rw-r--r--
contact.tar
4.5
KB
-rw-r--r--
contact.tar.gz
1.28
KB
-rw-r--r--
contactFR.html.html.tar.gz
3.18
KB
-rw-r--r--
contactFR.html.tar
12.5
KB
-rw-r--r--
contactform-fr.php.php.tar.gz
505
B
-rw-r--r--
contactform-fr.php.tar
2.5
KB
-rw-r--r--
contactfr.html.html.tar.gz
3.21
KB
-rw-r--r--
contactfr.html.tar
13
KB
-rw-r--r--
contacts.tar
5.34
MB
-rw-r--r--
contacts.tar.gz
2.1
MB
-rw-r--r--
contacts.zip
5.29
MB
-rw-r--r--
contacts_1.json.json.tar.gz
9.95
KB
-rw-r--r--
contacts_1.json.tar
63
KB
-rw-r--r--
content.tar
57
KB
-rw-r--r--
content.tar.gz
6.4
KB
-rw-r--r--
controller.php.php.tar.gz
897
B
-rw-r--r--
controller.php.tar
3
KB
-rw-r--r--
core.tar
1.05
MB
-rw-r--r--
core.tar.gz
197.59
KB
-rw-r--r--
core.zip
955.12
KB
-rw-r--r--
counterup.tar
30.5
KB
-rw-r--r--
counterup.tar.gz
7.66
KB
-rw-r--r--
counterup.zip
26.86
KB
-rw-r--r--
cover.tar
89.5
KB
-rw-r--r--
cover.tar.gz
5.54
KB
-rw-r--r--
cover.zip
82.63
KB
-rw-r--r--
credits.php.php.tar.gz
1.25
KB
-rw-r--r--
credits.php.tar
10
KB
-rw-r--r--
cron.php.php.tar.gz
162
B
-rw-r--r--
cron.php.tar
118
KB
-rw-r--r--
crystal.tar
24
KB
-rw-r--r--
crystal.tar.gz
15.15
KB
-rw-r--r--
css.png.png.tar.gz
2.8
KB
-rw-r--r--
css.png.tar
4.5
KB
-rw-r--r--
css.tar
11.84
MB
-rw-r--r--
css.tar.gz
44.02
KB
-rw-r--r--
css.zip
11.76
MB
-rw-r--r--
css1.tar
186.5
KB
-rw-r--r--
css1.tar.gz
41.71
KB
-rw-r--r--
css1.zip
183.94
KB
-rw-r--r--
css3.png.png.tar.gz
7.46
KB
-rw-r--r--
css3.png.tar
9.5
KB
-rw-r--r--
custom-background.php.php.tar....
376
B
-rw-r--r--
custom-background.php.tar
3
KB
-rw-r--r--
custom-header.php.php.tar.gz
10.61
KB
-rw-r--r--
custom-header.php.tar
48
KB
-rw-r--r--
customize-nav-menus.min.css.mi...
3.46
KB
-rw-r--r--
customize-nav-menus.min.css.ta...
19.5
KB
-rw-r--r--
customize.php.php.tar.gz
3.68
KB
-rw-r--r--
customize.php.tar
35.5
KB
-rw-r--r--
customize.tar
197.5
KB
-rw-r--r--
customize.tar.gz
38.7
KB
-rw-r--r--
customize.zip
173.55
KB
-rw-r--r--
d82fd3.tar
15.5
KB
-rw-r--r--
d82fd3.tar.gz
3.86
KB
-rw-r--r--
d82fd3.zip
13.78
KB
-rw-r--r--
dashboard.js.js.tar.gz
8.4
KB
-rw-r--r--
dashboard.js.tar
28.5
KB
-rw-r--r--
dashboard.min.js.min.js.tar.gz
3.11
KB
-rw-r--r--
dashboard.min.js.tar
10.5
KB
-rw-r--r--
dashicons.eot.eot.tar.gz
31.91
KB
-rw-r--r--
dashicons.eot.tar
57
KB
-rw-r--r--
dashicons.ttf.tar
57
KB
-rw-r--r--
dashicons.ttf.ttf.tar.gz
31.84
KB
-rw-r--r--
data.tar
230.5
KB
-rw-r--r--
data.tar.gz
11.82
KB
-rw-r--r--
data.zip
217.5
KB
-rw-r--r--
database.json.json.tar.gz
654
B
-rw-r--r--
database.json.tar
7
KB
-rw-r--r--
date.php.php.tar.gz
356
B
-rw-r--r--
date.php.tar
4
KB
-rw-r--r--
de-DE.tar
415.5
KB
-rw-r--r--
de-DE.tar.gz
92.58
KB
-rw-r--r--
default-constants.php.php.tar....
2.82
KB
-rw-r--r--
default-constants.php.tar
55.5
KB
-rw-r--r--
default-filters.php.php.tar.gz
7.89
KB
-rw-r--r--
default-filters.php.tar
223
KB
-rw-r--r--
default-widgets.php.php.tar.gz
508
B
-rw-r--r--
default-widgets.php.tar
16
KB
-rw-r--r--
default.php.php.tar.gz
1.45
KB
-rw-r--r--
default.php.tar
9
KB
-rw-r--r--
default.png.png.tar.gz
616
B
-rw-r--r--
default.png.tar
3
KB
-rw-r--r--
default1.jpg.jpg.tar.gz
322.01
KB
-rw-r--r--
default1.jpg.tar
335
KB
-rw-r--r--
defaults.php.php.tar.gz
826
B
-rw-r--r--
defaults.php.tar
3
KB
-rw-r--r--
deprecated.php.php.tar.gz
39.99
KB
-rw-r--r--
deprecated.php.tar
183.5
KB
-rw-r--r--
details.zip
3.22
KB
-rw-r--r--
devices.png.png.tar.gz
1.93
KB
-rw-r--r--
devices.png.tar
3.5
KB
-rw-r--r--
devices_2.png.png.tar.gz
1.89
KB
-rw-r--r--
devices_2.png.tar
3.5
KB
-rw-r--r--
dff24.jpg.jpg.tar.gz
302.87
KB
-rw-r--r--
dff24.jpg.tar
322
KB
-rw-r--r--
digital.tar
25.36
MB
-rw-r--r--
digital.tar.gz
0
B
-rw-r--r--
digital.zip
25.31
MB
-rw-r--r--
dimensions.php.php.tar.gz
1.72
KB
-rw-r--r--
dimensions.php.tar
13
KB
-rw-r--r--
dist.tar
23.44
MB
-rw-r--r--
dist.tar.gz
938.9
KB
-rw-r--r--
dist.zip
5.6
MB
-rw-r--r--
divider.png.png.tar.gz
5.7
KB
-rw-r--r--
divider.png.tar
8
KB
-rw-r--r--
document.html.html.tar.gz
1.79
KB
-rw-r--r--
document.html.tar
6
KB
-rw-r--r--
domicile.jpg.jpg.tar.gz
13.32
KB
-rw-r--r--
domicile.jpg.tar
24
KB
-rw-r--r--
dompdf.tar
21.82
MB
-rw-r--r--
dompdf.tar.gz
9.51
MB
-rw-r--r--
drupal.png.png.tar.gz
10.02
KB
-rw-r--r--
drupal.png.tar
12
KB
-rw-r--r--
duplicate-post.zip
344.54
KB
-rw-r--r--
edit-form-advanced.php.php.tar...
8.69
KB
-rw-r--r--
edit-form-advanced.php.tar
60
KB
-rw-r--r--
edit-form-blocks.php.php.tar.g...
5.15
KB
-rw-r--r--
edit-form-blocks.php.tar
29
KB
-rw-r--r--
edit-form-comment.php.php.tar....
2.71
KB
-rw-r--r--
edit-form-comment.php.tar
10
KB
-rw-r--r--
edit-link-form.php.php.tar.gz
2.17
KB
-rw-r--r--
edit-link-form.php.tar
29
KB
-rw-r--r--
edit-tag-form.php.php.tar.gz
2.86
KB
-rw-r--r--
edit-tag-form.php.tar
23
KB
-rw-r--r--
edit-tags.php.php.tar.gz
5.84
KB
-rw-r--r--
edit-tags.php.tar
23.5
KB
-rw-r--r--
edit.php.php.tar.gz
5.55
KB
-rw-r--r--
edit.php.tar
21
KB
-rw-r--r--
editors-xtd.tar
31.5
KB
-rw-r--r--
editors-xtd.tar.gz
3.47
KB
-rw-r--r--
editors-xtd.zip
21.58
KB
-rw-r--r--
editors.zip
114.5
KB
-rw-r--r--
elementor-pro.tar
14.63
MB
-rw-r--r--
elementor-pro.tar.gz
2.24
MB
-rw-r--r--
elementor-pro.zip
14.26
MB
-rw-r--r--
elementor.tar
45.46
MB
-rw-r--r--
elementor.tar.gz
7.96
MB
-rw-r--r--
elementor.zip
57.4
MB
-rw-r--r--
elementorx.tar
38.7
MB
-rw-r--r--
elementorx.tar.gz
9.19
MB
-rw-r--r--
elementorx.zip
38.1
MB
-rw-r--r--
elements.tar
9.02
MB
-rw-r--r--
elements.tar.gz
8.57
MB
-rw-r--r--
elements.zip
8.98
MB
-rw-r--r--
eleve2.jpg.jpg.tar.gz
633.68
KB
-rw-r--r--
eleve2.jpg.tar
650.5
KB
-rw-r--r--
embed-template.php.php.tar.gz
326
B
-rw-r--r--
embed-template.php.tar
2
KB
-rw-r--r--
embed.php.php.tar.gz
9.94
KB
-rw-r--r--
embed.php.tar
39
KB
-rw-r--r--
emglobal.tar
167.75
MB
-rw-r--r--
emglobal.tar.gz
90.82
MB
-rw-r--r--
eminvest.tar
89.48
MB
-rw-r--r--
eminvest.tar.gz
25.19
KB
-rw-r--r--
eminvest.zip
81.62
KB
-rw-r--r--
en-GB.tar
902
KB
-rw-r--r--
en-GB.tar.gz
120.63
KB
-rw-r--r--
en-GB.zip
795.95
KB
-rw-r--r--
erase-personal-data.php.php.ta...
2.78
KB
-rw-r--r--
erase-personal-data.php.tar
9
KB
-rw-r--r--
error-protection.php.php.tar.g...
1.48
KB
-rw-r--r--
error-protection.php.tar
6
KB
-rw-r--r--
exceptions.tar
6
KB
-rw-r--r--
exceptions.tar.gz
790
B
-rw-r--r--
export.php.php.tar.gz
3.19
KB
-rw-r--r--
export.php.tar
25
KB
-rw-r--r--
extension.tar
186.5
KB
-rw-r--r--
extension.tar.gz
4.19
KB
-rw-r--r--
extension.zip
168.25
KB
-rw-r--r--
f0f.tar
2.09
MB
-rw-r--r--
f0f.tar.gz
490.91
KB
-rw-r--r--
f0f.zip
1.98
MB
-rw-r--r--
fail.php.php.tar.gz
213
B
-rw-r--r--
fail.php.tar
2
KB
-rw-r--r--
favicon-16x16.png.png.tar.gz
1.44
KB
-rw-r--r--
favicon-16x16.png.tar
3.5
KB
-rw-r--r--
favicon-32x32.png.png.tar.gz
2.33
KB
-rw-r--r--
favicon-32x32.png.tar
4
KB
-rw-r--r--
favicon-96x96.png.png.tar.gz
8.35
KB
-rw-r--r--
favicon-96x96.png.tar
10
KB
-rw-r--r--
favicon.ico.ico.tar.gz
905
B
-rw-r--r--
favicon.ico.tar
6.5
KB
-rw-r--r--
favicon.png.png.tar.gz
1.94
KB
-rw-r--r--
favicon.png.tar
9.5
KB
-rw-r--r--
favicon2.png.png.tar.gz
1.48
KB
-rw-r--r--
favicon2.png.tar
6
KB
-rw-r--r--
feed-atom-comments.php.php.tar...
1.85
KB
-rw-r--r--
feed-atom-comments.php.tar
7
KB
-rw-r--r--
feed-atom.php.php.tar.gz
1.26
KB
-rw-r--r--
feed-atom.php.tar
8.5
KB
-rw-r--r--
feed-rdf.php.php.tar.gz
1.1
KB
-rw-r--r--
feed-rdf.php.tar
8
KB
-rw-r--r--
feed-rss.php.php.tar.gz
700
B
-rw-r--r--
feed-rss.php.tar
7
KB
-rw-r--r--
feed-rss2-comments.php.php.tar...
1.55
KB
-rw-r--r--
feed-rss2-comments.php.tar
6
KB
-rw-r--r--
feed-rss2.php.php.tar.gz
1.5
KB
-rw-r--r--
feed-rss2.php.tar
10
KB
-rw-r--r--
feed.php.php.tar.gz
5.91
KB
-rw-r--r--
feed.php.tar
48
KB
-rw-r--r--
fef.tar
409
KB
-rw-r--r--
fef.tar.gz
108.82
KB
-rw-r--r--
fef.zip
398.19
KB
-rw-r--r--
fields.tar
26.5
KB
-rw-r--r--
fields.tar.gz
4.84
KB
-rw-r--r--
file.php
80.47
KB
-rw-r--r--
file.php.php.tar.gz
24.83
KB
-rw-r--r--
file.php.tar
3.72
MB
-rw-r--r--
file.tar
22.5
KB
-rw-r--r--
file.tar.gz
3.07
KB
-rw-r--r--
flex.tar
6.17
MB
-rw-r--r--
flex.tar.gz
1.69
MB
-rw-r--r--
fof.zip
2
MB
-rw-r--r--
fontawesome-webfont.eot.eot.ta...
96.31
KB
-rw-r--r--
fontawesome-webfont.eot.tar
163.5
KB
-rw-r--r--
fontawesome-webfont.svg.svg.ta...
132.93
KB
-rw-r--r--
fontawesome-webfont.svg.tar
435.5
KB
-rw-r--r--
fontawesome-webfont.ttf.tar
163.5
KB
-rw-r--r--
fontawesome-webfont.ttf.ttf.ta...
96.22
KB
-rw-r--r--
fontawesome-webfont.woff.tar
97.5
KB
-rw-r--r--
fontawesome-webfont.woff.woff....
95.75
KB
-rw-r--r--
fontawesome-webfont.woff2.tar
77
KB
-rw-r--r--
fontawesome-webfont.woff2.woff...
75.51
KB
-rw-r--r--
fonts.php.php.tar.gz
2.69
KB
-rw-r--r--
fonts.php.tar
11
KB
-rw-r--r--
fonts.tar
2.93
MB
-rw-r--r--
fonts.tar.gz
608.17
KB
-rw-r--r--
fonts.zip
2.91
MB
-rw-r--r--
footnotes.zip
3.27
KB
-rw-r--r--
form.tar
2.5
KB
-rw-r--r--
form.tar.gz
475
B
-rw-r--r--
form.zip
1.14
KB
-rw-r--r--
formatting.php.php.tar.gz
65.1
KB
-rw-r--r--
formatting.php.tar
329.5
KB
-rw-r--r--
forms-rtl.min.css.min.css.tar....
6.69
KB
-rw-r--r--
forms-rtl.min.css.tar
29.5
KB
-rw-r--r--
fr-FR.zip
432.44
KB
-rw-r--r--
framework.php.php.tar.gz
1.38
KB
-rw-r--r--
framework.php.tar
14
KB
-rw-r--r--
freeform.zip
41.54
KB
-rw-r--r--
freepik_edit_3d-model-octane-r...
573.77
KB
-rw-r--r--
freepik_edit_3d-model-octane-r...
646
KB
-rw-r--r--
full-responsive.png.png.tar.gz
1.11
MB
-rw-r--r--
full-responsive.png.tar
1.12
MB
-rw-r--r--
functions.php.php.tar.gz
71.93
KB
-rw-r--r--
functions.php.tar
557.5
KB
-rw-r--r--
functions.wp-scripts.php.tar
16
KB
-rw-r--r--
functions.wp-scripts.php.wp-sc...
3.98
KB
-rw-r--r--
functions.wp-styles.php.tar
19
KB
-rw-r--r--
functions.wp-styles.php.wp-sty...
2.29
KB
-rw-r--r--
gallery.tar
1.24
MB
-rw-r--r--
gallery.tar.gz
933.8
KB
-rw-r--r--
gallery.zip
1.23
MB
-rw-r--r--
gantry.zip
42.42
KB
-rw-r--r--
gantry5.tar
9.78
MB
-rw-r--r--
gantry5.tar.gz
521.58
KB
-rw-r--r--
gantry5.zip
6.48
MB
-rw-r--r--
general-template.php.php.tar.g...
34.11
KB
-rw-r--r--
general-template.php.tar
490.5
KB
-rw-r--r--
genieprevention.jpg.jpg.tar.gz
224.21
KB
-rw-r--r--
genieprevention.jpg.tar
250.5
KB
-rw-r--r--
genieprevention.png.png.tar.gz
1.14
MB
-rw-r--r--
genieprevention.png.tar
1.17
MB
-rw-r--r--
genieprevention.tar
127.85
MB
-rw-r--r--
genieprevention.tar.gz
59.62
MB
-rw-r--r--
getid3.lib.php.lib.php.tar.gz
12.36
KB
-rw-r--r--
getid3.lib.php.tar
55
KB
-rw-r--r--
global-styles-and-settings.php...
5.27
KB
-rw-r--r--
global-styles-and-settings.php...
22.5
KB
-rw-r--r--
google-map.tar
15
KB
-rw-r--r--
google-map.tar.gz
4.24
KB
-rw-r--r--
google-map.zip
12.63
KB
-rw-r--r--
google13cccd2253d2ff59.html.ht...
151
B
-rw-r--r--
google13cccd2253d2ff59.html.ta...
2
KB
-rw-r--r--
google9d63adf694ce55d9.html.ht...
155
B
-rw-r--r--
google9d63adf694ce55d9.html.ta...
2
KB
-rw-r--r--
googleaa8106a26df5450e.html.ht...
152
B
-rw-r--r--
googleaa8106a26df5450e.html.ta...
2
KB
-rw-r--r--
grid1.jpg.jpg.tar.gz
39.16
KB
-rw-r--r--
grid1.jpg.tar
40.5
KB
-rw-r--r--
group.tar
21
KB
-rw-r--r--
group.tar.gz
1.69
KB
-rw-r--r--
group.zip
10.62
KB
-rw-r--r--
header.php.php.tar.gz
989
B
-rw-r--r--
header.php.tar
4
KB
-rw-r--r--
headers.tar
153.5
KB
-rw-r--r--
headers.tar.gz
147.74
KB
-rw-r--r--
headers.zip
149.11
KB
-rw-r--r--
heading.php.php.tar.gz
700
B
-rw-r--r--
heading.php.tar
3
KB
-rw-r--r--
help.tar
8
KB
-rw-r--r--
help.tar.gz
1.14
KB
-rw-r--r--
help.zip
5.76
KB
-rw-r--r--
helpers.tar
14
KB
-rw-r--r--
helpers.tar.gz
2.92
KB
-rw-r--r--
hightlight.css.css.tar.gz
541
B
-rw-r--r--
hightlight.css.tar
2.5
KB
-rw-r--r--
hikashoppayment.tar
1.63
MB
-rw-r--r--
hikashoppayment.tar.gz
433.55
KB
-rw-r--r--
hikashoppayment.zip
1.45
MB
-rw-r--r--
home-link.tar
3
KB
-rw-r--r--
home-link.tar.gz
598
B
-rw-r--r--
home-link.zip
1.25
KB
-rw-r--r--
hover.css.css.tar.gz
4.2
KB
-rw-r--r--
hover.css.tar
47
KB
-rw-r--r--
htaccess.txt.tar
28.5
KB
-rw-r--r--
htaccess.txt.txt.tar.gz
1.53
KB
-rw-r--r--
html-api.tar
535.5
KB
-rw-r--r--
html-api.tar.gz
90.01
KB
-rw-r--r--
html-api.zip
526.46
KB
-rw-r--r--
html.png.png.tar.gz
5.08
KB
-rw-r--r--
html.png.tar
7
KB
-rw-r--r--
html.tar
33.5
KB
-rw-r--r--
html.tar.gz
966
B
-rw-r--r--
http.php.php.tar.gz
5.53
KB
-rw-r--r--
http.php.tar
52
KB
-rw-r--r--
http:.tar
82
KB
-rw-r--r--
http:.tar.gz
24.81
KB
-rw-r--r--
http:.zip
80.62
KB
-rw-r--r--
https-migration.php.php.tar.gz
1.65
KB
-rw-r--r--
https-migration.php.tar
12
KB
-rw-r--r--
https:.tar
82
KB
-rw-r--r--
https:.tar.gz
24.81
KB
-rw-r--r--
https:.zip
80.62
KB
-rw-r--r--
ibd.html.tar
1.5
KB
-rw-r--r--
icagenda.tar
14
KB
-rw-r--r--
icagenda.tar.gz
3.01
KB
-rw-r--r--
icon_fonts.tar
3.44
MB
-rw-r--r--
icon_fonts.tar.gz
1.48
MB
-rw-r--r--
icon_fonts.zip
3.43
MB
-rw-r--r--
ident.tar
1.84
MB
-rw-r--r--
ident.tar.gz
1.69
MB
-rw-r--r--
ident.zip
1.84
MB
-rw-r--r--
identification_qr_code_joe007....
426.41
KB
-rw-r--r--
identification_qr_code_joe007....
452.5
KB
-rw-r--r--
identification_qrcode_suly007....
425.82
KB
-rw-r--r--
identification_qrcode_suly007....
452
KB
-rw-r--r--
idna_convert.zip
142.7
KB
-rw-r--r--
image.php.php.tar.gz
4.05
KB
-rw-r--r--
image.php.tar
13.5
KB
-rw-r--r--
images.jfif.jfif.tar.gz
3.66
KB
-rw-r--r--
images.jfif.tar
5.5
KB
-rw-r--r--
images.tar
185.22
MB
-rw-r--r--
images.tar.gz
9.73
MB
-rw-r--r--
images.zip
204.64
MB
-rw-r--r--
img.tar
1.83
MB
-rw-r--r--
img.tar.gz
638.06
KB
-rw-r--r--
img.zip
1.77
MB
-rw-r--r--
import.php.php.tar.gz
2.68
KB
-rw-r--r--
import.php.tar
17.5
KB
-rw-r--r--
include-component.tar
342.5
KB
-rw-r--r--
include-component.tar.gz
319.18
KB
-rw-r--r--
includes.tar
2.8
MB
-rw-r--r--
includes.tar.gz
26.35
KB
-rw-r--r--
includes.zip
2.99
MB
-rw-r--r--
index-home.html.html.tar.gz
4.34
KB
-rw-r--r--
index-home.html.tar
22
KB
-rw-r--r--
index-slides.html.html.tar.gz
7.51
KB
-rw-r--r--
index-slides.html.tar
40.5
KB
-rw-r--r--
index-static.html.html.tar.gz
7.41
KB
-rw-r--r--
index-static.html.tar
40
KB
-rw-r--r--
index-text.html.html.tar.gz
6.78
KB
-rw-r--r--
index-text.html.tar
41.5
KB
-rw-r--r--
index.html.html.tar.gz
7.33
KB
-rw-r--r--
index.html.tar
99
KB
-rw-r--r--
index.jpg.jpg.tar.gz
11.13
KB
-rw-r--r--
index.jpg.tar
13
KB
-rw-r--r--
index.php.php.tar.gz
351
B
-rw-r--r--
index.php.tar
83.5
KB
-rw-r--r--
index.php0.php0.tar.gz
855
B
-rw-r--r--
index.php0.tar
3
KB
-rw-r--r--
index5.php.php.tar.gz
353
B
-rw-r--r--
index5.php.tar
2
KB
-rw-r--r--
indexFR.html.html.tar.gz
5.82
KB
-rw-r--r--
indexFR.html.tar
27.5
KB
-rw-r--r--
index_files.tar
1.22
MB
-rw-r--r--
index_files.tar.gz
838.85
KB
-rw-r--r--
index_files.zip
1.21
MB
-rw-r--r--
indexfr.html.html.tar.gz
6.01
KB
-rw-r--r--
indexfr.html.tar
29.5
KB
-rw-r--r--
indexx.html.html.tar.gz
2.01
KB
-rw-r--r--
indexx.html.tar
8
KB
-rw-r--r--
indexx.php.php.tar.gz
357
B
-rw-r--r--
indexx.php.tar
2
KB
-rw-r--r--
install-helper.php.php.tar.gz
1.97
KB
-rw-r--r--
install-helper.php.tar
37.5
KB
-rw-r--r--
install.html.html.tar.gz
160
B
-rw-r--r--
install.html.tar
2
KB
-rw-r--r--
install.php.php.tar.gz
5.21
KB
-rw-r--r--
install.php.tar
72.5
KB
-rw-r--r--
installer.tar
74
KB
-rw-r--r--
installer.tar.gz
14.3
KB
-rw-r--r--
installer.zip
70.91
KB
-rw-r--r--
interactivity-api.tar
57.5
KB
-rw-r--r--
interactivity-api.tar.gz
13.26
KB
-rw-r--r--
interactivity-api.zip
54.55
KB
-rw-r--r--
ion.rangeSlider.min.css.rangeS...
1.05
KB
-rw-r--r--
ion.rangeSlider.min.css.tar
5
KB
-rw-r--r--
ionicons.css.css.tar.gz
8.76
KB
-rw-r--r--
ionicons.css.tar
57.5
KB
-rw-r--r--
ionicons.eot.eot.tar.gz
67.46
KB
-rw-r--r--
ionicons.eot.tar
119.5
KB
-rw-r--r--
ionicons.min.css.min.css.tar.g...
8.19
KB
-rw-r--r--
ionicons.min.css.tar
52
KB
-rw-r--r--
ionicons.svg.svg.tar.gz
100.45
KB
-rw-r--r--
ionicons.svg.tar
328
KB
-rw-r--r--
ionicons.ttf.tar
186
KB
-rw-r--r--
ionicons.ttf.ttf.tar.gz
107.36
KB
-rw-r--r--
ionicons.woff.tar
68
KB
-rw-r--r--
ionicons.woff.woff.tar.gz
65.47
KB
-rw-r--r--
it_sanctum.tar
7.63
MB
-rw-r--r--
it_sanctum.tar.gz
3.36
MB
-rw-r--r--
it_sanctum.zip
7.36
MB
-rw-r--r--
java.png.png.tar.gz
4.57
KB
-rw-r--r--
java.png.tar
6
KB
-rw-r--r--
jce.tar
285
KB
-rw-r--r--
jce.tar.gz
258.77
KB
-rw-r--r--
jce.zip
263.86
KB
-rw-r--r--
jcrop.zip
24.83
KB
-rw-r--r--
joomla.png.png.tar.gz
10.05
KB
-rw-r--r--
joomla.png.tar
12
KB
-rw-r--r--
joomla.tar
2.09
MB
-rw-r--r--
joomla.tar.gz
34.7
KB
-rw-r--r--
joomla.zip
1.86
MB
-rw-r--r--
joomla_black.png.png.tar.gz
5.04
KB
-rw-r--r--
joomla_black.png.tar
6.5
KB
-rw-r--r--
jquery-1.10.2.js.10.2.js.tar.g...
79.27
KB
-rw-r--r--
jquery-1.10.2.js.tar
268.5
KB
-rw-r--r--
jquery-1.7.2.js.7.2.js.tar.gz
32.95
KB
-rw-r--r--
jquery-1.7.2.js.tar
94.5
KB
-rw-r--r--
jquery-3.1.1.min.js.1.1.min.js...
29.5
KB
-rw-r--r--
jquery-3.1.1.min.js.tar
86.5
KB
-rw-r--r--
jquery-3.3.1.min.js.3.1.min.js...
23.63
KB
-rw-r--r--
jquery-3.3.1.min.js.tar
70
KB
-rw-r--r--
jquery.prettyPhoto.js.prettyPh...
6.23
KB
-rw-r--r--
jquery.prettyPhoto.js.tar
37.5
KB
-rw-r--r--
jquery.quicksand.js.quicksand....
3.32
KB
-rw-r--r--
jquery.quicksand.js.tar
16
KB
-rw-r--r--
jquery.tar
1.31
MB
-rw-r--r--
jquery.tar.gz
354.74
KB
-rw-r--r--
js.png.png.tar.gz
5.12
KB
-rw-r--r--
js.png.tar
7
KB
-rw-r--r--
js.tar
28.98
MB
-rw-r--r--
js.tar.gz
88.56
KB
-rw-r--r--
js.zip
28.81
MB
-rw-r--r--
jui.tar
1.93
MB
-rw-r--r--
jui.tar.gz
608.39
KB
-rw-r--r--
jui.zip
1.86
MB
-rw-r--r--
jw_allvideos.tar
8.5
KB
-rw-r--r--
jw_allvideos.tar.gz
6.89
KB
-rw-r--r--
jw_allvideos.zip
6.93
KB
-rw-r--r--
k2.tar
19.06
MB
-rw-r--r--
k2.tar.gz
12.15
MB
-rw-r--r--
k2.zip
20.62
MB
-rw-r--r--
keychain.php.php.tar.gz
2.5
KB
-rw-r--r--
keychain.php.tar
10
KB
-rw-r--r--
keys.tar
83
KB
-rw-r--r--
keys.tar.gz
24.92
KB
-rw-r--r--
keys.zip
80.85
KB
-rw-r--r--
kses.php.php.tar.gz
15.21
KB
-rw-r--r--
kses.php.tar
137
KB
-rw-r--r--
l10n.php.php.tar.gz
10.36
KB
-rw-r--r--
l10n.php.tar
123
KB
-rw-r--r--
l10n.tar
35.5
KB
-rw-r--r--
l10n.tar.gz
6.3
KB
-rw-r--r--
l10n.zip
31.37
KB
-rw-r--r--
langmetadata.xml.tar
4
KB
-rw-r--r--
langmetadata.xml.xml.tar.gz
602
B
-rw-r--r--
language.tar
4.46
MB
-rw-r--r--
language.tar.gz
712.33
KB
-rw-r--r--
language.zip
901.86
KB
-rw-r--r--
languages.tar
45.74
MB
-rw-r--r--
languages.tar.gz
10.09
MB
-rw-r--r--
languages.zip
45.4
MB
-rw-r--r--
latest-posts.tar
18
KB
-rw-r--r--
latest-posts.tar.gz
1.95
KB
-rw-r--r--
latest-posts.zip
12.74
KB
-rw-r--r--
layerslider.tar
742.5
KB
-rw-r--r--
layerslider.tar.gz
377.05
KB
-rw-r--r--
layerslider.zip
702.11
KB
-rw-r--r--
layouts.tar
576
KB
-rw-r--r--
layouts.tar.gz
64.14
KB
-rw-r--r--
layouts.zip
472.05
KB
-rw-r--r--
libraries.tar
65.01
MB
-rw-r--r--
libraries.tar.gz
3.69
MB
-rw-r--r--
libraries.zip
65.53
MB
-rw-r--r--
library.tar
2
KB
-rw-r--r--
library.tar.gz
263
B
-rw-r--r--
license.txt.tar
241
KB
-rw-r--r--
license.txt.txt.tar.gz
7.23
KB
-rw-r--r--
link-add.php.php.tar.gz
590
B
-rw-r--r--
link-add.php.tar
2.5
KB
-rw-r--r--
link-manager.php.php.tar.gz
1.88
KB
-rw-r--r--
link-manager.php.tar
6
KB
-rw-r--r--
link-parse-opml.php.php.tar.gz
1.09
KB
-rw-r--r--
link-parse-opml.php.tar
4.5
KB
-rw-r--r--
link-template.php.php.tar.gz
25.97
KB
-rw-r--r--
link-template.php.tar
154
KB
-rw-r--r--
link.php.php.tar.gz
1.15
KB
-rw-r--r--
link.php.tar
4.5
KB
-rw-r--r--
list.php.php.tar.gz
699
B
-rw-r--r--
list.php.tar
3
KB
-rw-r--r--
load-scripts.php.php.tar.gz
939
B
-rw-r--r--
load-scripts.php.tar
6.5
KB
-rw-r--r--
load-styles.php.php.tar.gz
1.14
KB
-rw-r--r--
load-styles.php.tar
8
KB
-rw-r--r--
load.php.php.tar.gz
14.85
KB
-rw-r--r--
load.php.tar
56
KB
-rw-r--r--
loader.gif.gif.tar.gz
2.23
KB
-rw-r--r--
loader.gif.tar
4
KB
-rw-r--r--
loader.php.php.tar.gz
5.63
KB
-rw-r--r--
loader.php.tar
24
KB
-rw-r--r--
locale.php.php.tar.gz
245
B
-rw-r--r--
locale.php.tar
4
KB
-rw-r--r--
location.pdf.pdf.tar.gz
475.03
KB
-rw-r--r--
location.pdf.tar
495
KB
-rw-r--r--
log.tar
82
KB
-rw-r--r--
log.tar.gz
24.81
KB
-rw-r--r--
log.zip
80.62
KB
-rw-r--r--
login.tar
101.44
MB
-rw-r--r--
login.tar.gz
45.21
MB
-rw-r--r--
login.zip
96.15
MB
-rw-r--r--
loginout.zip
1.15
KB
-rw-r--r--
logo ala maze.ai.ai.tar.gz
1.36
MB
-rw-r--r--
logo ala maze.ai.tar
1.42
MB
-rw-r--r--
logo-white.png.png.tar.gz
4.59
KB
-rw-r--r--
logo-white.png.tar
6
KB
-rw-r--r--
logo.png.png.tar.gz
92.76
KB
-rw-r--r--
logo.png.tar
211.5
KB
-rw-r--r--
logo.tar
497
KB
-rw-r--r--
logo.tar.gz
96
B
-rw-r--r--
logo.zip
493.46
KB
-rw-r--r--
logo2.png.png.tar.gz
3.13
KB
-rw-r--r--
logo2.png.tar
4.5
KB
-rw-r--r--
logo_2x.png.png.tar.gz
1.9
KB
-rw-r--r--
logo_2x.png.tar
3.5
KB
-rw-r--r--
logo_sticky.png.png.tar.gz
1.24
KB
-rw-r--r--
logo_sticky.png.tar
3
KB
-rw-r--r--
logoindex2.png.png.tar.gz
3.89
KB
-rw-r--r--
logoindex2.png.tar
10
KB
-rw-r--r--
logos.tar
1.5
KB
-rw-r--r--
logos.tar.gz
97
B
-rw-r--r--
logowhite.png.png.tar.gz
3.98
KB
-rw-r--r--
logowhite.png.tar
6
KB
-rw-r--r--
logrotation.zip
8.03
KB
-rw-r--r--
logs.tar
117.5
KB
-rw-r--r--
logs.tar.gz
25.54
KB
-rw-r--r--
logs.zip
353.88
KB
-rw-r--r--
magento.png.png.tar.gz
50.73
KB
-rw-r--r--
magento.png.tar
60.5
KB
-rw-r--r--
mailto.tar
2
KB
-rw-r--r--
mailto.tar.gz
208
B
-rw-r--r--
mailto.zip
284
B
-rw-r--r--
main-banner_old2.jpg.jpg.tar.g...
61.7
KB
-rw-r--r--
main-banner_old2.jpg.tar
95.5
KB
-rw-r--r--
main.css.css.tar.gz
2.27
KB
-rw-r--r--
main.css.tar
10.5
KB
-rw-r--r--
main.js.js.tar.gz
1.83
KB
-rw-r--r--
main.js.tar
7
KB
-rw-r--r--
main.min.css.min.css.tar.gz
1.97
KB
-rw-r--r--
main.min.css.tar
8
KB
-rw-r--r--
main.min.js.min.js.tar.gz
1.66
KB
-rw-r--r--
main.min.js.tar
6
KB
-rw-r--r--
maint.tar
9
KB
-rw-r--r--
maint.tar.gz
2.66
KB
-rw-r--r--
maint.zip
7.56
KB
-rw-r--r--
manifest.json.json.tar.gz
294
B
-rw-r--r--
manifest.json.tar
2.5
KB
-rw-r--r--
mapmarker_func.jquery.js.jquer...
317
B
-rw-r--r--
mapmarker_func.jquery.js.tar
2
KB
-rw-r--r--
maps.tar
79.5
KB
-rw-r--r--
maps.tar.gz
19.9
KB
-rw-r--r--
maps.zip
77.71
KB
-rw-r--r--
media-audiovideo.js.js.tar.gz
6.02
KB
-rw-r--r--
media-audiovideo.js.tar
28.5
KB
-rw-r--r--
media-button-2x.png.png.tar.gz
1007
B
-rw-r--r--
media-button-2x.png.tar
2.5
KB
-rw-r--r--
media-button-image.gif.gif.tar...
325
B
-rw-r--r--
media-button-image.gif.tar
2
KB
-rw-r--r--
media-button-other.gif.gif.tar...
409
B
-rw-r--r--
media-button-other.gif.tar
2
KB
-rw-r--r--
media-button.png.png.tar.gz
475
B
-rw-r--r--
media-button.png.tar
2
KB
-rw-r--r--
media-new.php.php.tar.gz
1.57
KB
-rw-r--r--
media-new.php.tar
9
KB
-rw-r--r--
media-template.php.php.tar.gz
11.15
KB
-rw-r--r--
media-template.php.tar
184.5
KB
-rw-r--r--
media-text.tar
22
KB
-rw-r--r--
media-text.tar.gz
2.2
KB
-rw-r--r--
media-text.zip
15.34
KB
-rw-r--r--
media-upload.php.php.tar.gz
1.46
KB
-rw-r--r--
media-upload.php.tar
13
KB
-rw-r--r--
media.php.php.tar.gz
36.43
KB
-rw-r--r--
media.php.tar
368.5
KB
-rw-r--r--
media.tar
76.18
MB
-rw-r--r--
media.tar.gz
16.27
MB
-rw-r--r--
media.zip
69.29
MB
-rw-r--r--
mediaelement.tar
2.19
MB
-rw-r--r--
mediaelement.tar.gz
154.85
KB
-rw-r--r--
mediaelement.zip
2.17
MB
-rw-r--r--
member.jpg.jpg.tar.gz
8.99
KB
-rw-r--r--
member.jpg.tar
11
KB
-rw-r--r--
menu-header.php.php.tar.gz
2.89
KB
-rw-r--r--
menu-header.php.tar
11.5
KB
-rw-r--r--
menu.php.php.tar.gz
4.47
KB
-rw-r--r--
menu.php.tar
18.5
KB
-rw-r--r--
menu.tar
5.5
KB
-rw-r--r--
menu.tar.gz
1.26
KB
-rw-r--r--
meta-boxes.php.php.tar.gz
12.82
KB
-rw-r--r--
meta-boxes.php.tar
185.5
KB
-rw-r--r--
meta.php.php.tar.gz
9.97
KB
-rw-r--r--
meta.php.tar
290
KB
-rw-r--r--
metismenujs.tar
77
KB
-rw-r--r--
metismenujs.tar.gz
16.01
KB
-rw-r--r--
middletv.tar
17.4
MB
-rw-r--r--
middletv.tar.gz
9.32
MB
-rw-r--r--
middletv.zip
17.23
MB
-rw-r--r--
missing.tar
2.5
KB
-rw-r--r--
missing.tar.gz
396
B
-rw-r--r--
mod_acymailing.zip
60.47
KB
-rw-r--r--
mod_articles_latest.tar
13
KB
-rw-r--r--
mod_articles_latest.tar.gz
2.95
KB
-rw-r--r--
mod_articles_latest.zip
9.55
KB
-rw-r--r--
mod_articles_news.tar
23.5
KB
-rw-r--r--
mod_articles_news.tar.gz
4.22
KB
-rw-r--r--
mod_articles_popular.zip
9.37
KB
-rw-r--r--
mod_breadcrumbs.tar
13
KB
-rw-r--r--
mod_breadcrumbs.tar.gz
2.95
KB
-rw-r--r--
mod_breadcrumbs.zip
9.32
KB
-rw-r--r--
mod_custom.tar
7
KB
-rw-r--r--
mod_custom.tar.gz
1.57
KB
-rw-r--r--
mod_custom.zip
4.06
KB
-rw-r--r--
mod_falang.tar
50.5
KB
-rw-r--r--
mod_falang.tar.gz
9.35
KB
-rw-r--r--
mod_falang.zip
44.2
KB
-rw-r--r--
mod_feed.zip
10.14
KB
-rw-r--r--
mod_finder.tar
18
KB
-rw-r--r--
mod_finder.tar.gz
4.23
KB
-rw-r--r--
mod_hikashop_filter.tar
15
KB
-rw-r--r--
mod_hikashop_filter.tar.gz
2.09
KB
-rw-r--r--
mod_k2_tools.tar
88
KB
-rw-r--r--
mod_k2_tools.tar.gz
13.73
KB
-rw-r--r--
mod_k2_tools.zip
79.47
KB
-rw-r--r--
mod_languages.tar
18.5
KB
-rw-r--r--
mod_languages.tar.gz
3.59
KB
-rw-r--r--
mod_languages.zip
14.83
KB
-rw-r--r--
mod_multilangstatus.tar
8
KB
-rw-r--r--
mod_multilangstatus.tar.gz
1.17
KB
-rw-r--r--
mod_privacy_dashboard.tar
10.5
KB
-rw-r--r--
mod_privacy_dashboard.tar.gz
2.18
KB
-rw-r--r--
mod_privacy_dashboard.zip
6.72
KB
-rw-r--r--
mod_related_items.zip
8.91
KB
-rw-r--r--
mod_search.tar
13
KB
-rw-r--r--
mod_search.tar.gz
2.86
KB
-rw-r--r--
mod_search.zip
9.7
KB
-rw-r--r--
mod_spsimpleportfolio.tar
25.5
KB
-rw-r--r--
mod_spsimpleportfolio.tar.gz
5.22
KB
-rw-r--r--
mod_sr_currency.tar
30.5
KB
-rw-r--r--
mod_sr_currency.tar.gz
3.72
KB
-rw-r--r--
mod_stats.tar
16.5
KB
-rw-r--r--
mod_stats.tar.gz
2.36
KB
-rw-r--r--
mod_stats.zip
12.43
KB
-rw-r--r--
mod_submenu.tar
7
KB
-rw-r--r--
mod_submenu.tar.gz
1.56
KB
-rw-r--r--
mod_syndicate.tar
8.5
KB
-rw-r--r--
mod_syndicate.tar.gz
1.77
KB
-rw-r--r--
mod_syndicate.zip
5.02
KB
-rw-r--r--
mod_tags_popular.zip
13.4
KB
-rw-r--r--
mod_tags_similar.tar
14
KB
-rw-r--r--
mod_tags_similar.tar.gz
3.23
KB
-rw-r--r--
mod_tags_similar.zip
11.02
KB
-rw-r--r--
mod_users_latest.tar
9
KB
-rw-r--r--
mod_users_latest.tar.gz
2.01
KB
-rw-r--r--
mod_users_latest.zip
5.81
KB
-rw-r--r--
mod_wrapper.tar
11
KB
-rw-r--r--
mod_wrapper.tar.gz
2.21
KB
-rw-r--r--
mod_wrapper.zip
7.83
KB
-rw-r--r--
modal.zip
17.12
KB
-rw-r--r--
models.tar
6.5
KB
-rw-r--r--
models.tar.gz
1.57
KB
-rw-r--r--
moderation.php.php.tar.gz
303
B
-rw-r--r--
moderation.php.tar
2
KB
-rw-r--r--
modules.tar
2.56
MB
-rw-r--r--
modules.tar.gz
87.17
KB
-rw-r--r--
modules.zip
3.04
MB
-rw-r--r--
more.zip
4.38
KB
-rw-r--r--
ms-admin.php.php.tar.gz
263
B
-rw-r--r--
ms-admin.php.tar
2
KB
-rw-r--r--
ms-blogs.php.php.tar.gz
6.12
KB
-rw-r--r--
ms-blogs.php.tar
27
KB
-rw-r--r--
ms-default-constants.php.php.t...
1.66
KB
-rw-r--r--
ms-default-constants.php.tar
23
KB
-rw-r--r--
ms-default-filters.php.php.tar...
1.8
KB
-rw-r--r--
ms-default-filters.php.tar
27.5
KB
-rw-r--r--
ms-delete-site.php.php.tar.gz
1.87
KB
-rw-r--r--
ms-delete-site.php.tar
11
KB
-rw-r--r--
ms-deprecated.php.php.tar.gz
6.25
KB
-rw-r--r--
ms-deprecated.php.tar
23
KB
-rw-r--r--
ms-edit.php.php.tar.gz
280
B
-rw-r--r--
ms-edit.php.tar
3
KB
-rw-r--r--
ms-files.php.php.tar.gz
1.22
KB
-rw-r--r--
ms-files.php.tar
8
KB
-rw-r--r--
ms-functions.php.php.tar.gz
19.22
KB
-rw-r--r--
ms-functions.php.tar
91
KB
-rw-r--r--
ms-icon-144x144.png.png.tar.gz
14.3
KB
-rw-r--r--
ms-icon-144x144.png.tar
16
KB
-rw-r--r--
ms-icon-150x150.png.png.tar.gz
14.94
KB
-rw-r--r--
ms-icon-150x150.png.tar
16.5
KB
-rw-r--r--
ms-icon-310x310.png.png.tar.gz
43.67
KB
-rw-r--r--
ms-icon-310x310.png.tar
45.5
KB
-rw-r--r--
ms-icon-70x70.png.png.tar.gz
5.71
KB
-rw-r--r--
ms-icon-70x70.png.tar
7.5
KB
-rw-r--r--
ms-load.php.php.tar.gz
6.03
KB
-rw-r--r--
ms-load.php.tar
40.5
KB
-rw-r--r--
ms-network.php.php.tar.gz
1.47
KB
-rw-r--r--
ms-network.php.tar
10
KB
-rw-r--r--
ms-options.php.php.tar.gz
282
B
-rw-r--r--
ms-options.php.tar
2
KB
-rw-r--r--
ms-settings.php.php.tar.gz
1.62
KB
-rw-r--r--
ms-settings.php.tar
11
KB
-rw-r--r--
ms-site.php.php.tar.gz
9.44
KB
-rw-r--r--
ms-site.php.tar
41
KB
-rw-r--r--
ms-sites.php.php.tar.gz
273
B
-rw-r--r--
ms-sites.php.tar
3
KB
-rw-r--r--
ms-upgrade-network.php.php.tar...
281
B
-rw-r--r--
ms-upgrade-network.php.tar
2
KB
-rw-r--r--
ms-users.php.php.tar.gz
274
B
-rw-r--r--
ms-users.php.tar
3
KB
-rw-r--r--
mu-plugins.tar
2.5
KB
-rw-r--r--
mu-plugins.tar.gz
393
B
-rw-r--r--
mu-plugins.zip
791
B
-rw-r--r--
my-music.online.tar
636.9
MB
-rw-r--r--
my-music.online.tar.gz
20
B
-rw-r--r--
my-sites.php.php.tar.gz
2.04
KB
-rw-r--r--
my-sites.php.tar
6.5
KB
-rw-r--r--
mymusicpromo-online.zip
53.39
MB
-rw-r--r--
mysql.png.png.tar.gz
4.7
KB
-rw-r--r--
mysql.png.tar
7
KB
-rw-r--r--
nav-menu-template.php.php.tar....
6.24
KB
-rw-r--r--
nav-menu-template.php.tar
76.5
KB
-rw-r--r--
nav-menu.php.php.tar.gz
9.58
KB
-rw-r--r--
nav-menu.php.tar
45
KB
-rw-r--r--
nav-menus.php.php.tar.gz
10.56
KB
-rw-r--r--
nav-menus.php.tar
50
KB
-rw-r--r--
navigation-link.tar
19.5
KB
-rw-r--r--
navigation-link.tar.gz
1.97
KB
-rw-r--r--
navigation-submenu.zip
9.26
KB
-rw-r--r--
navigation.zip
131.13
KB
-rw-r--r--
network.php.php.tar.gz
2.23
KB
-rw-r--r--
network.php.tar
7
KB
-rw-r--r--
network.tar
145.5
KB
-rw-r--r--
network.tar.gz
27.6
KB
-rw-r--r--
network.zip
127.06
KB
-rw-r--r--
networks.php.php.tar.gz
1.07
KB
-rw-r--r--
networks.php.tar
3.5
KB
-rw-r--r--
newsletter.php.php.tar.gz
1.39
KB
-rw-r--r--
newsletter.php.tar
4
KB
-rw-r--r--
nl-NL.tar
354.5
KB
-rw-r--r--
nl-NL.tar.gz
79.1
KB
-rw-r--r--
nl-NL.zip
304
KB
-rw-r--r--
node.png.png.tar.gz
51.8
KB
-rw-r--r--
node.png.tar
57.5
KB
-rw-r--r--
node2.png.png.tar.gz
26.86
KB
-rw-r--r--
node2.png.tar
32
KB
-rw-r--r--
odfiafrica.jpg.jpg.tar.gz
384.95
KB
-rw-r--r--
odfiafrica.jpg.tar
417
KB
-rw-r--r--
onepage-slider.html.html.tar.g...
6.99
KB
-rw-r--r--
onepage-slider.html.tar
42.5
KB
-rw-r--r--
onepage-text.html.html.tar.gz
6.9
KB
-rw-r--r--
onepage-text.html.tar
42
KB
-rw-r--r--
option.php.php.tar.gz
13.11
KB
-rw-r--r--
option.php.tar
532.5
KB
-rw-r--r--
options-discussion.php.php.tar...
4.27
KB
-rw-r--r--
options-discussion.php.tar
82
KB
-rw-r--r--
options-general.php.php.tar.gz
6.41
KB
-rw-r--r--
options-general.php.tar
83
KB
-rw-r--r--
options-head.php.php.tar.gz
464
B
-rw-r--r--
options-head.php.tar
2.5
KB
-rw-r--r--
options-permalink.php.php.tar....
5.59
KB
-rw-r--r--
options-permalink.php.tar
88.5
KB
-rw-r--r--
options-privacy.php.php.tar.gz
2.71
KB
-rw-r--r--
options-privacy.php.tar
41
KB
-rw-r--r--
options-reading.php.php.tar.gz
3.1
KB
-rw-r--r--
options-reading.php.tar
12
KB
-rw-r--r--
options-writing.php.php.tar.gz
3.05
KB
-rw-r--r--
options-writing.php.tar
21
KB
-rw-r--r--
options.php.php.tar.gz
4.51
KB
-rw-r--r--
options.php.tar
56.5
KB
-rw-r--r--
overrider.tar
12.5
KB
-rw-r--r--
overrider.tar.gz
2.86
KB
-rw-r--r--
overrider.zip
9.83
KB
-rw-r--r--
overrides.tar
3
KB
-rw-r--r--
overrides.tar.gz
269
B
-rw-r--r--
overrides.zip
512
B
-rw-r--r--
owl.carousel.js.carousel.js.ta...
17.24
KB
-rw-r--r--
owl.carousel.js.tar
79
KB
-rw-r--r--
owl.carousel.min.js.carousel.m...
10.39
KB
-rw-r--r--
owl.carousel.min.js.tar
89
KB
-rw-r--r--
p1.jpg.jpg.tar.gz
237.02
KB
-rw-r--r--
p1.jpg.tar
243.5
KB
-rw-r--r--
p2.jpg.jpg.tar.gz
283.15
KB
-rw-r--r--
p2.jpg.tar
285
KB
-rw-r--r--
p3.jpg.jpg.tar.gz
287.59
KB
-rw-r--r--
p3.jpg.tar
289.5
KB
-rw-r--r--
p4.jpg.jpg.tar.gz
394.73
KB
-rw-r--r--
p4.jpg.tar
396.5
KB
-rw-r--r--
p5.jpg.jpg.tar.gz
177.65
KB
-rw-r--r--
p5.jpg.tar
181
KB
-rw-r--r--
p6.jpg.jpg.tar.gz
601.57
KB
-rw-r--r--
p6.jpg.tar
603
KB
-rw-r--r--
packageinstaller.zip
11.38
KB
-rw-r--r--
page-list-item.tar
3
KB
-rw-r--r--
page-list-item.tar.gz
576
B
-rw-r--r--
page-list.tar
15
KB
-rw-r--r--
page-list.tar.gz
1.39
KB
-rw-r--r--
pagebuilder.tar
6.09
MB
-rw-r--r--
pagebuilder.tar.gz
5.84
MB
-rw-r--r--
paralax-index1_old.jpg.jpg.tar...
794.32
KB
-rw-r--r--
paralax-index1_old.jpg.tar
807.5
KB
-rw-r--r--
particles.min.js.min.js.tar.gz
5.91
KB
-rw-r--r--
particles.min.js.tar
24.5
KB
-rw-r--r--
pattern.png.png.tar.gz
2.75
KB
-rw-r--r--
pattern.png.tar
4.5
KB
-rw-r--r--
pattern.svg.svg.tar.gz
17.24
KB
-rw-r--r--
pattern.svg.tar
53
KB
-rw-r--r--
pattern.zip
478
B
-rw-r--r--
payeer_1314567119.txt.tar
2
KB
-rw-r--r--
payeer_1314567119.txt.txt.tar....
128
B
-rw-r--r--
payments.png.png.tar.gz
10.04
KB
-rw-r--r--
payments.png.tar
11.5
KB
-rw-r--r--
payments_2x.png.png.tar.gz
31.26
KB
-rw-r--r--
payments_2x.png.tar
33
KB
-rw-r--r--
paypal_bt.png.png.tar.gz
13.5
KB
-rw-r--r--
paypal_bt.png.tar
15
KB
-rw-r--r--
paypaladvanced_2_6279148dd013c...
334
B
-rw-r--r--
paypaladvanced_2_6279148dd013c...
2.5
KB
-rw-r--r--
paypaladvanced_cancel_2.php.ph...
316
B
-rw-r--r--
paypaladvanced_cancel_2.php.ta...
2.5
KB
-rw-r--r--
paypaladvanced_return_2.php.ph...
316
B
-rw-r--r--
paypaladvanced_return_2.php.ta...
2.5
KB
-rw-r--r--
php-compat.tar
3
KB
-rw-r--r--
php-compat.tar.gz
649
B
-rw-r--r--
php-compat.zip
1.38
KB
-rw-r--r--
php-encryption.tar
26
KB
-rw-r--r--
php-encryption.tar.gz
6.52
KB
-rw-r--r--
php-encryption.zip
24.3
KB
-rw-r--r--
php.ini.ini.tar.gz
244
B
-rw-r--r--
php.ini.tar
3
KB
-rw-r--r--
php.png.png.tar.gz
4.91
KB
-rw-r--r--
php.png.tar
6.5
KB
-rw-r--r--
php_mail.log.log.tar.gz
6.45
KB
-rw-r--r--
php_mail.log.tar
100.5
KB
-rw-r--r--
pickapp.tar
83.5
KB
-rw-r--r--
pickapp.tar.gz
25.16
KB
-rw-r--r--
plg_installer_webinstaller.tar
34.5
KB
-rw-r--r--
plg_installer_webinstaller.tar...
6.53
KB
-rw-r--r--
plg_installer_webinstaller.zip
31.15
KB
-rw-r--r--
plg_media-action_crop.tar
19
KB
-rw-r--r--
plg_media-action_crop.tar.gz
4.14
KB
-rw-r--r--
plg_media-action_crop.zip
14.32
KB
-rw-r--r--
plg_media-action_resize.tar
15
KB
-rw-r--r--
plg_media-action_resize.tar.gz
3.31
KB
-rw-r--r--
plg_media-action_resize.zip
10.3
KB
-rw-r--r--
plg_media-action_rotate.tar
17
KB
-rw-r--r--
plg_media-action_rotate.tar.gz
3.98
KB
-rw-r--r--
plg_media-action_rotate.zip
12.17
KB
-rw-r--r--
plg_quickicon_extensionupdate....
3.5
KB
-rw-r--r--
plg_quickicon_extensionupdate....
791
B
-rw-r--r--
plg_quickicon_extensionupdate....
7.69
KB
-rw-r--r--
plg_quickicon_joomlaupdate.tar
4
KB
-rw-r--r--
plg_quickicon_joomlaupdate.tar...
890
B
-rw-r--r--
plg_quickicon_privacycheck.tar
3.5
KB
-rw-r--r--
plg_quickicon_privacycheck.tar...
860
B
-rw-r--r--
plg_quickicon_privacycheck.zip
2.12
KB
-rw-r--r--
plg_solidres_limitbooking.tar
6
KB
-rw-r--r--
plg_solidres_limitbooking.tar....
1.18
KB
-rw-r--r--
plg_system_highlight.tar
2
KB
-rw-r--r--
plg_system_highlight.tar.gz
166
B
-rw-r--r--
plg_system_highlight.zip
241
B
-rw-r--r--
plg_system_stats.tar
4
KB
-rw-r--r--
plg_system_stats.tar.gz
841
B
-rw-r--r--
plg_system_stats.zip
2.31
KB
-rw-r--r--
plg_twofactorauth_totp.tar
117
KB
-rw-r--r--
plg_twofactorauth_totp.tar.gz
49.11
KB
-rw-r--r--
plg_twofactorauth_totp.zip
113.39
KB
-rw-r--r--
pluggable-deprecated.php.php.t...
1.97
KB
-rw-r--r--
pluggable-deprecated.php.tar
8
KB
-rw-r--r--
pluggable.php.php.tar.gz
23.38
KB
-rw-r--r--
pluggable.php.tar
213
KB
-rw-r--r--
plugin-editor.php.php.tar.gz
4.7
KB
-rw-r--r--
plugin-editor.php.tar
15
KB
-rw-r--r--
plugin-install.php.php.tar.gz
2.64
KB
-rw-r--r--
plugin-install.php.tar
30
KB
-rw-r--r--
plugin.php.php.tar.gz
7.14
KB
-rw-r--r--
plugin.php.tar
36.5
KB
-rw-r--r--
plugin.tar
366
KB
-rw-r--r--
plugin.tar.gz
90.03
KB
-rw-r--r--
plugins.php.php.tar.gz
1.08
KB
-rw-r--r--
plugins.php.tar
86
KB
-rw-r--r--
plugins.tar
239.95
MB
-rw-r--r--
plugins.tar.gz
1.59
MB
-rw-r--r--
plugins.zip
715.26
MB
-rw-r--r--
plugins1.tar
9.22
MB
-rw-r--r--
plugins1.tar.gz
4.62
MB
-rw-r--r--
plugins1.zip
9.2
MB
-rw-r--r--
plupload.tar
486.5
KB
-rw-r--r--
plupload.tar.gz
134.75
KB
-rw-r--r--
pomo.tar
59
KB
-rw-r--r--
pomo.tar.gz
11.77
KB
-rw-r--r--
pomo.zip
54
KB
-rw-r--r--
popper.min.js.min.js.tar.gz
7.4
KB
-rw-r--r--
popper.min.js.tar
22.5
KB
-rw-r--r--
popup_img.jpg.jpg.tar.gz
17.31
KB
-rw-r--r--
popup_img.jpg.tar
19
KB
-rw-r--r--
portfolio.html.html.tar.gz
3.03
KB
-rw-r--r--
portfolio.html.tar
17.5
KB
-rw-r--r--
post-comments-form.zip
10.75
KB
-rw-r--r--
post-content.zip
2.05
KB
-rw-r--r--
post-excerpt.php.php.tar.gz
1.45
KB
-rw-r--r--
post-excerpt.php.tar
5
KB
-rw-r--r--
post-excerpt.tar
11
KB
-rw-r--r--
post-excerpt.tar.gz
919
B
-rw-r--r--
post-formats.php.php.tar.gz
1.97
KB
-rw-r--r--
post-formats.php.tar
16
KB
-rw-r--r--
post-new.php.php.tar.gz
1.13
KB
-rw-r--r--
post-new.php.tar
15
KB
-rw-r--r--
post-template.php.php.tar.gz
15.54
KB
-rw-r--r--
post-template.php.tar
67
KB
-rw-r--r--
post-template.tar
16
KB
-rw-r--r--
post-template.tar.gz
1.44
KB
-rw-r--r--
post-template.zip
9.12
KB
-rw-r--r--
post-thumbnail-template.php.ph...
2.5
KB
-rw-r--r--
post-thumbnail-template.php.ta...
33.5
KB
-rw-r--r--
post.php.php.tar.gz
3.01
KB
-rw-r--r--
post.php.tar
1.12
MB
-rw-r--r--
postnews.php.php.tar.gz
2.34
KB
-rw-r--r--
postnews.php.tar
4
KB
-rw-r--r--
posts.tar
1.41
MB
-rw-r--r--
posts.tar.gz
1.36
MB
-rw-r--r--
posts.zip
1.4
MB
-rw-r--r--
powered_by.png.png.tar.gz
2.3
KB
-rw-r--r--
powered_by.png.tar
8
KB
-rw-r--r--
premium-addons-elementor.tar
69.5
KB
-rw-r--r--
premium-addons-elementor.tar.g...
8.32
KB
-rw-r--r--
premium-addons-elementor.zip
90.58
KB
-rw-r--r--
press-this.php.php.tar.gz
1.07
KB
-rw-r--r--
press-this.php.tar
7
KB
-rw-r--r--
prestashop.png.png.tar.gz
9.5
KB
-rw-r--r--
prestashop.png.tar
11
KB
-rw-r--r--
prev-blue.png.png.tar.gz
3.8
KB
-rw-r--r--
prev-blue.png.tar
5.5
KB
-rw-r--r--
prev-dark.png.png.tar.gz
3.78
KB
-rw-r--r--
prev-dark.png.tar
5.5
KB
-rw-r--r--
prev-green.png.png.tar.gz
3.88
KB
-rw-r--r--
prev-green.png.tar
5.5
KB
-rw-r--r--
prev-orange.png.png.tar.gz
3.87
KB
-rw-r--r--
prev-orange.png.tar
5.5
KB
-rw-r--r--
prev.png.png.tar.gz
3.88
KB
-rw-r--r--
prev.png.tar
10
KB
-rw-r--r--
preview.html.html.tar.gz
1.56
KB
-rw-r--r--
preview.html.tar
8.5
KB
-rw-r--r--
pricing.html.html.tar.gz
3.05
KB
-rw-r--r--
pricing.html.tar
14.5
KB
-rw-r--r--
privacy-policy-guide.php.php.t...
1.52
KB
-rw-r--r--
privacy-policy-guide.php.tar
19
KB
-rw-r--r--
privacy.php.php.tar.gz
1.12
KB
-rw-r--r--
privacy.php.tar
14.5
KB
-rw-r--r--
privacy.tar
62
KB
-rw-r--r--
privacy.tar.gz
7.92
KB
-rw-r--r--
privacy.zip
49.12
KB
-rw-r--r--
privacyconsent.tar
32
KB
-rw-r--r--
privacyconsent.tar.gz
7.52
KB
-rw-r--r--
privacyconsent.zip
28.66
KB
-rw-r--r--
product_edit_dimensions.php.ph...
1.11
KB
-rw-r--r--
product_edit_dimensions.php.ta...
5
KB
-rw-r--r--
profile.php.php.tar.gz
314
B
-rw-r--r--
profile.php.tar
4
KB
-rw-r--r--
promo_bg.jpg.jpg.tar.gz
7.8
KB
-rw-r--r--
promo_bg.jpg.tar
19
KB
-rw-r--r--
promotions.tar
16
KB
-rw-r--r--
promotions.tar.gz
2.24
KB
-rw-r--r--
promotions.zip
10.77
KB
-rw-r--r--
protostar.tar
430.5
KB
-rw-r--r--
protostar.tar.gz
213.28
KB
-rw-r--r--
protostar.zip
408.12
KB
-rw-r--r--
providers.zip
17.7
KB
-rw-r--r--
ptitsanes.jpg.jpg.tar.gz
207.01
KB
-rw-r--r--
ptitsanes.jpg.tar
234.5
KB
-rw-r--r--
ptitsanes.png.png.tar.gz
1.09
MB
-rw-r--r--
ptitsanes.png.tar
1.11
MB
-rw-r--r--
pullquote.tar
19.5
KB
-rw-r--r--
pullquote.tar.gz
1.48
KB
-rw-r--r--
pullquote.zip
18.03
KB
-rw-r--r--
pwnkit
0
B
-rwxr-xr-x
python.png.png.tar.gz
9.74
KB
-rw-r--r--
python.png.tar
12
KB
-rw-r--r--
q1.php.php.tar.gz
740
B
-rw-r--r--
q1.php.tar
8
KB
-rw-r--r--
qlf.txt.tar
2
KB
-rw-r--r--
qlf.txt.txt.tar.gz
120
B
-rw-r--r--
quaadra.tar
3.29
MB
-rw-r--r--
quaadra.tar.gz
2.6
MB
-rw-r--r--
query-no-results.tar
2.5
KB
-rw-r--r--
query-no-results.tar.gz
500
B
-rw-r--r--
query-pagination-next.zip
1.17
KB
-rw-r--r--
query.php.php.tar.gz
4.82
KB
-rw-r--r--
query.php.tar
183.5
KB
-rw-r--r--
query.zip
14.91
KB
-rw-r--r--
quickicon.tar
87
KB
-rw-r--r--
quickicon.tar.gz
10.07
KB
-rw-r--r--
quickicon.zip
69.9
KB
-rw-r--r--
quote.zip
7.6
KB
-rw-r--r--
readme.html.html.tar.gz
3.03
KB
-rw-r--r--
readme.html.tar
28
KB
-rw-r--r--
readme.txt.tar
6.5
KB
-rw-r--r--
readme.txt.txt.tar.gz
2.08
KB
-rw-r--r--
realex_hpp_api.tar
271.5
KB
-rw-r--r--
realex_hpp_api.tar.gz
53.14
KB
-rw-r--r--
registration-functions.php.php...
273
B
-rw-r--r--
registration-functions.php.tar
3
KB
-rw-r--r--
registration.php.php.tar.gz
266
B
-rw-r--r--
registration.php.tar
3
KB
-rw-r--r--
remember.tar
7.5
KB
-rw-r--r--
remember.tar.gz
1.93
KB
-rw-r--r--
remember.zip
4.68
KB
-rw-r--r--
rest-api.php.php.tar.gz
20.51
KB
-rw-r--r--
rest-api.php.tar
98
KB
-rw-r--r--
rest-api.tar
997
KB
-rw-r--r--
rest-api.tar.gz
168.1
KB
-rw-r--r--
rest-api.zip
965.07
KB
-rw-r--r--
retina-replace.js.js.tar.gz
1.39
KB
-rw-r--r--
retina-replace.js.tar
5
KB
-rw-r--r--
retina-replace.min.js.min.js.t...
1.08
KB
-rw-r--r--
retina-replace.min.js.tar
4
KB
-rw-r--r--
revision.php.php.tar.gz
2.11
KB
-rw-r--r--
revision.php.tar
38.5
KB
-rw-r--r--
rewrite.php.php.tar.gz
5.84
KB
-rw-r--r--
rewrite.php.tar
21
KB
-rw-r--r--
ribbon.png.png.tar.gz
12.26
KB
-rw-r--r--
ribbon.png.tar
14
KB
-rw-r--r--
rick.jpg.jpg.tar.gz
105.81
KB
-rw-r--r--
rick.jpg.tar
112.5
KB
-rw-r--r--
robots-template.php.php.tar.gz
1.31
KB
-rw-r--r--
robots-template.php.tar
13
KB
-rw-r--r--
robots.txt.dist.tar
8.5
KB
-rw-r--r--
robots.txt.dist.txt.dist.tar.g...
492
B
-rw-r--r--
robots.txt.tar
10
KB
-rw-r--r--
robots.txt.txt.tar.gz
213
B
-rw-r--r--
router.php.php.tar.gz
3.1
KB
-rw-r--r--
router.php.tar
16.5
KB
-rw-r--r--
royalkarukera.jpg.jpg.tar.gz
295.82
KB
-rw-r--r--
royalkarukera.jpg.tar
330.5
KB
-rw-r--r--
royalkarukera.png.png.tar.gz
1.45
MB
-rw-r--r--
royalkarukera.png.tar
1.48
MB
-rw-r--r--
royalkarukera.tar
165.02
MB
-rw-r--r--
royalkarukera.tar.gz
70.64
MB
-rw-r--r--
royalkarukerda.jpg.jpg.tar.gz
292.85
KB
-rw-r--r--
royalkarukerda.jpg.tar
326
KB
-rw-r--r--
rss-functions.php.php.tar.gz
312
B
-rw-r--r--
rss-functions.php.tar
2
KB
-rw-r--r--
rss.php.php.tar.gz
6.66
KB
-rw-r--r--
rss.php.tar
48
KB
-rw-r--r--
s1.PNG.PNG.tar.gz
1003.13
KB
-rw-r--r--
s1.PNG.tar
1005
KB
-rw-r--r--
s2.PNG.PNG.tar.gz
409.52
KB
-rw-r--r--
s2.PNG.tar
415
KB
-rw-r--r--
s3.PNG.PNG.tar.gz
753.06
KB
-rw-r--r--
s3.PNG.tar
757
KB
-rw-r--r--
s4.PNG.PNG.tar.gz
674.01
KB
-rw-r--r--
s4.PNG.tar
682.5
KB
-rw-r--r--
sampledata.tar
577
KB
-rw-r--r--
sampledata.tar.gz
5.79
KB
-rw-r--r--
sampledata.zip
1.18
MB
-rw-r--r--
script-loader.php.php.tar.gz
30.55
KB
-rw-r--r--
script-loader.php.tar
529
KB
-rw-r--r--
script-modules.php.php.tar.gz
1.16
KB
-rw-r--r--
script-modules.php.tar
7.5
KB
-rw-r--r--
script.js.js.tar.gz
739
B
-rw-r--r--
script.js.tar
3
KB
-rw-r--r--
scss.tar
143.5
KB
-rw-r--r--
scss.tar.gz
33.94
KB
-rw-r--r--
scss.zip
128.81
KB
-rw-r--r--
search.php.php.tar.gz
870
B
-rw-r--r--
search.php.tar
3
KB
-rw-r--r--
search.tar
57
KB
-rw-r--r--
search.tar.gz
7.01
KB
-rw-r--r--
search.zip
83.69
KB
-rw-r--r--
searchtools.zip
10.7
KB
-rw-r--r--
semantic.css.css.tar.gz
112.76
KB
-rw-r--r--
semantic.css.tar
735
KB
-rw-r--r--
semantic.js.js.tar.gz
113.67
KB
-rw-r--r--
semantic.js.tar
713
KB
-rw-r--r--
semantic.min.js.min.js.tar.gz
67.58
KB
-rw-r--r--
semantic.min.js.tar
270.5
KB
-rw-r--r--
sendmail.php.php.tar.gz
568
B
-rw-r--r--
sendmail.php.tar
2.5
KB
-rw-r--r--
service.html.html.tar.gz
3.74
KB
-rw-r--r--
service.html.tar
20.5
KB
-rw-r--r--
services.html.html.tar.gz
3.59
KB
-rw-r--r--
services.html.tar
16.5
KB
-rw-r--r--
session.php.php.tar.gz
277
B
-rw-r--r--
session.php.tar
3
KB
-rw-r--r--
sessionGc.php.php.tar.gz
768
B
-rw-r--r--
sessionGc.php.tar
7
KB
-rw-r--r--
sessionMetadataGc.php.php.tar....
866
B
-rw-r--r--
sessionMetadataGc.php.tar
3
KB
-rw-r--r--
setup-config.php.php.tar.gz
5.72
KB
-rw-r--r--
setup-config.php.tar
19
KB
-rw-r--r--
shape.png.png.tar.gz
1.48
KB
-rw-r--r--
shape.png.tar
3.5
KB
-rw-r--r--
shopify.png.png.tar.gz
231.5
KB
-rw-r--r--
shopify.png.tar
313.5
KB
-rw-r--r--
shortcode.tar
8
KB
-rw-r--r--
shortcode.tar.gz
803
B
-rw-r--r--
shortcodes.php.php.tar.gz
5.99
KB
-rw-r--r--
shortcodes.php.tar
46.5
KB
-rw-r--r--
showdemo.html.html.tar.gz
701
B
-rw-r--r--
showdemo.html.tar
3
KB
-rw-r--r--
single-post.html.html.tar.gz
3.59
KB
-rw-r--r--
single-post.html.tar
17.5
KB
-rw-r--r--
site-health-info.php.php.tar.g...
1.66
KB
-rw-r--r--
site-health-info.php.tar
5.5
KB
-rw-r--r--
site-health.php.php.tar.gz
3.56
KB
-rw-r--r--
site-health.php.tar
23
KB
-rw-r--r--
site-tagline.tar
7
KB
-rw-r--r--
site-tagline.tar.gz
815
B
-rw-r--r--
site-title.zip
3.47
KB
-rw-r--r--
sitemap.xml.tar
4.5
KB
-rw-r--r--
sitemap.xml.xml.tar.gz
588
B
-rw-r--r--
sitemaps.php.php.tar.gz
1.15
KB
-rw-r--r--
sitemaps.php.tar
5
KB
-rw-r--r--
sitemaps.tar
51
KB
-rw-r--r--
sitemaps.tar.gz
9.32
KB
-rw-r--r--
sitemaps.zip
45.39
KB
-rw-r--r--
skycons.js.js.tar.gz
4.57
KB
-rw-r--r--
skycons.js.tar
20.5
KB
-rw-r--r--
slides.tar
44.5
KB
-rw-r--r--
slides.tar.gz
8.34
KB
-rw-r--r--
slides.zip
41.88
KB
-rw-r--r--
snap.svg-min.js.svg-min.js.tar...
25.04
KB
-rw-r--r--
snap.svg-min.js.tar
73
KB
-rw-r--r--
social-links.zip
58.67
KB
-rw-r--r--
sodium_compat.tar
1.34
MB
-rw-r--r--
sodium_compat.tar.gz
217.7
KB
-rw-r--r--
sodium_compat.zip
1.28
MB
-rw-r--r--
solidres.zip
17.18
KB
-rw-r--r--
sound.tar
62.5
KB
-rw-r--r--
sound.tar.gz
59.95
KB
-rw-r--r--
sound.zip
60.97
KB
-rw-r--r--
spl-autoload-compat.php.php.ta...
412
B
-rw-r--r--
spl-autoload-compat.php.tar
4
KB
-rw-r--r--
spreadsheet.png.png.tar.gz
2.56
KB
-rw-r--r--
spreadsheet.png.tar
4
KB
-rw-r--r--
sprite-skin-flat.png.png.tar.g...
622
B
-rw-r--r--
sprite-skin-flat.png.tar
2.5
KB
-rw-r--r--
sprite.png.png.tar.gz
2.54
KB
-rw-r--r--
sprite.png.tar
4.5
KB
-rw-r--r--
src.tar
3.39
MB
-rw-r--r--
src.tar.gz
657.16
KB
-rw-r--r--
src.zip
3.12
MB
-rw-r--r--
ssl.tar
247.5
KB
-rw-r--r--
ssl.tar.gz
73.73
KB
-rw-r--r--
ssl.zip
243.2
KB
-rw-r--r--
stars.png.png.tar.gz
1.07
KB
-rw-r--r--
stars.png.tar
5
KB
-rw-r--r--
starter-license-W3Layouts.txt....
4
KB
-rw-r--r--
starter-license-W3Layouts.txt....
463
B
-rw-r--r--
stats.tar
31
KB
-rw-r--r--
stats.tar.gz
5.84
KB
-rw-r--r--
stats.zip
25.17
KB
-rw-r--r--
status.php.php.tar.gz
214
B
-rw-r--r--
status.php.tar
2
KB
-rw-r--r--
stories.tar
301
KB
-rw-r--r--
stories.tar.gz
241.65
KB
-rw-r--r--
stories.zip
8.1
MB
-rw-r--r--
stream-xchacha20.php.php.tar.g...
443
B
-rw-r--r--
stream-xchacha20.php.tar
3.5
KB
-rw-r--r--
streams.php.php.tar.gz
1.88
KB
-rw-r--r--
streams.php.tar
18
KB
-rw-r--r--
style-engine.php.php.tar.gz
2.08
KB
-rw-r--r--
style-engine.php.tar
25
KB
-rw-r--r--
style-engine.tar
52.5
KB
-rw-r--r--
style-engine.tar.gz
8.32
KB
-rw-r--r--
style-engine.zip
48.17
KB
-rw-r--r--
style-starter.css.css.tar.gz
44.05
KB
-rw-r--r--
style-starter.css.tar
307.5
KB
-rw-r--r--
style.css.css.tar.gz
5.02
KB
-rw-r--r--
style.css.tar
27
KB
-rw-r--r--
success.php.php.tar.gz
216
B
-rw-r--r--
success.php.tar
2
KB
-rw-r--r--
sulycast-theme.jpg.jpg.tar.gz
318.57
KB
-rw-r--r--
sulycast-theme.jpg.tar
350.5
KB
-rw-r--r--
svg.tar
16.5
KB
-rw-r--r--
svg.tar.gz
1.55
KB
-rw-r--r--
svg.zip
8.96
KB
-rw-r--r--
swfupload.zip
9.07
KB
-rw-r--r--
system.tar
14.56
MB
-rw-r--r--
system.tar.gz
3.55
MB
-rw-r--r--
system.zip
13.86
MB
-rw-r--r--
tab1.jpg.jpg.tar.gz
32.33
KB
-rw-r--r--
tab1.jpg.tar
34
KB
-rw-r--r--
tab2.jpg.jpg.tar.gz
41.76
KB
-rw-r--r--
tab2.jpg.tar
43.5
KB
-rw-r--r--
tab3.jpg.jpg.tar.gz
21.48
KB
-rw-r--r--
tab3.jpg.tar
23
KB
-rw-r--r--
taegesiy.php.php.tar.gz
529
B
-rw-r--r--
taegesiy.php.tar
2.5
KB
-rw-r--r--
tag-cloud.tar
9
KB
-rw-r--r--
tag-cloud.tar.gz
1.01
KB
-rw-r--r--
taxonomy.php.php.tar.gz
35.83
KB
-rw-r--r--
taxonomy.php.tar
501
KB
-rw-r--r--
team.html.html.tar.gz
3.06
KB
-rw-r--r--
team.html.tar
15
KB
-rw-r--r--
team.tar
17
KB
-rw-r--r--
team.tar.gz
2.35
KB
-rw-r--r--
team.zip
14.47
KB
-rw-r--r--
team1.jpg.jpg.tar.gz
9.58
KB
-rw-r--r--
team1.jpg.tar
11
KB
-rw-r--r--
team2.jpg.jpg.tar.gz
17.5
KB
-rw-r--r--
team2.jpg.tar
19
KB
-rw-r--r--
team3.jpg.jpg.tar.gz
18.38
KB
-rw-r--r--
team3.jpg.tar
20
KB
-rw-r--r--
template-canvas.php.php.tar.gz
438
B
-rw-r--r--
template-canvas.php.tar
2.5
KB
-rw-r--r--
template-loader.php.php.tar.gz
1.08
KB
-rw-r--r--
template-loader.php.tar
8
KB
-rw-r--r--
template.php.php.tar.gz
4.34
KB
-rw-r--r--
template.php.tar
49
KB
-rw-r--r--
templates.tar
30.33
MB
-rw-r--r--
templates.tar.gz
3.86
MB
-rw-r--r--
templates.zip
20.71
MB
-rw-r--r--
term.php.php.tar.gz
1.05
KB
-rw-r--r--
term.php.tar
13
KB
-rw-r--r--
text-columns.zip
4.2
KB
-rw-r--r--
theme-compat.tar
22.5
KB
-rw-r--r--
theme-compat.tar.gz
4.37
KB
-rw-r--r--
theme-i18n.json.json.tar.gz
501
B
-rw-r--r--
theme-i18n.json.tar
3
KB
-rw-r--r--
theme-install.php.php.tar.gz
5.7
KB
-rw-r--r--
theme-install.php.tar
49
KB
-rw-r--r--
theme-previews.php.php.tar.gz
1.22
KB
-rw-r--r--
theme-previews.php.tar
4.5
KB
-rw-r--r--
theme.json.json.tar.gz
2.26
KB
-rw-r--r--
theme.json.tar
19
KB
-rw-r--r--
themes.tar
167.53
MB
-rw-r--r--
themes.tar.gz
547.87
KB
-rw-r--r--
themes.zip
86.36
MB
-rw-r--r--
thickbox.zip
31.16
KB
-rw-r--r--
thinker.jpg.jpg.tar.gz
225.76
KB
-rw-r--r--
thinker.jpg.tar
228.5
KB
-rw-r--r--
thumb_cart_3.jpg.jpg.tar.gz
603
B
-rw-r--r--
thumb_cart_3.jpg.tar
2.5
KB
-rw-r--r--
tick.png.png.tar.gz
1.49
KB
-rw-r--r--
tick.png.tar
6
KB
-rw-r--r--
tinymce.tar
2.79
MB
-rw-r--r--
tinymce.tar.gz
793.27
KB
-rw-r--r--
tinymce.zip
2.82
MB
-rw-r--r--
tmp.tar
184
KB
-rw-r--r--
tmp.tar.gz
24.86
KB
-rw-r--r--
tmp.zip
177.57
KB
-rw-r--r--
tmpl.tar
4
KB
-rw-r--r--
tmpl.tar.gz
1.04
KB
-rw-r--r--
tools.php.php.tar.gz
1.49
KB
-rw-r--r--
tools.php.tar
13
KB
-rw-r--r--
top_body.png.png.tar.gz
5.81
KB
-rw-r--r--
top_body.png.tar
7.5
KB
-rw-r--r--
twemoji.js.js.tar.gz
8.34
KB
-rw-r--r--
twemoji.js.tar
34
KB
-rw-r--r--
twofactorauth.tar
30.5
KB
-rw-r--r--
twofactorauth.tar.gz
5.57
KB
-rw-r--r--
twofactorauth.zip
25.53
KB
-rw-r--r--
typeahead.js.tar
366
KB
-rw-r--r--
typeahead.js.tar.gz
90.01
KB
-rw-r--r--
typeahead.js.zip
359.79
KB
-rw-r--r--
update-core.php.php.tar.gz
10.55
KB
-rw-r--r--
update-core.php.tar
47
KB
-rw-r--r--
update.php.php.tar.gz
2.72
KB
-rw-r--r--
update.php.tar
65
KB
-rw-r--r--
upgrade-functions.php.php.tar....
321
B
-rw-r--r--
upgrade-functions.php.tar
2
KB
-rw-r--r--
upgrade.php.php.tar.gz
1.96
KB
-rw-r--r--
upgrade.php.tar
14
KB
-rw-r--r--
upload.php.php.tar.gz
4.1
KB
-rw-r--r--
upload.php.tar
16.5
KB
-rw-r--r--
user-edit.php.php.tar.gz
9.74
KB
-rw-r--r--
user-edit.php.tar
41
KB
-rw-r--r--
user-new.php.php.tar.gz
6.29
KB
-rw-r--r--
user-new.php.tar
50
KB
-rw-r--r--
user-resolved-notification.php...
712
B
-rw-r--r--
user-resolved-notification.php...
3
KB
-rw-r--r--
user.php.php.tar.gz
35.39
KB
-rw-r--r--
user.php.tar
195
KB
-rw-r--r--
user.tar
2.64
MB
-rw-r--r--
user.tar.gz
1.06
KB
-rw-r--r--
user.zip
2.53
MB
-rw-r--r--
users.php.php.tar.gz
5.62
KB
-rw-r--r--
users.php.tar
25
KB
-rw-r--r--
utils.zip
185.76
KB
-rw-r--r--
v2.tar
53.5
KB
-rw-r--r--
v2.tar.gz
8.93
KB
-rw-r--r--
v2.zip
45.02
KB
-rw-r--r--
validate.js.js.tar.gz
782
B
-rw-r--r--
validate.js.tar
4.5
KB
-rw-r--r--
vars.php.php.tar.gz
2.04
KB
-rw-r--r--
vars.php.tar
8
KB
-rw-r--r--
vendor.tar
4.32
MB
-rw-r--r--
vendor.tar.gz
129.48
KB
-rw-r--r--
vendor.zip
511.85
KB
-rw-r--r--
verse.zip
2.51
KB
-rw-r--r--
version.php.php.tar.gz
500
B
-rw-r--r--
version.php.tar
6
KB
-rw-r--r--
video.tar
17.71
MB
-rw-r--r--
video.tar.gz
3.62
MB
-rw-r--r--
video.zip
17.71
MB
-rw-r--r--
video_bg.jpg.jpg.tar.gz
154.48
KB
-rw-r--r--
video_bg.jpg.tar
165.5
KB
-rw-r--r--
view.php.php.tar.gz
577
B
-rw-r--r--
view.php.tar
2.5
KB
-rw-r--r--
view.tar
37.5
KB
-rw-r--r--
view.tar.gz
5.48
KB
-rw-r--r--
view.zip
26.48
KB
-rw-r--r--
views.tar
302.5
KB
-rw-r--r--
views.tar.gz
5.61
KB
-rw-r--r--
views.zip
283.46
KB
-rw-r--r--
virtuemart.tar
52
KB
-rw-r--r--
virtuemart.tar.gz
45.17
KB
-rw-r--r--
virtuemart.zip
47.66
KB
-rw-r--r--
vmuserfield.tar
23.5
KB
-rw-r--r--
vmuserfield.tar.gz
5.48
KB
-rw-r--r--
w-logo-blue.png.png.tar.gz
2.56
KB
-rw-r--r--
w-logo-blue.png.tar
5
KB
-rw-r--r--
wartoncorporation.zip
110.63
MB
-rw-r--r--
wcdp_product_settings.php.php....
2.68
KB
-rw-r--r--
wcdp_product_settings.php.tar
12
KB
-rw-r--r--
web.config.txt.config.txt.tar....
721
B
-rw-r--r--
web.config.txt.tar
17
KB
-rw-r--r--
webinstaller.tar
20.5
KB
-rw-r--r--
webinstaller.tar.gz
4.66
KB
-rw-r--r--
webinstaller.zip
44.91
KB
-rw-r--r--
wflogs.tar
2
KB
-rw-r--r--
wflogs.tar.gz
178
B
-rw-r--r--
wflogs.zip
285
B
-rw-r--r--
whatnothing.tar
12.5
KB
-rw-r--r--
whatnothing.tar.gz
10.19
KB
-rw-r--r--
whatnothing.zip
10.72
KB
-rw-r--r--
widget-group.zip
554
B
-rw-r--r--
widgets-form-blocks.php.php.ta...
1.73
KB
-rw-r--r--
widgets-form-blocks.php.tar
6
KB
-rw-r--r--
widgets-form.php.php.tar.gz
5.77
KB
-rw-r--r--
widgets-form.php.tar
21
KB
-rw-r--r--
widgets.php.php.tar.gz
15.36
KB
-rw-r--r--
widgets.php.tar
183
KB
-rw-r--r--
widgets.tar
171
KB
-rw-r--r--
widgets.tar.gz
31.48
KB
-rw-r--r--
widgets.zip
158.12
KB
-rw-r--r--
windows.png.png.tar.gz
1.7
KB
-rw-r--r--
windows.png.tar
3.5
KB
-rw-r--r--
witmmm.php.php.tar.gz
37.96
KB
-rw-r--r--
witmmm.php.tar
54.5
KB
-rw-r--r--
women.png.png.tar.gz
223.27
KB
-rw-r--r--
women.png.tar
225
KB
-rw-r--r--
woocommerce-tm-extra-product-o...
10.22
MB
-rw-r--r--
woocommerce-tm-extra-product-o...
2.21
MB
-rw-r--r--
woocommerce_product_list.tar
36.5
KB
-rw-r--r--
woocommerce_product_list.tar.g...
25.34
KB
-rw-r--r--
woocommerce_product_list.zip
34.45
KB
-rw-r--r--
wordfence.tar
16.01
MB
-rw-r--r--
wordfence.tar.gz
5.66
MB
-rw-r--r--
wordpress.tar
83
KB
-rw-r--r--
wordpress.tar.gz
25.02
KB
-rw-r--r--
wordpress.zip
81.04
KB
-rw-r--r--
wordpress2.png.png.tar.gz
6.84
KB
-rw-r--r--
wordpress2.png.tar
9
KB
-rw-r--r--
workimg3.jpg.jpg.tar.gz
158.56
KB
-rw-r--r--
workimg3.jpg.tar
162
KB
-rw-r--r--
worksec.php
1.06
KB
-rw-r--r--
wow.js.js.tar.gz
3.2
KB
-rw-r--r--
wow.js.tar
15
KB
-rw-r--r--
wp-2fa.tar
2.81
MB
-rw-r--r--
wp-2fa.tar.gz
847.15
KB
-rw-r--r--
wp-activate.php.php.tar.gz
2.55
KB
-rw-r--r--
wp-activate.php.tar
94.5
KB
-rw-r--r--
wp-admin.php.php.tar.gz
11.76
KB
-rw-r--r--
wp-admin.php.tar
35.5
KB
-rw-r--r--
wp-admin.tar
9.64
MB
-rw-r--r--
wp-admin.tar.gz
2.39
MB
-rw-r--r--
wp-admin.zip
8.86
MB
-rw-r--r--
wp-adminx.tar
8.82
MB
-rw-r--r--
wp-adminx.zip
8.5
MB
-rw-r--r--
wp-blog-header.php.php.tar.gz
335
B
-rw-r--r--
wp-blog-header.php.tar
13.5
KB
-rw-r--r--
wp-comments-post.php.php.tar.g...
1.16
KB
-rw-r--r--
wp-comments-post.php.tar
36.5
KB
-rw-r--r--
wp-config-sample.php.php.tar.g...
1.3
KB
-rw-r--r--
wp-config-sample.php.tar
46
KB
-rw-r--r--
wp-config.php.php.tar.gz
1.87
KB
-rw-r--r--
wp-config.php.tar
16
KB
-rw-r--r--
wp-confiig.php.php.tar.gz
1.76
KB
-rw-r--r--
wp-confiig.php.tar
5
KB
-rw-r--r--
wp-conflg.php.php.tar.gz
161
B
-rw-r--r--
wp-conflg.php.tar
2
KB
-rw-r--r--
wp-content.tar
651.58
MB
-rw-r--r--
wp-content.tar.gz
0
B
-rw-r--r--
wp-content.zip
909.19
MB
-rw-r--r--
wp-contentx.tar
9.34
MB
-rw-r--r--
wp-contentx.tar.gz
6.77
MB
-rw-r--r--
wp-contentx.zip
9.13
MB
-rw-r--r--
wp-cron.php.php.tar.gz
2.13
KB
-rw-r--r--
wp-cron.php.tar
66.5
KB
-rw-r--r--
wp-db.php.php.tar.gz
385
B
-rw-r--r--
wp-db.php.tar
3
KB
-rw-r--r--
wp-diff.php.php.tar.gz
402
B
-rw-r--r--
wp-diff.php.tar
2.5
KB
-rw-r--r--
wp-emoji.min.js.min.js.tar.gz
1.51
KB
-rw-r--r--
wp-emoji.min.js.tar
8
KB
-rw-r--r--
wp-includes.tar
51.18
MB
-rw-r--r--
wp-includes.tar.gz
8.7
MB
-rw-r--r--
wp-includes.zip
50.31
MB
-rw-r--r--
wp-includesx.zip
38.31
MB
-rw-r--r--
wp-info.php.php.tar.gz
3.18
KB
-rw-r--r--
wp-info.php.tar
9.5
KB
-rw-r--r--
wp-links-opml.php.php.tar.gz
1.21
KB
-rw-r--r--
wp-links-opml.php.tar
40
KB
-rw-r--r--
wp-load.php.php.tar.gz
1.71
KB
-rw-r--r--
wp-load.php.tar
48
KB
-rw-r--r--
wp-login.php.php.tar.gz
11.28
KB
-rw-r--r--
wp-login.php.tar
528
KB
-rw-r--r--
wp-mail.php.php.tar.gz
3
KB
-rw-r--r--
wp-mail.php.tar
110
KB
-rw-r--r--
wp-opml.php.php.tar.gz
2.94
KB
-rw-r--r--
wp-opml.php.tar
10
KB
-rw-r--r--
wp-reset.zip
583.84
KB
-rw-r--r--
wp-settings.php.php.tar.gz
4.84
KB
-rw-r--r--
wp-settings.php.tar
268.5
KB
-rw-r--r--
wp-signup.php.php.tar.gz
7.19
KB
-rw-r--r--
wp-signup.php.tar
331.5
KB
-rw-r--r--
wp-trackback.php.php.tar.gz
1.91
KB
-rw-r--r--
wp-trackback.php.tar
72.5
KB
-rw-r--r--
wp-ver.php.php.tar.gz
0
B
-rw-r--r--
wp-ver.php.tar
4
KB
-rw-r--r--
wpcf7-recaptcha.zip
131.23
KB
-rw-r--r--
wpicons.png.png.tar.gz
7.04
KB
-rw-r--r--
wpicons.png.tar
8.5
KB
-rw-r--r--
xindex.html.html.tar.gz
1.35
KB
-rw-r--r--
xindex.html.tar
5
KB
-rw-r--r--
xmlrpc.php.php.tar.gz
1.5
KB
-rw-r--r--
xmlrpc.php.tar
40.5
KB
-rw-r--r--
xx.well-known.tar
84
KB
-rw-r--r--
xx.well-known.tar.gz
24.97
KB
-rw-r--r--
xx.well-known.zip
81.16
KB
-rw-r--r--
yprhgrdk.php.php.tar.gz
522
B
-rw-r--r--
yprhgrdk.php.tar
44.5
KB
-rw-r--r--
zenit.tar
82
KB
-rw-r--r--
zenit.tar.gz
24.81
KB
-rw-r--r--
zenit.zip
80.62
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : com_contact.tar
models/categories.php 0000644 00000006414 15075071342 0010676 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\Registry\Registry; /** * This models supports retrieving lists of contact categories. * * @since 1.6 */ class ContactModelCategories extends JModelList { /** * Model context string. * * @var string */ public $_context = 'com_contact.categories'; /** * The category context (allows other extensions to derived from this model). * * @var string */ protected $_extension = 'com_contact'; private $_parent = null; private $_items = null; /** * Method to auto-populate the model state. * * Note. Calling getState in this method will result in recursion. * * @param string $ordering An optional ordering field. * @param string $direction An optional direction (asc|desc). * * @return void * * @since 1.6 */ protected function populateState($ordering = null, $direction = null) { $app = JFactory::getApplication(); $this->setState('filter.extension', $this->_extension); // Get the parent id if defined. $parentId = $app->input->getInt('id'); $this->setState('filter.parentId', $parentId); $params = $app->getParams(); $this->setState('params', $params); $this->setState('filter.published', 1); $this->setState('filter.access', true); } /** * Method to get a store id based on model configuration state. * * This is necessary because the model is used by the component and * different modules that might need different sets of data or different * ordering requirements. * * @param string $id A prefix for the store id. * * @return string A store id. */ protected function getStoreId($id = '') { // Compile the store id. $id .= ':' . $this->getState('filter.extension'); $id .= ':' . $this->getState('filter.published'); $id .= ':' . $this->getState('filter.access'); $id .= ':' . $this->getState('filter.parentId'); return parent::getStoreId($id); } /** * Redefine the function an add some properties to make the styling more easy * * @return mixed An array of data items on success, false on failure. */ public function getItems() { if ($this->_items === null) { $app = JFactory::getApplication(); $menu = $app->getMenu(); $active = $menu->getActive(); $params = new Registry; if ($active) { $params->loadString($active->params); } $options = array(); $options['countItems'] = $params->get('show_cat_items_cat', 1) || !$params->get('show_empty_categories_cat', 0); $categories = JCategories::getInstance('Contact', $options); $this->_parent = $categories->get($this->getState('filter.parentId', 'root')); if (is_object($this->_parent)) { $this->_items = $this->_parent->getChildren(); } else { $this->_items = false; } } return $this->_items; } /** * Gets the id of the parent category for the selected list of categories * * @return integer The id of the parent category * * @since 1.6.0 */ public function getParent() { if (!is_object($this->_parent)) { $this->getItems(); } return $this->_parent; } } models/contact.php 0000644 00000045122 15075071342 0010203 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\Registry\Registry; /** * Single item model for a contact * * @package Joomla.Site * @subpackage com_contact * @since 1.5 */ class ContactModelContact extends JModelForm { /** * The name of the view for a single item * * @since 1.6 */ protected $view_item = 'contact'; /** * A loaded item * * @since 1.6 */ protected $_item = null; /** * Model context string. * * @var string */ protected $_context = 'com_contact.contact'; /** * Method to auto-populate the model state. * * Note. Calling getState in this method will result in recursion. * * @return void * * @since 1.6 */ protected function populateState() { $app = JFactory::getApplication(); $this->setState('contact.id', $app->input->getInt('id')); $this->setState('params', $app->getParams()); $user = JFactory::getUser(); if ((!$user->authorise('core.edit.state', 'com_contact')) && (!$user->authorise('core.edit', 'com_contact'))) { $this->setState('filter.published', 1); $this->setState('filter.archived', 2); } } /** * Method to get the contact form. * The base form is loaded from XML and then an event is fired * * @param array $data An optional array of data for the form to interrogate. * @param boolean $loadData True if the form is to load its own data (default case), false if not. * * @return JForm A JForm object on success, false on failure * * @since 1.6 */ public function getForm($data = array(), $loadData = true) { $form = $this->loadForm('com_contact.contact', 'contact', array('control' => 'jform', 'load_data' => true)); if (empty($form)) { return false; } $temp = clone $this->getState('params'); $contact = $this->_item[$this->getState('contact.id')]; $active = JFactory::getApplication()->getMenu()->getActive(); if ($active) { // If the current view is the active item and a contact view for this contact, then the menu item params take priority if (strpos($active->link, 'view=contact') && strpos($active->link, '&id=' . (int) $contact->id)) { // $contact->params are the contact params, $temp are the menu item params // Merge so that the menu item params take priority $contact->params->merge($temp); } else { // Current view is not a single contact, so the contact params take priority here // Merge the menu item params with the contact params so that the contact params take priority $temp->merge($contact->params); $contact->params = $temp; } } else { // Merge so that contact params take priority $temp->merge($contact->params); $contact->params = $temp; } if (!$contact->params->get('show_email_copy', 0)) { $form->removeField('contact_email_copy'); } return $form; } /** * Method to get the data that should be injected in the form. * * @return array The default data is an empty array. * * @since 1.6.2 */ protected function loadFormData() { $data = (array) JFactory::getApplication()->getUserState('com_contact.contact.data', array()); if (empty($data['language']) && JLanguageMultilang::isEnabled()) { $data['language'] = JFactory::getLanguage()->getTag(); } // Add contact id to contact form data, so fields plugin can work properly if (empty($data['catid'])) { $data['catid'] = $this->getItem()->catid; } $this->preprocessData('com_contact.contact', $data); return $data; } /** * Gets a contact * * @param integer $pk Id for the contact * * @return mixed Object or null * * @since 1.6.0 */ public function &getItem($pk = null) { $pk = (!empty($pk)) ? $pk : (int) $this->getState('contact.id'); if ($this->_item === null) { $this->_item = array(); } if (!isset($this->_item[$pk])) { try { $db = $this->getDbo(); $query = $db->getQuery(true); // Changes for sqlsrv $case_when = ' CASE WHEN '; $case_when .= $query->charLength('a.alias', '!=', '0'); $case_when .= ' THEN '; $a_id = $query->castAsChar('a.id'); $case_when .= $query->concatenate(array($a_id, 'a.alias'), ':'); $case_when .= ' ELSE '; $case_when .= $a_id . ' END as slug'; $case_when1 = ' CASE WHEN '; $case_when1 .= $query->charLength('c.alias', '!=', '0'); $case_when1 .= ' THEN '; $c_id = $query->castAsChar('c.id'); $case_when1 .= $query->concatenate(array($c_id, 'c.alias'), ':'); $case_when1 .= ' ELSE '; $case_when1 .= $c_id . ' END as catslug'; $query->select($this->getState('item.select', 'a.*') . ',' . $case_when . ',' . $case_when1) ->from('#__contact_details AS a') // Join on category table. ->select('c.title AS category_title, c.alias AS category_alias, c.access AS category_access') ->join('LEFT', '#__categories AS c on c.id = a.catid') // Join over the categories to get parent category titles ->select('parent.title as parent_title, parent.id as parent_id, parent.path as parent_route, parent.alias as parent_alias') ->join('LEFT', '#__categories as parent ON parent.id = c.parent_id') ->where('a.id = ' . (int) $pk); // Filter by start and end dates. $nullDate = $db->quote($db->getNullDate()); $nowDate = $db->quote(JFactory::getDate()->toSql()); // Filter by published state. $published = $this->getState('filter.published'); $archived = $this->getState('filter.archived'); if (is_numeric($published)) { $query->where('(a.published = ' . (int) $published . ' OR a.published =' . (int) $archived . ')') ->where('(a.publish_up = ' . $nullDate . ' OR a.publish_up <= ' . $nowDate . ')') ->where('(a.publish_down = ' . $nullDate . ' OR a.publish_down >= ' . $nowDate . ')'); } $db->setQuery($query); $data = $db->loadObject(); if (empty($data)) { JError::raiseError(404, JText::_('COM_CONTACT_ERROR_CONTACT_NOT_FOUND')); } // Check for published state if filter set. if ((is_numeric($published) || is_numeric($archived)) && (($data->published != $published) && ($data->published != $archived))) { JError::raiseError(404, JText::_('COM_CONTACT_ERROR_CONTACT_NOT_FOUND')); } /** * In case some entity params have been set to "use global", those are * represented as an empty string and must be "overridden" by merging * the component and / or menu params here. */ $registry = new Registry($data->params); $data->params = clone $this->getState('params'); $data->params->merge($registry); $registry = new Registry($data->metadata); $data->metadata = $registry; // Some contexts may not use tags data at all, so we allow callers to disable loading tag data if ($this->getState('load_tags', true)) { $data->tags = new JHelperTags; $data->tags->getItemTags('com_contact.contact', $data->id); } // Compute access permissions. if (($access = $this->getState('filter.access'))) { // If the access filter has been set, we already know this user can view. $data->params->set('access-view', true); } else { // If no access filter is set, the layout takes some responsibility for display of limited information. $user = JFactory::getUser(); $groups = $user->getAuthorisedViewLevels(); if ($data->catid == 0 || $data->category_access === null) { $data->params->set('access-view', in_array($data->access, $groups)); } else { $data->params->set('access-view', in_array($data->access, $groups) && in_array($data->category_access, $groups)); } } $this->_item[$pk] = $data; } catch (Exception $e) { $this->setError($e); $this->_item[$pk] = false; } } if ($this->_item[$pk]) { $this->buildContactExtendedData($this->_item[$pk]); } return $this->_item[$pk]; } /** * Load extended data (profile, articles) for a contact * * @param object $contact The contact object * * @return void */ protected function buildContactExtendedData($contact) { $db = $this->getDbo(); $nullDate = $db->quote($db->getNullDate()); $nowDate = $db->quote(JFactory::getDate()->toSql()); $user = JFactory::getUser(); $groups = implode(',', $user->getAuthorisedViewLevels()); $published = $this->getState('filter.published'); // If we are showing a contact list, then the contact parameters take priority // So merge the contact parameters with the merged parameters if ($this->getState('params')->get('show_contact_list')) { $this->getState('params')->merge($contact->params); } // Get the com_content articles by the linked user if ((int) $contact->user_id && $this->getState('params')->get('show_articles')) { $query = $db->getQuery(true) ->select('a.id') ->select('a.title') ->select('a.state') ->select('a.access') ->select('a.catid') ->select('a.created') ->select('a.language') ->select('a.publish_up'); // SQL Server changes $case_when = ' CASE WHEN '; $case_when .= $query->charLength('a.alias', '!=', '0'); $case_when .= ' THEN '; $a_id = $query->castAsChar('a.id'); $case_when .= $query->concatenate(array($a_id, 'a.alias'), ':'); $case_when .= ' ELSE '; $case_when .= $a_id . ' END as slug'; $case_when1 = ' CASE WHEN '; $case_when1 .= $query->charLength('c.alias', '!=', '0'); $case_when1 .= ' THEN '; $c_id = $query->castAsChar('c.id'); $case_when1 .= $query->concatenate(array($c_id, 'c.alias'), ':'); $case_when1 .= ' ELSE '; $case_when1 .= $c_id . ' END as catslug'; $query->select($case_when1 . ',' . $case_when) ->from('#__content as a') ->join('LEFT', '#__categories as c on a.catid=c.id') ->where('a.created_by = ' . (int) $contact->user_id) ->where('a.access IN (' . $groups . ')') ->order('a.publish_up DESC'); // Filter per language if plugin published if (JLanguageMultilang::isEnabled()) { $query->where('a.language IN (' . $db->quote(JFactory::getLanguage()->getTag()) . ',' . $db->quote('*') . ')'); } if (is_numeric($published)) { $query->where('a.state IN (1,2)') ->where('(a.publish_up = ' . $nullDate . ' OR a.publish_up <= ' . $nowDate . ')') ->where('(a.publish_down = ' . $nullDate . ' OR a.publish_down >= ' . $nowDate . ')'); } // Number of articles to display from config/menu params $articles_display_num = $this->getState('params')->get('articles_display_num', 10); // Use contact setting? if ($articles_display_num === 'use_contact') { $articles_display_num = $contact->params->get('articles_display_num', 10); // Use global? if ((string) $articles_display_num === '') { $articles_display_num = JComponentHelper::getParams('com_contact')->get('articles_display_num', 10); } } $db->setQuery($query, 0, (int) $articles_display_num); $articles = $db->loadObjectList(); $contact->articles = $articles; } else { $contact->articles = null; } // Get the profile information for the linked user JModelLegacy::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_users/models', 'UsersModel'); $userModel = JModelLegacy::getInstance('User', 'UsersModel', array('ignore_request' => true)); $data = $userModel->getItem((int) $contact->user_id); JPluginHelper::importPlugin('user'); // Get the form. JForm::addFormPath(JPATH_SITE . '/components/com_users/models/forms'); JForm::addFieldPath(JPATH_SITE . '/components/com_users/models/fields'); JForm::addFormPath(JPATH_SITE . '/components/com_users/model/form'); JForm::addFieldPath(JPATH_SITE . '/components/com_users/model/field'); $form = JForm::getInstance('com_users.profile', 'profile'); // Get the dispatcher. $dispatcher = JEventDispatcher::getInstance(); // Trigger the form preparation event. $dispatcher->trigger('onContentPrepareForm', array($form, $data)); // Trigger the data preparation event. $dispatcher->trigger('onContentPrepareData', array('com_users.profile', $data)); // Load the data into the form after the plugins have operated. $form->bind($data); $contact->profile = $form; } /** * Gets the query to load a contact item * * @param integer $pk The item to be loaded * * @return mixed The contact object on success, false on failure * * @throws Exception On database failure * @deprecated 4.0 Use ContactModelContact::getItem() instead */ protected function getContactQuery($pk = null) { // @todo Cache on the fingerprint of the arguments $db = $this->getDbo(); $nullDate = $db->quote($db->getNullDate()); $nowDate = $db->quote(JFactory::getDate()->toSql()); $user = JFactory::getUser(); $pk = (!empty($pk)) ? $pk : (int) $this->getState('contact.id'); $query = $db->getQuery(true); if ($pk) { // Sqlsrv changes $case_when = ' CASE WHEN '; $case_when .= $query->charLength('a.alias', '!=', '0'); $case_when .= ' THEN '; $a_id = $query->castAsChar('a.id'); $case_when .= $query->concatenate(array($a_id, 'a.alias'), ':'); $case_when .= ' ELSE '; $case_when .= $a_id . ' END as slug'; $case_when1 = ' CASE WHEN '; $case_when1 .= $query->charLength('cc.alias', '!=', '0'); $case_when1 .= ' THEN '; $c_id = $query->castAsChar('cc.id'); $case_when1 .= $query->concatenate(array($c_id, 'cc.alias'), ':'); $case_when1 .= ' ELSE '; $case_when1 .= $c_id . ' END as catslug'; $query->select( 'a.*, cc.access as category_access, cc.title as category_name, ' . $case_when . ',' . $case_when1 ) ->from('#__contact_details AS a') ->join('INNER', '#__categories AS cc on cc.id = a.catid') ->where('a.id = ' . (int) $pk); $published = $this->getState('filter.published'); if (is_numeric($published)) { $query->where('a.published IN (1,2)') ->where('cc.published IN (1,2)'); } $groups = implode(',', $user->getAuthorisedViewLevels()); $query->where('a.access IN (' . $groups . ')'); try { $db->setQuery($query); $result = $db->loadObject(); if (empty($result)) { return false; } } catch (Exception $e) { $this->setError($e->getMessage()); return false; } if ($result) { $contactParams = new Registry($result->params); // If we are showing a contact list, then the contact parameters take priority // So merge the contact parameters with the merged parameters if ($this->getState('params')->get('show_contact_list')) { $this->getState('params')->merge($contactParams); } // Get the com_content articles by the linked user if ((int) $result->user_id && $this->getState('params')->get('show_articles')) { $query = $db->getQuery(true) ->select('a.id') ->select('a.title') ->select('a.state') ->select('a.access') ->select('a.catid') ->select('a.created') ->select('a.language') ->select('a.publish_up'); // SQL Server changes $case_when = ' CASE WHEN '; $case_when .= $query->charLength('a.alias', '!=', '0'); $case_when .= ' THEN '; $a_id = $query->castAsChar('a.id'); $case_when .= $query->concatenate(array($a_id, 'a.alias'), ':'); $case_when .= ' ELSE '; $case_when .= $a_id . ' END as slug'; $case_when1 = ' CASE WHEN '; $case_when1 .= $query->charLength('c.alias', '!=', '0'); $case_when1 .= ' THEN '; $c_id = $query->castAsChar('c.id'); $case_when1 .= $query->concatenate(array($c_id, 'c.alias'), ':'); $case_when1 .= ' ELSE '; $case_when1 .= $c_id . ' END as catslug'; $query->select($case_when1 . ',' . $case_when) ->from('#__content as a') ->join('LEFT', '#__categories as c on a.catid=c.id') ->where('a.created_by = ' . (int) $result->user_id) ->where('a.access IN (' . $groups . ')') ->order('a.publish_up DESC'); // Filter per language if plugin published if (JLanguageMultilang::isEnabled()) { $query->where('a.language IN (' . $db->quote(JFactory::getLanguage()->getTag()) . ',' . $db->quote('*') . ')'); } if (is_numeric($published)) { $query->where('a.state IN (1,2)') ->where('(a.publish_up = ' . $nullDate . ' OR a.publish_up <= ' . $nowDate . ')') ->where('(a.publish_down = ' . $nullDate . ' OR a.publish_down >= ' . $nowDate . ')'); } // Number of articles to display from config/menu params $articles_display_num = $this->getState('params')->get('articles_display_num', 10); // Use contact setting? if ($articles_display_num === 'use_contact') { $articles_display_num = $contactParams->get('articles_display_num', 10); // Use global? if ((string) $articles_display_num === '') { $articles_display_num = JComponentHelper::getParams('com_contact')->get('articles_display_num', 10); } } $db->setQuery($query, 0, (int) $articles_display_num); $articles = $db->loadObjectList(); $result->articles = $articles; } else { $result->articles = null; } // Get the profile information for the linked user JModelLegacy::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_users/models', 'UsersModel'); $userModel = JModelLegacy::getInstance('User', 'UsersModel', array('ignore_request' => true)); $data = $userModel->getItem((int) $result->user_id); JPluginHelper::importPlugin('user'); $form = new JForm('com_users.profile'); // Get the dispatcher. $dispatcher = JEventDispatcher::getInstance(); // Trigger the form preparation event. $dispatcher->trigger('onContentPrepareForm', array($form, $data)); // Trigger the data preparation event. $dispatcher->trigger('onContentPrepareData', array('com_users.profile', $data)); // Load the data into the form after the plugins have operated. $form->bind($data); $result->profile = $form; $this->contact = $result; return $result; } } return false; } /** * Increment the hit counter for the contact. * * @param integer $pk Optional primary key of the contact to increment. * * @return boolean True if successful; false otherwise and internal error set. * * @since 3.0 */ public function hit($pk = 0) { $input = JFactory::getApplication()->input; $hitcount = $input->getInt('hitcount', 1); if ($hitcount) { $pk = (!empty($pk)) ? $pk : (int) $this->getState('contact.id'); $table = JTable::getInstance('Contact', 'ContactTable'); $table->load($pk); $table->hit($pk); } return true; } } models/forms/filter_contacts.xml 0000644 00000007277 15075071342 0013103 0 ustar 00 <?xml version="1.0" encoding="utf-8"?> <form> <fieldset addfieldpath="/administrator/components/com_contacts/models/fields" /> <fields name="filter"> <field name="search" type="text" label="COM_CONTACT_FILTER_SEARCH_LABEL" description="COM_CONTACT_FILTER_SEARCH_DESC" hint="JSEARCH_FILTER" /> <field name="published" type="status" label="JOPTION_SELECT_PUBLISHED" description="JOPTION_SELECT_PUBLISHED_DESC" onchange="this.form.submit();" > <option value="">JOPTION_SELECT_PUBLISHED</option> </field> <field name="category_id" type="category" label="JOPTION_FILTER_CATEGORY" description="JOPTION_FILTER_CATEGORY_DESC" extension="com_contact" published="0,1,2" onchange="this.form.submit();" > <option value="">JOPTION_SELECT_CATEGORY</option> </field> <field name="access" type="accesslevel" label="JOPTION_FILTER_ACCESS" description="JOPTION_FILTER_ACCESS_DESC" onchange="this.form.submit();" > <option value="">JOPTION_SELECT_ACCESS</option> </field> <field name="language" type="contentlanguage" label="JOPTION_FILTER_LANGUAGE" description="JOPTION_FILTER_LANGUAGE_DESC" onchange="this.form.submit();" > <option value="">JOPTION_SELECT_LANGUAGE</option> <option value="*">JALL</option> </field> <field name="tag" type="tag" label="JOPTION_FILTER_TAG" description="JOPTION_FILTER_TAG_DESC" mode="nested" onchange="this.form.submit();" > <option value="">JOPTION_SELECT_TAG</option> </field> <field name="level" type="integer" label="JOPTION_FILTER_LEVEL" description="JOPTION_FILTER_LEVEL_DESC" first="1" last="10" step="1" languages="*" onchange="this.form.submit();" > <option value="">JOPTION_SELECT_MAX_LEVELS</option> </field> </fields> <fields name="list"> <field name="fullordering" type="list" label="COM_CONTACT_LIST_FULL_ORDERING" description="COM_CONTACT_LIST_FULL_ORDERING_DESC" default="a.name ASC" onchange="this.form.submit();" validate="options" > <option value="">JGLOBAL_SORT_BY</option> <option value="a.ordering ASC">JGRID_HEADING_ORDERING_ASC</option> <option value="a.ordering DESC">JGRID_HEADING_ORDERING_DESC</option> <option value="a.published ASC">JSTATUS_ASC</option> <option value="a.published DESC">JSTATUS_DESC</option> <option value="a.featured ASC">JFEATURED_ASC</option> <option value="a.featured DESC">JFEATURED_DESC</option> <option value="a.name ASC">JGLOBAL_TITLE_ASC</option> <option value="a.name DESC">JGLOBAL_TITLE_DESC</option> <option value="category_title ASC">JCATEGORY_ASC</option> <option value="category_title DESC">JCATEGORY_DESC</option> <option value="ul.name ASC">COM_CONTACT_FIELD_LINKED_USER_LABEL_ASC</option> <option value="ul.name DESC">COM_CONTACT_FIELD_LINKED_USER_LABEL_DESC</option> <option value="access_level ASC">JGRID_HEADING_ACCESS_ASC</option> <option value="access_level DESC">JGRID_HEADING_ACCESS_DESC</option> <option value="association ASC" requires="associations" > JASSOCIATIONS_ASC </option> <option value="association DESC" requires="associations" > JASSOCIATIONS_DESC </option> <option value="language_title ASC">JGRID_HEADING_LANGUAGE_ASC</option> <option value="language_title DESC">JGRID_HEADING_LANGUAGE_DESC</option> <option value="a.id ASC">JGRID_HEADING_ID_ASC</option> <option value="a.id DESC">JGRID_HEADING_ID_DESC</option> </field> <field name="limit" type="limitbox" label="COM_CONTACT_LIST_LIMIT" description="COM_CONTACT_LIST_LIMIT_DESC" default="25" class="input-mini" onchange="this.form.submit();" /> </fields> </form> models/forms/form.xml 0000644 00000037264 15075071342 0010662 0 ustar 00 <?xml version="1.0" encoding="UTF-8"?> <!-- @deprecated 4.0 Not used since 1.6 No replacement. --> <form> <fieldset> <field name="id" type="hidden" label="COM_CONTACT_ID_LABEL" default="0" readonly="true" required="true" size="10" /> <field name="name" type="text" label="CONTACT_NAME_LABEL" description="CONTACT_NAME_DESC" required="true" size="30" /> <field name="alias" type="text" label="JFIELD_ALIAS_LABEL" description="JFIELD_ALIAS_DESC" hint="JFIELD_ALIAS_PLACEHOLDER" size="30" /> <field name="user_id" type="user" label="CONTACT_LINKED_USER_LABEL" description="CONTACT_LINKED_USER_DESC" /> <field name="published" type="list" label="JFIELD_PUBLISHED_LABEL" description="JFIELD_PUBLISHED_DESC" default="1" size="1" > <option value="1">JPUBLISHED</option> <option value="0">JUNPUBLISHED</option> <option value="-1">JARCHIVED</option> <option value="-2">JTRASHED</option> </field> <field name="catid" type="category" label="JCATEGORY" description="JFIELD_CATEGORY_DESC" extension="com_contact" required="true" /> <field name="access" type="accesslevel" label="JFIELD_ACCESS_LABEL" description="JFIELD_ACCESS_DESC" size="1" /> <field name="sortname1" type="text" label="CONTACT_SORTNAME1_LABEL" description="CONTACT_SORTNAME1_DESC" size="30" /> <field name="sortname2" type="text" label="CONTACT_SORTNAME2_LABEL" description="CONTACT_SORTNAME3_DESC" size="30" /> <field name="sortname3" type="text" label="CONTACT_SORTNAME3_LABEL" description="CONTACT_SORTNAME3_DESC" size="30" /> <field name="language" type="text" label="CONTACT_LANGUAGE_LABEL" description="CONTACT_LANGUAGE_DESC" size="30" /> <field name="con_position" type="text" label="CONTACT_INFORMATION_POSITION_LABEL" description="CONTACT_INFORMATION_POSITION_DESC" size="30" /> <field name="email_to" type="email" label="CONTACT_INFORMATION_EMAIL_LABEL" description="CONTACT_INFORMATION_EMAIL_DESC" size="30" validate="email" filter="string" autocomplete="email" /> <field name="address" type="textarea" label="CONTACT_INFORMATION_ADDRESS_LABEL" description="CONTACT_INFORMATION_ADDRESS_DESC" cols="30" rows="3" /> <field name="suburb" type="text" label="CONTACT_INFORMATION_SUBURB_LABEL" description="CONTACT_INFORMATION_SUBURB_DESC" size="30" /> <field name="state" type="text" label="CONTACT_INFORMATION_STATE_LABEL" description="CONTACT_INFORMATION_STATE_DESC" size="30" /> <field name="postcode" type="text" label="CONTACT_INFORMATION_POSTCODE_LABEL" description="CONTACT_INFORMATION_POSTCODE_DESC" size="30" /> <field name="country" type="text" label="CONTACT_INFORMATION_COUNTRY_LABEL" description="CONTACT_INFORMATION_COUNTRY_DESC" size="30" /> <field name="telephone" type="text" label="CONTACT_INFORMATION_TELEPHONE_LABEL" description="CONTACT_INFORMATION_TELEPHONE_DESC" size="30" /> <field name="mobile" type="text" label="CONTACT_INFORMATION_MOBILE_LABEL" description="CONTACT_INFORMATION_MOBILE_DESC" size="30" /> <field name="webpage" type="text" label="CONTACT_INFORMATION_WEBPAGE_LABEL" description="CONTACT_INFORMATION_WEBPAGE_DESC" size="30" /> <field name="misc" type="editor" label="CONTACT_INFORMATION_MISC_LABEL" description="CONTACT_INFORMATION_MISC_DESC" buttons="true" hide="pagebreak,readmore" filter="safehtml" size="30" /> <field name="checked_out" type="hidden" filter="unset" /> <field name="checked_out_time" type="hidden" filter="unset" /> <field name="ordering" type="ordering" label="JFIELD_ORDERING_LABEL" description="JFIELD_ORDERING_DESC" content_type="com_contact.contact" /> <field name="metakey" type="textarea" label="JFIELD_META_KEYWORDS_LABEL" description="JFIELD_META_KEYWORDS_DESC" cols="30" rows="3" /> <field name="metadesc" type="textarea" label="JFIELD_META_DESCRIPTION_LABEL" description="JFIELD_META_DESCRIPTION_DESC" cols="30" rows="3" /> <field name="language" type="contentlanguage" label="JFIELD_LANGUAGE_LABEL" description="JFIELD_CONTACT_LANGUAGE_DESC" > <option value="">JALL</option> </field> <field name="contact_icons" type="list" label="Icons/text" description="PARAMCONTACTICONS" default="0" > <option value="0">CONTACT_ICONS_OPTIONS_NONE</option> <option value="1">CONTACT_ICONS_OPTIONS_TEXT</option> <option value="2">CONTACT_ICONS_OPTIONS_TEXT</option> </field> <field name="icon_address" type="imagelist" label="CONTACT_ICONS_ADDRESS_LABEL" description="CONTACT_ICONS_ADDRESS_DESC" directory="/images" hide_none="1" /> <field name="icon_email" type="imagelist" label="CONTACT_ICONS_EMAIL_LABEL" description="CONTACT_ICONS_EMAIL_DESC" directory="/images" hide_none="1" /> <field name="icon_telephone" type="imagelist" label="CONTACT_ICONS_TELEPHONE_LABEL" description="CONTACT_ICONS_TELEPHONE_DESC" directory="/images" hide_none="1" /> <field name="icon_mobile" type="imagelist" label="CONTACT_ICONS_MOBILE_LABEL" description="CONTACT_ICONS_MOBILE_DESC" directory="/images" hide_none="1" /> <field name="icon_fax" type="imagelist" label="CONTACT_ICONS_FAX_LABEL" description="CONTACT_ICONS_FAX_DESC" directory="/images" hide_none="1" /> <field name="icon_misc" type="imagelist" label="CONTACT_ICONS_MISC_LABEL" description="CONTACT_ICONS_MISC_DESC" directory="/images" hide_none="1" /> </fieldset> <fields name="metadata"> <fieldset name="metadata" label="JGLOBAL_FIELDSET_METADATA_OPTIONS"> <field name="robots" type="list" label="JFIELD_METADATA_ROBOTS_LABEL" description="JFIELD_METADATA_ROBOTS_DESC" > <option value="">JGLOBAL_USE_GLOBAL</option> <option value="index, follow">JGLOBAL_INDEX_FOLLOW</option> <option value="noindex, follow">JGLOBAL_NOINDEX_FOLLOW</option> <option value="index, nofollow">JGLOBAL_INDEX_NOFOLLOW</option> <option value="noindex, nofollow">JGLOBAL_NOINDEX_NOFOLLOW</option> </field> <field name="rights" type="text" label="JFIELD_METADATA_RIGHTS_LABEL" description="JFIELD_METADATA_RIGHTS_DESC" size="20" /> </fieldset> </fields> <fields name="params"> <fieldset name="options" label="CONTACT_PARAMETERS"> <field name="show_tags" type="list" label="COM_CONTACT_FIELD_SHOW_TAGS_LABEL" description="COM_CONTACT_FIELD_SHOW_TAGS_DESC" > <option value="">JGLOBAL_USE_GLOBAL</option> <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_info" type="list" label="COM_CONTACT_FIELD_SHOW_INFO_LABEL" description="COM_CONTACT_FIELD_SHOW_INFO_DESC" > <option value="">JGLOBAL_USE_GLOBAL</option> <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_name" type="list" label="CONTACT_PARAMS_NAME_LABEL" description="CONTACT_PARAMS_NAME_DESC" > <option value="">JGLOBAL_USE_GLOBAL</option> <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_position" type="list" label="CONTACT_PARAMS_CONTACT_POSITION_LABEL" description="CONTACT_PARAMS_NAME_DESC" > <option value="">JGLOBAL_USE_GLOBAL</option> <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_email" type="list" label="CONTACT_PARAMS_CONTACT_POSITION_E_MAIL_LABEL" description="CONTACT_PARAMS_NAME_DESC" > <option value="">JGLOBAL_USE_GLOBAL</option> <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_street_address" type="list" label="CONTACT_PARAMS_STREET_ADDRESS_LABEL" description="CONTACT_PARAMS_NAME_DESC" > <option value="">JGLOBAL_USE_GLOBAL</option> <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_suburb" type="list" label="CONTACT_PARAMS_TOWN_SUBURB_LABEL" description="CONTACT_PARAMS_NAME_DESC" > <option value="">JGLOBAL_USE_GLOBAL</option> <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_state" type="list" label="CONTACT_PARAMS_STATE_COUNTY_LABEL" description="CONTACT_PARAMS_NAME_DESC" > <option value="">JGLOBAL_USE_GLOBAL</option> <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_postcode" type="list" label="CONTACT_PARAMS_POST_ZIP_CODE_LABEL" description="CONTACT_PARAMS_NAME_DESC" > <option value="">JGLOBAL_USE_GLOBAL</option> <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_country" type="list" label="CONTACT_PARAMS_COUNTRY_LABEL" description="CONTACT_PARAMS_NAME_DESC" > <option value="">JGLOBAL_USE_GLOBAL</option> <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_telephone" type="list" label="CONTACT_PARAMS_TELEPHONE_LABEL" description="CONTACT_PARAMS_NAME_DESC" > <option value="">JGLOBAL_USE_GLOBAL</option> <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_mobile" type="list" label="CONTACT_PARAMS_MOBILE_LABEL" description="CONTACT_PARAMS_NAME_DESC" > <option value="">JGLOBAL_USE_GLOBAL</option> <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_fax" type="list" label="CONTACT_PARAMS_FAX_LABEL" description="CONTACT_PARAMS_NAME_DESC" > <option value="">JGLOBAL_USE_GLOBAL</option> <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_webpage" type="list" label="CONTACT_PARAMS_WEBPAGE_LABEL" description="CONTACT_PARAMS_NAME_DESC" > <option value="">JGLOBAL_USE_GLOBAL</option> <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_image" type="list" label="CONTACT_PARAMS_IMAGE_LABEL" description="CONTACT_PARAMS_NAME_DESC" > <option value="">JGLOBAL_USE_GLOBAL</option> <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="allow_vcard" type="list" label="CONTACT_PARAMS_VCARD_LABEL" description="CONTACT_PARAMS_VCARD_LABEL" > <option value="">JGLOBAL_USE_GLOBAL</option> <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_misc" type="list" label="CONTACT_PARAMS_MISC_INFO_LABEL" description="CONTACT_PARAMS_NAME_DESC" > <option value="">JGLOBAL_USE_GLOBAL</option> <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_articles" type="list" label="CONTACT_SHOW_ARTICLES_LABEL" description="CONTACT_SHOW_ARTICLES_DESC" > <option value="">JGLOBAL_USE_GLOBAL</option> <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="articles_display_num" type="list" label="COM_CONTACT_FIELD_ARTICLES_DISPLAY_NUM_LABEL" description="COM_CONTACT_FIELD_ARTICLES_DISPLAY_NUM_DESC" default="" > <option value="">JGLOBAL_USE_GLOBAL</option> <option value="5">J5</option> <option value="10">J10</option> <option value="15">J15</option> <option value="20">J20</option> <option value="25">J25</option> <option value="30">J30</option> <option value="50">J50</option> <option value="75">J75</option> <option value="100">J100</option> <option value="150">J150</option> <option value="200">J200</option> <option value="250">J250</option> <option value="300">J300</option> <option value="0">JALL</option> </field> <field name="show_profile" type="list" label="CONTACT_PROFILE_SHOW_LABEL" > <option value="">JGLOBAL_USE_GLOBAL</option> <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_user_custom_fields" type="fieldgroups" label="COM_CONTACT_FIELD_USER_CUSTOM_FIELDS_SHOW_LABEL" description="COM_CONTACT_FIELD_USER_CUSTOM_FIELDS_SHOW_DESC" multiple="true" context="com_users.user" > <option value="-1">JALL</option> </field> <field name="show_links" type="list" label="CONTACT_SHOW_LINKS_LABEL" description="CONTACT_SHOW_LINKS_DESC" > <option value="">JGLOBAL_USE_GLOBAL</option> <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="linka_name" type="text" label="CONTACT_LINKA_NAME_LABEL" description="CONTACT_LINKA_NAME_DESC" size="30" /> <field name="linka" type="text" label="CONTACT_LINKA_LABEL" description="CONTACT_LINKA_DESC" size="30" /> <field name="linkb_name" type="text" label="CONTACT_LINKB_NAME_LABEL" description="CONTACT_LINKB_NAME_DESC" size="30" /> <field name="linkb" type="text" label="CONTACT_LINKB_LABEL" description="CONTACT_LINKB_DESC" size="30" /> <field name="linkc_name" type="text" label="CONTACT_LINKC_NAME_LABEL" description="CONTACT_LINKC_NAME_DESC" size="30" /> <field name="linkc" type="text" label="CONTACT_LINKC_LABEL" description="CONTACT_LINKC_DESC" size="30" /> <field name="linkd_name" type="text" label="CONTACT_LINKD_NAME_LABEL" description="CONTACT_LINKD_NAME_DESC" size="30" /> <field name="linkd" type="text" label="CONTACT_LINKD_LABEL" description="CONTACT_LINKD_DESC" size="30" /> <field name="linke_name" type="text" label="CONTACT_LINKE_NAME_LABEL" description="CONTACT_LINKE_NAME_DESC" size="30" /> <field name="linke" type="text" label="CONTACT_LINKE_LABEL" description="CONTACT_LINKE_DESC" size="30" /> </fieldset> </fields> <fields name="email_form"> <fieldset name="email_form" label="CONTACT_EMAIL_FORM_LABEL"> <field name="show_email_form" type="list" label="CONTACT_EMAIL_SHOW_FORM_LABEL" description="CONTACT_EMAIL_SHOW_FORM_DESC" > <option value="">JGLOBAL_USE_GLOBAL</option> <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="email_description" type="text" label="CONTACT_EMAIL_DESCRIPTION_TEXT_LABEL" description="CONTACT_EMAIL_DESCRIPTION_TEXT_DESC" size="30" /> <field name="show_email_copy" type="list" label="CONTACT_EMAIL_EMAIL_COPY_LABEL" description="CONTACT_EMAIL_EMAIL_COPY_DESC" > <option value="">JGLOBAL_USE_GLOBAL</option> <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="validate_session" type="list" label="CONTACT_CONFIG_SESSION_CHECK_LABEL" description="CONTACT_CONFIG_SESSION_CHECK_DESC" > <option value="">JGLOBAL_USE_GLOBAL</option> <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="custom_reply" type="list" label="CONTACT_CONFIG_CUSTOM_REPLY" description="CONTACT_CONFIG_CUSTOM_REPLY_DESC" > <option value="">JGLOBAL_USE_GLOBAL</option> <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="redirect" type="text" label="COM_CONTACT_FIELD_CONFIG_REDIRECT_LABEL" description="COM_CONTACT_FIELD_CONFIG_REDIRECT_DESC" size="30" /> </fieldset> </fields> </form> models/forms/contact.xml 0000644 00000003343 15075071342 0011341 0 ustar 00 <?xml version="1.0" encoding="UTF-8"?> <form> <fieldset name="contact" addrulepath="components/com_contact/models/rules" label="COM_CONTACT_CONTACT_DEFAULT_LABEL"> <field name="spacer" type="spacer" label="COM_CONTACT_CONTACT_REQUIRED" class="text" /> <field name="contact_name" type="text" label="COM_CONTACT_CONTACT_EMAIL_NAME_LABEL" description="COM_CONTACT_CONTACT_EMAIL_NAME_DESC" id="contact-name" size="30" filter="string" required="true" /> <field name="contact_email" type="email" label="COM_CONTACT_EMAIL_LABEL" description="COM_CONTACT_EMAIL_DESC" id="contact-email" size="30" filter="string" validate="contactemail" autocomplete="email" required="true" /> <field name="contact_subject" type="text" label="COM_CONTACT_CONTACT_MESSAGE_SUBJECT_LABEL" description="COM_CONTACT_CONTACT_MESSAGE_SUBJECT_DESC" id="contact-emailmsg" size="60" filter="string" validate="contactemailsubject" required="true" /> <field name="contact_message" type="textarea" label="COM_CONTACT_CONTACT_ENTER_MESSAGE_LABEL" description="COM_CONTACT_CONTACT_ENTER_MESSAGE_DESC" cols="50" rows="10" id="contact-message" filter="safehtml" validate="contactemailmessage" required="true" /> <field name="contact_email_copy" type="checkbox" label="COM_CONTACT_CONTACT_EMAIL_A_COPY_LABEL" description="COM_CONTACT_CONTACT_EMAIL_A_COPY_DESC" id="contact-email-copy" default="0" /> </fieldset> <fieldset name="captcha"> <field name="captcha" type="captcha" label="COM_CONTACT_CAPTCHA_LABEL" description="COM_CONTACT_CAPTCHA_DESC" validate="captcha" namespace="contact" /> </fieldset> </form> models/rules/contactemailmessage.php 0000644 00000003422 15075071342 0013707 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\Registry\Registry; use Joomla\String\StringHelper; /** * JFormRule for com_contact to make sure the message body contains no banned word. * * @since 1.6 */ class JFormRuleContactEmailMessage extends JFormRule { /** * Method to test a message for banned words * * @param SimpleXMLElement $element The SimpleXMLElement object representing the <field /> tag for the form field object. * @param mixed $value The form field value to validate. * @param string $group The field name group control value. This acts as an array container for the field. * For example if the field has name="foo" and the group value is set to "bar" then the * full field name would end up being "bar[foo]". * @param Registry $input An optional Registry object with the entire data set to validate against the entire form. * @param JForm $form The form object for which the field is being tested. * * @return boolean True if the value is valid, false otherwise. */ public function test(SimpleXMLElement $element, $value, $group = null, Registry $input = null, JForm $form = null) { $params = JComponentHelper::getParams('com_contact'); $banned = $params->get('banned_text'); if ($banned) { foreach (explode(';', $banned) as $item) { if ($item != '' && StringHelper::stristr($value, $item) !== false) { return false; } } } return true; } } models/rules/contactemailsubject.php 0000644 00000003411 15075071342 0013720 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\Registry\Registry; use Joomla\String\StringHelper; /** * JFormRule for com_contact to make sure the subject contains no banned word. * * @since 1.6 */ class JFormRuleContactEmailSubject extends JFormRule { /** * Method to test for a banned subject * * @param SimpleXMLElement $element The SimpleXMLElement object representing the <field /> tag for the form field object. * @param mixed $value The form field value to validate. * @param string $group The field name group control value. This acts as an array container for the field. * For example if the field has name="foo" and the group value is set to "bar" then the * full field name would end up being "bar[foo]". * @param Registry $input An optional Registry object with the entire data set to validate against the entire form. * @param JForm $form The form object for which the field is being tested. * * @return boolean True if the value is valid, false otherwise */ public function test(SimpleXMLElement $element, $value, $group = null, Registry $input = null, JForm $form = null) { $params = JComponentHelper::getParams('com_contact'); $banned = $params->get('banned_subject'); if ($banned) { foreach (explode(';', $banned) as $item) { if ($item != '' && StringHelper::stristr($value, $item) !== false) { return false; } } } return true; } } models/rules/contactemail.php 0000644 00000003607 15075071342 0012347 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\Registry\Registry; use Joomla\String\StringHelper; JFormHelper::loadRuleClass('email'); /** * JFormRule for com_contact to make sure the email address is not blocked. * * @since 1.6 */ class JFormRuleContactEmail extends JFormRuleEmail { /** * Method to test for banned email addresses * * @param SimpleXMLElement $element The SimpleXMLElement object representing the <field /> tag for the form field object. * @param mixed $value The form field value to validate. * @param string $group The field name group control value. This acts as an array container for the field. * For example if the field has name="foo" and the group value is set to "bar" then the * full field name would end up being "bar[foo]". * @param Registry $input An optional Registry object with the entire data set to validate against the entire form. * @param JForm $form The form object for which the field is being tested. * * @return boolean True if the value is valid, false otherwise. */ public function test(SimpleXMLElement $element, $value, $group = null, Registry $input = null, JForm $form = null) { if (!parent::test($element, $value, $group, $input, $form)) { return false; } $params = JComponentHelper::getParams('com_contact'); $banned = $params->get('banned_email'); if ($banned) { foreach (explode(';', $banned) as $item) { if ($item != '' && StringHelper::stristr($value, $item) !== false) { return false; } } } return true; } } models/featured.php 0000644 00000014170 15075071342 0010346 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\Registry\Registry; /** * Featured contact model class. * * @since 1.6.0 */ class ContactModelFeatured extends JModelList { /** * Category items data * * @var array * @since 1.6.0-beta1 * @deprecated 4.0 Variable not used since 1.6.0-beta8 */ protected $_item = null; /** * Who knows what this was for? It has never been used * * @var array * @since 1.6.0-beta1 * @deprecated 4.0 Variable not used ever */ protected $_articles = null; /** * Get the siblings of the category * * @var array * @since 1.6.0-beta1 * @deprecated 4.0 Variable not used since 1.6.0-beta8 */ protected $_siblings = null; /** * Get the children of the category * * @var array * @since 1.6.0-beta1 * @deprecated 4.0 Variable not used since 1.6.0-beta8 */ protected $_children = null; /** * Get the parent of the category * * @var array * @since 1.6.0-beta1 * @deprecated 4.0 Variable not used since 1.6.0-beta8 */ protected $_parent = null; /** * The category that applies. * * @access protected * @var object * @deprecated 4.0 Variable not used ever */ protected $_category = null; /** * The list of other contact categories. * * @access protected * @var array * @deprecated 4.0 Variable not used ever */ protected $_categories = null; /** * Constructor. * * @param array $config An optional associative array of configuration settings. * * @since 1.6 */ public function __construct($config = array()) { if (empty($config['filter_fields'])) { $config['filter_fields'] = array( 'id', 'a.id', 'name', 'a.name', 'con_position', 'a.con_position', 'suburb', 'a.suburb', 'state', 'a.state', 'country', 'a.country', 'ordering', 'a.ordering', ); } parent::__construct($config); } /** * Method to get a list of items. * * @return mixed An array of objects on success, false on failure. */ public function getItems() { // Invoke the parent getItems method to get the main list $items = parent::getItems(); // Convert the params field into an object, saving original in _params for ($i = 0, $n = count($items); $i < $n; $i++) { $item = &$items[$i]; if (!isset($this->_params)) { $item->params = new Registry($item->params); } } return $items; } /** * Method to build an SQL query to load the list data. * * @return string An SQL query * * @since 1.6 */ protected function getListQuery() { $user = JFactory::getUser(); $groups = implode(',', $user->getAuthorisedViewLevels()); // Create a new query object. $db = $this->getDbo(); $query = $db->getQuery(true); // Select required fields from the categories. $query->select($this->getState('list.select', 'a.*')) ->from($db->quoteName('#__contact_details') . ' AS a') ->where('a.access IN (' . $groups . ')') ->where('a.featured=1') ->join('INNER', '#__categories AS c ON c.id = a.catid') ->where('c.access IN (' . $groups . ')'); // Filter by category. if ($categoryId = $this->getState('category.id')) { $query->where('a.catid = ' . (int) $categoryId); } // Change for sqlsrv... aliased c.published to cat_published $query->select('c.published as cat_published, c.published AS parents_published') ->where('c.published = 1'); // Filter by state $state = $this->getState('filter.published'); if (is_numeric($state)) { $query->where('a.published = ' . (int) $state); // Filter by start and end dates. $nullDate = $db->quote($db->getNullDate()); $date = JFactory::getDate(); $nowDate = $db->quote($date->toSql()); $query->where('(a.publish_up = ' . $nullDate . ' OR a.publish_up <= ' . $nowDate . ')') ->where('(a.publish_down = ' . $nullDate . ' OR a.publish_down >= ' . $nowDate . ')'); } // Filter by language if ($this->getState('filter.language')) { $query->where('a.language in (' . $db->quote(JFactory::getLanguage()->getTag()) . ',' . $db->quote('*') . ')'); } // Add the list ordering clause. $query->order($db->escape($this->getState('list.ordering', 'a.ordering')) . ' ' . $db->escape($this->getState('list.direction', 'ASC'))); return $query; } /** * Method to auto-populate the model state. * * Note. Calling getState in this method will result in recursion. * * @param string $ordering An optional ordering field. * @param string $direction An optional direction (asc|desc). * * @return void * * @since 1.6 */ protected function populateState($ordering = null, $direction = null) { $app = JFactory::getApplication(); $params = JComponentHelper::getParams('com_contact'); // List state information $limit = $app->getUserStateFromRequest('global.list.limit', 'limit', $app->get('list_limit'), 'uint'); $this->setState('list.limit', $limit); $limitstart = $app->input->get('limitstart', 0, 'uint'); $this->setState('list.start', $limitstart); $orderCol = $app->input->get('filter_order', 'ordering'); if (!in_array($orderCol, $this->filter_fields)) { $orderCol = 'ordering'; } $this->setState('list.ordering', $orderCol); $listOrder = $app->input->get('filter_order_Dir', 'ASC'); if (!in_array(strtoupper($listOrder), array('ASC', 'DESC', ''))) { $listOrder = 'ASC'; } $this->setState('list.direction', $listOrder); $user = JFactory::getUser(); if ((!$user->authorise('core.edit.state', 'com_contact')) && (!$user->authorise('core.edit', 'com_contact'))) { // Limit to published for people who can't edit or edit.state. $this->setState('filter.published', 1); // Filter by start and end dates. $this->setState('filter.publish_date', true); } $this->setState('filter.language', JLanguageMultilang::isEnabled()); // Load the parameters. $this->setState('params', $params); } } models/category.php 0000644 00000025516 15075071342 0010372 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\Registry\Registry; /** * Single item model for a contact * * @package Joomla.Site * @subpackage com_contact * @since 1.5 */ class ContactModelCategory extends JModelList { /** * Category items data * * @var array */ protected $_item = null; protected $_articles = null; protected $_siblings = null; protected $_children = null; protected $_parent = null; /** * The category that applies. * * @access protected * @var object */ protected $_category = null; /** * The list of other contact categories. * * @access protected * @var array */ protected $_categories = null; /** * Constructor. * * @param array $config An optional associative array of configuration settings. * * @since 1.6 */ public function __construct($config = array()) { if (empty($config['filter_fields'])) { $config['filter_fields'] = array( 'id', 'a.id', 'name', 'a.name', 'con_position', 'a.con_position', 'suburb', 'a.suburb', 'state', 'a.state', 'country', 'a.country', 'ordering', 'a.ordering', 'sortname', 'sortname1', 'a.sortname1', 'sortname2', 'a.sortname2', 'sortname3', 'a.sortname3' ); } parent::__construct($config); } /** * Method to get a list of items. * * @return mixed An array of objects on success, false on failure. */ public function getItems() { // Invoke the parent getItems method to get the main list $items = parent::getItems(); // Convert the params field into an object, saving original in _params for ($i = 0, $n = count($items); $i < $n; $i++) { $item = &$items[$i]; if (!isset($this->_params)) { $item->params = new Registry($item->params); } // Some contexts may not use tags data at all, so we allow callers to disable loading tag data if ($this->getState('load_tags', true)) { $this->tags = new JHelperTags; $this->tags->getItemTags('com_contact.contact', $item->id); } } return $items; } /** * Method to build an SQL query to load the list data. * * @return string An SQL query * * @since 1.6 */ protected function getListQuery() { $user = JFactory::getUser(); $groups = implode(',', $user->getAuthorisedViewLevels()); // Create a new query object. $db = $this->getDbo(); $query = $db->getQuery(true); // Select required fields from the categories. // Changes for sqlsrv $case_when = ' CASE WHEN '; $case_when .= $query->charLength('a.alias', '!=', '0'); $case_when .= ' THEN '; $a_id = $query->castAsChar('a.id'); $case_when .= $query->concatenate(array($a_id, 'a.alias'), ':'); $case_when .= ' ELSE '; $case_when .= $a_id . ' END as slug'; $case_when1 = ' CASE WHEN '; $case_when1 .= $query->charLength('c.alias', '!=', '0'); $case_when1 .= ' THEN '; $c_id = $query->castAsChar('c.id'); $case_when1 .= $query->concatenate(array($c_id, 'c.alias'), ':'); $case_when1 .= ' ELSE '; $case_when1 .= $c_id . ' END as catslug'; $query->select($this->getState('list.select', 'a.*') . ',' . $case_when . ',' . $case_when1) /** * TODO: we actually should be doing it but it's wrong this way * . ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(\':\', a.id, a.alias) ELSE a.id END as slug, ' * . ' CASE WHEN CHAR_LENGTH(c.alias) THEN CONCAT_WS(\':\', c.id, c.alias) ELSE c.id END AS catslug '); */ ->from($db->quoteName('#__contact_details') . ' AS a') ->join('LEFT', '#__categories AS c ON c.id = a.catid') ->where('a.access IN (' . $groups . ')'); // Filter by category. if ($categoryId = $this->getState('category.id')) { $query->where('a.catid = ' . (int) $categoryId) ->where('c.access IN (' . $groups . ')'); } // Join over the users for the author and modified_by names. $query->select("CASE WHEN a.created_by_alias > ' ' THEN a.created_by_alias ELSE ua.name END AS author") ->select('ua.email AS author_email') ->join('LEFT', '#__users AS ua ON ua.id = a.created_by') ->join('LEFT', '#__users AS uam ON uam.id = a.modified_by'); // Filter by state $state = $this->getState('filter.published'); if (is_numeric($state)) { $query->where('a.published = ' . (int) $state); } else { $query->where('(a.published IN (0,1,2))'); } // Filter by start and end dates. $nullDate = $db->quote($db->getNullDate()); $nowDate = $db->quote(JFactory::getDate()->toSql()); if ($this->getState('filter.publish_date')) { $query->where('(a.publish_up = ' . $nullDate . ' OR a.publish_up <= ' . $nowDate . ')') ->where('(a.publish_down = ' . $nullDate . ' OR a.publish_down >= ' . $nowDate . ')'); } // Filter by search in title $search = $this->getState('list.filter'); if (!empty($search)) { $search = $db->quote('%' . $db->escape($search, true) . '%'); $query->where('(a.name LIKE ' . $search . ')'); } // Filter by language if ($this->getState('filter.language')) { $query->where('a.language in (' . $db->quote(JFactory::getLanguage()->getTag()) . ',' . $db->quote('*') . ')'); } // Set sortname ordering if selected if ($this->getState('list.ordering') === 'sortname') { $query->order($db->escape('a.sortname1') . ' ' . $db->escape($this->getState('list.direction', 'ASC'))) ->order($db->escape('a.sortname2') . ' ' . $db->escape($this->getState('list.direction', 'ASC'))) ->order($db->escape('a.sortname3') . ' ' . $db->escape($this->getState('list.direction', 'ASC'))); } else { $query->order($db->escape($this->getState('list.ordering', 'a.ordering')) . ' ' . $db->escape($this->getState('list.direction', 'ASC'))); } return $query; } /** * Method to auto-populate the model state. * * Note. Calling getState in this method will result in recursion. * * @param string $ordering An optional ordering field. * @param string $direction An optional direction (asc|desc). * * @return void * * @since 1.6 */ protected function populateState($ordering = null, $direction = null) { $app = JFactory::getApplication(); $params = JComponentHelper::getParams('com_contact'); // List state information $format = $app->input->getWord('format'); if ($format === 'feed') { $limit = $app->get('feed_limit'); } else { $limit = $app->getUserStateFromRequest('global.list.limit', 'limit', $app->get('list_limit'), 'uint'); } $this->setState('list.limit', $limit); $limitstart = $app->input->get('limitstart', 0, 'uint'); $this->setState('list.start', $limitstart); // Optional filter text $itemid = $app->input->get('Itemid', 0, 'int'); $search = $app->getUserStateFromRequest('com_contact.category.list.' . $itemid . '.filter-search', 'filter-search', '', 'string'); $this->setState('list.filter', $search); // Get list ordering default from the parameters $menuParams = new Registry; if ($menu = $app->getMenu()->getActive()) { $menuParams->loadString($menu->params); } $mergedParams = clone $params; $mergedParams->merge($menuParams); $orderCol = $app->input->get('filter_order', $mergedParams->get('initial_sort', 'ordering')); if (!in_array($orderCol, $this->filter_fields)) { $orderCol = 'ordering'; } $this->setState('list.ordering', $orderCol); $listOrder = $app->input->get('filter_order_Dir', 'ASC'); if (!in_array(strtoupper($listOrder), array('ASC', 'DESC', ''))) { $listOrder = 'ASC'; } $this->setState('list.direction', $listOrder); $id = $app->input->get('id', 0, 'int'); $this->setState('category.id', $id); $user = JFactory::getUser(); if ((!$user->authorise('core.edit.state', 'com_contact')) && (!$user->authorise('core.edit', 'com_contact'))) { // Limit to published for people who can't edit or edit.state. $this->setState('filter.published', 1); // Filter by start and end dates. $this->setState('filter.publish_date', true); } $this->setState('filter.language', JLanguageMultilang::isEnabled()); // Load the parameters. $this->setState('params', $params); } /** * Method to get category data for the current category * * @return object The category object * * @since 1.5 */ public function getCategory() { if (!is_object($this->_item)) { $app = JFactory::getApplication(); $menu = $app->getMenu(); $active = $menu->getActive(); $params = new Registry; if ($active) { $params->loadString($active->params); } $options = array(); $options['countItems'] = $params->get('show_cat_items', 1) || $params->get('show_empty_categories', 0); $categories = JCategories::getInstance('Contact', $options); $this->_item = $categories->get($this->getState('category.id', 'root')); if (is_object($this->_item)) { $this->_children = $this->_item->getChildren(); $this->_parent = false; if ($this->_item->getParent()) { $this->_parent = $this->_item->getParent(); } $this->_rightsibling = $this->_item->getSibling(); $this->_leftsibling = $this->_item->getSibling(false); } else { $this->_children = false; $this->_parent = false; } } return $this->_item; } /** * Get the parent category. * * @return mixed An array of categories or false if an error occurs. */ public function getParent() { if (!is_object($this->_item)) { $this->getCategory(); } return $this->_parent; } /** * Get the sibling (adjacent) categories. * * @return mixed An array of categories or false if an error occurs. */ public function &getLeftSibling() { if (!is_object($this->_item)) { $this->getCategory(); } return $this->_leftsibling; } /** * Get the sibling (adjacent) categories. * * @return mixed An array of categories or false if an error occurs. */ public function &getRightSibling() { if (!is_object($this->_item)) { $this->getCategory(); } return $this->_rightsibling; } /** * Get the child categories. * * @return mixed An array of categories or false if an error occurs. */ public function &getChildren() { if (!is_object($this->_item)) { $this->getCategory(); } return $this->_children; } /** * Increment the hit counter for the category. * * @param integer $pk Optional primary key of the category to increment. * * @return boolean True if successful; false otherwise and internal error set. * * @since 3.2 */ public function hit($pk = 0) { $input = JFactory::getApplication()->input; $hitcount = $input->getInt('hitcount', 1); if ($hitcount) { $pk = (!empty($pk)) ? $pk : (int) $this->getState('category.id'); $table = JTable::getInstance('Category', 'JTable'); $table->load($pk); $table->hit($pk); } return true; } } router.php 0000644 00000014211 15075071342 0006600 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; /** * Routing class from com_contact * * @since 3.3 */ class ContactRouter extends JComponentRouterView { protected $noIDs = false; /** * Search Component router constructor * * @param JApplicationCms $app The application object * @param JMenu $menu The menu object to work with */ public function __construct($app = null, $menu = null) { $params = JComponentHelper::getParams('com_contact'); $this->noIDs = (bool) $params->get('sef_ids'); $categories = new JComponentRouterViewconfiguration('categories'); $categories->setKey('id'); $this->registerView($categories); $category = new JComponentRouterViewconfiguration('category'); $category->setKey('id')->setParent($categories, 'catid')->setNestable(); $this->registerView($category); $contact = new JComponentRouterViewconfiguration('contact'); $contact->setKey('id')->setParent($category, 'catid'); $this->registerView($contact); $this->registerView(new JComponentRouterViewconfiguration('featured')); parent::__construct($app, $menu); $this->attachRule(new JComponentRouterRulesMenu($this)); if ($params->get('sef_advanced', 0)) { $this->attachRule(new JComponentRouterRulesStandard($this)); $this->attachRule(new JComponentRouterRulesNomenu($this)); } else { JLoader::register('ContactRouterRulesLegacy', __DIR__ . '/helpers/legacyrouter.php'); $this->attachRule(new ContactRouterRulesLegacy($this)); } } /** * Method to get the segment(s) for a category * * @param string $id ID of the category to retrieve the segments for * @param array $query The request that is built right now * * @return array|string The segments of this item */ public function getCategorySegment($id, $query) { $category = JCategories::getInstance($this->getName())->get($id); if ($category) { $path = array_reverse($category->getPath(), true); $path[0] = '1:root'; if ($this->noIDs) { foreach ($path as &$segment) { list($id, $segment) = explode(':', $segment, 2); } } return $path; } return array(); } /** * Method to get the segment(s) for a category * * @param string $id ID of the category to retrieve the segments for * @param array $query The request that is built right now * * @return array|string The segments of this item */ public function getCategoriesSegment($id, $query) { return $this->getCategorySegment($id, $query); } /** * Method to get the segment(s) for a contact * * @param string $id ID of the contact to retrieve the segments for * @param array $query The request that is built right now * * @return array|string The segments of this item */ public function getContactSegment($id, $query) { if (!strpos($id, ':')) { $db = JFactory::getDbo(); $dbquery = $db->getQuery(true); $dbquery->select($dbquery->qn('alias')) ->from($dbquery->qn('#__contact_details')) ->where('id = ' . $dbquery->q((int) $id)); $db->setQuery($dbquery); $id .= ':' . $db->loadResult(); } if ($this->noIDs) { list($void, $segment) = explode(':', $id, 2); return array($void => $segment); } return array((int) $id => $id); } /** * Method to get the id for a category * * @param string $segment Segment to retrieve the ID for * @param array $query The request that is parsed right now * * @return mixed The id of this item or false */ public function getCategoryId($segment, $query) { if (isset($query['id'])) { $category = JCategories::getInstance($this->getName(), array('access' => false))->get($query['id']); if ($category) { foreach ($category->getChildren() as $child) { if ($this->noIDs) { if ($child->alias == $segment) { return $child->id; } } else { if ($child->id == (int) $segment) { return $child->id; } } } } } return false; } /** * Method to get the segment(s) for a category * * @param string $segment Segment to retrieve the ID for * @param array $query The request that is parsed right now * * @return mixed The id of this item or false */ public function getCategoriesId($segment, $query) { return $this->getCategoryId($segment, $query); } /** * Method to get the segment(s) for a contact * * @param string $segment Segment of the contact to retrieve the ID for * @param array $query The request that is parsed right now * * @return mixed The id of this item or false */ public function getContactId($segment, $query) { if ($this->noIDs) { $db = JFactory::getDbo(); $dbquery = $db->getQuery(true); $dbquery->select($dbquery->qn('id')) ->from($dbquery->qn('#__contact_details')) ->where('alias = ' . $dbquery->q($segment)) ->where('catid = ' . $dbquery->q($query['id'])); $db->setQuery($dbquery); return (int) $db->loadResult(); } return (int) $segment; } } /** * Contact router functions * * These functions are proxys for the new router interface * for old SEF extensions. * * @param array &$query An array of URL arguments * * @return array The URL arguments to use to assemble the subsequent URL. * * @deprecated 4.0 Use Class based routers instead */ function ContactBuildRoute(&$query) { $app = JFactory::getApplication(); $router = new ContactRouter($app, $app->getMenu()); return $router->build($query); } /** * Contact router functions * * These functions are proxys for the new router interface * for old SEF extensions. * * @param array $segments The segments of the URL to parse. * * @return array The URL attributes to be used by the application. * * @deprecated 4.0 Use Class based routers instead */ function ContactParseRoute($segments) { $app = JFactory::getApplication(); $router = new ContactRouter($app, $app->getMenu()); return $router->parse($segments); } helpers/legacyrouter.php 0000644 00000013477 15075071342 0011444 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; /** * Legacy routing rules class from com_contact * * @since 3.6 * @deprecated 4.0 */ class ContactRouterRulesLegacy implements JComponentRouterRulesInterface { /** * Constructor for this legacy router * * @param JComponentRouterAdvanced $router The router this rule belongs to * * @since 3.6 * @deprecated 4.0 */ public function __construct($router) { $this->router = $router; } /** * Preprocess the route for the com_contact component * * @param array &$query An array of URL arguments * * @return void * * @since 3.6 * @deprecated 4.0 */ public function preprocess(&$query) { } /** * Build the route for the com_contact component * * @param array &$query An array of URL arguments * @param array &$segments The URL arguments to use to assemble the subsequent URL. * * @return void * * @since 3.6 * @deprecated 4.0 */ public function build(&$query, &$segments) { // Get a menu item based on Itemid or currently active $params = JComponentHelper::getParams('com_contact'); $advanced = $params->get('sef_advanced_link', 0); if (empty($query['Itemid'])) { $menuItem = $this->router->menu->getActive(); } else { $menuItem = $this->router->menu->getItem($query['Itemid']); } $mView = empty($menuItem->query['view']) ? null : $menuItem->query['view']; $mId = empty($menuItem->query['id']) ? null : $menuItem->query['id']; if (isset($query['view'])) { $view = $query['view']; if (empty($query['Itemid']) || empty($menuItem) || $menuItem->component != 'com_contact') { $segments[] = $query['view']; } unset($query['view']); } // Are we dealing with a contact that is attached to a menu item? if (isset($view) && ($mView == $view) && isset($query['id']) && ($mId == (int) $query['id'])) { unset($query['view'], $query['catid'], $query['id']); return; } if (isset($view) && ($view == 'category' || $view == 'contact')) { if ($mId != (int) $query['id'] || $mView != $view) { if ($view == 'contact' && isset($query['catid'])) { $catid = $query['catid']; } elseif (isset($query['id'])) { $catid = $query['id']; } $menuCatid = $mId; $categories = JCategories::getInstance('Contact'); $category = $categories->get($catid); if ($category) { // TODO Throw error that the category either not exists or is unpublished $path = array_reverse($category->getPath()); $array = array(); foreach ($path as $id) { if ((int) $id == (int) $menuCatid) { break; } if ($advanced) { list($tmp, $id) = explode(':', $id, 2); } $array[] = $id; } $segments = array_merge($segments, array_reverse($array)); } if ($view == 'contact') { if ($advanced) { list($tmp, $id) = explode(':', $query['id'], 2); } else { $id = $query['id']; } $segments[] = $id; } } unset($query['id'], $query['catid']); } if (isset($query['layout'])) { if (!empty($query['Itemid']) && isset($menuItem->query['layout'])) { if ($query['layout'] == $menuItem->query['layout']) { unset($query['layout']); } } else { if ($query['layout'] == 'default') { unset($query['layout']); } } } $total = count($segments); for ($i = 0; $i < $total; $i++) { $segments[$i] = str_replace(':', '-', $segments[$i]); } } /** * Parse the segments of a URL. * * @param array &$segments The segments of the URL to parse. * @param array &$vars The URL attributes to be used by the application. * * @return void * * @since 3.6 * @deprecated 4.0 */ public function parse(&$segments, &$vars) { $total = count($segments); for ($i = 0; $i < $total; $i++) { $segments[$i] = preg_replace('/-/', ':', $segments[$i], 1); } // Get the active menu item. $item = $this->router->menu->getActive(); $params = JComponentHelper::getParams('com_contact'); $advanced = $params->get('sef_advanced_link', 0); // Count route segments $count = count($segments); // Standard routing for newsfeeds. if (!isset($item)) { $vars['view'] = $segments[0]; $vars['id'] = $segments[$count - 1]; return; } // From the categories view, we can only jump to a category. $id = (isset($item->query['id']) && $item->query['id'] > 1) ? $item->query['id'] : 'root'; $contactCategory = JCategories::getInstance('Contact')->get($id); $categories = $contactCategory ? $contactCategory->getChildren() : array(); $vars['catid'] = $id; $vars['id'] = $id; $found = 0; foreach ($segments as $segment) { $segment = $advanced ? str_replace(':', '-', $segment) : $segment; foreach ($categories as $category) { if ($category->slug == $segment || $category->alias == $segment) { $vars['id'] = $category->id; $vars['catid'] = $category->id; $vars['view'] = 'category'; $categories = $category->getChildren(); $found = 1; break; } } if ($found == 0) { if ($advanced) { $db = JFactory::getDbo(); $query = $db->getQuery(true) ->select($db->quoteName('id')) ->from('#__contact_details') ->where($db->quoteName('catid') . ' = ' . (int) $vars['catid']) ->where($db->quoteName('alias') . ' = ' . $db->quote($segment)); $db->setQuery($query); $nid = $db->loadResult(); } else { $nid = $segment; } $vars['id'] = $nid; $vars['view'] = 'contact'; } $found = 0; } } } helpers/route.php 0000644 00000003657 15075071342 0010074 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; /** * Contact Component Route Helper * * @static * @package Joomla.Site * @subpackage com_contact * @since 1.5 */ abstract class ContactHelperRoute { /** * Get the URL route for a contact from a contact ID, contact category ID and language * * @param integer $id The id of the contact * @param integer $catid The id of the contact's category * @param mixed $language The id of the language being used. * * @return string The link to the contact * * @since 1.5 */ public static function getContactRoute($id, $catid, $language = 0) { // Create the link $link = 'index.php?option=com_contact&view=contact&id=' . $id; if ($catid > 1) { $link .= '&catid=' . $catid; } if ($language && $language !== '*' && JLanguageMultilang::isEnabled()) { $link .= '&lang=' . $language; } return $link; } /** * Get the URL route for a contact category from a contact category ID and language * * @param mixed $catid The id of the contact's category either an integer id or an instance of JCategoryNode * @param mixed $language The id of the language being used. * * @return string The link to the contact * * @since 1.5 */ public static function getCategoryRoute($catid, $language = 0) { if ($catid instanceof JCategoryNode) { $id = $catid->id; } else { $id = (int) $catid; } if ($id < 1) { $link = ''; } else { // Create the link $link = 'index.php?option=com_contact&view=category&id=' . $id; if ($language && $language !== '*' && JLanguageMultilang::isEnabled()) { $link .= '&lang=' . $language; } } return $link; } } helpers/category.php 0000644 00000001267 15075071342 0010546 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; /** * Contact Component Category Tree * * @since 1.6 */ class ContactCategories extends JCategories { /** * Class constructor * * @param array $options Array of options * * @since 1.6 */ public function __construct($options = array()) { $options['table'] = '#__contact_details'; $options['extension'] = 'com_contact'; $options['statefield'] = 'published'; parent::__construct($options); } } helpers/association.php 0000644 00000003314 15075071342 0011240 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; JLoader::register('ContactHelper', JPATH_ADMINISTRATOR . '/components/com_contact/helpers/contact.php'); JLoader::register('ContactHelperRoute', JPATH_SITE . '/components/com_contact/helpers/route.php'); JLoader::register('CategoryHelperAssociation', JPATH_ADMINISTRATOR . '/components/com_categories/helpers/association.php'); /** * Contact Component Association Helper * * @since 3.0 */ abstract class ContactHelperAssociation extends CategoryHelperAssociation { /** * Method to get the associations for a given item * * @param integer $id Id of the item * @param string $view Name of the view * * @return array Array of associations for the item * * @since 3.0 */ public static function getAssociations($id = 0, $view = null) { $jinput = JFactory::getApplication()->input; $view = $view === null ? $jinput->get('view') : $view; $id = empty($id) ? $jinput->getInt('id') : $id; if ($view === 'contact') { if ($id) { $associations = JLanguageAssociations::getAssociations('com_contact', '#__contact_details', 'com_contact.item', $id); $return = array(); foreach ($associations as $tag => $item) { $return[$tag] = ContactHelperRoute::getContactRoute($item->id, (int) $item->catid, $item->language); } return $return; } } if ($view === 'category' || $view === 'categories') { return self::getCategoryAssociations($id, 'com_contact'); } return array(); } } controllers/contact_old.php 0000644 00000016561 15075071342 0012131 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2010 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; /** * Controller for single contact view * * @since 1.5.19 */ class ContactControllerContact extends JControllerForm { /** * Method to get a model object, loading it if required. * * @param string $name The model name. Optional. * @param string $prefix The class prefix. Optional. * @param array $config Configuration array for model. Optional. * * @return JModelLegacy The model. * * @since 1.6.4 */ public function getModel($name = '', $prefix = '', $config = array('ignore_request' => true)) { return parent::getModel($name, $prefix, array('ignore_request' => false)); } /** * Method to submit the contact form and send an email. * * @return boolean True on success sending the email. False on failure. * * @since 1.5.19 */ public function submit() { // Check for request forgeries. $this->checkToken(); $app = JFactory::getApplication(); $model = $this->getModel('contact'); $stub = $this->input->getString('id'); $id = (int) $stub; // Get the data from POST $data = $this->input->post->get('jform', array(), 'array'); // Get item $model->setState('filter.published', 1); $contact = $model->getItem($id); // Get item params, take menu parameters into account if necessary $active = $app->getMenu()->getActive(); $stateParams = clone $model->getState()->get('params'); // If the current view is the active item and a contact view for this contact, then the menu item params take priority if ($active && strpos($active->link, 'view=contact') && strpos($active->link, '&id=' . (int) $contact->id)) { // $item->params are the contact params, $temp are the menu item params // Merge so that the menu item params take priority $contact->params->merge($stateParams); } else { // Current view is not a single contact, so the contact params take priority here $stateParams->merge($contact->params); $contact->params = $stateParams; } // Check if the contact form is enabled if (!$contact->params->get('show_email_form')) { $this->setRedirect(JRoute::_('index.php?option=com_contact&view=contact&id=' . $stub . '&catid=' . $contact->catid, false)); return false; } // Check for a valid session cookie if ($contact->params->get('validate_session', 0)) { if (JFactory::getSession()->getState() !== 'active') { JError::raiseWarning(403, JText::_('JLIB_ENVIRONMENT_SESSION_INVALID')); // Save the data in the session. $app->setUserState('com_contact.contact.data', $data); // Redirect back to the contact form. $this->setRedirect(JRoute::_('index.php?option=com_contact&view=contact&id=' . $stub . '&catid=' . $contact->catid, false)); return false; } } // Contact plugins JPluginHelper::importPlugin('contact'); $dispatcher = JEventDispatcher::getInstance(); // Validate the posted data. $form = $model->getForm(); if (!$form) { JError::raiseError(500, $model->getError()); return false; } if (!$model->validate($form, $data)) { $errors = $model->getErrors(); foreach ($errors as $error) { $errorMessage = $error; if ($error instanceof Exception) { $errorMessage = $error->getMessage(); } $app->enqueueMessage($errorMessage, 'error'); } $app->setUserState('com_contact.contact.data', $data); $this->setRedirect(JRoute::_('index.php?option=com_contact&view=contact&id=' . $stub . '&catid=' . $contact->catid, false)); return false; } // Validation succeeded, continue with custom handlers $results = $dispatcher->trigger('onValidateContact', array(&$contact, &$data)); foreach ($results as $result) { if ($result instanceof Exception) { return false; } } // Passed Validation: Process the contact plugins to integrate with other applications $dispatcher->trigger('onSubmitContact', array(&$contact, &$data)); // Send the email $sent = false; if (!$contact->params->get('custom_reply')) { $sent = $this->_sendEmail($data, $contact, $contact->params->get('show_email_copy', 0)); } // Set the success message if it was a success if (!($sent instanceof Exception)) { $msg = JText::_('COM_CONTACT_EMAIL_THANKS'); } else { $msg = ''; } // Flush the data from the session $app->setUserState('com_contact.contact.data', null); // Redirect if it is set in the parameters, otherwise redirect back to where we came from if ($contact->params->get('redirect')) { $this->setRedirect($contact->params->get('redirect'), $msg); } else { $this->setRedirect(JRoute::_('index.php?option=com_contact&view=contact&id=' . $stub . '&catid=' . $contact->catid, false), $msg); } return true; } /** * Method to get a model object, loading it if required. * * @param array $data The data to send in the email. * @param stdClass $contact The user information to send the email to * @param boolean $emailCopyToSender True to send a copy of the email to the user. * * @return boolean True on success sending the email, false on failure. * * @since 1.6.4 */ private function _sendEmail($data, $contact, $emailCopyToSender) { $app = JFactory::getApplication(); if ($contact->email_to == '' && $contact->user_id != 0) { $contact_user = JUser::getInstance($contact->user_id); $contact->email_to = $contact_user->get('email'); } $mailfrom = $app->get('mailfrom'); $fromname = $app->get('fromname'); $sitename = $app->get('sitename'); $name = $data['contact_name']; $email = JStringPunycode::emailToPunycode($data['contact_email']); $subject = $data['contact_subject']; $body = $data['contact_message']; // Prepare email body $prefix = JText::sprintf('COM_CONTACT_ENQUIRY_TEXT', JUri::base()); $body = $prefix . "\n" . $name . ' <' . $email . '>' . "\r\n\r\n" . stripslashes($body); // Load the custom fields if (!empty($data['com_fields']) && $fields = FieldsHelper::getFields('com_contact.mail', $contact, true, $data['com_fields'])) { $output = FieldsHelper::render( 'com_contact.mail', 'fields.render', array( 'context' => 'com_contact.mail', 'item' => $contact, 'fields' => $fields, ) ); if ($output) { $body .= "\r\n\r\n" . $output; } } $mail = JFactory::getMailer(); $mail->addRecipient($contact->email_to); $mail->addReplyTo($email, $name); $mail->setSender(array($mailfrom, $fromname)); $mail->setSubject($sitename . ': ' . $subject); $mail->setBody($body); $sent = $mail->Send(); // If we are supposed to copy the sender, do so. // Check whether email copy function activated if ($emailCopyToSender == true && !empty($data['contact_email_copy'])) { $copytext = JText::sprintf('COM_CONTACT_COPYTEXT_OF', $contact->name, $sitename); $copytext .= "\r\n\r\n" . $body; $copysubject = JText::sprintf('COM_CONTACT_COPYSUBJECT_OF', $subject); $mail = JFactory::getMailer(); $mail->addRecipient($email); $mail->addReplyTo($email, $name); $mail->setSender(array($mailfrom, $fromname)); $mail->setSubject($copysubject); $mail->setBody($copytext); $sent = $mail->Send(); } return $sent; } } controllers/contact.php 0000644 00000016425 15075071342 0011272 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; /** * Controller for single contact view * * @since 1.5.19 */ class ContactControllerContact extends JControllerForm { /** * Method to get a model object, loading it if required. * * @param string $name The model name. Optional. * @param string $prefix The class prefix. Optional. * @param array $config Configuration array for model. Optional. * * @return JModelLegacy The model. * * @since 1.6.4 */ public function getModel($name = '', $prefix = '', $config = array('ignore_request' => true)) { return parent::getModel($name, $prefix, array('ignore_request' => false)); } /** * Method to submit the contact form and send an email. * * @return boolean True on success sending the email. False on failure. * * @since 1.5.19 */ public function submit() { // Check for request forgeries. $this->checkToken(); $app = JFactory::getApplication(); $model = $this->getModel('contact'); $stub = $this->input->getString('id'); $id = (int) $stub; // Get the data from POST $data = $this->input->post->get('jform', array(), 'array'); // Get item $model->setState('filter.published', 1); $contact = $model->getItem($id); // Get item params, take menu parameters into account if necessary $active = $app->getMenu()->getActive(); $stateParams = clone $model->getState()->get('params'); // If the current view is the active item and a contact view for this contact, then the menu item params take priority if ($active && strpos($active->link, 'view=contact') && strpos($active->link, '&id=' . (int) $contact->id)) { // $item->params are the contact params, $temp are the menu item params // Merge so that the menu item params take priority $contact->params->merge($stateParams); } else { // Current view is not a single contact, so the contact params take priority here $stateParams->merge($contact->params); $contact->params = $stateParams; } // Check if the contact form is enabled if (!$contact->params->get('show_email_form')) { $this->setRedirect(JRoute::_('index.php?option=com_contact&view=contact&id=' . $stub, false)); return false; } // Check for a valid session cookie if ($contact->params->get('validate_session', 0)) { if (JFactory::getSession()->getState() !== 'active') { JError::raiseWarning(403, JText::_('JLIB_ENVIRONMENT_SESSION_INVALID')); // Save the data in the session. $app->setUserState('com_contact.contact.data', $data); // Redirect back to the contact form. $this->setRedirect(JRoute::_('index.php?option=com_contact&view=contact&id=' . $stub, false)); return false; } } // Contact plugins JPluginHelper::importPlugin('contact'); $dispatcher = JEventDispatcher::getInstance(); // Validate the posted data. $form = $model->getForm(); if (!$form) { JError::raiseError(500, $model->getError()); return false; } if (!$model->validate($form, $data)) { $errors = $model->getErrors(); foreach ($errors as $error) { $errorMessage = $error; if ($error instanceof Exception) { $errorMessage = $error->getMessage(); } $app->enqueueMessage($errorMessage, 'error'); } $app->setUserState('com_contact.contact.data', $data); $this->setRedirect(JRoute::_('index.php?option=com_contact&view=contact&id=' . $stub, false)); return false; } // Validation succeeded, continue with custom handlers $results = $dispatcher->trigger('onValidateContact', array(&$contact, &$data)); foreach ($results as $result) { if ($result instanceof Exception) { return false; } } // Passed Validation: Process the contact plugins to integrate with other applications $dispatcher->trigger('onSubmitContact', array(&$contact, &$data)); // Send the email $sent = false; if (!$contact->params->get('custom_reply')) { $sent = $this->_sendEmail($data, $contact, $contact->params->get('show_email_copy', 0)); } // Set the success message if it was a success if (!($sent instanceof Exception)) { $msg = JText::_('COM_CONTACT_EMAIL_THANKS'); } else { $msg = ''; } // Flush the data from the session $app->setUserState('com_contact.contact.data', null); // Redirect if it is set in the parameters, otherwise redirect back to where we came from if ($contact->params->get('redirect')) { $this->setRedirect($contact->params->get('redirect'), $msg); } else { $this->setRedirect(JRoute::_('index.php?option=com_contact&view=contact&id=' . $stub, false), $msg); } return true; } /** * Method to get a model object, loading it if required. * * @param array $data The data to send in the email. * @param stdClass $contact The user information to send the email to * @param boolean $copy_email_activated True to send a copy of the email to the user. * * @return boolean True on success sending the email, false on failure. * * @since 1.6.4 */ private function _sendEmail($data, $contact, $copy_email_activated) { $app = JFactory::getApplication(); if ($contact->email_to == '' && $contact->user_id != 0) { $contact_user = JUser::getInstance($contact->user_id); $contact->email_to = $contact_user->get('email'); } $mailfrom = $app->get('mailfrom'); $fromname = $app->get('fromname'); $sitename = $app->get('sitename'); $name = $data['contact_name']; $email = JStringPunycode::emailToPunycode($data['contact_email']); $subject = $data['contact_subject']; $body = $data['contact_message']; // Prepare email body $prefix = JText::sprintf('COM_CONTACT_ENQUIRY_TEXT', JUri::base()); $body = $prefix . "\n" . $name . ' <' . $email . '>' . "\r\n\r\n" . stripslashes($body); // Load the custom fields if (!empty($data['com_fields']) && $fields = FieldsHelper::getFields('com_contact.mail', $contact, true, $data['com_fields'])) { $output = FieldsHelper::render( 'com_contact.mail', 'fields.render', array( 'context' => 'com_contact.mail', 'item' => $contact, 'fields' => $fields, ) ); if ($output) { $body .= "\r\n\r\n" . $output; } } $mail = JFactory::getMailer(); $mail->addRecipient($contact->email_to); $mail->addReplyTo($email, $name); $mail->setSender(array($mailfrom, $fromname)); $mail->setSubject($sitename . ': ' . $subject); $mail->setBody($body); $sent = $mail->Send(); // If we are supposed to copy the sender, do so. // Check whether email copy function activated if ($copy_email_activated == true && !empty($data['contact_email_copy'])) { $copytext = JText::sprintf('COM_CONTACT_COPYTEXT_OF', $contact->name, $sitename); $copytext .= "\r\n\r\n" . $body; $copysubject = JText::sprintf('COM_CONTACT_COPYSUBJECT_OF', $subject); $mail = JFactory::getMailer(); $mail->addRecipient($email); $mail->addReplyTo($email, $name); $mail->setSender(array($mailfrom, $fromname)); $mail->setSubject($copysubject); $mail->setBody($copytext); $sent = $mail->Send(); } return $sent; } } layouts/field/render.php 0000644 00000002236 15075071342 0011326 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; if (!key_exists('field', $displayData)) { return; } $field = $displayData['field']; $label = JText::_($field->label); $value = $field->value; $class = $field->params->get('render_class'); $showLabel = $field->params->get('showlabel'); $labelClass = $field->params->get('label_render_class'); if ($field->context == 'com_contact.mail') { // Prepare the value for the contact form mail $value = html_entity_decode($value); echo ($showLabel ? $label . ': ' : '') . $value . "\r\n"; return; } if (!strlen($value)) { return; } ?> <dt class="contact-field-entry <?php echo $class; ?>"> <?php if ($showLabel == 1) : ?> <span class="field-label <?php echo $labelClass; ?>"><?php echo htmlentities($label, ENT_QUOTES | ENT_IGNORE, 'UTF-8'); ?>: </span> <?php endif; ?> </dt> <dd class="contact-field-entry <?php echo $class; ?>"> <span class="field-value"><?php echo $value; ?></span> </dd> layouts/fields/render.php 0000644 00000002751 15075071342 0011513 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; // Check if we have all the data if (!key_exists('item', $displayData) || !key_exists('context', $displayData)) { return; } // Setting up for display $item = $displayData['item']; if (!$item) { return; } $context = $displayData['context']; if (!$context) { return; } JLoader::register('FieldsHelper', JPATH_ADMINISTRATOR . '/components/com_fields/helpers/fields.php'); $parts = explode('.', $context); $component = $parts[0]; $fields = null; if (key_exists('fields', $displayData)) { $fields = $displayData['fields']; } else { $fields = $item->jcfields ?: FieldsHelper::getFields($context, $item, true); } if (!$fields) { return; } // Check if we have mail context in first element $isMail = (reset($fields)->context == 'com_contact.mail'); if (!$isMail) { // Print the container tag echo '<dl class="fields-container contact-fields dl-horizontal">'; } // Loop through the fields and print them foreach ($fields as $field) { // If the value is empty do nothing if (!strlen($field->value) && !$isMail) { continue; } $layout = $field->params->get('layout', 'render'); echo FieldsHelper::render($context, 'field.' . $layout, array('field' => $field)); } if (!$isMail) { // Close the container echo '</dl>'; } layouts/joomla/form/renderfield.php 0000644 00000003536 15075071342 0013477 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage Layout * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; extract($displayData); /** * Layout variables * --------------------- * $options : (array) Optional parameters * $label : (string) The html code for the label (not required if $options['hiddenLabel'] is true) * $input : (string) The input field html code */ if (!empty($options['showonEnabled'])) { JHtml::_('jquery.framework'); JHtml::_('script', 'jui/cms.js', array('version' => 'auto', 'relative' => true)); } $class = empty($options['class']) ? '' : ' ' . $options['class']; $rel = empty($options['rel']) ? '' : ' ' . $options['rel']; /** * @TODO: * * As mentioned in #8473 (https://github.com/joomla/joomla-cms/pull/8473), ... * as long as we cannot access the field properties properly, this seems to * be the way to go for now. * * On a side note: Parsing html is seldom a good idea. * https://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 */ preg_match('/class=\"([^\"]+)\"/i', $input, $match); $required = (strpos($input, 'aria-required="true"') !== false || (!empty($match[1]) && strpos($match[1], 'required') !== false)); $typeOfSpacer = (strpos($label, 'spacer-lbl') !== false); ?> <div class="control-group<?php echo $class; ?>"<?php echo $rel; ?>> <?php if (empty($options['hiddenLabel'])) : ?> <div class="control-label"> <?php echo $label; ?> <?php if (!$required && !$typeOfSpacer) : ?> <span class="optional"><?php echo JText::_('COM_CONTACT_OPTIONAL'); ?></span> <?php endif; ?> </div> <?php endif; ?> <div class="controls"><?php echo $input; ?></div> </div> views/category/view.feed.php 0000644 00000001636 15075071342 0012115 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; /** * HTML View class for the Contact component * * @since 1.5 */ class ContactViewCategory extends JViewCategoryfeed { /** * @var string The name of the view to link individual items to * @since 3.2 */ protected $viewName = 'contact'; /** * Method to reconcile non standard names from components to usage in this class. * Typically overriden in the component feed view class. * * @param object $item The item for a feed, an element of the $items array. * * @return void * * @since 3.2 */ protected function reconcileNames($item) { parent::reconcileNames($item); $item->description = $item->address; } } views/category/view.html.php 0000644 00000005624 15075071342 0012157 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; /** * HTML View class for the Contacts component * * @since 1.5 */ class ContactViewCategory extends JViewCategory { /** * @var string The name of the extension for the category * @since 3.2 */ protected $extension = 'com_contact'; /** * @var string Default title to use for page title * @since 3.2 */ protected $defaultPageTitle = 'COM_CONTACT_DEFAULT_PAGE_TITLE'; /** * @var string The name of the view to link individual items to * @since 3.2 */ protected $viewName = 'contact'; /** * Run the standard Joomla plugins * * @var bool * @since 3.5 */ protected $runPlugins = true; /** * Execute and display a template script. * * @param string $tpl The name of the template file to parse; automatically searches through the template paths. * * @return mixed A string if successful, otherwise an Error object. */ public function display($tpl = null) { parent::commonCategoryDisplay(); // Flag indicates to not add limitstart=0 to URL $this->pagination->hideEmptyLimitstart = true; // Prepare the data. // Compute the contact slug. foreach ($this->items as $item) { $item->slug = $item->alias ? ($item->id . ':' . $item->alias) : $item->id; $temp = $item->params; $item->params = clone $this->params; $item->params->merge($temp); if ($item->params->get('show_email_headings', 0) == 1) { $item->email_to = trim($item->email_to); if (!empty($item->email_to) && JMailHelper::isEmailAddress($item->email_to)) { $item->email_to = JHtml::_('email.cloak', $item->email_to); } else { $item->email_to = ''; } } } return parent::display($tpl); } /** * Prepares the document * * @return void */ protected function prepareDocument() { parent::prepareDocument(); $menu = $this->menu; $id = (int) @$menu->query['id']; if ($menu && (!isset($menu->query['option']) || $menu->query['option'] != $this->extension || $menu->query['view'] == $this->viewName || $id != $this->category->id)) { $path = array(array('title' => $this->category->title, 'link' => '')); $category = $this->category->getParent(); while ((!isset($menu->query['option']) || $menu->query['option'] !== 'com_contact' || $menu->query['view'] === 'contact' || $id != $category->id) && $category->id > 1) { $path[] = array('title' => $category->title, 'link' => ContactHelperRoute::getCategoryRoute($category->id)); $category = $category->getParent(); } $path = array_reverse($path); foreach ($path as $item) { $this->pathway->addItem($item['title'], $item['link']); } } parent::addFeed(); } } views/category/tmpl/default_items.php 0000644 00000012707 15075071342 0014043 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; JHtml::_('behavior.core'); ?> <form action="<?php echo htmlspecialchars(JUri::getInstance()->toString()); ?>" method="post" name="adminForm" id="adminForm"> <?php if ($this->params->get('filter_field') || $this->params->get('show_pagination_limit')) : ?> <fieldset class="filters btn-toolbar"> <?php if ($this->params->get('filter_field')) : ?> <div class="btn-group"> <label class="filter-search-lbl element-invisible" for="filter-search"> <span class="label label-warning"> <?php echo JText::_('JUNPUBLISHED'); ?> </span> <?php echo JText::_('COM_CONTACT_FILTER_LABEL') . ' '; ?> </label> <input type="text" name="filter-search" id="filter-search" value="<?php echo $this->escape($this->state->get('list.filter')); ?>" class="inputbox" onchange="document.adminForm.submit();" title="<?php echo JText::_('COM_CONTACT_FILTER_SEARCH_DESC'); ?>" placeholder="<?php echo JText::_('COM_CONTACT_FILTER_SEARCH_DESC'); ?>" /> </div> <?php endif; ?> <?php if ($this->params->get('show_pagination_limit')) : ?> <div class="btn-group pull-right"> <label for="limit" class="element-invisible"> <?php echo JText::_('JGLOBAL_DISPLAY_NUM'); ?> </label> <?php echo $this->pagination->getLimitBox(); ?> </div> <?php endif; ?> </fieldset> <?php endif; ?> <?php if (empty($this->items)) : ?> <p> <?php echo JText::_('COM_CONTACT_NO_CONTACTS'); ?> </p> <?php else : ?> <ul class="category row-striped"> <?php foreach ($this->items as $i => $item) : ?> <?php if (in_array($item->access, $this->user->getAuthorisedViewLevels())) : ?> <?php if ($this->items[$i]->published == 0) : ?> <li class="row-fluid system-unpublished cat-list-row<?php echo $i % 2; ?>"> <?php else : ?> <li class="row-fluid cat-list-row<?php echo $i % 2; ?>" > <?php endif; ?> <?php if ($this->params->get('show_image_heading')) : ?> <?php $contactWidth = 7; ?> <div class="span2 col-md-2"> <?php if ($this->items[$i]->image) : ?> <a href="<?php echo JRoute::_(ContactHelperRoute::getContactRoute($item->slug, $item->catid)); ?>"> <?php echo JHtml::_( 'image', $this->items[$i]->image, JText::_('COM_CONTACT_IMAGE_DETAILS'), array('class' => 'contact-thumbnail img-thumbnail') ); ?> </a> <?php endif; ?> </div> <?php else : ?> <?php $contactWidth = 9; ?> <?php endif; ?> <div class="list-title span<?php echo $contactWidth; ?> col-md-<?php echo $contactWidth; ?>"> <a href="<?php echo JRoute::_(ContactHelperRoute::getContactRoute($item->slug, $item->catid)); ?>"> <?php echo $item->name; ?> </a> <?php if ($this->items[$i]->published == 0) : ?> <span class="label label-warning"> <?php echo JText::_('JUNPUBLISHED'); ?> </span> <?php endif; ?> <?php echo $item->event->afterDisplayTitle; ?> <?php echo $item->event->beforeDisplayContent; ?> <?php if ($this->params->get('show_position_headings')) : ?> <?php echo $item->con_position; ?><br /> <?php endif; ?> <?php if ($this->params->get('show_email_headings')) : ?> <?php echo $item->email_to; ?><br /> <?php endif; ?> <?php $location = array(); ?> <?php if ($this->params->get('show_suburb_headings') && !empty($item->suburb)) : ?> <?php $location[] = $item->suburb; ?> <?php endif; ?> <?php if ($this->params->get('show_state_headings') && !empty($item->state)) : ?> <?php $location[] = $item->state; ?> <?php endif; ?> <?php if ($this->params->get('show_country_headings') && !empty($item->country)) : ?> <?php $location[] = $item->country; ?> <?php endif; ?> <?php echo implode(', ', $location); ?> </div> <div class="span3 col-md-3"> <?php if ($this->params->get('show_telephone_headings') && !empty($item->telephone)) : ?> <?php echo JText::sprintf('COM_CONTACT_TELEPHONE_NUMBER', $item->telephone); ?><br /> <?php endif; ?> <?php if ($this->params->get('show_mobile_headings') && !empty ($item->mobile)) : ?> <?php echo JText::sprintf('COM_CONTACT_MOBILE_NUMBER', $item->mobile); ?><br /> <?php endif; ?> <?php if ($this->params->get('show_fax_headings') && !empty($item->fax)) : ?> <?php echo JText::sprintf('COM_CONTACT_FAX_NUMBER', $item->fax); ?><br /> <?php endif; ?> </div> <?php echo $item->event->afterDisplayContent; ?> </li> <?php endif; ?> <?php endforeach; ?> </ul> <?php endif; ?> <?php if ($this->params->get('show_pagination', 2)) : ?> <div class="pagination"> <?php if ($this->params->def('show_pagination_results', 1)) : ?> <p class="counter"> <?php echo $this->pagination->getPagesCounter(); ?> </p> <?php endif; ?> <?php echo $this->pagination->getPagesLinks(); ?> </div> <?php endif; ?> <div> <input type="hidden" name="filter_order" value="<?php echo $this->escape($this->state->get('list.ordering')); ?>" /> <input type="hidden" name="filter_order_Dir" value="<?php echo $this->escape($this->state->get('list.direction')); ?>" /> </div> </form> views/category/tmpl/default.php 0000644 00000000565 15075071342 0012641 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; $this->subtemplatename = 'items'; echo JLayoutHelper::render('joomla.content.category_default', $this); views/category/tmpl/default.xml 0000644 00000045714 15075071342 0012657 0 ustar 00 <?xml version="1.0" encoding="utf-8"?> <metadata> <layout title="COM_CONTACT_CATEGORY_VIEW_DEFAULT_TITLE" option="COM_CONTACT_CATEGORY_VIEW_DEFAULT_OPTION"> <help key = "JHELP_MENUS_MENU_ITEM_CONTACT_CATEGORY" /> <message> <![CDATA[COM_CONTACT_CATEGORY_VIEW_DEFAULT_DESC]]> </message> </layout> <!-- Add fields to the request variables for the layout. --> <fields name="request" addfieldpath="/administrator/components/com_categories/models/fields" > <fieldset name="request" addfieldpath="/administrator/components/com_contact/models/fields" > <field name="id" type="modal_category" label="COM_CONTACT_FIELD_CATEGORY_LABEL" description="COM_CONTACT_FIELD_CATEGORY_DESC" extension="com_contact" required="true" select="true" new="true" edit="true" clear="true" /> </fieldset> </fields> <!-- Add fields to the parameters object for the layout. --> <fields name="params"> <fieldset name="basic" label="JGLOBAL_CATEGORY_OPTIONS"> <field name="spacer1" type="spacer" label="JGLOBAL_SUBSLIDER_DRILL_CATEGORIES_LABEL" class="text" /> <field name="show_category_title" type="list" label="JGLOBAL_SHOW_CATEGORY_TITLE" description="JGLOBAL_SHOW_CATEGORY_TITLE_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_description" type="list" label="JGLOBAL_SHOW_CATEGORY_DESCRIPTION_LABEL" description="JGLOBAL_SHOW_CATEGORY_DESCRIPTION_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_description_image" type="list" label="JGLOBAL_SHOW_CATEGORY_IMAGE_LABEL" description="JGLOBAL_SHOW_CATEGORY_IMAGE_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="maxLevel" type="list" label="JGLOBAL_MAXIMUM_CATEGORY_LEVELS_LABEL" description="JGLOBAL_MAXIMUM_CATEGORY_LEVELS_DESC" useglobal="true" > <option value="-1">JALL</option> <option value="0">JNONE</option> <option value="1">J1</option> <option value="2">J2</option> <option value="3">J3</option> <option value="4">J4</option> <option value="5">J5</option> </field> <field name="show_empty_categories" type="list" label="JGLOBAL_SHOW_EMPTY_CATEGORIES_LABEL" description="COM_CONTACT_SHOW_EMPTY_CATEGORIES_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_subcat_desc" type="list" label="JGLOBAL_SHOW_SUBCATEGORIES_DESCRIPTION_LABEL" description="JGLOBAL_SHOW_SUBCATEGORIES_DESCRIPTION_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_cat_items" type="list" label="COM_CONTACT_FIELD_SHOW_CAT_ITEMS_LABEL" description="COM_CONTACT_FIELD_SHOW_CAT_ITEMS_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> </fieldset> <fieldset name="advanced" label="JGLOBAL_LIST_LAYOUT_OPTIONS"> <field name="spacer2" type="spacer" label="JGLOBAL_SUBSLIDER_DRILL_CATEGORIES_LABEL" class="text" /> <field name="filter_field" type="list" label="JGLOBAL_FILTER_FIELD_LABEL" description="JGLOBAL_FILTER_FIELD_DESC" default="" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_pagination_limit" type="list" label="JGLOBAL_DISPLAY_SELECT_LABEL" description="JGLOBAL_DISPLAY_SELECT_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_headings" type="list" label="JGLOBAL_SHOW_HEADINGS_LABEL" description="JGLOBAL_SHOW_HEADINGS_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_image_heading" type="list" label="COM_CONTACT_FIELD_CONFIG_SHOW_IMAGE_LABEL" description="COM_CONTACT_FIELD_CONFIG_SHOW_IMAGE_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_position_headings" type="list" label="COM_CONTACT_FIELD_CONFIG_POSITION_LABEL" description="COM_CONTACT_FIELD_CONFIG_POSITION_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_email_headings" type="list" label="JGLOBAL_EMAIL" description="COM_CONTACT_FIELD_CONFIG_EMAIL_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_telephone_headings" type="list" label="COM_CONTACT_FIELD_CONFIG_PHONE_LABEL" description="COM_CONTACT_FIELD_CONFIG_PHONE_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_mobile_headings" type="list" label="COM_CONTACT_FIELD_CONFIG_MOBILE_LABEL" description="COM_CONTACT_FIELD_CONFIG_MOBILE_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_fax_headings" type="list" label="COM_CONTACT_FIELD_CONFIG_FAX_LABEL" description="COM_CONTACT_FIELD_CONFIG_FAX_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_suburb_headings" type="list" label="COM_CONTACT_FIELD_CONFIG_SUBURB_LABEL" description="COM_CONTACT_FIELD_CONFIG_SUBURB_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_state_headings" type="list" label="COM_CONTACT_FIELD_CONFIG_STATE_LABEL" description="COM_CONTACT_FIELD_CONFIG_STATE_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_country_headings" type="list" label="COM_CONTACT_FIELD_CONFIG_COUNTRY_LABEL" description="COM_CONTACT_FIELD_CONFIG_COUNTRY_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_pagination" type="list" label="JGLOBAL_PAGINATION_LABEL" description="JGLOBAL_PAGINATION_DESC" useglobal="true" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> <option value="2">JGLOBAL_AUTO</option> </field> <field name="show_pagination_results" type="list" label="JGLOBAL_PAGINATION_RESULTS_LABEL" description="JGLOBAL_PAGINATION_RESULTS_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="initial_sort" type="list" label="COM_CONTACT_FIELD_INITIAL_SORT_LABEL" description="COM_CONTACT_FIELD_INITIAL_SORT_DESC" useglobal="true" > <option value="name">COM_CONTACT_FIELD_VALUE_NAME</option> <option value="sortname">COM_CONTACT_FIELD_VALUE_SORT_NAME</option> <option value="ordering">COM_CONTACT_FIELD_VALUE_ORDERING</option> </field> </fieldset> <fieldset name="contact" label="COM_CONTACT_BASIC_OPTIONS_FIELDSET_LABEL" addfieldpath="/administrator/components/com_fields/models/fields"> <field name="contact_layout" type="componentlayout" label="JGLOBAL_FIELD_LAYOUT_LABEL" description="JGLOBAL_FIELD_LAYOUT_DESC" menuitems="true" extension="com_contact" view="contact" /> <field name="presentation_style" type="list" label="COM_CONTACT_FIELD_PRESENTATION_LABEL" description="COM_CONTACT_FIELD_PRESENTATION_DESC" useglobal="true" > <option value="sliders">COM_CONTACT_FIELD_VALUE_SLIDERS</option> <option value="tabs">COM_CONTACT_FIELD_VALUE_TABS</option> <option value="plain">COM_CONTACT_FIELD_VALUE_PLAIN</option> </field> <field name="show_contact_category" type="list" label="COM_CONTACT_FIELD_CONTACT_SHOW_CATEGORY_LABEL" description="COM_CONTACT_FIELD_CONTACT_SHOW_CATEGORY_DESC" useglobal="true" class="chzn-color" > <option value="hide">JHIDE</option> <option value="show_no_link">COM_CONTACT_FIELD_VALUE_NO_LINK</option> <option value="show_with_link">COM_CONTACT_FIELD_VALUE_WITH_LINK</option> </field> <field name="show_contact_list" type="list" label="COM_CONTACT_FIELD_CONTACT_SHOW_LIST_LABEL" description="COM_CONTACT_FIELD_CONTACT_SHOW_LIST_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_name" type="list" label="COM_CONTACT_FIELD_PARAMS_NAME_LABEL" description="COM_CONTACT_FIELD_PARAMS_NAME_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_tags" type="list" label="COM_CONTACT_FIELD_SHOW_TAGS_LABEL" description="COM_CONTACT_FIELD_SHOW_TAGS_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_info" type="list" label="COM_CONTACT_FIELD_SHOW_INFO_LABEL" description="COM_CONTACT_FIELD_SHOW_INFO_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_position" type="list" label="COM_CONTACT_FIELD_PARAMS_CONTACT_POSITION_LABEL" description="COM_CONTACT_FIELD_PARAMS_CONTACT_POSITION_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_email" type="list" label="JGLOBAL_EMAIL" description="COM_CONTACT_FIELD_PARAMS_CONTACT_E_MAIL_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_street_address" type="list" label="COM_CONTACT_FIELD_PARAMS_STREET_ADDRESS_LABEL" description="COM_CONTACT_FIELD_PARAMS_STREET_ADDRESS_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_suburb" type="list" label="COM_CONTACT_FIELD_PARAMS_TOWN-SUBURB_LABEL" description="COM_CONTACT_FIELD_PARAMS_TOWN-SUBURB_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_state" type="list" label="COM_CONTACT_FIELD_PARAMS_STATE-COUNTY_LABEL" description="COM_CONTACT_FIELD_PARAMS_STATE-COUNTY_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_postcode" type="list" label="COM_CONTACT_FIELD_PARAMS_POST-ZIP_CODE_LABEL" description="COM_CONTACT_FIELD_PARAMS_POST-ZIP_CODE_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_country" type="list" label="COM_CONTACT_FIELD_PARAMS_COUNTRY_LABEL" description="COM_CONTACT_FIELD_PARAMS_COUNTRY_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_telephone" type="list" label="COM_CONTACT_FIELD_PARAMS_TELEPHONE_LABEL" description="COM_CONTACT_FIELD_PARAMS_TELEPHONE_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_mobile" type="list" label="COM_CONTACT_FIELD_PARAMS_MOBILE_LABEL" description="COM_CONTACT_FIELD_PARAMS_MOBILE_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_fax" type="list" label="COM_CONTACT_FIELD_PARAMS_FAX_LABEL" description="COM_CONTACT_FIELD_PARAMS_FAX_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_webpage" type="list" label="COM_CONTACT_FIELD_PARAMS_WEBPAGE_LABEL" description="COM_CONTACT_FIELD_PARAMS_WEBPAGE_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_image" type="list" label="COM_CONTACT_FIELD_PARAMS_IMAGE_LABEL" description="COM_CONTACT_FIELD_PARAMS_IMAGE_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="allow_vcard" type="list" label="COM_CONTACT_FIELD_PARAMS_VCARD_LABEL" description="COM_CONTACT_FIELD_PARAMS_VCARD_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_misc" type="list" label="COM_CONTACT_FIELD_PARAMS_MISC_INFO_LABEL" description="COM_CONTACT_FIELD_PARAMS_MISC_INFO_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_articles" type="list" label="COM_CONTACT_FIELD_ARTICLES_SHOW_LABEL" description="COM_CONTACT_FIELD_ARTICLES_SHOW_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="articles_display_num" type="list" label="COM_CONTACT_FIELD_ARTICLES_DISPLAY_NUM_LABEL" description="COM_CONTACT_FIELD_ARTICLES_DISPLAY_NUM_DESC" default="" useglobal="true" > <option value="use_contact">COM_CONTACT_FIELD_VALUE_USE_CONTACT_SETTINGS</option> <option value="5">J5</option> <option value="10">J10</option> <option value="15">J15</option> <option value="20">J20</option> <option value="25">J25</option> <option value="30">J30</option> <option value="50">J50</option> <option value="75">J75</option> <option value="100">J100</option> <option value="150">J150</option> <option value="200">J200</option> <option value="250">J250</option> <option value="300">J300</option> <option value="0">JALL</option> </field> <field name="show_links" type="list" label="COM_CONTACT_FIELD_SHOW_LINKS_LABEL" description="COM_CONTACT_FIELD_SHOW_LINKS_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_user_custom_fields" type="fieldgroups" label="COM_CONTACT_FIELD_USER_CUSTOM_FIELDS_SHOW_LABEL" description="COM_CONTACT_FIELD_USER_CUSTOM_FIELDS_SHOW_DESC" multiple="true" context="com_users.user" > <option value="-1">JALL</option> </field> <field name="linka_name" type="text" label="COM_CONTACT_FIELD_LINKA_NAME_LABEL" description="COM_CONTACT_FIELD_LINK_NAME_DESC" size="30" useglobal="true" /> <field name="linkb_name" type="text" label="COM_CONTACT_FIELD_LINKB_NAME_LABEL" description="COM_CONTACT_FIELD_LINK_NAME_DESC" size="30" useglobal="true" /> <field name="linkc_name" type="text" label="COM_CONTACT_FIELD_LINKC_NAME_LABEL" description="COM_CONTACT_FIELD_LINK_NAME_DESC" size="30" useglobal="true" /> <field name="linkd_name" type="text" label="COM_CONTACT_FIELD_LINKD_NAME_LABEL" description="COM_CONTACT_FIELD_LINK_NAME_DESC" size="30" useglobal="true" /> <field name="linke_name" type="text" label="COM_CONTACT_FIELD_LINKE_NAME_LABEL" description="COM_CONTACT_FIELD_LINK_NAME_DESC" size="30" useglobal="true" /> </fieldset> <!-- Form options. --> <fieldset name="Contact_Form" label="COM_CONTACT_MAIL_FIELDSET_LABEL"> <field name="show_email_form" type="list" label="COM_CONTACT_FIELD_EMAIL_SHOW_FORM_LABEL" description="COM_CONTACT_FIELD_EMAIL_SHOW_FORM_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_email_copy" type="list" label="COM_CONTACT_FIELD_EMAIL_EMAIL_COPY_LABEL" description="COM_CONTACT_FIELD_EMAIL_EMAIL_COPY_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="validate_session" type="list" label="COM_CONTACT_FIELD_CONFIG_SESSION_CHECK_LABEL" description="COM_CONTACT_FIELD_CONFIG_SESSION_CHECK_DESC" useglobal="true" class="chzn-color" > <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="custom_reply" type="list" label="COM_CONTACT_FIELD_CONFIG_CUSTOM_REPLY_LABEL" description="COM_CONTACT_FIELD_CONFIG_CUSTOM_REPLY_DESC" useglobal="true" class="chzn-color" > <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="redirect" type="text" label="COM_CONTACT_FIELD_CONFIG_REDIRECT_LABEL" description="COM_CONTACT_FIELD_CONFIG_REDIRECT_DESC" size="30" useglobal="true" /> </fieldset> <fieldset name="integration"> <field name="show_feed_link" type="list" label="JGLOBAL_Show_Feed_Link_Label" description="JGLOBAL_Show_Feed_Link_Desc" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> </fieldset> </fields> </metadata> views/category/tmpl/default_children.php 0000644 00000003407 15075071342 0014507 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; $class = ' class="first"'; if ($this->maxLevel != 0 && count($this->children[$this->category->id]) > 0) : ?> <ul class="list-striped list-condensed"> <?php foreach ($this->children[$this->category->id] as $id => $child) : ?> <?php if ($this->params->get('show_empty_categories') || $child->numitems || count($child->getChildren())) : if (!isset($this->children[$this->category->id][$id + 1])) { $class = ' class="last"'; } ?> <li<?php echo $class; ?>> <?php $class = ''; ?> <h4 class="item-title"> <a href="<?php echo JRoute::_(ContactHelperRoute::getCategoryRoute($child->id)); ?>"> <?php echo $this->escape($child->title); ?> </a> <?php if ($this->params->get('show_cat_items') == 1) : ?> <span class="badge badge-info pull-right" title="<?php echo JText::_('COM_CONTACT_CAT_NUM'); ?>"><?php echo $child->numitems; ?></span> <?php endif; ?> </h4> <?php if ($this->params->get('show_subcat_desc') == 1) : ?> <?php if ($child->description) : ?> <div class="category-desc"> <?php echo JHtml::_('content.prepare', $child->description, '', 'com_contact.category'); ?> </div> <?php endif; ?> <?php endif; ?> <?php if (count($child->getChildren()) > 0 ) : $this->children[$child->id] = $child->getChildren(); $this->category = $child; $this->maxLevel--; echo $this->loadTemplate('children'); $this->category = $child->getParent(); $this->maxLevel++; endif; ?> </li> <?php endif; ?> <?php endforeach; ?> </ul> <?php endif; ?> views/contact/view.vcf.php 0000644 00000006242 15075071342 0011604 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; /** * View to create a VCF for a contact item * * @since 1.6 */ class ContactViewContact extends JViewLegacy { /** * The item model state * * @var \Joomla\Registry\Registry * @deprecated 4.0 Variable not used */ protected $state; /** * The contact item * * @var JObject */ protected $item; /** * Execute and display a template script. * * @param string $tpl The name of the template file to parse; automatically searches through the template paths. * * @return mixed A string if successful, otherwise an Error object. */ public function display($tpl = null) { // Get model data. $item = $this->get('Item'); // Check for errors. if (count($errors = $this->get('Errors'))) { JError::raiseWarning(500, implode("\n", $errors)); return false; } JFactory::getDocument()->setMimeEncoding('text/directory', true); // Compute lastname, firstname and middlename $item->name = trim($item->name); // "Lastname, Firstname Midlename" format support // e.g. "de Gaulle, Charles" $namearray = explode(',', $item->name); if (count($namearray) > 1) { $lastname = $namearray[0]; $card_name = $lastname; $name_and_midname = trim($namearray[1]); $firstname = ''; if (!empty($name_and_midname)) { $namearray = explode(' ', $name_and_midname); $firstname = $namearray[0]; $middlename = (count($namearray) > 1) ? $namearray[1] : ''; $card_name = $firstname . ' ' . ($middlename ? $middlename . ' ' : '') . $card_name; } } // "Firstname Middlename Lastname" format support else { $namearray = explode(' ', $item->name); $middlename = (count($namearray) > 2) ? $namearray[1] : ''; $firstname = array_shift($namearray); $lastname = count($namearray) ? end($namearray) : ''; $card_name = $firstname . ($middlename ? ' ' . $middlename : '') . ($lastname ? ' ' . $lastname : ''); } $rev = date('c', strtotime($item->modified)); JFactory::getApplication()->setHeader('Content-disposition', 'attachment; filename="' . $card_name . '.vcf"', true); $vcard = array(); $vcard[] .= 'BEGIN:VCARD'; $vcard[] .= 'VERSION:3.0'; $vcard[] = 'N:' . $lastname . ';' . $firstname . ';' . $middlename; $vcard[] = 'FN:' . $item->name; $vcard[] = 'TITLE:' . $item->con_position; $vcard[] = 'TEL;TYPE=WORK,VOICE:' . $item->telephone; $vcard[] = 'TEL;TYPE=WORK,FAX:' . $item->fax; $vcard[] = 'TEL;TYPE=WORK,MOBILE:' . $item->mobile; $vcard[] = 'ADR;TYPE=WORK:;;' . $item->address . ';' . $item->suburb . ';' . $item->state . ';' . $item->postcode . ';' . $item->country; $vcard[] = 'LABEL;TYPE=WORK:' . $item->address . "\n" . $item->suburb . "\n" . $item->state . "\n" . $item->postcode . "\n" . $item->country; $vcard[] = 'EMAIL;TYPE=PREF,INTERNET:' . $item->email_to; $vcard[] = 'URL:' . $item->webpage; $vcard[] = 'REV:' . $rev . 'Z'; $vcard[] = 'END:VCARD'; echo implode("\n", $vcard); } } views/contact/view.html.php 0000644 00000034170 15075071342 0011773 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; /** * HTML Contact View class for the Contact component * * @since 1.5 */ class ContactViewContact extends JViewLegacy { /** * The item model state * * @var \Joomla\Registry\Registry * @since 1.6 */ protected $state; /** * The form object for the contact item * * @var JForm * @since 1.6 */ protected $form; /** * The item object details * * @var JObject * @since 1.6 */ protected $item; /** * The page to return to on sumission * * @var string * @since 1.6 * @deprecated 4.0 Variable not used */ protected $return_page; /** * Should we show a captcha form for the submission of the contact request? * * @var bool * @since 3.6.3 */ protected $captchaEnabled = false; /** * Execute and display a template script. * * @param string $tpl The name of the template file to parse; automatically searches through the template paths. * * @return mixed A string if successful, otherwise an Error object. */ public function display($tpl = null) { $app = JFactory::getApplication(); $user = JFactory::getUser(); $item = $this->get('Item'); $state = $this->get('State'); // Get submitted values $data = $app->getUserState('com_contact.contact.data', array()); // Add catid for selecting custom fields $data['catid'] = $item->catid; $app->setUserState('com_contact.contact.data', $data); $this->form = $this->get('Form'); $params = $state->get('params'); $temp = clone $params; $active = $app->getMenu()->getActive(); if ($active) { // If the current view is the active item and a contact view for this contact, then the menu item params take priority if (strpos($active->link, 'view=contact') && strpos($active->link, '&id=' . (int) $item->id)) { // $item->params are the contact params, $temp are the menu item params // Merge so that the menu item params take priority $item->params->merge($temp); } else { // Current view is not a single contact, so the contact params take priority here // Merge the menu item params with the contact params so that the contact params take priority $temp->merge($item->params); $item->params = $temp; } } else { // Merge so that contact params take priority $temp->merge($item->params); $item->params = $temp; } if ($item) { // Get Category Model data $categoryModel = JModelLegacy::getInstance('Category', 'ContactModel', array('ignore_request' => true)); $categoryModel->setState('category.id', $item->catid); $categoryModel->setState('list.ordering', 'a.name'); $categoryModel->setState('list.direction', 'asc'); $categoryModel->setState('filter.published', 1); $contacts = $categoryModel->getItems(); } // Check for errors. if (count($errors = $this->get('Errors'))) { JError::raiseWarning(500, implode("\n", $errors)); return false; } // Check if access is not public $groups = $user->getAuthorisedViewLevels(); $return = ''; if ((!in_array($item->access, $groups)) || (!in_array($item->category_access, $groups))) { $app->enqueueMessage(JText::_('JERROR_ALERTNOAUTHOR'), 'error'); $app->setHeader('status', 403, true); return false; } $options['category_id'] = $item->catid; $options['order by'] = 'a.default_con DESC, a.ordering ASC'; /** * Handle email cloaking * * Keep a copy of the raw email address so it can * still be accessed in the layout if needed. */ $item->email_raw = $item->email_to; if ($item->email_to && $item->params->get('show_email')) { $item->email_to = JHtml::_('email.cloak', $item->email_to, (bool) $item->params->get('add_mailto_link', true)); } if ($item->params->get('show_street_address') || $item->params->get('show_suburb') || $item->params->get('show_state') || $item->params->get('show_postcode') || $item->params->get('show_country')) { if (!empty($item->address) || !empty($item->suburb) || !empty($item->state) || !empty($item->country) || !empty($item->postcode)) { $item->params->set('address_check', 1); } } else { $item->params->set('address_check', 0); } // Manage the display mode for contact detail groups switch ($item->params->get('contact_icons')) { case 1 : // Text $item->params->set('marker_address', JText::_('COM_CONTACT_ADDRESS') . ': '); $item->params->set('marker_email', JText::_('JGLOBAL_EMAIL') . ': '); $item->params->set('marker_telephone', JText::_('COM_CONTACT_TELEPHONE') . ': '); $item->params->set('marker_fax', JText::_('COM_CONTACT_FAX') . ': '); $item->params->set('marker_mobile', JText::_('COM_CONTACT_MOBILE') . ': '); $item->params->set('marker_misc', JText::_('COM_CONTACT_OTHER_INFORMATION') . ': '); $item->params->set('marker_class', 'jicons-text'); break; case 2 : // None $item->params->set('marker_address', ''); $item->params->set('marker_email', ''); $item->params->set('marker_telephone', ''); $item->params->set('marker_mobile', ''); $item->params->set('marker_fax', ''); $item->params->set('marker_misc', ''); $item->params->set('marker_class', 'jicons-none'); break; default : if ($item->params->get('icon_address')) { $image1 = JHtml::_('image', $item->params->get('icon_address', 'con_address.png'), JText::_('COM_CONTACT_ADDRESS') . ': ', null, false); } else { $image1 = JHtml::_( 'image', 'contacts/' . $item->params->get('icon_address', 'con_address.png'), JText::_('COM_CONTACT_ADDRESS') . ': ', null, true ); } if ($item->params->get('icon_email')) { $image2 = JHtml::_('image', $item->params->get('icon_email', 'emailButton.png'), JText::_('JGLOBAL_EMAIL') . ': ', null, false); } else { $image2 = JHtml::_('image', 'contacts/' . $item->params->get('icon_email', 'emailButton.png'), JText::_('JGLOBAL_EMAIL') . ': ', null, true); } if ($item->params->get('icon_telephone')) { $image3 = JHtml::_('image', $item->params->get('icon_telephone', 'con_tel.png'), JText::_('COM_CONTACT_TELEPHONE') . ': ', null, false); } else { $image3 = JHtml::_( 'image', 'contacts/' . $item->params->get('icon_telephone', 'con_tel.png'), JText::_('COM_CONTACT_TELEPHONE') . ': ', null, true ); } if ($item->params->get('icon_fax')) { $image4 = JHtml::_('image', $item->params->get('icon_fax', 'con_fax.png'), JText::_('COM_CONTACT_FAX') . ': ', null, false); } else { $image4 = JHtml::_('image', 'contacts/' . $item->params->get('icon_fax', 'con_fax.png'), JText::_('COM_CONTACT_FAX') . ': ', null, true); } if ($item->params->get('icon_misc')) { $image5 = JHtml::_('image', $item->params->get('icon_misc', 'con_info.png'), JText::_('COM_CONTACT_OTHER_INFORMATION') . ': ', null, false); } else { $image5 = JHtml::_( 'image', 'contacts/' . $item->params->get('icon_misc', 'con_info.png'), JText::_('COM_CONTACT_OTHER_INFORMATION') . ': ', null, true ); } if ($item->params->get('icon_mobile')) { $image6 = JHtml::_('image', $item->params->get('icon_mobile', 'con_mobile.png'), JText::_('COM_CONTACT_MOBILE') . ': ', null, false); } else { $image6 = JHtml::_( 'image', 'contacts/' . $item->params->get('icon_mobile', 'con_mobile.png'), JText::_('COM_CONTACT_MOBILE') . ': ', null, true ); } $item->params->set('marker_address', $image1); $item->params->set('marker_email', $image2); $item->params->set('marker_telephone', $image3); $item->params->set('marker_fax', $image4); $item->params->set('marker_misc', $image5); $item->params->set('marker_mobile', $image6); $item->params->set('marker_class', 'jicons-icons'); break; } // Add links to contacts if ($item->params->get('show_contact_list') && count($contacts) > 1) { foreach ($contacts as &$contact) { $contact->link = JRoute::_(ContactHelperRoute::getContactRoute($contact->slug, $contact->catid), false); } $item->link = JRoute::_(ContactHelperRoute::getContactRoute($item->slug, $item->catid), false); } // Process the content plugins JPluginHelper::importPlugin('content'); $dispatcher = JEventDispatcher::getInstance(); $offset = $state->get('list.offset'); // Fix for where some plugins require a text attribute $item->text = null; if (!empty($item->misc)) { $item->text = $item->misc; } $dispatcher->trigger('onContentPrepare', array('com_contact.contact', &$item, &$item->params, $offset)); // Store the events for later $item->event = new stdClass; $results = $dispatcher->trigger('onContentAfterTitle', array('com_contact.contact', &$item, &$item->params, $offset)); $item->event->afterDisplayTitle = trim(implode("\n", $results)); $results = $dispatcher->trigger('onContentBeforeDisplay', array('com_contact.contact', &$item, &$item->params, $offset)); $item->event->beforeDisplayContent = trim(implode("\n", $results)); $results = $dispatcher->trigger('onContentAfterDisplay', array('com_contact.contact', &$item, &$item->params, $offset)); $item->event->afterDisplayContent = trim(implode("\n", $results)); if (!empty($item->text)) { $item->misc = $item->text; } $contactUser = null; if ($item->params->get('show_user_custom_fields') && $item->user_id && $contactUser = JFactory::getUser($item->user_id)) { $contactUser->text = ''; JEventDispatcher::getInstance()->trigger('onContentPrepare', array ('com_users.user', &$contactUser, &$item->params, 0)); if (!isset($contactUser->jcfields)) { $contactUser->jcfields = array(); } } // Escape strings for HTML output $this->pageclass_sfx = htmlspecialchars($item->params->get('pageclass_sfx')); $this->contact = &$item; $this->params = &$item->params; $this->return = &$return; $this->state = &$state; $this->item = &$item; $this->user = &$user; $this->contacts = &$contacts; $this->contactUser = $contactUser; $item->tags = new JHelperTags; $item->tags->getItemTags('com_contact.contact', $this->item->id); // Override the layout only if this is not the active menu item // If it is the active menu item, then the view and item id will match if ((!$active) || ((strpos($active->link, 'view=contact') === false) || (strpos($active->link, '&id=' . (string) $this->item->id) === false))) { if (($layout = $item->params->get('contact_layout'))) { $this->setLayout($layout); } } elseif (isset($active->query['layout'])) { // We need to set the layout in case this is an alternative menu item (with an alternative layout) $this->setLayout($active->query['layout']); } $model = $this->getModel(); $model->hit(); $captchaSet = $item->params->get('captcha', JFactory::getApplication()->get('captcha', '0')); foreach (JPluginHelper::getPlugin('captcha') as $plugin) { if ($captchaSet === $plugin->name) { $this->captchaEnabled = true; break; } } $this->_prepareDocument(); return parent::display($tpl); } /** * Prepares the document * * @return void * * @since 1.6 */ protected function _prepareDocument() { $app = JFactory::getApplication(); $menus = $app->getMenu(); $pathway = $app->getPathway(); $title = null; // Because the application sets a default page title, // we need to get it from the menu item itself $menu = $menus->getActive(); if ($menu) { $this->params->def('page_heading', $this->params->get('page_title', $menu->title)); } else { $this->params->def('page_heading', JText::_('COM_CONTACT_DEFAULT_PAGE_TITLE')); } $title = $this->params->get('page_title', ''); $id = (int) @$menu->query['id']; // If the menu item does not concern this contact if ($menu && (!isset($menu->query['option']) || $menu->query['option'] !== 'com_contact' || $menu->query['view'] !== 'contact' || $id != $this->item->id)) { // If this is not a single contact menu item, set the page title to the contact title if ($this->item->name) { $title = $this->item->name; } $path = array(array('title' => $this->contact->name, 'link' => '')); $category = JCategories::getInstance('Contact')->get($this->contact->catid); while ($category && (!isset($menu->query['option']) || $menu->query['option'] !== 'com_contact' || $menu->query['view'] === 'contact' || $id != $category->id) && $category->id > 1) { $path[] = array('title' => $category->title, 'link' => ContactHelperRoute::getCategoryRoute($this->contact->catid)); $category = $category->getParent(); } $path = array_reverse($path); foreach ($path as $item) { $pathway->addItem($item['title'], $item['link']); } } if (empty($title)) { $title = $app->get('sitename'); } elseif ($app->get('sitename_pagetitles', 0) == 1) { $title = JText::sprintf('JPAGETITLE', $app->get('sitename'), $title); } elseif ($app->get('sitename_pagetitles', 0) == 2) { $title = JText::sprintf('JPAGETITLE', $title, $app->get('sitename')); } if (empty($title)) { $title = $this->item->name; } $this->document->setTitle($title); if ($this->item->metadesc) { $this->document->setDescription($this->item->metadesc); } elseif ($this->params->get('menu-meta_description')) { $this->document->setDescription($this->params->get('menu-meta_description')); } if ($this->item->metakey) { $this->document->setMetadata('keywords', $this->item->metakey); } elseif ($this->params->get('menu-meta_keywords')) { $this->document->setMetadata('keywords', $this->params->get('menu-meta_keywords')); } if ($this->params->get('robots')) { $this->document->setMetadata('robots', $this->params->get('robots')); } $mdata = $this->item->metadata->toArray(); foreach ($mdata as $k => $v) { if ($v) { $this->document->setMetadata($k, $v); } } } } views/contact/tmpl/default_articles.php 0000644 00000001456 15075071342 0014345 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; JLoader::register('ContentHelperRoute', JPATH_SITE . '/components/com_content/helpers/route.php'); ?> <?php if ($this->params->get('show_articles')) : ?> <div class="contact-articles"> <ul class="nav nav-tabs nav-stacked"> <?php foreach ($this->item->articles as $article) : ?> <li> <?php echo JHtml::_('link', JRoute::_(ContentHelperRoute::getArticleRoute($article->slug, $article->catid, $article->language)), htmlspecialchars($article->title, ENT_COMPAT, 'UTF-8')); ?> </li> <?php endforeach; ?> </ul> </div> <?php endif; ?> views/contact/tmpl/default_links.php 0000644 00000003246 15075071342 0013656 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; ?> <?php if ($this->params->get('presentation_style') === 'sliders') : ?> <?php echo JHtml::_('bootstrap.addSlide', 'slide-contact', JText::_('COM_CONTACT_LINKS'), 'display-links'); ?> <?php endif; ?> <?php if ($this->params->get('presentation_style') === 'tabs') : ?> <?php echo JHtml::_('bootstrap.addTab', 'myTab', 'display-links', JText::_('COM_CONTACT_LINKS')); ?> <?php endif; ?> <?php if ($this->params->get('presentation_style') === 'plain') : ?> <?php echo '<h3>' . JText::_('COM_CONTACT_LINKS') . '</h3>'; ?> <?php endif; ?> <div class="contact-links"> <ul class="nav nav-tabs nav-stacked"> <?php // Letters 'a' to 'e' foreach (range('a', 'e') as $char) : $link = $this->contact->params->get('link' . $char); $label = $this->contact->params->get('link' . $char . '_name'); if (!$link) : continue; endif; // Add 'http://' if not present $link = (0 === strpos($link, 'http')) ? $link : 'http://' . $link; // If no label is present, take the link $label = $label ?: $link; ?> <li> <a href="<?php echo $link; ?>" itemprop="url"> <?php echo $label; ?> </a> </li> <?php endforeach; ?> </ul> </div> <?php if ($this->params->get('presentation_style') === 'sliders') : ?> <?php echo JHtml::_('bootstrap.endSlide'); ?> <?php endif; ?> <?php if ($this->params->get('presentation_style') === 'tabs') : ?> <?php echo JHtml::_('bootstrap.endTab'); ?> <?php endif; ?> views/contact/tmpl/default_user_custom_fields.php 0000644 00000004432 15075071342 0016432 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; $params = $this->item->params; $presentation_style = $params->get('presentation_style'); $displayGroups = $params->get('show_user_custom_fields'); $userFieldGroups = array(); ?> <?php if (!$displayGroups || !$this->contactUser) : ?> <?php return; ?> <?php endif; ?> <?php foreach ($this->contactUser->jcfields as $field) : ?> <?php if (!in_array('-1', $displayGroups) && (!$field->group_id || !in_array($field->group_id, $displayGroups))) : ?> <?php continue; ?> <?php endif; ?> <?php if (!key_exists($field->group_title, $userFieldGroups)) : ?> <?php $userFieldGroups[$field->group_title] = array(); ?> <?php endif; ?> <?php $userFieldGroups[$field->group_title][] = $field; ?> <?php endforeach; ?> <?php foreach ($userFieldGroups as $groupTitle => $fields) : ?> <?php $id = JApplicationHelper::stringURLSafe($groupTitle); ?> <?php if ($presentation_style == 'sliders') : ?> <?php echo JHtml::_('bootstrap.addSlide', 'slide-contact', $groupTitle ?: JText::_('COM_CONTACT_USER_FIELDS'), 'display-' . $id); ?> <?php elseif ($presentation_style == 'tabs') : ?> <?php echo JHtml::_('bootstrap.addTab', 'myTab', 'display-' . $id, $groupTitle ?: JText::_('COM_CONTACT_USER_FIELDS')); ?> <?php elseif ($presentation_style == 'plain') : ?> <?php echo '<h3>' . ($groupTitle ?: JText::_('COM_CONTACT_USER_FIELDS')) . '</h3>'; ?> <?php endif; ?> <div class="contact-profile" id="user-custom-fields-<?php echo $id; ?>"> <dl class="dl-horizontal"> <?php foreach ($fields as $field) : ?> <?php if (!$field->value) : ?> <?php continue; ?> <?php endif; ?> <?php if ($field->params->get('showlabel')) : ?> <?php echo '<dt>' . JText::_($field->label) . '</dt>'; ?> <?php endif; ?> <?php echo '<dd>' . $field->value . '</dd>'; ?> <?php endforeach; ?> </dl> </div> <?php if ($presentation_style == 'sliders') : ?> <?php echo JHtml::_('bootstrap.endSlide'); ?> <?php elseif ($presentation_style == 'tabs') : ?> <?php echo JHtml::_('bootstrap.endTab'); ?> <?php endif; ?> <?php endforeach; ?> views/contact/tmpl/default_form.php 0000644 00000003213 15075071342 0013473 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; JHtml::_('behavior.keepalive'); JHtml::_('behavior.formvalidator'); ?> <div class="contact-form"> <form id="contact-form" action="<?php echo JRoute::_('index.php'); ?>" method="post" class="form-validate form-horizontal well"> <?php foreach ($this->form->getFieldsets() as $fieldset) : ?> <?php if ($fieldset->name === 'captcha' && !$this->captchaEnabled) : ?> <?php continue; ?> <?php endif; ?> <?php $fields = $this->form->getFieldset($fieldset->name); ?> <?php if (count($fields)) : ?> <fieldset> <?php if (isset($fieldset->label) && ($legend = trim(JText::_($fieldset->label))) !== '') : ?> <legend><?php echo $legend; ?></legend> <?php endif; ?> <?php foreach ($fields as $field) : ?> <?php echo $field->renderField(); ?> <?php endforeach; ?> </fieldset> <?php endif; ?> <?php endforeach; ?> <div class="control-group"> <div class="controls"> <button class="btn btn-primary validate" type="submit"><?php echo JText::_('COM_CONTACT_CONTACT_SEND'); ?></button> <input type="hidden" name="option" value="com_contact" /> <input type="hidden" name="task" value="contact.submit" /> <input type="hidden" name="return" value="<?php echo $this->return_page; ?>" /> <input type="hidden" name="id" value="<?php echo $this->contact->slug; ?>" /> <?php echo JHtml::_('form.token'); ?> </div> </div> </form> </div> views/contact/tmpl/default_address.php 0000644 00000007535 15075071342 0014170 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; /** * Marker_class: Class based on the selection of text, none, or icons * jicon-text, jicon-none, jicon-icon */ ?> <dl class="contact-address dl-horizontal" itemprop="address" itemscope itemtype="https://schema.org/PostalAddress"> <?php if (($this->params->get('address_check') > 0) && ($this->contact->address || $this->contact->suburb || $this->contact->state || $this->contact->country || $this->contact->postcode)) : ?> <dt> <span class="<?php echo $this->params->get('marker_class'); ?>"> <?php echo $this->params->get('marker_address'); ?> </span> </dt> <?php if ($this->contact->address && $this->params->get('show_street_address')) : ?> <dd> <span class="contact-street" itemprop="streetAddress"> <?php echo nl2br($this->contact->address); ?> <br /> </span> </dd> <?php endif; ?> <?php if ($this->contact->suburb && $this->params->get('show_suburb')) : ?> <dd> <span class="contact-suburb" itemprop="addressLocality"> <?php echo $this->contact->suburb; ?> <br /> </span> </dd> <?php endif; ?> <?php if ($this->contact->state && $this->params->get('show_state')) : ?> <dd> <span class="contact-state" itemprop="addressRegion"> <?php echo $this->contact->state; ?> <br /> </span> </dd> <?php endif; ?> <?php if ($this->contact->postcode && $this->params->get('show_postcode')) : ?> <dd> <span class="contact-postcode" itemprop="postalCode"> <?php echo $this->contact->postcode; ?> <br /> </span> </dd> <?php endif; ?> <?php if ($this->contact->country && $this->params->get('show_country')) : ?> <dd> <span class="contact-country" itemprop="addressCountry"> <?php echo $this->contact->country; ?> <br /> </span> </dd> <?php endif; ?> <?php endif; ?> <?php if ($this->contact->email_to && $this->params->get('show_email')) : ?> <dt> <span class="<?php echo $this->params->get('marker_class'); ?>" itemprop="email"> <?php echo nl2br($this->params->get('marker_email')); ?> </span> </dt> <dd> <span class="contact-emailto"> <?php echo $this->contact->email_to; ?> </span> </dd> <?php endif; ?> <?php if ($this->contact->telephone && $this->params->get('show_telephone')) : ?> <dt> <span class="<?php echo $this->params->get('marker_class'); ?>"> <?php echo $this->params->get('marker_telephone'); ?> </span> </dt> <dd> <span class="contact-telephone" itemprop="telephone"> <?php echo $this->contact->telephone; ?> </span> </dd> <?php endif; ?> <?php if ($this->contact->fax && $this->params->get('show_fax')) : ?> <dt> <span class="<?php echo $this->params->get('marker_class'); ?>"> <?php echo $this->params->get('marker_fax'); ?> </span> </dt> <dd> <span class="contact-fax" itemprop="faxNumber"> <?php echo $this->contact->fax; ?> </span> </dd> <?php endif; ?> <?php if ($this->contact->mobile && $this->params->get('show_mobile')) : ?> <dt> <span class="<?php echo $this->params->get('marker_class'); ?>"> <?php echo $this->params->get('marker_mobile'); ?> </span> </dt> <dd> <span class="contact-mobile" itemprop="telephone"> <?php echo $this->contact->mobile; ?> </span> </dd> <?php endif; ?> <?php if ($this->contact->webpage && $this->params->get('show_webpage')) : ?> <dt> <span class="<?php echo $this->params->get('marker_class'); ?>"> </span> </dt> <dd> <span class="contact-webpage"> <a href="<?php echo $this->contact->webpage; ?>" target="_blank" rel="noopener noreferrer" itemprop="url"> <?php echo JStringPunycode::urlToUTF8($this->contact->webpage); ?></a> </span> </dd> <?php endif; ?> </dl> views/contact/tmpl/default.xml 0000644 00000030000 15075071342 0012453 0 ustar 00 <?xml version="1.0" encoding="utf-8"?> <metadata> <layout title="COM_CONTACT_CONTACT_VIEW_DEFAULT_TITLE" option="COM_CONTACT_CONTACT_VIEW_DEFAULT_OPTION"> <help key = "JHELP_MENUS_MENU_ITEM_CONTACT_SINGLE_CONTACT" /> <message> <![CDATA[COM_CONTACT_CONTACT_VIEW_DEFAULT_DESC]]> </message> </layout> <!-- Add fields to the request variables for the layout. --> <fields name="request"> <fieldset name="request" addfieldpath="/administrator/components/com_contact/models/fields" > <field name="id" type="modal_contact" label="COM_CONTACT_SELECT_CONTACT_LABEL" description="COM_CONTACT_SELECT_CONTACT_DESC" required="true" select="true" new="true" edit="true" clear="true" /> </fieldset> </fields> <!-- Add fields to the parameters object for the layout. --> <fields name="params"> <!-- Basic options. --> <fieldset name="params" label="COM_CONTACT_BASIC_OPTIONS_FIELDSET_LABEL" addfieldpath="/administrator/components/com_fields/models/fields" > <field name="presentation_style" type="list" label="COM_CONTACT_FIELD_PRESENTATION_LABEL" description="COM_CONTACT_FIELD_PRESENTATION_DESC" useglobal="true" > <option value="sliders">COM_CONTACT_FIELD_VALUE_SLIDERS</option> <option value="tabs">COM_CONTACT_FIELD_VALUE_TABS</option> <option value="plain">COM_CONTACT_FIELD_VALUE_PLAIN</option> </field> <field name="show_contact_category" type="list" label="COM_CONTACT_FIELD_CONTACT_SHOW_CATEGORY_LABEL" description="COM_CONTACT_FIELD_CONTACT_SHOW_CATEGORY_DESC" useglobal="true" class="chzn-color" > <option value="hide">JHIDE</option> <option value="show_no_link">COM_CONTACT_FIELD_VALUE_NO_LINK</option> <option value="show_with_link">COM_CONTACT_FIELD_VALUE_WITH_LINK</option> </field> <field name="show_contact_list" type="list" label="COM_CONTACT_FIELD_CONTACT_SHOW_LIST_LABEL" description="COM_CONTACT_FIELD_CONTACT_SHOW_LIST_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_name" type="list" label="COM_CONTACT_FIELD_PARAMS_NAME_LABEL" description="COM_CONTACT_FIELD_PARAMS_NAME_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_tags" type="list" label="COM_CONTACT_FIELD_SHOW_TAGS_LABEL" description="COM_CONTACT_FIELD_SHOW_TAGS_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_info" type="list" label="COM_CONTACT_FIELD_SHOW_INFO_LABEL" description="COM_CONTACT_FIELD_SHOW_INFO_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_position" type="list" label="COM_CONTACT_FIELD_PARAMS_CONTACT_POSITION_LABEL" description="COM_CONTACT_FIELD_PARAMS_CONTACT_POSITION_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_email" type="list" label="JGLOBAL_EMAIL" description="COM_CONTACT_FIELD_PARAMS_CONTACT_E_MAIL_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="add_mailto_link" type="list" label="COM_CONTACT_FIELD_PARAMS_ADD_MAILTO_LINK_LABEL" description="COM_CONTACT_FIELD_PARAMS_ADD_MAILTO_LINK_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="1">JYES</option> <option value="0">JNO</option> </field> <field name="show_street_address" type="list" label="COM_CONTACT_FIELD_PARAMS_STREET_ADDRESS_LABEL" description="COM_CONTACT_FIELD_PARAMS_STREET_ADDRESS_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_suburb" type="list" label="COM_CONTACT_FIELD_PARAMS_TOWN-SUBURB_LABEL" description="COM_CONTACT_FIELD_PARAMS_TOWN-SUBURB_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_state" type="list" label="COM_CONTACT_FIELD_PARAMS_STATE-COUNTY_LABEL" description="COM_CONTACT_FIELD_PARAMS_STATE-COUNTY_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_postcode" type="list" label="COM_CONTACT_FIELD_PARAMS_POST-ZIP_CODE_LABEL" description="COM_CONTACT_FIELD_PARAMS_POST-ZIP_CODE_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_country" type="list" label="COM_CONTACT_FIELD_PARAMS_COUNTRY_LABEL" description="COM_CONTACT_FIELD_PARAMS_COUNTRY_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_telephone" type="list" label="COM_CONTACT_FIELD_PARAMS_TELEPHONE_LABEL" description="COM_CONTACT_FIELD_PARAMS_TELEPHONE_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_mobile" type="list" label="COM_CONTACT_FIELD_PARAMS_MOBILE_LABEL" description="COM_CONTACT_FIELD_PARAMS_MOBILE_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_fax" type="list" label="COM_CONTACT_FIELD_PARAMS_FAX_LABEL" description="COM_CONTACT_FIELD_PARAMS_FAX_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_webpage" type="list" label="COM_CONTACT_FIELD_PARAMS_WEBPAGE_LABEL" description="COM_CONTACT_FIELD_PARAMS_WEBPAGE_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_image" type="list" label="COM_CONTACT_FIELD_PARAMS_IMAGE_LABEL" description="COM_CONTACT_FIELD_PARAMS_IMAGE_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="allow_vcard" type="list" label="COM_CONTACT_FIELD_PARAMS_VCARD_LABEL" description="COM_CONTACT_FIELD_PARAMS_VCARD_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_misc" type="list" label="COM_CONTACT_FIELD_PARAMS_MISC_INFO_LABEL" description="COM_CONTACT_FIELD_PARAMS_MISC_INFO_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_articles" type="list" label="COM_CONTACT_FIELD_ARTICLES_SHOW_LABEL" description="COM_CONTACT_FIELD_ARTICLES_SHOW_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="articles_display_num" type="list" label="COM_CONTACT_FIELD_ARTICLES_DISPLAY_NUM_LABEL" description="COM_CONTACT_FIELD_ARTICLES_DISPLAY_NUM_DESC" default="" useglobal="true" > <option value="use_contact">COM_CONTACT_FIELD_VALUE_USE_CONTACT_SETTINGS</option> <option value="5">J5</option> <option value="10">J10</option> <option value="15">J15</option> <option value="20">J20</option> <option value="25">J25</option> <option value="30">J30</option> <option value="50">J50</option> <option value="75">J75</option> <option value="100">J100</option> <option value="150">J150</option> <option value="200">J200</option> <option value="250">J250</option> <option value="300">J300</option> <option value="0">JALL</option> </field> <field name="show_profile" type="list" label="COM_CONTACT_FIELD_PROFILE_SHOW_LABEL" description="COM_CONTACT_FIELD_PROFILE_SHOW_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_user_custom_fields" type="fieldgroups" label="COM_CONTACT_FIELD_USER_CUSTOM_FIELDS_SHOW_LABEL" description="COM_CONTACT_FIELD_USER_CUSTOM_FIELDS_SHOW_DESC" multiple="true" context="com_users.user" > <option value="-1">JALL</option> </field> <field name="show_links" type="list" label="COM_CONTACT_FIELD_SHOW_LINKS_LABEL" description="COM_CONTACT_FIELD_SHOW_LINKS_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="linka_name" type="text" label="COM_CONTACT_FIELD_LINKA_NAME_LABEL" description="COM_CONTACT_FIELD_LINK_NAME_DESC" size="30" useglobal="true" /> <field name="linkb_name" type="text" label="COM_CONTACT_FIELD_LINKB_NAME_LABEL" description="COM_CONTACT_FIELD_LINK_NAME_DESC" size="30" useglobal="true" /> <field name="linkc_name" type="text" label="COM_CONTACT_FIELD_LINKC_NAME_LABEL" description="COM_CONTACT_FIELD_LINK_NAME_DESC" size="30" useglobal="true" /> <field name="linkd_name" type="text" label="COM_CONTACT_FIELD_LINKD_NAME_LABEL" description="COM_CONTACT_FIELD_LINK_NAME_DESC" size="30" useglobal="true" /> <field name="linke_name" type="text" label="COM_CONTACT_FIELD_LINKE_NAME_LABEL" description="COM_CONTACT_FIELD_LINK_NAME_DESC" size="30" useglobal="true" /> </fieldset> <!-- Form options. --> <fieldset name="Contact_Form" label="COM_CONTACT_MAIL_FIELDSET_LABEL" > <field name="show_email_form" type="list" label="COM_CONTACT_FIELD_EMAIL_SHOW_FORM_LABEL" description="COM_CONTACT_FIELD_EMAIL_SHOW_FORM_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_email_copy" type="list" label="COM_CONTACT_FIELD_EMAIL_EMAIL_COPY_LABEL" description="COM_CONTACT_FIELD_EMAIL_EMAIL_COPY_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="validate_session" type="list" label="COM_CONTACT_FIELD_CONFIG_SESSION_CHECK_LABEL" description="COM_CONTACT_FIELD_CONFIG_SESSION_CHECK_DESC" useglobal="true" class="chzn-color" > <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="custom_reply" type="list" label="COM_CONTACT_FIELD_CONFIG_CUSTOM_REPLY_LABEL" description="COM_CONTACT_FIELD_CONFIG_CUSTOM_REPLY_DESC" useglobal="true" class="chzn-color" > <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="redirect" type="text" label="COM_CONTACT_FIELD_CONFIG_REDIRECT_LABEL" description="COM_CONTACT_FIELD_CONFIG_REDIRECT_DESC" size="30" useglobal="true" /> </fieldset> </fields> </metadata> views/contact/tmpl/default.php 0000644 00000024746 15075071342 0012466 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; jimport('joomla.html.html.bootstrap'); $cparams = JComponentHelper::getParams('com_media'); $tparams = $this->item->params; ?> <div class="contact<?php echo $this->pageclass_sfx; ?>" itemscope itemtype="https://schema.org/Person"> <?php if ($tparams->get('show_page_heading')) : ?> <h1> <?php echo $this->escape($tparams->get('page_heading')); ?> </h1> <?php endif; ?> <?php if ($this->contact->name && $tparams->get('show_name')) : ?> <div class="page-header"> <h2> <?php if ($this->item->published == 0) : ?> <span class="label label-warning"><?php echo JText::_('JUNPUBLISHED'); ?></span> <?php endif; ?> <span class="contact-name" itemprop="name"><?php echo $this->contact->name; ?></span> </h2> </div> <?php endif; ?> <?php $show_contact_category = $tparams->get('show_contact_category'); ?> <?php if ($show_contact_category === 'show_no_link') : ?> <h3> <span class="contact-category"><?php echo $this->contact->category_title; ?></span> </h3> <?php elseif ($show_contact_category === 'show_with_link') : ?> <?php $contactLink = ContactHelperRoute::getCategoryRoute($this->contact->catid); ?> <h3> <span class="contact-category"><a href="<?php echo $contactLink; ?>"> <?php echo $this->escape($this->contact->category_title); ?></a> </span> </h3> <?php endif; ?> <?php echo $this->item->event->afterDisplayTitle; ?> <?php if ($tparams->get('show_contact_list') && count($this->contacts) > 1) : ?> <form action="#" method="get" name="selectForm" id="selectForm"> <label for="select_contact"><?php echo JText::_('COM_CONTACT_SELECT_CONTACT'); ?></label> <?php echo JHtml::_('select.genericlist', $this->contacts, 'select_contact', 'class="inputbox" onchange="document.location.href = this.value"', 'link', 'name', $this->contact->link); ?> </form> <?php endif; ?> <?php if ($tparams->get('show_tags', 1) && !empty($this->item->tags->itemTags)) : ?> <?php $this->item->tagLayout = new JLayoutFile('joomla.content.tags'); ?> <?php echo $this->item->tagLayout->render($this->item->tags->itemTags); ?> <?php endif; ?> <?php echo $this->item->event->beforeDisplayContent; ?> <?php $presentation_style = $tparams->get('presentation_style'); ?> <?php $accordionStarted = false; ?> <?php $tabSetStarted = false; ?> <?php if ($this->params->get('show_info', 1)) : ?> <?php if ($presentation_style === 'sliders') : ?> <?php echo JHtml::_('bootstrap.startAccordion', 'slide-contact', array('active' => 'basic-details')); ?> <?php $accordionStarted = true; ?> <?php echo JHtml::_('bootstrap.addSlide', 'slide-contact', JText::_('COM_CONTACT_DETAILS'), 'basic-details'); ?> <?php elseif ($presentation_style === 'tabs') : ?> <?php echo JHtml::_('bootstrap.startTabSet', 'myTab', array('active' => 'basic-details')); ?> <?php $tabSetStarted = true; ?> <?php echo JHtml::_('bootstrap.addTab', 'myTab', 'basic-details', JText::_('COM_CONTACT_DETAILS')); ?> <?php elseif ($presentation_style === 'plain') : ?> <?php echo '<h3>' . JText::_('COM_CONTACT_DETAILS') . '</h3>'; ?> <?php endif; ?> <?php if ($this->contact->image && $tparams->get('show_image')) : ?> <div class="thumbnail pull-right"> <?php echo JHtml::_('image', $this->contact->image, htmlspecialchars($this->contact->name, ENT_QUOTES, 'UTF-8'), array('itemprop' => 'image')); ?> </div> <?php endif; ?> <?php if ($this->contact->con_position && $tparams->get('show_position')) : ?> <dl class="contact-position dl-horizontal"> <dt><?php echo JText::_('COM_CONTACT_POSITION'); ?>:</dt> <dd itemprop="jobTitle"> <?php echo $this->contact->con_position; ?> </dd> </dl> <?php endif; ?> <?php echo $this->loadTemplate('address'); ?> <?php if ($tparams->get('allow_vcard')) : ?> <?php echo JText::_('COM_CONTACT_DOWNLOAD_INFORMATION_AS'); ?> <a href="<?php echo JRoute::_('index.php?option=com_contact&view=contact&id=' . $this->contact->id . '&format=vcf'); ?>"> <?php echo JText::_('COM_CONTACT_VCARD'); ?></a> <?php endif; ?> <?php if ($presentation_style === 'sliders') : ?> <?php echo JHtml::_('bootstrap.endSlide'); ?> <?php elseif ($presentation_style === 'tabs') : ?> <?php echo JHtml::_('bootstrap.endTab'); ?> <?php endif; ?> <?php endif; ?> <?php if ($tparams->get('show_email_form') && ($this->contact->email_to || $this->contact->user_id)) : ?> <?php if ($presentation_style === 'sliders') : ?> <?php if (!$accordionStarted) { echo JHtml::_('bootstrap.startAccordion', 'slide-contact', array('active' => 'display-form')); $accordionStarted = true; } ?> <?php echo JHtml::_('bootstrap.addSlide', 'slide-contact', JText::_('COM_CONTACT_EMAIL_FORM'), 'display-form'); ?> <?php elseif ($presentation_style === 'tabs') : ?> <?php if (!$tabSetStarted) { echo JHtml::_('bootstrap.startTabSet', 'myTab', array('active' => 'display-form')); $tabSetStarted = true; } ?> <?php echo JHtml::_('bootstrap.addTab', 'myTab', 'display-form', JText::_('COM_CONTACT_EMAIL_FORM')); ?> <?php elseif ($presentation_style === 'plain') : ?> <?php echo '<h3>' . JText::_('COM_CONTACT_EMAIL_FORM') . '</h3>'; ?> <?php endif; ?> <?php echo $this->loadTemplate('form'); ?> <?php if ($presentation_style === 'sliders') : ?> <?php echo JHtml::_('bootstrap.endSlide'); ?> <?php elseif ($presentation_style === 'tabs') : ?> <?php echo JHtml::_('bootstrap.endTab'); ?> <?php endif; ?> <?php endif; ?> <?php if ($tparams->get('show_links')) : ?> <?php if ($presentation_style === 'sliders') : ?> <?php if (!$accordionStarted) : ?> <?php echo JHtml::_('bootstrap.startAccordion', 'slide-contact', array('active' => 'display-links')); ?> <?php $accordionStarted = true; ?> <?php endif; ?> <?php elseif ($presentation_style === 'tabs') : ?> <?php if (!$tabSetStarted) : ?> <?php echo JHtml::_('bootstrap.startTabSet', 'myTab', array('active' => 'display-links')); ?> <?php $tabSetStarted = true; ?> <?php endif; ?> <?php endif; ?> <?php echo $this->loadTemplate('links'); ?> <?php endif; ?> <?php if ($tparams->get('show_articles') && $this->contact->user_id && $this->contact->articles) : ?> <?php if ($presentation_style === 'sliders') : ?> <?php if (!$accordionStarted) { echo JHtml::_('bootstrap.startAccordion', 'slide-contact', array('active' => 'display-articles')); $accordionStarted = true; } ?> <?php echo JHtml::_('bootstrap.addSlide', 'slide-contact', JText::_('JGLOBAL_ARTICLES'), 'display-articles'); ?> <?php elseif ($presentation_style === 'tabs') : ?> <?php if (!$tabSetStarted) { echo JHtml::_('bootstrap.startTabSet', 'myTab', array('active' => 'display-articles')); $tabSetStarted = true; } ?> <?php echo JHtml::_('bootstrap.addTab', 'myTab', 'display-articles', JText::_('JGLOBAL_ARTICLES')); ?> <?php elseif ($presentation_style === 'plain') : ?> <?php echo '<h3>' . JText::_('JGLOBAL_ARTICLES') . '</h3>'; ?> <?php endif; ?> <?php echo $this->loadTemplate('articles'); ?> <?php if ($presentation_style === 'sliders') : ?> <?php echo JHtml::_('bootstrap.endSlide'); ?> <?php elseif ($presentation_style === 'tabs') : ?> <?php echo JHtml::_('bootstrap.endTab'); ?> <?php endif; ?> <?php endif; ?> <?php if ($tparams->get('show_profile') && $this->contact->user_id && JPluginHelper::isEnabled('user', 'profile')) : ?> <?php if ($presentation_style === 'sliders') : ?> <?php if (!$accordionStarted) { echo JHtml::_('bootstrap.startAccordion', 'slide-contact', array('active' => 'display-profile')); $accordionStarted = true; } ?> <?php echo JHtml::_('bootstrap.addSlide', 'slide-contact', JText::_('COM_CONTACT_PROFILE'), 'display-profile'); ?> <?php elseif ($presentation_style === 'tabs') : ?> <?php if (!$tabSetStarted) { echo JHtml::_('bootstrap.startTabSet', 'myTab', array('active' => 'display-profile')); $tabSetStarted = true; } ?> <?php echo JHtml::_('bootstrap.addTab', 'myTab', 'display-profile', JText::_('COM_CONTACT_PROFILE')); ?> <?php elseif ($presentation_style === 'plain') : ?> <?php echo '<h3>' . JText::_('COM_CONTACT_PROFILE') . '</h3>'; ?> <?php endif; ?> <?php echo $this->loadTemplate('profile'); ?> <?php if ($presentation_style === 'sliders') : ?> <?php echo JHtml::_('bootstrap.endSlide'); ?> <?php elseif ($presentation_style === 'tabs') : ?> <?php echo JHtml::_('bootstrap.endTab'); ?> <?php endif; ?> <?php endif; ?> <?php if ($tparams->get('show_user_custom_fields') && $this->contactUser) : ?> <?php echo $this->loadTemplate('user_custom_fields'); ?> <?php endif; ?> <?php if ($this->contact->misc && $tparams->get('show_misc')) : ?> <?php if ($presentation_style === 'sliders') : ?> <?php if (!$accordionStarted) { echo JHtml::_('bootstrap.startAccordion', 'slide-contact', array('active' => 'display-misc')); $accordionStarted = true; } ?> <?php echo JHtml::_('bootstrap.addSlide', 'slide-contact', JText::_('COM_CONTACT_OTHER_INFORMATION'), 'display-misc'); ?> <?php elseif ($presentation_style === 'tabs') : ?> <?php if (!$tabSetStarted) { echo JHtml::_('bootstrap.startTabSet', 'myTab', array('active' => 'display-misc')); $tabSetStarted = true; } ?> <?php echo JHtml::_('bootstrap.addTab', 'myTab', 'display-misc', JText::_('COM_CONTACT_OTHER_INFORMATION')); ?> <?php elseif ($presentation_style === 'plain') : ?> <?php echo '<h3>' . JText::_('COM_CONTACT_OTHER_INFORMATION') . '</h3>'; ?> <?php endif; ?> <div class="contact-miscinfo"> <dl class="dl-horizontal"> <dt> <span class="<?php echo $tparams->get('marker_class'); ?>"> <?php echo $tparams->get('marker_misc'); ?> </span> </dt> <dd> <span class="contact-misc"> <?php echo $this->contact->misc; ?> </span> </dd> </dl> </div> <?php if ($presentation_style === 'sliders') : ?> <?php echo JHtml::_('bootstrap.endSlide'); ?> <?php elseif ($presentation_style === 'tabs') : ?> <?php echo JHtml::_('bootstrap.endTab'); ?> <?php endif; ?> <?php endif; ?> <?php if ($accordionStarted) : ?> <?php echo JHtml::_('bootstrap.endAccordion'); ?> <?php elseif ($tabSetStarted) : ?> <?php echo JHtml::_('bootstrap.endTabSet'); ?> <?php endif; ?> <?php echo $this->item->event->afterDisplayContent; ?> </div> views/contact/tmpl/default_profile.php 0000644 00000002542 15075071342 0014174 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; ?> <?php if (JPluginHelper::isEnabled('user', 'profile')) : $fields = $this->item->profile->getFieldset('profile'); ?> <div class="contact-profile" id="users-profile-custom"> <dl class="dl-horizontal"> <?php foreach ($fields as $profile) : if ($profile->value) : echo '<dt>' . $profile->label . '</dt>'; $profile->text = htmlspecialchars($profile->value, ENT_COMPAT, 'UTF-8'); switch ($profile->id) : case 'profile_website': $v_http = substr($profile->value, 0, 4); if ($v_http === 'http') : echo '<dd><a href="' . $profile->text . '">' . JStringPunycode::urlToUTF8($profile->text) . '</a></dd>'; else : echo '<dd><a href="http://' . $profile->text . '">' . JStringPunycode::urlToUTF8($profile->text) . '</a></dd>'; endif; break; case 'profile_dob': echo '<dd>' . JHtml::_('date', $profile->text, JText::_('DATE_FORMAT_LC4'), false) . '</dd>'; break; default: echo '<dd>' . $profile->text . '</dd>'; break; endswitch; endif; endforeach; ?> </dl> </div> <?php endif; ?> views/categories/tmpl/default.xml 0000644 00000046465 15075071342 0013173 0 ustar 00 <?xml version="1.0" encoding="utf-8"?> <metadata> <layout title="COM_CONTACT_CATEGORIES_VIEW_DEFAULT_TITLE" option="COM_CONTACT_CATEGORIES_VIEW_DEFAULT_OPTION"> <help key = "JHELP_MENUS_MENU_ITEM_CONTACT_CATEGORIES" /> <message> <![CDATA[COM_CONTACT_CATEGORIES_VIEW_DEFAULT_DESC]]> </message> </layout> <!-- Add fields to the request variables for the layout. --> <fields name="request"> <fieldset name="request" > <field name="id" type="category" label="JGLOBAL_FIELD_CATEGORIES_CHOOSE_CATEGORY_LABEL" description="JGLOBAL_FIELD_CATEGORIES_CHOOSE_CATEGORY_DESC" extension="com_contact" show_root="true" required="true" /> </fieldset> </fields> <fields name="params"> <fieldset name="basic" label="JGLOBAL_CATEGORIES_OPTIONS"> <field name="show_base_description" type="list" label="JGLOBAL_FIELD_SHOW_BASE_DESCRIPTION_LABEL" description="JGLOBAL_FIELD_SHOW_BASE_DESCRIPTION_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="categories_description" type="textarea" label="JGLOBAL_FIELD_CATEGORIES_DESC_LABEL" description="JGLOBAL_FIELD_CATEGORIES_DESC_DESC" cols="25" rows="5" /> <field name="maxLevelcat" type="list" label="JGLOBAL_MAXIMUM_CATEGORY_LEVELS_LABEL" description="JGLOBAL_MAXIMUM_CATEGORY_LEVELS_DESC" useglobal="true" > <option value="-1">JALL</option> <option value="1">J1</option> <option value="2">J2</option> <option value="3">J3</option> <option value="4">J4</option> <option value="5">J5</option> </field> <field name="show_empty_categories_cat" type="list" label="JGLOBAL_SHOW_EMPTY_CATEGORIES_LABEL" description="COM_CONTACT_SHOW_EMPTY_CATEGORIES_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_subcat_desc_cat" type="list" label="JGLOBAL_SHOW_SUBCATEGORIES_DESCRIPTION_LABEL" description="JGLOBAL_SHOW_SUBCATEGORIES_DESCRIPTION_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_cat_items_cat" type="list" label="COM_CONTACT_FIELD_SHOW_CAT_ITEMS_LABEL" description="COM_CONTACT_FIELD_SHOW_CAT_ITEMS_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> </fieldset> <fieldset name="category" label="JGLOBAL_CATEGORY_OPTIONS"> <field name="spacer1" type="spacer" label="JGLOBAL_SUBSLIDER_DRILL_CATEGORIES_LABEL" class="text" /> <field name="show_category_title" type="list" label="JGLOBAL_SHOW_CATEGORY_TITLE" description="JGLOBAL_SHOW_CATEGORY_TITLE_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_description" type="list" label="JGLOBAL_SHOW_CATEGORY_DESCRIPTION_LABEL" description="JGLOBAL_SHOW_CATEGORY_DESCRIPTION_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_description_image" type="list" label="JGLOBAL_SHOW_CATEGORY_IMAGE_LABEL" description="JGLOBAL_SHOW_CATEGORY_IMAGE_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="maxLevel" type="list" label="JGLOBAL_MAXIMUM_CATEGORY_LEVELS_LABEL" description="JGLOBAL_MAXIMUM_CATEGORY_LEVELS_DESC" useglobal="true" > <option value="-1">JALL</option> <option value="0">JNONE</option> <option value="1">J1</option> <option value="2">J2</option> <option value="3">J3</option> <option value="4">J4</option> <option value="5">J5</option> </field> <field name="show_empty_categories" type="list" label="JGLOBAL_SHOW_EMPTY_CATEGORIES_LABEL" description="COM_CONTACT_SHOW_EMPTY_CATEGORIES_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_subcat_desc" type="list" label="JGLOBAL_SHOW_SUBCATEGORIES_DESCRIPTION_LABEL" description="JGLOBAL_SHOW_SUBCATEGORIES_DESCRIPTION_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_cat_items" type="list" label="COM_CONTACT_FIELD_SHOW_CAT_ITEMS_LABEL" description="COM_CONTACT_FIELD_SHOW_CAT_ITEMS_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> </fieldset> <fieldset name="advanced" label="JGLOBAL_LIST_LAYOUT_OPTIONS"> <field name="spacer2" type="spacer" label="JGLOBAL_SUBSLIDER_DRILL_CATEGORIES_LABEL" class="text" /> <field name="filter_field" type="list" label="JGLOBAL_FILTER_FIELD_LABEL" description="JGLOBAL_FILTER_FIELD_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_pagination_limit" type="list" label="JGLOBAL_DISPLAY_SELECT_LABEL" description="JGLOBAL_DISPLAY_SELECT_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_headings" type="list" label="JGLOBAL_SHOW_HEADINGS_LABEL" description="JGLOBAL_SHOW_HEADINGS_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_position_headings" type="list" label="COM_CONTACT_FIELD_CONFIG_POSITION_LABEL" description="COM_CONTACT_FIELD_CONFIG_POSITION_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_email_headings" type="list" label="JGLOBAL_EMAIL" description="COM_CONTACT_FIELD_CONFIG_EMAIL_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_telephone_headings" type="list" label="COM_CONTACT_FIELD_CONFIG_PHONE_LABEL" description="COM_CONTACT_FIELD_CONFIG_PHONE_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_mobile_headings" type="list" label="COM_CONTACT_FIELD_CONFIG_MOBILE_LABEL" description="COM_CONTACT_FIELD_CONFIG_MOBILE_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_fax_headings" type="list" label="COM_CONTACT_FIELD_CONFIG_FAX_LABEL" description="COM_CONTACT_FIELD_CONFIG_FAX_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_suburb_headings" type="list" label="COM_CONTACT_FIELD_CONFIG_SUBURB_LABEL" description="COM_CONTACT_FIELD_CONFIG_SUBURB_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_state_headings" type="list" label="COM_CONTACT_FIELD_CONFIG_STATE_LABEL" description="COM_CONTACT_FIELD_CONFIG_STATE_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_country_headings" type="list" label="COM_CONTACT_FIELD_CONFIG_COUNTRY_LABEL" description="COM_CONTACT_FIELD_CONFIG_COUNTRY_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_pagination" type="list" label="JGLOBAL_PAGINATION_LABEL" description="JGLOBAL_PAGINATION_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> <option value="2">JGLOBAL_AUTO</option> </field> <field name="show_pagination_results" type="list" label="JGLOBAL_PAGINATION_RESULTS_LABEL" description="JGLOBAL_PAGINATION_RESULTS_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> </fieldset> <fieldset name="contact" label="COM_CONTACT_BASIC_OPTIONS_FIELDSET_LABEL"> <field name="presentation_style" type="list" label="COM_CONTACT_FIELD_PRESENTATION_LABEL" description="COM_CONTACT_FIELD_PRESENTATION_DESC" useglobal="true" > <option value="sliders">COM_CONTACT_FIELD_VALUE_SLIDERS</option> <option value="tabs">COM_CONTACT_FIELD_VALUE_TABS</option> <option value="plain">COM_CONTACT_FIELD_VALUE_PLAIN</option> </field> <field name="show_contact_category" type="list" label="COM_CONTACT_FIELD_CONTACT_SHOW_CATEGORY_LABEL" description="COM_CONTACT_FIELD_CONTACT_SHOW_CATEGORY_DESC" useglobal="true" class="chzn-color" > <option value="hide">JHIDE</option> <option value="show_no_link">COM_CONTACT_FIELD_VALUE_NO_LINK</option> <option value="show_with_link">COM_CONTACT_FIELD_VALUE_WITH_LINK</option> </field> <field name="show_contact_list" type="list" label="COM_CONTACT_FIELD_CONTACT_SHOW_LIST_LABEL" description="COM_CONTACT_FIELD_CONTACT_SHOW_LIST_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_name" type="list" label="COM_CONTACT_FIELD_PARAMS_NAME_LABEL" description="COM_CONTACT_FIELD_PARAMS_NAME_DESC" useglobal="true" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_tags" type="list" label="COM_CONTACT_FIELD_SHOW_TAGS_LABEL" description="COM_CONTACT_FIELD_SHOW_TAGS_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_info" type="list" label="COM_CONTACT_FIELD_SHOW_INFO_LABEL" description="COM_CONTACT_FIELD_SHOW_INFO_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_position" type="list" label="COM_CONTACT_FIELD_PARAMS_CONTACT_POSITION_LABEL" description="COM_CONTACT_FIELD_PARAMS_CONTACT_POSITION_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_email" type="list" label="JGLOBAL_EMAIL" description="COM_CONTACT_FIELD_PARAMS_CONTACT_E_MAIL_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_street_address" type="list" label="COM_CONTACT_FIELD_PARAMS_STREET_ADDRESS_LABEL" description="COM_CONTACT_FIELD_PARAMS_STREET_ADDRESS_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_suburb" type="list" description="COM_CONTACT_FIELD_PARAMS_TOWN-SUBURB_DESC" label="COM_CONTACT_FIELD_PARAMS_TOWN-SUBURB_LABEL" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_state" type="list" label="COM_CONTACT_FIELD_PARAMS_STATE-COUNTY_LABEL" description="COM_CONTACT_FIELD_PARAMS_STATE-COUNTY_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_postcode" type="list" label="COM_CONTACT_FIELD_PARAMS_POST-ZIP_CODE_LABEL" description="COM_CONTACT_FIELD_PARAMS_POST-ZIP_CODE_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_country" type="list" label="COM_CONTACT_FIELD_PARAMS_COUNTRY_LABEL" description="COM_CONTACT_FIELD_PARAMS_COUNTRY_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_telephone" type="list" label="COM_CONTACT_FIELD_PARAMS_TELEPHONE_LABEL" description="COM_CONTACT_FIELD_PARAMS_TELEPHONE_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_mobile" type="list" label="COM_CONTACT_FIELD_PARAMS_MOBILE_LABEL" description="COM_CONTACT_FIELD_PARAMS_MOBILE_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_fax" type="list" label="COM_CONTACT_FIELD_PARAMS_FAX_LABEL" description="COM_CONTACT_FIELD_PARAMS_FAX_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_webpage" type="list" label="COM_CONTACT_FIELD_PARAMS_WEBPAGE_LABEL" description="COM_CONTACT_FIELD_PARAMS_WEBPAGE_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_image" type="list" label="COM_CONTACT_FIELD_PARAMS_IMAGE_LABEL" description="COM_CONTACT_FIELD_PARAMS_IMAGE_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="allow_vcard" type="list" label="COM_CONTACT_FIELD_PARAMS_VCARD_LABEL" description="COM_CONTACT_FIELD_PARAMS_VCARD_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_misc" type="list" label="COM_CONTACT_FIELD_PARAMS_MISC_INFO_LABEL" description="COM_CONTACT_FIELD_PARAMS_MISC_INFO_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_articles" type="list" label="COM_CONTACT_FIELD_ARTICLES_SHOW_LABEL" description="COM_CONTACT_FIELD_ARTICLES_SHOW_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="articles_display_num" type="list" label="COM_CONTACT_FIELD_ARTICLES_DISPLAY_NUM_LABEL" description="COM_CONTACT_FIELD_ARTICLES_DISPLAY_NUM_DESC" default="" useglobal="true" > <option value="use_contact">COM_CONTACT_FIELD_VALUE_USE_CONTACT_SETTINGS</option> <option value="5">J5</option> <option value="10">J10</option> <option value="15">J15</option> <option value="20">J20</option> <option value="25">J25</option> <option value="30">J30</option> <option value="50">J50</option> <option value="75">J75</option> <option value="100">J100</option> <option value="150">J150</option> <option value="200">J200</option> <option value="250">J250</option> <option value="300">J300</option> <option value="0">JALL</option> </field> <field name="show_links" type="list" label="COM_CONTACT_FIELD_SHOW_LINKS_LABEL" description="COM_CONTACT_FIELD_SHOW_LINKS_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="linka_name" type="text" label="COM_CONTACT_FIELD_LINKA_NAME_LABEL" description="COM_CONTACT_FIELD_LINK_NAME_DESC" size="30" useglobal="true" /> <field name="linkb_name" type="text" label="COM_CONTACT_FIELD_LINKB_NAME_LABEL" description="COM_CONTACT_FIELD_LINK_NAME_DESC" size="30" useglobal="true" /> <field name="linkc_name" type="text" label="COM_CONTACT_FIELD_LINKC_NAME_LABEL" description="COM_CONTACT_FIELD_LINK_NAME_DESC" size="30" useglobal="true" /> <field name="linkd_name" type="text" label="COM_CONTACT_FIELD_LINKD_NAME_LABEL" description="COM_CONTACT_FIELD_LINK_NAME_DESC" size="30" useglobal="true" /> <field name="linke_name" type="text" label="COM_CONTACT_FIELD_LINKE_NAME_LABEL" description="COM_CONTACT_FIELD_LINK_NAME_DESC" size="30" useglobal="true" /> </fieldset> <!-- Form options. --> <fieldset name="Contact_Form" label="COM_CONTACT_MAIL_FIELDSET_LABEL"> <field name="show_email_form" type="list" label="COM_CONTACT_FIELD_EMAIL_SHOW_FORM_LABEL" description="COM_CONTACT_FIELD_EMAIL_SHOW_FORM_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_email_copy" type="list" label="COM_CONTACT_FIELD_EMAIL_EMAIL_COPY_LABEL" description="COM_CONTACT_FIELD_EMAIL_EMAIL_COPY_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="validate_session" type="list" label="COM_CONTACT_FIELD_CONFIG_SESSION_CHECK_LABEL" description="COM_CONTACT_FIELD_CONFIG_SESSION_CHECK_DESC" useglobal="true" class="chzn-color" > <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="custom_reply" type="list" label="COM_CONTACT_FIELD_CONFIG_CUSTOM_REPLY_LABEL" description="COM_CONTACT_FIELD_CONFIG_CUSTOM_REPLY_DESC" useglobal="true" class="chzn-color" > <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="redirect" type="text" label="COM_CONTACT_FIELD_CONFIG_REDIRECT_LABEL" description="COM_CONTACT_FIELD_CONFIG_REDIRECT_DESC" size="30" useglobal="true" /> </fieldset> <fieldset name="integration"> <field name="show_feed_link" type="list" label="JGLOBAL_SHOW_FEED_LINK_LABEL" description="JGLOBAL_SHOW_FEED_LINK_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> </fieldset> </fields> </metadata> views/categories/tmpl/default.php 0000644 00000002372 15075071342 0013147 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; JHtml::addIncludePath(JPATH_COMPONENT . '/helpers'); JHtml::_('behavior.caption'); JHtml::_('behavior.core'); // Add strings for translations in Javascript. JText::script('JGLOBAL_EXPAND_CATEGORIES'); JText::script('JGLOBAL_COLLAPSE_CATEGORIES'); JFactory::getDocument()->addScriptDeclaration(" jQuery(function($) { $('.categories-list').find('[id^=category-btn-]').each(function(index, btn) { var btn = $(btn); btn.on('click', function() { btn.find('span').toggleClass('icon-plus'); btn.find('span').toggleClass('icon-minus'); if (btn.attr('aria-label') === Joomla.JText._('JGLOBAL_EXPAND_CATEGORIES')) { btn.attr('aria-label', Joomla.JText._('JGLOBAL_COLLAPSE_CATEGORIES')); } else { btn.attr('aria-label', Joomla.JText._('JGLOBAL_EXPAND_CATEGORIES')); } }); }); });"); ?> <div class="categories-list<?php echo $this->pageclass_sfx; ?>"> <?php echo JLayoutHelper::render('joomla.content.categories_default', $this); echo $this->loadTemplate('items'); ?> </div> views/categories/tmpl/default_items.php 0000644 00000004651 15075071342 0014352 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; JHtml::_('bootstrap.tooltip'); $class = ' class="first"'; if ($this->maxLevelcat != 0 && count($this->items[$this->parent->id]) > 0) : ?> <?php foreach ($this->items[$this->parent->id] as $id => $item) : ?> <?php if ($this->params->get('show_empty_categories_cat') || $item->numitems || count($item->getChildren())) : if (!isset($this->items[$this->parent->id][$id + 1])) { $class = ' class="last"'; } ?> <div <?php echo $class; ?> > <?php $class = ''; ?> <h3 class="page-header item-title"> <a href="<?php echo JRoute::_(ContactHelperRoute::getCategoryRoute($item->id, $item->language)); ?>"> <?php echo $this->escape($item->title); ?></a> <?php if ($this->params->get('show_cat_items_cat') == 1) :?> <span class="badge badge-info tip hasTooltip" title="<?php echo JHtml::_('tooltipText', 'COM_CONTACT_NUM_ITEMS'); ?>"> <?php echo JText::_('COM_CONTACT_NUM_ITEMS'); ?> <?php echo $item->numitems; ?> </span> <?php endif; ?> <?php if ($this->maxLevelcat > 1 && count($item->getChildren()) > 0) : ?> <a id="category-btn-<?php echo $item->id; ?>" href="#category-<?php echo $item->id; ?>" data-toggle="collapse" data-toggle="button" class="btn btn-mini pull-right" aria-label="<?php echo JText::_('JGLOBAL_EXPAND_CATEGORIES'); ?>"><span class="icon-plus" aria-hidden="true"></span></a> <?php endif; ?> </h3> <?php if ($this->params->get('show_subcat_desc_cat') == 1) : ?> <?php if ($item->description) : ?> <div class="category-desc"> <?php echo JHtml::_('content.prepare', $item->description, '', 'com_contact.categories'); ?> </div> <?php endif; ?> <?php endif; ?> <?php if ($this->maxLevelcat > 1 && count($item->getChildren()) > 0) : ?> <div class="collapse fade" id="category-<?php echo $item->id; ?>"> <?php $this->items[$item->id] = $item->getChildren(); $this->parent = $item; $this->maxLevelcat--; echo $this->loadTemplate('items'); $this->parent = $item->getParent(); $this->maxLevelcat++; ?> </div> <?php endif; ?> </div> <?php endif; ?> <?php endforeach; ?><?php endif; ?> views/categories/view.html.php 0000644 00000001223 15075071342 0012456 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; /** * Content categories view. * * @since 1.6 */ class ContactViewCategories extends JViewCategories { /** * Language key for default page heading * * @var string * @since 3.2 */ protected $pageHeading = 'COM_CONTACT_DEFAULT_PAGE_TITLE'; /** * @var string The name of the extension for the category * @since 3.2 */ protected $extension = 'com_contact'; } views/featured/view.html.php 0000644 00000010732 15075071342 0012135 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\Registry\Registry; /** * Featured View class * * @since 1.6 */ class ContactViewFeatured extends JViewLegacy { /** * The item model state * * @var \Joomla\Registry\Registry * @since 1.6.0 */ protected $state; /** * The item details * * @var JObject * @since 1.6.0 */ protected $items; /** * Who knows what this variable was intended for - but it's never been used * * @var array * @since 1.6.0 * @deprecated 4.0 This variable has been null since 1.6.0-beta8 */ protected $category; /** * Who knows what this variable was intended for - but it's never been used * * @var JObject Maybe. * @since 1.6.0 * @deprecated 4.0 This variable has never been used ever */ protected $categories; /** * The pagination object * * @var JPagination * @since 1.6.0 */ protected $pagination; /** * Method to display the view. * * @param string $tpl The name of the template file to parse; automatically searches through the template paths. * * @return mixed Exception on failure, void on success. * * @since 1.6 */ public function display($tpl = null) { $app = JFactory::getApplication(); $params = $app->getParams(); // Get some data from the models $state = $this->get('State'); $items = $this->get('Items'); $category = $this->get('Category'); $children = $this->get('Children'); $parent = $this->get('Parent'); $pagination = $this->get('Pagination'); // Flag indicates to not add limitstart=0 to URL $pagination->hideEmptyLimitstart = true; // Check for errors. if (count($errors = $this->get('Errors'))) { JError::raiseWarning(500, implode("\n", $errors)); return false; } // Prepare the data. // Compute the contact slug. for ($i = 0, $n = count($items); $i < $n; $i++) { $item = &$items[$i]; $item->slug = $item->alias ? ($item->id . ':' . $item->alias) : $item->id; $temp = $item->params; $item->params = clone $params; $item->params->merge($temp); if ($item->params->get('show_email', 0) == 1) { $item->email_to = trim($item->email_to); if (!empty($item->email_to) && JMailHelper::isEmailAddress($item->email_to)) { $item->email_to = JHtml::_('email.cloak', $item->email_to); } else { $item->email_to = ''; } } } // Escape strings for HTML output $this->pageclass_sfx = htmlspecialchars($params->get('pageclass_sfx'), ENT_COMPAT, 'UTF-8'); $maxLevel = $params->get('maxLevel', -1); $this->maxLevel = &$maxLevel; $this->state = &$state; $this->items = &$items; $this->category = &$category; $this->children = &$children; $this->params = &$params; $this->parent = &$parent; $this->pagination = &$pagination; $this->_prepareDocument(); return parent::display($tpl); } /** * Prepares the document * * @return void * * @since 1.6 */ protected function _prepareDocument() { $app = JFactory::getApplication(); $menus = $app->getMenu(); $title = null; // Because the application sets a default page title, // we need to get it from the menu item itself $menu = $menus->getActive(); if ($menu) { $this->params->def('page_heading', $this->params->get('page_title', $menu->title)); } else { $this->params->def('page_heading', JText::_('COM_CONTACT_DEFAULT_PAGE_TITLE')); } $title = $this->params->get('page_title', ''); if (empty($title)) { $title = $app->get('sitename'); } elseif ($app->get('sitename_pagetitles', 0) == 1) { $title = JText::sprintf('JPAGETITLE', $app->get('sitename'), $title); } elseif ($app->get('sitename_pagetitles', 0) == 2) { $title = JText::sprintf('JPAGETITLE', $title, $app->get('sitename')); } $this->document->setTitle($title); if ($this->params->get('menu-meta_description')) { $this->document->setDescription($this->params->get('menu-meta_description')); } if ($this->params->get('menu-meta_keywords')) { $this->document->setMetadata('keywords', $this->params->get('menu-meta_keywords')); } if ($this->params->get('robots')) { $this->document->setMetadata('robots', $this->params->get('robots')); } } } views/featured/tmpl/default.xml 0000644 00000032232 15075071342 0012630 0 ustar 00 <?xml version="1.0" encoding="utf-8"?> <metadata> <layout title="COM_CONTACT_FEATURED_VIEW_DEFAULT_TITLE" option="COM_CONTACT_FEATURED_VIEW_DEFAULT_OPTION"> <help key = "JHELP_MENUS_MENU_ITEM_CONTACT_FEATURED" /> <message> <![CDATA[COM_CONTACT_FEATURED_VIEW_DEFAULT_DESC]]> </message> </layout> <!-- Add fields to the parameters object for the layout. --> <fields name="params"> <fieldset name="advanced" label="JGLOBAL_LIST_LAYOUT_OPTIONS"> <field name="spacer" type="spacer" label="JGLOBAL_SUBSLIDER_DRILL_CATEGORIES_LABEL" class="text" /> <field name="show_pagination_limit" type="list" label="JGLOBAL_DISPLAY_SELECT_LABEL" description="JGLOBAL_DISPLAY_SELECT_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_headings" type="list" label="JGLOBAL_SHOW_HEADINGS_LABEL" description="JGLOBAL_SHOW_HEADINGS_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_position_headings" type="list" label="COM_CONTACT_FIELD_CONFIG_POSITION_LABEL" description="COM_CONTACT_FIELD_CONFIG_POSITION_DESC" useglobal="true" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_email_headings" type="list" label="JGLOBAL_EMAIL" description="COM_CONTACT_FIELD_CONFIG_EMAIL_DESC" useglobal="true" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_telephone_headings" type="list" label="COM_CONTACT_FIELD_CONFIG_PHONE_LABEL" description="COM_CONTACT_FIELD_CONFIG_PHONE_DESC" useglobal="true" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_mobile_headings" type="list" label="COM_CONTACT_FIELD_CONFIG_MOBILE_LABEL" description="COM_CONTACT_FIELD_CONFIG_MOBILE_DESC" useglobal="true" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_fax_headings" type="list" label="COM_CONTACT_FIELD_CONFIG_FAX_LABEL" description="COM_CONTACT_FIELD_CONFIG_FAX_DESC" useglobal="true" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_suburb_headings" type="list" label="COM_CONTACT_FIELD_CONFIG_SUBURB_LABEL" description="COM_CONTACT_FIELD_CONFIG_SUBURB_DESC" useglobal="true" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_state_headings" type="list" label="COM_CONTACT_FIELD_CONFIG_STATE_LABEL" description="COM_CONTACT_FIELD_CONFIG_STATE_DESC" useglobal="true" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_country_headings" type="list" label="COM_CONTACT_FIELD_CONFIG_COUNTRY_LABEL" description="COM_CONTACT_FIELD_CONFIG_COUNTRY_DESC" useglobal="true" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_pagination" type="list" label="JGLOBAL_PAGINATION_LABEL" description="JGLOBAL_PAGINATION_DESC" useglobal="true" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> <option value="2">JGLOBAL_AUTO</option> </field> <field name="show_pagination_results" type="list" label="JGLOBAL_PAGINATION_RESULTS_LABEL" description="JGLOBAL_PAGINATION_RESULTS_DESC" useglobal="true" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> </fieldset> <fieldset name="contact" label="COM_CONTACT_FIELDSET_CONTACT_LABEL"> <field name="presentation_style" type="list" label="COM_CONTACT_FIELD_PRESENTATION_LABEL" description="COM_CONTACT_FIELD_PRESENTATION_DESC" useglobal="true" > <option value="sliders">COM_CONTACT_FIELD_VALUE_SLIDERS</option> <option value="tabs">COM_CONTACT_FIELD_VALUE_TABS</option> <option value="plain">COM_CONTACT_FIELD_VALUE_PLAIN</option> </field> <field name="show_tags" type="list" label="COM_CONTACT_FIELD_SHOW_TAGS_LABEL" description="COM_CONTACT_FIELD_SHOW_TAGS_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_info" type="list" label="COM_CONTACT_FIELD_SHOW_INFO_LABEL" description="COM_CONTACT_FIELD_SHOW_INFO_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_name" type="list" label="COM_CONTACT_FIELD_PARAMS_NAME_LABEL" description="COM_CONTACT_FIELD_PARAMS_NAME_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_position" type="list" label="COM_CONTACT_FIELD_PARAMS_CONTACT_POSITION_LABEL" description="COM_CONTACT_FIELD_PARAMS_CONTACT_POSITION_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_email" type="list" label="JGLOBAL_EMAIL" description="COM_CONTACT_FIELD_PARAMS_CONTACT_E_MAIL_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_street_address" type="list" label="COM_CONTACT_FIELD_PARAMS_STREET_ADDRESS_LABEL" description="COM_CONTACT_FIELD_PARAMS_STREET_ADDRESS_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_suburb" type="list" label="COM_CONTACT_FIELD_PARAMS_TOWN-SUBURB_LABEL" description="COM_CONTACT_FIELD_PARAMS_TOWN-SUBURB_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_state" type="list" label="COM_CONTACT_FIELD_PARAMS_STATE-COUNTY_LABEL" description="COM_CONTACT_FIELD_PARAMS_STATE-COUNTY_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_postcode" type="list" label="COM_CONTACT_FIELD_PARAMS_POST-ZIP_CODE_LABEL" description="COM_CONTACT_FIELD_PARAMS_POST-ZIP_CODE_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_country" type="list" label="COM_CONTACT_FIELD_PARAMS_COUNTRY_LABEL" description="COM_CONTACT_FIELD_PARAMS_COUNTRY_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_telephone" type="list" label="COM_CONTACT_FIELD_PARAMS_TELEPHONE_LABEL" description="COM_CONTACT_FIELD_PARAMS_TELEPHONE_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_mobile" type="list" label="COM_CONTACT_FIELD_PARAMS_MOBILE_LABEL" description="COM_CONTACT_FIELD_PARAMS_MOBILE_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_fax" type="list" label="COM_CONTACT_FIELD_PARAMS_FAX_LABEL" description="COM_CONTACT_FIELD_PARAMS_FAX_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_webpage" type="list" label="COM_CONTACT_FIELD_PARAMS_WEBPAGE_LABEL" description="COM_CONTACT_FIELD_PARAMS_WEBPAGE_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_image" type="list" label="COM_CONTACT_FIELD_PARAMS_IMAGE_LABEL" description="COM_CONTACT_FIELD_PARAMS_IMAGE_DESC" useglobal="true" showon="show_info:1" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="allow_vcard" type="list" label="COM_CONTACT_FIELD_PARAMS_VCARD_LABEL" description="COM_CONTACT_FIELD_PARAMS_VCARD_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_misc" type="list" label="COM_CONTACT_FIELD_PARAMS_MISC_INFO_LABEL" description="COM_CONTACT_FIELD_PARAMS_MISC_INFO_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_articles" type="list" label="COM_CONTACT_FIELD_ARTICLES_SHOW_LABEL" description="COM_CONTACT_FIELD_ARTICLES_SHOW_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="articles_display_num" type="list" label="COM_CONTACT_FIELD_ARTICLES_DISPLAY_NUM_LABEL" description="COM_CONTACT_FIELD_ARTICLES_DISPLAY_NUM_DESC" default="" useglobal="true" > <option value="use_contact">COM_CONTACT_FIELD_VALUE_USE_CONTACT_SETTINGS</option> <option value="5">J5</option> <option value="10">J10</option> <option value="15">J15</option> <option value="20">J20</option> <option value="25">J25</option> <option value="30">J30</option> <option value="50">J50</option> <option value="75">J75</option> <option value="100">J100</option> <option value="150">J150</option> <option value="200">J200</option> <option value="250">J250</option> <option value="300">J300</option> <option value="0">JALL</option> </field> <field name="show_links" type="list" label="COM_CONTACT_FIELD_SHOW_LINKS_LABEL" description="COM_CONTACT_FIELD_SHOW_LINKS_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="linka_name" type="text" label="COM_CONTACT_FIELD_LINKA_NAME_LABEL" description="COM_CONTACT_FIELD_LINK_NAME_DESC" size="30" useglobal="true" /> <field name="linkb_name" type="text" label="COM_CONTACT_FIELD_LINKB_LABEL" description="COM_CONTACT_FIELD_LINK_NAME_DESC" size="30" useglobal="true" /> <field name="linkc_name" type="text" label="COM_CONTACT_FIELD_LINKC_NAME_LABEL" description="COM_CONTACT_FIELD_LINK_NAME_DESC" size="30" useglobal="true" /> <field name="linkd_name" type="text" label="COM_CONTACT_FIELD_LINKD_NAME_LABEL" description="COM_CONTACT_FIELD_LINK_NAME_DESC" size="30" useglobal="true" /> <field name="linke_name" type="text" label="COM_CONTACT_FIELD_LINKE_NAME_LABEL" description="COM_CONTACT_FIELD_LINK_NAME_DESC" size="30" useglobal="true" /> </fieldset> <fieldset name="Contact_Form" label="COM_CONTACT_FIELDSET_CONTACTFORM_LABEL"> <field name="show_email_form" type="list" label="COM_CONTACT_FIELD_EMAIL_SHOW_FORM_LABEL" description="COM_CONTACT_FIELD_EMAIL_SHOW_FORM_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_email_copy" type="list" label="COM_CONTACT_FIELD_EMAIL_EMAIL_COPY_LABEL" description="COM_CONTACT_FIELD_EMAIL_EMAIL_COPY_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="validate_session" type="list" label="COM_CONTACT_FIELD_CONFIG_SESSION_CHECK_LABEL" description="COM_CONTACT_FIELD_CONFIG_SESSION_CHECK_DESC" useglobal="true" class="chzn-color" > <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="custom_reply" type="list" label="COM_CONTACT_FIELD_CONFIG_CUSTOM_REPLY_LABEL" description="COM_CONTACT_FIELD_CONFIG_CUSTOM_REPLY_DESC" useglobal="true" class="chzn-color" > <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="redirect" type="text" label="COM_CONTACT_FIELD_CONFIG_REDIRECT_LABEL" description="COM_CONTACT_FIELD_CONFIG_REDIRECT_DESC" size="30" useglobal="true" /> </fieldset> </fields> </metadata> views/featured/tmpl/default.php 0000644 00000002172 15075071342 0012617 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; JHtml::addIncludePath(JPATH_COMPONENT . '/helpers'); // If the page class is defined, add to class as suffix. // It will be a separate class if the user starts it with a space ?> <div class="blog-featured<?php echo $this->pageclass_sfx; ?>"> <?php if ($this->params->get('show_page_heading') != 0 ) : ?> <h1> <?php echo $this->escape($this->params->get('page_heading')); ?> </h1> <?php endif; ?> <?php echo $this->loadTemplate('items'); ?> <?php if ($this->params->def('show_pagination', 2) == 1 || ($this->params->get('show_pagination') == 2 && $this->pagination->pagesTotal > 1)) : ?> <div class="pagination"> <?php if ($this->params->def('show_pagination_results', 1)) : ?> <p class="counter"> <?php echo $this->pagination->getPagesCounter(); ?> </p> <?php endif; ?> <?php echo $this->pagination->getPagesLinks(); ?> </div> <?php endif; ?> </div> views/featured/tmpl/default_items.php 0000644 00000012772 15075071342 0014027 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; JHtml::_('behavior.core'); $listOrder = $this->escape($this->state->get('list.ordering')); $listDirn = $this->escape($this->state->get('list.direction')); // Create a shortcut for params. $params = &$this->item->params; ?> <?php if (empty($this->items)) : ?> <p> <?php echo JText::_('COM_CONTACT_NO_CONTACTS'); ?> </p> <?php else : ?> <form action="<?php echo htmlspecialchars(JUri::getInstance()->toString()); ?>" method="post" name="adminForm" id="adminForm"> <fieldset class="filters"> <legend class="hidelabeltxt"><?php echo JText::_('JGLOBAL_FILTER_LABEL'); ?></legend> <?php if ($this->params->get('show_pagination_limit')) : ?> <div class="display-limit"> <?php echo JText::_('JGLOBAL_DISPLAY_NUM'); ?>  <?php echo $this->pagination->getLimitBox(); ?> </div> <?php endif; ?> <input type="hidden" name="filter_order" value="<?php echo $listOrder; ?>" /> <input type="hidden" name="filter_order_Dir" value="<?php echo $listDirn; ?>" /> </fieldset> <table class="category"> <?php if ($this->params->get('show_headings')) : ?> <thead><tr> <th class="item-num"> <?php echo JText::_('JGLOBAL_NUM'); ?> </th> <th class="item-title"> <?php echo JHtml::_('grid.sort', 'COM_CONTACT_CONTACT_EMAIL_NAME_LABEL', 'a.name', $listDirn, $listOrder); ?> </th> <?php if ($this->params->get('show_position_headings')) : ?> <th class="item-position"> <?php echo JHtml::_('grid.sort', 'COM_CONTACT_POSITION', 'a.con_position', $listDirn, $listOrder); ?> </th> <?php endif; ?> <?php if ($this->params->get('show_email_headings')) : ?> <th class="item-email"> <?php echo JText::_('JGLOBAL_EMAIL'); ?> </th> <?php endif; ?> <?php if ($this->params->get('show_telephone_headings')) : ?> <th class="item-phone"> <?php echo JText::_('COM_CONTACT_TELEPHONE'); ?> </th> <?php endif; ?> <?php if ($this->params->get('show_mobile_headings')) : ?> <th class="item-phone"> <?php echo JText::_('COM_CONTACT_MOBILE'); ?> </th> <?php endif; ?> <?php if ($this->params->get('show_fax_headings')) : ?> <th class="item-phone"> <?php echo JText::_('COM_CONTACT_FAX'); ?> </th> <?php endif; ?> <?php if ($this->params->get('show_suburb_headings')) : ?> <th class="item-suburb"> <?php echo JHtml::_('grid.sort', 'COM_CONTACT_SUBURB', 'a.suburb', $listDirn, $listOrder); ?> </th> <?php endif; ?> <?php if ($this->params->get('show_state_headings')) : ?> <th class="item-state"> <?php echo JHtml::_('grid.sort', 'COM_CONTACT_STATE', 'a.state', $listDirn, $listOrder); ?> </th> <?php endif; ?> <?php if ($this->params->get('show_country_headings')) : ?> <th class="item-state"> <?php echo JHtml::_('grid.sort', 'COM_CONTACT_COUNTRY', 'a.country', $listDirn, $listOrder); ?> </th> <?php endif; ?> </tr> </thead> <?php endif; ?> <tbody> <?php foreach ($this->items as $i => $item) : ?> <tr class="<?php echo ($i % 2) ? 'odd' : 'even'; ?>" itemscope itemtype="https://schema.org/Person"> <td class="item-num"> <?php echo $i; ?> </td> <td class="item-title"> <?php if ($this->items[$i]->published == 0) : ?> <span class="label label-warning"><?php echo JText::_('JUNPUBLISHED'); ?></span> <?php endif; ?> <a href="<?php echo JRoute::_(ContactHelperRoute::getContactRoute($item->slug, $item->catid)); ?>" itemprop="url"> <span itemprop="name"><?php echo $item->name; ?></span> </a> </td> <?php if ($this->params->get('show_position_headings')) : ?> <td class="item-position" itemprop="jobTitle"> <?php echo $item->con_position; ?> </td> <?php endif; ?> <?php if ($this->params->get('show_email_headings')) : ?> <td class="item-email" itemprop="email"> <?php echo $item->email_to; ?> </td> <?php endif; ?> <?php if ($this->params->get('show_telephone_headings')) : ?> <td class="item-phone" itemprop="telephone"> <?php echo $item->telephone; ?> </td> <?php endif; ?> <?php if ($this->params->get('show_mobile_headings')) : ?> <td class="item-phone" itemprop="telephone"> <?php echo $item->mobile; ?> </td> <?php endif; ?> <?php if ($this->params->get('show_fax_headings')) : ?> <td class="item-phone" itemprop="faxNumber"> <?php echo $item->fax; ?> </td> <?php endif; ?> <?php if ($this->params->get('show_suburb_headings')) : ?> <td class="item-suburb" itemprop="address" itemscope itemtype="https://schema.org/PostalAddress"> <span itemprop="addressLocality"><?php echo $item->suburb; ?></span> </td> <?php endif; ?> <?php if ($this->params->get('show_state_headings')) : ?> <td class="item-state" itemprop="address" itemscope itemtype="https://schema.org/PostalAddress"> <span itemprop="addressRegion"><?php echo $item->state; ?></span> </td> <?php endif; ?> <?php if ($this->params->get('show_country_headings')) : ?> <td class="item-state" itemprop="address" itemscope itemtype="https://schema.org/PostalAddress"> <span itemprop="addressCountry"><?php echo $item->country; ?></span> </td> <?php endif; ?> </tr> <?php endforeach; ?> </tbody> </table> </form> <?php endif; ?> contact.php 0000644 00000001553 15075071342 0006720 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; JLoader::register('ContactHelperRoute', JPATH_COMPONENT . '/helpers/route.php'); $input = JFactory::getApplication()->input; if ($input->get('view') === 'contacts' && $input->get('layout') === 'modal') { if (!JFactory::getUser()->authorise('core.create', 'com_contact')) { JFactory::getApplication()->enqueueMessage(JText::_('JERROR_ALERTNOAUTHOR'), 'warning'); return; } JFactory::getLanguage()->load('com_contact', JPATH_ADMINISTRATOR); } $controller = JControllerLegacy::getInstance('Contact'); $controller->execute(JFactory::getApplication()->input->get('task')); $controller->redirect(); controller.php 0000644 00000004260 15075071342 0007446 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; /** * Contact Component Controller * * @since 1.5 */ class ContactController extends JControllerLegacy { /** * Constructor. * * @param array $config An optional associative array of configuration settings. * Recognized key values include 'name', 'default_task', 'model_path', and * 'view_path' (this list is not meant to be comprehensive). * * @since 3.7.0 */ public function __construct($config = array()) { $this->input = JFactory::getApplication()->input; // Contact frontpage Editor contacts proxying: if ($this->input->get('view') === 'contacts' && $this->input->get('layout') === 'modal') { JHtml::_('stylesheet', 'system/adminlist.css', array(), true); $config['base_path'] = JPATH_COMPONENT_ADMINISTRATOR; } parent::__construct($config); } /** * Method to display a view. * * @param boolean $cachable If true, the view output will be cached * @param array $urlparams An array of safe URL parameters and their variable types, for valid values see {@link JFilterInput::clean()}. * * @return JControllerLegacy This object to support chaining. * * @since 1.5 */ public function display($cachable = false, $urlparams = array()) { if (JFactory::getApplication()->getUserState('com_contact.contact.data') === null) { $cachable = true; } // Set the default view name and format from the Request. $vName = $this->input->get('view', 'categories'); $this->input->set('view', $vName); $safeurlparams = array('catid' => 'INT', 'id' => 'INT', 'cid' => 'ARRAY', 'year' => 'INT', 'month' => 'INT', 'limit' => 'UINT', 'limitstart' => 'UINT', 'showall' => 'INT', 'return' => 'BASE64', 'filter' => 'STRING', 'filter_order' => 'CMD', 'filter_order_Dir' => 'CMD', 'filter-search' => 'STRING', 'print' => 'BOOLEAN', 'lang' => 'CMD'); parent::display($cachable, $safeurlparams); return $this; } } tmpl/categories/default_items.php 0000604 00000004570 15075137464 0013221 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2010 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; use Joomla\Component\Contact\Site\Helper\RouteHelper; if ($this->maxLevelcat != 0 && count($this->items[$this->parent->id]) > 0) : ?> <?php foreach ($this->items[$this->parent->id] as $id => $item) : ?> <?php if ($this->params->get('show_empty_categories_cat') || $item->numitems || count($item->getChildren())) : ?> <div class="com-contact-categories__items"> <h3 class="page-header item-title"> <a href="<?php echo Route::_(RouteHelper::getCategoryRoute($item->id, $item->language)); ?>"> <?php echo $this->escape($item->title); ?></a> <?php if ($this->params->get('show_cat_items_cat') == 1) :?> <span class="badge bg-info"> <?php echo Text::_('COM_CONTACT_NUM_ITEMS'); ?> <?php echo $item->numitems; ?> </span> <?php endif; ?> <?php if ($this->maxLevelcat > 1 && count($item->getChildren()) > 0) : ?> <button type="button" id="category-btn-<?php echo $item->id; ?>" data-bs-target="#category-<?php echo $item->id; ?>" data-bs-toggle="collapse" class="btn btn-secondary btn-sm float-end" aria-label="<?php echo Text::_('JGLOBAL_EXPAND_CATEGORIES'); ?>" > <span class="icon-plus" aria-hidden="true"></span> </button> <?php endif; ?> </h3> <?php if ($this->params->get('show_subcat_desc_cat') == 1) : ?> <?php if ($item->description) : ?> <div class="category-desc"> <?php echo HTMLHelper::_('content.prepare', $item->description, '', 'com_contact.categories'); ?> </div> <?php endif; ?> <?php endif; ?> <?php if ($this->maxLevelcat > 1 && count($item->getChildren()) > 0) : ?> <div class="collapse fade" id="category-<?php echo $item->id; ?>"> <?php $this->items[$item->id] = $item->getChildren(); $this->parent = $item; $this->maxLevelcat--; echo $this->loadTemplate('items'); $this->parent = $item->getParent(); $this->maxLevelcat++; ?> </div> <?php endif; ?> </div> <?php endif; ?> <?php endforeach; ?><?php endif; ?> tmpl/categories/default.xml 0000604 00000043634 15075137464 0012035 0 ustar 00 <?xml version="1.0" encoding="utf-8"?> <metadata> <layout title="COM_CONTACT_CATEGORIES_VIEW_DEFAULT_TITLE" option="COM_CONTACT_CATEGORIES_VIEW_DEFAULT_OPTION"> <help key = "JHELP_MENUS_MENU_ITEM_CONTACT_CATEGORIES" /> <message> <![CDATA[COM_CONTACT_CATEGORIES_VIEW_DEFAULT_DESC]]> </message> </layout> <!-- Add fields to the request variables for the layout. --> <fields name="request"> <fieldset name="request" > <field name="id" type="category" label="JGLOBAL_FIELD_CATEGORIES_CHOOSE_CATEGORY_LABEL" extension="com_contact" show_root="true" required="true" /> </fieldset> </fields> <fields name="params"> <fieldset name="basic" label="JGLOBAL_CATEGORIES_OPTIONS"> <field name="show_base_description" type="list" label="JGLOBAL_FIELD_SHOW_BASE_DESCRIPTION_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="categories_description" type="textarea" label="JGLOBAL_FIELD_CATEGORIES_DESC_LABEL" cols="25" rows="5" /> <field name="maxLevelcat" type="list" label="JGLOBAL_MAXIMUM_CATEGORY_LEVELS_LABEL" useglobal="true" validate="options" > <option value="-1">JALL</option> <option value="1">J1</option> <option value="2">J2</option> <option value="3">J3</option> <option value="4">J4</option> <option value="5">J5</option> </field> <field name="show_empty_categories_cat" type="list" label="JGLOBAL_SHOW_EMPTY_CATEGORIES_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_subcat_desc_cat" type="list" label="JGLOBAL_SHOW_SUBCATEGORIES_DESCRIPTION_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_cat_items_cat" type="list" label="COM_CONTACT_FIELD_SHOW_CAT_ITEMS_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> </fieldset> <fieldset name="category" label="JGLOBAL_CATEGORY_OPTIONS" description="JGLOBAL_SUBSLIDER_DRILL_CATEGORIES_LABEL"> <field name="show_category_title" type="list" label="JGLOBAL_SHOW_CATEGORY_TITLE" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_description" type="list" label="JGLOBAL_SHOW_CATEGORY_DESCRIPTION_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_description_image" type="list" label="JGLOBAL_SHOW_CATEGORY_IMAGE_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="maxLevel" type="list" label="JGLOBAL_MAXIMUM_CATEGORY_LEVELS_LABEL" useglobal="true" validate="options" > <option value="-1">JALL</option> <option value="0">JNONE</option> <option value="1">J1</option> <option value="2">J2</option> <option value="3">J3</option> <option value="4">J4</option> <option value="5">J5</option> </field> <field name="show_empty_categories" type="list" label="JGLOBAL_SHOW_EMPTY_CATEGORIES_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_no_contacts" type="list" label="COM_CONTACT_NO_CONTACTS_LABEL" useglobal="true" class="custom-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_category_heading_title_text" type="list" label="JGLOBAL_SHOW_SUBCATEGORY_HEADING" useglobal="true" class="custom-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_subcat_desc" type="list" label="JGLOBAL_SHOW_SUBCATEGORIES_DESCRIPTION_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_cat_items" type="list" label="COM_CONTACT_FIELD_SHOW_CAT_ITEMS_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> </fieldset> <fieldset name="advanced" label="JGLOBAL_LIST_LAYOUT_OPTIONS" description="JGLOBAL_SUBSLIDER_DRILL_CATEGORIES_LABEL"> <field name="filter_field" type="list" label="JGLOBAL_FILTER_FIELD_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_pagination_limit" type="list" label="JGLOBAL_DISPLAY_SELECT_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_headings" type="list" label="JGLOBAL_SHOW_HEADINGS_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_position_headings" type="list" label="COM_CONTACT_FIELD_CONFIG_POSITION_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_email_headings" type="list" label="JGLOBAL_EMAIL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_telephone_headings" type="list" label="COM_CONTACT_FIELD_CONFIG_PHONE_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_mobile_headings" type="list" label="COM_CONTACT_FIELD_CONFIG_MOBILE_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_fax_headings" type="list" label="COM_CONTACT_FIELD_CONFIG_FAX_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_suburb_headings" type="list" label="COM_CONTACT_FIELD_CONFIG_SUBURB_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_state_headings" type="list" label="COM_CONTACT_FIELD_CONFIG_STATE_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_country_headings" type="list" label="COM_CONTACT_FIELD_CONFIG_COUNTRY_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_pagination" type="list" label="JGLOBAL_PAGINATION_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> <option value="2">JGLOBAL_AUTO</option> </field> <field name="show_pagination_results" type="list" label="JGLOBAL_PAGINATION_RESULTS_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> </fieldset> <fieldset name="contact" label="COM_CONTACT_BASIC_OPTIONS_FIELDSET_LABEL"> <field name="show_contact_category" type="list" label="COM_CONTACT_FIELD_CONTACT_SHOW_CATEGORY_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="hide">JHIDE</option> <option value="show_no_link">COM_CONTACT_FIELD_VALUE_NO_LINK</option> <option value="show_with_link">COM_CONTACT_FIELD_VALUE_WITH_LINK</option> </field> <field name="show_contact_list" type="list" label="COM_CONTACT_FIELD_CONTACT_SHOW_LIST_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_name" type="list" label="COM_CONTACT_FIELD_PARAMS_NAME_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_tags" type="list" label="COM_CONTACT_FIELD_SHOW_TAGS_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_info" type="list" label="COM_CONTACT_FIELD_SHOW_INFO_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_position" type="list" label="COM_CONTACT_FIELD_PARAMS_CONTACT_POSITION_LABEL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_email" type="list" label="JGLOBAL_EMAIL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_street_address" type="list" label="COM_CONTACT_FIELD_PARAMS_STREET_ADDRESS_LABEL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_suburb" type="list" label="COM_CONTACT_FIELD_PARAMS_TOWN-SUBURB_LABEL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_state" type="list" label="COM_CONTACT_FIELD_PARAMS_STATE-COUNTY_LABEL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_postcode" type="list" label="COM_CONTACT_FIELD_PARAMS_POST-ZIP_CODE_LABEL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_country" type="list" label="COM_CONTACT_FIELD_PARAMS_COUNTRY_LABEL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_telephone" type="list" label="COM_CONTACT_FIELD_PARAMS_TELEPHONE_LABEL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_mobile" type="list" label="COM_CONTACT_FIELD_PARAMS_MOBILE_LABEL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_fax" type="list" label="COM_CONTACT_FIELD_PARAMS_FAX_LABEL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_webpage" type="list" label="COM_CONTACT_FIELD_PARAMS_WEBPAGE_LABEL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_image" type="list" label="COM_CONTACT_FIELD_PARAMS_IMAGE_LABEL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="allow_vcard" type="list" label="COM_CONTACT_FIELD_PARAMS_VCARD_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_misc" type="list" label="COM_CONTACT_FIELD_PARAMS_MISC_INFO_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_articles" type="list" label="COM_CONTACT_FIELD_ARTICLES_SHOW_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="articles_display_num" type="list" label="COM_CONTACT_FIELD_ARTICLES_DISPLAY_NUM_LABEL" default="" useglobal="true" validate="options" > <option value="use_contact">COM_CONTACT_FIELD_VALUE_USE_CONTACT_SETTINGS</option> <option value="5">J5</option> <option value="10">J10</option> <option value="15">J15</option> <option value="20">J20</option> <option value="25">J25</option> <option value="30">J30</option> <option value="50">J50</option> <option value="75">J75</option> <option value="100">J100</option> <option value="150">J150</option> <option value="200">J200</option> <option value="250">J250</option> <option value="300">J300</option> <option value="0">JALL</option> </field> <field name="show_links" type="list" label="COM_CONTACT_FIELD_SHOW_LINKS_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="linka_name" type="text" label="COM_CONTACT_FIELD_LINKA_NAME_LABEL" size="30" useglobal="true" /> <field name="linkb_name" type="text" label="COM_CONTACT_FIELD_LINKB_NAME_LABEL" size="30" useglobal="true" /> <field name="linkc_name" type="text" label="COM_CONTACT_FIELD_LINKC_NAME_LABEL" size="30" useglobal="true" /> <field name="linkd_name" type="text" label="COM_CONTACT_FIELD_LINKD_NAME_LABEL" size="30" useglobal="true" /> <field name="linke_name" type="text" label="COM_CONTACT_FIELD_LINKE_NAME_LABEL" size="30" useglobal="true" /> </fieldset> <!-- Form options. --> <fieldset name="Contact_Form" label="COM_CONTACT_MAIL_FIELDSET_LABEL"> <field name="show_email_form" type="list" label="COM_CONTACT_FIELD_EMAIL_SHOW_FORM_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_email_copy" type="list" label="COM_CONTACT_FIELD_EMAIL_EMAIL_COPY_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="validate_session" type="list" label="COM_CONTACT_FIELD_CONFIG_SESSION_CHECK_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="custom_reply" type="list" label="COM_CONTACT_FIELD_CONFIG_CUSTOM_REPLY_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="redirect" type="text" label="COM_CONTACT_FIELD_CONFIG_REDIRECT_LABEL" size="30" useglobal="true" /> </fieldset> <fieldset name="integration"> <field name="show_feed_link" type="list" label="JGLOBAL_SHOW_FEED_LINK_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> </fieldset> </fields> </metadata> tmpl/categories/default.php 0000604 00000001543 15075137464 0012015 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2008 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\CMS\Language\Text; use Joomla\CMS\Layout\LayoutHelper; // Add strings for translations in Javascript. Text::script('JGLOBAL_EXPAND_CATEGORIES'); Text::script('JGLOBAL_COLLAPSE_CATEGORIES'); /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ $wa = $this->document->getWebAssetManager(); $wa->getRegistry()->addExtensionRegistryFile('com_categories'); $wa->useScript('com_categories.shared-categories-accordion'); ?> <div class="com-contact-categories categories-list"> <?php echo LayoutHelper::render('joomla.content.categories_default', $this); echo $this->loadTemplate('items'); ?> </div> tmpl/featured/default.php 0000604 00000001736 15075137464 0011473 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2010 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; ?> <div class="com-contact-featured blog-featured"> <?php if ($this->params->get('show_page_heading') != 0 ) : ?> <h1> <?php echo $this->escape($this->params->get('page_heading')); ?> </h1> <?php endif; ?> <?php echo $this->loadTemplate('items'); ?> <?php if ($this->params->def('show_pagination', 2) == 1 || ($this->params->get('show_pagination') == 2 && $this->pagination->pagesTotal > 1)) : ?> <div class="com-contact-featured__pagination w-100"> <?php if ($this->params->def('show_pagination_results', 1)) : ?> <p class="counter float-end pt-3 pe-2"> <?php echo $this->pagination->getPagesCounter(); ?> </p> <?php endif; ?> <?php echo $this->pagination->getPagesLinks(); ?> </div> <?php endif; ?> </div> tmpl/featured/default.xml 0000604 00000030520 15075137464 0011475 0 ustar 00 <?xml version="1.0" encoding="utf-8"?> <metadata> <layout title="COM_CONTACT_FEATURED_VIEW_DEFAULT_TITLE" option="COM_CONTACT_FEATURED_VIEW_DEFAULT_OPTION"> <help key = "JHELP_MENUS_MENU_ITEM_CONTACT_FEATURED" /> <message> <![CDATA[COM_CONTACT_FEATURED_VIEW_DEFAULT_DESC]]> </message> </layout> <!-- Add fields to the parameters object for the layout. --> <fields name="params"> <fieldset name="advanced" label="JGLOBAL_LIST_LAYOUT_OPTIONS" description="JGLOBAL_SUBSLIDER_DRILL_CATEGORIES_LABEL" > <field name="filter_field" type="list" label="JGLOBAL_FILTER_FIELD_LABEL" default="" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_pagination_limit" type="list" label="JGLOBAL_DISPLAY_SELECT_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_headings" type="list" label="JGLOBAL_SHOW_HEADINGS_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_position_headings" type="list" label="COM_CONTACT_FIELD_CONFIG_POSITION_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_email_headings" type="list" label="JGLOBAL_EMAIL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_telephone_headings" type="list" label="COM_CONTACT_FIELD_CONFIG_PHONE_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_mobile_headings" type="list" label="COM_CONTACT_FIELD_CONFIG_MOBILE_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_fax_headings" type="list" label="COM_CONTACT_FIELD_CONFIG_FAX_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_suburb_headings" type="list" label="COM_CONTACT_FIELD_CONFIG_SUBURB_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_state_headings" type="list" label="COM_CONTACT_FIELD_CONFIG_STATE_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_country_headings" type="list" label="COM_CONTACT_FIELD_CONFIG_COUNTRY_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_pagination" type="list" label="JGLOBAL_PAGINATION_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> <option value="2">JGLOBAL_AUTO</option> </field> <field name="show_pagination_results" type="list" label="JGLOBAL_PAGINATION_RESULTS_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> </fieldset> <fieldset name="contact" label="COM_CONTACT_FIELDSET_CONTACT_LABEL" > <field name="show_tags" type="list" label="COM_CONTACT_FIELD_SHOW_TAGS_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_info" type="list" label="COM_CONTACT_FIELD_SHOW_INFO_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_name" type="list" label="COM_CONTACT_FIELD_PARAMS_NAME_LABEL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_position" type="list" label="COM_CONTACT_FIELD_PARAMS_CONTACT_POSITION_LABEL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_email" type="list" label="JGLOBAL_EMAIL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_street_address" type="list" label="COM_CONTACT_FIELD_PARAMS_STREET_ADDRESS_LABEL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_suburb" type="list" label="COM_CONTACT_FIELD_PARAMS_TOWN-SUBURB_LABEL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_state" type="list" label="COM_CONTACT_FIELD_PARAMS_STATE-COUNTY_LABEL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_postcode" type="list" label="COM_CONTACT_FIELD_PARAMS_POST-ZIP_CODE_LABEL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_country" type="list" label="COM_CONTACT_FIELD_PARAMS_COUNTRY_LABEL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_telephone" type="list" label="COM_CONTACT_FIELD_PARAMS_TELEPHONE_LABEL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_mobile" type="list" label="COM_CONTACT_FIELD_PARAMS_MOBILE_LABEL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_fax" type="list" label="COM_CONTACT_FIELD_PARAMS_FAX_LABEL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_webpage" type="list" label="COM_CONTACT_FIELD_PARAMS_WEBPAGE_LABEL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_image" type="list" label="COM_CONTACT_FIELD_PARAMS_IMAGE_LABEL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="allow_vcard" type="list" label="COM_CONTACT_FIELD_PARAMS_VCARD_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_misc" type="list" label="COM_CONTACT_FIELD_PARAMS_MISC_INFO_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_articles" type="list" label="COM_CONTACT_FIELD_ARTICLES_SHOW_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="articles_display_num" type="list" label="COM_CONTACT_FIELD_ARTICLES_DISPLAY_NUM_LABEL" default="" useglobal="true" validate="options" > <option value="use_contact">COM_CONTACT_FIELD_VALUE_USE_CONTACT_SETTINGS</option> <option value="5">J5</option> <option value="10">J10</option> <option value="15">J15</option> <option value="20">J20</option> <option value="25">J25</option> <option value="30">J30</option> <option value="50">J50</option> <option value="75">J75</option> <option value="100">J100</option> <option value="150">J150</option> <option value="200">J200</option> <option value="250">J250</option> <option value="300">J300</option> <option value="0">JALL</option> </field> <field name="show_links" type="list" label="COM_CONTACT_FIELD_SHOW_LINKS_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="linka_name" type="text" label="COM_CONTACT_FIELD_LINKA_NAME_LABEL" size="30" useglobal="true" /> <field name="linkb_name" type="text" label="COM_CONTACT_FIELD_LINKB_NAME_LABEL" size="30" useglobal="true" /> <field name="linkc_name" type="text" label="COM_CONTACT_FIELD_LINKC_NAME_LABEL" size="30" useglobal="true" /> <field name="linkd_name" type="text" label="COM_CONTACT_FIELD_LINKD_NAME_LABEL" size="30" useglobal="true" /> <field name="linke_name" type="text" label="COM_CONTACT_FIELD_LINKE_NAME_LABEL" size="30" useglobal="true" /> </fieldset> <fieldset name="Contact_Form" label="COM_CONTACT_FIELDSET_CONTACTFORM_LABEL" > <field name="show_email_form" type="list" label="COM_CONTACT_FIELD_EMAIL_SHOW_FORM_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_email_copy" type="list" label="COM_CONTACT_FIELD_EMAIL_EMAIL_COPY_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="validate_session" type="list" label="COM_CONTACT_FIELD_CONFIG_SESSION_CHECK_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="custom_reply" type="list" label="COM_CONTACT_FIELD_CONFIG_CUSTOM_REPLY_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="redirect" type="text" label="COM_CONTACT_FIELD_CONFIG_REDIRECT_LABEL" size="30" useglobal="true" /> </fieldset> </fields> </metadata> tmpl/featured/default_items.php 0000604 00000016572 15075137464 0012700 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2010 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; use Joomla\CMS\Uri\Uri; use Joomla\Component\Contact\Site\Helper\RouteHelper; /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ $wa = $this->document->getWebAssetManager(); $wa->useScript('com_contact.contacts-list'); HTMLHelper::_('behavior.core'); $listOrder = $this->escape($this->state->get('list.ordering')); $listDirn = $this->escape($this->state->get('list.direction')); ?> <div class="com-contact-featured__items"> <form action="<?php echo htmlspecialchars(Uri::getInstance()->toString()); ?>" method="post" name="adminForm" id="adminForm"> <?php if ($this->params->get('filter_field')) : ?> <div class="com-contact-featured__filter btn-group"> <label class="filter-search-lbl visually-hidden" for="filter-search"> <?php echo Text::_('COM_CONTACT_FILTER_SEARCH_DESC'); ?> </label> <input type="text" name="filter-search" id="filter-search" value="<?php echo $this->escape($this->state->get('list.filter')); ?>" class="inputbox" onchange="document.adminForm.submit();" placeholder="<?php echo Text::_('COM_CONTACT_FILTER_SEARCH_DESC'); ?>" > <button type="submit" name="filter_submit" class="btn btn-primary"><?php echo Text::_('JGLOBAL_FILTER_BUTTON'); ?></button> <button type="reset" name="filter-clear-button" class="btn btn-secondary"><?php echo Text::_('JSEARCH_FILTER_CLEAR'); ?></button> </div> <?php endif; ?> <?php if ($this->params->get('show_pagination_limit')) : ?> <div class="com-contact-featured__pagination btn-group float-end"> <label for="limit" class="visually-hidden"> <?php echo Text::_('JGLOBAL_DISPLAY_NUM'); ?> </label> <?php echo $this->pagination->getLimitBox(); ?> </div> <?php endif; ?> <?php if (empty($this->items)) : ?> <div class="alert alert-info"> <span class="icon-info-circle" aria-hidden="true"></span><span class="visually-hidden"><?php echo Text::_('INFO'); ?></span> <?php echo Text::_('COM_CONTACT_NO_CONTACTS'); ?> </div> <?php else : ?> <table class="com-contact-featured__table table table-striped table-bordered table-hover"> <caption class="visually-hidden"> <?php echo Text::_('COM_CONTACT_TABLE_CAPTION'); ?>, </caption> <?php if ($this->params->get('show_headings')) : ?> <thead> <tr> <th scope="col" class="item-title"> <?php echo HTMLHelper::_('grid.sort', 'JGLOBAL_TITLE', 'a.name', $listDirn, $listOrder); ?> </th> <?php if ($this->params->get('show_position_headings')) : ?> <th scope="col" class="item-position"> <?php echo HTMLHelper::_('grid.sort', 'COM_CONTACT_POSITION', 'a.con_position', $listDirn, $listOrder); ?> </th> <?php endif; ?> <?php if ($this->params->get('show_email_headings')) : ?> <th scope="col" class="item-email"> <?php echo Text::_('JGLOBAL_EMAIL'); ?> </th> <?php endif; ?> <?php if ($this->params->get('show_telephone_headings')) : ?> <th scope="col" class="item-phone"> <?php echo Text::_('COM_CONTACT_TELEPHONE'); ?> </th> <?php endif; ?> <?php if ($this->params->get('show_mobile_headings')) : ?> <th scope="col" class="item-phone"> <?php echo Text::_('COM_CONTACT_MOBILE'); ?> </th> <?php endif; ?> <?php if ($this->params->get('show_fax_headings')) : ?> <th scope="col" class="item-phone"> <?php echo Text::_('COM_CONTACT_FAX'); ?> </th> <?php endif; ?> <?php if ($this->params->get('show_suburb_headings')) : ?> <th scope="col" class="item-suburb"> <?php echo HTMLHelper::_('grid.sort', 'COM_CONTACT_SUBURB', 'a.suburb', $listDirn, $listOrder); ?> </th> <?php endif; ?> <?php if ($this->params->get('show_state_headings')) : ?> <th scope="col" class="item-state"> <?php echo HTMLHelper::_('grid.sort', 'COM_CONTACT_STATE', 'a.state', $listDirn, $listOrder); ?> </th> <?php endif; ?> <?php if ($this->params->get('show_country_headings')) : ?> <th scope="col" class="item-state"> <?php echo HTMLHelper::_('grid.sort', 'COM_CONTACT_COUNTRY', 'a.country', $listDirn, $listOrder); ?> </th> <?php endif; ?> </tr> </thead> <?php endif; ?> <tbody> <?php foreach ($this->items as $i => $item) : ?> <?php if ($this->items[$i]->published == 0) : ?> <tr class="system-unpublished featured-list-row<?php echo $i % 2; ?>"> <?php else : ?> <tr class="featured-list-row<?php echo $i % 2; ?>" itemscope itemtype="https://schema.org/Person"> <?php endif; ?> <th scope="row" class="list-title"> <a href="<?php echo Route::_(RouteHelper::getContactRoute($item->slug, $item->catid, $item->language)); ?>" itemprop="url"> <span itemprop="name"><?php echo $this->escape($item->name); ?></span> </a> <?php if ($item->published == 0) : ?> <div> <span class="list-published badge bg-warning text-light"> <?php echo Text::_('JUNPUBLISHED'); ?> </span> </div> <?php endif; ?> </th> <?php if ($this->params->get('show_position_headings')) : ?> <td class="item-position" itemprop="jobTitle"> <?php echo $item->con_position; ?> </td> <?php endif; ?> <?php if ($this->params->get('show_email_headings')) : ?> <td class="item-email" itemprop="email"> <?php echo $item->email_to; ?> </td> <?php endif; ?> <?php if ($this->params->get('show_telephone_headings')) : ?> <td class="item-phone" itemprop="telephone"> <?php echo $item->telephone; ?> </td> <?php endif; ?> <?php if ($this->params->get('show_mobile_headings')) : ?> <td class="item-phone" itemprop="telephone"> <?php echo $item->mobile; ?> </td> <?php endif; ?> <?php if ($this->params->get('show_fax_headings')) : ?> <td class="item-phone" itemprop="faxNumber"> <?php echo $item->fax; ?> </td> <?php endif; ?> <?php if ($this->params->get('show_suburb_headings')) : ?> <td class="item-suburb" itemprop="address" itemscope itemtype="https://schema.org/PostalAddress"> <span itemprop="addressLocality"><?php echo $item->suburb; ?></span> </td> <?php endif; ?> <?php if ($this->params->get('show_state_headings')) : ?> <td class="item-state" itemprop="address" itemscope itemtype="https://schema.org/PostalAddress"> <span itemprop="addressRegion"><?php echo $item->state; ?></span> </td> <?php endif; ?> <?php if ($this->params->get('show_country_headings')) : ?> <td class="item-state" itemprop="address" itemscope itemtype="https://schema.org/PostalAddress"> <span itemprop="addressCountry"><?php echo $item->country; ?></span> </td> <?php endif; ?> <?php endforeach; ?> </tbody> </table> <?php endif; ?> <div> <input type="hidden" name="filter_order" value="<?php echo $this->escape($this->state->get('list.ordering')); ?>"> <input type="hidden" name="filter_order_Dir" value="<?php echo $this->escape($this->state->get('list.direction')); ?>"> </div> </form> </div> tmpl/category/default.xml 0000604 00000044337 15075137464 0011526 0 ustar 00 <?xml version="1.0" encoding="utf-8"?> <metadata> <layout title="COM_CONTACT_CATEGORY_VIEW_DEFAULT_TITLE" option="COM_CONTACT_CATEGORY_VIEW_DEFAULT_OPTION"> <help key = "JHELP_MENUS_MENU_ITEM_CONTACT_CATEGORY" /> <message> <![CDATA[COM_CONTACT_CATEGORY_VIEW_DEFAULT_DESC]]> </message> </layout> <!-- Add fields to the request variables for the layout. --> <fields name="request"> <fieldset name="request" addfieldprefix="Joomla\Component\Categories\Administrator\Field" > <field name="id" type="modal_category" label="COM_CONTACT_FIELD_CATEGORY_LABEL" extension="com_contact" required="true" select="true" new="true" edit="true" clear="true" /> </fieldset> </fields> <!-- Add fields to the parameters object for the layout. --> <fields name="params"> <fieldset name="basic" label="JGLOBAL_CATEGORY_OPTIONS" description="JGLOBAL_SUBSLIDER_DRILL_CATEGORIES_LABEL" > <field name="show_category_title" type="list" label="JGLOBAL_SHOW_CATEGORY_TITLE" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_description" type="list" label="JGLOBAL_SHOW_CATEGORY_DESCRIPTION_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_description_image" type="list" label="JGLOBAL_SHOW_CATEGORY_IMAGE_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="maxLevel" type="list" label="JGLOBAL_MAXIMUM_CATEGORY_LEVELS_LABEL" useglobal="true" validate="options" > <option value="-1">JALL</option> <option value="0">JNONE</option> <option value="1">J1</option> <option value="2">J2</option> <option value="3">J3</option> <option value="4">J4</option> <option value="5">J5</option> </field> <field name="show_empty_categories" type="list" label="JGLOBAL_SHOW_EMPTY_CATEGORIES_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_no_contacts" type="list" label="COM_CONTACT_NO_CONTACTS_LABEL" useglobal="true" class="custom-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_category_heading_title_text" type="list" label="JGLOBAL_SHOW_SUBCATEGORY_HEADING" useglobal="true" class="custom-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_subcat_desc" type="list" label="JGLOBAL_SHOW_SUBCATEGORIES_DESCRIPTION_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_cat_items" type="list" label="COM_CONTACT_FIELD_SHOW_CAT_ITEMS_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> </fieldset> <fieldset name="advanced" label="JGLOBAL_LIST_LAYOUT_OPTIONS" description="JGLOBAL_SUBSLIDER_DRILL_CATEGORIES_LABEL" > <field name="filter_field" type="list" label="JGLOBAL_FILTER_FIELD_LABEL" default="" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_pagination_limit" type="list" label="JGLOBAL_DISPLAY_SELECT_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_headings" type="list" label="JGLOBAL_SHOW_HEADINGS_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_image_heading" type="list" label="COM_CONTACT_FIELD_CONFIG_SHOW_IMAGE_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_position_headings" type="list" label="COM_CONTACT_FIELD_CONFIG_POSITION_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_email_headings" type="list" label="JGLOBAL_EMAIL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_telephone_headings" type="list" label="COM_CONTACT_FIELD_CONFIG_PHONE_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_mobile_headings" type="list" label="COM_CONTACT_FIELD_CONFIG_MOBILE_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_fax_headings" type="list" label="COM_CONTACT_FIELD_CONFIG_FAX_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_suburb_headings" type="list" label="COM_CONTACT_FIELD_CONFIG_SUBURB_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_state_headings" type="list" label="COM_CONTACT_FIELD_CONFIG_STATE_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_country_headings" type="list" label="COM_CONTACT_FIELD_CONFIG_COUNTRY_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_pagination" type="list" label="JGLOBAL_PAGINATION_LABEL" useglobal="true" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> <option value="2">JGLOBAL_AUTO</option> </field> <field name="show_pagination_results" type="list" label="JGLOBAL_PAGINATION_RESULTS_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="contacts_display_num" type="list" label="COM_CONTACT_NUMBER_CONTACTS_LIST_LABEL" useglobal="true" validate="options" > <option value="5">J5</option> <option value="10">J10</option> <option value="15">J15</option> <option value="20">J20</option> <option value="25">J25</option> <option value="30">J30</option> <option value="50">J50</option> <option value="100">J100</option> <option value="0">JALL</option> </field> <field name="initial_sort" type="list" label="COM_CONTACT_FIELD_INITIAL_SORT_LABEL" useglobal="true" validate="options" > <option value="name">COM_CONTACT_FIELD_VALUE_NAME</option> <option value="sortname">COM_CONTACT_FIELD_VALUE_SORT_NAME</option> <option value="ordering">COM_CONTACT_FIELD_VALUE_ORDERING</option> <option value="featuredordering">COM_CONTACT_FIELD_VALUE_ORDERING_FEATURED</option> </field> </fieldset> <fieldset name="contact" label="COM_CONTACT_BASIC_OPTIONS_FIELDSET_LABEL" addfieldprefix="Joomla\Component\Fields\Administrator\Field" > <field name="contact_layout" type="componentlayout" label="JGLOBAL_FIELD_LAYOUT_LABEL" class="form-select" menuitems="true" extension="com_contact" view="contact" /> <field name="show_contact_category" type="list" label="COM_CONTACT_FIELD_CONTACT_SHOW_CATEGORY_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="hide">JHIDE</option> <option value="show_no_link">COM_CONTACT_FIELD_VALUE_NO_LINK</option> <option value="show_with_link">COM_CONTACT_FIELD_VALUE_WITH_LINK</option> </field> <field name="show_contact_list" type="list" label="COM_CONTACT_FIELD_CONTACT_SHOW_LIST_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_name" type="list" label="COM_CONTACT_FIELD_PARAMS_NAME_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_tags" type="list" label="COM_CONTACT_FIELD_SHOW_TAGS_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_info" type="list" label="COM_CONTACT_FIELD_SHOW_INFO_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_position" type="list" label="COM_CONTACT_FIELD_PARAMS_CONTACT_POSITION_LABEL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_email" type="list" label="JGLOBAL_EMAIL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_street_address" type="list" label="COM_CONTACT_FIELD_PARAMS_STREET_ADDRESS_LABEL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_suburb" type="list" label="COM_CONTACT_FIELD_PARAMS_TOWN-SUBURB_LABEL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_state" type="list" label="COM_CONTACT_FIELD_PARAMS_STATE-COUNTY_LABEL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_postcode" type="list" label="COM_CONTACT_FIELD_PARAMS_POST-ZIP_CODE_LABEL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_country" type="list" label="COM_CONTACT_FIELD_PARAMS_COUNTRY_LABEL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_telephone" type="list" label="COM_CONTACT_FIELD_PARAMS_TELEPHONE_LABEL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_mobile" type="list" label="COM_CONTACT_FIELD_PARAMS_MOBILE_LABEL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_fax" type="list" label="COM_CONTACT_FIELD_PARAMS_FAX_LABEL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_webpage" type="list" label="COM_CONTACT_FIELD_PARAMS_WEBPAGE_LABEL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_image" type="list" label="COM_CONTACT_FIELD_PARAMS_IMAGE_LABEL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="allow_vcard" type="list" label="COM_CONTACT_FIELD_PARAMS_VCARD_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_misc" type="list" label="COM_CONTACT_FIELD_PARAMS_MISC_INFO_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_articles" type="list" label="COM_CONTACT_FIELD_ARTICLES_SHOW_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="articles_display_num" type="list" label="COM_CONTACT_FIELD_ARTICLES_DISPLAY_NUM_LABEL" default="" useglobal="true" validate="options" > <option value="use_contact">COM_CONTACT_FIELD_VALUE_USE_CONTACT_SETTINGS</option> <option value="5">J5</option> <option value="10">J10</option> <option value="15">J15</option> <option value="20">J20</option> <option value="25">J25</option> <option value="30">J30</option> <option value="50">J50</option> <option value="75">J75</option> <option value="100">J100</option> <option value="150">J150</option> <option value="200">J200</option> <option value="250">J250</option> <option value="300">J300</option> <option value="0">JALL</option> </field> <field name="show_links" type="list" label="COM_CONTACT_FIELD_SHOW_LINKS_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_user_custom_fields" type="fieldgroups" label="COM_CONTACT_FIELD_USER_CUSTOM_FIELDS_SHOW_LABEL" multiple="true" context="com_users.user" addfieldprefix="Joomla\Component\Fields\Administrator\Field" layout="joomla.form.field.list-fancy-select" > <option value="-1">JALL</option> </field> <field name="linka_name" type="text" label="COM_CONTACT_FIELD_LINKA_NAME_LABEL" size="30" useglobal="true" /> <field name="linkb_name" type="text" label="COM_CONTACT_FIELD_LINKB_NAME_LABEL" size="30" useglobal="true" /> <field name="linkc_name" type="text" label="COM_CONTACT_FIELD_LINKC_NAME_LABEL" size="30" useglobal="true" /> <field name="linkd_name" type="text" label="COM_CONTACT_FIELD_LINKD_NAME_LABEL" size="30" useglobal="true" /> <field name="linke_name" type="text" label="COM_CONTACT_FIELD_LINKE_NAME_LABEL" size="30" useglobal="true" /> </fieldset> <!-- Form options. --> <fieldset name="Contact_Form" label="COM_CONTACT_MAIL_FIELDSET_LABEL" > <field name="show_email_form" type="list" label="COM_CONTACT_FIELD_EMAIL_SHOW_FORM_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_email_copy" type="list" label="COM_CONTACT_FIELD_EMAIL_EMAIL_COPY_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="validate_session" type="list" label="COM_CONTACT_FIELD_CONFIG_SESSION_CHECK_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="custom_reply" type="list" label="COM_CONTACT_FIELD_CONFIG_CUSTOM_REPLY_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="redirect" type="text" label="COM_CONTACT_FIELD_CONFIG_REDIRECT_LABEL" size="30" useglobal="true" /> </fieldset> <fieldset name="integration"> <field name="show_feed_link" type="list" label="JGLOBAL_SHOW_FEED_LINK_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> </fieldset> </fields> </metadata> tmpl/category/default.php 0000604 00000000711 15075137464 0011501 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2006 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\CMS\Layout\LayoutHelper; ?> <div class="com-contact-category"> <?php $this->subtemplatename = 'items'; echo LayoutHelper::render('joomla.content.category_default', $this); ?> </div> tmpl/category/default_children.php 0000604 00000003363 15075137464 0013357 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2009 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; use Joomla\Component\Contact\Site\Helper\RouteHelper; if ($this->maxLevel != 0 && count($this->children[$this->category->id]) > 0) : ?> <ul class="com-contact-category__children list-striped list-condensed"> <?php foreach ($this->children[$this->category->id] as $id => $child) : ?> <?php if ($this->params->get('show_empty_categories') || $child->numitems || count($child->getChildren())) : ?> <li> <h4 class="item-title"> <a href="<?php echo Route::_(RouteHelper::getCategoryRoute($child->id, $child->language)); ?>"> <?php echo $this->escape($child->title); ?> </a> <?php if ($this->params->get('show_cat_items') == 1) : ?> <span class="badge bg-info float-end" title="<?php echo Text::_('COM_CONTACT_CAT_NUM'); ?>"><?php echo $child->numitems; ?></span> <?php endif; ?> </h4> <?php if ($this->params->get('show_subcat_desc') == 1) : ?> <?php if ($child->description) : ?> <div class="category-desc"> <?php echo HTMLHelper::_('content.prepare', $child->description, '', 'com_contact.category'); ?> </div> <?php endif; ?> <?php endif; ?> <?php if (count($child->getChildren()) > 0 ) : $this->children[$child->id] = $child->getChildren(); $this->category = $child; $this->maxLevel--; echo $this->loadTemplate('children'); $this->category = $child->getParent(); $this->maxLevel++; endif; ?> </li> <?php endif; ?> <?php endforeach; ?> </ul> <?php endif; ?> tmpl/category/default_items.php 0000604 00000020035 15075137464 0012703 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2006 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\CMS\Factory; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; use Joomla\CMS\Uri\Uri; use Joomla\Component\Contact\Administrator\Helper\ContactHelper; use Joomla\Component\Contact\Site\Helper\RouteHelper; /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ $wa = $this->document->getWebAssetManager(); $wa->useScript('com_contact.contacts-list'); HTMLHelper::_('behavior.core'); $canDo = ContactHelper::getActions('com_contact', 'category', $this->category->id); $canEdit = $canDo->get('core.edit'); $userId = Factory::getUser()->id; $listOrder = $this->escape($this->state->get('list.ordering')); $listDirn = $this->escape($this->state->get('list.direction')); ?> <div class="com-contact-category__items"> <form action="<?php echo htmlspecialchars(Uri::getInstance()->toString()); ?>" method="post" name="adminForm" id="adminForm"> <?php if ($this->params->get('filter_field')) : ?> <div class="com-contact-category__filter btn-group"> <label class="filter-search-lbl visually-hidden" for="filter-search"> <?php echo Text::_('COM_CONTACT_FILTER_SEARCH_DESC'); ?> </label> <input type="text" name="filter-search" id="filter-search" value="<?php echo $this->escape($this->state->get('list.filter')); ?>" class="inputbox" onchange="document.adminForm.submit();" placeholder="<?php echo Text::_('COM_CONTACT_FILTER_SEARCH_DESC'); ?>" > <button type="submit" name="filter_submit" class="btn btn-primary"><?php echo Text::_('JGLOBAL_FILTER_BUTTON'); ?></button> <button type="reset" name="filter-clear-button" class="btn btn-secondary"><?php echo Text::_('JSEARCH_FILTER_CLEAR'); ?></button> </div> <?php endif; ?> <?php if ($this->params->get('show_pagination_limit')) : ?> <div class="com-contact-category__pagination btn-group float-end"> <label for="limit" class="visually-hidden"> <?php echo Text::_('JGLOBAL_DISPLAY_NUM'); ?> </label> <?php echo $this->pagination->getLimitBox(); ?> </div> <?php endif; ?> <?php if (empty($this->items)) : ?> <?php if ($this->params->get('show_no_contacts', 1)) : ?> <div class="alert alert-info"> <span class="icon-info-circle" aria-hidden="true"></span><span class="visually-hidden"><?php echo Text::_('INFO'); ?></span> <?php echo Text::_('COM_CONTACT_NO_CONTACTS'); ?> </div> <?php endif; ?> <?php else : ?> <table class="com-content-category__table category table table-striped table-bordered table-hover" id="contactList"> <caption class="visually-hidden"> <?php echo Text::_('COM_CONTACT_TABLE_CAPTION'); ?>, </caption> <?php if ($this->params->get('show_headings')) : ?> <thead> <tr> <th scope="col" id="categorylist_header_title"> <?php echo HTMLHelper::_('grid.sort', 'JGLOBAL_TITLE', 'a.name', $listDirn, $listOrder, null, 'asc', '', 'adminForm'); ?> </th> <th scope="col"> <?php echo Text::_('COM_CONTACT_CONTACT_DETAILS'); ?> </th> <?php if ($canEdit || ($canDo->get('core.edit.own') && $item->created_by === $userId)) : ?> <th scope="col"> <?php echo Text::_('COM_CONTACT_EDIT_CONTACT'); ?> </th> <?php endif; ?> </tr> </thead> <?php endif; ?> <tbody> <?php foreach ($this->items as $i => $item) : ?> <?php if ($this->items[$i]->published == 0) : ?> <tr class="system-unpublished cat-list-row<?php echo $i % 2; ?>"> <?php else : ?> <tr class="cat-list-row<?php echo $i % 2; ?>" > <?php endif; ?> <th scope="row" class="list-title"> <a href="<?php echo Route::_(RouteHelper::getContactRoute($item->slug, $item->catid, $item->language)); ?>"> <?php if ($this->params->get('show_image_heading')) : ?> <?php if ($item->image) : ?> <?php echo HTMLHelper::_('image', $item->image, '', array('class' => 'contact-thumbnail img-thumbnail')); ?> <?php endif; ?> <?php endif; ?> <?php echo $this->escape($item->name); ?> </a> <?php if ($item->published == 0) : ?> <div> <span class="list-published badge bg-warning text-light"> <?php echo Text::_('JUNPUBLISHED'); ?> </span> </div> <?php endif; ?> <?php if (strtotime($item->publish_up) > strtotime(Factory::getDate())) : ?> <div> <span class="list-published badge bg-warning text-light"> <?php echo Text::_('JNOTPUBLISHEDYET'); ?> </span> </div> <?php endif; ?> <?php if (!is_null($item->publish_down) && strtotime($item->publish_down) < strtotime(Factory::getDate())) : ?> <div> <span class="list-published badge bg-warning text-light"> <?php echo Text::_('JEXPIRED'); ?> </span> </div <?php endif; ?> <?php if ($item->published == -2) : ?> <div> <span class="badge bg-warning text-light"> <?php echo Text::_('JTRASHED'); ?> </span> </div> <?php endif; ?> <?php echo $item->event->afterDisplayTitle; ?> </th> <td> <?php echo $item->event->beforeDisplayContent; ?> <?php if ($this->params->get('show_telephone_headings') && !empty($item->telephone)) : ?> <?php echo Text::sprintf('COM_CONTACT_TELEPHONE_NUMBER', $item->telephone); ?><br> <?php endif; ?> <?php if ($this->params->get('show_mobile_headings') && !empty ($item->mobile)) : ?> <?php echo Text::sprintf('COM_CONTACT_MOBILE_NUMBER', $item->mobile); ?><br> <?php endif; ?> <?php if ($this->params->get('show_fax_headings') && !empty($item->fax)) : ?> <?php echo Text::sprintf('COM_CONTACT_FAX_NUMBER', $item->fax); ?><br> <?php endif; ?> <?php if ($this->params->get('show_position_headings') && !empty($item->con_position)) : ?> <?php echo $item->con_position; ?><br> <?php endif; ?> <?php if ($this->params->get('show_email_headings') && !empty($item->email_to)) : ?> <?php echo $item->email_to; ?><br> <?php endif; ?> <?php $location = array(); ?> <?php if ($this->params->get('show_suburb_headings') && !empty($item->suburb)) : ?> <?php $location[] = $item->suburb; ?> <?php endif; ?> <?php if ($this->params->get('show_state_headings') && !empty($item->state)) : ?> <?php $location[] = $item->state; ?> <?php endif; ?> <?php if ($this->params->get('show_country_headings') && !empty($item->country)) : ?> <?php $location[] = $item->country; ?> <?php endif; ?> <?php echo implode(', ', $location); ?> <?php echo $item->event->afterDisplayContent; ?> </td> <?php if ($canEdit || ($canDo->get('core.edit.own') && $item->created_by === $userId)) : ?> <td> <?php echo HTMLHelper::_('contacticon.edit', $item, $this->params); ?> </td> <?php endif; ?> <?php endforeach; ?> </tbody> </table> <?php endif; ?> <?php if ($canDo->get('core.create')) : ?> <?php echo HTMLHelper::_('contacticon.create', $this->category, $this->category->params); ?> <?php endif; ?> <?php if ($this->params->get('show_pagination', 2)) : ?> <div class="com-contact-category__counter w-100"> <?php if ($this->params->def('show_pagination_results', 1)) : ?> <p class="com-contact-category__counter counter float-end pt-3 pe-2"> <?php echo $this->pagination->getPagesCounter(); ?> </p> <?php endif; ?> <?php echo $this->pagination->getPagesLinks(); ?> </div> <?php endif; ?> <div> <input type="hidden" name="filter_order" value="<?php echo $this->escape($this->state->get('list.ordering')); ?>"> <input type="hidden" name="filter_order_Dir" value="<?php echo $this->escape($this->state->get('list.direction')); ?>"> </div> </form> </div> tmpl/form/edit.php 0000604 00000006170 15075137464 0010135 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2020 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Multilanguage; use Joomla\CMS\Language\Text; use Joomla\CMS\Layout\LayoutHelper; use Joomla\CMS\Router\Route; HTMLHelper::_('behavior.keepalive'); HTMLHelper::_('behavior.formvalidator'); $this->tab_name = 'com-contact-form'; $this->ignore_fieldsets = array('details', 'item_associations', 'language'); $this->useCoreUI = true; ?> <div class="edit item-page<?php echo $this->pageclass_sfx; ?>"> <?php if ($this->params->get('show_page_heading')) : ?> <div class="page-header"> <h1> <?php echo $this->escape($this->params->get('page_heading')); ?> </h1> </div> <?php endif; ?> <form action="<?php echo Route::_('index.php?option=com_contact&id=' . (int) $this->item->id); ?>" method="post" name="adminForm" id="adminForm" class="form-validate form-vertical"> <fieldset> <?php echo HTMLHelper::_('uitab.startTabSet', $this->tab_name, ['active' => 'details', 'recall' => true, 'breakpoint' => 768]); ?> <?php echo HTMLHelper::_('uitab.addTab', $this->tab_name, 'details', empty($this->item->id) ? Text::_('COM_CONTACT_NEW_CONTACT') : Text::_('COM_CONTACT_EDIT_CONTACT')); ?> <?php echo $this->form->renderField('name'); ?> <?php if (is_null($this->item->id)) : ?> <?php echo $this->form->renderField('alias'); ?> <?php endif; ?> <?php echo $this->form->renderFieldset('details'); ?> <?php echo HTMLHelper::_('uitab.endTab'); ?> <?php echo HTMLHelper::_('uitab.addTab', $this->tab_name, 'misc', Text::_('COM_CONTACT_FIELDSET_MISCELLANEOUS')); ?> <?php echo $this->form->getInput('misc'); ?> <?php echo HTMLHelper::_('uitab.endTab'); ?> <?php if (Multilanguage::isEnabled()) : ?> <?php echo HTMLHelper::_('uitab.addTab', $this->tab_name, 'language', Text::_('JFIELD_LANGUAGE_LABEL')); ?> <?php echo $this->form->renderField('language'); ?> <?php echo HTMLHelper::_('uitab.endTab'); ?> <?php else: ?> <?php echo $this->form->renderField('language'); ?> <?php endif; ?> <?php echo LayoutHelper::render('joomla.edit.params', $this); ?> <?php echo HTMLHelper::_('uitab.endTabSet'); ?> <input type="hidden" name="task" value=""/> <input type="hidden" name="return" value="<?php echo $this->return_page; ?>"/> <?php echo HTMLHelper::_('form.token'); ?> </fieldset> <div class="mb-2"> <button type="button" class="btn btn-primary" onclick="Joomla.submitbutton('contact.save')"> <span class="icon-check" aria-hidden="true"></span> <?php echo Text::_('JSAVE'); ?> </button> <button type="button" class="btn btn-danger" onclick="Joomla.submitbutton('contact.cancel')"> <span class="icon-times" aria-hidden="true"></span> <?php echo Text::_('JCANCEL'); ?> </button> <?php if ($this->params->get('save_history', 0) && $this->item->id) : ?> <?php echo $this->form->getInput('contenthistory'); ?> <?php endif; ?> </div> </form> </div> tmpl/form/edit.xml 0000604 00000000451 15075137464 0010142 0 ustar 00 <?xml version="1.0" encoding="utf-8"?> <metadata> <layout title="COM_CONTACT_FORM_VIEW_DEFAULT_TITLE"> <help key="JHELP_MENUS_MENU_ITEM_CONTACT_CREATE" /> <message> <![CDATA[COM_CONTACT_FORM_VIEW_DEFAULT_DESC]]> </message> </layout> <fields name="params"> </fields> </metadata> tmpl/contact/default_address.php 0000604 00000012273 15075137464 0013032 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2006 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\CMS\Language\Text; use Joomla\CMS\String\PunycodeHelper; /** * Marker_class: Class based on the selection of text, none, or icons * jicon-text, jicon-none, jicon-icon */ ?> <dl class="com-contact__address contact-address dl-horizontal" itemprop="address" itemscope itemtype="https://schema.org/PostalAddress"> <?php if (($this->params->get('address_check') > 0) && ($this->item->address || $this->item->suburb || $this->item->state || $this->item->country || $this->item->postcode)) : ?> <dt> <?php if (!$this->params->get('marker_address')) : ?> <span class="icon-address" aria-hidden="true"></span><span class="visually-hidden"><?php echo Text::_('COM_CONTACT_ADDRESS'); ?></span> <?php else : ?> <span class="<?php echo $this->params->get('marker_class'); ?>"> <?php echo $this->params->get('marker_address'); ?> </span> <?php endif; ?> </dt> <?php if ($this->item->address && $this->params->get('show_street_address')) : ?> <dd> <span class="contact-street" itemprop="streetAddress"> <?php echo nl2br($this->item->address, false); ?> </span> </dd> <?php endif; ?> <?php if ($this->item->suburb && $this->params->get('show_suburb')) : ?> <dd> <span class="contact-suburb" itemprop="addressLocality"> <?php echo $this->item->suburb; ?> </span> </dd> <?php endif; ?> <?php if ($this->item->state && $this->params->get('show_state')) : ?> <dd> <span class="contact-state" itemprop="addressRegion"> <?php echo $this->item->state; ?> </span> </dd> <?php endif; ?> <?php if ($this->item->postcode && $this->params->get('show_postcode')) : ?> <dd> <span class="contact-postcode" itemprop="postalCode"> <?php echo $this->item->postcode; ?> </span> </dd> <?php endif; ?> <?php if ($this->item->country && $this->params->get('show_country')) : ?> <dd> <span class="contact-country" itemprop="addressCountry"> <?php echo $this->item->country; ?> </span> </dd> <?php endif; ?> <?php endif; ?> <?php if ($this->item->email_to && $this->params->get('show_email')) : ?> <dt> <?php if (!$this->params->get('marker_email')) : ?> <span class="icon-envelope" aria-hidden="true"></span><span class="visually-hidden"><?php echo Text::_('COM_CONTACT_EMAIL'); ?>"></span> <?php else : ?> <span class="<?php echo $this->params->get('marker_class'); ?>"> <?php echo $this->params->get('marker_email'); ?> </span> <?php endif; ?> </dt> <dd> <span class="contact-emailto"> <?php echo $this->item->email_to; ?> </span> </dd> <?php endif; ?> <?php if ($this->item->telephone && $this->params->get('show_telephone')) : ?> <dt> <?php if (!$this->params->get('marker_telephone')) : ?> <span class="icon-phone" aria-hidden="true"></span><span class="visually-hidden"><?php echo Text::_('COM_CONTACT_TELEPHONE'); ?></span> <?php else : ?> <span class="<?php echo $this->params->get('marker_class'); ?>"> <?php echo $this->params->get('marker_telephone'); ?> </span> <?php endif; ?> </dt> <dd> <span class="contact-telephone" itemprop="telephone"> <?php echo $this->item->telephone; ?> </span> </dd> <?php endif; ?> <?php if ($this->item->fax && $this->params->get('show_fax')) : ?> <dt> <?php if (!$this->params->get('marker_fax')) : ?> <span class="icon-fax" aria-hidden="true"></span><span class="visually-hidden"><?php echo Text::_('COM_CONTACT_FAX'); ?></span> <?php else : ?> <span class="<?php echo $this->params->get('marker_class'); ?>"> <?php echo $this->params->get('marker_fax'); ?> </span> <?php endif; ?> </dt> <dd> <span class="contact-fax" itemprop="faxNumber"> <?php echo $this->item->fax; ?> </span> </dd> <?php endif; ?> <?php if ($this->item->mobile && $this->params->get('show_mobile')) : ?> <dt> <?php if (!$this->params->get('marker_mobile')) : ?> <span class="icon-mobile" aria-hidden="true"></span><span class="visually-hidden"><?php echo Text::_('COM_CONTACT_MOBILE'); ?></span> <?php else : ?> <span class="<?php echo $this->params->get('marker_class'); ?>"> <?php echo $this->params->get('marker_mobile'); ?> </span> <?php endif; ?> </dt> <dd> <span class="contact-mobile" itemprop="telephone"> <?php echo $this->item->mobile; ?> </span> </dd> <?php endif; ?> <?php if ($this->item->webpage && $this->params->get('show_webpage')) : ?> <dt> <?php if (!$this->params->get('marker_webpage')) : ?> <span class="icon-home" aria-hidden="true"></span><span class="visually-hidden"><?php echo Text::_('COM_CONTACT_WEBPAGE'); ?></span> <?php else : ?> <span class="<?php echo $this->params->get('marker_class'); ?>"> <?php echo $this->params->get('marker_webpage'); ?> </span> <?php endif; ?> </dt> <dd> <span class="contact-webpage"> <a href="<?php echo $this->item->webpage; ?>" target="_blank" rel="noopener noreferrer" itemprop="url"> <?php echo PunycodeHelper::urlToUTF8($this->item->webpage); ?></a> </span> </dd> <?php endif; ?> </dl> tmpl/contact/default_articles.php 0000604 00000001471 15075137464 0013211 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2009 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Router\Route; use Joomla\Component\Content\Site\Helper\RouteHelper; ?> <?php if ($this->params->get('show_articles')) : ?> <div class="com-contact__articles contact-articles"> <ul class="list-unstyled"> <?php foreach ($this->item->articles as $article) : ?> <li> <?php echo HTMLHelper::_('link', Route::_(RouteHelper::getArticleRoute($article->slug, $article->catid, $article->language)), htmlspecialchars($article->title, ENT_COMPAT, 'UTF-8')); ?> </li> <?php endforeach; ?> </ul> </div> <?php endif; ?> tmpl/contact/default_form.php 0000604 00000003371 15075137464 0012347 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2006 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; HTMLHelper::_('behavior.keepalive'); HTMLHelper::_('behavior.formvalidator'); ?> <div class="com-contact__form contact-form"> <form id="contact-form" action="<?php echo Route::_('index.php'); ?>" method="post" class="form-validate form-horizontal well"> <?php foreach ($this->form->getFieldsets() as $fieldset) : ?> <?php if ($fieldset->name === 'captcha' && !$this->captchaEnabled) : ?> <?php continue; ?> <?php endif; ?> <?php $fields = $this->form->getFieldset($fieldset->name); ?> <?php if (count($fields)) : ?> <fieldset class="m-0"> <?php if (isset($fieldset->label) && ($legend = trim(Text::_($fieldset->label))) !== '') : ?> <legend><?php echo $legend; ?></legend> <?php endif; ?> <?php foreach ($fields as $field) : ?> <?php echo $field->renderField(); ?> <?php endforeach; ?> </fieldset> <?php endif; ?> <?php endforeach; ?> <div class="control-group"> <div class="controls"> <button class="btn btn-primary validate" type="submit"><?php echo Text::_('COM_CONTACT_CONTACT_SEND'); ?></button> <input type="hidden" name="option" value="com_contact"> <input type="hidden" name="task" value="contact.submit"> <input type="hidden" name="return" value="<?php echo $this->return_page; ?>"> <input type="hidden" name="id" value="<?php echo $this->item->slug; ?>"> <?php echo HTMLHelper::_('form.token'); ?> </div> </div> </form> </div> tmpl/contact/default_profile.php 0000604 00000002765 15075137464 0013052 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2009 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Plugin\PluginHelper; use Joomla\CMS\String\PunycodeHelper; ?> <?php if (PluginHelper::isEnabled('user', 'profile')) : $fields = $this->item->profile->getFieldset('profile'); ?> <div class="com-contact__profile contact-profile" id="users-profile-custom"> <dl class="dl-horizontal"> <?php foreach ($fields as $profile) : if ($profile->value) : echo '<dt>' . $profile->label . '</dt>'; $profile->text = htmlspecialchars($profile->value, ENT_COMPAT, 'UTF-8'); switch ($profile->id) : case 'profile_website': $v_http = substr($profile->value, 0, 4); if ($v_http === 'http') : echo '<dd><a href="' . $profile->text . '">' . PunycodeHelper::urlToUTF8($profile->text) . '</a></dd>'; else : echo '<dd><a href="http://' . $profile->text . '">' . PunycodeHelper::urlToUTF8($profile->text) . '</a></dd>'; endif; break; case 'profile_dob': echo '<dd>' . HTMLHelper::_('date', $profile->text, Text::_('DATE_FORMAT_LC4'), false) . '</dd>'; break; default: echo '<dd>' . $profile->text . '</dd>'; break; endswitch; endif; endforeach; ?> </dl> </div> <?php endif; ?> tmpl/contact/default_links.php 0000604 00000001764 15075137464 0012530 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2009 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\CMS\Language\Text; ?> <?php echo '<h3>' . Text::_('COM_CONTACT_LINKS') . '</h3>'; ?> <div class="com-contact__links contact-links"> <ul class="list-unstyled"> <?php // Letters 'a' to 'e' foreach (range('a', 'e') as $char) : $link = $this->item->params->get('link' . $char); $label = $this->item->params->get('link' . $char . '_name'); if (!$link) : continue; endif; // Add 'http://' if not present $link = (0 === strpos($link, 'http')) ? $link : 'http://' . $link; // If no label is present, take the link $label = $label ?: $link; ?> <li> <a href="<?php echo $link; ?>" itemprop="url" rel="noopener noreferrer"> <?php echo $label; ?> </a> </li> <?php endforeach; ?> </ul> </div> tmpl/contact/default_user_custom_fields.php 0000604 00000003007 15075137464 0015276 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2016 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\CMS\Application\ApplicationHelper; use Joomla\CMS\Language\Text; $params = $this->item->params; $displayGroups = $params->get('show_user_custom_fields'); $userFieldGroups = array(); ?> <?php if (!$displayGroups || !$this->contactUser) : ?> <?php return; ?> <?php endif; ?> <?php foreach ($this->contactUser->jcfields as $field) : ?> <?php if ($field->value && (in_array('-1', $displayGroups) || in_array($field->group_id, $displayGroups))) : ?> <?php $userFieldGroups[$field->group_title][] = $field; ?> <?php endif; ?> <?php endforeach; ?> <?php foreach ($userFieldGroups as $groupTitle => $fields) : ?> <?php $id = ApplicationHelper::stringURLSafe($groupTitle); ?> <?php echo '<h3>' . ($groupTitle ?: Text::_('COM_CONTACT_USER_FIELDS')) . '</h3>'; ?> <div class="com-contact__user-fields contact-profile" id="user-custom-fields-<?php echo $id; ?>"> <dl class="dl-horizontal"> <?php foreach ($fields as $field) : ?> <?php if (!$field->value) : ?> <?php continue; ?> <?php endif; ?> <?php if ($field->params->get('showlabel')) : ?> <?php echo '<dt>' . Text::_($field->label) . '</dt>'; ?> <?php endif; ?> <?php echo '<dd>' . $field->value . '</dd>'; ?> <?php endforeach; ?> </dl> </div> <?php endforeach; ?> tmpl/contact/default.php 0000604 00000014213 15075137464 0011321 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2006 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\CMS\Factory; use Joomla\CMS\Helper\ContentHelper; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Layout\FileLayout; use Joomla\CMS\Plugin\PluginHelper; use Joomla\CMS\Router\Route; use Joomla\Component\Contact\Site\Helper\RouteHelper; $tparams = $this->item->params; $canDo = ContentHelper::getActions('com_contact', 'category', $this->item->catid); $canEdit = $canDo->get('core.edit') || ($canDo->get('core.edit.own') && $this->item->created_by === Factory::getUser()->id); $htag = $tparams->get('show_page_heading') ? 'h2' : 'h1'; ?> <div class="com-contact contact" itemscope itemtype="https://schema.org/Person"> <?php if ($tparams->get('show_page_heading')) : ?> <h1> <?php echo $this->escape($tparams->get('page_heading')); ?> </h1> <?php endif; ?> <?php if ($this->item->name && $tparams->get('show_name')) : ?> <div class="page-header"> <<?php echo $htag; ?>> <?php if ($this->item->published == 0) : ?> <span class="badge bg-warning text-light"><?php echo Text::_('JUNPUBLISHED'); ?></span> <?php endif; ?> <span class="contact-name" itemprop="name"><?php echo $this->item->name; ?></span> </<?php echo $htag; ?>> </div> <?php endif; ?> <?php if ($canEdit) : ?> <div class="icons"> <div class="float-end"> <div> <?php echo HTMLHelper::_('contacticon.edit', $this->item, $tparams); ?> </div> </div> </div> <?php endif; ?> <?php $show_contact_category = $tparams->get('show_contact_category'); ?> <?php if ($show_contact_category === 'show_no_link') : ?> <h3> <span class="contact-category"><?php echo $this->item->category_title; ?></span> </h3> <?php elseif ($show_contact_category === 'show_with_link') : ?> <?php $contactLink = RouteHelper::getCategoryRoute($this->item->catid, $this->item->language); ?> <h3> <span class="contact-category"><a href="<?php echo $contactLink; ?>"> <?php echo $this->escape($this->item->category_title); ?></a> </span> </h3> <?php endif; ?> <?php echo $this->item->event->afterDisplayTitle; ?> <?php if ($tparams->get('show_contact_list') && count($this->contacts) > 1) : ?> <form action="#" method="get" name="selectForm" id="selectForm"> <label for="select_contact"><?php echo Text::_('COM_CONTACT_SELECT_CONTACT'); ?></label> <?php echo HTMLHelper::_( 'select.genericlist', $this->contacts, 'select_contact', 'class="form-select" onchange="document.location.href = this.value"', 'link', 'name', $this->item->link); ?> </form> <?php endif; ?> <?php if ($tparams->get('show_tags', 1) && !empty($this->item->tags->itemTags)) : ?> <div class="com-contact__tags"> <?php $this->item->tagLayout = new FileLayout('joomla.content.tags'); ?> <?php echo $this->item->tagLayout->render($this->item->tags->itemTags); ?> </div> <?php endif; ?> <?php echo $this->item->event->beforeDisplayContent; ?> <?php if ($this->params->get('show_info', 1)) : ?> <div class="com-contact__container"> <?php echo '<h3>' . Text::_('COM_CONTACT_DETAILS') . '</h3>'; ?> <?php if ($this->item->image && $tparams->get('show_image')) : ?> <div class="com-contact__thumbnail thumbnail"> <?php echo HTMLHelper::_( 'image', $this->item->image, htmlspecialchars($this->item->name, ENT_QUOTES, 'UTF-8'), array('itemprop' => 'image') ); ?> </div> <?php endif; ?> <?php if ($this->item->con_position && $tparams->get('show_position')) : ?> <dl class="com-contact__position contact-position dl-horizontal"> <dt><?php echo Text::_('COM_CONTACT_POSITION'); ?>:</dt> <dd itemprop="jobTitle"> <?php echo $this->item->con_position; ?> </dd> </dl> <?php endif; ?> <div class="com-contact__info"> <?php echo $this->loadTemplate('address'); ?> <?php if ($tparams->get('allow_vcard')) : ?> <?php echo Text::_('COM_CONTACT_DOWNLOAD_INFORMATION_AS'); ?> <a href="<?php echo Route::_('index.php?option=com_contact&view=contact&id=' . $this->item->id . '&format=vcf'); ?>"> <?php echo Text::_('COM_CONTACT_VCARD'); ?></a> <?php endif; ?> </div> </div> <?php endif; ?> <?php if ($tparams->get('show_email_form') && ($this->item->email_to || $this->item->user_id)) : ?> <?php echo '<h3>' . Text::_('COM_CONTACT_EMAIL_FORM') . '</h3>'; ?> <?php echo $this->loadTemplate('form'); ?> <?php endif; ?> <?php if ($tparams->get('show_links')) : ?> <?php echo $this->loadTemplate('links'); ?> <?php endif; ?> <?php if ($tparams->get('show_articles') && $this->item->user_id && $this->item->articles) : ?> <?php echo '<h3>' . Text::_('JGLOBAL_ARTICLES') . '</h3>'; ?> <?php echo $this->loadTemplate('articles'); ?> <?php endif; ?> <?php if ($tparams->get('show_profile') && $this->item->user_id && PluginHelper::isEnabled('user', 'profile')) : ?> <?php echo '<h3>' . Text::_('COM_CONTACT_PROFILE') . '</h3>'; ?> <?php echo $this->loadTemplate('profile'); ?> <?php endif; ?> <?php if ($tparams->get('show_user_custom_fields') && $this->contactUser) : ?> <?php echo $this->loadTemplate('user_custom_fields'); ?> <?php endif; ?> <?php if ($this->item->misc && $tparams->get('show_misc')) : ?> <?php echo '<h3>' . Text::_('COM_CONTACT_OTHER_INFORMATION') . '</h3>'; ?> <div class="com-contact__miscinfo contact-miscinfo"> <dl class="dl-horizontal"> <dt> <?php if (!$this->params->get('marker_misc')) : ?> <span class="icon-info-circle" aria-hidden="true"></span> <span class="visually-hidden"><?php echo Text::_('COM_CONTACT_OTHER_INFORMATION'); ?></span> <?php else : ?> <span class="<?php echo $this->params->get('marker_class'); ?>"> <?php echo $this->params->get('marker_misc'); ?> </span> <?php endif; ?> </dt> <dd> <span class="contact-misc"> <?php echo $this->item->misc; ?> </span> </dd> </dl> </div> <?php endif; ?> <?php echo $this->item->event->afterDisplayContent; ?> </div> tmpl/contact/default.xml 0000604 00000025206 15075137464 0011336 0 ustar 00 <?xml version="1.0" encoding="utf-8"?> <metadata> <layout title="COM_CONTACT_CONTACT_VIEW_DEFAULT_TITLE" option="COM_CONTACT_CONTACT_VIEW_DEFAULT_OPTION"> <help key = "JHELP_MENUS_MENU_ITEM_CONTACT_SINGLE_CONTACT" /> <message> <![CDATA[COM_CONTACT_CONTACT_VIEW_DEFAULT_DESC]]> </message> </layout> <!-- Add fields to the request variables for the layout. --> <fields name="request"> <fieldset name="request" addfieldprefix="Joomla\Component\Contact\Administrator\Field" > <field name="id" type="modal_contact" label="COM_CONTACT_SELECT_CONTACT_LABEL" required="true" select="true" new="true" edit="true" clear="true" /> </fieldset> </fields> <!-- Add fields to the parameters object for the layout. --> <fields name="params"> <!-- Basic options. --> <fieldset name="params" label="COM_CONTACT_BASIC_OPTIONS_FIELDSET_LABEL" > <field name="show_contact_category" type="list" label="COM_CONTACT_FIELD_CONTACT_SHOW_CATEGORY_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="hide">JHIDE</option> <option value="show_no_link">COM_CONTACT_FIELD_VALUE_NO_LINK</option> <option value="show_with_link">COM_CONTACT_FIELD_VALUE_WITH_LINK</option> </field> <field name="show_contact_list" type="list" label="COM_CONTACT_FIELD_CONTACT_SHOW_LIST_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_name" type="list" label="COM_CONTACT_FIELD_PARAMS_NAME_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_tags" type="list" label="COM_CONTACT_FIELD_SHOW_TAGS_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_info" type="list" label="COM_CONTACT_FIELD_SHOW_INFO_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_position" type="list" label="COM_CONTACT_FIELD_PARAMS_CONTACT_POSITION_LABEL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_email" type="list" label="JGLOBAL_EMAIL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="add_mailto_link" type="list" label="COM_CONTACT_FIELD_PARAMS_ADD_MAILTO_LINK_LABEL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="1">JYES</option> <option value="0">JNO</option> </field> <field name="show_street_address" type="list" label="COM_CONTACT_FIELD_PARAMS_STREET_ADDRESS_LABEL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_suburb" type="list" label="COM_CONTACT_FIELD_PARAMS_TOWN-SUBURB_LABEL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_state" type="list" label="COM_CONTACT_FIELD_PARAMS_STATE-COUNTY_LABEL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_postcode" type="list" label="COM_CONTACT_FIELD_PARAMS_POST-ZIP_CODE_LABEL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_country" type="list" label="COM_CONTACT_FIELD_PARAMS_COUNTRY_LABEL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_telephone" type="list" label="COM_CONTACT_FIELD_PARAMS_TELEPHONE_LABEL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_mobile" type="list" label="COM_CONTACT_FIELD_PARAMS_MOBILE_LABEL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_fax" type="list" label="COM_CONTACT_FIELD_PARAMS_FAX_LABEL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_webpage" type="list" label="COM_CONTACT_FIELD_PARAMS_WEBPAGE_LABEL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_image" type="list" label="COM_CONTACT_FIELD_PARAMS_IMAGE_LABEL" useglobal="true" showon="show_info:1" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="allow_vcard" type="list" label="COM_CONTACT_FIELD_PARAMS_VCARD_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_misc" type="list" label="COM_CONTACT_FIELD_PARAMS_MISC_INFO_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_articles" type="list" label="COM_CONTACT_FIELD_ARTICLES_SHOW_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="articles_display_num" type="list" label="COM_CONTACT_FIELD_ARTICLES_DISPLAY_NUM_LABEL" default="" useglobal="true" validate="options" > <option value="use_contact">COM_CONTACT_FIELD_VALUE_USE_CONTACT_SETTINGS</option> <option value="5">J5</option> <option value="10">J10</option> <option value="15">J15</option> <option value="20">J20</option> <option value="25">J25</option> <option value="30">J30</option> <option value="50">J50</option> <option value="75">J75</option> <option value="100">J100</option> <option value="150">J150</option> <option value="200">J200</option> <option value="250">J250</option> <option value="300">J300</option> <option value="0">JALL</option> </field> <field name="show_profile" type="list" label="COM_CONTACT_FIELD_PROFILE_SHOW_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_user_custom_fields" type="fieldgroups" label="COM_CONTACT_FIELD_USER_CUSTOM_FIELDS_SHOW_LABEL" multiple="true" context="com_users.user" addfieldprefix="Joomla\Component\Fields\Administrator\Field" layout="joomla.form.field.list-fancy-select" > <option value="-1">JALL</option> </field> <field name="show_links" type="list" label="COM_CONTACT_FIELD_SHOW_LINKS_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="linka_name" type="text" label="COM_CONTACT_FIELD_LINKA_NAME_LABEL" size="30" useglobal="true" /> <field name="linkb_name" type="text" label="COM_CONTACT_FIELD_LINKB_NAME_LABEL" size="30" useglobal="true" /> <field name="linkc_name" type="text" label="COM_CONTACT_FIELD_LINKC_NAME_LABEL" size="30" useglobal="true" /> <field name="linkd_name" type="text" label="COM_CONTACT_FIELD_LINKD_NAME_LABEL" size="30" useglobal="true" /> <field name="linke_name" type="text" label="COM_CONTACT_FIELD_LINKE_NAME_LABEL" size="30" useglobal="true" /> </fieldset> <!-- Form options. --> <fieldset name="Contact_Form" label="COM_CONTACT_MAIL_FIELDSET_LABEL" > <field name="show_email_form" type="list" label="COM_CONTACT_FIELD_EMAIL_SHOW_FORM_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_email_copy" type="list" label="COM_CONTACT_FIELD_EMAIL_EMAIL_COPY_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="validate_session" type="list" label="COM_CONTACT_FIELD_CONFIG_SESSION_CHECK_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="custom_reply" type="list" label="COM_CONTACT_FIELD_CONFIG_CUSTOM_REPLY_LABEL" useglobal="true" class="form-select-color-state" validate="options" > <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="redirect" type="text" label="COM_CONTACT_FIELD_CONFIG_REDIRECT_LABEL" size="30" useglobal="true" /> </fieldset> </fields> </metadata> src/Rule/ContactEmailSubjectRule.php 0000604 00000003615 15075137464 0013503 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2017 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Component\Contact\Site\Rule; \defined('_JEXEC') or die; use Joomla\CMS\Component\ComponentHelper; use Joomla\CMS\Form\Form; use Joomla\CMS\Form\FormRule; use Joomla\Registry\Registry; use Joomla\String\StringHelper; /** * FormRule for com_contact to make sure the subject contains no banned word. * * @since 1.6 */ class ContactEmailSubjectRule extends FormRule { /** * Method to test for a banned subject * * @param \SimpleXMLElement $element The SimpleXMLElement object representing the <field /> tag for the form field object. * @param mixed $value The form field value to validate. * @param string $group The field name group control value. This acts as an array container for the field. * For example if the field has name="foo" and the group value is set to "bar" then the * full field name would end up being "bar[foo]". * @param Registry $input An optional Registry object with the entire data set to validate against the entire form. * @param Form $form The form object for which the field is being tested. * * @return boolean True if the value is valid, false otherwise */ public function test(\SimpleXMLElement $element, $value, $group = null, Registry $input = null, Form $form = null) { $params = ComponentHelper::getParams('com_contact'); $banned = $params->get('banned_subject'); if ($banned) { foreach (explode(';', $banned) as $item) { if ($item != '' && StringHelper::stristr($value, $item) !== false) { return false; } } } return true; } } src/Rule/ContactEmailMessageRule.php 0000604 00000003626 15075137464 0013472 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2017 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Component\Contact\Site\Rule; \defined('_JEXEC') or die; use Joomla\CMS\Component\ComponentHelper; use Joomla\CMS\Form\Form; use Joomla\CMS\Form\FormRule; use Joomla\Registry\Registry; use Joomla\String\StringHelper; /** * FormRule for com_contact to make sure the message body contains no banned word. * * @since 1.6 */ class ContactEmailMessageRule extends FormRule { /** * Method to test a message for banned words * * @param \SimpleXMLElement $element The SimpleXMLElement object representing the <field /> tag for the form field object. * @param mixed $value The form field value to validate. * @param string $group The field name group control value. This acts as an array container for the field. * For example if the field has name="foo" and the group value is set to "bar" then the * full field name would end up being "bar[foo]". * @param Registry $input An optional Registry object with the entire data set to validate against the entire form. * @param Form $form The form object for which the field is being tested. * * @return boolean True if the value is valid, false otherwise. */ public function test(\SimpleXMLElement $element, $value, $group = null, Registry $input = null, Form $form = null) { $params = ComponentHelper::getParams('com_contact'); $banned = $params->get('banned_text'); if ($banned) { foreach (explode(';', $banned) as $item) { if ($item != '' && StringHelper::stristr($value, $item) !== false) { return false; } } } return true; } } src/Rule/ContactEmailRule.php 0000604 00000003747 15075137464 0012171 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2017 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Component\Contact\Site\Rule; \defined('_JEXEC') or die; use Joomla\CMS\Component\ComponentHelper; use Joomla\CMS\Form\Form; use Joomla\CMS\Form\Rule\EmailRule; use Joomla\Registry\Registry; use Joomla\String\StringHelper; /** * FormRule for com_contact to make sure the email address is not blocked. * * @since 1.6 */ class ContactEmailRule extends EmailRule { /** * Method to test for banned email addresses * * @param \SimpleXMLElement $element The SimpleXMLElement object representing the <field /> tag for the form field object. * @param mixed $value The form field value to validate. * @param string $group The field name group control value. This acts as an array container for the field. * For example if the field has name="foo" and the group value is set to "bar" then the * full field name would end up being "bar[foo]". * @param Registry $input An optional Registry object with the entire data set to validate against the entire form. * @param Form $form The form object for which the field is being tested. * * @return boolean True if the value is valid, false otherwise. */ public function test(\SimpleXMLElement $element, $value, $group = null, Registry $input = null, Form $form = null) { if (!parent::test($element, $value, $group, $input, $form)) { return false; } $params = ComponentHelper::getParams('com_contact'); $banned = $params->get('banned_email'); if ($banned) { foreach (explode(';', $banned) as $item) { if ($item != '' && StringHelper::stristr($value, $item) !== false) { return false; } } } return true; } } src/Model/CategoryModel.php 0000604 00000030120 15075137464 0011646 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2006 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Component\Contact\Site\Model; \defined('_JEXEC') or die; use Joomla\CMS\Categories\Categories; use Joomla\CMS\Categories\CategoryNode; use Joomla\CMS\Component\ComponentHelper; use Joomla\CMS\Factory; use Joomla\CMS\Helper\TagsHelper; use Joomla\CMS\Language\Multilanguage; use Joomla\CMS\MVC\Model\ListModel; use Joomla\CMS\Table\Table; use Joomla\Database\ParameterType; use Joomla\Registry\Registry; /** * Single item model for a contact * * @package Joomla.Site * @subpackage com_contact * @since 1.5 */ class CategoryModel extends ListModel { /** * Category item data * * @var CategoryNode */ protected $_item = null; /** * Array of contacts in the category * * @var \stdClass[] */ protected $_articles = null; /** * Category left and right of this one * * @var CategoryNode[]|null */ protected $_siblings = null; /** * Array of child-categories * * @var CategoryNode[]|null */ protected $_children = null; /** * Parent category of the current one * * @var CategoryNode|null */ protected $_parent = null; /** * The category that applies. * * @var object */ protected $_category = null; /** * The list of other contact categories. * * @var array */ protected $_categories = null; /** * Constructor. * * @param array $config An optional associative array of configuration settings. * * @since 1.6 */ public function __construct($config = array()) { if (empty($config['filter_fields'])) { $config['filter_fields'] = array( 'id', 'a.id', 'name', 'a.name', 'con_position', 'a.con_position', 'suburb', 'a.suburb', 'state', 'a.state', 'country', 'a.country', 'ordering', 'a.ordering', 'sortname', 'sortname1', 'a.sortname1', 'sortname2', 'a.sortname2', 'sortname3', 'a.sortname3', 'featuredordering', 'a.featured' ); } parent::__construct($config); } /** * Method to get a list of items. * * @return mixed An array of objects on success, false on failure. */ public function getItems() { // Invoke the parent getItems method to get the main list $items = parent::getItems(); if ($items === false) { return false; } // Convert the params field into an object, saving original in _params for ($i = 0, $n = count($items); $i < $n; $i++) { $item = &$items[$i]; if (!isset($this->_params)) { $item->params = new Registry($item->params); } // Some contexts may not use tags data at all, so we allow callers to disable loading tag data if ($this->getState('load_tags', true)) { $this->tags = new TagsHelper; $this->tags->getItemTags('com_contact.contact', $item->id); } } return $items; } /** * Method to build an SQL query to load the list data. * * @return string An SQL query * * @since 1.6 */ protected function getListQuery() { $user = Factory::getUser(); $groups = $user->getAuthorisedViewLevels(); // Create a new query object. $db = $this->getDbo(); $query = $db->getQuery(true); $query->select($this->getState('list.select', 'a.*')) ->select($this->getSlugColumn($query, 'a.id', 'a.alias') . ' AS slug') ->select($this->getSlugColumn($query, 'c.id', 'c.alias') . ' AS catslug') /** * TODO: we actually should be doing it but it's wrong this way * . ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(\':\', a.id, a.alias) ELSE a.id END as slug, ' * . ' CASE WHEN CHAR_LENGTH(c.alias) THEN CONCAT_WS(\':\', c.id, c.alias) ELSE c.id END AS catslug '); */ ->from($db->quoteName('#__contact_details', 'a')) ->leftJoin($db->quoteName('#__categories', 'c') . ' ON c.id = a.catid') ->whereIn($db->quoteName('a.access'), $groups); // Filter by category. if ($categoryId = $this->getState('category.id')) { $query->where($db->quoteName('a.catid') . ' = :acatid') ->whereIn($db->quoteName('c.access'), $groups); $query->bind(':acatid', $categoryId, ParameterType::INTEGER); } // Join over the users for the author and modified_by names. $query->select("CASE WHEN a.created_by_alias > ' ' THEN a.created_by_alias ELSE ua.name END AS author") ->select('ua.email AS author_email') ->leftJoin($db->quoteName('#__users', 'ua') . ' ON ua.id = a.created_by') ->leftJoin($db->quoteName('#__users', 'uam') . ' ON uam.id = a.modified_by'); // Filter by state $state = $this->getState('filter.published'); if (is_numeric($state)) { $query->where($db->quoteName('a.published') . ' = :published'); $query->bind(':published', $state, ParameterType::INTEGER); } else { $query->whereIn($db->quoteName('c.published'), [0,1,2]); } // Filter by start and end dates. $nowDate = Factory::getDate()->toSql(); if ($this->getState('filter.publish_date')) { $query->where('(' . $db->quoteName('a.publish_up') . ' IS NULL OR ' . $db->quoteName('a.publish_up') . ' <= :publish_up)' ) ->where('(' . $db->quoteName('a.publish_down') . ' IS NULL OR ' . $db->quoteName('a.publish_down') . ' >= :publish_down)' ) ->bind(':publish_up', $nowDate) ->bind(':publish_down', $nowDate); } // Filter by search in title $search = $this->getState('list.filter'); if (!empty($search)) { $search = '%' . trim($search) . '%'; $query->where($db->quoteName('a.name') . ' LIKE :name '); $query->bind(':name', $search); } // Filter on the language. if ($this->getState('filter.language')) { $query->whereIn($db->quoteName('a.language'), [Factory::getLanguage()->getTag(), '*'], ParameterType::STRING); } // Set sortname ordering if selected if ($this->getState('list.ordering') === 'sortname') { $query->order($db->escape('a.sortname1') . ' ' . $db->escape($this->getState('list.direction', 'ASC'))) ->order($db->escape('a.sortname2') . ' ' . $db->escape($this->getState('list.direction', 'ASC'))) ->order($db->escape('a.sortname3') . ' ' . $db->escape($this->getState('list.direction', 'ASC'))); } elseif ($this->getState('list.ordering') === 'featuredordering') { $query->order($db->escape('a.featured') . ' DESC') ->order($db->escape('a.ordering') . ' ASC'); } else { $query->order($db->escape($this->getState('list.ordering', 'a.ordering')) . ' ' . $db->escape($this->getState('list.direction', 'ASC'))); } return $query; } /** * Method to auto-populate the model state. * * Note. Calling getState in this method will result in recursion. * * @param string $ordering An optional ordering field. * @param string $direction An optional direction (asc|desc). * * @return void * * @since 1.6 */ protected function populateState($ordering = null, $direction = null) { $app = Factory::getApplication(); $params = ComponentHelper::getParams('com_contact'); // Get list ordering default from the parameters if ($menu = $app->getMenu()->getActive()) { $menuParams = $menu->getParams(); } else { $menuParams = new Registry; } $mergedParams = clone $params; $mergedParams->merge($menuParams); // List state information $format = $app->input->getWord('format'); if ($format === 'feed') { $limit = $app->get('feed_limit'); } else { $limit = $app->getUserStateFromRequest( 'com_contact.category.list', 'limit', $mergedParams->get('contacts_display_num', $app->get('list_limit')), 'uint' ); } $this->setState('list.limit', $limit); $limitstart = $app->input->get('limitstart', 0, 'uint'); $this->setState('list.start', $limitstart); // Optional filter text $itemid = $app->input->get('Itemid', 0, 'int'); $search = $app->getUserStateFromRequest('com_contact.category.list.' . $itemid . '.filter-search', 'filter-search', '', 'string'); $this->setState('list.filter', $search); $orderCol = $app->input->get('filter_order', $mergedParams->get('initial_sort', 'ordering')); if (!in_array($orderCol, $this->filter_fields)) { $orderCol = 'ordering'; } $this->setState('list.ordering', $orderCol); $listOrder = $app->input->get('filter_order_Dir', 'ASC'); if (!in_array(strtoupper($listOrder), array('ASC', 'DESC', ''))) { $listOrder = 'ASC'; } $this->setState('list.direction', $listOrder); $id = $app->input->get('id', 0, 'int'); $this->setState('category.id', $id); $user = Factory::getUser(); if ((!$user->authorise('core.edit.state', 'com_contact')) && (!$user->authorise('core.edit', 'com_contact'))) { // Limit to published for people who can't edit or edit.state. $this->setState('filter.published', 1); // Filter by start and end dates. $this->setState('filter.publish_date', true); } $this->setState('filter.language', Multilanguage::isEnabled()); // Load the parameters. $this->setState('params', $params); } /** * Method to get category data for the current category * * @return object The category object * * @since 1.5 */ public function getCategory() { if (!is_object($this->_item)) { $app = Factory::getApplication(); $menu = $app->getMenu(); $active = $menu->getActive(); if ($active) { $params = $active->getParams(); } else { $params = new Registry; } $options = array(); $options['countItems'] = $params->get('show_cat_items', 1) || $params->get('show_empty_categories', 0); $categories = Categories::getInstance('Contact', $options); $this->_item = $categories->get($this->getState('category.id', 'root')); if (is_object($this->_item)) { $this->_children = $this->_item->getChildren(); $this->_parent = false; if ($this->_item->getParent()) { $this->_parent = $this->_item->getParent(); } $this->_rightsibling = $this->_item->getSibling(); $this->_leftsibling = $this->_item->getSibling(false); } else { $this->_children = false; $this->_parent = false; } } return $this->_item; } /** * Get the parent category. * * @return mixed An array of categories or false if an error occurs. */ public function getParent() { if (!is_object($this->_item)) { $this->getCategory(); } return $this->_parent; } /** * Get the sibling (adjacent) categories. * * @return mixed An array of categories or false if an error occurs. */ public function &getLeftSibling() { if (!is_object($this->_item)) { $this->getCategory(); } return $this->_leftsibling; } /** * Get the sibling (adjacent) categories. * * @return mixed An array of categories or false if an error occurs. */ public function &getRightSibling() { if (!is_object($this->_item)) { $this->getCategory(); } return $this->_rightsibling; } /** * Get the child categories. * * @return mixed An array of categories or false if an error occurs. */ public function &getChildren() { if (!is_object($this->_item)) { $this->getCategory(); } return $this->_children; } /** * Generate column expression for slug or catslug. * * @param \JDatabaseQuery $query Current query instance. * @param string $id Column id name. * @param string $alias Column alias name. * * @return string * * @since 4.0.0 */ private function getSlugColumn($query, $id, $alias) { return 'CASE WHEN ' . $query->charLength($alias, '!=', '0') . ' THEN ' . $query->concatenate(array($query->castAsChar($id), $alias), ':') . ' ELSE ' . $query->castAsChar($id) . ' END'; } /** * Increment the hit counter for the category. * * @param integer $pk Optional primary key of the category to increment. * * @return boolean True if successful; false otherwise and internal error set. * * @since 3.2 */ public function hit($pk = 0) { $input = Factory::getApplication()->input; $hitcount = $input->getInt('hitcount', 1); if ($hitcount) { $pk = (!empty($pk)) ? $pk : (int) $this->getState('category.id'); $table = Table::getInstance('Category'); $table->hit($pk); } return true; } } src/Model/CategoriesModel.php 0000604 00000007131 15075137464 0012164 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2008 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Component\Contact\Site\Model; \defined('_JEXEC') or die; use Joomla\CMS\Categories\Categories; use Joomla\CMS\Categories\CategoryNode; use Joomla\CMS\Factory; use Joomla\CMS\MVC\Model\ListModel; use Joomla\Registry\Registry; /** * This models supports retrieving lists of contact categories. * * @since 1.6 */ class CategoriesModel extends ListModel { /** * Model context string. * * @var string */ public $_context = 'com_contact.categories'; /** * The category context (allows other extensions to derived from this model). * * @var string */ protected $_extension = 'com_contact'; /** * Parent category of the current one * * @var CategoryNode|null */ private $_parent = null; /** * Array of child-categories * * @var CategoryNode[]|null */ private $_items = null; /** * Method to auto-populate the model state. * * Note. Calling getState in this method will result in recursion. * * @param string $ordering An optional ordering field. * @param string $direction An optional direction (asc|desc). * * @return void * * @since 1.6 */ protected function populateState($ordering = null, $direction = null) { $app = Factory::getApplication(); $this->setState('filter.extension', $this->_extension); // Get the parent id if defined. $parentId = $app->input->getInt('id'); $this->setState('filter.parentId', $parentId); $params = $app->getParams(); $this->setState('params', $params); $this->setState('filter.published', 1); $this->setState('filter.access', true); } /** * Method to get a store id based on model configuration state. * * This is necessary because the model is used by the component and * different modules that might need different sets of data or different * ordering requirements. * * @param string $id A prefix for the store id. * * @return string A store id. */ protected function getStoreId($id = '') { // Compile the store id. $id .= ':' . $this->getState('filter.extension'); $id .= ':' . $this->getState('filter.published'); $id .= ':' . $this->getState('filter.access'); $id .= ':' . $this->getState('filter.parentId'); return parent::getStoreId($id); } /** * Redefine the function and add some properties to make the styling easier * * @return mixed An array of data items on success, false on failure. */ public function getItems() { if ($this->_items === null) { $app = Factory::getApplication(); $menu = $app->getMenu(); $active = $menu->getActive(); if ($active) { $params = $active->getParams(); } else { $params = new Registry; } $options = array(); $options['countItems'] = $params->get('show_cat_items_cat', 1) || !$params->get('show_empty_categories_cat', 0); $categories = Categories::getInstance('Contact', $options); $this->_parent = $categories->get($this->getState('filter.parentId', 'root')); if (is_object($this->_parent)) { $this->_items = $this->_parent->getChildren(); } else { $this->_items = false; } } return $this->_items; } /** * Gets the id of the parent category for the selected list of categories * * @return integer The id of the parent category * * @since 1.6.0 */ public function getParent() { if (!is_object($this->_parent)) { $this->getItems(); } return $this->_parent; } } src/Model/ContactModel.php 0000604 00000033002 15075137464 0011466 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2006 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Component\Contact\Site\Model; \defined('_JEXEC') or die; use Joomla\CMS\Application\SiteApplication; use Joomla\CMS\Component\ComponentHelper; use Joomla\CMS\Factory; use Joomla\CMS\Form\Form; use Joomla\CMS\Helper\TagsHelper; use Joomla\CMS\Language\Multilanguage; use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\Model\FormModel; use Joomla\CMS\Plugin\PluginHelper; use Joomla\Database\ParameterType; use Joomla\Database\QueryInterface; use Joomla\Registry\Registry; /** * Single item model for a contact * * @package Joomla.Site * @subpackage com_contact * @since 1.5 */ class ContactModel extends FormModel { /** * The name of the view for a single item * * @var string * @since 1.6 */ protected $view_item = 'contact'; /** * A loaded item * * @var \stdClass * @since 1.6 */ protected $_item = null; /** * Model context string. * * @var string */ protected $_context = 'com_contact.contact'; /** * Method to auto-populate the model state. * * Note. Calling getState in this method will result in recursion. * * @return void * * @since 1.6 */ protected function populateState() { /** @var SiteApplication $app */ $app = Factory::getContainer()->get(SiteApplication::class); if (Factory::getApplication()->isClient('api')) { // TODO: remove this $app->loadLanguage(); $this->setState('contact.id', Factory::getApplication()->input->post->getInt('id')); } else { $this->setState('contact.id', $app->input->getInt('id')); } $this->setState('params', $app->getParams()); $user = Factory::getUser(); if ((!$user->authorise('core.edit.state', 'com_contact')) && (!$user->authorise('core.edit', 'com_contact'))) { $this->setState('filter.published', 1); $this->setState('filter.archived', 2); } } /** * Method to get the contact form. * The base form is loaded from XML and then an event is fired * * @param array $data An optional array of data for the form to interrogate. * @param boolean $loadData True if the form is to load its own data (default case), false if not. * * @return Form A Form object on success, false on failure * * @since 1.6 */ public function getForm($data = array(), $loadData = true) { $form = $this->loadForm('com_contact.contact', 'contact', array('control' => 'jform', 'load_data' => true)); if (empty($form)) { return false; } $temp = clone $this->getState('params'); $contact = $this->_item[$this->getState('contact.id')]; $active = Factory::getContainer()->get(SiteApplication::class)->getMenu()->getActive(); if ($active) { // If the current view is the active item and a contact view for this contact, then the menu item params take priority if (strpos($active->link, 'view=contact') && strpos($active->link, '&id=' . (int) $contact->id)) { // $contact->params are the contact params, $temp are the menu item params // Merge so that the menu item params take priority $contact->params->merge($temp); } else { // Current view is not a single contact, so the contact params take priority here // Merge the menu item params with the contact params so that the contact params take priority $temp->merge($contact->params); $contact->params = $temp; } } else { // Merge so that contact params take priority $temp->merge($contact->params); $contact->params = $temp; } if (!$contact->params->get('show_email_copy', 0)) { $form->removeField('contact_email_copy'); } return $form; } /** * Method to get the data that should be injected in the form. * * @return array The default data is an empty array. * * @since 1.6.2 */ protected function loadFormData() { $data = (array) Factory::getApplication()->getUserState('com_contact.contact.data', array()); if (empty($data['language']) && Multilanguage::isEnabled()) { $data['language'] = Factory::getLanguage()->getTag(); } // Add contact id to contact form data, so fields plugin can work properly if (empty($data['catid'])) { $data['catid'] = $this->getItem()->catid; } $this->preprocessData('com_contact.contact', $data); return $data; } /** * Gets a contact * * @param integer $pk Id for the contact * * @return mixed Object or null * * @since 1.6.0 */ public function getItem($pk = null) { $pk = $pk ?: (int) $this->getState('contact.id'); if ($this->_item === null) { $this->_item = array(); } if (!isset($this->_item[$pk])) { try { $db = $this->getDbo(); $query = $db->getQuery(true); $query->select($this->getState('item.select', 'a.*')) ->select($this->getSlugColumn($query, 'a.id', 'a.alias') . ' AS slug') ->select($this->getSlugColumn($query, 'c.id', 'c.alias') . ' AS catslug') ->from($db->quoteName('#__contact_details', 'a')) // Join on category table. ->select('c.title AS category_title, c.alias AS category_alias, c.access AS category_access') ->leftJoin($db->quoteName('#__categories', 'c'), 'c.id = a.catid') // Join over the categories to get parent category titles ->select('parent.title AS parent_title, parent.id AS parent_id, parent.path AS parent_route, parent.alias AS parent_alias') ->leftJoin($db->quoteName('#__categories', 'parent'), 'parent.id = c.parent_id') ->where($db->quoteName('a.id') . ' = :id') ->bind(':id', $pk, ParameterType::INTEGER); // Filter by start and end dates. $nowDate = Factory::getDate()->toSql(); // Filter by published state. $published = $this->getState('filter.published'); $archived = $this->getState('filter.archived'); if (is_numeric($published)) { $queryString = $db->quoteName('a.published') . ' = :published'; if ($archived !== null) { $queryString = '(' . $queryString . ' OR ' . $db->quoteName('a.published') . ' = :archived)'; $query->bind(':archived', $archived, ParameterType::INTEGER); } $query->where($queryString) ->where('(' . $db->quoteName('a.publish_up') . ' IS NULL OR ' . $db->quoteName('a.publish_up') . ' <= :publish_up)') ->where('(' . $db->quoteName('a.publish_down') . ' IS NULL OR ' . $db->quoteName('a.publish_down') . ' >= :publish_down)') ->bind(':published', $published, ParameterType::INTEGER) ->bind(':publish_up', $nowDate) ->bind(':publish_down', $nowDate); } $db->setQuery($query); $data = $db->loadObject(); if (empty($data)) { throw new \Exception(Text::_('COM_CONTACT_ERROR_CONTACT_NOT_FOUND'), 404); } // Check for published state if filter set. if ((is_numeric($published) || is_numeric($archived)) && (($data->published != $published) && ($data->published != $archived))) { throw new \Exception(Text::_('COM_CONTACT_ERROR_CONTACT_NOT_FOUND'), 404); } /** * In case some entity params have been set to "use global", those are * represented as an empty string and must be "overridden" by merging * the component and / or menu params here. */ $registry = new Registry($data->params); $data->params = clone $this->getState('params'); $data->params->merge($registry); $registry = new Registry($data->metadata); $data->metadata = $registry; // Some contexts may not use tags data at all, so we allow callers to disable loading tag data if ($this->getState('load_tags', true)) { $data->tags = new TagsHelper; $data->tags->getItemTags('com_contact.contact', $data->id); } // Compute access permissions. if (($access = $this->getState('filter.access'))) { // If the access filter has been set, we already know this user can view. $data->params->set('access-view', true); } else { // If no access filter is set, the layout takes some responsibility for display of limited information. $user = Factory::getUser(); $groups = $user->getAuthorisedViewLevels(); if ($data->catid == 0 || $data->category_access === null) { $data->params->set('access-view', in_array($data->access, $groups)); } else { $data->params->set('access-view', in_array($data->access, $groups) && in_array($data->category_access, $groups)); } } $this->_item[$pk] = $data; } catch (\Exception $e) { if ($e->getCode() == 404) { // Need to go through the error handler to allow Redirect to work. throw $e; } else { $this->setError($e); $this->_item[$pk] = false; } } } if ($this->_item[$pk]) { $this->buildContactExtendedData($this->_item[$pk]); } return $this->_item[$pk]; } /** * Load extended data (profile, articles) for a contact * * @param object $contact The contact object * * @return void */ protected function buildContactExtendedData($contact) { $db = $this->getDbo(); $nowDate = Factory::getDate()->toSql(); $user = Factory::getUser(); $groups = $user->getAuthorisedViewLevels(); $published = $this->getState('filter.published'); $query = $db->getQuery(true); // If we are showing a contact list, then the contact parameters take priority // So merge the contact parameters with the merged parameters if ($this->getState('params')->get('show_contact_list')) { $this->getState('params')->merge($contact->params); } // Get the com_content articles by the linked user if ((int) $contact->user_id && $this->getState('params')->get('show_articles')) { $query->select('a.id') ->select('a.title') ->select('a.state') ->select('a.access') ->select('a.catid') ->select('a.created') ->select('a.language') ->select('a.publish_up') ->select('a.introtext') ->select('a.images') ->select($this->getSlugColumn($query, 'a.id', 'a.alias') . ' AS slug') ->select($this->getSlugColumn($query, 'c.id', 'c.alias') . ' AS catslug') ->from($db->quoteName('#__content', 'a')) ->leftJoin($db->quoteName('#__categories', 'c') . ' ON a.catid = c.id') ->where($db->quoteName('a.created_by') . ' = :created_by') ->whereIn($db->quoteName('a.access'), $groups) ->bind(':created_by', $contact->user_id, ParameterType::INTEGER) ->order('a.publish_up DESC'); // Filter per language if plugin published if (Multilanguage::isEnabled()) { $language = [Factory::getLanguage()->getTag(), $db->quote('*')]; $query->whereIn($db->quoteName('a.language'), $language, ParameterType::STRING); } if (is_numeric($published)) { $query->where('a.state IN (1,2)') ->where('(' . $db->quoteName('a.publish_up') . ' IS NULL' . ' OR ' . $db->quoteName('a.publish_up') . ' <= :now1)' ) ->where('(' . $db->quoteName('a.publish_down') . ' IS NULL' . ' OR ' . $db->quoteName('a.publish_down') . ' >= :now2)' ) ->bind([':now1', ':now2'], $nowDate); } // Number of articles to display from config/menu params $articles_display_num = $this->getState('params')->get('articles_display_num', 10); // Use contact setting? if ($articles_display_num === 'use_contact') { $articles_display_num = $contact->params->get('articles_display_num', 10); // Use global? if ((string) $articles_display_num === '') { $articles_display_num = ComponentHelper::getParams('com_contact')->get('articles_display_num', 10); } } $query->setLimit((int) $articles_display_num); $db->setQuery($query); $contact->articles = $db->loadObjectList(); } else { $contact->articles = null; } // Get the profile information for the linked user $userModel = $this->bootComponent('com_users')->getMVCFactory() ->createModel('User', 'Administrator', ['ignore_request' => true]); $data = $userModel->getItem((int) $contact->user_id); PluginHelper::importPlugin('user'); // Get the form. Form::addFormPath(JPATH_SITE . '/components/com_users/forms'); $form = Form::getInstance('com_users.profile', 'profile'); // Trigger the form preparation event. Factory::getApplication()->triggerEvent('onContentPrepareForm', array($form, $data)); // Trigger the data preparation event. Factory::getApplication()->triggerEvent('onContentPrepareData', array('com_users.profile', $data)); // Load the data into the form after the plugins have operated. $form->bind($data); $contact->profile = $form; } /** * Generate column expression for slug or catslug. * * @param QueryInterface $query Current query instance. * @param string $id Column id name. * @param string $alias Column alias name. * * @return string * * @since 4.0.0 */ private function getSlugColumn($query, $id, $alias) { return 'CASE WHEN ' . $query->charLength($alias, '!=', '0') . ' THEN ' . $query->concatenate(array($query->castAsChar($id), $alias), ':') . ' ELSE ' . $query->castAsChar($id) . ' END'; } /** * Increment the hit counter for the contact. * * @param integer $pk Optional primary key of the contact to increment. * * @return boolean True if successful; false otherwise and internal error set. * * @since 3.0 */ public function hit($pk = 0) { $input = Factory::getApplication()->input; $hitcount = $input->getInt('hitcount', 1); if ($hitcount) { $pk = $pk ?: (int) $this->getState('contact.id'); $table = $this->getTable('Contact'); $table->hit($pk); } return true; } } src/Model/FeaturedModel.php 0000604 00000013146 15075137464 0011641 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2010 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Component\Contact\Site\Model; \defined('_JEXEC') or die; use Joomla\CMS\Component\ComponentHelper; use Joomla\CMS\Factory; use Joomla\CMS\Language\Multilanguage; use Joomla\CMS\MVC\Model\ListModel; use Joomla\Database\ParameterType; use Joomla\Registry\Registry; /** * Featured contact model class. * * @since 1.6.0 */ class FeaturedModel extends ListModel { /** * Constructor. * * @param array $config An optional associative array of configuration settings. * * @since 1.6 */ public function __construct($config = array()) { if (empty($config['filter_fields'])) { $config['filter_fields'] = array( 'id', 'a.id', 'name', 'a.name', 'con_position', 'a.con_position', 'suburb', 'a.suburb', 'state', 'a.state', 'country', 'a.country', 'ordering', 'a.ordering', ); } parent::__construct($config); } /** * Method to get a list of items. * * @return mixed An array of objects on success, false on failure. */ public function getItems() { // Invoke the parent getItems method to get the main list $items = parent::getItems(); // Convert the params field into an object, saving original in _params for ($i = 0, $n = count($items); $i < $n; $i++) { $item = &$items[$i]; if (!isset($this->_params)) { $item->params = new Registry($item->params); } } return $items; } /** * Method to build an SQL query to load the list data. * * @return string An SQL query * * @since 1.6 */ protected function getListQuery() { $user = Factory::getUser(); $groups = $user->getAuthorisedViewLevels(); // Create a new query object. $db = $this->getDbo(); $query = $db->getQuery(true); // Select required fields from the categories. $query->select($this->getState('list.select', 'a.*')) ->from($db->quoteName('#__contact_details', 'a')) ->where($db->quoteName('a.featured') . ' = 1') ->whereIn($db->quoteName('a.access'), $groups) ->innerJoin($db->quoteName('#__categories', 'c') . ' ON c.id = a.catid') ->whereIn($db->quoteName('c.access'), $groups); // Filter by category. if ($categoryId = $this->getState('category.id')) { $query->where($db->quoteName('a.catid') . ' = :catid'); $query->bind(':catid', $categoryId, ParameterType::INTEGER); } $query->select('c.published as cat_published, c.published AS parents_published') ->where('c.published = 1'); // Filter by state $state = $this->getState('filter.published'); if (is_numeric($state)) { $query->where($db->quoteName('a.published') . ' = :published'); $query->bind(':published', $state, ParameterType::INTEGER); // Filter by start and end dates. $nowDate = Factory::getDate()->toSql(); $query->where('(' . $db->quoteName('a.publish_up') . ' IS NULL OR ' . $db->quoteName('a.publish_up') . ' <= :publish_up)' ) ->where('(' . $db->quoteName('a.publish_down') . ' IS NULL OR ' . $db->quoteName('a.publish_down') . ' >= :publish_down)' ) ->bind(':publish_up', $nowDate) ->bind(':publish_down', $nowDate); } // Filter by search in title $search = $this->getState('list.filter'); // Filter by search in title if (!empty($search)) { $search = '%' . trim($search) . '%'; $query->where($db->quoteName('a.name') . ' LIKE :name '); $query->bind(':name', $search); } // Filter by language if ($this->getState('filter.language')) { $query->whereIn($db->quoteName('a.language'), [Factory::getLanguage()->getTag(), '*'], ParameterType::STRING); } // Add the list ordering clause. $query->order($db->escape($this->getState('list.ordering', 'a.ordering')) . ' ' . $db->escape($this->getState('list.direction', 'ASC'))); return $query; } /** * Method to auto-populate the model state. * * Note. Calling getState in this method will result in recursion. * * @param string $ordering An optional ordering field. * @param string $direction An optional direction (asc|desc). * * @return void * * @since 1.6 */ protected function populateState($ordering = null, $direction = null) { $app = Factory::getApplication(); $params = ComponentHelper::getParams('com_contact'); // List state information $limit = $app->getUserStateFromRequest('global.list.limit', 'limit', $app->get('list_limit'), 'uint'); $this->setState('list.limit', $limit); $limitstart = $app->input->get('limitstart', 0, 'uint'); $this->setState('list.start', $limitstart); // Optional filter text $this->setState('list.filter', $app->input->getString('filter-search')); $orderCol = $app->input->get('filter_order', 'ordering'); if (!in_array($orderCol, $this->filter_fields)) { $orderCol = 'ordering'; } $this->setState('list.ordering', $orderCol); $listOrder = $app->input->get('filter_order_Dir', 'ASC'); if (!in_array(strtoupper($listOrder), array('ASC', 'DESC', ''))) { $listOrder = 'ASC'; } $this->setState('list.direction', $listOrder); $user = Factory::getUser(); if ((!$user->authorise('core.edit.state', 'com_contact')) && (!$user->authorise('core.edit', 'com_contact'))) { // Limit to published for people who can't edit or edit.state. $this->setState('filter.published', 1); // Filter by start and end dates. $this->setState('filter.publish_date', true); } $this->setState('filter.language', Multilanguage::isEnabled()); // Load the parameters. $this->setState('params', $params); } } src/Model/FormModel.php 0000604 00000013036 15075137464 0011003 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2020 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Component\Contact\Site\Model; \defined('_JEXEC') or die; use Exception; use Joomla\CMS\Factory; use Joomla\CMS\Form\Form; use Joomla\CMS\Helper\TagsHelper; use Joomla\CMS\Language\Associations; use Joomla\CMS\Language\Multilanguage; use Joomla\Registry\Registry; use Joomla\Utilities\ArrayHelper; /** * Contact Component Contact Model * * @since 4.0.0 */ class FormModel extends \Joomla\Component\Contact\Administrator\Model\ContactModel { /** * Model typeAlias string. Used for version history. * * @var string * @since 4.0.0 */ public $typeAlias = 'com_contact.contact'; /** * Name of the form * * @var string * @since 4.0.0 */ protected $formName = 'form'; /** * Method to get the row form. * * @param array $data Data for the form. * @param boolean $loadData True if the form is to load its own data (default case), false if not. * * @return \JForm|boolean A \JForm object on success, false on failure * * @since 4.0.0 */ public function getForm($data = array(), $loadData = true) { $form = parent::getForm($data, $loadData); // Prevent messing with article language and category when editing existing contact with associations if ($id = $this->getState('contact.id') && Associations::isEnabled()) { $associations = Associations::getAssociations('com_contact', '#__contact_details', 'com_contact.item', $id); // Make fields read only if (!empty($associations)) { $form->setFieldAttribute('language', 'readonly', 'true'); $form->setFieldAttribute('language', 'filter', 'unset'); } } return $form; } /** * Method to get contact data. * * @param integer $itemId The id of the contact. * * @return mixed Contact item data object on success, false on failure. * * @throws Exception * * @since 4.0.0 */ public function getItem($itemId = null) { $itemId = (int) (!empty($itemId)) ? $itemId : $this->getState('contact.id'); // Get a row instance. $table = $this->getTable(); // Attempt to load the row. try { if (!$table->load($itemId)) { return false; } } catch (Exception $e) { Factory::getApplication()->enqueueMessage($e->getMessage()); return false; } $properties = $table->getProperties(); $value = ArrayHelper::toObject($properties, 'JObject'); // Convert field to Registry. $value->params = new Registry($value->params); // Convert the metadata field to an array. $registry = new Registry($value->metadata); $value->metadata = $registry->toArray(); if ($itemId) { $value->tags = new TagsHelper; $value->tags->getTagIds($value->id, 'com_contact.contact'); $value->metadata['tags'] = $value->tags; } return $value; } /** * Get the return URL. * * @return string The return URL. * * @since 4.0.0 */ public function getReturnPage() { return base64_encode($this->getState('return_page')); } /** * Method to save the form data. * * @param array $data The form data. * * @return boolean True on success. * * @throws Exception * @since 4.0.0 */ public function save($data) { // Associations are not edited in frontend ATM so we have to inherit them if (Associations::isEnabled() && !empty($data['id']) && $associations = Associations::getAssociations('com_contact', '#__contact_details', 'com_contact.item', $data['id'])) { foreach ($associations as $tag => $associated) { $associations[$tag] = (int) $associated->id; } $data['associations'] = $associations; } return parent::save($data); } /** * Method to auto-populate the model state. * * Note. Calling getState in this method will result in recursion. * * @return void * * @throws Exception * * @since 4.0.0 */ protected function populateState() { $app = Factory::getApplication(); // Load state from the request. $pk = $app->input->getInt('id'); $this->setState('contact.id', $pk); $this->setState('contact.catid', $app->input->getInt('catid')); $return = $app->input->get('return', null, 'base64'); $this->setState('return_page', base64_decode($return)); // Load the parameters. $params = $app->getParams(); $this->setState('params', $params); $this->setState('layout', $app->input->getString('layout')); } /** * Allows preprocessing of the JForm object. * * @param Form $form The form object * @param array $data The data to be merged into the form object * @param string $group The plugin group to be executed * * @return void * * @since 4.0.0 */ protected function preprocessForm(Form $form, $data, $group = 'contact') { if (!Multilanguage::isEnabled()) { $form->setFieldAttribute('language', 'type', 'hidden'); $form->setFieldAttribute('language', 'default', '*'); } return parent::preprocessForm($form, $data, $group); } /** * Method to get a table object, load it if necessary. * * @param string $name The table name. Optional. * @param string $prefix The class prefix. Optional. * @param array $options Configuration array for model. Optional. * * @return Table A Table object * * @since 4.0.0 * @throws \Exception */ public function getTable($name = 'Contact', $prefix = 'Administrator', $options = array()) { return parent::getTable($name, $prefix, $options); } } src/Service/Category.php 0000604 00000001401 15075137464 0011225 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2009 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Component\Contact\Site\Service; \defined('_JEXEC') or die; use Joomla\CMS\Categories\Categories; /** * Contact Component Category Tree * * @since 1.6 */ class Category extends Categories { /** * Class constructor * * @param array $options Array of options * * @since 1.6 */ public function __construct($options = array()) { $options['table'] = '#__contact_details'; $options['extension'] = 'com_contact'; $options['statefield'] = 'published'; parent::__construct($options); } } src/Service/Router.php 0000604 00000016426 15075137464 0010745 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2007 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Component\Contact\Site\Service; \defined('_JEXEC') or die; use Joomla\CMS\Application\SiteApplication; use Joomla\CMS\Categories\CategoryFactoryInterface; use Joomla\CMS\Categories\CategoryInterface; use Joomla\CMS\Component\ComponentHelper; use Joomla\CMS\Component\Router\RouterView; use Joomla\CMS\Component\Router\RouterViewConfiguration; use Joomla\CMS\Component\Router\Rules\MenuRules; use Joomla\CMS\Component\Router\Rules\NomenuRules; use Joomla\CMS\Component\Router\Rules\StandardRules; use Joomla\CMS\Menu\AbstractMenu; use Joomla\Database\DatabaseInterface; use Joomla\Database\ParameterType; /** * Routing class from com_contact * * @since 3.3 */ class Router extends RouterView { /** * Flag to remove IDs * * @var boolean */ protected $noIDs = false; /** * The category factory * * @var CategoryFactoryInterface * * @since 4.0.0 */ private $categoryFactory; /** * The category cache * * @var array * * @since 4.0.0 */ private $categoryCache = []; /** * The db * * @var DatabaseInterface * * @since 4.0.0 */ private $db; /** * Content Component router constructor * * @param SiteApplication $app The application object * @param AbstractMenu $menu The menu object to work with * @param CategoryFactoryInterface $categoryFactory The category object * @param DatabaseInterface $db The database object */ public function __construct(SiteApplication $app, AbstractMenu $menu, CategoryFactoryInterface $categoryFactory, DatabaseInterface $db) { $this->categoryFactory = $categoryFactory; $this->db = $db; $params = ComponentHelper::getParams('com_contact'); $this->noIDs = (bool) $params->get('sef_ids'); $categories = new RouterViewConfiguration('categories'); $categories->setKey('id'); $this->registerView($categories); $category = new RouterViewConfiguration('category'); $category->setKey('id')->setParent($categories, 'catid')->setNestable(); $this->registerView($category); $contact = new RouterViewConfiguration('contact'); $contact->setKey('id')->setParent($category, 'catid'); $this->registerView($contact); $this->registerView(new RouterViewConfiguration('featured')); $form = new RouterViewConfiguration('form'); $form->setKey('id'); $this->registerView($form); parent::__construct($app, $menu); $this->attachRule(new MenuRules($this)); $this->attachRule(new StandardRules($this)); $this->attachRule(new NomenuRules($this)); } /** * Method to get the segment(s) for a category * * @param string $id ID of the category to retrieve the segments for * @param array $query The request that is built right now * * @return array|string The segments of this item */ public function getCategorySegment($id, $query) { $category = $this->getCategories()->get($id); if ($category) { $path = array_reverse($category->getPath(), true); $path[0] = '1:root'; if ($this->noIDs) { foreach ($path as &$segment) { list($id, $segment) = explode(':', $segment, 2); } } return $path; } return array(); } /** * Method to get the segment(s) for a category * * @param string $id ID of the category to retrieve the segments for * @param array $query The request that is built right now * * @return array|string The segments of this item */ public function getCategoriesSegment($id, $query) { return $this->getCategorySegment($id, $query); } /** * Method to get the segment(s) for a contact * * @param string $id ID of the contact to retrieve the segments for * @param array $query The request that is built right now * * @return array|string The segments of this item */ public function getContactSegment($id, $query) { if (!strpos($id, ':')) { $id = (int) $id; $dbquery = $this->db->getQuery(true); $dbquery->select($this->db->quoteName('alias')) ->from($this->db->quoteName('#__contact_details')) ->where($this->db->quoteName('id') . ' = :id') ->bind(':id', $id, ParameterType::INTEGER); $this->db->setQuery($dbquery); $id .= ':' . $this->db->loadResult(); } if ($this->noIDs) { list($void, $segment) = explode(':', $id, 2); return array($void => $segment); } return array((int) $id => $id); } /** * Method to get the segment(s) for a form * * @param string $id ID of the contact form to retrieve the segments for * @param array $query The request that is built right now * * @return array|string The segments of this item * * @since 4.0.0 */ public function getFormSegment($id, $query) { return $this->getContactSegment($id, $query); } /** * Method to get the id for a category * * @param string $segment Segment to retrieve the ID for * @param array $query The request that is parsed right now * * @return mixed The id of this item or false */ public function getCategoryId($segment, $query) { if (isset($query['id'])) { $category = $this->getCategories(['access' => false])->get($query['id']); if ($category) { foreach ($category->getChildren() as $child) { if ($this->noIDs) { if ($child->alias == $segment) { return $child->id; } } else { if ($child->id == (int) $segment) { return $child->id; } } } } } return false; } /** * Method to get the segment(s) for a category * * @param string $segment Segment to retrieve the ID for * @param array $query The request that is parsed right now * * @return mixed The id of this item or false */ public function getCategoriesId($segment, $query) { return $this->getCategoryId($segment, $query); } /** * Method to get the segment(s) for a contact * * @param string $segment Segment of the contact to retrieve the ID for * @param array $query The request that is parsed right now * * @return mixed The id of this item or false */ public function getContactId($segment, $query) { if ($this->noIDs) { $dbquery = $this->db->getQuery(true); $dbquery->select($this->db->quoteName('id')) ->from($this->db->quoteName('#__contact_details')) ->where( [ $this->db->quoteName('alias') . ' = :alias', $this->db->quoteName('catid') . ' = :catid', ] ) ->bind(':alias', $segment) ->bind(':catid', $query['id'], ParameterType::INTEGER); $this->db->setQuery($dbquery); return (int) $this->db->loadResult(); } return (int) $segment; } /** * Method to get categories from cache * * @param array $options The options for retrieving categories * * @return CategoryInterface The object containing categories * * @since 4.0.0 */ private function getCategories(array $options = []): CategoryInterface { $key = serialize($options); if (!isset($this->categoryCache[$key])) { $this->categoryCache[$key] = $this->categoryFactory->createCategory($options); } return $this->categoryCache[$key]; } } src/Helper/AssociationHelper.php 0000604 00000003017 15075137464 0012710 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2013 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Component\Contact\Site\Helper; \defined('_JEXEC') or die; use Joomla\CMS\Factory; use Joomla\CMS\Language\Associations; use Joomla\Component\Categories\Administrator\Helper\CategoryAssociationHelper; /** * Contact Component Association Helper * * @since 3.0 */ abstract class AssociationHelper extends CategoryAssociationHelper { /** * Method to get the associations for a given item * * @param integer $id Id of the item * @param string $view Name of the view * * @return array Array of associations for the item * * @since 3.0 */ public static function getAssociations($id = 0, $view = null) { $jinput = Factory::getApplication()->input; $view = $view ?? $jinput->get('view'); $id = empty($id) ? $jinput->getInt('id') : $id; if ($view === 'contact') { if ($id) { $associations = Associations::getAssociations('com_contact', '#__contact_details', 'com_contact.item', $id); $return = array(); foreach ($associations as $tag => $item) { $return[$tag] = RouteHelper::getContactRoute($item->id, (int) $item->catid, $item->language); } return $return; } } if ($view === 'category' || $view === 'categories') { return self::getCategoryAssociations($id, 'com_contact'); } return array(); } } src/Helper/RouteHelper.php 0000604 00000004021 15075137464 0011526 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2017 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Component\Contact\Site\Helper; \defined('_JEXEC') or die; use Joomla\CMS\Categories\CategoryNode; use Joomla\CMS\Language\Multilanguage; /** * Contact Component Route Helper * * @static * @package Joomla.Site * @subpackage com_contact * @since 1.5 */ abstract class RouteHelper { /** * Get the URL route for a contact from a contact ID, contact category ID and language * * @param integer $id The id of the contact * @param integer $catid The id of the contact's category * @param mixed $language The id of the language being used. * * @return string The link to the contact * * @since 1.5 */ public static function getContactRoute($id, $catid, $language = 0) { // Create the link $link = 'index.php?option=com_contact&view=contact&id=' . $id; if ($catid > 1) { $link .= '&catid=' . $catid; } if ($language && $language !== '*' && Multilanguage::isEnabled()) { $link .= '&lang=' . $language; } return $link; } /** * Get the URL route for a contact category from a contact category ID and language * * @param mixed $catid The id of the contact's category either an integer id or an instance of CategoryNode * @param mixed $language The id of the language being used. * * @return string The link to the contact * * @since 1.5 */ public static function getCategoryRoute($catid, $language = 0) { if ($catid instanceof CategoryNode) { $id = $catid->id; } else { $id = (int) $catid; } if ($id < 1) { $link = ''; } else { // Create the link $link = 'index.php?option=com_contact&view=category&id=' . $id; if ($language && $language !== '*' && Multilanguage::isEnabled()) { $link .= '&lang=' . $language; } } return $link; } } src/Controller/ContactController.php 0000604 00000027407 15075137464 0013650 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2010 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Component\Contact\Site\Controller; \defined('_JEXEC') or die; use Joomla\CMS\Factory; use Joomla\CMS\Language\Text; use Joomla\CMS\Log\Log; use Joomla\CMS\Mail\Exception\MailDisabledException; use Joomla\CMS\Mail\MailTemplate; use Joomla\CMS\MVC\Controller\FormController; use Joomla\CMS\Plugin\PluginHelper; use Joomla\CMS\Router\Route; use Joomla\CMS\String\PunycodeHelper; use Joomla\CMS\Uri\Uri; use Joomla\CMS\User\User; use Joomla\CMS\Versioning\VersionableControllerTrait; use Joomla\Component\Fields\Administrator\Helper\FieldsHelper; use Joomla\Utilities\ArrayHelper; use PHPMailer\PHPMailer\Exception as phpMailerException; /** * Controller for single contact view * * @since 1.5.19 */ class ContactController extends FormController { use VersionableControllerTrait; /** * The URL view item variable. * * @var string * @since 4.0.0 */ protected $view_item = 'form'; /** * The URL view list variable. * * @var string * @since 4.0.0 */ protected $view_list = 'categories'; /** * Method to get a model object, loading it if required. * * @param string $name The model name. Optional. * @param string $prefix The class prefix. Optional. * @param array $config Configuration array for model. Optional. * * @return \Joomla\CMS\MVC\Model\BaseDatabaseModel The model. * * @since 1.6.4 */ public function getModel($name = 'form', $prefix = '', $config = array('ignore_request' => true)) { return parent::getModel($name, $prefix, array('ignore_request' => false)); } /** * Method to submit the contact form and send an email. * * @return boolean True on success sending the email. False on failure. * * @since 1.5.19 */ public function submit() { // Check for request forgeries. $this->checkToken(); $app = Factory::getApplication(); $model = $this->getModel('contact'); $stub = $this->input->getString('id'); $id = (int) $stub; // Get the data from POST $data = $this->input->post->get('jform', array(), 'array'); // Get item $model->setState('filter.published', 1); $contact = $model->getItem($id); if ($contact === false) { $this->setMessage($model->getError(), 'error'); return false; } // Get item params, take menu parameters into account if necessary $active = $app->getMenu()->getActive(); $stateParams = clone $model->getState()->get('params'); // If the current view is the active item and a contact view for this contact, then the menu item params take priority if ($active && strpos($active->link, 'view=contact') && strpos($active->link, '&id=' . (int) $contact->id)) { // $item->params are the contact params, $temp are the menu item params // Merge so that the menu item params take priority $contact->params->merge($stateParams); } else { // Current view is not a single contact, so the contact params take priority here $stateParams->merge($contact->params); $contact->params = $stateParams; } // Check if the contact form is enabled if (!$contact->params->get('show_email_form')) { $this->setRedirect(Route::_('index.php?option=com_contact&view=contact&id=' . $stub . '&catid=' . $contact->catid, false)); return false; } // Check for a valid session cookie if ($contact->params->get('validate_session', 0)) { if (Factory::getSession()->getState() !== 'active') { $this->app->enqueueMessage(Text::_('JLIB_ENVIRONMENT_SESSION_INVALID'), 'warning'); // Save the data in the session. $this->app->setUserState('com_contact.contact.data', $data); // Redirect back to the contact form. $this->setRedirect(Route::_('index.php?option=com_contact&view=contact&id=' . $stub . '&catid=' . $contact->catid, false)); return false; } } // Contact plugins PluginHelper::importPlugin('contact'); // Validate the posted data. $form = $model->getForm(); if (!$form) { throw new \Exception($model->getError(), 500); } if (!$model->validate($form, $data)) { $errors = $model->getErrors(); foreach ($errors as $error) { $errorMessage = $error; if ($error instanceof \Exception) { $errorMessage = $error->getMessage(); } $app->enqueueMessage($errorMessage, 'error'); } $app->setUserState('com_contact.contact.data', $data); $this->setRedirect(Route::_('index.php?option=com_contact&view=contact&id=' . $stub . '&catid=' . $contact->catid, false)); return false; } // Validation succeeded, continue with custom handlers $results = $this->app->triggerEvent('onValidateContact', array(&$contact, &$data)); foreach ($results as $result) { if ($result instanceof \Exception) { return false; } } // Passed Validation: Process the contact plugins to integrate with other applications $this->app->triggerEvent('onSubmitContact', array(&$contact, &$data)); // Send the email $sent = false; if (!$contact->params->get('custom_reply')) { $sent = $this->_sendEmail($data, $contact, $contact->params->get('show_email_copy', 0)); } $msg = ''; // Set the success message if it was a success if ($sent) { $msg = Text::_('COM_CONTACT_EMAIL_THANKS'); } // Flush the data from the session $this->app->setUserState('com_contact.contact.data', null); // Redirect if it is set in the parameters, otherwise redirect back to where we came from if ($contact->params->get('redirect')) { $this->setRedirect($contact->params->get('redirect'), $msg); } else { $this->setRedirect(Route::_('index.php?option=com_contact&view=contact&id=' . $stub . '&catid=' . $contact->catid, false), $msg); } return true; } /** * Method to get a model object, loading it if required. * * @param array $data The data to send in the email. * @param \stdClass $contact The user information to send the email to * @param boolean $emailCopyToSender True to send a copy of the email to the user. * * @return boolean True on success sending the email, false on failure. * * @since 1.6.4 */ private function _sendEmail($data, $contact, $emailCopyToSender) { $app = $this->app; if ($contact->email_to == '' && $contact->user_id != 0) { $contact_user = User::getInstance($contact->user_id); $contact->email_to = $contact_user->get('email'); } $templateData = [ 'sitename' => $app->get('sitename'), 'name' => $data['contact_name'], 'contactname' => $contact->name, 'email' => PunycodeHelper::emailToPunycode($data['contact_email']), 'subject' => $data['contact_subject'], 'body' => stripslashes($data['contact_message']), 'url' => Uri::base(), 'customfields' => '' ]; // Load the custom fields if (!empty($data['com_fields']) && $fields = FieldsHelper::getFields('com_contact.mail', $contact, true, $data['com_fields'])) { $output = FieldsHelper::render( 'com_contact.mail', 'fields.render', array( 'context' => 'com_contact.mail', 'item' => $contact, 'fields' => $fields, ) ); if ($output) { $templateData['customfields'] = $output; } } try { $mailer = new MailTemplate('com_contact.mail', $app->getLanguage()->getTag()); $mailer->addRecipient($contact->email_to); $mailer->setReplyTo($templateData['email'], $templateData['name']); $mailer->addTemplateData($templateData); $sent = $mailer->send(); // If we are supposed to copy the sender, do so. if ($emailCopyToSender == true && !empty($data['contact_email_copy'])) { $mailer = new MailTemplate('com_contact.mail.copy', $app->getLanguage()->getTag()); $mailer->addRecipient($templateData['email']); $mailer->setReplyTo($templateData['email'], $templateData['name']); $mailer->addTemplateData($templateData); $sent = $mailer->send(); } } catch (MailDisabledException | phpMailerException $exception) { try { Log::add(Text::_($exception->getMessage()), Log::WARNING, 'jerror'); $sent = false; } catch (\RuntimeException $exception) { Factory::getApplication()->enqueueMessage(Text::_($exception->errorMessage()), 'warning'); $sent = false; } } return $sent; } /** * Method override to check if you can add a new record. * * @param array $data An array of input data. * * @return boolean * * @since 4.0.0 */ protected function allowAdd($data = array()) { if ($categoryId = ArrayHelper::getValue($data, 'catid', $this->input->getInt('catid'), 'int')) { $user = $this->app->getIdentity(); // If the category has been passed in the data or URL check it. return $user->authorise('core.create', 'com_contact.category.' . $categoryId); } // In the absence of better information, revert to the component permissions. return parent::allowAdd(); } /** * Method override to check if you can edit an existing record. * * @param array $data An array of input data. * @param string $key The name of the key for the primary key; default is id. * * @return boolean * * @since 4.0.0 */ protected function allowEdit($data = array(), $key = 'id') { $recordId = (int) isset($data[$key]) ? $data[$key] : 0; if (!$recordId) { return false; } // Need to do a lookup from the model. $record = $this->getModel()->getItem($recordId); $categoryId = (int) $record->catid; if ($categoryId) { $user = $this->app->getIdentity(); // The category has been set. Check the category permissions. if ($user->authorise('core.edit', $this->option . '.category.' . $categoryId)) { return true; } // Fallback on edit.own. if ($user->authorise('core.edit.own', $this->option . '.category.' . $categoryId)) { return ($record->created_by === $user->id); } return false; } // Since there is no asset tracking, revert to the component permissions. return parent::allowEdit($data, $key); } /** * Method to cancel an edit. * * @param string $key The name of the primary key of the URL variable. * * @return boolean True if access level checks pass, false otherwise. * * @since 4.0.0 */ public function cancel($key = null) { $result = parent::cancel($key); $this->setRedirect(Route::_($this->getReturnPage(), false)); return $result; } /** * Gets the URL arguments to append to an item redirect. * * @param integer $recordId The primary key id for the item. * @param string $urlVar The name of the URL variable for the id. * * @return string The arguments to append to the redirect URL. * * @since 4.0.0 */ protected function getRedirectToItemAppend($recordId = 0, $urlVar = 'id') { // Need to override the parent method completely. $tmpl = $this->input->get('tmpl'); $append = ''; // Setup redirect info. if ($tmpl) { $append .= '&tmpl=' . $tmpl; } $append .= '&layout=edit'; $append .= '&' . $urlVar . '=' . (int) $recordId; $itemId = $this->input->getInt('Itemid'); $return = $this->getReturnPage(); $catId = $this->input->getInt('catid'); if ($itemId) { $append .= '&Itemid=' . $itemId; } if ($catId) { $append .= '&catid=' . $catId; } if ($return) { $append .= '&return=' . base64_encode($return); } return $append; } /** * Get the return URL. * * If a "return" variable has been passed in the request * * @return string The return URL. * * @since 4.0.0 */ protected function getReturnPage() { $return = $this->input->get('return', null, 'base64'); if (empty($return) || !Uri::isInternal(base64_decode($return))) { return Uri::base(); } return base64_decode($return); } } src/Controller/DisplayController.php 0000604 00000005047 15075137464 0013656 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2006 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Component\Contact\Site\Controller; \defined('_JEXEC') or die; use Joomla\CMS\Factory; use Joomla\CMS\MVC\Controller\BaseController; use Joomla\CMS\MVC\Factory\MVCFactoryInterface; /** * Contact Component Controller * * @since 1.5 */ class DisplayController extends BaseController { /** * Constructor. * * @param array $config An optional associative array of configuration settings. * Recognized key values include 'name', 'default_task', 'model_path', and * 'view_path' (this list is not meant to be comprehensive). * @param MVCFactoryInterface $factory The factory. * @param CMSApplication $app The JApplication for the dispatcher * @param \JInput $input Input * * @since 3.0 */ public function __construct($config = array(), MVCFactoryInterface $factory = null, $app = null, $input = null) { // Contact frontpage Editor contacts proxying: $input = Factory::getApplication()->input; if ($input->get('view') === 'contacts' && $input->get('layout') === 'modal') { $config['base_path'] = JPATH_COMPONENT_ADMINISTRATOR; } parent::__construct($config, $factory, $app, $input); } /** * Method to display a view. * * @param boolean $cachable If true, the view output will be cached * @param array $urlparams An array of safe URL parameters and their variable types, for valid values see {@link \JFilterInput::clean()}. * * @return static This object to support chaining. * * @since 1.5 */ public function display($cachable = false, $urlparams = array()) { if (Factory::getApplication()->getUserState('com_contact.contact.data') === null) { $cachable = true; } // Set the default view name and format from the Request. $vName = $this->input->get('view', 'categories'); $this->input->set('view', $vName); if ($this->app->getIdentity()->get('id')) { $cachable = false; } $safeurlparams = array('catid' => 'INT', 'id' => 'INT', 'cid' => 'ARRAY', 'year' => 'INT', 'month' => 'INT', 'limit' => 'UINT', 'limitstart' => 'UINT', 'showall' => 'INT', 'return' => 'BASE64', 'filter' => 'STRING', 'filter_order' => 'CMD', 'filter_order_Dir' => 'CMD', 'filter-search' => 'STRING', 'print' => 'BOOLEAN', 'lang' => 'CMD'); parent::display($cachable, $safeurlparams); return $this; } } src/View/Categories/HtmlView.php 0000604 00000001334 15075137464 0012613 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2008 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Component\Contact\Site\View\Categories; \defined('_JEXEC') or die; use Joomla\CMS\MVC\View\CategoriesView; /** * Contact categories view. * * @since 1.6 */ class HtmlView extends CategoriesView { /** * Language key for default page heading * * @var string * @since 3.2 */ protected $pageHeading = 'COM_CONTACT_DEFAULT_PAGE_TITLE'; /** * @var string The name of the extension for the category * @since 3.2 */ protected $extension = 'com_contact'; } src/View/Category/FeedView.php 0000604 00000001752 15075137464 0012246 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2006 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Component\Contact\Site\View\Category; \defined('_JEXEC') or die; use Joomla\CMS\MVC\View\CategoryFeedView; /** * HTML View class for the Contact component * * @since 1.5 */ class FeedView extends CategoryFeedView { /** * @var string The name of the view to link individual items to * @since 3.2 */ protected $viewName = 'contact'; /** * Method to reconcile non standard names from components to usage in this class. * Typically overridden in the component feed view class. * * @param object $item The item for a feed, an element of the $items array. * * @return void * * @since 3.2 */ protected function reconcileNames($item) { parent::reconcileNames($item); $item->description = $item->address; } } src/View/Category/HtmlView.php 0000604 00000006216 15075137464 0012307 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2006 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Component\Contact\Site\View\Category; \defined('_JEXEC') or die; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Mail\MailHelper; use Joomla\CMS\MVC\View\CategoryView; use Joomla\Component\Contact\Site\Helper\RouteHelper; /** * HTML View class for the Contacts component * * @since 1.5 */ class HtmlView extends CategoryView { /** * @var string The name of the extension for the category * @since 3.2 */ protected $extension = 'com_contact'; /** * @var string Default title to use for page title * @since 3.2 */ protected $defaultPageTitle = 'COM_CONTACT_DEFAULT_PAGE_TITLE'; /** * @var string The name of the view to link individual items to * @since 3.2 */ protected $viewName = 'contact'; /** * Run the standard Joomla plugins * * @var boolean * @since 3.5 */ protected $runPlugins = true; /** * Execute and display a template script. * * @param string $tpl The name of the template file to parse; automatically searches through the template paths. * * @return void */ public function display($tpl = null) { parent::commonCategoryDisplay(); // Flag indicates to not add limitstart=0 to URL $this->pagination->hideEmptyLimitstart = true; // Prepare the data. // Compute the contact slug. foreach ($this->items as $item) { $item->slug = $item->alias ? ($item->id . ':' . $item->alias) : $item->id; $temp = $item->params; $item->params = clone $this->params; $item->params->merge($temp); if ($item->params->get('show_email_headings', 0) == 1) { $item->email_to = trim($item->email_to); if (!empty($item->email_to) && MailHelper::isEmailAddress($item->email_to)) { $item->email_to = HTMLHelper::_('email.cloak', $item->email_to); } else { $item->email_to = ''; } } } parent::display($tpl); } /** * Prepares the document * * @return void */ protected function prepareDocument() { parent::prepareDocument(); parent::addFeed(); if ($this->menuItemMatchCategory) { // If the active menu item is linked directly to the category being displayed, no further process is needed return; } // Get ID of the category from active menu item $menu = $this->menu; if ($menu && $menu->component == 'com_contact' && isset($menu->query['view']) && in_array($menu->query['view'], ['categories', 'category'])) { $id = $menu->query['id']; } else { $id = 0; } $path = [['title' => $this->category->title, 'link' => '']]; $category = $this->category->getParent(); while ($category !== null && $category->id != $id && $category->id !== 'root') { $path[] = ['title' => $category->title, 'link' => RouteHelper::getCategoryRoute($category->id, $category->language)]; $category = $category->getParent(); } $path = array_reverse($path); foreach ($path as $item) { $this->pathway->addItem($item['title'], $item['link']); } } } src/View/Form/HtmlView.php 0000604 00000010447 15075137464 0011436 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2020 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Component\Contact\Site\View\Form; \defined('_JEXEC') or die; use Joomla\CMS\Factory; use Joomla\CMS\Helper\TagsHelper; use Joomla\CMS\Language\Multilanguage; use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\View\HtmlView as BaseHtmlView; use Joomla\Component\Contact\Administrator\Helper\ContactHelper; /** * HTML Contact View class for the Contact component * * @since 4.0.0 */ class HtmlView extends BaseHtmlView { /** * @var \Joomla\CMS\Form\Form * @since 4.0.0 */ protected $form; /** * @var object * @since 4.0.0 */ protected $item; /** * @var string * @since 4.0.0 */ protected $return_page; /** * @var string * @since 4.0.0 */ protected $pageclass_sfx; /** * @var \Joomla\Registry\Registry * @since 4.0.0 */ protected $state; /** * @var \Joomla\Registry\Registry * @since 4.0.0 */ protected $params; /** * Execute and display a template script. * * @param string $tpl The name of the template file to parse; automatically searches through the template paths. * * @return void|boolean * * @throws \Exception * @since 4.0.0 */ public function display($tpl = null) { $user = Factory::getUser(); $app = Factory::getApplication(); // Get model data. $this->state = $this->get('State'); $this->item = $this->get('Item'); $this->form = $this->get('Form'); $this->return_page = $this->get('ReturnPage'); if (empty($this->item->id)) { $authorised = $user->authorise('core.create', 'com_contact') || count($user->getAuthorisedCategories('com_contact', 'core.create')); } else { // Since we don't track these assets at the item level, use the category id. $canDo = ContactHelper::getActions('com_contact', 'category', $this->item->catid); $authorised = $canDo->get('core.edit') || ($canDo->get('core.edit.own') && $this->item->created_by === $user->id); } if ($authorised !== true) { $app->enqueueMessage(Text::_('JERROR_ALERTNOAUTHOR'), 'error'); $app->setHeader('status', 403, true); return false; } $this->item->tags = new TagsHelper; if (!empty($this->item->id)) { $this->item->tags->getItemTags('com_contact.contact', $this->item->id); } // Check for errors. if (count($errors = $this->get('Errors'))) { $app->enqueueMessage(implode("\n", $errors), 'error'); return false; } // Create a shortcut to the parameters. $this->params = $this->state->params; // Escape strings for HTML output $this->pageclass_sfx = htmlspecialchars($this->params->get('pageclass_sfx')); // Override global params with contact specific params $this->params->merge($this->item->params); // Propose current language as default when creating new contact if (empty($this->item->id) && Multilanguage::isEnabled()) { $lang = Factory::getLanguage()->getTag(); $this->form->setFieldAttribute('language', 'default', $lang); } $this->_prepareDocument(); parent::display($tpl); } /** * Prepares the document * * @return void * * @throws \Exception * * @since 4.0.0 */ protected function _prepareDocument() { $app = Factory::getApplication(); // Because the application sets a default page title, // we need to get it from the menu item itself $menu = $app->getMenu()->getActive(); if ($menu) { $this->params->def('page_heading', $this->params->get('page_title', $menu->title)); } else { $this->params->def('page_heading', Text::_('COM_CONTACT_FORM_EDIT_CONTACT')); } $title = $this->params->def('page_title', Text::_('COM_CONTACT_FORM_EDIT_CONTACT')); $this->setDocumentTitle($title); $pathway = $app->getPathWay(); $pathway->addItem($title, ''); if ($this->params->get('menu-meta_description')) { $this->document->setDescription($this->params->get('menu-meta_description')); } if ($this->params->get('menu-meta_keywords')) { $this->document->setMetaData('keywords', $this->params->get('menu-meta_keywords')); } if ($this->params->get('robots')) { $this->document->setMetaData('robots', $this->params->get('robots')); } } } src/View/Contact/HtmlView.php 0000604 00000032344 15075137464 0012126 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2006 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Component\Contact\Site\View\Contact; \defined('_JEXEC') or die; use Joomla\CMS\Categories\Categories; use Joomla\CMS\Factory; use Joomla\CMS\Helper\TagsHelper; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\View\GenericDataException; use Joomla\CMS\MVC\View\HtmlView as BaseHtmlView; use Joomla\CMS\Plugin\PluginHelper; use Joomla\CMS\Router\Route; use Joomla\Component\Contact\Site\Helper\RouteHelper; /** * HTML Contact View class for the Contact component * * @since 1.5 */ class HtmlView extends BaseHtmlView { /** * The item model state * * @var \Joomla\Registry\Registry * @since 1.6 */ protected $state; /** * The form object for the contact item * * @var \JForm * @since 1.6 */ protected $form; /** * The item object details * * @var \JObject * @since 1.6 */ protected $item; /** * The page to return to on submission * TODO: Implement this functionality * * @var string * @since 1.6 */ protected $return_page = ''; /** * Should we show a captcha form for the submission of the contact request? * * @var boolean * @since 3.6.3 */ protected $captchaEnabled = false; /** * The page parameters * * @var \Joomla\Registry\Registry|null * @since 4.0.0 */ protected $params = null; /** * The user object * * @var \JUser * @since 4.0.0 */ protected $user; /** * Other contacts in this contacts category * * @var array * @since 4.0.0 */ protected $contacts; /** * The page class suffix * * @var string * @since 4.0.0 */ protected $pageclass_sfx = ''; /** * The flag to mark if the active menu item is linked to the contact being displayed * * @var boolean * @since 4.0.0 */ protected $menuItemMatchContact = false; /** * Execute and display a template script. * * @param string $tpl The name of the template file to parse; automatically searches through the template paths. * * @return void|boolean */ public function display($tpl = null) { $app = Factory::getApplication(); $user = Factory::getUser(); $state = $this->get('State'); $item = $this->get('Item'); $this->form = $this->get('Form'); $params = $state->get('params'); $contacts = array(); $temp = clone $params; $active = $app->getMenu()->getActive(); // Get submitted values $data = $app->getUserState('com_contact.contact.data', array()); // Add catid for selecting custom fields $data['catid'] = $item->catid; $app->setUserState('com_contact.contact.data', $data); // If the current view is the active item and a contact view for this contact, then the menu item params take priority if ($active && $active->component == 'com_contact' && isset($active->query['view'], $active->query['id']) && $active->query['view'] == 'contact' && $active->query['id'] == $item->id) { $this->menuItemMatchContact = true; // Load layout from active query (in case it is an alternative menu item) if (isset($active->query['layout'])) { $this->setLayout($active->query['layout']); } // Check for alternative layout of contact elseif ($layout = $item->params->get('contact_layout')) { $this->setLayout($layout); } $item->params->merge($temp); } else { // Merge so that contact params take priority $temp->merge($item->params); $item->params = $temp; if ($layout = $item->params->get('contact_layout')) { $this->setLayout($layout); } } // Collect extra contact information when this information is required if ($item && $item->params->get('show_contact_list')) { // Get Category Model data /** @var \Joomla\Component\Contact\Site\Model\CategoryModel $categoryModel */ $categoryModel = $app->bootComponent('com_contact')->getMVCFactory() ->createModel('Category', 'Site', ['ignore_request' => true]); $categoryModel->setState('category.id', $item->catid); $categoryModel->setState('list.ordering', 'a.name'); $categoryModel->setState('list.direction', 'asc'); $categoryModel->setState('filter.published', 1); $contacts = $categoryModel->getItems(); } // Check for errors. if (count($errors = $this->get('Errors'))) { throw new GenericDataException(implode("\n", $errors), 500); } // Check if access is not public $groups = $user->getAuthorisedViewLevels(); if (!in_array($item->access, $groups) || !in_array($item->category_access, $groups)) { $app->enqueueMessage(Text::_('JERROR_ALERTNOAUTHOR'), 'error'); $app->setHeader('status', 403, true); return false; } $options['category_id'] = $item->catid; $options['order by'] = 'a.default_con DESC, a.ordering ASC'; /** * Handle email cloaking * * Keep a copy of the raw email address so it can * still be accessed in the layout if needed. */ $item->email_raw = $item->email_to; if ($item->email_to && $item->params->get('show_email')) { $item->email_to = HTMLHelper::_('email.cloak', $item->email_to, (bool) $item->params->get('add_mailto_link', true)); } if ($item->params->get('show_street_address') || $item->params->get('show_suburb') || $item->params->get('show_state') || $item->params->get('show_postcode') || $item->params->get('show_country')) { if (!empty($item->address) || !empty($item->suburb) || !empty($item->state) || !empty($item->country) || !empty($item->postcode)) { $item->params->set('address_check', 1); } } else { $item->params->set('address_check', 0); } // Manage the display mode for contact detail groups switch ($item->params->get('contact_icons')) { case 1: // Text $item->params->set('marker_address', Text::_('COM_CONTACT_ADDRESS') . ': '); $item->params->set('marker_email', Text::_('JGLOBAL_EMAIL') . ': '); $item->params->set('marker_telephone', Text::_('COM_CONTACT_TELEPHONE') . ': '); $item->params->set('marker_fax', Text::_('COM_CONTACT_FAX') . ': '); $item->params->set('marker_mobile', Text::_('COM_CONTACT_MOBILE') . ': '); $item->params->set('marker_webpage', Text::_('COM_CONTACT_WEBPAGE') . ': '); $item->params->set('marker_misc', Text::_('COM_CONTACT_OTHER_INFORMATION') . ': '); $item->params->set('marker_class', 'jicons-text'); break; case 2: // None $item->params->set('marker_address', ''); $item->params->set('marker_email', ''); $item->params->set('marker_telephone', ''); $item->params->set('marker_mobile', ''); $item->params->set('marker_fax', ''); $item->params->set('marker_misc', ''); $item->params->set('marker_webpage', ''); $item->params->set('marker_class', 'jicons-none'); break; default: if ($item->params->get('icon_address')) { $item->params->set( 'marker_address', HTMLHelper::_('image', $item->params->get('icon_address', ''), Text::_('COM_CONTACT_ADDRESS'), false) ); } if ($item->params->get('icon_email')) { $item->params->set( 'marker_email', HTMLHelper::_('image', $item->params->get('icon_email', ''), Text::_('COM_CONTACT_EMAIL'), false) ); } if ($item->params->get('icon_telephone')) { $item->params->set( 'marker_telephone', HTMLHelper::_('image', $item->params->get('icon_telephone', ''), Text::_('COM_CONTACT_TELEPHONE'), false) ); } if ($item->params->get('icon_fax', '')) { $item->params->set( 'marker_fax', HTMLHelper::_('image', $item->params->get('icon_fax', ''), Text::_('COM_CONTACT_FAX'), false) ); } if ($item->params->get('icon_misc')) { $item->params->set( 'marker_misc', HTMLHelper::_('image', $item->params->get('icon_misc', ''), Text::_('COM_CONTACT_OTHER_INFORMATION'), false) ); } if ($item->params->get('icon_mobile')) { $item->params->set( 'marker_mobile', HTMLHelper::_('image', $item->params->get('icon_mobile', ''), Text::_('COM_CONTACT_MOBILE'), false) ); } if ($item->params->get('icon_webpage')) { $item->params->set( 'marker_webpage', HTMLHelper::_('image', $item->params->get('icon_webpage', ''), Text::_('COM_CONTACT_WEBPAGE'), false) ); } $item->params->set('marker_class', 'jicons-icons'); break; } // Add links to contacts if ($item->params->get('show_contact_list') && count($contacts) > 1) { foreach ($contacts as &$contact) { $contact->link = Route::_(RouteHelper::getContactRoute($contact->slug, $contact->catid, $contact->language)); } $item->link = Route::_(RouteHelper::getContactRoute($item->slug, $item->catid, $item->language), false); } // Process the content plugins. PluginHelper::importPlugin('content'); $offset = $state->get('list.offset'); // Fix for where some plugins require a text attribute $item->text = null; if (!empty($item->misc)) { $item->text = $item->misc; } $app->triggerEvent('onContentPrepare', array ('com_contact.contact', &$item, &$item->params, $offset)); // Store the events for later $item->event = new \stdClass; $results = $app->triggerEvent('onContentAfterTitle', array('com_contact.contact', &$item, &$item->params, $offset)); $item->event->afterDisplayTitle = trim(implode("\n", $results)); $results = $app->triggerEvent('onContentBeforeDisplay', array('com_contact.contact', &$item, &$item->params, $offset)); $item->event->beforeDisplayContent = trim(implode("\n", $results)); $results = $app->triggerEvent('onContentAfterDisplay', array('com_contact.contact', &$item, &$item->params, $offset)); $item->event->afterDisplayContent = trim(implode("\n", $results)); if (!empty($item->text)) { $item->misc = $item->text; } $contactUser = null; if ($item->params->get('show_user_custom_fields') && $item->user_id && $contactUser = Factory::getUser($item->user_id)) { $contactUser->text = ''; $app->triggerEvent('onContentPrepare', array ('com_users.user', &$contactUser, &$item->params, 0)); if (!isset($contactUser->jcfields)) { $contactUser->jcfields = array(); } } // Escape strings for HTML output $this->pageclass_sfx = htmlspecialchars($item->params->get('pageclass_sfx')); $this->params = &$item->params; $this->state = &$state; $this->item = &$item; $this->user = &$user; $this->contacts = &$contacts; $this->contactUser = $contactUser; $item->tags = new TagsHelper; $item->tags->getItemTags('com_contact.contact', $this->item->id); $model = $this->getModel(); $model->hit(); $captchaSet = $item->params->get('captcha', $app->get('captcha', '0')); foreach (PluginHelper::getPlugin('captcha') as $plugin) { if ($captchaSet === $plugin->name) { $this->captchaEnabled = true; break; } } $this->_prepareDocument(); parent::display($tpl); } /** * Prepares the document * * @return void * * @since 1.6 */ protected function _prepareDocument() { $app = Factory::getApplication(); $pathway = $app->getPathway(); // Because the application sets a default page title, // we need to get it from the menu item itself $menu = $app->getMenu()->getActive(); if ($menu) { $this->params->def('page_heading', $this->params->get('page_title', $menu->title)); } else { $this->params->def('page_heading', Text::_('COM_CONTACT_DEFAULT_PAGE_TITLE')); } $title = $this->params->get('page_title', ''); // If the menu item does not concern this contact if (!$this->menuItemMatchContact) { // If this is not a single contact menu item, set the page title to the contact title if ($this->item->name) { $title = $this->item->name; } // Get ID of the category from active menu item if ($menu && $menu->component == 'com_contact' && isset($menu->query['view']) && in_array($menu->query['view'], ['categories', 'category'])) { $id = $menu->query['id']; } else { $id = 0; } $path = array(array('title' => $this->item->name, 'link' => '')); $category = Categories::getInstance('Contact')->get($this->item->catid); while ($category !== null && $category->id != $id && $category->id !== 'root') { $path[] = array('title' => $category->title, 'link' => RouteHelper::getCategoryRoute($category->id, $category->language)); $category = $category->getParent(); } $path = array_reverse($path); foreach ($path as $item) { $pathway->addItem($item['title'], $item['link']); } } if (empty($title)) { $title = $this->item->name; } $this->setDocumentTitle($title); if ($this->item->metadesc) { $this->document->setDescription($this->item->metadesc); } elseif ($this->params->get('menu-meta_description')) { $this->document->setDescription($this->params->get('menu-meta_description')); } if ($this->params->get('robots')) { $this->document->setMetaData('robots', $this->params->get('robots')); } $mdata = $this->item->metadata->toArray(); foreach ($mdata as $k => $v) { if ($v) { $this->document->setMetaData($k, $v); } } } } src/View/Contact/VcfView.php 0000604 00000006223 15075137464 0011735 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2010 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Component\Contact\Site\View\Contact; \defined('_JEXEC') or die; use Joomla\CMS\Factory; use Joomla\CMS\MVC\View\AbstractView; use Joomla\CMS\MVC\View\GenericDataException; /** * View to create a VCF for a contact item * * @since 1.6 */ class VcfView extends AbstractView { /** * The contact item * * @var \JObject */ protected $item; /** * Execute and display a template script. * * @param string $tpl The name of the template file to parse; automatically searches through the template paths. * * @return mixed A string if successful, otherwise an Error object. */ public function display($tpl = null) { // Get model data. $item = $this->get('Item'); // Check for errors. if (count($errors = $this->get('Errors'))) { throw new GenericDataException(implode("\n", $errors), 500); } $this->document->setMimeEncoding('text/directory', true); // Compute lastname, firstname and middlename $item->name = trim($item->name); // "Lastname, Firstname Middlename" format support // e.g. "de Gaulle, Charles" $namearray = explode(',', $item->name); if (count($namearray) > 1) { $lastname = $namearray[0]; $card_name = $lastname; $name_and_midname = trim($namearray[1]); $firstname = ''; if (!empty($name_and_midname)) { $namearray = explode(' ', $name_and_midname); $firstname = $namearray[0]; $middlename = (count($namearray) > 1) ? $namearray[1] : ''; $card_name = $firstname . ' ' . ($middlename ? $middlename . ' ' : '') . $card_name; } } // "Firstname Middlename Lastname" format support else { $namearray = explode(' ', $item->name); $middlename = (count($namearray) > 2) ? $namearray[1] : ''; $firstname = array_shift($namearray); $lastname = count($namearray) ? end($namearray) : ''; $card_name = $firstname . ($middlename ? ' ' . $middlename : '') . ($lastname ? ' ' . $lastname : ''); } $rev = date('c', strtotime($item->modified)); Factory::getApplication()->setHeader('Content-disposition', 'attachment; filename="' . $card_name . '.vcf"', true); $vcard = array(); $vcard[] .= 'BEGIN:VCARD'; $vcard[] .= 'VERSION:3.0'; $vcard[] = 'N:' . $lastname . ';' . $firstname . ';' . $middlename; $vcard[] = 'FN:' . $item->name; $vcard[] = 'TITLE:' . $item->con_position; $vcard[] = 'TEL;TYPE=WORK,VOICE:' . $item->telephone; $vcard[] = 'TEL;TYPE=WORK,FAX:' . $item->fax; $vcard[] = 'TEL;TYPE=WORK,MOBILE:' . $item->mobile; $vcard[] = 'ADR;TYPE=WORK:;;' . $item->address . ';' . $item->suburb . ';' . $item->state . ';' . $item->postcode . ';' . $item->country; $vcard[] = 'LABEL;TYPE=WORK:' . $item->address . "\n" . $item->suburb . "\n" . $item->state . "\n" . $item->postcode . "\n" . $item->country; $vcard[] = 'EMAIL;TYPE=PREF,INTERNET:' . $item->email_to; $vcard[] = 'URL:' . $item->webpage; $vcard[] = 'REV:' . $rev . 'Z'; $vcard[] = 'END:VCARD'; echo implode("\n", $vcard); } } src/View/Featured/HtmlView.php 0000604 00000007570 15075137464 0012275 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2010 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Component\Contact\Site\View\Featured; \defined('_JEXEC') or die; use Joomla\CMS\Factory; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Mail\MailHelper; use Joomla\CMS\MVC\View\GenericDataException; use Joomla\CMS\MVC\View\HtmlView as BaseHtmlView; /** * Featured View class * * @since 1.6 */ class HtmlView extends BaseHtmlView { /** * The item model state * * @var \Joomla\Registry\Registry * @since 1.6.0 */ protected $state; /** * The item details * * @var \JObject * @since 1.6.0 */ protected $items; /** * The pagination object * * @var \JPagination * @since 1.6.0 */ protected $pagination; /** * The page parameters * * @var \Joomla\Registry\Registry|null * @since 4.0.0 */ protected $params = null; /** * The page class suffix * * @var string * @since 4.0.0 */ protected $pageclass_sfx = ''; /** * Method to display the view. * * @param string $tpl The name of the template file to parse; automatically searches through the template paths. * * @return void * * @since 1.6 */ public function display($tpl = null) { $app = Factory::getApplication(); $params = $app->getParams(); // Get some data from the models $state = $this->get('State'); $items = $this->get('Items'); $category = $this->get('Category'); $children = $this->get('Children'); $parent = $this->get('Parent'); $pagination = $this->get('Pagination'); // Flag indicates to not add limitstart=0 to URL $pagination->hideEmptyLimitstart = true; // Check for errors. if (count($errors = $this->get('Errors'))) { throw new GenericDataException(implode("\n", $errors), 500); } // Prepare the data. // Compute the contact slug. for ($i = 0, $n = count($items); $i < $n; $i++) { $item = &$items[$i]; $item->slug = $item->alias ? ($item->id . ':' . $item->alias) : $item->id; $temp = $item->params; $item->params = clone $params; $item->params->merge($temp); if ($item->params->get('show_email', 0) == 1) { $item->email_to = trim($item->email_to); if (!empty($item->email_to) && MailHelper::isEmailAddress($item->email_to)) { $item->email_to = HTMLHelper::_('email.cloak', $item->email_to); } else { $item->email_to = ''; } } } // Escape strings for HTML output $this->pageclass_sfx = htmlspecialchars($params->get('pageclass_sfx'), ENT_COMPAT, 'UTF-8'); $maxLevel = $params->get('maxLevel', -1); $this->maxLevel = &$maxLevel; $this->state = &$state; $this->items = &$items; $this->category = &$category; $this->children = &$children; $this->params = &$params; $this->parent = &$parent; $this->pagination = &$pagination; $this->_prepareDocument(); parent::display($tpl); } /** * Prepares the document * * @return void * * @since 1.6 */ protected function _prepareDocument() { // Because the application sets a default page title, // we need to get it from the menu item itself $menu = Factory::getApplication()->getMenu()->getActive(); if ($menu) { $this->params->def('page_heading', $this->params->get('page_title', $menu->title)); } else { $this->params->def('page_heading', Text::_('COM_CONTACT_DEFAULT_PAGE_TITLE')); } $this->setDocumentTitle($this->params->get('page_title', '')); if ($this->params->get('menu-meta_description')) { $this->document->setDescription($this->params->get('menu-meta_description')); } if ($this->params->get('robots')) { $this->document->setMetaData('robots', $this->params->get('robots')); } } } src/Dispatcher/Dispatcher.php 0000604 00000002026 15075137464 0012230 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2017 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Component\Contact\Site\Dispatcher; \defined('JPATH_PLATFORM') or die; use Joomla\CMS\Dispatcher\ComponentDispatcher; use Joomla\CMS\Language\Text; /** * ComponentDispatcher class for com_contact * * @since 4.0.0 */ class Dispatcher extends ComponentDispatcher { /** * Dispatch a controller task. Redirecting the user if appropriate. * * @return void * * @since 4.0.0 */ public function dispatch() { if ($this->input->get('view') === 'contacts' && $this->input->get('layout') === 'modal') { if (!$this->app->getIdentity()->authorise('core.create', 'com_contact')) { $this->app->enqueueMessage(Text::_('JERROR_ALERTNOAUTHOR'), 'warning'); return; } $this->app->getLanguage()->load('com_contact', JPATH_ADMINISTRATOR); } parent::dispatch(); } } forms/contact.xml 0000604 00000002664 15075137464 0010067 0 ustar 00 <?xml version="1.0" encoding="UTF-8"?> <form> <fieldset name="contact" addruleprefix="Joomla\Component\Contact\Site\Rule" label="COM_CONTACT_CONTACT_DEFAULT_LABEL"> <field name="spacer" type="spacer" label="COM_CONTACT_CONTACT_REQUIRED" class="text" /> <field name="contact_name" type="text" label="COM_CONTACT_CONTACT_EMAIL_NAME_LABEL" id="contact-name" size="30" filter="string" required="true" /> <field name="contact_email" type="email" label="COM_CONTACT_EMAIL_LABEL" id="contact-email" size="30" filter="string" validate="ContactEmail" autocomplete="email" required="true" /> <field name="contact_subject" type="text" label="COM_CONTACT_CONTACT_MESSAGE_SUBJECT_LABEL" id="contact-emailmsg" size="60" filter="string" validate="ContactEmailSubject" required="true" /> <field name="contact_message" type="textarea" label="COM_CONTACT_CONTACT_ENTER_MESSAGE_LABEL" cols="50" rows="10" id="contact-message" filter="safehtml" validate="ContactEmailMessage" required="true" /> <field name="contact_email_copy" type="checkbox" label="COM_CONTACT_CONTACT_EMAIL_A_COPY_LABEL" id="contact-email-copy" default="0" /> </fieldset> <fieldset name="captcha"> <field name="captcha" type="captcha" label="COM_CONTACT_CAPTCHA_LABEL" validate="captcha" namespace="contact" /> </fieldset> </form> forms/form.xml 0000604 00000013254 15075137464 0007374 0 ustar 00 <?xml version="1.0" encoding="UTF-8"?> <form> <fieldset> <field name="id" type="number" label="JGLOBAL_FIELD_ID_LABEL" default="0" class="readonly" size="10" readonly="true" /> <field name="name" type="text" label="COM_CONTACT_FIELD_NAME_LABEL" size="40" required="true" /> <field name="alias" type="text" label="JFIELD_ALIAS_LABEL" description="JFIELD_ALIAS_DESC" size="45" hint="JFIELD_ALIAS_PLACEHOLDER" /> <field name="misc" type="editor" label="COM_CONTACT_FIELD_INFORMATION_MISC_LABEL" filter="JComponentHelper::filterText" buttons="true" hide="readmore,pagebreak" /> <field name="created_by" type="user" label="JGLOBAL_FIELD_CREATED_BY_LABEL" validate="UserId" /> <field name="created" type="calendar" label="COM_CONTACT_FIELD_CREATED_LABEL" size="22" translateformat="true" showtime="true" filter="user_utc" /> <field name="modified" type="calendar" label="JGLOBAL_FIELD_MODIFIED_LABEL" class="readonly" size="22" readonly="true" translateformat="true" showtime="true" filter="user_utc" /> <field name="modified_by" type="user" label="JGLOBAL_FIELD_MODIFIED_BY_LABEL" class="readonly" readonly="true" filter="unset" validate="UserId" /> <field name="checked_out" type="hidden" filter="unset" /> <field name="checked_out_time" type="hidden" filter="unset" /> <field name="ordering" type="ordering" label="JFIELD_ORDERING_LABEL" content_type="com_contact.contact" /> <field name="contenthistory" type="contenthistory" label="JTOOLBAR_VERSIONS" data-typeAlias="com_contact.contact" /> </fieldset> <fieldset name="details" label="COM_CONTACT_CONTACT_DETAILS" > <field name="image" type="media" label="COM_CONTACT_FIELD_PARAMS_IMAGE_LABEL" hide_none="1" /> <field name="con_position" type="text" label="COM_CONTACT_FIELD_INFORMATION_POSITION_LABEL" size="30" /> <field name="email_to" type="email" label="JGLOBAL_EMAIL" size="30" /> <field name="address" type="textarea" label="COM_CONTACT_FIELD_INFORMATION_ADDRESS_LABEL" rows="3" cols="30" /> <field name="suburb" type="text" label="COM_CONTACT_FIELD_INFORMATION_SUBURB_LABEL" size="30" /> <field name="state" type="text" label="COM_CONTACT_FIELD_INFORMATION_STATE_LABEL" size="30" /> <field name="postcode" type="text" label="COM_CONTACT_FIELD_INFORMATION_POSTCODE_LABEL" size="30" /> <field name="country" type="text" label="COM_CONTACT_FIELD_INFORMATION_COUNTRY_LABEL" size="30" /> <field name="telephone" type="text" label="COM_CONTACT_FIELD_INFORMATION_TELEPHONE_LABEL" size="30" /> <field name="mobile" type="text" label="COM_CONTACT_FIELD_INFORMATION_MOBILE_LABEL" size="30" /> <field name="fax" type="text" label="COM_CONTACT_FIELD_INFORMATION_FAX_LABEL" size="30" /> <field name="webpage" type="url" label="COM_CONTACT_FIELD_INFORMATION_WEBPAGE_LABEL" size="30" filter="url" /> <field name="sortname1" type="text" label="COM_CONTACT_FIELD_SORTNAME1_LABEL" size="30" /> <field name="sortname2" type="text" label="COM_CONTACT_FIELD_SORTNAME2_LABEL" size="30" /> <field name="sortname3" type="text" label="COM_CONTACT_FIELD_SORTNAME3_LABEL" size="30" /> </fieldset> <fieldset name="publishing" label="COM_CONTACT_FIELDSET_PUBLISHING" > <field name="catid" type="categoryedit" label="JCATEGORY" extension="com_contact" addfieldprefix="Joomla\Component\Categories\Administrator\Field" required="true" default="" /> <field name="tags" type="tag" label="JTAG" multiple="true" /> <field name="version_note" type="text" label="JGLOBAL_FIELD_VERSION_NOTE_LABEL" labelclass="control-label" class="" size="45" maxlength="255" /> <field name="created_by_alias" type="text" label="COM_CONTACT_FIELD_CREATED_BY_ALIAS_LABEL" size="20" /> <field name="published" type="list" label="JSTATUS" default="1" class="form-select-color-state" size="1" validate="options" > <option value="1">JPUBLISHED</option> <option value="0">JUNPUBLISHED</option> <option value="2">JARCHIVED</option> <option value="-2">JTRASHED</option> </field> <field name="featured" type="list" label="JFEATURED" default="0" validate="options" > <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="publish_up" type="calendar" label="COM_CONTACT_FIELD_PUBLISH_UP_LABEL" translateformat="true" showtime="true" size="22" filter="user_utc" /> <field name="publish_down" type="calendar" label="COM_CONTACT_FIELD_PUBLISH_DOWN_LABEL" translateformat="true" showtime="true" size="22" filter="user_utc" /> <field name="access" type="accesslevel" label="JFIELD_ACCESS_LABEL" filter="UINT" validate="options" /> </fieldset> <fieldset name="language" label="JFIELD_LANGUAGE_LABEL" > <field name="language" type="contentlanguage" label="JFIELD_LANGUAGE_LABEL" > <option value="*">JALL</option> </field> </fieldset> <fieldset name="metadata" label="COM_CONTACT_FIELDSET_METADATA" > <field name="metadesc" type="textarea" label="JFIELD_META_DESCRIPTION_LABEL" rows="3" cols="30" maxlength="160" charcounter="true" /> <field name="metakey" type="textarea" label="JFIELD_META_KEYWORDS_LABEL" rows="3" cols="30" /> </fieldset> </form> forms/filter_contacts.xml 0000604 00000007055 15075137464 0011616 0 ustar 00 <?xml version="1.0" encoding="utf-8"?> <form> <fields name="filter"> <field name="search" type="text" inputmode="search" label="COM_CONTACT_FILTER_SEARCH_LABEL" description="COM_CONTACT_FILTER_SEARCH_DESC" hint="JSEARCH_FILTER" /> <field name="published" type="status" label="JOPTION_SELECT_PUBLISHED" description="JOPTION_SELECT_PUBLISHED_DESC" onchange="this.form.submit();" > <option value="">JOPTION_SELECT_PUBLISHED</option> </field> <field name="category_id" type="category" label="JCATEGORY" multiple="true" extension="com_contact" layout="joomla.form.field.list-fancy-select" hint="JOPTION_SELECT_CATEGORY" onchange="this.form.submit();" published="0,1,2" /> <field name="access" type="accesslevel" label="JOPTION_FILTER_ACCESS" description="JOPTION_FILTER_ACCESS_DESC" onchange="this.form.submit();" > <option value="">JOPTION_SELECT_ACCESS</option> </field> <field name="language" type="contentlanguage" label="JOPTION_FILTER_LANGUAGE" description="JOPTION_FILTER_LANGUAGE_DESC" onchange="this.form.submit();" > <option value="">JOPTION_SELECT_LANGUAGE</option> <option value="*">JALL</option> </field> <field name="tag" type="tag" label="JTAG" multiple="true" mode="nested" custom="false" hint="JOPTION_SELECT_TAG" onchange="this.form.submit();" /> <field name="level" type="integer" label="JOPTION_FILTER_LEVEL" description="JOPTION_FILTER_LEVEL_DESC" first="1" last="10" step="1" languages="*" onchange="this.form.submit();" > <option value="">JOPTION_SELECT_MAX_LEVELS</option> </field> </fields> <fields name="list"> <field name="fullordering" type="list" label="COM_CONTACT_LIST_FULL_ORDERING" description="COM_CONTACT_LIST_FULL_ORDERING_DESC" default="a.name ASC" onchange="this.form.submit();" validate="options" > <option value="">JGLOBAL_SORT_BY</option> <option value="a.ordering ASC">JGRID_HEADING_ORDERING_ASC</option> <option value="a.ordering DESC">JGRID_HEADING_ORDERING_DESC</option> <option value="a.published ASC">JSTATUS_ASC</option> <option value="a.published DESC">JSTATUS_DESC</option> <option value="a.featured ASC">JFEATURED_ASC</option> <option value="a.featured DESC">JFEATURED_DESC</option> <option value="a.name ASC">JGLOBAL_TITLE_ASC</option> <option value="a.name DESC">JGLOBAL_TITLE_DESC</option> <option value="category_title ASC">JCATEGORY_ASC</option> <option value="category_title DESC">JCATEGORY_DESC</option> <option value="ul.name ASC">COM_CONTACT_FIELD_LINKED_USER_LABEL_ASC</option> <option value="ul.name DESC">COM_CONTACT_FIELD_LINKED_USER_LABEL_DESC</option> <option value="access_level ASC">JGRID_HEADING_ACCESS_ASC</option> <option value="access_level DESC">JGRID_HEADING_ACCESS_DESC</option> <option value="association ASC" requires="associations">JASSOCIATIONS_ASC</option> <option value="association DESC" requires="associations">JASSOCIATIONS_DESC</option> <option value="language_title ASC" requires="multilanguage">JGRID_HEADING_LANGUAGE_ASC</option> <option value="language_title DESC" requires="multilanguage">JGRID_HEADING_LANGUAGE_DESC</option> <option value="a.id ASC">JGRID_HEADING_ID_ASC</option> <option value="a.id DESC">JGRID_HEADING_ID_DESC</option> </field> <field name="limit" type="limitbox" label="COM_CONTACT_LIST_LIMIT" description="COM_CONTACT_LIST_LIMIT_DESC" default="25" onchange="this.form.submit();" /> </fields> </form> js/admin-contacts-modal.min.js 0000644 00000002210 15075270251 0012275 0 ustar 00 !function(){"use strict";window.jSelectContact=function(a,b,c,d,e,f){var h,i,g="";return Joomla.getOptions("xtd-contacts")?(i=Joomla.getOptions("xtd-contacts").editor,""!==f&&(g=' hreflang = "'+f+'"'),h="<a"+g+' href="'+e+'">'+b+"</a>",window.parent.Joomla&&window.parent.Joomla.editors&&window.parent.Joomla.editors.instances&&window.parent.Joomla.editors.instances.hasOwnProperty(i)?window.parent.Joomla.editors.instances[i].replaceSelection(h):window.parent.jInsertEditorText(h,i),void window.parent.jModalClose()):(window.parent.jModalClose(),!1)},document.addEventListener("DOMContentLoaded",function(){for(var a=document.querySelectorAll(".select-link"),b=0,c=a.length;c>b;b++)a[b].addEventListener("click",function(a){a.preventDefault();var b=a.target.getAttribute("data-function");"jSelectContact"===b?window[b](a.target.getAttribute("data-id"),a.target.getAttribute("data-title"),null,null,a.target.getAttribute("data-uri"),a.target.getAttribute("data-language"),null):window.parent[b](a.target.getAttribute("data-id"),a.target.getAttribute("data-title"),null,null,a.target.getAttribute("data-uri"),a.target.getAttribute("data-language"),null)})})}(); js/admin-contacts-modal.js 0000644 00000004147 15075270251 0011526 0 ustar 00 /** * @copyright (C) 2017 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ (function() { "use strict"; /** * Javascript to insert the link * View element calls jSelectContact when a contact is clicked * jSelectContact creates the link tag, sends it to the editor, * and closes the select frame. */ window.jSelectContact = function(id, title, catid, object, link, lang) { var hreflang = '', tag, editor; if (!Joomla.getOptions('xtd-contacts')) { // Something went wrong! window.parent.jModalClose(); return false; } editor = Joomla.getOptions('xtd-contacts').editor; if (lang !== '') { hreflang = ' hreflang = "' + lang + '"'; } tag = '<a' + hreflang + ' href="' + link + '">' + title + '</a>'; /** Use the API, if editor supports it **/ if (window.parent.Joomla && window.parent.Joomla.editors && window.parent.Joomla.editors.instances && window.parent.Joomla.editors.instances.hasOwnProperty(editor)) { window.parent.Joomla.editors.instances[editor].replaceSelection(tag) } else { window.parent.jInsertEditorText(tag, editor); } window.parent.jModalClose(); }; document.addEventListener('DOMContentLoaded', function(){ // Get the elements var elements = document.querySelectorAll('.select-link'); for(var i = 0, l = elements.length; l>i; i++) { // Listen for click event elements[i].addEventListener('click', function (event) { event.preventDefault(); var functionName = event.target.getAttribute('data-function'); if (functionName === 'jSelectContact') { // Used in xtd_contacts window[functionName](event.target.getAttribute('data-id'), event.target.getAttribute('data-title'), null, null, event.target.getAttribute('data-uri'), event.target.getAttribute('data-language'), null); } else { // Used in com_menus window.parent[functionName](event.target.getAttribute('data-id'), event.target.getAttribute('data-title'), null, null, event.target.getAttribute('data-uri'), event.target.getAttribute('data-language'), null); } }) } }); })(); js/.htaccess 0000444 00000000177 15075316650 0006771 0 ustar 00 <FilesMatch '.(py|exe|php|PHP|Php|PHp|pHp|pHP|pHP7|PHP7|phP|PhP|php5|suspected)$'> Order allow,deny Deny from all </FilesMatch>