AP - How to get "Add to Area" to disappear

I've been chatting with some guys from the community on how to allow a group to edit all sections but disable the "add to area" for everyone but the super admin.

They came up with this...

$u = new User();
if (!$u->isSuperUser()) { $a->setBlockLimit($a-> getTotalBlocksInArea($c)); }

Which works awesome but for some reason I'm still getting the "add to area" still but its not showing anything when I click on it... Here is a screenshot.


Any thoughts on how to get rid of this?

View Replies:
bryanlewis replied on at Permalink Reply
Any help on this would be great. Thanks!
bryanlewis replied on at Permalink Reply
I'm having the same problem as @kirkroberts and @sarah3585 on this thread...


I would reply to the thread but it looks like its closed...
HeavyPhoton replied on at Permalink Reply
If anyone is still interested in a solution for 5.6 I put together a js function that removes the "Add Too.." option when the block limit is reached. Very handy for client templates.

This is the code:
  ======================================= */
    // ensure that the "Add Too.." functionality is disabled when block limits are reached.
    // function is called with no parameters but is then recursively polled passing back
    // two arrays of 'concrete area' data
    hasScannedBlockLimits = false;
    function enforceBlockLimits ( recAreas = [], recLimits = [] ) {
      // scan page for limited areas once
      if(!hasScannedBlockLimits) {
        var areaElements = getLimitedAreas();
        var areas  = areaElements[0];
        var limits = areaElements[1];
        hasScannedBlockLimits = true;
      // limited areas have been passed in recursively

This is how I use it:

First I set the block limits using "data-block-limit" on a containing div:
<div class="main-nav" data-block-limit="1">
    $a = new GlobalArea('HeaderGlobal');

I use the following to signal that a page is in 'edit mode':
<body class="<?php  if ($c->isEditMode()) { ?>edit-mode<?php  } ?>">

Then I simply run enforceBlockLimit( ) on page load, but only in 'edit mode':
$( document ).ready(function() {  
  // enforce concrete5 area block limits
  if ( $( 'body' ).hasClass( 'edit-mode' ) )    
    enforceBlockLimits(  ); 

This is all done without actually using "$a->setBlockLimit(1);", rather I am just disabling the functionality cosmetically. I use it all the time for client templates, let me know what you think.