Moving code
I’ve refactored the plugin a bit and moved the code bloating the htbackstretch\Main
class into the htbackstretch\Butler
class. The name might not be the best one but I could not find a better one. Strict object-oriented programming suggests that if a name for a class does not come up in 5 seconds or less then the class has too many responsibilities but still ThemeUserOptionAndThemeDeveloperSettingUser
did not seem a better choice.
The refactored code, to a point, is released on GitHub.
Fine grain control for the theme developer
I really do not like super-charging interfaces or applications but felt like giving the theme developer a little more control over the duration of the slider-like effect and the fading times did add little in terms of complications while still allowing for some control. [caption id=“attachment_863” align=“aligncenter” width=“1024”] Sliders to control a slider-like effect.[/caption] I’ve found out that the built-in slider control Headway will render on the visual editor panels is too strict to show 3 or 4 digits numbers: the screenshot above is the effect of a little style injection I’ve put in the htbackstretch\Main
class
// register this block theme-wide settings
VEPanel::on(__NAMESPACE__ . '\VisualEditorPanel');
// along with the visual editor panel load a litte style to
// fix the slider width
add_action('headway_visual_editor_styles', function (){
echo sprintf('<style>%s {width:%dpx;}</style>', 'input[id*="input-general-htbackstretch-"]', 30);
});
The non modified sliders, here used to set a millisecond value, would look like [caption id=“attachment_864” align=“aligncenter” width=“1024”] Too small[/caption]
No block at all
In the end I’ve removed the htbackstretch\Block
and htbackstretch\BlockOptions
classes as what I’ve developed is no block at all: it’s an “Headway plugin” and really no block can be added to the theme layouts using it.
It’s done
Aside for bug-fixing and a little more love for the labels, they’re too long, I call it done. The plugin offers me all the features I need for the project at hand and does so in a re-usable way.
The plugin can be seen in action in this video