php optimizations:
- use faster [] operator instead of array_push - if tags are grouped by letter, don't add level to tags, sort etc ... git-svn-id: http://piwigo.org/svn/trunk@18455 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
parent
b90d2721e5
commit
cc558d8694
3 changed files with 69 additions and 71 deletions
|
|
@ -64,12 +64,12 @@ SELECT *
|
|||
$tags = array();
|
||||
while ($row = pwg_db_fetch_assoc($result))
|
||||
{
|
||||
$counter = @$tag_counters[ $row['id'] ];
|
||||
$counter = intval(@$tag_counters[ $row['id'] ]);
|
||||
if ( $counter )
|
||||
{
|
||||
$row['counter'] = $counter;
|
||||
$row['name'] = trigger_event('render_tag_name', $row['name']);
|
||||
array_push($tags, $row);
|
||||
$tags[] = $row;
|
||||
}
|
||||
}
|
||||
return $tags;
|
||||
|
|
@ -91,7 +91,7 @@ SELECT *
|
|||
while ($row = pwg_db_fetch_assoc($result))
|
||||
{
|
||||
$row['name'] = trigger_event('render_tag_name', $row['name']);
|
||||
array_push($tags, $row);
|
||||
$tags[] = $row;
|
||||
}
|
||||
|
||||
usort($tags, 'tag_alpha_compare');
|
||||
|
|
@ -138,20 +138,21 @@ function add_level_to_tags($tags)
|
|||
}
|
||||
|
||||
// display sorted tags
|
||||
foreach (array_keys($tags) as $k)
|
||||
foreach ($tags as &$tag)
|
||||
{
|
||||
$tags[$k]['level'] = 1;
|
||||
$tag['level'] = 1;
|
||||
|
||||
// based on threshold, determine current tag level
|
||||
for ($i = $conf['tags_levels'] - 1; $i >= 1; $i--)
|
||||
{
|
||||
if ($tags[$k]['counter'] > $threshold_of_level[$i])
|
||||
if ($tag['counter'] > $threshold_of_level[$i])
|
||||
{
|
||||
$tags[$k]['level'] = $i + 1;
|
||||
$tag['level'] = $i + 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
unset($tag);
|
||||
|
||||
return $tags;
|
||||
}
|
||||
|
|
@ -254,7 +255,7 @@ SELECT t.*, count(*) AS counter
|
|||
while($row = pwg_db_fetch_assoc($result))
|
||||
{
|
||||
$row['name'] = trigger_event('render_tag_name', $row['name']);
|
||||
array_push($tags, $row);
|
||||
$tags[] = $row;
|
||||
}
|
||||
usort($tags, 'tag_alpha_compare');
|
||||
return $tags;
|
||||
|
|
|
|||
38
tags.php
38
tags.php
|
|
@ -159,28 +159,26 @@ if ($page['display_mode'] == 'letters') {
|
|||
);
|
||||
}
|
||||
}
|
||||
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | tag cloud construction |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
||||
// we want only the first most represented tags, so we sort them by counter
|
||||
// and take the first tags
|
||||
usort($tags, 'counter_compare');
|
||||
$tags = array_slice($tags, 0, $conf['full_tag_cloud_items_number']);
|
||||
|
||||
// depending on its counter and the other tags counter, each tag has a level
|
||||
$tags = add_level_to_tags($tags);
|
||||
|
||||
// we want tags diplayed in alphabetic order
|
||||
if ('letters' != $page['display_mode'])
|
||||
else
|
||||
{
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | tag cloud construction |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
||||
// we want only the first most represented tags, so we sort them by counter
|
||||
// and take the first tags
|
||||
usort($tags, 'counter_compare');
|
||||
$tags = array_slice($tags, 0, $conf['full_tag_cloud_items_number']);
|
||||
|
||||
// depending on its counter and the other tags counter, each tag has a level
|
||||
$tags = add_level_to_tags($tags);
|
||||
|
||||
// we want tags diplayed in alphabetic order
|
||||
usort($tags, 'tag_alpha_compare');
|
||||
}
|
||||
|
||||
// display sorted tags
|
||||
foreach ($tags as $tag)
|
||||
{
|
||||
// display sorted tags
|
||||
foreach ($tags as $tag)
|
||||
{
|
||||
$template->append(
|
||||
'tags',
|
||||
array_merge(
|
||||
|
|
@ -194,8 +192,8 @@ foreach ($tags as $tag)
|
|||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// include menubar
|
||||
$themeconf = $template->get_template_vars('themeconf');
|
||||
if (!isset($themeconf['hide_menu_on']) OR !in_array('theTagsPage', $themeconf['hide_menu_on']))
|
||||
|
|
|
|||
|
|
@ -19,21 +19,21 @@
|
|||
|
||||
{include file='infos_errors.tpl'}
|
||||
|
||||
{if isset($tags)}
|
||||
{if $display_mode == 'cloud'}
|
||||
<div id="fullTagCloud">
|
||||
|
||||
{if $display_mode == 'cloud' and isset($tags)}
|
||||
<div id="fullTagCloud">
|
||||
{foreach from=$tags item=tag}
|
||||
<span><a href="{$tag.URL}" class="tagLevel{$tag.level}" title="{$pwg->l10n_dec('%d photo', '%d photos', $tag.counter)}">{$tag.name}</a></span>
|
||||
{/foreach}
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{if $display_mode == 'letters'}
|
||||
<table>
|
||||
{if $display_mode == 'letters' and isset($letters)}
|
||||
<table>
|
||||
<tr>
|
||||
<td valign="top">
|
||||
{foreach from=$letters item=letter}
|
||||
<fieldset class="tagLetter">
|
||||
<fieldset class="tagLetter">
|
||||
<legend class="tagLetterLegend">{$letter.TITLE}</legend>
|
||||
<table class="tagLetterContent">
|
||||
{foreach from=$letter.tags item=tag}
|
||||
|
|
@ -43,7 +43,7 @@
|
|||
</tr>
|
||||
{/foreach}
|
||||
</table>
|
||||
</fieldset>
|
||||
</fieldset>
|
||||
{if isset($letter.CHANGE_COLUMN) }
|
||||
</td>
|
||||
<td valign="top">
|
||||
|
|
@ -51,8 +51,7 @@
|
|||
{/foreach}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
{/if}
|
||||
</table>
|
||||
{/if}
|
||||
|
||||
</div> <!-- content -->
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue