From: Marc L. <ma...@ma...> - 2009-11-06 21:52:42
|
Thank you Chealer. All: we need this do deal with profiles in Tiki3 vs Tiki4 Best regards, M ;-) On Fri, Nov 6, 2009 at 4:09 PM, <ch...@us...> wrote: > Revision: 22948 > http://tikiwiki.svn.sourceforge.net/tikiwiki/?rev=22948&view=rev > Author: chealer > Date: 2009-11-06 21:09:05 +0000 (Fri, 06 Nov 2009) > > Log Message: > ----------- > [ENH] allow filtering profiles belonging to several categories > [ENH] don't display category filter select multiple if categories aren't loaded > [FIX] "Categories" instead of "Category" in column name displaying profile categories > [FIX] colons inside tr blocks > > Modified Paths: > -------------- > branches/4.x/lib/profilelib/listlib.php > branches/4.x/templates/tiki-admin-include-profiles.tpl > branches/4.x/tiki-admin_include_profiles.php > > Modified: branches/4.x/lib/profilelib/listlib.php > =================================================================== > --- branches/4.x/lib/profilelib/listlib.php 2009-11-06 19:06:36 UTC (rev 22947) > +++ branches/4.x/lib/profilelib/listlib.php 2009-11-06 21:09:05 UTC (rev 22948) > @@ -88,7 +88,7 @@ > return( array_unique( $category_list ) ); > } // }}} > > - function getList( $source = '', $category = '', $profile = '' ) // {{{ > + function getList( $source = '', $categories = array(), $profilename = '' ) // {{{ > { > $installer = new Tiki_Profile_Installer; > $list = array(); > @@ -114,20 +114,18 @@ > > $key = "{$s['url']}#{$i}"; > > - if( $category && stripos( $c, $category ) === false ) > + if( $profilename && stripos( $i, $profilename ) === false ) > continue; > - if( $profile && stripos( $i, $profile ) === false ) > - continue; > > if( array_key_exists( $key, $list ) ) > { > - $list[$key]['category'] .= ", $c"; > + $list[$key]['categories'][] = $c; > } > else > { > $list[$key] = array( > 'domain' => $s['domain'], > - 'category' => $c, > + 'categories' => array($c), > 'name' => $i, > 'installed' => $installer->isKeyInstalled( $s['domain'], $i ), > ); > @@ -135,6 +133,26 @@ > } > > fclose($fp); > + > + // Apply category filter > + foreach ($list as $pkey => $profile) { > + $in = true; // If there are no required categories, don't filter anything. > + foreach ($categories as $category) { > + $in = false; // Start assuming this required category isn't in this profile's categories > + foreach ($profile['categories'] as $pcategory) { > + if( $category == $pcategory ) { > + $in = true; > + break; > + } > + } > + if (!$in) { > + break; > + } > + } > + if (!$in) { > + unset($list[$pkey]); > + } > + } > } > > return array_values( $list ); > > Modified: branches/4.x/templates/tiki-admin-include-profiles.tpl > =================================================================== > --- branches/4.x/templates/tiki-admin-include-profiles.tpl 2009-11-06 19:06:36 UTC (rev 22947) > +++ branches/4.x/templates/tiki-admin-include-profiles.tpl 2009-11-06 21:09:05 UTC (rev 22948) > @@ -270,18 +270,19 @@ > <fieldset><legend>{tr}Profiles{/tr}</legend> > <form method="get" action="tiki-admin.php#profile-results"> > <div class="adminoptionbox"> > -<div class="adminoptionlabel">{tr}Filter the list of profiles{/tr}:</div> > +<div class="adminoptionlabel">{tr}Filter the list of profiles:{/tr}</div> > <div class="adminoptionboxchild"> > - <div class="adminoptionlabel"><label for="profile">{tr}Profile{/tr}: </label><input type="text" name="profile" id="profile" value="{$profile|escape}" /></div> > - <div class="adminoptionlabel"><label for="category">{tr}Category{/tr}: </label> > - <select name="category" id="category"> > - <option value="">{tr}All{/tr}</option> > + <div class="adminoptionlabel"><label for="profile">{tr}Profile:{/tr} </label><input type="text" name="profile" id="profile" value="{$profile|escape}" /></div> > +{if isset($category_list)} > + <div class="adminoptionlabel"><label for="categories">{tr}Categories:{/tr} </label> > + <select multiple="multiple" name="categories[]" id="categories"> > {foreach item=cat from=$category_list} > - <option value="{$cat|escape}"{if $cat eq $category} selected="selected"{/if}>{$cat|escape}</option> > + <option value="{$cat|escape}"{if in_array($cat, $categories)} selected="selected"{/if}>{$cat|escape}</option> > {/foreach} > </select> > </div> > - <div class="adminoptionlabel"><label for="repository">{tr}Repository{/tr}: </label> > +{/if} > + <div class="adminoptionlabel"><label for="repository">{tr}Repository:{/tr} </label> > <select name="repository" id="repository"> > <option value="">{tr}All{/tr}</option> > {foreach item=source from=$sources} > @@ -298,13 +299,13 @@ > <tr> > <th>{tr}Profile{/tr}</th> > <th>{tr}Repository{/tr}</th> > - <th>{tr}Category{/tr}</th> > + <th>{tr}Categories{/tr}</th> > </tr> > {foreach key=k item=profile from=$result} > <tr id="profile-{$k}"> > <td><a href="javascript:showDetails( 'profile-{$k}', '{$profile.domain|escape}', '{$profile.name|escape}' )">{$profile.name|escape}</a>{if $profile.installed} <em>{tr}applied{/tr}</em>{/if}</td> > <td>{$profile.domain}</td> > - <td>{$profile.category}</td> > + <td>{$profile.categoriesString}</td> > </tr> > {/foreach} > {if $result|@count eq '0'} > @@ -317,7 +318,7 @@ > <fieldset><legend>{tr}Repositories{/tr}</legend> > <form action="tiki-admin.php?page=profiles" method="post"> > <div class="adminoptionbox"> > - <div class="adminoptionlabel"><label for="profile_sources">{tr}Repository URLs{/tr}:</label></div> > + <div class="adminoptionlabel"><label for="profile_sources">{tr}Repository URLs:{/tr}</label></div> > <div><textarea id="profile_sources" name="profile_sources" rows="5" cols="60" style="width:95%;">{$prefs.profile_sources|escape}</textarea> > <br /><em>{tr}Enter multiple repository URLs, one per line{/tr}.</em> > </div> > @@ -343,7 +344,7 @@ > <em><strong>{tr}This will run the profile and make potentially unrecoverable changes in your database!{/tr}</strong></em> > <div class="adminoptionbox"> > <div class="adminoptionlabel"> > - <label for="profile_tester_name">{tr}Test Profile Name{/tr}: </label> > + <label for="profile_tester_name">{tr}Test Profile Name:{/tr} </label> > <input type="text" name="profile_tester_name" id="profile_tester_name" value="Test" /> > </div> > <div> > > Modified: branches/4.x/tiki-admin_include_profiles.php > =================================================================== > --- branches/4.x/tiki-admin_include_profiles.php 2009-11-06 19:06:36 UTC (rev 22947) > +++ branches/4.x/tiki-admin_include_profiles.php 2009-11-06 21:09:05 UTC (rev 22948) > @@ -131,14 +131,20 @@ > 'category' => '', > 'profile' => '' > ) , $_GET); > - $smarty->assign('category', $params['category']); > + $smarty->assign('categories', $params['categories']); > $smarty->assign('profile', $params['profile']); > $smarty->assign('repository', $params['repository']); > if ($_GET['preloadlist'] && $params['repository']) $list->refreshCache($params['repository']); > - $result = $list->getList($params['repository'], $params['category'], $params['profile']); > + $profiles = $list->getList($params['repository'], $params['categories'], $params['profile']); > + foreach ($profiles as &$profile) { > + $profile['categoriesString'] = ""; > + foreach ($profile['categories'] as $category) { > + $profile['categoriesString'] .= (empty($profile['categoriesString']) ? '' : ', ') . $category; > + } > + } > + $smarty->assign('result', $profiles); > $category_list = $list->getCategoryList($params['repository']); > $smarty->assign('category_list', $category_list); > - $smarty->assign('result', $result); > } // }}} > $threshhold = time() - 1800; > $oldSources = array(); > > > This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. > > ------------------------------------------------------------------------------ > Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day > trial. Simplify your report design, integration and deployment - and focus on > what you do best, core application coding. Discover what's new with > Crystal Reports now. http://p.sf.net/sfu/bobj-july > _______________________________________________ > Tikiwiki-cvs mailing list > Tik...@li... > https://lists.sourceforge.net/lists/listinfo/tikiwiki-cvs > -- Marc Laporte http://MarcLaporte.com http://TikiWiki.org/MarcLaporte http://AvanTech.net http://OurWiki.net |