summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Kremmel <xing@synapse.plus.com>2007-04-14 18:48:05 +0000
committerMax Kremmel <xing@synapse.plus.com>2007-04-14 18:48:05 +0000
commite76e18d31676437df9669815f009d27863a18cc5 (patch)
tree39e80db4efb9348033468ebf6a02283443585ca8
parent7aea4d36587168edc3147eb005b6f2064963f573 (diff)
downloadthemes-e76e18d31676437df9669815f009d27863a18cc5.tar.gz
themes-e76e18d31676437df9669815f009d27863a18cc5.tar.bz2
themes-e76e18d31676437df9669815f009d27863a18cc5.zip
various UI updates to the layout manager, add method to clone layouts for quick customisation.
-rw-r--r--BitThemes.php21
-rw-r--r--admin/admin_layout_inc.php38
-rw-r--r--templates/admin_layout.tpl99
-rw-r--r--templates/admin_layout_overview.tpl11
-rw-r--r--templates/module_config_inc.tpl93
5 files changed, 144 insertions, 118 deletions
diff --git a/BitThemes.php b/BitThemes.php
index 3acfa12..4c6015e 100644
--- a/BitThemes.php
+++ b/BitThemes.php
@@ -388,7 +388,7 @@ class BitThemes extends BitBase {
foreach( $layout as $column ) {
$i = 5;
foreach( $column as $module ) {
- $this->mDb->query( "UPDATE `".BIT_DB_PREFIX."themes_layouts` SET pos=? WHERE module_id=?", array( $i, $module['module_id'] ));
+ $this->mDb->query( "UPDATE `".BIT_DB_PREFIX."themes_layouts` SET pos=? WHERE `module_id`=?", array( $i, $module['module_id'] ));
$i += 5;
}
}
@@ -412,6 +412,23 @@ class BitThemes extends BitBase {
return $layouts;
}
+ function cloneLayout( $pFromLayout, $pToLayout ) {
+ global $gBitSystem;
+ if( !empty( $pFromLayout ) && in_array( $pFromLayout, array_keys( $gBitSystem->mPackages )) && !empty( $pToLayout ) && in_array( $pToLayout, array_keys( $gBitSystem->mPackages ))) {
+ // nuke existing layout
+ $this->mDb->query( "DELETE FROM `".BIT_DB_PREFIX."themes_layouts` WHERE `layout`=?", array( $pToLayout ));
+ // get requested layout
+ $layout = $this->mDb->getAll( "
+ SELECT `title`, `layout_area`, `module_rows`, `module_rsrc`, `params`, `cache_time`, `groups`, `pos`
+ FROM `".BIT_DB_PREFIX."themes_layouts` WHERE `layout`=?", array( $pFromLayout ));
+ foreach( $layout as $module ) {
+ $module['layout'] = $pToLayout;
+ $this->storeModule( $module );
+ }
+ }
+ return TRUE;
+ }
+
/**
* expungeLayout
*
@@ -422,7 +439,7 @@ class BitThemes extends BitBase {
function expungeLayout( $pLayout = NULL ) {
$bindVars;
if( !empty( $pLayout )) {
- $whereSql = "WHERE layout=?";
+ $whereSql = "WHERE `layout`=?";
$bindVars[] = $pLayout;
}
$this->mDb->query( "DELETE FROM `".BIT_DB_PREFIX."themes_layouts` $whereSql", $bindVars );
diff --git a/admin/admin_layout_inc.php b/admin/admin_layout_inc.php
index 979dd25..2b844a6 100644
--- a/admin/admin_layout_inc.php
+++ b/admin/admin_layout_inc.php
@@ -1,5 +1,5 @@
<?php
-// $Header: /cvsroot/bitweaver/_bit_themes/admin/admin_layout_inc.php,v 1.4 2007/04/12 17:56:08 squareing Exp $
+// $Header: /cvsroot/bitweaver/_bit_themes/admin/admin_layout_inc.php,v 1.5 2007/04/14 18:48:05 squareing Exp $
// Initialization
require_once( '../../bit_setup_inc.php' );
@@ -19,17 +19,7 @@ $layoutHash = array(
);
$layout = $gBitThemes->getLayout( $layoutHash );
-/* this is now part of the overview page to simpify the ui on this page
-if( !empty( $_REQUEST['update_modules'] ) && is_array( $_REQUEST['modules'] )) {
- foreach( $_REQUEST['modules'] as $module_id => $module ) {
- $module['module_id'] = $module_id;
- $module['user_id'] = ROOT_USER_ID;
- $gBitThemes->storeModule( $module );
- }
-}
- */
-
-if( !empty( $_REQUEST['fix_pos'] )) {
+if( !empty( $_REQUEST['fixpos'] )) {
$gBitThemes->fixPositions( $_REQUEST['module_package'] );
}
@@ -60,6 +50,7 @@ $formMiscFeatures = array(
);
$gBitSmarty->assign( 'formMiscFeatures',$formMiscFeatures );
+// hide columns in individual packages
foreach( $gBitSystem->mPackages as $key => $package ) {
if( !empty( $package['installed'] ) && ( !empty( $package['activatable'] ) || !empty( $package['tables'] ) ) ) {
if( $package['name'] == 'kernel' ) {
@@ -71,6 +62,13 @@ foreach( $gBitSystem->mPackages as $key => $package ) {
asort( $hideColumns );
$gBitSmarty->assign( 'hideColumns', $hideColumns );
+// clone existing layout
+$cloneLayouts = $gBitThemes->getAllLayouts();
+$gBitSmarty->assign( 'cloneLayouts', $cloneLayouts );
+if( !empty( $_REQUEST['from_layout'] ) && !empty( $_REQUEST['to_layout'] )) {
+ $gBitThemes->cloneLayout( $_REQUEST['from_layout'], $_REQUEST['to_layout'] );
+}
+
// process form - check what tab was used and set it
$processForm = set_tab();
@@ -84,16 +82,16 @@ if( $processForm == 'Hide' ) {
// evaluate what columns to hide
foreach( $hideable as $area ) {
- foreach( array_keys( $hideColumns ) as $package ) {
- $pref = "{$package}_hide_{$area}_col";
- if( isset( $_REQUEST['hide'][$pref] ) ) {
- $gBitSystem->storeConfig( $pref, 'y', THEMES_PKG_NAME );
- } else {
- // remove the setting from the db if it's not set
- $gBitSystem->storeConfig( $pref, NULL );
+ foreach( array_keys( $hideColumns ) as $package ) {
+ $pref = "{$package}_hide_{$area}_col";
+ if( isset( $_REQUEST['hide'][$pref] ) ) {
+ $gBitSystem->storeConfig( $pref, 'y', THEMES_PKG_NAME );
+ } else {
+ // remove the setting from the db if it's not set
+ $gBitSystem->storeConfig( $pref, NULL );
+ }
}
}
- }
} elseif( isset( $_REQUEST['module_id'] ) && !empty( $_REQUEST['move_module'] )) {
if( isset( $_REQUEST['move_module'] )) {
switch( $_REQUEST['move_module'] ) {
diff --git a/templates/admin_layout.tpl b/templates/admin_layout.tpl
index e17874a..de6a2c1 100644
--- a/templates/admin_layout.tpl
+++ b/templates/admin_layout.tpl
@@ -1,6 +1,55 @@
{strip}
{formfeedback hash=$feedback}
+{form legend="Create Layout for Section"}
+ <input type="hidden" name="page" value="{$page}" />
+ <div class="row">
+ {formlabel label="Create Customized layout for" for="module_package"}
+ {forminput}
+ <select name="module_package" id="module_package" onchange="this.form.submit();">
+ {foreach key=name item=package from=$gBitSystem->mPackages}
+ {if $package.installed and ($package.activatable or $package.tables)}
+ <option value="{$name}" {if $module_package == $name}selected="selected"{/if}>
+ {if $name eq 'kernel'}
+ {tr}Site Default{/tr}
+ {else}
+ {tr}{$name|capitalize}{/tr}
+ {/if}
+ </option>
+ {/if}
+ {/foreach}
+ <option value="home" {if $module_package == 'home'}selected="selected"{/if}>{tr}User Homepages{/tr}</option>
+ </select>
+
+ <noscript>
+ {formhelp note="Apply this setting before you customise and assign modules below."}
+ </noscript>
+ {/forminput}
+ </div>
+
+ {if $cloneLayouts and $module_package != kernel}
+ <div class="row">
+ {formlabel label="Copy existing layout" for="clone_layout"}
+ {forminput}
+ <ul>
+ {foreach from=$cloneLayouts item=clone_layout key=clone_package}
+ {if $clone_package != $module_package}
+ <li><a href="{$smarty.const.KERNEL_PKG_URL}admin/index.php?page={$page}&amp;from_layout={$clone_package}&amp;to_layout={$module_package}&amp;module_package={$module_package}">{if $clone_package == kernel}{tr}Site Default{/tr}{else}{tr}{$clone_package|capitalize}{/tr}{/if}</a></li>
+ {/if}
+ {/foreach}
+ </ul>
+ {tr}to {if $module_package == kernel}Site Default{else}{$module_package|capitalize}{/if}{/tr}
+ {/forminput}
+ </div>
+ {/if}
+
+ <noscript>
+ <div class="row submit">
+ <input type="submit" name="fSubmitCustomize" value="{tr}Customize{/tr}" />
+ </div>
+ </noscript>
+{/form}
+
<table style="width:100%" cellpadding="5" cellspacing="0" border="0">
<caption>{tr}Current Layout of '{if !$module_package || $module_package=='kernel'}Site Default{else}{$module_package|capitalize}{/if}'{/tr}</caption>
<tr>
@@ -43,46 +92,16 @@
</tr>
</table>
-{form}
- <input type="hidden" name="page" value="{$page}" />
-
- <div class="submit">
- <input type="submit" name="fix_pos" value="{tr}Adjust module positions{/tr}" />
- </div>
-{/form}
-
-{form legend="Select Section"}
- <input type="hidden" name="page" value="{$page}" />
- <div class="row">
- {formlabel label="Create Customized layout for" for="module_package"}
- {forminput}
- <select name="module_package" id="module_package" onchange="this.form.submit();">
- {foreach key=name item=package from=$gBitSystem->mPackages}
- {if $package.installed and ($package.activatable or $package.tables)}
- <option value="{$name}" {if $module_package == $name}selected="selected"{/if}>
- {if $name eq 'kernel'}
- {tr}Site Default{/tr}
- {else}
- {tr}{$name|capitalize}{/tr}
- {/if}
- </option>
- {/if}
- {/foreach}
- <option value="home" {if $module_package == 'home'}selected="selected"{/if}>{tr}User Homepages{/tr}</option>
- </select>
-
- <noscript>
- {formhelp note="Apply this setting before you customise and assign modules below."}
- </noscript>
- {/forminput}
- </div>
-
- <noscript>
- <div class="row submit">
- <input type="submit" name="fSubmitCustomize" value="{tr}Customize{/tr}" />
- </div>
- </noscript>
-{/form}
+<ul>
+ <li>
+ {smartlink ititle="Adjust module positions" page=$page fixpos=1 module_package=$module_package}
+ {formhelp note="This will reset the position numbers of all modules using increments of 5."}
+ </li>
+ <li>
+ {smartlink ititle="Confugre Layouts" page=layout_overview}
+ {formhelp note="On this page you can configure all modules in all layouts."}
+ </li>
+</ul>
{jstabs}
{jstab title="Assign column module"}
diff --git a/templates/admin_layout_overview.tpl b/templates/admin_layout_overview.tpl
index 8126570..14456e0 100644
--- a/templates/admin_layout_overview.tpl
+++ b/templates/admin_layout_overview.tpl
@@ -5,22 +5,23 @@
<input type="hidden" name="page" value="{$page}" />
{foreach from=$layouts item=layout key=module_package}
- <h1>
+ <h1 id="{$module_package}">
{tr}Current Layout of '{if !$module_package || $module_package=='kernel'}Site Default{else}{$module_package|capitalize}{/if}'{/tr}
&nbsp; {smartlink ititle="Remove this Layout" ibiticon="icons/edit-delete" page=$page remove_layout=$module_package ionclick="return confirm('{tr}Are you sure you want to remove this layout? This can not be undone.{/tr}')"}
</h1>
<table style="width:100%" cellpadding="5" cellspacing="0" border="0">
<tr>
+ {cycle values="even,odd" print=0}
{foreach from=$layoutAreas item=area key=colkey}
{if $colkey =='top'}
- <td class="{cycle values="even,odd"}" colspan="3" style="vertical-align:top;">
+ <td class="{cycle}" colspan="3" style="vertical-align:top;">
{elseif $colkey =='bottom'}
</tr>
<tr>
- <td class="{cycle values="even,odd"}" colspan="3" style="vertical-align:top;">
+ <td class="{cycle}" colspan="3" style="vertical-align:top;">
{else}
- <td class="{cycle values="even,odd"}" style="width:33%; vertical-align:top;">
+ <td class="{cycle}" style="width:33%; vertical-align:top;">
{/if}
<table class="data" style="width:100%">
@@ -54,7 +55,7 @@
{/foreach}
<div class="submit">
- <input type="submit" name="update_modules" value="{tr}Update Module Settings{/tr}" />
+ <input type="submit" name="update_modules" value="{tr}Apply module settings{/tr}" />
<input type="submit" name="fix_pos" value="{tr}Adjust module positions{/tr}" />
</div>
{/form}
diff --git a/templates/module_config_inc.tpl b/templates/module_config_inc.tpl
index 0f94766..7190758 100644
--- a/templates/module_config_inc.tpl
+++ b/templates/module_config_inc.tpl
@@ -1,35 +1,34 @@
{strip}
{if $condensed}
- <div style="text-align:center">
- {$modInfo.name}
+ <strong>{$modInfo.name}</strong>
+ <br />
+ {if !$gBitThemes->isCustomModule( $modInfo.module_rsrc ) and $modInfo.title}
+ {tr}Title{/tr}: <em>{$modInfo.title|escape}</em>
<br />
- {if !$gBitThemes->isCustomModule( $modInfo.module_rsrc ) and $modInfo.title}
- {tr}Title{/tr}: {$modInfo.title|escape}
- <br />
+ {/if}
+ {tr}Position{/tr}: {$modInfo.pos}
+ <br />
+ {smartlink ititle="Up" ibiticon="icons/go-up" iforce="icon" page=$page move_module=up module_package=$module_package module_id=`$modInfo.module_id`}
+ {biticon ipackage=liberty iname=spacer}
+ {smartlink ititle="Down" ibiticon="icons/go-down" iforce="icon" page=$page move_module=down module_package=$module_package module_id=`$modInfo.module_id`}
+ {biticon ipackage=liberty iname=spacer}
+ {if $colkey eq 'left' or $colkey eq 'right'}
+ {if $colkey == 'left'}
+ {assign var=icon value=next}
+ {assign var=move value=right}
+ {elseif $colkey == 'right'}
+ {assign var=icon value=previous}
+ {assign var=move value=left}
{/if}
- {tr}Position{/tr}: {$modInfo.pos}
+ {smartlink ititle="Move module" ibiticon="icons/go-$icon" iforce="icon" page=$page move_module=$move module_package=$module_package module_id=$modInfo.module_id}
{biticon ipackage=liberty iname=spacer}
- {smartlink ititle="Up" ibiticon="icons/go-up" iforce="icon" page=$page move_module=up module_package=$module_package module_id=`$modInfo.module_id`}
+ {/if}
+ {if $gBitThemes->isCustomModule( $modInfo.module_rsrc )}
+ {smartlink ititle="Edit" ibiticon="icons/accessories-text-editor" iforce=icon page=custom_modules name=$modInfo.module_rsrc|regex_replace:"!.*\/!":"" action=edit}
{biticon ipackage=liberty iname=spacer}
- {smartlink ititle="Down" ibiticon="icons/go-down" iforce="icon" page=$page move_module=down module_package=$module_package module_id=`$modInfo.module_id`}
- {biticon ipackage=liberty iname=spacer}
- {if $colkey eq 'left' or $colkey eq 'right'}
- {if $colkey == 'left'}
- {assign var=icon value=next}
- {assign var=move value=right}
- {elseif $colkey == 'right'}
- {assign var=icon value=previous}
- {assign var=move value=left}
- {/if}
- {smartlink ititle="Move module" ibiticon="icons/go-$icon" iforce="icon" page=$page move_module=$move module_package=$module_package module_id=$modInfo.module_id}
- {biticon ipackage=liberty iname=spacer}
- {/if}
- {if $gBitThemes->isCustomModule( $modInfo.module_rsrc )}
- {smartlink ititle="Edit" ibiticon="icons/accessories-text-editor" iforce=icon page=custom_modules name=$modInfo.module_rsrc|regex_replace:"!.*\/!":"" action=edit}
- {biticon ipackage=liberty iname=spacer}
- {/if}
- {smartlink ititle="Unassign" ibiticon="icons/edit-delete" iforce=icon ionclick="return confirm('Are you sure you want to remove `$modInfo.name`?');" page=$page move_module=unassign module_package=$module_package module_id=$modInfo.module_id}
- </div>
+ {/if}
+ {smartlink ititle="Unassign" ibiticon="icons/edit-delete" iforce=icon ionclick="return confirm('Are you sure you want to remove `$modInfo.name`?');" page=$page move_module=unassign module_package=$module_package module_id=$modInfo.module_id}
+ <hr />
{else}
<table class="data">
<tr>
@@ -43,9 +42,23 @@
<tr>
<td style="text-align:right">{tr}Position{/tr}</td>
<td>
- <input type="text" size="10" name="modules[{$modInfo.module_id}][pos]" value="{$modInfo.pos}" />
- {smartlink ititle="Up" ibiticon="icons/go-up" iforce="icon" page=$page move_module=up module_package=$module_package module_id=`$modInfo.module_id`}
- {smartlink ititle="Down" ibiticon="icons/go-down" iforce="icon" page=$page move_module=down module_package=$module_package module_id=`$modInfo.module_id`}
+ <input type="text" size="4" name="modules[{$modInfo.module_id}][pos]" value="{$modInfo.pos}" />
+ {smartlink ianchor=$modInfo.layout ititle="Up" ibiticon="icons/go-up" iforce="icon" page=$page move_module=up module_package=$module_package module_id=`$modInfo.module_id`}
+ {smartlink ianchor=$modInfo.layout ititle="Down" ibiticon="icons/go-down" iforce="icon" page=$page move_module=down module_package=$module_package module_id=`$modInfo.module_id`}
+ {if $colkey eq 'left' or $colkey eq 'right'}
+ {if $colkey == 'left'}
+ {assign var=icon value=next}
+ {assign var=move value=right}
+ {elseif $colkey == 'right'}
+ {assign var=icon value=previous}
+ {assign var=move value=left}
+ {/if}
+ {smartlink ianchor=$modInfo.layout ititle="Move module" ibiticon="icons/go-$icon" iforce="icon" page=$page move_module=$move module_package=$module_package module_id=$modInfo.module_id}
+ {/if}
+ {if $gBitThemes->isCustomModule( $modInfo.module_rsrc )}
+ {smartlink ititle="Edit" ibiticon="icons/accessories-text-editor" iforce=icon page=custom_modules name=$modInfo.module_rsrc|regex_replace:"!.*\/!":"" action=edit}
+ {/if}
+ {smartlink ianchor=$modInfo.layout ititle="Unassign" ibiticon="icons/edit-delete" iforce=icon ionclick="return confirm('Are you sure you want to remove `$modInfo.name`?');" page=$page move_module=unassign module_package=$module_package module_id=$modInfo.module_id}
</td>
</tr>
@@ -85,28 +98,6 @@
</select>
</td>
</tr>
-
- <tr>
- <td style="text-align:right"></td>
- <td>
- {if $colkey eq 'left' or $colkey eq 'right'}
- {if $colkey == 'left'}
- {assign var=icon value=next}
- {assign var=move value=right}
- {elseif $colkey == 'right'}
- {assign var=icon value=previous}
- {assign var=move value=left}
- {/if}
- {smartlink ititle="Move module" ibiticon="icons/go-$icon" iforce="icon" page=$page move_module=$move module_package=$module_package module_id=$modInfo.module_id}
- {/if}
- &nbsp;&nbsp;
- {if $gBitThemes->isCustomModule( $modInfo.module_rsrc )}
- {smartlink ititle="Edit" ibiticon="icons/accessories-text-editor" iforce=icon page=custom_modules name=$modInfo.module_rsrc|regex_replace:"!.*\/!":"" action=edit}
- &nbsp;&nbsp;
- {/if}
- {smartlink ititle="Unassign" ibiticon="icons/edit-delete" iforce=icon ionclick="return confirm('Are you sure you want to remove `$modInfo.name`?');" page=$page move_module=unassign module_package=$module_package module_id=$modInfo.module_id}
- </td>
- </tr>
</table>
{/if}
{/strip}