Robin S

HannaCodeDialog

Recommended Posts

@Macrura, glad you got it working eventually.

I intend to work on an upgrade to this module sometime soon. Hope to add a feature allowing all dialog options to be configured from within a single hook, which will make things easier (for those comfortable writing code anyway). Will also look at adding some clarification that an attribute must first be declared before adding any of the "double underscore" enhancements.

  • Like 3

Share this post


Link to post
Share on other sites

Hey @Robin S - using this for the first time and finding it awesome. Couple of quick questions:

Is there any easy way to prevent codes from being truncated in the dropdown?

Also, what's the best way to change the name of "Insert Hanna tag" - I see that they are translatable (via separate js files), but what's the suggestion for avoiding having changes overridden with module updates?

Thanks!

Share this post


Link to post
Share on other sites

Hi @adrian,

I just pushed an update that makes those strings translatable within the module file.

As for the other issue, if your tag name is long it can overflow the standard width that CKEditor applies to combo panels (I don't set any explicit width in this module). I could make a config field for panel width but I'd rather not because I think the default width is suitable in most cases and to get a dynamic value from PHP it would mean putting the CSS inline which is kinda ugly. Maybe you could just set your own width for the panel in some custom admin CSS?

.cke_combopanel__hannadropdown { width:300px !important; }

 

  • Like 1

Share this post


Link to post
Share on other sites

Thanks @Robin S - I sorted out the width with the Admin CSS feature of AOS. 

As for the translatable string - I'm a little unsure how to work with the recent change - I see you went from js language files to using PW's:

$this->_(

but wouldn't that mean I would need multi-language support installed to translate that? It's not a ML site, so that seems like an inefficient solution for me, but I am very tired, so might well be missing something here :)

Share this post


Link to post
Share on other sites
3 minutes ago, adrian said:

but wouldn't that mean I would need multi-language support installed to translate that?

You would need to install the LanguageSupport module but I don't think there's any inefficiency in doing that. You don't need to actually create any additional languages - you just edit the default language to override whatever strings you want. I believe that's the standard PW way for customising strings so I wouldn't want to reinvent the wheel and create configurable fields for every string.

  • Like 1

Share this post


Link to post
Share on other sites
1 minute ago, Robin S said:

you just edit the default language to override whatever strings you want

Yeah, you're probably right - I just haven't ever translated strings from a module before, but it sounds like it's easy - thanks!

Share this post


Link to post
Share on other sites

@adrian, I just pushed another update in v0.1.5 that will allow the dropdown label in the toolbar to adapt its width to the length of the text (in the case that it is translated).

  • Like 1

Share this post


Link to post
Share on other sites

PS - Wow - the translation really was super easy :)

  • Like 1

Share this post


Link to post
Share on other sites

Hey @Robin S - I am seeing something weird where if I insert more than one code into a block of text. It all looks good until I save the page and then it reloads, and then all the text between the first and last code is highlighted in blue and connected so that's it no longer editable. Can you reproduce?

Thanks!

  • Like 1

Share this post


Link to post
Share on other sites

Also wondering what you might think of an option to disable the dialog popup. For the needs of my current project I just want the dropdown for inserting the tags, but none of the tags have editable attributes so I think it would be preferable to not add the double-click handler on the inserted tags.

Share this post


Link to post
Share on other sites

Hi @adrian, I regularly use multiple Hanna tags within a single field and haven't seen that issue before.

It sounds like the closing delimiter of the first tag isn't being detected for some reason. I'm thinking that there must be some content in your tag that interferes with the detection of the closing delimiter. Does changing to a different Hanna tag delimiter fix it?

To debug you could try logging the "name" data attribute here, which should be the hanna tag contents without the delimiters.

Edit: actually, if it isn't matching the closing delimiter when the page reloads then it's probably related to the regex here. But it looks correct to me.

  • Like 1

Share this post


Link to post
Share on other sites
3 minutes ago, adrian said:

Also wondering what you might think of an option to disable the dialog popup.

I'm not aware of any way to do that. This module uses the widget component of CKEditor, and the dialog for that is defined once for all widgets in the CKEditor instance.

  • Like 1

Share this post


Link to post
Share on other sites
6 minutes ago, Robin S said:

To debug you could try logging the "name" data attribute here, which should be the hanna tag contents without the delimiters.

So this is what is being returned:

user_name]]. This is blah [[central_name

so it's removing the opening delimiters from the first tag. I have tried a few different delimiters with no luck so far. Any other thoughts?

Share this post


Link to post
Share on other sites

@adrian, sorry for the interlude - there was a power cut here. :o

Not sure if you saw the edit to my earlier post: if the widgets are correct when you close the dialog but incorrect when you reload the page then it's an issue with this regex. But it looks correct to me - the pattern should match any number of characters after an opening delimiter up until a closing delimiter. You probably know more about regex than me though - does the pattern look right to you?

  • Like 1

Share this post


Link to post
Share on other sites

Hey @Robin S - no worries - I hear things are a bit backwards in your part of the world :) BTW, I am a displaced Aussie - hope we can still be friends :)

Thanks for pointing me in the right direction. The issue is that regex is greedy.

You can see the problem here: https://regex101.com/r/ynCWrf/1 

Here is a non-greedy that works fine: https://regex101.com/r/1Qta6X/1

Thanks again for a great module.

  • Like 2

Share this post


Link to post
Share on other sites

@adrian, thanks for the regex fix! Applied in v0.1.6.

32 minutes ago, adrian said:

I hear things are a bit backwards in your part of the world

When I moved to the deep south I soon found out that a UPS is an essential piece of kit. And the irony is I'm only a short hop from the largest hydroelectric power station in NZ.

37 minutes ago, adrian said:

BTW, I am a displaced Aussie - hope we can still be friends

Why, of course :-). If you're feeling at all homesick, check out the trailer for this documentary I heard about yesterday:

A different kind of backwards...:-)

  • Like 1

Share this post


Link to post
Share on other sites
14 hours ago, Robin S said:

If you're feeling at all homesick, check out the trailer for this documentary I heard about yesterday:

Wow - that's a depressing start to the day! The nasty side of Aussie culture - fortunately we're not all like that.

  • Like 1

Share this post


Link to post
Share on other sites
4 hours ago, adrian said:

fortunately we're not all like that

Not at all. My partner and I had three weeks exploring NT's top end last winter and had nothing but good experiences. The Aussie grey nomad idea is genius - that's how I want to spend my retirement.

  • Like 1

Share this post


Link to post
Share on other sites
7 minutes ago, Robin S said:

Not at all. My partner and I had three weeks exploring NT's top end last winter and had nothing but good experiences. The Aussie grey nomad idea is genius - that's how I want to spend my retirement.

Hopefully we are still considered too young to be grey nomads, but we actually did that in May/June of last year, although we were roughing it in the back of a 4wd - no RV for us :) 

Great adventure through some amazing country!

  • Like 1

Share this post


Link to post
Share on other sites
1 minute ago, adrian said:

we were roughing it in the back of a 4wd - no RV for us

Oh man, I want the best of both worlds - some of those pimped out Aussie 4WD campers are insane! Kiwis love their off-roading but I've never seen such amazing 4WDs until we went to the top end. Some folks have dropped some serious money on those. Proper go-anywhere Landcruisers with every conceivable mod-con built in. Love it.

  • Like 1

Share this post


Link to post
Share on other sites

This is about as far away from what we had as you can get, but this would be brilliant. He has a great series of videos!

 

 

  • Like 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Macrura
      Field Descriptions Extended
      This module enables you to extend field descriptions by dividing short descriptions with a longer text that is revealed in a toggle.
      Modules Directory: http://modules.processwire.com/modules/field-descriptions-extended/
      Github: https://github.com/outflux3/FieldDescriptionsExtended
      Extending your field descriptions using the standard field's description field.
      Once this module is installed, it will automatically search your description field for the presence of 5 dashes (-----).
      Any content above the 5 dashes will be visible and the content below the dashes will be hidden. A 'More...' link will appear at the end of the short description which when clicked will reveal the rest of the description.
      Using Simple Markdown Editor with the description field
      If you have Simple Markdown Editor (InputfieldSimpleMDE) installed, you can enable the field description to have that editor.
      *When using Simple MDE, you can use the button (Insert Horizontal Line) instead of typing 5 dashes. More about SimpleMDE.
      Extending your field descriptions using content from a ProcessWire Page for the field description.
      You may use the content from a ProcessWire page as a field description. This would allow you to easily insert images, links, and use hanna codes.
      To use page content for your field descriptions, please follow these instructions:
      Install Select Fields module (FieldtypeFields) http://modules.processwire.com/modules/fieldtype-fields/ Create a new field using this field type, e.g. field_select. Add the field to any template you will be using for your field descriptions. Setup your help pages (for example under a settings branch) where you will store the field description content,using the template containing the Field Select. Add content to a page and select the field where that content should show. To show a short text before the link to the longer content, separate them with 5 dashes Be sure to update your settings on this page, first enable page content descriptions,then specify the name of the Select Fields field, template to search, and content field. If you create a field description using this method, please note that the description field must be blank for contexts where you want the page content to appear.
      You can freely use template context for field descriptions, but the Page Content method is not context sensitive and will display under all contexts where the description is blank.
      ----
      original post:
      This is a new module, hope to release soon, which allows extended field descriptions, in currently 2 ways.
      The main feature of the module is that you can have a short description and then a 'more...' link which drops down a longer block of text.
      This is achieved by separating the intro/visible text and the rest with 5 dashes.

      Example setup:

      the 2nd way is if you are using AdminThemeUiKit, you can show extended field instructions in a panel. The content of the panel is edited on a regular PW page. This use case would probably not be that common, but if you had a field that required some extended instructions for how to use, this could be useful; Also, since this allows you to target information and instructions down at the field level, it could reduce the amount of documentation needed on a global level, since it is a lot more context targeted.

    • By Robin S
      Breadcrumb Dropdowns
      Adds dropdown menus of page edit links to the breadcrumbs in Page Edit.

      Installation
      Install the Breadcrumb Dropdowns module. The module requires ProcessWire >= v3.0.83 and AdminThemeUikit.
      There is a checkbox option in the module config that determines if the breadcrumb dropdowns will include pages that the user does not have permission to edit.
      Features/details
      The module adds an additional breadcrumb item at the end for the currently edited page. That's because I think it's more intuitive for the dropdown under each breadcrumb item to show the item's sibling pages rather than the item's child pages. In the dropdown menus the current page and the current page's parents are highlighted in a crimson colour to make it easier to quickly locate them in case you want to edit the next or previous sibling page. If the option to include uneditable pages is selected then those pages are indicated by a reduced text opacity and the "not-allowed" cursor is shown on hover. There is a limit of 25 sibling pages per dropdown for performance reasons and to avoid the dropdown becoming unwieldy. Incompatibilities
      This module replaces the AdminThemeUikit::renderBreadcrumbs method so will potentially be incompatible with other modules that hook the same method.
       
      https://modules.processwire.com/modules/breadcrumb-dropdowns/
      https://github.com/Toutouwai/BreadcrumbDropdowns
    • By joshuag
      Hey guys, 
      Thought I would share a quick preview of Designme. A module we (Eduardo @elabx and I) are building for visually laying out your templates/edit screens. 🙂
      This is a really quick, zero polish screen grab. FYI. 
      Video #2 - UPDATE
      This new video shows the following features in Designme:
      Re-arranging fields via Drag & Drop Re-sizing fields via Dragging. Adjusting field settings - with live refresh. Working on "hidden" fields while Designme is active. Creating New fields. Deleting fields. Creating/Deleting Tabs. Dragging fields between tabs. Creating fieldsets. Tagging/Un-tagging fields. Fields without headers expand when hovered (like checkboxes). Live filtering of fields in the sidebar. Ability to adjust (all) Template settings without leaving Designme. Template File Tree Editing Template files source code with ACE Editor. Editing Multiple files with ACE Editor. (New Tabs) Saving files. Techie stuff Fields load their own js/css dependancies. *ready to use on creation (*most fields)  Everything happens via Ajax to ProcessPageEdit (via module + hooks). Designme has a JS api that you can use.  All actions trigger events.  We would love any detailed feedback on what you see so far. If you are interested in testing Designme. Let me know below. 🙂
       
       
      Video #1. 
       
    • By dreerr
      TemplateEnginePug (formally TemplateEngineJade)
       
      This module adds Pug templates to the TemplateEngineFactory. It uses https://github.com/pug-php/pug to render templates.
      doctype html html(lang='en') head meta(http-equiv='content-type', content='text/html; charset=utf-8') title= $page->title link(rel='stylesheet', type='text/css', href=$config->urls->templates . 'styles/main.css') body include header.pug h1= $page->title if $page->editable() p: a(href=$page->editURL) Edit Project on GitHub: github.com/dreerr/TemplateEnginePug
      Project in modules directory: modules.processwire.com/modules/template-engine-pug/
       
      For common problems/features/questions about the Factory, use the TemplateEngineFactory thread.
       
    • By tpr
      ProcessNetteTester
      Run Nette Tester tests within ProcessWire admin.
      (continued from here)

      Features
      AJAX interface for running Nette Tester tests, in bulk or manually display counter, error message and execution time in a table run all tests at once or launch single tests show formatted test error messages and report PHP syntax errors stop on first failed test (optional) hide passed tests (optional) display failed/total instead passed/total (optional) re-run failed tests only (optional) auto scroll (optional) include or exclude tests based on query parameters start/stop all tests with the spacebar reset one test or all tests (ctrl+click) https://modules.processwire.com/modules/process-nette-tester/
      https://github.com/rolandtoth/ProcessNetteTester