WordPress.org

Make WordPress Core

Opened 5 years ago

Last modified 6 days ago

#6531 assigned defect (bug)

Recursively search for files in theme and plugin editors

Reported by: torbens Owned by: chsxf
Priority: normal Milestone: Future Release
Component: Template Version: 2.5
Severity: minor Keywords: has-patch needs-testing
Cc: torbens, christophe@…, hm2k, Ken@…, daedalon@…, mdhansen@…

Description

Themes (like Subtle: http://gluedideas.com/downloads/subtle/) might contain numerous CSS files. The theme editor, however, does not recognize any other CSS files other than style.css.

The files might be located some levels deeper in sub directories like '/wp-content/themes/glued-ideas-subtle-01/assets/css/print.css'.

Attachments (3)

patch-recursive-editors.diff (10.5 KB) - added by chsxf 2 years ago.
24050.diff (2.4 KB) - added by MikeHansenMe 2 months ago.
patch from 24050 that was a duplicate of this ticket.
24050.2.diff (2.4 KB) - added by MikeHansenMe 2 weeks ago.
should fix the bug mentioned in comment 19

Download all attachments as: .zip

Change History (24)

comment:1 lloydbudd5 years ago

  • Milestone changed from 2.5.1 to 2.6

comment:2 mrmist4 years ago

  • Keywords needs-patch added

Could be lumped in with #6632 maybe. No point in having 2 generic editors. Not sure how common buried stylesheets are.

comment:3 mrmist4 years ago

See also #4131. This is possibly a dupe.

comment:4 Denis-de-Bernardy4 years ago

  • Type changed from defect (bug) to enhancement

It's not common, but it occurs. The patch from #6632 partially sorts this if the files are in a direct subfolder. If you've a file any deeper, it won't do any good. example:

wp-content/themes/sem-reloaded/skins/copywriter-blue/skin.css

comment:5 Denis-de-Bernardy4 years ago

  • Summary changed from CSS files are not shown in Theme Editor to Recursively search for files in theme and plugin editors

the same may also apply to plugins.

comment:6 Denis-de-Bernardy4 years ago

  • Milestone changed from 2.9 to Future Release

comment:7 chsxf2 years ago

  • Cc christophe@… added
  • Keywords has-patch needs-testing added; needs-patch removed
  • Owner changed from anonymous to chsxf
  • Status changed from new to assigned

Patch is attached.

It includes :

  • recursive search for files in both Theme and Plugin editors
  • sorting of files by path and name
  • inclusion of JavaScript files in the Theme editor

comment:8 hm2k21 months ago

  • Cc hm2k added
  • Type changed from enhancement to defect (bug)

It seem it will already recursively search for PHP files.

Is there any logical reason why you would not display all of the theme's CSS files from subdirectories in the theme editor?

Changing to a bug because expected behaviour is that all CSS files in the theme are shown.

Last edited 21 months ago by hm2k (previous) (diff)

comment:9 chsxf21 months ago

The patch i've submitted two months ago brings this fonctionnality for CSS, JS and PHP files.

comment:10 hm2k21 months ago

Is there any reason why you would NOT want to apply this patch?

Is there any reason you would NOT want this feature?

This bug has been open for 4 years, is there any reason why this bug cannot be closed?

Thanks!

comment:11 WraithKenny17 months ago

  • Cc Ken@… added

comment:12 prionkor12 months ago

  • Type changed from defect (bug) to enhancement

I would like to see this on future release. Perhaps the directory structure with js/jq implement.

comment:14 SergeyBiryukov4 months ago

#23500 was marked as a duplicate.

comment:16 SergeyBiryukov2 months ago

#24050 was marked as a duplicate.

MikeHansenMe2 months ago

patch from 24050 that was a duplicate of this ticket.

comment:17 Daedalon2 months ago

  • Cc daedalon@… added
  • Type changed from enhancement to defect (bug)

Thanks Mike for the patch! Verified, works. Also improves the coding style to match http://make.wordpress.org/core/handbook/coding-standards/php/.

I'd like to see this included in 3.6 after two improvements:

  1. Use curly braces with all ifs. Avoids hassle and bugs in later edits. A decent percentage of bugs are caused by editing code like this:
} else {
	if ( plugin_basename("$dir/$file") != $plugin )
		$plugin_files[] = plugin_basename("$dir/$file");
}
  1. Theme editor could use the same functionality.

Marking ticket as defect (bug) instead of enhancement. More appropriate for the file list not displaying all files of a plugin or theme. Milestone, anyone?

comment:18 Daedalon2 months ago

  1. In order to improve performance, instead of calling this function twice inside a loop:
    plugin_basename("$dir/$file")
    

Split it into these parts, the first of which is to be called only once in the beginning of the function:

$plugin_basedir = plugin_basename($dir);
...
"$plugin_basedir/$file"

The patch in #24049 also applies this change.

comment:19 Daedalon2 months ago

Encountered a bug:

  1. After opening a file from within a subdirectory, the Plugin Files lists only files and directories under that subdirectory.

MikeHansenMe2 weeks ago

should fix the bug mentioned in comment 19

comment:20 MikeHansenMe6 days ago

  • Cc mdhansen@… added

comment:21 MikeHansenMe6 days ago

Turns out the bug in comment 19 affects core now. Should it be a separate ticket, even though 24050.2.diff fixes it? Also I still think there needs to be some ui improvements for the long list.

Last edited 6 days ago by MikeHansenMe (previous) (diff)
Note: See TracTickets for help on using tickets.