jdt 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
}
|