Creating and Editing Themes in OPN rc1   All articles   Auf Facebook posten http://www.openphpnuke.com/system/article/index.php?opnparams=CntdOAI3CmdWNVUx

OPN ThemesMy Theme - first steps to the creating your own Theme based on the CSS Theme layout in OPN RC1.

This guidance is to help you better understand the Theme system for OPN. So
if everything fails at first attempt, do not despair. For everything there
is a solution: Either with second times around or one more night with less
sleep ; )

*Note: This is an
old doc, and I will try to find the build this was released for
asap.




Lets
start with the basic file structure.


First we will create the folders
and files for our New Theme. This will save us time later, and
also allow
you
to
see
step
by step how a Theme is created.



Since this is a demo, our Theme will be called "demo" . Please
keep this name for now, because it will be used throughout this tutorial.
First let's go into our (OPN) root folder, and find a folder named "themes".
In this we add a folder named "demo".


Your folder list should look like this:

OPN_INSTALL_root > themes > demo




In the demo folder we create 4 other folders and 3 files .

Create Folders: plugin, image, LANGUAGE, tpl

Create Files: theme.php, demo.css, opn_item.php




Then open the folder plugin and
create a file named repair.php (leave
blank for now)

and a file named index.php.


Then open the file index.php you just created in
the plugin folder
and write the following into it with any editor:




/*

* OpenPHPNuke: Great Web Portal System

*

* Copyright (c) 2001-2003 by

* Heinz Hombergs heinz@hhombergs.de

* Stefan Kaletta stefan@kaletta.de

* Alexander Weber xweber@kamelfreunde.de

*

* This program is free software. You can redistribute it and/or modify

* it under the terms of the GNU General Public License as published by

* the Free Software Foundation; either version 2 of the License.

* See LICENSE for details.

*

* This software is based on various code found in the internet

* See CREDITS for details

* If you are an author of a part of opn and not you are not mentioned

* SORRY for that ! We respect your rights to your code, so please send

* an email to devteam@openphpnuke.com we will include you to the CREDITS
asap

*/


if (!defined('_OPN_MAINFILE_INCLUDED')) { include('../../../mainfile.php');
}

$langFile = getLanguageDef($opnConfig['language'],$opnConfig['root_path'].'language/');


include_once($opnConfig['root_path'].'class/class.installer.php');


function demo_DoRemove($module) {

global $user,$opnTables,$opnConfig;


//Only admins can remove plugins

$userinfo = getuserinfo_rights ($user,'user','');

if ($userinfo['user_group'] == 10) {

$inst=new OPN_PluginDeinstaller;

$inst->Module=$module;

$inst->ModuleName='demo';


$inst->ItemDataSaveToCheck= 'themes_demo';

$inst->ItemsDataSave = array('themes_demo');


$inst->DeinstallPlugin();

$opnConfig['opnOutput']->Redirect('/admin.php?fct=plugins');

CloseTheOpnDB ($opnConfig);

}

}


function demo_DoInstall($module,$auto) {

global $user,$opnTables,$opnConfig;


//Only admins can install plugins

$userinfo = getuserinfo_rights ($user,'user','');

if ( (($userinfo['user_group'] == 10) && ($auto==1)) || (($userinfo['user_group']
== 10) && ($auto==0)) ) {

$inst= new OPN_PluginInstaller;


$inst->Module=$module;

$inst->ModuleName='demo';


$inst->ItemDataSaveToCheck= 'themes_demo';

$inst->ItemsDataSave = array('themes_demo');


$inst->MetaSiteTags=FALSE;


$myarr = include_once ($opnConfig['root_path'].$module.'/plugin/repair/setting.php');

$myfunc = $inst->ModuleName.'_repair_setting_plugin';


$myarr = include_once ($opnConfig['root_path'].$module.'/plugin/repair/features.php');

$funcF = $inst->ModuleName.'_repair_features_plugin';

$funcM = $inst->ModuleName.'_repair_middleboxes_plugin';

$funcO = $inst->ModuleName.'_repair_opnboxes_plugin';

$funcS = $inst->ModuleName.'_repair_sideboxes_plugin';


$inst->Features=$funcF();

$inst->Sideboxes=$funcS();

$inst->Middleboxes=$funcM();

$inst->Opnboxes=$funcO();

$inst->PublicSettings=$myfunc (0);

$inst->PrivateSettings=$myfunc (1);


$inst->InstallPlugin();


}

if($auto==0){

$opnConfig['opnOutput']->Redirect('/admin.php?fct=plugins');

CloseTheOpnDB ($opnConfig);

}

}

if(!(isset($op))) {$op = '';}

if(!isset($auto)) {$auto=0;}


switch ($op) {

case 'doremove':

demo_DoRemove ($module);

break;

case 'doinstall':

demo_DoInstall ($module,$auto);

break;}


?>




SAVE THIS FILE!!!

Now we open the folder repair and put in
3 more files.

Files: features.php, index.php, setting.php

After this, we take again the editor and open features.php and write in the
following:




/*

* OpenPHPNuke: Great Web Portal System

*

* Copyright (c) 2001-2003 by

* Heinz Hombergs heinz@hhombergs.de

* Stefan Kaletta stefan@kaletta.de

* Alexander Weber xweber@kamelfreunde.de

*

* This program is free software. You can redistribute it and/or modify

* it under the terms of the GNU General Public License as published by

* the Free Software Foundation; either version 2 of the License.

* See LICENSE for details.

*

* This software is based on various code found in the internet

* See CREDITS for details

* If you are an author of a part of opn and not you are not mentioned

* SORRY for that ! We respect your rights to your code, so please send

* an email to devteam@openphpnuke.com we will include you to the CREDITS
asap

*/


function demo_repair_features_plugin() {


return array('repair','theme');


}




function demo_repair_middleboxes_plugin() {


return array();


}




function demo_repair_sideboxes_plugin() {


return array();


}


function demo_repair_opnboxes_plugin() {


return array();


}


?>




Do Not forget to SAVE FILE!!

Now we open index.php and write in:






/*

* OpenPHPNuke: Great Web Portal System

*

* Copyright (c) 2001-2003 by

* Heinz Hombergs heinz@hhombergs.de

* Stefan Kaletta stefan@kaletta.de

* Alexander Weber xweber@kamelfreunde.de

*

* This program is free software. You can redistribute it and/or modify

* it under the terms of the GNU General Public License as published by

* the Free Software Foundation; either version 2 of the License.

* See LICENSE for details.

*

* This software is based on various code found in the internet

* See CREDITS for details

* If you are an author of a part of opn and not you are not mentioned

* SORRY for that ! We respect your rights to your code, so please send

* an email to devteam@openphpnuke.com we will include you to the CREDITS asap

*/

function demo_repair_plugin($module) {

global $opnConfig;


$opnConfig['module']->SetModuleName('demo');

if ($opnConfig['module']->ModuleIsInstalled()) {

$inst=new OPN_PluginInstaller;


$inst->Module=$module;

$inst->ModuleName='demo';


$myarr = include_once ($opnConfig['root_path'].$module.'/plugin/repair/features.php');

$funcF = $inst->ModuleName.'_repair_features_plugin';

$funcM = $inst->ModuleName.'_repair_middleboxes_plugin';

$funcO = $inst->ModuleName.'_repair_opnboxes_plugin';

$funcS = $inst->ModuleName.'_repair_sideboxes_plugin';


$inst->Features=$funcF();

$inst->Sideboxes=$funcS();

$inst->Middleboxes=$funcM();

$inst->Opnboxes=$funcO();


$inst->SetPluginFeature();

unset ($inst);

unset ($funcF);

unset ($funcS);

unset ($funcO);

unset ($funcM);

}

}


?>




Do Not forget to SAVE FILE!!

Now we open setting.php and write in:






/*

* OpenPHPNuke: Great Web Portal System

*

* Copyright (c) 2001-2003 by

* Heinz Hombergs heinz@hhombergs.de

* Stefan Kaletta stefan@kaletta.de

* Alexander Weber xweber@kamelfreunde.de

*

* This program is free software. You can redistribute it and/or modify

* it under the terms of the GNU General Public License as published by

* the Free Software Foundation; either version 2 of the License.

* See LICENSE for details.

*

* This software is based on various code found in the internet

* See CREDITS for details

* If you are an author of a part of opn and not you are not mentioned

* SORRY for that ! We respect your rights to your code, so please send

* an email to devteam@openphpnuke.com we will include you to the CREDITS asap

*/

function demo_repair_setting_plugin($privat = 1) {


if ($privat==0) {


// public return Wert


return array();


} else {


// privat return Wert


return array();


}




}


?>




Do Not forget to SAVE ALL FILES!!
Now we go back again into our root (demo)
folder and open opn_item.php with an editor, and write into
it the following:






/*

* OpenPHPNuke: Great Web Portal System

*

* Copyright (c) 2001-2003 by

* Heinz Hombergs heinz@hhombergs.de

* Stefan Kaletta stefan@kaletta.de

* Alexander Weber xweber@kamelfreunde.de

*

* This program is free software. You can redistribute it and/or modify

* it under the terms of the GNU General Public License as published by

* the Free Software Foundation; either version 2 of the License.

* See LICENSE for details.

*

* This software is based on various code found in the internet

* See CREDITS for details

* If you are an author of a part of opn and not you are not mentioned

* SORRY for that ! We respect your rights to your code, so please send

* an email to devteam@openphpnuke.com we will include you to the CREDITS asap

*/

function demo_get_admin_config (&$help) {

global $opnConfig;

$langFile = getLanguageDef($opnConfig['language'],$opnConfig['root_path'].'themes/demo/language/');


$help['config_description'] =_demo_THEME_CONFIGDESC;

$help['description']=_demo_THEME_DESC;

$help['image']='themes/demo/images/img_theme.jpg';

$help['weight']=5;

$help['settings']='';

$help['access']='';

$help['adminpath']='admin/index.php';

$help['access_group']=10;


}

?>




Do Not forget to SAVE FILES!!! Now we still have 3 files to put into the LANGUAGE folder
and to put:

Files: lang-english.php, lang-german.php, lang-german_du.php

In this 3 we write the same thing:






/*

* OpenPHPNuke: Great Web Portal System

*

* Copyright (c) 2001-2003 by

* Heinz Hombergs heinz@hhombergs.de

* Stefan Kaletta stefan@kaletta.de

* Alexander Weber xweber@kamelfreunde.de

*

* This program is free software. You can redistribute it and/or modify

* it under the terms of the GNU General Public License as published by

* the Free Software Foundation; either version 2 of the License.

* See LICENSE for details.

*

* This software is based on various code found in the internet

* See CREDITS for details

* If you are an author of a part of opn and not you are not mentioned

* SORRY for that ! We respect your rights to your code, so please send

* an email to devteam@openphpnuke.com we will include you to the CREDITS
asap

*/

define('_demo_THEME_DESC','demo');

define('_demo_THEME_CONFIGDESC','demo');

?>




Do Not forget to SAVE FILES!!

Now, if we look
in any other Theme and find the file image for the Theme and to copy the
file img_theme.jpg into our image folder.
If you are uncertain whether you set-up everything correctly, go to administration
panel and then the modules section. In the section topics of modules you
should see your Theme "demo". If it isn't working, then try searching
the error messages to figure out where the error developed.


Part
I of III >>


Written
by: manne  @  http://www.openphpnuke.info

Translated to English by: klehman  @  http://starzero.com



Posted by klehman on 2003-12-14 00:08:41  (28407 * reads) 

  All articles   Auf Facebook posten http://www.openphpnuke.com/system/article/index.php?opnparams=CntdOAI3CmdWNVUx

Comments

Threshold
The comments are owned by the poster. We are not responsible for their content.


Re: Creating and Editing Themes in OPN rc1 
by hombergs  on 2003-12-14 00:09:58 
Nice and great work.
 
Page took 0.07539 seconds to load