Search
Membership
Login:
Membership:
- New Today: 0
- New Yesterday: 0
- Overall: 3242
- Latest: GoodNews
Birthdays:
amfischer
People Online:
- Guests: 230
- Total: 230
Creating and Editing Themes 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)
Happy Birthday dear Bdragon
Best wishes and good luck for the future
OPN Dev Team
Posted by manne on 2003-12-13 07:40:23 (12189 * reads)
Happy Birthday dear DigitalPixel
......and as you are one of our "picassos " of the site, you get a very special cake :-)
Best wishes
OPN Dev Team
...
Posted by manne on 2003-11-30 16:32:21 (11885 * reads)
An example for the module "Themegroups"
I made an example on this webpage. Have a look at the upper right corner. There is a box called Themegroups. In this box you can choose
- All
- Friends
- Friends have gone
I also made a sidebox in the right upper corner named Hi Friends.
Now choose Friends have gone in the Themegroups Box and click Pages. What happens? --> The sidebox Hi Friends disappeared.
Now choose Friends in the Themegroup Box , click Pages and the Hi Friends Box will be shown.
The same if you choose All and click Pages
What have you seen? In OPN you can switch off and on boxes, depending on some kind of category which you can define in the admin of the module themegroups.
How can this be done? Define themegroups in the module themegroups. When you define a box in admin sidemenu or centermenu you can define at item "Category" wether it shall be shown in a distinct themegroup. In my example i defined a HTML Box as sidebox, named it "Hi Friends" and in "Category" I choosed "Friends". In this case the box will be displayed if themegroups is choosen "All" or "Friends"
Give this feature a try, perhaps you have gotten a better example, let me know and I put it in the documentation.
Help appreciated :-)
manne
P.S. In RC2 you can choose the themegroup which will be used when OPN is started. A lot of ideas ar feasible then :-) Think about it.
Posted by manne on 2003-11-29 21:40:28 (23464 * reads)
If you have problems in downloading from this site
- Did you deactivate the transmission of the referer in the browser?
- Did you deactivate the transmission of the referer in your firewall?
- Do you use an anonymous proxy?
The above items will cause a failure in downloading.
Please switch on referers and/or don`t use an anonymous proxy.
It´s only because this site is guarded against deep linking.
Enjoy downloading and working with OPN
manne