Page 1 of 1

JQuery Mobile Themes in conf.inc.php global definieren

Posted: Mon 7. Nov 2011, 10:45
by santscho
Im JQuery Moible framework lassen sich in der CSS bis zu 26 Template-Stile (themes) definieren. Diese werden nach dem Alphabet benannt (a-z)

Jedem Element des Framework kann separat ein theme (a-z) zugeordnet werden. Eine typische JQM-Seite mit zugeordneten themes sieht vereinfacht so aus:

Code: Select all

<div data-role="page" data-theme="c">

	<div data-role="header" data-theme="a">
		<h1>Page Title</h1>
	</div><!-- /header -->

	<div data-role="content">	
		<ul data-role="listview" data-theme="d">
                <li>Blablabla
               </ul>
	</div><!-- /content -->
	<div data-role="footer" data-theme="a">
		<h4>Page Footer</h4>
	</div><!-- /footer -->
</div><!-- /page -->
Jetzt würde ich gerne alle Seiten-Templages und CP-Templates so aufbauen, dass die themes jeweils dynamisch aus der conf-inc.php rausgelesen werden. Ich stelle mir das etwas so vor:

Code: Select all

<div data-role="page" {PAGETHEME}>

	<div data-role="header" {HEADERTHEME}>
		<h1>Page Title</h1>
	</div><!-- /header -->

	<div data-role="content">	
		<ul data-role="listview" {LISTTHEME}>
                <li>Blablabla
               </ul>
	</div><!-- /content -->
	<div data-role="footer" {FOOTERTHEME}>
		<h4>Page Footer</h4>
	</div><!-- /footer -->
</div><!-- /page -->
in der conf.inc.php bräuchte ich etwas, das ungefähr so aussieht:

Code: Select all

// jquery mobile themes
$phpwcms['PAGETHEME']      = a; //theme (a-z)
$phpwcms['HEADERTHEME']      = c; //theme (a-z)
$phpwcms['BUTTONTHEME']      = b; //theme (a-z)
$phpwcms['LISTTHEME']      = a; //theme (a-z)
$phpwcms['LISTDIVIDERTHEME']      = c; //theme (a-z)
$phpwcms['FOOTERTHEME']      = a; //theme (a-z)
im Frontend sollte dann phpwcms die entsprechenden themes generieren.
Aus

Code: Select all

{FOOTERTHEME}
wird

Code: Select all

datatheme="a"
Wäre das einfach zu bewerkstelligen oder soll ich besser mit eiem Frontend-Renderscript arbeiten (Ersetzer)?

Re: JQuery Mobile Themes in conf.inc.php global definieren

Posted: Mon 7. Nov 2011, 11:06
by santscho
Was ich mir auch vorstellen könnte: die Template-Zuordnungen in der mysql-databank abzulegen und dann in den templates so aufzurufen:

Code: Select all

data-theme="<?php echo $row_getThemes['page']; ?>"
Kann ich einfach Werte aus der DB saugen (ist "required once" auch für custom-Anfragen offen?) oder muss ich jedesmal zuerste eine Verbindung zur DB herstellen?

Re: JQuery Mobile Themes in conf.inc.php global definieren

Posted: Tue 8. Nov 2011, 07:31
by juergen
Die Variable ist vermutlich nicht belegt, du musst vorher eine query in deiner Tabelle laufen lassen, die benutzte DB ist aber schon verbunden.

Re: JQuery Mobile Themes in conf.inc.php global definieren

Posted: Tue 8. Nov 2011, 10:22
by santscho
Ich habe es jetzt mit einem Frontend-Renderscript geloest:

Code: Select all

<?php
// Building Templates for JQuery Mobile Framework
// ----------------------------------------------------------------
// obligate check for phpwcms constants
if (!defined('PHPWCMS_ROOT')) { die("You Cannot Access This Script Directly, Have a Nice Day."); }
// ----------------------------------------------------------------


        $_themepage = 'data-theme="a"';
        $_themeheader = 'data-theme="b"';
        $_themefooter = 'data-theme="c"';
        $_themetoolbar = 'data-theme="d"';
        $_themebuttons = 'data-theme="e"';
        $_themecontent = 'data-theme="f"';
        $_themeforms = 'data-theme="g"';
        $_themelist = 'data-theme="h"';
        $_themelistdivider = 'data-theme="i"';

        $content['all'] = str_replace( '{THEME_PAGE}', $_themepage, $content['all'] );
        $content['all'] = str_replace( '{THEME_HEADER}', $_themeheader, $content['all'] );
        $content['all'] = str_replace( '{THEME_FOOTER}', $_themefooter, $content['all'] );
        $content['all'] = str_replace( '{THEME_TOOLBAR}', $_themetoolbar, $content['all'] );
        $content['all'] = str_replace( '{THEME_BUTTONS}', $_themebuttons, $content['all'] );
        $content['all'] = str_replace( '{THEME_CONTENT}', $_themecontent, $content['all'] );
        $content['all'] = str_replace( '{THEME_FORMS}', $_themeforms, $content['all'] );
        $content['all'] = str_replace( '{THEME_LIST}', $_themelist, $content['all'] );
        $content['all'] = str_replace( '{THEME_LISTDIVIDER}', $_themelistdivider, $content['all'] );

?>

Re: JQuery Mobile Themes in conf.inc.php global definieren

Posted: Wed 1. Feb 2012, 11:04
by kukki
Bei heutigen Stöbern (mir ging mobile auf die Ketten, also mal was anderes lesen) bin ich hier hängengeblieben. Gibt es eine Fortsetzung davon oder ist es bei Deiner tollen Idee geblieben? :roll:

Re: JQuery Mobile Themes in conf.inc.php global definieren

Posted: Wed 1. Feb 2012, 17:20
by santscho
Hallo Kuki. Habe nichts geändert. Funktioniert so wunderbar.

Re: JQuery Mobile Themes in conf.inc.php global definieren

Posted: Wed 1. Feb 2012, 22:45
by Oliver Georgi
santscho wrote:Was ich mir auch vorstellen könnte: die Template-Zuordnungen in der mysql-databank abzulegen und dann in den templates so aufzurufen:

Code: Select all

data-theme="<?php echo $row_getThemes['page']; ?>"
Kann ich einfach Werte aus der DB saugen (ist "required once" auch für custom-Anfragen offen?) oder muss ich jedesmal zuerste eine Verbindung zur DB herstellen?
Die DB ist immer geöffnet, also nicht neu aufmachen. Neueres Release unterstützt _dbSwitch(). Gestattet auf gleichem DB-Server, die Datenbank zu wechseln.

Code: Select all

_dbSwitch('myotherdb');
_dbSwitch(); // default again