문제

내 관리 부분을 기존 로그인/관리 구조에 통합할 수 있도록 umbraco 대시보드에 내 섹션을 추가하고 싶습니다.umbraco 소스 자체를 편집하고 다시 컴파일하지 않고도 이것이 가능합니까?추천되나요?그렇다면 이 작업을 시작할 수 있는 리소스가 있는 사람이 있나요?

도움이 되었습니까?

해결책

예, 가능합니다.

백엔드는 Dashoard, 섹션 및 컨텐츠 트리 측면에서 확장 될 수 있습니다.

새 대시 보드 섹션을 정의하는 데 사용할 수있는 구성 파일이 있습니다. 구성 파일은 다음 폴더에서 찾을 수 있습니다. /config/dashboard.config

일반적으로 dashboard.config 파일에는 이와 같은 모습을 보이는 방식에 대한 XML의 일부 예제가 있습니다 (더 많은 기능을 보여주기 위해 약간 확장했습니다).

<dashBoard>
    <section>
        <areas>
            <area>default</area>
            <area>content</area>
            <area>member</area>
        </areas>

        <tab caption="Last Edits">
            <control>/usercontrols/dashboard/latestEdits.ascx</control>
        </tab>
        <tab caption="Latest Items">
            <control>/usercontrols/dashboard/newestItems.ascx</control>
        </tab>
        <tab caption="Create blog post">
            <control>/usercontrols/umbracoBlog/dashboardBlogPostCreate.ascx</control>
        </tab>
    </section>
    <section>
        <areas>
            <area>media</area>
        </areas>

        <tab caption="Last Edits">
            <control>/usercontrols/dashboard/latestEdits.ascx</control>
        </tab>
    </section>
</dashBoard>

섹션 노드를 사용하면 다른 관리자 섹션에 대해 다른 탭 그룹을 설정할 수 있습니다. 위의 예에서 최신 탭의 최신 편집, 최신 항목 및 블로그 게시물 생성은 기본, 멤버 및 컨텐츠 섹션에 적용됩니다. DEFAUT는 섹션을 선택하기 전에 백엔드에 로그인 할 때 사용자가 가장 먼저 보는 것입니다.

다른 섹션에 표시되는 것을 제어하려면 새 섹션 노드를 설정하고 적용되는 영역과 표시 할 탭을 정의합니다. 위의 예에서 두 번째 섹션은 미디어 섹션에만 적용됩니다.

탭에 표시되는 것은 일반 .NET 사용자 컨트롤입니다. 이것은 Umbraco와 완전히 분리 될 수 있거나 레거시 응용 프로그램을 통합하거나 단순히 Umbraco를 확장하는 것에 따라 Umbraco 특정 코드를 포함 할 수 있습니다.

새 섹션 (Umbraco Backend의 왼쪽 하단에 나타나는 아이콘 중 하나)을 만들려면 손을 조금 더러워야합니다.

섹션을 추가하려면 몇 개의 데이터베이스 항목을 추가해야합니다. 먼저 Umbracoapp 테이블에서 앱을 정의해야합니다.

그런 다음 관리자 사용자 (0)에 대해 umbracousers2app에 항목을 추가하십시오.

그런 다음 새 컨텐츠 트리를 정의하고 지원 사용자 컨트롤을 작성해야합니다.

이를 설정하는 방법에 대한 자세한 정보가 있습니다. http://www.geckonewmedia.com/blog/2009/8/3/how-to-create-acustom-in-umbraco-4

첫 번째 접근 방식 (일부 새로운 탭을 정의하는 것만)은 새 섹션을 추가하는 것보다 훨씬 쉽기 때문에 시작하는 것이 좋습니다. 그런 다음 더 편안하면 바로 뛰어 들어 완전히 새로운 섹션과 콘텐츠 트리를 만들 수 있습니다!

다른 팁

우와!7년된 글이 아직도 구글 검색 상위권에 올라있습니다.

답변을 업데이트해 보겠습니다.

여기에서 대시보드 확장에 대한 설명서를 찾을 수 있습니다.대시보드

계기반

/config 디렉터리의 다른 .config 파일과 마찬가지로 Dashboard.config 파일을 사용하면 Umbraco 경험의 일부를 사용자 정의할 수 있습니다.이 경우 Dashboard.config 파일은 사이트 섹션이 로드될 때 UI의 대시보드 섹션에 표시되는 내용을 제어합니다.대시보드는 대부분의 데이터 입력과 기능적 상호 작용이 이루어지는 UI 오른쪽 영역입니다.

기본적으로 Umbraco는 새 섹션이 로드될 때 빈 대시보드를 표시하고 섹션 내에서 작업을 수행할 때만 양식을 표시합니다(예:콘텐츠 섹션에서 노드를 클릭하면 대시보드에 해당 노드의 데이터를 업데이트하는 양식이 표시됩니다.하지만 UI 사용자가 노드를 클릭하기 전에도 몇 가지 옵션을 제공하고 싶다면 어떻게 해야 할까요?그게 Dashboard.config를 사용하여 수행할 수 있는 작업입니다.

공들여 나열한 것

다른 .config 파일과 마찬가지로 Dashboard.config는 아래와 같이 매우 간단한 레이아웃을 갖춘 간단한 XML 파일입니다.

<?xml version="1.0" encoding="utf-8" ?> 
<dashBoard> <!-- root of the dashboard xml tree -->
   <section>  <!-- defines a dashboard layout for a group of sections -->
        <areas> <!-- Declares which sections (i.e. content,media,users,[your own]-->
            <area>[area name]</area> <!-- A section to apply this to -->
            ...
        </areas>

        <tab caption="[caption]"> <!-- Creates a tab in the Dashboard with the assigned Caption -->
            <control>[path]</control> <!-- What control to load in that tab -->
        </tab>
        ...
   </section>
   ...
</dashBoard>

섹션 (Umbraco UI 섹션과 다름)은 하나 이상의 섹션에 적용하도록 대시 보드 정보를 구분합니다.Dashboard.config에는 여러 섹션이 포함될 수 있습니다.

지역

대시보드 정보의 하위 집합을 적용할 Umbraco UI의 섹션을 정의합니다.지역 - 항상 소문자입니다!

사용자 컨트롤을 표시하려는 Umbraco UI 섹션의 이름*(예:콘텐츠, 미디어, 개발자, 설정, 회원 또는 사용자 정의 섹션 이름).여러 노드를 추가하여 둘 이상의 섹션에 컨트롤을 추가할 수 있습니다.

'default'라는 이름의 영역은 사용자가 액세스할 수 있는 섹션에 관계없이 사용자가 로그인할 때 표시되는 첫 번째 대시보드입니다!

약간의 문제가 있습니다. 앱 이름을 소문자로 포함해야 합니다!

사용자 컨트롤을 추가할 페이지 탭을 정의합니다.'caption' 속성은 탭에 표시되는 텍스트를 정의합니다.각 대시보드 "페이지" 컨트롤에는 여러 개의 탭이 있을 수 있습니다.

탭에 표시하려는 사용자 컨트롤의 경로를 정의합니다.

이 요소를 사용하면 섹션, 탭 및 컨트롤에 대한 권한을 설정할 수 있으며 특정 사용자 유형의 액세스를 허용하거나 거부할 수 있습니다.

이 기능은 <access/> 다음 중 하나 아래의 노드 <section />, <tab/> 또는 <control /> 마디.여러분의 자녀는 다음 중 하나를 추가할 수 있습니다.

<grant /> 해당 유형의 사용자에게 권한을 부여합니다(그리고 거기에 없는 사용자에게는 자동으로 액세스를 거부합니다!).

<grantBySection /> 특정 섹션에 대한 액세스 권한을 가진 사용자에게 권한을 부여합니다.이는 보다 세부적인 권한에 유용할 수 있습니다.

<deny /> 해당 유형의 사용자에 대한 권한을 거부하고 다른 모든 사용자에게 자동으로 부여합니다.

설정에 관계없이 루트 사용자(id:0)는 모든 것을 볼 수 있으므로 관리자에 대한 거부 권한을 설정했는데도 여전히 모든 것을 볼 수 있다면 당황하지 마십시오 ;-)

권한에 대한 예:

<tab caption="Last Edits">
    <access>
        <grant>writer</grant>
        <grant>editor</grant>
        <grantBySection>content</grantBySection>
    </access>
    <control>/usercontrols/dashboard/latestEdits.ascx</control>
</tab>

커스터마이징

Umbraco에서 대시보드를 사용자 정의하려면 몇 가지 작업을 수행해야 합니다.하나 이상의 UserControl 만들기

대시보드는 하나 이상의 UserControl을 로드하고 이를 일련의 탭에 표시합니다.따라서 컨트롤을 사용자 정의하려면 먼저 페이지에 표시할 UserControl을 만들어야 합니다.개인적인 용도로 사용하는 경우 Umbraco가 액세스할 수 있는 사이트 위치에 UserControl을 배치하면 됩니다./usercontrol 디렉토리, 바람직하게는 자신의 하위 폴더에 배치하는 것이 좋습니다.다른 사람이 사용할 수 있는 패키지를 만드는 경우 나머지 패키지 콘텐츠와 함께 설치할 패키지에 사용자 컨트롤을 포함해야 합니다.Dashboard.config 업데이트

섹션이 로드될 때 로드할 UserControl을 생성한 후에는 Dashboard.config를 업데이트하여 사용자가 새 섹션에 들어갈 때 UserControl을 로드하도록 Umbraco에 지시해야 합니다.이 작업을 직접 수행하는 경우에도 사이트에서 Dashboard.config를 편집하여 컨트롤을 추가하기만 하면 됩니다.그러나 패키지와 함께 사용할 섹션을 추가하는 경우 설치 중에 Dashboard.config를 업데이트하는 패키지 작업을 포함하는 것이 좋습니다.패키지 작업에 대한 자세한 내용을 보려면 여기를 클릭하세요.견본

다음은 유효한 Dashboard.config의 예입니다.

<?xml version="1.0" encoding="utf-8" ?> 
<dashBoard>
    <section>
        <areas>
            <area>content</area>
        </areas>        
        <tab caption="Last Edits">
            <access>
                <deny>editor</deny>
            </access>
            <control>/usercontrols/dashboard/latestEdits.ascx</control>
        </tab>
        <tab caption="Latest Items">
            <control>/usercontrols/dashboard/newestItems.ascx</control>
        </tab>
        <tab caption="Create blog post">
            <control>/usercontrols/umbracoBlog/dashboardBlogPostCreate.ascx</control>
        </tab>
    </section>
</dashBoard>

이것이 수행하는 작업은 사용자가 Umbraco UI의 콘텐츠 섹션(섹션은 화면 왼쪽 하단에 있음)을 클릭할 때마다 "마지막 편집", "최신 항목" 및 "블로그 만들기"라는 세 개의 탭이 있는 페이지를 로드하는 것입니다. 우편".각 탭에 대해 개발자가 해당 탭에 대해 만든 기능을 제공하기 위해 UserControl이 로드됩니다.UI는 제공된 경로를 통해 UserControls를 찾습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top