FAQ Item ausblenden wenn leer

Hilfe zu Znuny Problemen aller Art
Locked
sem
Znuny newbie
Posts: 2
Joined: 25 Feb 2011, 10:46
Znuny Version: 3.0.5

FAQ Item ausblenden wenn leer

Post by sem »

Hallo,
Ich würde gern den FAQ Bereich für FAQs im ursprünglichen Sinne als auch zur Veröffentlichung von Anleitungen und Dokumentationen verwenden. Für die FAQs ist die Einteilung in Symptom, Problem, Lösung und Kommentar sicher sinnvoll, aber für die Dokumentationen brauche ich nur ein Feld. Ich weiss, dass ich die Items in der Sysconfig bearbeiten und entfernen kann, aber ist es auch möglich, diese einfach auszublenden, wenn sie leer gelassen werden?

OTRS Version 3.0.5
FAQ Version 2.0.2
OS Debian Lenny v5

Danke für eure Hilfe!
Gruss, Sem
sem
Znuny newbie
Posts: 2
Joined: 25 Feb 2011, 10:46
Znuny Version: 3.0.5

Re: FAQ Item ausblenden wenn leer

Post by sem »

Könnt ihr mir dann vielleicht sagen, ob es möglich ist oder nicht? Oder ob es noch alternativmöglichkeiten gibt?
Christian
Znuny newbie
Posts: 11
Joined: 02 Mar 2009, 11:25

Re: FAQ Item ausblenden wenn leer

Post by Christian »

Intressanter Punkt, wäre auch für uns sehr nützlich. *push*
"Produktiv": OTRS: 3.0.6
"Testing": None
OS: SLES
Apache2/MySQL 5
jojo
Znuny guru
Posts: 15020
Joined: 26 Jan 2007, 14:50
Znuny Version: Git Master
Contact:

Re: FAQ Item ausblenden wenn leer

Post by jojo »

Mach einen Enhancement Bug auf
"Production": OTRS™ 8, OTRS™ 7, STORM powered by OTRS
"Testing": ((OTRS Community Edition)) and git Master

Never change Defaults.pm! :: Blog
Professional Services:: http://www.otrs.com :: enjoy@otrs.com
Christian
Znuny newbie
Posts: 11
Joined: 02 Mar 2009, 11:25

Re: FAQ Item ausblenden wenn leer

Post by Christian »

Done. Schau ma mal ;).
"Produktiv": OTRS: 3.0.6
"Testing": None
OS: SLES
Apache2/MySQL 5
Eselchen
Znuny newbie
Posts: 1
Joined: 20 Sep 2011, 09:25
Znuny Version: 3.0.9

Re: FAQ Item ausblenden wenn leer

Post by Eselchen »

*winke* mitm Huf

Das Problem ist wohl noch nicht gelöst, ich kann allerdings Lösungsansätze beitragen, da ich ein ähnliches Problem bearbeitet habe.

Die Felder lassen sich zwar generell über die Sysconfig ausschalten, aber nicht dynamisch. Dazu sind eigene Module und Templates notwendig.
Ich wurde angewiesen, dies erstmal hier zu posten, ich werde noch eine Dokumentation dazu erstellen, mich um die Optik kümmern und die eine oder andere Sache ausbügeln.

Ich werde erstmal nur auf den Customer eingehen, der Agent ist nahezu identisch zu bearbeiten.

Momentan habe ich in der NavBar Steuerelemente angelegt, die direkt eine FAQ-Kategorie auswählen. In den Skin kommt:

Code: Select all

<ConfigItem Name="CustomerFrontend::Module###CustomerFAQExplorerAllgemein" Required="0" Valid="1">
        <Description Translatable="1">Frontend module registration for the customer interface.</Description>
        <Group>FAQ</Group>
        <SubGroup>Frontend::Customer::ModuleRegistration</SubGroup>
        <Setting>
            <FrontendModuleReg>
                <Description>FAQ-Area</Description>
                <NavBarName>FAQ</NavBarName>
                <Title>FAQAllgemein</Title>
                <NavBar>
                    <Description>anzeigen FAQ-Artikel Allgemein</Description>
                    <Name>FAQ-Artikel Allgemein anzeigen</Name>
                    <Link>Action=CustomerFAQExplorerAllgemein;CategoryID=2</Link>
                    <Type></Type>
                    <Block></Block>
                    <AccessKey></AccessKey>
                    <Prio>941</Prio>
                </NavBar>
            </FrontendModuleReg>
        </Setting>
    </ConfigItem>
	<ConfigItem Name="CustomerFrontend::Module###CustomerFAQZoomAllgemein" Required="0" Valid="1">
        <Description Translatable="1">Frontend module registration for the customer interface.</Description>
        <Group>FAQ</Group>
        <SubGroup>Frontend::Customer::ModuleRegistration</SubGroup>
        <Setting>
            <FrontendModuleReg>
                <Title></Title>
                <Description>Customer FAQ-Zoom Allgemein</Description>
                <NavBarName>FAQ</NavBarName>
                <Loader>
                    <CSS>FAQ.Customer.Detail.css</CSS>
                    <CSS>FAQ.Customer.Default.css</CSS>
                </Loader>
            </FrontendModuleReg>
        </Setting>
    </ConfigItem>
Aus /Kernel/Modules werden die Dateien CustomerFAQExplorer.pm und CustomerFAQZoom.pm unter neuem Namen (in diesem Fall ein "Allgemein" hinten dran) in diesen Ordner kopiert.
Im Header wird das Package angepaßt, in der Methode Mask_New beim Output (ganz unten, # start template output o.ä.) auf das neue Template verwiesen (auch den neuen Dateinamen).
Die Templates stammen aus /Kernel/Output/HTML/Standart, auch wieder unter neuem Namen einkopieren.

Die CustomerFAQZoomXXX bekommt noch eine weitere Änderung. Die Methode Run wirft bei # show FAQ Content einiges in eine Variable, welche der Inhalt eines Layout-Objects ist. Dies ist auch nur eine Funktion.

Code: Select all

$Self->{LayoutObject}->FAQContentShowXXX(...);
In der Datei /Kernel/Output/HTML/LayoutFAQ.pm wird die komplette Methode sub FAQContentShow {...} gleich darunter einkopiert und der Name angepaßt.
Unter # get the config of FAQ fields that should be shown können nun die Felder angepaßt werden.

Meine Aufgabe war es nur, gewisse Felder auszublenden.

Code: Select all

for my $Number ( 2 .. 3 ) {...}
Es werden nur Felder 2 und 3 angezeigt. Dynamisch ließe sich das erledigen, indem ein leeres Feld übersprungen wird next FIELD if !$Config->{Show}||....

Gucken und testen. Ich bin noch nicht dazu gekommen, weitere Sachen anzupassen, z.B. sind noch einige Links, die noch auf die alten Methoden verweisen. Die finde ich noch :shock:

Das ist eine schnelle aber schmutzige Möglichkeit, dieses Problem zu lösen. Es kommt zur Codeverdopplung und bei einem Update wird die Layout.pm eventuell überschrieben :cry:

Ich hoffe, das war einigermaßen verständlich :roll:
Sollten trotz Neuaufbau die Steuerelemente nicht da sein, muß der Admin in der SysConfig unter registeredModules in der FAQ-Gruppe nochmals reinschauen und aktualisieren, danach dann das System neu aufbauen.

,,,^..^(")
Locked