Eindgebruikers de mogelijkheid geven bepaalde functies van een premium-plug-in of een thema in of uit te schakelen, is vrij gebruikelijk. Titan Framework heeft onlangs een nieuwe optie in de kern geduwd die precies dat doet. Laten we eens kijken hoe u een schakelknop voor in- / uitschakelen kunt toevoegen in een beheerdersdashboard, een metabox of een thema-aanpasser met Titan Framework (TF).
Er is een in staat stellen
type optie in Titan Framework om schakelknoppen in- / uitschakelen te maken. In het dashboard, de in staat stellen
type optie verschijnt als volgt:
Dit zijn de parameters:
in staat stellen
type optie.Ingeschakeld
.invalide
.in staat stellen
typ de optie in een themaaanpassingsgedeelte, met deze parameter kun je een voorbeeld bekijken van de wijzigingen die je aanbrengt.Alle parameters zijn draad
op type, behalve de standaardinstelling boolean
.
U kunt deze optie toevoegen aan:
Om een toe te voegen in staat stellen
type optie in deze containers, volg deze stappen:
getInstance ()
functie.createOption ()
functie.GetOption ()
functie.Als je geïnteresseerd bent om te leren hoe je deze containers kunt maken met TF, lees dan de vorige artikelen van deze serie.
Laten we deze optie eerst in een beheerdersvenster maken.
createOption (array ('id' => 'aa_enable_opt', // De ID die wordt gebruikt om de waarde van deze optie 'type' => 'enable' te krijgen, // Type optie we maken 'naam' => 'Allow Custom CSS', // Naam van de optie die wordt weergegeven in het adminpaneel 'desc' => 'Aangepaste CSS inschakelen / uitschakelen', // Beschrijving van de optie die wordt weergegeven in het beheerdersvenster 'standaard' => true // Standaardwaarde van de optie));
Op regel # 8 heb ik een toegevoegd in staat stellen
typ optie via de createOption ()
functie in een admin panel $ aa_panel
. Omdat deze functie een array opneemt, heb ik de waarden van de parameters gedefinieerd naam, type, id, desc en standaard. De waarde van ID moet uniek zijn, d.w.z.. aa_enable_opt
. De waarde van standaard ingesteld op waar
, wat betekent dat de status van de optie is ingesteld op 'ingeschakeld' standaard.
In bovenstaande schermafbeelding is er een in staat stellen
type optie met de naam Aangepaste CSS toestaan in een beheerderspaneel Nette opties.
Laten we de opgeslagen waarden ophalen.
getOption ('aa_enable_opt'); / ** * * Opgeslagen waarde afdrukken * * / if (1 == $ aa_enable_opt_val) echo "Aangepaste CSS in tabblad admin is Aan."; else echo "Aangepaste CSS in tabblad admin is Uit."; ?>
Om de opgeslagen waarde te krijgen, moet je eerst een instantie via de getInstance ()
functie (regel # 3). Dan op regel # 6, de GetOption ()
functie haalt de opgeslagen waarde op door de optie-ID te registreren aa_enable_opt
als zijn parameter. Ik heb het resultaat in een nieuwe variabele opgeslagen $ aa_enable_opt_val
. Toen gebruikte ik een if-else
controleer welke de opgeslagen waarde aan de voorkant afdrukt.
Nu de in staat stellen
type optie kan twee waarden bevatten: een van beide 1/0 of waar onwaar. De waarde is '1' (ingeschakelde status) of '0' (uitgeschakelde staat). Gezien dit feit, schreef ik de regels 15 tot 20 van de code, die de waarde van de variabele controleert $ aa_enable_opt_val
. Als het '1' is, drukt het 'Aangepaste CSS in admin panel is ingeschakeld ' aan de voorkant. Als de waarde van de variabele '0' is, wordt deze afgedrukt 'Aangepaste CSS in beheerderspaneel is uitgeschakeld'.
Stel dat ik de optie heb ingeschakeld en opgeslagen.
Hier is een screenshot van het eindresultaat dat aan de voorkant verscheen.
Vervolgens maak ik deze optie op een admin-tabblad.
createOption (array ('id' => 'aa_enable_opt_in_tab', // De ID die wordt gebruikt om de waarde van deze optie te krijgen 'type' => 'enable', // Type optie we maken 'naam' => 'Allow Custom CSS', // Naam van de optie die wordt weergegeven in het beheerdersvenster 'desc' => 'Aangepaste CSS inschakelen / uitschakelen', // Beschrijving van de optie die wordt weergegeven in het beheerdersvenster 'enabled' => 'Aan', // Label voor de ingeschakelde optie 'uitgeschakeld' => 'Uit' // Label voor de uitgeschakelde optie));
Hier heb ik deze optie toegevoegd op een admin-tabblad $ aa_tab1
. De waarde van de ID is aa_enable_opt_in_tab
. Deze keer heb ik ook nieuwe labels gedefinieerd voor de ingeschakeld en invalide parameters.
In de afbeelding is er een in staat stellen
typ optie binnen Tab 1 van paneel Nette opties 2. Let ook op de nieuw gedefinieerde labels 'Op'voor inschakelen en'Uit'voor uitschakelen.
Nu krijg ik opgeslagen waarden.
getOption ('aa_enable_opt_in_tab'); / ** * * Opgeslagen waarde afdrukken * * / if (1 == $ aa_enable_opt_in_tab_val) echo "Aangepaste CSS in tabblad admin is Aan."; else echo "Aangepaste CSS in tabblad admin is Uit."; ?>
De code lijkt veel op wat ik hierboven heb geschreven. Dus, laat me alle stappen samenvatten:
getInstance ()
functie op regel # 4.GetOption ()
functie op regel # 7.if-else
controleer verklaring op regels 15 tot 20.Deze keer heb ik de optie omgeschakeld naar Uit. Het front-end drukt de volgende regel af:
Nu ga ik een maken in staat stellen
type optie in een metabox.
createOption (array ('id' => 'aa_enable_opt_in_metabox', // De ID die wordt gebruikt om de waarde van deze optie te krijgen 'type' => 'enable', // Type optie we maken 'naam' => 'Aangepaste CSS toestaan', // Naam van de optie die 'desc' wordt weergegeven => 'Aangepaste CSS inschakelen / uitschakelen', // Beschrijving van de optie die 'standaard' wordt weergegeven => false // Standaardwaarde van de optie ) );
Hier heb ik er nog een toegevoegd in staat stellen
type optie in een metabox $ aa_metbox
. Zijn ID is aa_enable_opt_in_metabox
. De waarde van standaard ingesteld op vals
.
In de bovenstaande schermafbeelding kunt u deze optie in een metabox vinden. Het verschijnt op alle pagina's en na bewerkingsschermen.
Laten we de opgeslagen waarde voor deze optie ophalen.
getOption ('aa_enable_opt_in_metabox', get_the_ID ()); / ** * Opgeslagen waarde afdrukken * * / if (1 == $ aa_enable_opt_in_metabox_val) echo "Aangepaste CSS in een metabox is ingeschakeld."; else echo "Aangepaste CSS in een metabox is uitgeschakeld."; ?>
Ik heb bijna dezelfde code opnieuw geschreven. Het enige verschil is te zien op regel # 6. Er bestaat een nieuwe parameter in de GetOption ()
functie. Dit is de get_the_ID ()
functie die wordt gebruikt om een specifieke pagina of een bericht-ID op te halen.
Laten we nog een keer doen in staat stellen de optie en sla het op. De voorkant ziet er als volgt uit:
Ten slotte maak ik deze optie in een themaaanpassingsgedeelte.
createOption (array ('id' => 'aa_enable_opt_in_sec', // De ID die wordt gebruikt om de waarde van deze optie 'type' => 'enable' te krijgen, // Type optie we maken 'naam' => 'Aangepaste CSS toestaan', // Naam van de optie die 'desc' wordt weergegeven => 'Aangepaste CSS inschakelen / uitschakelen', // Beschrijving van de optie die 'standaard' wordt weergegeven => false // Standaardwaarde van de optie ) );
Hier heb ik deze optie gemaakt in een thema-aanpasser $ aa_section1
. De unieke ID is aa_enable_opt_in_sec
. De rest van de parameters zijn hetzelfde.
In de bovenstaande afbeelding is er een in staat stellen
typ optie in een thema-aanpassersectie met de naam Mijn sectie.
Gebruik de volgende code om opgeslagen waarden te krijgen.
getOption ('aa_enable_opt_in_sec'); / ** * * Opgeslagen waarde afdrukken * * / if (1 == $ aa_enable_opt_in_sec_val) echo "Aangepaste CSS in een customizergedeelte is ingeschakeld."; else echo "Aangepaste CSS in een customizer-sectie is uitgeschakeld."; ?>
Nogmaals, de code is exact hetzelfde. Alleen de ID- en variabelenamen zijn verschillend.
Dit is het screenshot, dat de veranderingen in de live preview-modus toont.
Vanuit het oogpunt van een eindgebruiker, de in staat stellen
type optie is best handig, omdat je met een enkele klik alle functies kunt in- of uitschakelen. Ga dus door deze zelfstudie en deel uw mening hierover in de sectie Opmerkingen.
Op dit punt hebben we alles besproken wat er te bespreken valt over het Titan Framework. Vergeet niet om de seriepagina af te sluiten als u vragen of opmerkingen hebt over een van de onderwerpen die we hebben behandeld. Of neem gerust contact met me op via Twitter.