Jump to content
kongondo

Menu Builder

Recommended Posts

7 minutes ago, kongondo said:

Glad you like the module @cjx2240

Do you mean if disabled menu item does not show in the frontend? What's the use case? Why not just not add that menu item? 

 

I don't follow. Please explain.

Well, sometimes you just want to turn off a menu item, temporarily right? Like I have a client who wants to disable registrations in a few months. He can just delete it, but if he wants to put it back, then he has to get the right page and fill out (accurately) the css class again etc.

And change type I mean, if I make a "Pages" menu item, but later I want to change the URL, or maybe make it external... I have to delete and remake. This is fine for me, but maybe less intuitive for some people.

Basically, I am talking about things that you and I won't need, but an end-user of the CMS might ;)

Share this post


Link to post
Share on other sites

I see. The change type might not be easy to pull off but will have a think. The en/dis-able, please file that as a request here. Thanks.

Share this post


Link to post
Share on other sites

Hi kongondo, one question: the title of the page is always taken from the module? Because after creating the menu, I modified some page titles in pw by request of the client and the module continues printing the old title. Maybe I can use a var %s or something in the title input to tell the module that get it from the pw page.

Share this post


Link to post
Share on other sites
14 minutes ago, Pixrael said:

Hi kongondo, one question: the title of the page is always taken from the module? Because after creating the menu, I modified some page titles in pw by request of the client and the module continues printing the old title. Maybe I can use a var %s or something in the title input to tell the module that get it from the pw page.

Please see the 'default_title' option as documented here.

Share this post


Link to post
Share on other sites

Hi Kongondo,

I have been searching this support forum for an answer to my scenario for a while to no avail, and was hoping you could advise me on the following:

Scenario:

I have created a menu using MB with a structure similar to this:

Menu Builder items:

  1. Home
  2. Page 1
  3. Page 2
  4. Page 3
  5. Contact

My problem:
in the PW page tree ‘Page 1’ has 20-children. 

I don’t want to include the 20-children in MB.  However, I want ‘Page 1’ to maintain the <li class=“active”> if I navigate to any of its 20 children.

Question:
Is it possible to keep ‘Page 1’ <li class=“active”>, without the children of ‘Page 1’ being included and output into the MB HTML?

Share this post


Link to post
Share on other sites
On 4/19/2017 at 5:54 PM, CodeCoffeeCode said:

Hi Kongondo,

I have been searching this support forum for an answer to my scenario for a while to no avail, and was hoping you could advise me on the following:

Scenario:

I have created a menu using MB with a structure similar to this:

Menu Builder items:

  1. Home
  2. Page 1
  3. Page 2
  4. Page 3
  5. Contact

My problem:
in the PW page tree ‘Page 1’ has 20-children. 

I don’t want to include the 20-children in MB.  However, I want ‘Page 1’ to maintain the <li class=“active”> if I navigate to any of its 20 children.

Question:
Is it possible to keep ‘Page 1’ <li class=“active”>, without the children of ‘Page 1’ being included and output into the MB HTML?

I think you would need to work with the "custom render" solution as described here.

  • Like 1

Share this post


Link to post
Share on other sites

This is probably a basic question and I've failed to spot the answer in the docs, in which case, many apologies...

Using an example such as example-recursive-function3.php is there an easy/built-in way of outputting only a portion of a deep menu, from part-way into that menu?

I need a menu like:

- food
-- cheese
-- fruit
--- apples
--- grapes
- energy
-- solar
-- wind

so at times I can output all of its items. But at other times I need to render only from say `fruit` down, e.g.:

- fruit
-- apples
-- grapes

Thanks in advance for any pointers ^_^

Share this post


Link to post
Share on other sites
On 11/23/2016 at 11:11 PM, Michael van Laar said:

Anyone has a solution for multi-language menus with custom menu items?

For pages localisation works using the default_title option. But this is not possible with custom menu items. And since the items’ title field is not a multi-language field, I have no idea how to solve this. But I’m probably not the first one stumbling over this. ;-)

If not, I think I have an idea how to build a solution using nested repeater fields.

You already find a solution for this?

 

I came accros the same problem as i wanted to add custom anchor links.

 

Thanks!

Share this post


Link to post
Share on other sites
On 8.5.2017 at 4:50 AM, Missariella said:

You already find a solution for this?

 

I just used a Repeater field on a hidden “website config” page to create my own menu building tool with exactly the features I needed for that website, including using multi-language fields within the repeater.

Share this post


Link to post
Share on other sites

Update: Menu Builder Version 0.1.8.

Changelog

  1. Added support to disable menu items + related (required for this) permission 'menu-builder-disable-items'. Thanks @cjx2240
  2. Support not to show menu items (pages) not listable to current user. Needs option 'check_listable' => 1 in $options Array. Thanks @Peejay
  3. 'current_class' now also applies to Breadcrumbs as well. Thanks @Jonathan Lahijani

Note

Disabling a menu item cascades the status to all its descendants. In Build Menu view (backend), disabled items displayed with strike-through.

Currently available in dev branch only. Please test and let me know, thanks.

Screenshots

 

mb_disable_menu_items1.thumb.png.665fcf66cbcde728cfd709f9cb433b7b.pngmb_disable_menu_items2.thumb.png.e522c30cfe4cd46fdba6d6b83226a56d.png

Edited by kongondo
  • Like 3

Share this post


Link to post
Share on other sites

Hi @kongondo - I'm still getting an issue with HTML in the menu item titles, where quoted attributes (e.g., class names, such as those used FontAwesome icons etc) get garbled in the title's input field.

I did mention a very simple fix earlier in this topic, but it may have got overlooked.  Would it be possible to apply this fix to the module:

In the ProcessMenuBuilder.module file, on line #1158 (in the listMenu() menthod), surround the $title variable with the htmlentities() function:

// Change line #1158 from:
<input type="text" value="' . $title . '" name="item_title[' . $id . ']" class="menu_settings" id="item_title' . $id . '">

// To:
<input type="text" value="' . htmlentities($title) . '" name="item_title[' . $id . ']" class="menu_settings" id="item_title' . $id . '">

It immediately fixes the HTML display issues witin the input field.

Thanks.

Share this post


Link to post
Share on other sites
1 hour ago, LMD said:

I'm still getting an issue with HTML in the menu item titles, where quoted attributes (e.g., class names, such as those used FontAwesome icons etc) get garbled in the title's input field.

I did mention a very simple fix earlier in this topic, but it may have got overlooked.  Would it be possible to apply this fix to the module:

Hi @LMD. Sorry about that; forgot about it. Pushed a fix to the dev branch. Please check and let me know if it works for you. Thanks.

Share this post


Link to post
Share on other sites
On 2017-4-25 at 7:36 PM, alan said:

This is probably a basic question and I've failed to spot the answer in the docs, in which case, many apologies...

Using an example such as example-recursive-function3.php is there an easy/built-in way of outputting only a portion of a deep menu, from part-way into that menu?

I need a menu like:


- food
-- cheese
-- fruit
--- apples
--- grapes
- energy
-- solar
-- wind

so at times I can output all of its items. But at other times I need to render only from say `fruit` down, e.g.:


- fruit
-- apples
-- grapes

Thanks in advance for any pointers ^_^

Hi @alan,

Hope it's not too late to reply. Sorry I missed this!

It is possible but the how would depend on the condition you want to check for to decide whether to output the whole menu or just part of it. There are at least two solutions:

  1. Using their IDs, remove unwanted menu items from the array or object returned by getMenuItems(). This would probably cost a bit more in memory, but probably nothing to write home about
  2. Modify the menu function in the gist you've linked to, to filter out IDs of unwanted items. It should suffice with creating an array of unwanted parent IDs. The, in the recursive function, check, for example if(in_array($m->parentID, $arrayOfParentIDs)) continue;. This is pseudo/incomplete code. You would also need to account for menu items without parents, etc.

If you gave us more info (condition to check for), I can give you a more clear answer.

  • Like 1

Share this post


Link to post
Share on other sites
On 2017-4-19 at 11:54 PM, CodeCoffeeCode said:

Hi Kongondo,

I have been searching this support forum for an answer to my scenario for a while to no avail, and was hoping you could advise me on the following:

Scenario:

I have created a menu using MB with a structure similar to this:

Menu Builder items:

  1. Home
  2. Page 1
  3. Page 2
  4. Page 3
  5. Contact

My problem:
in the PW page tree ‘Page 1’ has 20-children. 

I don’t want to include the 20-children in MB.  However, I want ‘Page 1’ to maintain the <li class=“active”> if I navigate to any of its 20 children.

Question:
Is it possible to keep ‘Page 1’ <li class=“active”>, without the children of ‘Page 1’ being included and output into the MB HTML?

Sorry for late reply @CodeCoffeeCode,

In addition to the suggestion to use the custom menu render strategy as suggested by @elabx, I think the options: include_children and current_class_level should also cover what you need.

https://github.com/kongondo/MenuBuilder/tree/dev#options

Please let me know if this solves your issue.

Share this post


Link to post
Share on other sites
On 2017-2-6 at 3:11 PM, Sahil said:

I have few children pages under a parent page.  i want to show that children page under two parents page in Main menu as well as in breadcrumbs.

With the help of menu builder main menu show same childern page under both the parents, but Breadcrumbs follow the page tree structure.

how can i get the expected result?

Hi @Sahil,

Sorry I never resolved this. It's difficult to give an answer without getting more information about your pages tree structure.

Share this post


Link to post
Share on other sites
On 2017-3-23 at 3:43 PM, cjx2240 said:

Maybe a way to change a menu from one type to another?

I think it should be easy enough to just create a new menu item, no? I see no easy way of automating this so will have to let the idea go.

Share this post


Link to post
Share on other sites
3 hours ago, kongondo said:

Pushed a fix to the dev branch. Please check and let me know if it works for you. Thanks.

Thanks, @kongondo - the fix works perfectly.

Share this post


Link to post
Share on other sites

Thanks @kongondo for that :)

The project has gone to sleep for a bit but I am hoping it will wake up soon and as soon as it does I will use your suggestions (thank you) and/or provide more info here. Cheers! -Alan ^_^

Share this post


Link to post
Share on other sites

Update: Menu Builder Version 0.1.9.

Changelog

  1. Added support for multi-lingual menu items (both PW pages and custom ones)! Thanks @Michael van Laar for 'reminder'.

Note

  • Multilingual feature only applies to multi-lingual sites.
  • You have to choose the languages you want for your menu items (in menu settings).
  • Multi-lingual feature only applies to menu items. This means menu titles themselves remain as normal.
  • The feature only applies to menu item title and URL
  • If other language's item title or URL are left empty, in the frontend, these fallback to default language's title or URL respectively. This means, for other languages, you can have, for example, a German menu title but leave the German URL blank. In that case, assuming the default language is English, the German menu item will get the English URL.

Currently available in dev branch only. Please test and let me know, thanks.

Screenshots

Backend

mb_backend_ml_version_19.thumb.gif.1115b82437543f4a325b0c9bc12e8818.gif

Frontend

mb_frontend_ml_version_19.thumb.gif.45454215ab02f37ae0479c26a1e2790c.gif

Edited by kongondo
  • Like 5

Share this post


Link to post
Share on other sites

Hi kongondo,

I've bumped into this issue again, and still cannot see how to resolve it without rendering the menu through custom code. I need to have parents displayed (simple nav menu) without their children, but need to assign current_class to the parent when one of its children is currently open. This is for the newsroom part of the site I'm working with. I'm on the dev branch of MB.

Is there no way to include an option like check_current_children on a local/global level so that it applies the current class even if the children are not listed? Or is there another really simple way of doing it?

Thanks a ton!

Share this post


Link to post
Share on other sites
On 16/08/2017 at 4:15 PM, Mike Rockett said:

Is there no way to include an option like check_current_children on a local/global level so that it applies the current class even if the children are not listed? Or is there another really simple way of doing it?

Sorry for late response. I have managed to get this working via a new option. Currently testing to check it doesn't break anything. Hopefully will commit later this week.

  • Like 1

Share this post


Link to post
Share on other sites
2 minutes ago, kongondo said:

Sorry for late response. I have managed to get this working via a new option. Currently testing to check it doesn't break anything. Hopefully will commit later this week.

No problem at all -- I'm sure you're quite a busy-bee.

Thank you, looking forward to testing it.

Share this post


Link to post
Share on other sites

Update: Menu Builder Version 0.2.0.

Changelog

  1. Modified 'current_class_level' option to apply 'current_class' to a menu item when viewing any of its descendant child pages (child, grandchild, etc.) in cases where those descendant pages are neither part of the menu nor included via 'include_children'. To enable this, set 'current_class_level' to '0'. Thanks @Mike Rockett for reviving this.

Note

  • I have tested this thoroughly but sometimes in Multilingual sites, depending on some conditions I am yet to pin down, the setting does not work properly. In such cases, using 'current_class_level' >= what you need does the trick.

Please test and let me know. In dev branch for now.

  • Like 2

Share this post


Link to post
Share on other sites
11 hours ago, kongondo said:

Update: Menu Builder Version 0.2.0.

Changelog

  1. Modified 'current_class_level' option to apply 'current_class' to a menu item when viewing any of its descendant child pages (child, grandchild, etc.) in cases where those descendant pages are neither part of the menu nor included via 'include_children'. To enable this, set 'current_class_level' to '0'. Thanks @Mike Rockett for reviving this.

Note

  • I have tested this thoroughly but sometimes in Multilingual sites, depending on some conditions I am yet to pin down, the setting does not work properly. In such cases, using 'current_class_level' >= what you need does the trick.

Please test and let me know. In dev branch for now.

Thank you! It does appear to work, but the root page is also assigned the current class when viewing any decsendant.

This is my code:

$view->siteNavigation = $menuBuilder->render('site-navigation', [
    'current_class' => 'here',
    'menu_css_class' => 'menu-items',
    'default_class' => 'menu-item',
    'current_class_level' => 0,
]);

And this is the output:

<ul class="menu-items">
	<li class="menu-item here">
		<a href='/'>Home</a>
	</li>
	<li class="menu-item">
		<a href='/about'>About</a>
	</li>
	<li class="menu-item">
		<a href='/security'>Security</a>
	</li>
	<li class="menu-item">
		<a href='/recycling-initiatives'>Recycling</a>
	</li>
	<li class="menu-item here">
		<a href='/newsroom/'>Newsroom</a>
	</li>
	<li class="menu-item">
		<a href='/contact-us'>Contact Us</a>
	</li>
</ul>

Is there no clean way to add an option to specific menu items that states "add current class here if an included / non-included descendant is current"?

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 jploch
      Hey folks,
      for a module (a pagebuilder based on PageTable) I need to save some settings as JSON. The values are saved for each page table item (a pw page). It's working well, but I am looking for ways to improve the structure I have. As I'm not that experienced with JSON, maybe someone more experienced can take a look and tell me if my approach is good practice. 

      My goal is to make all the items accessible by page id, without looping over them (using objects instead of arrays):
      // access from template with pw page var $jsonObject->items->{$page}->cssClass; Her is an example of my JSON structure:
      { "items": { "3252": { "id": "3252", "cssClass": "pgrid-main", "breakpoints": { "base": { "css": { "grid-column-end": "auto", "grid-row-end": "auto", "grid-column-start": "auto", "grid-row-start": "auto", "align-self": "auto", "z-index": "auto", "padding-left": "60px", "padding-right": "60px", "padding-top": "60px", "padding-bottom": "60px", "background-color": "rgb(255, 255, 255)", "color": "rgb(0, 0, 0)" }, "size": "@media (min-width: 576px)", "name": "base" } } }, "3686": { "id": "3686", "cssClass": "test_global", "breakpoints": { "base": { "css": { "grid-column-end": "-1", "grid-row-end": "span 1", "grid-column-start": "1", "grid-row-start": "auto", "align-self": "auto", "z-index": "auto", "padding-left": "0px", "padding-right": "0px", "padding-top": "0px", "padding-bottom": "0px", "background-color": "rgba(0, 0, 0, 0)", "color": "rgb(0, 0, 0)" }, "size": "@media (min-width: 576px)", "name": "base" } } }, "3687": { "id": "3687", "cssClass": "block_editor-3687", "breakpoints": { "base": { "css": { "grid-column-end": "span 2", "grid-row-end": "span 1", "grid-column-start": "auto", "grid-row-start": "auto", "align-self": "auto", "z-index": "auto", "padding-left": "0px", "padding-right": "0px", "padding-top": "0px", "padding-bottom": "0px", "background-color": "rgba(0, 0, 0, 0)", "color": "rgb(0, 0, 0)" }, "size": "@media (min-width: 576px)", "name": "base" } } }, "3696": { "id": "3696", "cssClass": "block_editor-3696", "breakpoints": { "base": { "css": { "grid-column-end": "span 2", "grid-row-end": "span 1", "grid-column-start": "auto", "grid-row-start": "auto", "align-self": "auto", "z-index": "auto", "padding-left": "0px", "padding-right": "0px", "padding-top": "0px", "padding-bottom": "0px", "background-color": "rgba(0, 0, 0, 0)", "color": "rgb(0, 0, 0)" }, "size": "@media (min-width: 576px)", "name": "base" } } } }, "breakpointActive": "base", "breakpointActiveSize": "@media (min-width: 576px)" }  
    • By jploch
      Fieldtype Page Table Grid
      This is a sneak preview of a side project I've been working on for quite some time now. A lot of work and thought has gone into this, so I will most likely release this as a commercial module at some point in the near future. 

      As a designer (and developer) I get the appeal of a WYSIWYG editor. After playing around with some WYSIWYG page builder tools, I always felt something was wrong about them. So I decided to build my own PW version based on PageTable.

      Here is a small demo (using AdminThemeCanvas, but its working with other admin themes as well) :
      There is also a complete website that I built for a friend of mine using this module and some custom blocks.
      Concept
      This fieldtype shares a lot of features with PageTableExtended: it's also an extension of PageTable and renders the block templates in the backend and frontend (native PW templates and fields). You can also add your own css via module settings.
      The difference is, this fieldtype also gives you the ability to rearrange and resize elements in a visual way as well as enable inline editing for text, ckeditor and file fields. Similar (and promising) attempts have been made, but I wanted something based on native CSS grid instead of a CSS framework...so I built my own version. Most CSS frameworks are based on flexbox, which is great for layouting elements horizontally. With CSS grid, you can place elements horizontally and vertically, allowing for layouts that were not previously possible with CSS. Similar to webflow, this fieldtype uses javascript (in the backend) to let you manipulate CSS grid in a visual way to design fully responsive websites (or parts of them). It should still be possible to include a CSS framework if you like (just add the classes to your block markup and include the CSS via module settings).
      The CSS grid layout manipulations are saved in a single field as a JSON array and used to generate a dynamic stylesheet that you simply include in your main template (no inline styles). The styles are saved within the breakpoint you select and cascade down to smaller breakpoints. That means you can specify just the basic breakpoint and adjust other breakpoints if needed. The exception is the mobile breakpoint which will display everything in one column as a default (you can change the layout here too).
      The fieldtype also comes with an optional style panel to manipulate some additional CSS properties directly on the page. You can customize the panel or disable it completely from the module settings (and just use a CSS file that you include via module settings). The style panel is based on inputfields (nothing is saved to the database). This means that you just have to install the module and all fields are available to all blocks automatically (this can be customized). It also has the benefit that your installation is not flooded with fields; this module only installs one field.
      Don't want to give your customer all that power? Design features can be disabled for certain roles. The grid editor role can just edit the content and use the inline editing feature to edit content quickly. You can then also grant access individually to the style panel, resize or drag functionality.
      Features
      Blocks are just pages Blocks are defined by native PW templates and fields Manipulate CSS grid in a visual way to design fully responsive websites (or parts of them) Design features can be disabled for certain roles Inline editing of text, ckeditor and file fields The layout is 100% CSS grid (very small css file size) Simply drag and resize to manipulate grid items directly inside the backend Manipulate grid columns and rows directly on the page (use any number of columns you want) All style manipulations are saved as JSON and used to generate a dynamic stylesheet that you just include in your main template (no inline styles) Nested groups/grids (child pages of nested blocks are created under group parent) Global blocks work with page reference field (changes on one page, changes all blocks on all pages) Manual and auto placement of grid items Define custom icons for your blocks via native template settings (template -> advanced -> icon) Option to load lazysizes in the backend to enable lazy loading of assets with class lazyload Works with all default and ui-kit based admin themes If you have any questions or feedback, let me know.
    • By bernhard
      I built this module because I needed a versatile solution to replace tags and simple if-blocks in some E-Mails and PDF documents.
      If you only need to replace static tags (no if-conditions), then you can use default PW api and need no module:
      $str = "My favourite color is {color}."; $texttools = $sanitizer->getTextTools(); echo $texttools->populatePlaceholders($str, ['color' => 'red']); // output: My favourite color is red. Usage:
      See the two example Files in the folder /replacements

       
      Methods:
      replacementsTable()
      Renders an overview of all available replacements (see the example in the Module's config file:
       
      Create new Replacements:
      Simply copy the sample file and adopt to your needs.
       
      Download:
      https://gitlab.com/baumrock/RockReplacer
    • By bernhard
      DEPRECATED
      I'm using this module in several projects, but it will likely not see any updates in the future. I'm not happy with it and I'm looking for ways to develop better solutions. RockTabulator was my first try, but I'm also not 100% happy with that. The tabulator library is great, but my module implementation is not. I hope to get a good solution soon, but it will be a lot of work...
      ---
      Some of you might have followed the development of this module here: https://processwire.com/talk/topic/15524-previewdiscussion-rockdatatables/ . It is the successor of "RockDataTables" and requires RockFinder to get the data for the grid easily and efficiently. It uses the open source part of agGrid for grid rendering.
       
      WHY?
      ProcessWire is awesome for creating all kinds of custom backend applications, but where it is not so awesome in my opinion is when it comes to listing this data. Of course we have the built in page lister and we have ListerPro, but none of that solutions is capable of properly displaying large amounts of data, for example lists of revenues, aggregations, quick and easy sorts by the user, instant filter and those kind of features. RockGrid to the rescue 😉 
       
      Features/Highlights:
      100k+ rows Instant (client side) filter, search, sort (different sort based on data type, eg "lower/greater than" for numbers, "contains" for strings) extendable via plugins (available plugins at the moment: fullscreen, csv export, reload, batch-processing of data, column sum/statistics, row selection) all the agGrid features (cell renderers, cell styling, pagination, column grouping etc) vanilla javascript, backend and frontend support (though not all plugins are working on the frontend yet and I don't plan to support it as long as I don't need it myself)  
      Limitations:
      While there is an option to retrieve data via AJAX the actual processing of the grid (displaying, filtering, sorting) is done on the client side, meaning that you can get into troubles when handling really large datasets of several thousands of rows. agGrid should be one of the most performant grid options in the world (see the official example page with a 100k row example) and does a lot to prevent problems (such as virtual row rendering), but you should always have this limitation in mind as this is a major difference to the available lister options that do not have this limitation.
      Currently it only supports AdminThemeUikit and I don't plan to support any other admin theme.
       
      Download: https://gitlab.com/baumrock/FieldtypeRockGrid
      Installation: https://gitlab.com/baumrock/RockGrid/wikis/Installation
      Quikckstart: https://gitlab.com/baumrock/RockGrid/wikis/quickstart
      Further instructions: https://gitlab.com/baumrock/RockGrid/wikis/quickstart#further-instructions
      German Translation File: site--modules--fieldtyperockgrid--fieldtyperockgrid-module-php.json
      Changelog: https://gitlab.com/baumrock/FieldtypeRockGrid/raw/master/changelog.md
       
      Module status: alpha, License: MIT
      Note that every installation and uninstallation sends an anonymous google analytics event to my google analytics account. If you don't want that feel free to remove the appropriate lines of code before installation/uninstallation.
       
      Contribute:
      You can contribute to the development of this and other modules or just say thank you by
      testing, reporting issues and making PRs at gitlab liking this post buying me a drink: paypal.me/baumrock/5 liking my facebook page: facebook.com/baumrock hiring me for pw work: baumrock.com  
      Support: Please note that this module might not be as easy and plug&play as many other modules. It needs a good understanding of agGrid (and JavaScript in general) and it likely needs some looks into the code to get all the options. Please understand that I can not provide free support for every request here in the forum. I try to answer all questions that might also help others or that might improve the module but for individual requests I offer paid support (please contact me via PM).
       
      Use Cases / Examples:
      Colored grid cells, Icons, Links etc. The Grid also has a "batcher" feature built in that helps communicating with the server via AJAX and managing resource intensive tasks in batches:

      Filters, PW panel links and instant reload on panel close:

      You can combine the grid with a chart library like I did with the (outdated) RockDataTables module:

    • By Paul Greinke
      Hi there. I wrote a custom module for one of my projects. In fact I maybe want to use my module in other projects too. In order to be variable and customizable  I need to implement some custom hooks into my module. So I can afterwards hook into the my functions in order to modify them to match the needs of the new project.
      I tried simply defining functions with the '__' prefix. But that did not work. I'm imagining something like the following:
      <?php class MyClass { public function ___someFunction() { // Do something } } // ready.php $this->addHookBefore('MyClass::someFunction', function($event) { // some customization }); Is there a way to accomplish that? 
×
×
  • Create New...