WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

Du bist nicht angemeldet.

#1 06.09.2019 18:58:50

florian
Administrator

Droplet: getSectionByName

Mit diesem Droplet können Abschnitte anhand ihres Namens gezogen werden.
Aufruf: [[getSectionByName?name=Namedesabschnitts]]

Basiert auf dem "alten" SectionPicker-Droplet. Kann daher sein, dass die Zeile $wb_page_data = usw. gar nicht erforderlich ist.

global $database, $wb, $TEXT;
$content = ' ';
$query_sec = $database->query("SELECT section_id,module FROM ".TABLE_PREFIX."sections WHERE namesection = '$name' ");
if($query_sec->numRows() > 0) { 
	$section = $query_sec->fetchRow(); 
	$section_id = $section['section_id']; 
	$module = $section['module']; 
	ob_start();
	require(WB_PATH.'/modules/'.$module.'/view.php'); 
	$content = ob_get_contents();
    	ob_end_clean();
} 
$wb_page_data = str_replace('</head>','<link href="'.WB_URL.'/modules/'.$module.'/frontend.css" rel="stylesheet" type="text/css" media="screen" />'."\n".'<script src="'.WB_URL.'/modules/'.$module.'/frontend.js" type="text/javascript"> </script>'."\n".'</head>', $wb_page_data );    	
return $content;

Code allein macht nicht glücklich. Jetzt spenden!

Offline

#2 14.12.2019 13:41:44

rheo
Mitglied

Re: Droplet: getSectionByName

Lässt sich dieses Droplet problemlos parallel zum "alten" verwenden ?

Offline

#3 14.12.2019 14:04:12

florian
Administrator

Re: Droplet: getSectionByName

ja, du speicherst es ja unter einem anderen Namen ("getsectionbyname" oder etwas beliebiges anderes), damit ist es völlig unabhängig vom vorhandenen sectionpicker-Droplet (und vom sectionpicker-Modul sowieso).


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#4 14.12.2019 16:52:09

rheo
Mitglied

Re: Droplet: getSectionByName

Super, danke !   thumb_up

Offline

#5 15.01.2020 10:38:44

rheo
Mitglied

Re: Droplet: getSectionByName

Mir ist gerade aufgefallen, dass das Droplet getSectionByName keine Accordion-Sections aufrufen kann.

Statt der Seite erscheint im Frontend folgende Fehlermeldung :

Fatal error: Uncaught Error: Call to a member function strip_slashes() on unknown in /home/www/xxx/html/cms/modules/accordion/view.php:30 Stack trace: #0 /home/www/xxx/html/cms/modules/droplets/droplets.php(24) : eval()'d code(9): require() #1 /home/www/xxx/html/cms/modules/droplets/droplets.php(24): eval() #2 /home/www/xxx/html/cms/modules/droplets/droplets.php(89): do_eval('global $databas...', Array, '<!DOCTYPE html>...') #3 /home/www/xxx/html/cms/modules/droplets/droplets.php(128): processDroplets('<!DOCTYPE html>...', 'frontend') #4 /home/www/xxx/html/cms/modules/mod_opf_droplets/filter.php(63): evalDroplets('<!DOCTYPE html>...', 'frontend') #5 /home/www/xxx/html/cms/modules/outputfilter_dashboard/functions.php(1247): opff_mod_opf_droplets('<!DOCTYPE html>...', '231', false, false, Object(Frontend)) #6 /home/www/xxx/html/cms/modules/outputfilter_dashboard/functions.php(1701): opf_apply_filters('<!DOCTYPE html>...', '7page', false, '231', false, Object(Frontend)) #7 /home/www/xxx/html/cms/in in /home/www/xxx/html/cms/modules/accordion/view.php on line 30

Mit dem Droplet SectionPicker funktioniert der Aufruf einer Accordion-Sections dagegen problemlos.

Da ich das neue Droplet mit dem Namen sehr schätze, wäre ich an einer Lösung interessiert ...

Offline

#6 15.01.2020 11:03:06

webbird
Administrator

Re: Droplet: getSectionByName

Da scheint mir aber der Fehler im Accordion Modul zu liegen und nicht im Droplet.


Ich habe eine Amazon-Wishlist. wink Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal

Online

#7 15.01.2020 11:06:20

webbird
Administrator

Re: Droplet: getSectionByName

Ja, hier dran liegt's:

$header= $admin->strip_slashes($fetch_settings['header']);

$admin ist nicht belegt, daher die (vollkommen korrekte) Fehlermeldung. Das wäre im Modul zu beheben und nicht im Droplet, das ist hier sozusagen nur der "Nachrichtenüberbringer". wink


Ich habe eine Amazon-Wishlist. wink Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal

Online

#8 15.01.2020 11:07:18

florian
Administrator

Re: Droplet: getSectionByName

@rheo Ändere das getsectionbyname-Droplet zu

global $database;
$query_sec = $database->query("SELECT section_id,module FROM ".TABLE_PREFIX."sections WHERE namesection = '$name' ");
if($query_sec->numRows() > 0) { 
	$section = $query_sec->fetchRow(); 
	$section_id = $section['section_id']; 
} 
return get_section_content($section_id, false, false); 

Beitrag geändert von florian (15.01.2020 11:08:21)


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#9 15.01.2020 11:11:15

webbird
Administrator

Re: Droplet: getSectionByName

Naja, die view.php ist trotzdem falsch. angel Ihr könnt ja mal die angehängte testen, hab auf die Schnelle keine Testumgebung. Original-Datei vorher sichern!


Ich habe eine Amazon-Wishlist. wink Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal

Online

#10 15.01.2020 16:41:37

rheo
Mitglied

Re: Droplet: getSectionByName

Vielen dank für die schnellen Anpassungen.
Jetzt klappt's problemlos ... auch ohne die Änderung der view.php.

Ein sehr netter und unerwarteter Nebeneffekt :
Die Seiten werden offensichtlich sehr viel schneller geladen !   cool

Offline

Fußzeile des Forums

up