Sign in to follow this  
Bogdan NAGY

Creați-vă propriile locații widget

1 post in this topic

În mijlocul adăugării de imagini pentru cod, precum și a unei tabele demo pentru ca oamenii să poată adăuga widget-uri în mai multe locații noi în blocuri!

Untitled.thumb.png.c6563a889047ff8b4f97933be2a3afef.png.8a21d5ded3e92ca815d5d05e59d476b1.png

Buna,

Așa că am petrecut mult timp cu IPS4 pentru a avea mai mult decât locațiile implicite 3 widget-uri. Întotdeauna am solicitat un portal mai mult ca cel de la IPS3.X, așa că am găsit o modalitate de a adăuga propriile dvs. locații widget.

Acest tutorial a implicat editarea unor fișiere importante și crearea propriului dvs. în ecranul editorului temă, deci este un tutorial destul de complex, așadar aș recomanda foarte mult să vă sprijiniți site-ul în sus! Deci, înainte de a petrece veacuri lectură aici este ceea ce acest tutorial vă va arăta cum să faceți

Cerințe preliminare:

Faceți o copie de siguranță a temei site-ului dvs.

Creați copii de siguranță ale fișierelor și bazei de date ale site-urilor dvs.

Efectuați un instantaneu dacă este posibil (cPanel)

In primul rand:

Trebuie să intrați în editorul dvs. de temă și să editați câteva linii ale modelului globalTemplate, vă sfătuiesc să copiați codul original într-un notepad doar în cazul în care acesta nu merge bine, dar ar trebui să aveți deja o copie de siguranță a temei oricum.

Aproximativ la jumătatea în jos, în funcție de temă veți găsi aceste linii (ar putea fi împreună sau separate în câteva rânduri):

{template="widgetContainer" group="global" app="core" params="'header', 'horizontal'"}
{template="widgetContainer" group="global" app="core" params="'footer', 'horizontal'"}
{template="sidebar" if="theme.sidebar_position == 'right'" app="core" group="global" params="'right'"}

 

Acum doriți să copiați una sau mai multe dintre aceste linii în funcție de ceea ce încercați să realizați. Pentru motivul tutorial am de gând să adăugați 2 sidebars, deci copiați:

{template="sidebar" if="theme.sidebar_position == 'right'" app="core" group="global" params="'right'"}
{template="sidebar_two" if="theme.sidebar_position == 'right'" app="core" group="global" params="'right'"}

și lipiți-o sub original și schimbați {template = "sidebar" ..... la {template = "sidebar_two" .... și acum salvați modelul globalTemplate.

În al doilea rând:

Acum, rămâneți în editorul temă și adăugați un nou șablon HTML, numește-l sidebar_two sau corespunde cu ceea ce ați numit noul widget.

Asigurați-vă că meniurile derulante sunt după cum urmează:

Location: Front

Existing Group: Global

Applications: System

și acum introduceți codul șablon "bara laterală" acolo și schimbați etichetele bara laterală ca numele dvs. de 
widget, în acest caz sidebar_two

 

{{if (isset( \IPS\Output::i()->sidebar['enabled'] ) and \IPS\Output::i()->sidebar['enabled'] ) && ( ( isset( \IPS\Output::i()->sidebar['contextual'] ) && trim( \IPS\Output::i()->sidebar['contextual'] ) !== '' ) || ( isset( \IPS\Output::i()->sidebar['widgets']['sidebar'] ) && count( \IPS\Output::i()->sidebar['widgets']['sidebar'] ) ) || ( \IPS\Dispatcher::i()->application instanceof \IPS\Application AND \IPS\Dispatcher::i()->application->canManageWidgets() ) )}}
	<div id='ipsLayout_sidebar' class='ipsLayout_sidebar{$position} {{if !( isset( \IPS\Output::i()->sidebar['contextual'] ) && trim( \IPS\Output::i()->sidebar['contextual'] ) !== '' ) && ( !isset( \IPS\Output::i()->sidebar['widgets']['sidebar'] ) || !count( \IPS\Output::i()->sidebar['widgets']['sidebar'] ) ) && \IPS\Dispatcher::i()->application->canManageWidgets()}}ipsLayout_sidebarUnused{{endif}}' data-controller='core.front.widgets.sidebar'>
		{{if isset( \IPS\Output::i()->sidebar['contextual'] ) && trim( \IPS\Output::i()->sidebar['contextual'] ) !== ''}}
			<aside id="elContextualTools" class='ipsClearfix' {{if isset( \IPS\Output::i()->sidebar['sticky'] )}}data-ipsSticky{{endif}}>
				{expression="\IPS\Output::i()->sidebar['contextual']" raw="true"}
			</aside>
		{{endif}}
		{{if isset(\IPS\Output::i()->sidebar['widgets']['sidebar']) and count( \IPS\Output::i()->sidebar['widgets']['sidebar'] ) and ( \IPS\core\Advertisement::loadByLocation( 'ad_sidebar' ) ) }}
			{advertisement="ad_sidebar"}
			<br><br>
		{{endif}}
		{template="widgetContainer" group="global" app="core" params="'sidebar', 'vertical'"}
	</div>
{{endif}}
În al treilea rând:

Acum trebuie să editați un fișier de sistem, pe care îl puteți face pe desktopul dvs., apoi suprascrieți fișierul sau puteți să faceți o explorare a fișierelor cPanel ca și cum am cPannel o să o fac acolo, am STRONGly vă recomandă acest fișier în sus, editare acest fișier incorect va avea ca rezultat niciuna dintre widget-urile dvs. nu funcționează!

Navigheaza la: Applications => Core => Modules => Front => System => si edit Widgets.php

Pe aceste linii se adaugă numele dvs. widget:

Linia:33

if ( ! \IPS\Member::loggedIn()->modPermission('can_manage_sidebar', 'can_manage_WIDGET NAME')

Linia:35

\IPS\Output::i()->error( 'no_permission_manage_sidebar', 'no_permission_manage_WIDGET NAME', '3S172/1', 403, '' );

Linia 75:

if ( ! $block->isExecutableByApp( array( \IPS\Request::i()->pageApp, 'sidebar', 'WIDGET NAME' ) ) )

Linia 236: 

if( !in_array( \IPS\Request::i()->area, array( 'sidebar', 'WIDGET NAME' , 'header', 'footer' ) ) )

 

odată ce ați făcut aceste modificări, salvați fișierele widgets.php și suprascrieți fișierul.

Odată ce ați făcut aceste modificări, salvați fișierele widgets.php și suprascrieți fișierul. Acum, când vă întoarceți la pagina dvs. de pornire și încercați să introduceți blocuri în widget-urile noi, ar trebui să funcționeze fără erori și să salvați locațiile!

In cele din urma:

Acest lucru este foarte variabil între widget-urile pe care le-ați ales și locațiile widget-urilor.

Cu toate acestea, puteți muta originalul

template="sidebar_two" if="theme.sidebar_position == 'right'" app="core" group="global" params="'right'"}


Oriunde doriți să fie widget-ul pe site-ul dvs., este posibil să fie necesar să faceți și anumite modificări CSS

BUG-uri:

Deci, deoarece IPS-ul implicit are doar 3 blocuri 1 este bara laterală, în setările tematice se va întreba unde doriți bara laterală (stânga sau dreapta), acest lucru este destul de învechit acum cum îl puteți pune oriunde doriți.


Blocurile fac destul de bine mobilul, însă blocurile din stânga vor apărea pe partea superioară a părții laterale, iar blocurile din dreapta vor apărea în partea inferioară.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this