Link to sandbox: http://drupal.org/sandbox/el_toro/1809344
Git: git clone --branch 7.x-1.x http://git.drupal.org/sandbox/el_toro/1809344.git

The EPS Field module enables Drupal to provide "pseudo-native" handling of the EPS (Encapsulated PostScript) vector format by providing a custom field to serve this purpose. This would allow designers working on Drupal projects to upload design assets received from clients without having to worry about conversions.

Uploaded EPS files are converted to PNG for display and can be processed by Imagecache just as files uploaded using the regular image field. The module has been tested with files using CMYK and PMS color spaces and maintains acceptable consistency in colors between conversion.

NB: The field also accepts png, gif and jpeg formats, so there is no need to have an extra field in a content type if you want to be able to use those formats as well.

The module is being used by the Mobile Marketing Association to generate the images on this page http://www.mmaglobal.com/events/all-sponsors

Manual reviews of other modules:
https://drupal.org/node/2106629#comment-7941605
https://drupal.org/node/2099971#comment-7960681
https://drupal.org/node/2102313#comment-7961517

Comments

PA robot’s picture

We are currently quite busy with all the project applications and we prefer projects with a review bonus. Please help reviewing and put yourself on the high priority list, then we will take a look at your project right away :-)

Also, you should get your friends, colleagues or other community members involved to review this application. Let them go through the review checklist and post a comment that sets this issue to "needs work" (they found some problems with the project) or "reviewed & tested by the community" (they found no major flaws).

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

pranit84’s picture

Provide the git clone details.

pranit84’s picture

Issue summary: View changes

Added an example of where it's being used.

el_toro’s picture

hi Pranit, git details provided.

driki_’s picture

Hi apparently there is just a small issue with ventral.org :

FILE: /var/www/drupal-7-pareview/pareview_temp/README.txt
--------------------------------------------------------------------------------
FOUND 0 ERROR(S) AND 1 WARNING(S) AFFECTING 1 LINE(S)
--------------------------------------------------------------------------------
47 | WARNING | Line exceeds 80 characters; contains 81 characters
--------------------------------------------------------------------------------

also in imagefield_eps.module in function imagefield_eps_path_flush($uri)

 $target = drupal_realpath(file_build_uri('imagefield_eps_images')) . '/' . $filename;
  if (file_exists($target)) {
    unlink($target);
  }

may be changed with :

 $target = drupal_realpath(file_build_uri('imagefield_eps_images')) . '/' . $filename;
  if (file_exists($target)) {
     file_unmanaged_delete($image_path);
  }

somewhat like it's done in Image module

el_toro’s picture

Hi drico, thanks for the pointers! changes made...

el_toro’s picture

Issue summary: View changes

Added git instructions

grandivory’s picture

Status: Needs review » Needs work

Problems preventing acceptance of the module:

  • The Adobe color profiles that you included in your module fall under a different license than GPL 2+. Unfortunately, this will prevent this particular module from being hosted on drupal.org due to the licensing retrictions documented here.
  • I get an error when uploading an EPS image into a custom node type as follows:

    PDOException: SQLSTATE[HY000]: General error: 1366 Incorrect integer value: '' for column 'field_eps_image_width' at row 1: INSERT INTO {field_data_field_eps_image} (entity_type, entity_id, revision_id, bundle, delta, language, field_eps_image_fid, field_eps_image_alt, field_eps_image_title, field_eps_image_width, field_eps_image_height) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5, :db_insert_placeholder_6, :db_insert_placeholder_7, :db_insert_placeholder_8, :db_insert_placeholder_9, :db_insert_placeholder_10); Array ( [:db_insert_placeholder_0] => node [:db_insert_placeholder_1] => 2 [:db_insert_placeholder_2] => 2 [:db_insert_placeholder_3] => mega_ultra_content_type [:db_insert_placeholder_4] => 0 [:db_insert_placeholder_5] => und [:db_insert_placeholder_6] => 1 [:db_insert_placeholder_7] => Dragon! [:db_insert_placeholder_8] => Dragon! [:db_insert_placeholder_9] => [:db_insert_placeholder_10] => ) in field_sql_storage_field_storage_write() (line 451 of C:\Users\Matt\workspace\drupal\modules\field\modules\field_sql_storage\field_sql_storage.module).

    It looks like the EPS is uploading properly, but the png is not being generated properly, and the module doesn't fail gracefully.
    Specifically, I'm running this on Windows 7 with GD 2.0.34 installed. Running the convert command directly (that is built on lines 173-175) gives the error "Invalid Parameter - -profile"

Other things that would be nice to fix/add:

  • It would be nice to have a configurable file locaton for your converted pngs, rather than placing them all under 'imagefield_eps_images'
  • When uninstalling the module, it leaves all of the uploaded and converted files in the sites/default/files directory. As you can't uninstall the module while any imagefield_eps field is in use, these files are unused at the time of uninstall and should probably be deleted.
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.

el_toro’s picture

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

Hi grandivory,

Thanks for taking time to review the module. I have had a lot of downtime and only recently got time to address the issues mentioned above.

- I have removed the color profiles from the module and provided instructions on how to get them in the README file.

- Did you have Imagemagick installed? That could be the cause of the invalid parameter error and inherently the mysql error...

The configurable folder and deletion of files after uninstall are things I can look at now that I have some time.

Thanks again.

kscheirer’s picture

Status: Needs review » Needs work
  • You can remove the .gitignore file from the repo.
  • If your module requires imagemagick, can you implement a hook_requirements() in your install file that checks for it?
  • The constant NUM_COLORS should be namespaced to your module as IMAGEFIELD_EPS_NUM_COLORS.
  • Consider the Libraries API module is a recommended method for adding 3rd party dependencies without directly including the code on Drupal.org. This would also let you ensure that the color profiles are properly included.

Namespace and missing requirements are blocking issues, but otherwise this would get RTBC from me. The module looks very useful.

----
Top Shelf Modules - Crafted, Curated, Contributed.

el_toro’s picture

Status: Needs work » Needs review

Hi kscheirer,

Thank you for taking time to review the module. I have:

- removed the .gitignore file from the repo
- implemented hook_requirements() to check for the Imagemagick "convert" utility.
- namespaced the NUM_COLORS constant to IMAGEFIELD_EPS_NUM_COLORS.

I will work on using the Libraries API to include the color profiles :)

PA robot’s picture

Status: Needs review » Needs work

There are some errors reported by automated review tools, did you already check them? See http://pareview.sh/pareview/httpgitdrupalorgsandboxel_toro1809344git

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

kscheirer’s picture

Status: Needs work » Reviewed & tested by the community

Those are minor errors, robot :) Thanks for those updates el_toro.

----
Top Shelf Modules - Crafted, Curated, Contributed.

el_toro’s picture

Thanks for taking time to look into this kscheirer!

el_toro’s picture

Issue summary: View changes

added reviews of other modules

el_toro’s picture

Issue summary: View changes

added another review

klausi’s picture

Status: Reviewed & tested by the community » Needs work

Sorry for the delay, but you forgot to add the "PAReview: review bonus" tag and you did not do all manual reviews, sometimes you just provided the output of an automated review tool. I removed the automated reviews from the issue summary.

manual review:

  1. the project page could be more clear. Does this module add a field type or a widget? What tool/library is used to perform EPS conversions? See also https://drupal.org/node/997024
  2. imagefield_eps_image_conversion(): so you have to invoke exec() which might be disabled for security reasons on productions sites. That should also be mentioned on the project page.
  3. imagefield_eps_image_conversion(): usually the file name is user provided and I assume it has been sanitized already by Drupal at this point? You should still use escapeshellarg() to be on the safe side here, so this is kind of a security blocker right now although I did not try to exploit it.
el_toro’s picture

Hi klausi,

Thank you very much for the review. I knew that two of the reviews were not manual and that's why I did not add the "PAReview: review bonus" tag.

I have updated the project description page and wrapped the $source and $destination strings in escapeshellarg().

el_toro’s picture

Issue summary: View changes

removed automated review comments

el_toro’s picture

Issue summary: View changes

added link to review of a module

el_toro’s picture

Issue tags: +PAreview: review bonus

Adding review bonus tag...

el_toro’s picture

Status: Needs work » Needs review
klausi’s picture

Status: Needs review » Fixed

Cool, since this was otherwise RTBC already ...

Thanks for your contribution, el_toro!

I updated your account so you can promote this to a full project and also create new projects as either a sandbox or a "full" project.

Here are some recommended readings to help with excellent maintainership:

You can find lots more contributors chatting on IRC in #drupal-contribute. So, come hang out and stay involved!

Thanks, also, for your patience with the review process. Anyone is welcome to participate in the review process. Please consider reviewing other projects that are pending review. I encourage you to learn more about that process and join the group of reviewers.

Thanks to the dedicated reviewer(s) as well.

el_toro’s picture

Thanks klausi and everyone else who gave their time to review this. I will definitely try to give a few hours every week to reviewing stuff in the issue queue!

Automatically closed -- issue fixed for 2 weeks with no activity.

Anonymous’s picture

Issue summary: View changes

added manual review of another project.