Отредактируйте вывод autonav в зависимости от прав доступа к странице в concrete5 - PullRequest
0 голосов
/ 21 октября 2011

Мне нужно изменить вывод блока autonav. Я установил свой собственный шаблон без проблем, но мне нужно, чтобы autonav выделял страницы, к которым имеет доступ зарегистрированный пользователь.

Например, у меня есть доступ к level2, поэтому, когда я вижу список страниц, в списке страниц отображаются страницы, к которым я могу получить доступ, но гости даже не видят.

$permissions = new Permissions($_c);

if ($permissions->canRead()) {
    echo '<a class="highlight">'.$ni->getName().'</a>';
} else {
    echo $ni->getName();
}

Это не работает, потому что у меня есть доступ на чтение ко ВСЕМ страницам, если я на уровне 2.

Для этой конкретной страницы установлены разрешения, разрешающие доступ к ней только 2-го уровня

var_dump(Page::getById(142));

// Generates:

object(Page)[345]
  protected 'blocksAliasedFromMasterCollection' => null
  public 'cID' => string '142' (length=3)
  protected 'attributes' => 
    array
      empty
  public 'error' => string '' (length=0)
  public 'pkgID' => string '0' (length=1)
  public 'cPointerID' => string '0' (length=1)
  public 'cPointerExternalLink' => null
  public 'cPointerExternalLinkNewWindow' => string '0' (length=1)
  public 'cFilename' => null
  public 'cDateAdded' => string '2011-10-20 16:50:38' (length=19)
  public 'cDisplayOrder' => string '10' (length=2)
  public 'cDateModified' => string '2011-10-20 17:03:54' (length=19)
  public 'cInheritPermissionsFromCID' => string '142' (length=3)
  public 'cInheritPermissionsFrom' => string 'OVERRIDE' (length=8)
  public 'cOverrideTemplatePermissions' => string '1' (length=1)
  public 'cPendingAction' => null
  public 'cPendingActionUID' => null
  public 'cPendingActionTargetCID' => null
  public 'cPendingActionDatetime' => string '0000-00-00 00:00:00' (length=19)
  public 'cCheckedOutUID' => null
  public 'cIsTemplate' => string '0' (length=1)
  public 'uID' => string '5' (length=1)
  public 'cPath' => string '/link-to' (length=8)
  public 'ctID' => string '3' (length=1)
  public 'ctHandle' => string 'full' (length=4)
  public 'ctIcon' => string 'main.png' (length=8)
  public 'ptID' => string '4' (length=1)
  public 'cParentID' => string '1' (length=1)
  public 'cChildren' => string '0' (length=1)
  public 'ctName' => string 'Full Width' (length=10)
  public 'cCacheFullPageContent' => string '-1' (length=2)
  public 'cCacheFullPageContentOverrideLifetime' => string '0' (length=1)
  public 'cCacheFullPageContentLifetimeCustom' => string '0' (length=1)
  public 'isMasterCollection' => string '0' (length=1)
  public 'vObj' => 
    object(CollectionVersion)[348]
      public 'cvIsApproved' => string '1' (length=1)
      public 'cID' => string '142' (length=3)
      protected 'attributes' => 
        object(AttributeValueList)[350]
          private 'attributes' => 
            array
              'meta_title' => string '' (length=0)
              'meta_description' => string '' (length=0)
              'meta_keywords' => string '' (length=0)
              'exclude_nav' => string '1' (length=1)
          public 'error' => string '' (length=0)
      public 'customAreaStyles' => 
        array
          empty
      public 'layoutStyles' => 
        array
          empty
      public 'error' => string '' (length=0)
      public 'cvID' => string '4' (length=1)
      public 'cvIsNew' => string '0' (length=1)
      public 'cvHandle' => string 'link-to' (length=7)
      public 'cvName' => string 'Link To' (length=7)
      public 'cvDescription' => string '' (length=0)
      public 'cvDateCreated' => string '2011-10-20 17:03:40' (length=19)
      public 'cvDatePublic' => string '2011-10-20 16:50:00' (length=19)
      public 'cvAuthorUID' => string '5' (length=1)
      public 'cvApproverUID' => string '5' (length=1)
      public 'cvComments' => string 'New Version 4' (length=13)
      public 'cvIsMostRecent' => boolean true


$inspectC=Page::getById(142);
$p = new Permissions($inspectC);
var_dump($p);    

// Generates:

object(Permissions)[1190]
  public 'permissionSet' => string 'r' (length=1)
  public 'permError' => null
  public 'originalObj' => 
    object(Page)[345]
      protected 'blocksAliasedFromMasterCollection' => null
      public 'cID' => string '142' (length=3)
      protected 'attributes' => 
        array
          empty
      public 'error' => string '' (length=0)
      public 'pkgID' => string '0' (length=1)
      public 'cPointerID' => string '0' (length=1)
      public 'cPointerExternalLink' => null
      public 'cPointerExternalLinkNewWindow' => string '0' (length=1)
      public 'cFilename' => null
      public 'cDateAdded' => string '2011-10-20 16:50:38' (length=19)
      public 'cDisplayOrder' => string '10' (length=2)
      public 'cDateModified' => string '2011-10-20 17:03:54' (length=19)
      public 'cInheritPermissionsFromCID' => string '142' (length=3)
      public 'cInheritPermissionsFrom' => string 'OVERRIDE' (length=8)
      public 'cOverrideTemplatePermissions' => string '1' (length=1)
      public 'cPendingAction' => null
      public 'cPendingActionUID' => null
      public 'cPendingActionTargetCID' => null
      public 'cPendingActionDatetime' => string '0000-00-00 00:00:00' (length=19)
      public 'cCheckedOutUID' => null
      public 'cIsTemplate' => string '0' (length=1)
      public 'uID' => string '5' (length=1)
      public 'cPath' => string '/link-to' (length=8)
      public 'ctID' => string '3' (length=1)
      public 'ctHandle' => string 'full' (length=4)
      public 'ctIcon' => string 'main.png' (length=8)
      public 'ptID' => string '4' (length=1)
      public 'cParentID' => string '1' (length=1)
      public 'cChildren' => string '0' (length=1)
      public 'ctName' => string 'Full Width' (length=10)
      public 'cCacheFullPageContent' => string '-1' (length=2)
      public 'cCacheFullPageContentOverrideLifetime' => string '0' (length=1)
      public 'cCacheFullPageContentLifetimeCustom' => string '0' (length=1)
      public 'isMasterCollection' => string '0' (length=1)
      public 'vObj' => 
        object(CollectionVersion)[348]
          public 'cvIsApproved' => string '1' (length=1)
          public 'cID' => string '142' (length=3)
          protected 'attributes' => 
            object(AttributeValueList)[350]
              private 'attributes' => 
                array
                  'meta_title' => string '' (length=0)
                  'meta_description' => string '' (length=0)
                  'meta_keywords' => string '' (length=0)
                  'exclude_nav' => string '1' (length=1)
              public 'error' => string '' (length=0)
          public 'customAreaStyles' => 
            array
              empty
          public 'layoutStyles' => 
            array
              empty
          public 'error' => string '' (length=0)
          public 'cvID' => string '4' (length=1)
          public 'cvIsNew' => string '0' (length=1)
          public 'cvHandle' => string 'link-to' (length=7)
          public 'cvName' => string 'Link To' (length=7)
          public 'cvDescription' => string '' (length=0)
          public 'cvDateCreated' => string '2011-10-20 17:03:40' (length=19)
          public 'cvDatePublic' => string '2011-10-20 16:50:00' (length=19)
          public 'cvAuthorUID' => string '5' (length=1)
          public 'cvApproverUID' => string '5' (length=1)
          public 'cvComments' => string 'New Version 4' (length=13)
          public 'cvIsMostRecent' => boolean true
  public 'addCollectionTypes' => 
    array
      empty
  public 'addBlockTypes' => 
    array
      empty
  public 'oUID' => string '5' (length=1)
  public 'error' => string '' (length=0)
  public 'u' => 
    object(User)[1193]
      public 'uID' => string '7' (length=1)
      public 'uName' => string 'alex' (length=12)
      public 'uGroups' => 
        array
          2 => string '2' (length=1)
          5 => string 'Senior Professionals (Level 2)' (length=30)
          1 => string '1' (length=1)
      public 'superUser' => boolean false
      public 'uTimezone' => null
      protected 'uDefaultLanguage' => null
      public 'error' => string '' (length=0)
  public 'permissions' => null
...