Modmaker must be run on Druapal 7 PHP 5.3 (stristr() using boolean value)

Install the module and it is exposed in the navigation menu or at site.com/modmaker (to UID 1)
You can configure permissions for other roles.

Modmaker does not require configuration and has no admin form of its own.

Modmaker creates (and optionally installs) a working module with a selection of
working forms; simple, dynamic and ajax. Ready for a developer to begin writing
a module.

The new module is build from a set of scaffold templates which can be cloned and
edited as the user desires.

Simply pick the template set from the dropdown, add a couple of values such as a
name for the module, description and package.

Choose where you would like the module to be placed, and if you want it
imediatly installed. Deselect any form types you dont want, and additional
skeleton functions (ie: block, theme, menu, etc)

Click submit to create the new file set.

While similar to http://drupal.org/project/module_builder and these two modules perform the same function, creating module scaffolding, they provide two different approaches.

Modmaker does not integrate with Drush. Modmaker uses a powerful templating system allowing developers to keep a record, and build module skeletons, with chunks of their own favorite code.

The supplied templates (Drupal 7 atm) create a working module which demonstraites many popular tasks and acts as an aid-de-memoire. The basic principle is its quicker and easier to delete code, than to research and create it, so the textfield in the simple form has almost all its atrributes included (though some are commented out), the developer need only delete the attributes they do not want.

For a full description of the module, visit the project page:
http://drupal.org/sandbox/lucsan/1297782

To submit bug reports and feature suggestions, or to track changes:
http://drupal.org/sandbox/issues/lucsan/1297782

CommentFileSizeAuthor
#10 patch.txt1.3 KBbhosmer
#1 patch.txt245 bytesbhosmer

Comments

bhosmer’s picture

Status: Needs review » Needs work
StatusFileSize
new245 bytes

One in line modmaker.module on line 809

Once I enable it, where do I go to use it?

lucsan’s picture

Thanks for the swift feedback bhosmer. Your quite right. I need to add the add permissions to the instructions for the menu item instruction, and attend to line 809, which I will do as soon as I can.

bhosmer’s picture

I was logged in as UID 1, should there be some config page?

lucsan’s picture

Nope, no config, the link should appear in the navigation menu, and with site.com/modmaker or site.com/?q=modmaker.

lucsan’s picture

Status: Needs work » Needs review

Have corrected the bug/syntax error on line 809. Removed superfluous functions from modmaker.module and updated the use of t() in forms.

bhosmer’s picture

Would it make sense to make it part of the administrative menu instead of the navigation menu?

After I enabled the navigation menu, I found your menu links.

I then filled out the form, leaving most as default values. After submitting the form to create a new module I get this:

Warning: mkdir() [function.mkdir]: Permission denied in modmaker_make_module_directory() (line 515 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: scandir(/Applications/MAMP/htdocs/drupal-7.14/sites/default/modules/) [function.scandir]: failed to open dir: No such file or directory in modmaker_scan_for_directory() (line 544 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: scandir() [function.scandir]: (errno 0): Undefined error: 0 in modmaker_scan_for_directory() (line 544 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: Invalid argument supplied for foreach() in modmaker_scan_for_directory() (line 545 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: mkdir() [function.mkdir]: No such file or directory in modmaker_make_module_directory() (line 522 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fopen(/Applications/MAMP/htdocs/drupal-7.14/sites/default/modules/crazy_module/crazy_module.admin.inc) [function.fopen]: failed to open stream: No such file or directory in modmaker_make_module_files() (line 288 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fwrite() expects parameter 1 to be resource, boolean given in modmaker_make_module_files() (line 289 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fclose() expects parameter 1 to be resource, boolean given in modmaker_make_module_files() (line 290 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fopen(/Applications/MAMP/htdocs/drupal-7.14/sites/default/modules/crazy_module/crazy_module.css) [function.fopen]: failed to open stream: No such file or directory in modmaker_make_module_files() (line 288 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fwrite() expects parameter 1 to be resource, boolean given in modmaker_make_module_files() (line 289 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fclose() expects parameter 1 to be resource, boolean given in modmaker_make_module_files() (line 290 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fopen(/Applications/MAMP/htdocs/drupal-7.14/sites/default/modules/crazy_module/crazy_module.data.inc) [function.fopen]: failed to open stream: No such file or directory in modmaker_make_module_files() (line 288 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fwrite() expects parameter 1 to be resource, boolean given in modmaker_make_module_files() (line 289 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fclose() expects parameter 1 to be resource, boolean given in modmaker_make_module_files() (line 290 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fopen(/Applications/MAMP/htdocs/drupal-7.14/sites/default/modules/crazy_module/crazy_module.info) [function.fopen]: failed to open stream: No such file or directory in modmaker_make_module_files() (line 288 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fwrite() expects parameter 1 to be resource, boolean given in modmaker_make_module_files() (line 289 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fclose() expects parameter 1 to be resource, boolean given in modmaker_make_module_files() (line 290 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fopen(/Applications/MAMP/htdocs/drupal-7.14/sites/default/modules/crazy_module/crazy_module.install) [function.fopen]: failed to open stream: No such file or directory in modmaker_make_module_files() (line 288 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fwrite() expects parameter 1 to be resource, boolean given in modmaker_make_module_files() (line 289 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fclose() expects parameter 1 to be resource, boolean given in modmaker_make_module_files() (line 290 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fopen(/Applications/MAMP/htdocs/drupal-7.14/sites/default/modules/crazy_module/crazy_module.js) [function.fopen]: failed to open stream: No such file or directory in modmaker_make_module_files() (line 288 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fwrite() expects parameter 1 to be resource, boolean given in modmaker_make_module_files() (line 289 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fclose() expects parameter 1 to be resource, boolean given in modmaker_make_module_files() (line 290 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fopen(/Applications/MAMP/htdocs/drupal-7.14/sites/default/modules/crazy_module/crazy_module.module) [function.fopen]: failed to open stream: No such file or directory in modmaker_make_module_files() (line 288 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fwrite() expects parameter 1 to be resource, boolean given in modmaker_make_module_files() (line 289 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fclose() expects parameter 1 to be resource, boolean given in modmaker_make_module_files() (line 290 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fopen(/Applications/MAMP/htdocs/drupal-7.14/sites/default/modules/crazy_module/crazy_module.test) [function.fopen]: failed to open stream: No such file or directory in modmaker_make_module_files() (line 288 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fwrite() expects parameter 1 to be resource, boolean given in modmaker_make_module_files() (line 289 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fclose() expects parameter 1 to be resource, boolean given in modmaker_make_module_files() (line 290 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fopen(/Applications/MAMP/htdocs/drupal-7.14/sites/default/modules/crazy_module/crazy_module.user.inc) [function.fopen]: failed to open stream: No such file or directory in modmaker_make_module_files() (line 288 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fwrite() expects parameter 1 to be resource, boolean given in modmaker_make_module_files() (line 289 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fclose() expects parameter 1 to be resource, boolean given in modmaker_make_module_files() (line 290 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fopen(/Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/scaffolds/modmaker.template.7.base.1.admin.inc.api) [function.fopen]: failed to open stream: No such file or directory in modmaker_get_template_file() (line 686 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: filesize() [function.filesize]: stat failed for /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/scaffolds/modmaker.template.7.base.1.admin.inc.api in modmaker_get_template_file() (line 687 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fread() expects parameter 1 to be resource, boolean given in modmaker_get_template_file() (line 687 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fclose() expects parameter 1 to be resource, boolean given in modmaker_get_template_file() (line 688 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fopen(/Applications/MAMP/htdocs/drupal-7.14/sites/default/modules/crazy_module/crazy_module.base.1.admin.inc) [function.fopen]: failed to open stream: No such file or directory in modmaker_make_module_files() (line 288 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fwrite() expects parameter 1 to be resource, boolean given in modmaker_make_module_files() (line 289 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fclose() expects parameter 1 to be resource, boolean given in modmaker_make_module_files() (line 290 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fopen(/Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/scaffolds/modmaker.template.7.base.1.data.inc.api) [function.fopen]: failed to open stream: No such file or directory in modmaker_get_template_file() (line 686 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: filesize() [function.filesize]: stat failed for /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/scaffolds/modmaker.template.7.base.1.data.inc.api in modmaker_get_template_file() (line 687 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fread() expects parameter 1 to be resource, boolean given in modmaker_get_template_file() (line 687 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fclose() expects parameter 1 to be resource, boolean given in modmaker_get_template_file() (line 688 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fopen(/Applications/MAMP/htdocs/drupal-7.14/sites/default/modules/crazy_module/crazy_module.base.1.data.inc) [function.fopen]: failed to open stream: No such file or directory in modmaker_make_module_files() (line 288 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fwrite() expects parameter 1 to be resource, boolean given in modmaker_make_module_files() (line 289 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fclose() expects parameter 1 to be resource, boolean given in modmaker_make_module_files() (line 290 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fopen(/Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/scaffolds/modmaker.template.7.base.1.info.api) [function.fopen]: failed to open stream: No such file or directory in modmaker_get_template_file() (line 686 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: filesize() [function.filesize]: stat failed for /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/scaffolds/modmaker.template.7.base.1.info.api in modmaker_get_template_file() (line 687 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fread() expects parameter 1 to be resource, boolean given in modmaker_get_template_file() (line 687 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fclose() expects parameter 1 to be resource, boolean given in modmaker_get_template_file() (line 688 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fopen(/Applications/MAMP/htdocs/drupal-7.14/sites/default/modules/crazy_module/crazy_module.base.1.info) [function.fopen]: failed to open stream: No such file or directory in modmaker_make_module_files() (line 288 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fwrite() expects parameter 1 to be resource, boolean given in modmaker_make_module_files() (line 289 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fclose() expects parameter 1 to be resource, boolean given in modmaker_make_module_files() (line 290 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fopen(/Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/scaffolds/modmaker.template.7.base.1.install.api) [function.fopen]: failed to open stream: No such file or directory in modmaker_get_template_file() (line 686 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: filesize() [function.filesize]: stat failed for /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/scaffolds/modmaker.template.7.base.1.install.api in modmaker_get_template_file() (line 687 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fread() expects parameter 1 to be resource, boolean given in modmaker_get_template_file() (line 687 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fclose() expects parameter 1 to be resource, boolean given in modmaker_get_template_file() (line 688 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fopen(/Applications/MAMP/htdocs/drupal-7.14/sites/default/modules/crazy_module/crazy_module.base.1.install) [function.fopen]: failed to open stream: No such file or directory in modmaker_make_module_files() (line 288 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fwrite() expects parameter 1 to be resource, boolean given in modmaker_make_module_files() (line 289 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fclose() expects parameter 1 to be resource, boolean given in modmaker_make_module_files() (line 290 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fopen(/Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/scaffolds/modmaker.template.7.base.1.module.api) [function.fopen]: failed to open stream: No such file or directory in modmaker_get_template_file() (line 686 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: filesize() [function.filesize]: stat failed for /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/scaffolds/modmaker.template.7.base.1.module.api in modmaker_get_template_file() (line 687 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fread() expects parameter 1 to be resource, boolean given in modmaker_get_template_file() (line 687 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fclose() expects parameter 1 to be resource, boolean given in modmaker_get_template_file() (line 688 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fopen(/Applications/MAMP/htdocs/drupal-7.14/sites/default/modules/crazy_module/crazy_module.base.1.module) [function.fopen]: failed to open stream: No such file or directory in modmaker_make_module_files() (line 288 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fwrite() expects parameter 1 to be resource, boolean given in modmaker_make_module_files() (line 289 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fclose() expects parameter 1 to be resource, boolean given in modmaker_make_module_files() (line 290 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fopen(/Applications/MAMP/htdocs/drupal-7.14/sites/default/modules/crazy_module/crazy_module.css) [function.fopen]: failed to open stream: No such file or directory in modmaker_make_module_files() (line 295 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fwrite() expects parameter 1 to be resource, boolean given in modmaker_make_module_files() (line 296 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fclose() expects parameter 1 to be resource, boolean given in modmaker_make_module_files() (line 297 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fopen(/Applications/MAMP/htdocs/drupal-7.14/sites/default/modules/crazy_module/crazy_module.js) [function.fopen]: failed to open stream: No such file or directory in modmaker_make_module_files() (line 300 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fwrite() expects parameter 1 to be resource, boolean given in modmaker_make_module_files() (line 301 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Warning: fclose() expects parameter 1 to be resource, boolean given in modmaker_make_module_files() (line 302 of /Applications/MAMP/htdocs/drupal-7.14/sites/all/modules/modmaker/modmaker.module).
Status message
directory created /sites/default/modules
directory created /Applications/MAMP/htdocs/drupal-7.14/sites/default/modules/crazy_module
writen file /Applications/MAMP/htdocs/drupal-7.14/sites/default/modules/crazy_module/crazy_module.admin.inc
writen file /Applications/MAMP/htdocs/drupal-7.14/sites/default/modules/crazy_module/crazy_module.css
writen file /Applications/MAMP/htdocs/drupal-7.14/sites/default/modules/crazy_module/crazy_module.data.inc
writen file /Applications/MAMP/htdocs/drupal-7.14/sites/default/modules/crazy_module/crazy_module.info
writen file /Applications/MAMP/htdocs/drupal-7.14/sites/default/modules/crazy_module/crazy_module.install
writen file /Applications/MAMP/htdocs/drupal-7.14/sites/default/modules/crazy_module/crazy_module.js
writen file /Applications/MAMP/htdocs/drupal-7.14/sites/default/modules/crazy_module/crazy_module.module
writen file /Applications/MAMP/htdocs/drupal-7.14/sites/default/modules/crazy_module/crazy_module.test
writen file /Applications/MAMP/htdocs/drupal-7.14/sites/default/modules/crazy_module/crazy_module.user.inc
writen file /Applications/MAMP/htdocs/drupal-7.14/sites/default/modules/crazy_module/crazy_module.base.1.admin.inc
writen file /Applications/MAMP/htdocs/drupal-7.14/sites/default/modules/crazy_module/crazy_module.base.1.data.inc
writen file /Applications/MAMP/htdocs/drupal-7.14/sites/default/modules/crazy_module/crazy_module.base.1.info
writen file /Applications/MAMP/htdocs/drupal-7.14/sites/default/modules/crazy_module/crazy_module.base.1.install
writen file /Applications/MAMP/htdocs/drupal-7.14/sites/default/modules/crazy_module/crazy_module.base.1.module
writen file /Applications/MAMP/htdocs/drupal-7.14/sites/default/modules/crazy_module/css/crazy_module.css
writen file /Applications/MAMP/htdocs/drupal-7.14/sites/default/modules/crazy_module/js/crazy_module.js
modmaker flushed all caches.

lucsan’s picture

Once again, thanks for the awesome feedback bhosmer.

There are directory permissions issues, As mkdir was not allowed to make a folder under sites/all|default/modules (which ever you chose) it couldn't write out the files. Perhaps I need to add some try catch around the mkdir, and some instruction about setting directory permissions.

In the meantime if you set write perms on the target folder it should create the new module files for you.

I thought about the admin menu, however as modmaker doesn't expose an admin interface I plumped for a standard menu listing, I shall reconsider this.

bhosmer’s picture

I kind of like whole module_builder adds to the development menu in the admin section. It seems intuitive to look for it there.

lucsan’s picture

Have added Modmaker to the admin menu.
Have added an admin form and put default values in variable_set.
Have updated code to allow user to stipulate the module save location (may prevent auto install and template cloning).
Have updated code to warn user Modmaker is unable to write to sites/all|default/modules.

bhosmer’s picture

Status: Needs review » Reviewed & tested by the community
StatusFileSize
new1.3 KB

Pretty sweet!

I think I wasn't clear with my menu placement comment earlier.

My suggestion might be to move it under admin/config/development instead of creating a new item at the root menu.

Check out the patch for what I mean.

It is just a personal opinion about where to find it. I think I would classify this module with things like coder, devel, and module_builder and this is where they are found.

lucsan’s picture

Cool, I agree seems like the most logical place.

I'll implement your patch first thing tomorrow.

Thanks

lucsan’s picture

bhsomer, your patch went in nice and sweet.

I've left it so Modmaker is also exposed on the navigation menu as this may be preferred by some, but I agree, config/development is undoubtedly the appropriate place for it.

Once again, Thanks for the all the time and effort you have put in on reviewing my project.

bhosmer’s picture

You're welcome. Thanks for putting the time and effort in to creating this and not giving up. I think it's a valuable contribution and definitely is an asset.

stborchert’s picture

Status: Reviewed & tested by the community » Needs work

Back to "needs work" since there are several tasks to do:

Master Branch
It appears you are working in the "master" branch in git. You should really be working in a version specific branch. The most direct documentation on this is Moving from a master branch to a version branch. For additional resources please see the documentation about release naming conventions and creating a branch in git.
Major coding standards / best practice issues
An automated review of your project has found some issues with your code; As coding standards make sure projects are coded in a consistent style we please you to have a look at the report and try to fix them. Anyway, note that issues found are possibly false positives and fixing all issues is not a requirement for getting through the application process.

You can find the results of the automated report at http://ventral.org/pareview/httpgitdrupalorgsandboxlucsan1297782git.

lucsan’s picture

Hi stBorchert,

Thanks for your through and comprehensive review of the module. I shall be implementing the changes you recommend at my soonest availability.

lucsan’s picture

Status: Needs work » Needs review

Have addressed the issues raised by stBorchert. The moody branches (inc master) have been removed from the repository and the file stack now passes cleanly through ventral.org without error.

Thanks for all the feedback guys.

jurcello’s picture

Status: Needs review » Needs work

Functional review

- There is no validation on the modmaker form. I was able to create a module containing a space in the name. My suggestion would be to add a module title and a machine name field to the form.
- Using the modmaker template creator, my templates where saved in the scaffolds folder. This will be overwritten if the module is updated. It would be a good idea to place these files outside the module directory, for instance in the library folder.
- I don't see the advantage of the admin tab (admin/config/development/modmaker/admin). It looks like a sort of duplicate of the use tab. Furthermore the module location is a textfield, whereas in the use tab this is a selectbox (which I prefer).
- Is the data include a feature which is used in many contrib modules? I don't recognize it, and if it is not a best practice, I recommend to discard this include.
- The naming of the user include is maybe not the right one. Maybe ommit this as well.
- Is it possible to add a custom include file in the template sets? If so, this is not well documented (or I didn't read it good enough).
- You have added only a view module file options. Are you planning to add more? I think the ones you choose are ok.

Code review

- You have an empty modmaker.tpl.php file as well as an empty install file. Please remove these files.
- You use the global variable $_modmaker_modmaker, which you fill from the variable $mod_values. Why don't you store the values you set in $_modmaker_modmaker in $mod_values and pass this variable to the other functions by reference? Maybe you can create a simple class for building the module, instead of the helper functions you use now.
- You have a default module save folder if the save there are no module_save_folders (http://drupalcode.org/sandbox/lucsan/1297782.git/blob/7e11de0705abf2b462...). I think 'sites/default/files' is not the right one though. Maybe you could set a message telling that the normal folders are not writable.
- I think you should implement TODO in 407 (http://drupalcode.org/sandbox/lucsan/1297782.git/blob/7e11de0705abf2b462...). Because you store the last used values of a custom module, it's very easy to overwrite an already created custom module.
- There is an unused variable in the admin.inc on line 13. Either use it or delete it (http://drupalcode.org/sandbox/lucsan/1297782.git/blob/7e11de0705abf2b462...).

Suggestion
- You use functions to generate some files prefixed by modmaker_make_template_ (http://drupalcode.org/sandbox/lucsan/1297782.git/blob/7e11de0705abf2b462...). This might be handy if the user wants to create it's own templates. This is not possible now. Maybe you could provide a hook system so other developers can extend your module.

Overall
This looks like a handy module. It needs some work however to be a real time-saver.

lucsan’s picture

Wow Jurcello,

Thanks for your comprehensive and detailed review. Be assured I will be implementing many if not all of the improvements you offer as soon as time permits.

Once again, thanks

PA robot’s picture

Status: Needs work » Closed (won't fix)

Closing due to lack of activity. Feel free to reopen if you are still working on this application.

I'm a robot and this is an automated message from Project Applications Scraper.

PA robot’s picture

Issue summary: View changes

Updated instructions/description to include menu location and configuring.