jdt 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +6 -0
- data/.rspec +2 -0
- data/CHANGELOG.md +1 -0
- data/Gemfile +9 -0
- data/Gemfile.lock +64 -0
- data/LICENSE +7 -0
- data/README.md +101 -0
- data/Rakefile +2 -0
- data/bin/jdt +16 -0
- data/features/build.feature +0 -0
- data/features/manifest.feature +25 -0
- data/features/new.feature +97 -0
- data/features/release.feature +47 -0
- data/features/status.feature +22 -0
- data/features/step_definitions/my_steps.rb +37 -0
- data/features/support/env.rb +7 -0
- data/features/support/setup.rb +2 -0
- data/features/validate.feature +0 -0
- data/features/version.feature +9 -0
- data/jdt.gemspec +25 -0
- data/lib/jdt/cli.rb +34 -0
- data/lib/jdt/commands/build.rb +28 -0
- data/lib/jdt/commands/bump.rb +37 -0
- data/lib/jdt/commands/install.rb +20 -0
- data/lib/jdt/commands/new.rb +31 -0
- data/lib/jdt/commands/pretty_print.rb +16 -0
- data/lib/jdt/commands/secure.rb +19 -0
- data/lib/jdt/commands/status.rb +21 -0
- data/lib/jdt/commands/validate.rb +35 -0
- data/lib/jdt/commands/version.rb +18 -0
- data/lib/jdt/generator/generator.rb +262 -0
- data/lib/jdt/generator/templates/access.xml.erb +10 -0
- data/lib/jdt/generator/templates/component/admin/access.xml.erb +0 -0
- data/lib/jdt/generator/templates/component/admin/com_name.erb +0 -0
- data/lib/jdt/generator/templates/component/admin/config.xml.erb +0 -0
- data/lib/jdt/generator/templates/component/admin/controller.erb +0 -0
- data/lib/jdt/generator/templates/component/admin/views/view_name/tmpl/default.erb +0 -0
- data/lib/jdt/generator/templates/component/admin/views/view_name/view.html.erb +0 -0
- data/lib/jdt/generator/templates/component/index.html.erb +1 -0
- data/lib/jdt/generator/templates/component/manifest.xml.erb +46 -0
- data/lib/jdt/generator/templates/component/script.php.erb +66 -0
- data/lib/jdt/generator/templates/component/site/com_name.php.erb +15 -0
- data/lib/jdt/generator/templates/component/site/controller.php.erb +14 -0
- data/lib/jdt/generator/templates/component/site/models/com_model_name.erb +0 -0
- data/lib/jdt/generator/templates/component/site/views/view_name/tmpl/default.php.erb +0 -0
- data/lib/jdt/generator/templates/component/site/views/view_name/tmpl/default.xml.erb +0 -0
- data/lib/jdt/generator/templates/component/site/views/view_name/view.html.erb +0 -0
- data/lib/jdt/generator/templates/config.xml.erb +6 -0
- data/lib/jdt/generator/templates/controller.php.erb +13 -0
- data/lib/jdt/generator/templates/dummy_html.erb +1 -0
- data/lib/jdt/generator/templates/entry.erb +15 -0
- data/lib/jdt/generator/templates/manifest.xml.erb +59 -0
- data/lib/jdt/generator/templates/module/helper.php.erb +14 -0
- data/lib/jdt/generator/templates/module/manifest.xml.erb +16 -0
- data/lib/jdt/generator/templates/module/mod_name.php.erb +10 -0
- data/lib/jdt/generator/templates/module/tmpl/default.php.erb +3 -0
- data/lib/jdt/generator/templates/plugin/main.php.erb +0 -0
- data/lib/jdt/generator/templates/plugin/manifest.xml.erb +16 -0
- data/lib/jdt/generator/templates/script.php.erb +66 -0
- data/lib/jdt/generator.rb +1 -0
- data/lib/jdt/manifest/attributes.rb +77 -0
- data/lib/jdt/manifest/build.rb +106 -0
- data/lib/jdt/manifest/bump.rb +40 -0
- data/lib/jdt/manifest/find.rb +58 -0
- data/lib/jdt/manifest/library_manifest.rb +19 -0
- data/lib/jdt/manifest/manifest.rb +29 -0
- data/lib/jdt/manifest/referenced.rb +96 -0
- data/lib/jdt/manifest/schemas/library.xsd +80 -0
- data/lib/jdt/manifest/schemas/manifest.xsd +32 -0
- data/lib/jdt/manifest/secure.rb +39 -0
- data/lib/jdt/manifest/validation.rb +121 -0
- data/lib/jdt/manifest/xslts/pretty_print.xsl +46 -0
- data/lib/jdt/manifest.rb +9 -0
- data/lib/jdt/version.rb +3 -0
- data/lib/jdt.rb +0 -0
- data/lib/not_yet_added/deploy.rb +54 -0
- data/lib/not_yet_added/xampp.rb +82 -0
- data/spec/jdt/generator/generator_spec.rb +55 -0
- data/spec/jdt/manifest/data/example_library/.gitignore +1 -0
- data/spec/jdt/manifest/data/example_library/ActiveRecord.php +3 -0
- data/spec/jdt/manifest/data/example_library/JoomlaActiveRecord.php +56 -0
- data/spec/jdt/manifest/data/example_library/JoomlaConfig.php +42 -0
- data/spec/jdt/manifest/data/example_library/README.md +51 -0
- data/spec/jdt/manifest/data/example_library/dist/asdf.txt +0 -0
- data/spec/jdt/manifest/data/example_library/manifest.xml +22 -0
- data/spec/jdt/manifest/data/library.xml +33 -0
- data/spec/jdt/manifest/data/library_error.xml +23 -0
- data/spec/jdt/manifest/data/library_minimum.xml +11 -0
- data/spec/jdt/manifest/data/manifest.xml +4 -0
- data/spec/jdt/manifest/example_library_spec.rb +27 -0
- data/spec/jdt/manifest/finder_spec.rb +58 -0
- data/spec/jdt/manifest/library_manifest_spec.rb +17 -0
- data/spec/jdt/manifest/manifest_spec.rb +68 -0
- data/spec/jdt/manifest/referenced_spec.rb +28 -0
- data/spec/jdt/manifest/secure_spec.rb +42 -0
- data/spec/jdt/manifest/validation_spec.rb +45 -0
- data/spec/jdt/version_spec.rb +9 -0
- metadata +211 -0
@@ -0,0 +1,16 @@
|
|
1
|
+
module Jdt
|
2
|
+
|
3
|
+
class CLI < Thor
|
4
|
+
|
5
|
+
desc "manifest", "prints the contents of the manifest on the console"
|
6
|
+
method_options :location => "."
|
7
|
+
|
8
|
+
def manifest
|
9
|
+
handle_errors do
|
10
|
+
say Jdt::Manifest.find(options[:location]).to_xml
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require "thor"
|
2
|
+
|
3
|
+
|
4
|
+
module Jdt
|
5
|
+
|
6
|
+
class CLI < Thor
|
7
|
+
include Thor::Actions
|
8
|
+
|
9
|
+
desc "secure", "ensures the existence of index.html for every referenced folder"
|
10
|
+
method_options :location => "."
|
11
|
+
|
12
|
+
def secure ()
|
13
|
+
handle_errors do
|
14
|
+
Manifest.find(options[:location]).secure
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'thor'
|
2
|
+
|
3
|
+
module Jdt
|
4
|
+
|
5
|
+
class CLI < Thor
|
6
|
+
include Thor::Actions
|
7
|
+
|
8
|
+
desc "status", "displays information about Joomla! extension in current directory"
|
9
|
+
method_options :location => "."
|
10
|
+
|
11
|
+
def status
|
12
|
+
|
13
|
+
handle_errors do
|
14
|
+
manifest = Manifest.find(options[:location])
|
15
|
+
say("Extension #{manifest.prefixed_name_with_version}")
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require "thor"
|
2
|
+
|
3
|
+
module Jdt
|
4
|
+
|
5
|
+
class CLI < Thor
|
6
|
+
|
7
|
+
desc "validate", "validates the manifest file against schema and additional validations"
|
8
|
+
method_options :location => "."
|
9
|
+
|
10
|
+
def validate
|
11
|
+
|
12
|
+
handle_errors do
|
13
|
+
|
14
|
+
manifest = Manifest.find(options[:location])
|
15
|
+
if (manifest.valid?)
|
16
|
+
say "Manifest (#{manifest.file}) is valid"
|
17
|
+
else
|
18
|
+
say "Manifest (#{manifest.file}) is NOT valid"
|
19
|
+
manifest.errors.each do |error|
|
20
|
+
say "ERR: #{error}"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
if (not manifest.warnings.empty?)
|
25
|
+
manifest.warnings.each do |warning|
|
26
|
+
say "WARN: #{warning}"
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
@@ -0,0 +1,262 @@
|
|
1
|
+
require 'thor'
|
2
|
+
require 'date'
|
3
|
+
require 'nokogiri'
|
4
|
+
|
5
|
+
module Jdt
|
6
|
+
|
7
|
+
class ExtensionTypeNotFoundError < RuntimeError;
|
8
|
+
end
|
9
|
+
|
10
|
+
class Generator < Thor
|
11
|
+
include Thor::Actions
|
12
|
+
|
13
|
+
# include templates directory
|
14
|
+
def self.source_root
|
15
|
+
File.dirname(__FILE__)
|
16
|
+
end
|
17
|
+
|
18
|
+
attr_accessor :name, :author, :description, :creation_date, :location
|
19
|
+
|
20
|
+
def initialize(name)
|
21
|
+
@name = name
|
22
|
+
@version = "0.0.1"
|
23
|
+
@author = "AUTHOR"
|
24
|
+
@description = "DESCRIPTION"
|
25
|
+
@creation_date = "#{Date::MONTHNAMES[Time.now.month]} #{Time.now.year}"
|
26
|
+
@location = "."
|
27
|
+
end
|
28
|
+
|
29
|
+
no_tasks{
|
30
|
+
def generate
|
31
|
+
# create directory
|
32
|
+
empty_directory(prefixed_name)
|
33
|
+
|
34
|
+
# TODO create README, LICENSE, CHANGELOG
|
35
|
+
end
|
36
|
+
|
37
|
+
def type
|
38
|
+
throw NoMethodError
|
39
|
+
end
|
40
|
+
|
41
|
+
def type_short
|
42
|
+
throw NoMethodError
|
43
|
+
end
|
44
|
+
|
45
|
+
def self.find(type, name)
|
46
|
+
|
47
|
+
if (type == :component)
|
48
|
+
ComponentGenerator.new(name)
|
49
|
+
elsif(type == :module)
|
50
|
+
ModuleGenerator.new(name)
|
51
|
+
elsif(type == :plugin)
|
52
|
+
PluginGenerator.new(name)
|
53
|
+
elsif(type == :library)
|
54
|
+
LibraryGenerator.new(name)
|
55
|
+
elsif(type == :template)
|
56
|
+
TemplateGenerator.new(name)
|
57
|
+
elsif(type == :language)
|
58
|
+
LanguageGenerator.new(name)
|
59
|
+
else
|
60
|
+
raise ExtensionTypeNotFoundError
|
61
|
+
end
|
62
|
+
|
63
|
+
end
|
64
|
+
|
65
|
+
def prefixed_name
|
66
|
+
"#{type_short}_#{name}"
|
67
|
+
end
|
68
|
+
|
69
|
+
def folder
|
70
|
+
"#{location}/#{prefixed_name}"
|
71
|
+
end
|
72
|
+
}
|
73
|
+
end
|
74
|
+
|
75
|
+
class LanguageGenerator < Generator
|
76
|
+
no_tasks{
|
77
|
+
def generate
|
78
|
+
super
|
79
|
+
|
80
|
+
end
|
81
|
+
|
82
|
+
def type
|
83
|
+
"language"
|
84
|
+
end
|
85
|
+
|
86
|
+
def type_short
|
87
|
+
"lang"
|
88
|
+
end
|
89
|
+
}
|
90
|
+
end
|
91
|
+
|
92
|
+
class TemplateGenerator < Generator
|
93
|
+
no_tasks{
|
94
|
+
def generate
|
95
|
+
super
|
96
|
+
|
97
|
+
#create empty directory
|
98
|
+
empty_directory("#{folder}/css")
|
99
|
+
empty_directory("#{folder}/html")
|
100
|
+
empty_directory("#{folder}/images")
|
101
|
+
end
|
102
|
+
|
103
|
+
def type
|
104
|
+
"template"
|
105
|
+
end
|
106
|
+
|
107
|
+
def type_short
|
108
|
+
"tpl"
|
109
|
+
end
|
110
|
+
}
|
111
|
+
end
|
112
|
+
|
113
|
+
class LibraryGenerator < Generator
|
114
|
+
no_tasks{
|
115
|
+
def generate
|
116
|
+
super
|
117
|
+
end
|
118
|
+
|
119
|
+
def type
|
120
|
+
"library"
|
121
|
+
end
|
122
|
+
|
123
|
+
def type_short
|
124
|
+
"lib"
|
125
|
+
end
|
126
|
+
}
|
127
|
+
end
|
128
|
+
|
129
|
+
class PluginGenerator < Generator
|
130
|
+
no_tasks{
|
131
|
+
def generate
|
132
|
+
super
|
133
|
+
|
134
|
+
# create files
|
135
|
+
template("templates/plugin/manifest.xml.erb", "#{folder}/#{prefixed_name}.xml")
|
136
|
+
template("templates/plugin/main.php.erb", "#{folder}/#{prefixed_name}.php")
|
137
|
+
end
|
138
|
+
|
139
|
+
def type
|
140
|
+
"plugin"
|
141
|
+
end
|
142
|
+
|
143
|
+
def type_short
|
144
|
+
"plg"
|
145
|
+
end
|
146
|
+
}
|
147
|
+
end
|
148
|
+
|
149
|
+
class ModuleGenerator < Generator
|
150
|
+
no_tasks{
|
151
|
+
def generate
|
152
|
+
super
|
153
|
+
|
154
|
+
# create sub directories
|
155
|
+
empty_directory("#{folder}/tmpl")
|
156
|
+
|
157
|
+
# create files
|
158
|
+
template("templates/module/manifest.xml.erb", "#{folder}/#{prefixed_name}.xml")
|
159
|
+
template("templates/module/mod_name.php.erb", "#{folder}/#{prefixed_name}.php")
|
160
|
+
template("templates/module/helper.php.erb", "#{folder}/helper.php")
|
161
|
+
template("templates/module/tmpl/default.php.erb", "#{folder}/tmpl/default.php")
|
162
|
+
end
|
163
|
+
|
164
|
+
def type
|
165
|
+
"module"
|
166
|
+
end
|
167
|
+
|
168
|
+
def type_short
|
169
|
+
"mod"
|
170
|
+
end
|
171
|
+
}
|
172
|
+
end
|
173
|
+
|
174
|
+
class ComponentGenerator < Generator
|
175
|
+
no_tasks{
|
176
|
+
def generate
|
177
|
+
super
|
178
|
+
|
179
|
+
view_name = "#{name}"
|
180
|
+
|
181
|
+
empty_directory("#{folder}")
|
182
|
+
template('templates/component/manifest.xml.erb', "#{folder}/manifest.xml")
|
183
|
+
template('templates/component/script.php.erb', "#{folder}/script.php")
|
184
|
+
|
185
|
+
# site
|
186
|
+
site_dir = "#{folder}/site"
|
187
|
+
empty_directory("#{site_dir}")
|
188
|
+
template('templates/component/site/com_name.php.erb', "#{site_dir}/#{prefixed_name}.php")
|
189
|
+
template('templates/component/site/controller.php.erb', "#{site_dir}/controller.php")
|
190
|
+
|
191
|
+
#site view
|
192
|
+
empty_directory("#{site_dir}/views/")
|
193
|
+
empty_directory("#{site_dir}/views/#{view_name}")
|
194
|
+
template('templates/component/site/views/view_name/view.html.erb', "#{site_dir}/views/#{view_name}/view.html.php")
|
195
|
+
empty_directory("#{site_dir}/views/#{view_name}/tmpl")
|
196
|
+
template('templates/component/site/views/view_name/tmpl/default.php.erb', "#{site_dir}/views/#{view_name}/tmpl/default.php")
|
197
|
+
template('templates/component/site/views/view_name/tmpl/default.xml.erb', "#{site_dir}/views/#{view_name}/tmpl/default.xml")
|
198
|
+
|
199
|
+
#site models
|
200
|
+
empty_directory("#{site_dir}/models/")
|
201
|
+
template('templates/component/site/models/com_model_name.erb', "#{site_dir}/models/com_#{name}.php")
|
202
|
+
|
203
|
+
#site controllers
|
204
|
+
empty_directory("#{site_dir}/controllers/")
|
205
|
+
|
206
|
+
#site language
|
207
|
+
empty_directory("#{site_dir}/language/")
|
208
|
+
empty_directory("#{site_dir}/language/en-GB/")
|
209
|
+
empty_directory("#{site_dir}/language/de-DE/")
|
210
|
+
|
211
|
+
# admin
|
212
|
+
admin_dir = "#{folder}/admin"
|
213
|
+
empty_directory("#{admin_dir}")
|
214
|
+
template('templates/component/admin/access.xml.erb', "#{admin_dir}/access.xml")
|
215
|
+
template('templates/component/admin/config.xml.erb', "#{admin_dir}/config.xml")
|
216
|
+
template('templates/component/admin/com_name.php.erb', "#{admin_dir}/com_#{name}.php")
|
217
|
+
template('templates/component/admin/controller.php.erb', "#{admin_dir}/controller.php")
|
218
|
+
|
219
|
+
#admin views
|
220
|
+
empty_directory("#{admin_dir}/views/")
|
221
|
+
empty_directory("#{admin_dir}/views/#{view_name}")
|
222
|
+
template('templates/component/admin/views/view_name/view.html.erb', "#{admin_dir}/views/#{view_name}/view.html.php")
|
223
|
+
empty_directory("#{admin_dir}/views/#{view_name}/tmpl")
|
224
|
+
template('templates/component/admin/views/view_name/tmpl/default.php.erb', "#{admin_dir}/views/#{view_name}/tmpl/default.php")
|
225
|
+
|
226
|
+
#admin models
|
227
|
+
empty_directory("#{admin_dir}/models/")
|
228
|
+
empty_directory("#{admin_dir}/models/forms/")
|
229
|
+
empty_directory("#{admin_dir}/models/rules/")
|
230
|
+
empty_directory("#{admin_dir}/models/fields/")
|
231
|
+
|
232
|
+
#admin controllers
|
233
|
+
empty_directory("#{admin_dir}/controllers/")
|
234
|
+
|
235
|
+
#admin helpers
|
236
|
+
empty_directory("#{admin_dir}/helpers/")
|
237
|
+
|
238
|
+
#admin tables
|
239
|
+
empty_directory("#{admin_dir}/tables/")
|
240
|
+
|
241
|
+
#admin language
|
242
|
+
empty_directory("#{admin_dir}/language/")
|
243
|
+
empty_directory("#{admin_dir}/language/en-GB/")
|
244
|
+
empty_directory("#{admin_dir}/language/de-DE/")
|
245
|
+
|
246
|
+
#admin sql
|
247
|
+
empty_directory("#{admin_dir}/sql/")
|
248
|
+
empty_directory("#{admin_dir}/sql/updates/")
|
249
|
+
|
250
|
+
end
|
251
|
+
|
252
|
+
def type
|
253
|
+
"component"
|
254
|
+
end
|
255
|
+
|
256
|
+
def type_short
|
257
|
+
"com"
|
258
|
+
end
|
259
|
+
}
|
260
|
+
end
|
261
|
+
|
262
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
2
|
+
<access component="<%= @name %>">
|
3
|
+
<section name="component">
|
4
|
+
<action name="core.admin" title="JACTION_ADMIN" description="JACTION_ADMIN_COMPONENT_DESC" />
|
5
|
+
<action name="core.manage" title="JACTION_MANAGE" description="JACTION_MANAGE_COMPONENT_DESC" />
|
6
|
+
<action name="core.create" title="JACTION_CREATE" description="JACTION_CREATE_COMPONENT_DESC" />
|
7
|
+
<action name="core.delete" title="JACTION_DELETE" description="JACTION_DELETE_COMPONENT_DESC" />
|
8
|
+
<action name="core.edit" title="JACTION_EDIT" description="JACTION_EDIT_COMPONENT_DESC" />
|
9
|
+
</section>
|
10
|
+
</access>
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
<html><body bgcolor="#FFFFFF"></body></html>
|
@@ -0,0 +1,46 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<extension type="component" version="1.6.0" method="upgrade">
|
3
|
+
|
4
|
+
<name><%= @name %></name>
|
5
|
+
<creationDate><%= @creation_date %></creationDate>
|
6
|
+
<author><%= @author %></author>
|
7
|
+
<version><%= @version %></version>
|
8
|
+
<description><%= @description %></description>
|
9
|
+
|
10
|
+
<!-- Site Main File Copy Section -->
|
11
|
+
<files folder="site">
|
12
|
+
<filename>com_<%= @name %>.php</filename>
|
13
|
+
<filename>controller.php</filename>
|
14
|
+
<folder>views</folder>
|
15
|
+
<folder>models</folder>
|
16
|
+
<folder>controllers</folder>
|
17
|
+
<folder>language</folder>
|
18
|
+
</files>
|
19
|
+
|
20
|
+
|
21
|
+
<administration>
|
22
|
+
|
23
|
+
<!-- Admin Main File Copy Section -->
|
24
|
+
<files folder="admin">
|
25
|
+
<!-- Admin Main File Copy Section -->
|
26
|
+
<filename>config.xml</filename>
|
27
|
+
<filename>access.xml</filename>
|
28
|
+
|
29
|
+
<filename><%= @name %>.php</filename>
|
30
|
+
<filename>controller.php</filename>
|
31
|
+
<!-- SQL files section -->
|
32
|
+
<folder>sql</folder>
|
33
|
+
<!-- tables files section -->
|
34
|
+
<folder>tables</folder>
|
35
|
+
<!-- models files section -->
|
36
|
+
<folder>models</folder>
|
37
|
+
<!-- views files section -->
|
38
|
+
<folder>views</folder>
|
39
|
+
<!-- controllers files section -->
|
40
|
+
<folder>controllers</folder>
|
41
|
+
<!-- helpers files section -->
|
42
|
+
<folder>helpers</folder>
|
43
|
+
</files>
|
44
|
+
</administration>
|
45
|
+
|
46
|
+
</extension>
|
@@ -0,0 +1,66 @@
|
|
1
|
+
<?php
|
2
|
+
// No direct access to this file
|
3
|
+
defined('_JEXEC') or die('Restricted access');
|
4
|
+
|
5
|
+
/**
|
6
|
+
* Script file of <%= @name %> component
|
7
|
+
*/
|
8
|
+
class com_<%= @name %>InstallerScript
|
9
|
+
{
|
10
|
+
/**
|
11
|
+
* method to install the component
|
12
|
+
*
|
13
|
+
* @return void
|
14
|
+
*/
|
15
|
+
function install($parent)
|
16
|
+
{
|
17
|
+
// $parent is the class calling this method
|
18
|
+
$parent->getParent()->setRedirectURL('index.php?option=com_<%= @name %>');
|
19
|
+
}
|
20
|
+
|
21
|
+
/**
|
22
|
+
* method to uninstall the component
|
23
|
+
*
|
24
|
+
* @return void
|
25
|
+
*/
|
26
|
+
function uninstall($parent)
|
27
|
+
{
|
28
|
+
// $parent is the class calling this method
|
29
|
+
echo '<p>' . JText::_('COM_<%= @name.upcase %>_UNINSTALL_TEXT') . '</p>';
|
30
|
+
}
|
31
|
+
|
32
|
+
/**
|
33
|
+
* method to update the component
|
34
|
+
*
|
35
|
+
* @return void
|
36
|
+
*/
|
37
|
+
function update($parent)
|
38
|
+
{
|
39
|
+
// $parent is the class calling this method
|
40
|
+
echo '<p>' . JText::_('COM_<%= @name.upcase %>_UPDATE_TEXT') . '</p>';
|
41
|
+
}
|
42
|
+
|
43
|
+
/**
|
44
|
+
* method to run before an install/update/uninstall method
|
45
|
+
*
|
46
|
+
* @return void
|
47
|
+
*/
|
48
|
+
function preflight($type, $parent)
|
49
|
+
{
|
50
|
+
// $parent is the class calling this method
|
51
|
+
// $type is the type of change (install, update or discover_install)
|
52
|
+
echo '<p>' . JText::_('COM_<%= @name.upcase %>_PREFLIGHT_' . $type . '_TEXT') . '</p>';
|
53
|
+
}
|
54
|
+
|
55
|
+
/**
|
56
|
+
* method to run after an install/update/uninstall method
|
57
|
+
*
|
58
|
+
* @return void
|
59
|
+
*/
|
60
|
+
function postflight($type, $parent)
|
61
|
+
{
|
62
|
+
// $parent is the class calling this method
|
63
|
+
// $type is the type of change (install, update or discover_install)
|
64
|
+
echo '<p>' . JText::_('COM_<%= @name.upcase %>_POSTFLIGHT_' . $type . '_TEXT') . '</p>';
|
65
|
+
}
|
66
|
+
}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<?php
|
2
|
+
// No direct access to this file
|
3
|
+
defined('_JEXEC') or die('Restricted access');
|
4
|
+
|
5
|
+
// import joomla controller library
|
6
|
+
jimport('joomla.application.component.controller');
|
7
|
+
|
8
|
+
// Get an instance of the controller prefixed by <%= @name %>
|
9
|
+
$controller = JController::getInstance('<%= @name %>');
|
10
|
+
|
11
|
+
// Perform the Request task
|
12
|
+
$controller->execute(JRequest::getCmd('task'));
|
13
|
+
|
14
|
+
// Redirect if set by the controller
|
15
|
+
$controller->redirect();
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<?php
|
2
|
+
// No direct access to this file
|
3
|
+
defined('_JEXEC') or die('Restricted access');
|
4
|
+
|
5
|
+
// import Joomla controller library
|
6
|
+
jimport('joomla.application.component.controller');
|
7
|
+
|
8
|
+
/**
|
9
|
+
* Component Controller
|
10
|
+
*/
|
11
|
+
class <%= @name %>Controller extends JController
|
12
|
+
{
|
13
|
+
|
14
|
+
}
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<?php
|
2
|
+
// No direct access to this file
|
3
|
+
defined('_JEXEC') or die('Restricted access');
|
4
|
+
|
5
|
+
// import Joomla controller library
|
6
|
+
jimport('joomla.application.component.controller');
|
7
|
+
|
8
|
+
/**
|
9
|
+
* Hello World Component Controller
|
10
|
+
*/
|
11
|
+
class <%= @name %>Controller extends JController
|
12
|
+
{
|
13
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
<html><body bgcolor="#FFFFFF"></body></html>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<?php
|
2
|
+
// No direct access to this file
|
3
|
+
defined('_JEXEC') or die('Restricted access');
|
4
|
+
|
5
|
+
// import joomla controller library
|
6
|
+
jimport('joomla.application.component.controller');
|
7
|
+
|
8
|
+
// Get an instance of the controller prefixed by <%= @name %>
|
9
|
+
$controller = JController::getInstance('<%= @name %>');
|
10
|
+
|
11
|
+
// Perform the Request task
|
12
|
+
$controller->execute(JRequest::getCmd('task'));
|
13
|
+
|
14
|
+
// Redirect if set by the controller
|
15
|
+
$controller->redirect();
|
@@ -0,0 +1,59 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<install type="<%= @type %>" version="1.6.0">
|
3
|
+
|
4
|
+
<name><%= @name %></name>
|
5
|
+
<libraryname><%= @name %></libraryname>
|
6
|
+
<version><%= @version %></version>
|
7
|
+
|
8
|
+
<description>Contains php-activerecord 1.0 from http://www.phpactiverecord.org/</description>
|
9
|
+
|
10
|
+
<creationDate>January 2011</creationDate>
|
11
|
+
|
12
|
+
<author>Simon Harrer</author>
|
13
|
+
<authorEmail>simon.harrer@feki.de</authorEmail>
|
14
|
+
<authorUrl>http://www.feki.de/</authorUrl>
|
15
|
+
|
16
|
+
<copyright>Feki.de e.V. (c)</copyright>
|
17
|
+
<license>License Info</license>
|
18
|
+
|
19
|
+
|
20
|
+
<!-- Runs on install/uninstall/update -->
|
21
|
+
<scriptfile>script.php</scriptfile>
|
22
|
+
|
23
|
+
<!-- Site Main File Copy Section -->
|
24
|
+
<files folder="site">
|
25
|
+
<filename><%= @name %>.php</filename>
|
26
|
+
<filename>controller.php</filename>
|
27
|
+
<folder>views</folder>
|
28
|
+
<folder>models</folder>
|
29
|
+
<folder>language</folder>
|
30
|
+
</files>
|
31
|
+
|
32
|
+
|
33
|
+
<administration>
|
34
|
+
|
35
|
+
<!-- Admin Main File Copy Section -->
|
36
|
+
<files folder="admin">
|
37
|
+
<!-- Admin Main File Copy Section -->
|
38
|
+
<filename>config.xml</filename>
|
39
|
+
<filename>access.xml</filename>
|
40
|
+
|
41
|
+
<filename><%= @name %>.php</filename>
|
42
|
+
<filename>controller.php</filename>
|
43
|
+
<!-- SQL files section -->
|
44
|
+
<folder>sql</folder>
|
45
|
+
<!-- tables files section -->
|
46
|
+
<folder>tables</folder>
|
47
|
+
<!-- models files section -->
|
48
|
+
<folder>models</folder>
|
49
|
+
<!-- views files section -->
|
50
|
+
<folder>views</folder>
|
51
|
+
<!-- controllers files section -->
|
52
|
+
<folder>controllers</folder>
|
53
|
+
<!-- helpers files section -->
|
54
|
+
<folder>helpers</folder>
|
55
|
+
</files>
|
56
|
+
</administration>
|
57
|
+
|
58
|
+
|
59
|
+
</install>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<?php
|
2
|
+
class mod<%= @name.capitalize %>Helper
|
3
|
+
{
|
4
|
+
/**
|
5
|
+
* Retrieves the hello message
|
6
|
+
*
|
7
|
+
* @param array $params An object containing the module parameters
|
8
|
+
* @access public
|
9
|
+
*/
|
10
|
+
function getHello( $params )
|
11
|
+
{
|
12
|
+
return 'Hello, World!';
|
13
|
+
}
|
14
|
+
}
|