aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--admin/cat_list.php19
-rw-r--r--admin/cat_modify.php29
-rw-r--r--include/category_subcats.inc.php19
-rw-r--r--include/config_default.inc.php25
-rw-r--r--include/functions.inc.php6
-rw-r--r--include/functions_html.inc.php29
-rw-r--r--include/functions_url.inc.php34
-rw-r--r--include/section_init.inc.php86
-rw-r--r--install/db/22-database.php58
-rw-r--r--install/phpwebgallery_structure.sql6
-rw-r--r--template/yoga/default-layout.css4
-rw-r--r--template/yoga/identification.tpl18
-rw-r--r--template/yoga/index.tpl4
-rw-r--r--template/yoga/register.tpl6
-rw-r--r--template/yoga/search.tpl4
15 files changed, 246 insertions, 101 deletions
diff --git a/admin/cat_list.php b/admin/cat_list.php
index 7917b0a6a..2c659ee3f 100644
--- a/admin/cat_list.php
+++ b/admin/cat_list.php
@@ -173,7 +173,7 @@ if (isset($_GET['parent_id']))
$navigation.= $conf['level_separator'];
$current_category = get_cat_info($_GET['parent_id']);
-
+
$navigation.= get_cat_display_name(
$current_category['name'],
$base_url.'&parent_id=',
@@ -194,7 +194,7 @@ if (isset($_GET['parent_id']))
$template->assign_vars(array(
'CATEGORIES_NAV'=>$navigation,
'F_ACTION'=>$form_action,
-
+
'L_ADD_VIRTUAL'=>$lang['cat_add'],
'L_SUBMIT'=>$lang['submit'],
'L_STORAGE'=>$lang['storage'],
@@ -203,7 +203,7 @@ $template->assign_vars(array(
'L_EDIT'=>$lang['edit'],
'L_DELETE'=>$lang['delete'],
));
-
+
$tpl = array('cat_first','cat_last');
// +-----------------------------------------------------------------------+
// | Categories display |
@@ -256,10 +256,10 @@ foreach ($categories as $category)
// TODO : not used anymore ?
//$images_folder = PHPWG_ROOT_PATH.'template/';
//$images_folder.= $user['template'].'/admin/images';
-
+
$base_url = PHPWG_ROOT_PATH.'admin.php?page=';
$cat_list_url = $base_url.'cat_list';
-
+
$self_url = $cat_list_url;
if (isset($_GET['parent_id']))
{
@@ -276,14 +276,15 @@ foreach ($categories as $category)
'U_JUMPTO' => make_index_url(
array(
'category' => $category['id'],
+ 'cat_name' => $category['name'],
)
),
-
- 'U_CHILDREN' => $cat_list_url.'&parent_id='.$category['id'],
+
+ 'U_CHILDREN' => $cat_list_url.'&parent_id='.$category['id'],
'U_EDIT' => $base_url.'cat_modify&cat_id='.$category['id'],
)
);
-
+
if (empty($category['dir']))
{
$template->assign_block_vars(
@@ -293,7 +294,7 @@ foreach ($categories as $category)
)
);
}
-
+
if ($category['nb_images'] > 0)
{
$template->assign_block_vars(
diff --git a/admin/cat_modify.php b/admin/cat_modify.php
index 4f4617224..9bfa257dd 100644
--- a/admin/cat_modify.php
+++ b/admin/cat_modify.php
@@ -68,7 +68,7 @@ if (isset($_POST['submit']))
),
array($data)
);
-
+
set_cat_visible(array($_GET['cat_id']), $_POST['visible']);
set_cat_status(array($_GET['cat_id']), $_POST['status']);
@@ -101,7 +101,7 @@ else if (isset($_POST['submitAdd']))
$_POST['virtual_name'],
(0 == $_POST['parent'] ? null : $_POST['parent'])
);
-
+
if (isset($output_create['error']))
{
array_push($page['errors'], $output_create['error']);
@@ -112,7 +112,7 @@ else if (isset($_POST['submitAdd']))
//
// Add the information in the information list
array_push($page['infos'], $output_create['info']);
-
+
// Link the new category to the current category
associate_categories_to_categories(
array($_GET['cat_id']),
@@ -184,7 +184,7 @@ $navigation = get_cat_display_name_cache(
);
$form_action = PHPWG_ROOT_PATH.'admin.php?page=cat_modify&cat_id='.$_GET['cat_id'];
-$status = ($category['status']=='public')?'STATUS_PUBLIC':'STATUS_PRIVATE';
+$status = ($category['status']=='public')?'STATUS_PUBLIC':'STATUS_PRIVATE';
$lock = ($category['visible']=='true')?'UNLOCKED':'LOCKED';
if ($category['commentable'] == 'true')
@@ -208,7 +208,7 @@ else
$base_url = PHPWG_ROOT_PATH.'admin.php?page=';
$cat_list_url = $base_url.'cat_list';
-
+
$self_url = $cat_list_url;
if (!empty($category['id_uppercat']))
{
@@ -216,16 +216,16 @@ if (!empty($category['id_uppercat']))
}
$template->assign_vars(
- array(
+ array(
'CATEGORIES_NAV' => $navigation,
'CAT_NAME' => $category['name'],
'CAT_COMMENT' => $category['comment'],
-
+
$status => 'checked="checked"',
$lock => 'checked="checked"',
$commentable => 'checked="checked"',
$uploadable => 'checked="checked"',
-
+
'L_EDIT_NAME' => $lang['name'],
'L_STORAGE' => $lang['storage'],
'L_REMOTE_SITE' => $lang['remote_site'],
@@ -244,12 +244,13 @@ $template->assign_vars(
'U_JUMPTO' => make_index_url(
array(
'category' => $category['id'],
+ 'cat_name' => $category['name'],
)
),
-
+
'U_CHILDREN' => $cat_list_url.'&parent_id='.$category['id'],
'U_HELP' => PHPWG_ROOT_PATH.'/popuphelp.php?page=cat_modify',
-
+
'F_ACTION' => $form_action,
)
);
@@ -295,7 +296,7 @@ SELECT tn_ext,path
$src = get_thumbnail_src($row['path'], @$row['tn_ext']);
$url = PHPWG_ROOT_PATH.'admin.php?page=picture_modify';
$url.= '&image_id='.$category['representative_picture_id'];
-
+
$template->assign_block_vars(
'representant.picture',
array(
@@ -349,7 +350,7 @@ else
// the category can be moved in any category but in itself, in any
// sub-category
$unmovables = get_subcat_ids(array($category['id']));
-
+
$blockname = 'move.parent_option';
$template->assign_block_vars(
@@ -361,13 +362,13 @@ else
'OPTION' => '------------'
)
);
-
+
$query = '
SELECT id,name,uppercats,global_rank
FROM '.CATEGORIES_TABLE.'
WHERE id NOT IN ('.implode(',', $unmovables).')
;';
-
+
display_select_cat_wrapper(
$query,
empty($category['id_uppercat']) ? array() : array($category['id_uppercat']),
diff --git a/include/category_subcats.inc.php b/include/category_subcats.inc.php
index 57fe73cec..8deef5711 100644
--- a/include/category_subcats.inc.php
+++ b/include/category_subcats.inc.php
@@ -28,7 +28,7 @@
/**
* This file is included by the main page to show thumbnails for a category
* that have only subcategories
- *
+ *
*/
$query = '
@@ -90,6 +90,12 @@ SELECT representative_picture_id
}
}
+ $comment = null;
+ if ( isset($row['comment']) )
+ {
+ $comment = strip_tags( $row['comment'] );
+ }
+
if (isset($image_id))
{
array_push(
@@ -99,7 +105,7 @@ SELECT representative_picture_id
'picture' => $image_id,
'name' => $row['name'],
'date_last' => @$row['date_last'],
- 'comment' => @$row['comment'],
+ 'comment' => $comment,
'nb_images' => $row['nb_images'],
)
);
@@ -111,7 +117,7 @@ SELECT representative_picture_id
if (count($cat_thumbnails) > 0)
{
$images = array();
-
+
foreach ($cat_thumbnails as $item)
{
$images[$item['picture']] = '';
@@ -129,7 +135,7 @@ SELECT id, path, tn_ext
}
$template->assign_block_vars('categories', array());
-
+
foreach ($cat_thumbnails as $item)
{
$template->assign_block_vars(
@@ -139,10 +145,11 @@ SELECT id, path, tn_ext
'ALT' => $item['name'],
'TITLE' => $lang['hint_category'],
'ICON' => get_icon(@$item['date_last']),
-
+
'URL' => make_index_url(
array(
'category' => $item['category'],
+ 'cat_name' => $item['name'],
)
),
'NAME' => $item['name'],
@@ -152,4 +159,4 @@ SELECT id, path, tn_ext
);
}
}
-?>
+?> \ No newline at end of file
diff --git a/include/config_default.inc.php b/include/config_default.inc.php
index 72363d85d..655b13d76 100644
--- a/include/config_default.inc.php
+++ b/include/config_default.inc.php
@@ -424,20 +424,29 @@ $conf['history_admin'] = false;
// (depends on the server AcceptPathInfo directive configuration)
$conf['question_mark_in_urls'] = true;
-// picture_url_style : one of 'id' 'id-file' or 'file'. 'id-file' or 'file'
-// mean that the file name (without extension will appear in the url).
-// Note that one aditionnal sql query will occur if 'file' is choosen.
-// Note that you might experience navigation issues if you choose 'file'
-// and your file names are not unique
-$conf['picture_url_style'] = 'id';
-
-
// php_extension_in_urls : if true, the urls generated for picture and
// category will not contain the .php extension. This will work only if
// .htaccess defines Options +MultiViews parameter or url rewriting rules
// are active.
$conf['php_extension_in_urls'] = true;
+// category_url_style : one of 'id' (default) or 'id-name'. 'id-name'
+// means that an simplified ascii represntation of the category name will
+// appear in the url
+$conf['category_url_style'] = 'id';
+
+// picture_url_style : one of 'id' (default), 'id-file' or 'file'. 'id-file'
+// or 'file' mean that the file name (without extension will appear in the
+// url). Note that one aditionnal sql query will occur if 'file' is choosen.
+// Note that you might experience navigation issues if you choose 'file'
+// and your file names are not unique
+$conf['picture_url_style'] = 'id';
+
+// tag_url_style : one of 'id-tag' (default), 'id' or 'tag'.
+// Note that if you choose 'tag' and the url (ascii) representation of your
+// tags is not unique, all tags with the same url representation will be shown
+$conf['tag_url_style'] = 'id-tag';
+
// +-----------------------------------------------------------------------+
// | tags |
// +-----------------------------------------------------------------------+
diff --git a/include/functions.inc.php b/include/functions.inc.php
index d8b86743f..5a1245c4b 100644
--- a/include/functions.inc.php
+++ b/include/functions.inc.php
@@ -290,10 +290,10 @@ function str2url($str)
$str = str_replace('¼', 'OE', $str);
$str = str_replace('½', 'oe', $str);
- $str = preg_replace('/[^a-z0-9_\s\'\:\/\[\]-]/','',strtolower($str));
- $str = preg_replace('/[\s\'\:\/\[\]-]+/',' ',trim($str));
+ $str = preg_replace('/[^a-z0-9_\s\'\:\/\[\],-]/','',strtolower($str));
+ $str = preg_replace('/[\s\'\:\/\[\],-]+/',' ',trim($str));
$res = str_replace(' ','_',$str);
-
+
return $res;
}
diff --git a/include/functions_html.inc.php b/include/functions_html.inc.php
index 13c3dc206..b217f01d9 100644
--- a/include/functions_html.inc.php
+++ b/include/functions_html.inc.php
@@ -278,7 +278,14 @@ function get_cat_display_name($cat_informations,
elseif ($url == '')
{
$output.= '<a class=""';
- $output.= ' href="'.make_index_url( array('category'=>$id) ).'">';
+ $output.= ' href="'
+ .make_index_url(
+ array(
+ 'category'=>$id,
+ 'cat_name'=>$name
+ )
+ )
+ .'">';
$output.= $name.'</a>';
}
else
@@ -353,7 +360,14 @@ SELECT id,name
{
$output.= '
<a class=""
- href="'.make_index_url( array('category'=>$category_id) ).'">'.$name.'</a>';
+ href="'
+ .make_index_url(
+ array(
+ 'category'=>$category_id,
+ 'cat_name'=>$name
+ )
+ )
+ .'">'.$name.'</a>';
}
else
{
@@ -423,7 +437,12 @@ function get_html_menu_category($categories)
}
$menu.= '>';
- $url = make_index_url(array('category' => $category['id']));
+ $url = make_index_url(
+ array(
+ 'category'=>$category['id'],
+ 'cat_name'=>$category['name']
+ )
+ );
$menu.= "\n".'<a href="'.$url.'"';
if ($page_cat != 0
@@ -509,7 +528,7 @@ function get_html_tag_selection(
)
{
global $conf;
-
+
$output = '<ul class="tagSelection">';
foreach ($tags as $tag)
{
@@ -524,7 +543,7 @@ function get_html_tag_selection(
{
$output.= ' checked="checked"';
}
-
+
$output.=
' />'
.' '.$tag['name']
diff --git a/include/functions_url.inc.php b/include/functions_url.inc.php
index a50f789c8..63316d4d5 100644
--- a/include/functions_url.inc.php
+++ b/include/functions_url.inc.php
@@ -256,6 +256,7 @@ function add_well_known_params_in_url($url, $params)
*/
function make_section_in_URL($params)
{
+ global $conf;
$section_string = '';
$section_of = array(
@@ -289,6 +290,19 @@ function make_section_in_URL($params)
else
{
$section_string.= '/category/'.$params['category'];
+ if ($conf['category_url_style']=='id-name' and isset($params['cat_name']) )
+ {
+ if ( is_string($params['cat_name']) )
+ {
+ $section_string.= '-'.str2url($params['cat_name']);
+ }
+ elseif ( is_array( $params['cat_name'] ) and
+ isset( $params['cat_name'][$params['category']] ) )
+ {
+ $section_string.= '-'
+ .str2url($params['cat_name'][$params['category']]);
+ }
+ }
}
break;
@@ -304,11 +318,23 @@ function make_section_in_URL($params)
foreach ($params['tags'] as $tag)
{
- $section_string.= '/'.$tag['id'];
-
- if (isset($tag['url_name']))
+ switch ( $conf['tag_url_style'] )
{
- $section_string.= '-'.$tag['url_name'];
+ case 'id':
+ $section_string.= '/'.$tag['id'];
+ break;
+ case 'tag':
+ if (isset($tag['url_name']) and !is_numeric($tag['url_name']) )
+ {
+ $section_string.= '/'.$tag['url_name'];
+ break;
+ }
+ default:
+ $section_string.= '/'.$tag['id'];
+ if (isset($tag['url_name']))
+ {
+ $section_string.= '-'.$tag['url_name'];
+ }
}
}
diff --git a/include/section_init.inc.php b/include/section_init.inc.php
index e22979e69..c29686e6f 100644
--- a/include/section_init.inc.php
+++ b/include/section_init.inc.php
@@ -70,7 +70,7 @@ else
}
$page['root_path'] = PHPWG_ROOT_PATH;
}
-//phpinfo();
+
// deleting first "/" if displayed
$tokens = explode(
'/',
@@ -147,33 +147,58 @@ else if (0 === strpos($tokens[$next_token], 'tag'))
$next_token++;
$i = $next_token;
+ $requested_tag_ids = array();
+ $requested_tag_url_names = array();
+
while (isset($tokens[$i]))
{
- preg_match('/^(\d+)(?:-(.*))?/', $tokens[$i], $matches);
- if (!isset($matches[1]))
+ if ( preg_match('/^(created-|posted-|start-(\d)+)/', $tokens[$i]) )
+ break;
+
+ if ( preg_match('/^(\d+)(?:-(.*))?/', $tokens[$i], $matches) )
{
- if (0 == count($page['tags']))
- {
- die('Fatal: at least one tag required');
- }
- else
- {
- break;
- }
+ array_push($requested_tag_ids, $matches[1]);
+ }
+ else
+ {
+ array_push($requested_tag_url_names, "'".$tokens[$i]."'");
}
-
- array_push(
- $page['tags'],
- array(
- 'id' => $matches[1],
- 'url_name' => isset($matches[2]) ? $matches[2] : '',
- )
- );
-
$i++;
}
-
$next_token = $i;
+
+ if ( empty($requested_tag_ids) && empty($requested_tag_url_names) )
+ {
+ die('Fatal: at least one tag required');
+ }
+ // tag infos
+ $query = '
+SELECT name, url_name, id
+ FROM '.TAGS_TABLE.'
+ WHERE ';
+ if ( !empty($requested_tag_ids) )
+ {
+ $query.= 'id IN ('.implode(',', $requested_tag_ids ).')';
+ }
+ if ( !empty($requested_tag_url_names) )
+ {
+ if ( !empty($requested_tag_ids) )
+ {
+ $query.= ' OR ';
+ }
+ $query.= 'url_name IN ('.implode(',', $requested_tag_url_names ).')';
+ }
+ $result = pwg_query($query);
+ $tag_infos = array();
+ while ($row = mysql_fetch_array($result))
+ {
+ $tag_infos[ $row['id'] ] = $row;
+ array_push($page['tags'], $row );//we loose given tag order; is it important?
+ }
+ if ( empty($page['tags']) )
+ {
+ die('Fatal: no existing tag');
+ }
}
else if (0 === strpos($tokens[$next_token], 'fav'))
{
@@ -239,7 +264,7 @@ while (isset($tokens[$i]))
$page['start'] = $matches[1];
}
- if (preg_match('/^posted|created/', $tokens[$i] ))
+ if (preg_match('/^(posted|created)/', $tokens[$i] ))
{
$chronology_tokens = explode('-', $tokens[$i] );
@@ -359,7 +384,7 @@ else
// permissions depends on category, so to only keep images that are
// reachable to the connected user, we need to check category
// associations
- if (!empty($user['forbidden_categories']) and !empty($items) )
+ if (!empty($items) )
{
$query = '
SELECT image_id
@@ -373,21 +398,6 @@ SELECT image_id
);
}
- // tag names
- $query = '
-SELECT name, url_name, id
- FROM '.TAGS_TABLE.'
- WHERE id IN ('.implode(',', $page['tag_ids']).')
-;';
- $result = pwg_query($query);
- $tag_infos = array();
-
- while ($row = mysql_fetch_array($result))
- {
- $tag_infos[ $row['id'] ]['name'] = $row['name'];
- $tag_infos[ $row['id'] ]['url_name'] = $row['url_name'];
- }
-
$title = count($page['tags']) > 1 ? l10n('Tags') : l10n('Tag');
$title.= ' ';
diff --git a/install/db/22-database.php b/install/db/22-database.php
new file mode 100644
index 000000000..fcead3cf2
--- /dev/null
+++ b/install/db/22-database.php
@@ -0,0 +1,58 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2005 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | branch : BSF (Best So Far)
+// | file : $RCSfile$
+// | last update : $Date: 2005-09-21 00:04:57 +0200 (mer, 21 sep 2005) $
+// | last modifier : $Author: plg $
+// | revision : $Revision: 870 $
+// +-----------------------------------------------------------------------+
+// | 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 |
+// | |
+// | This program is distributed in the hope that it will be useful, but |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
+// | General Public License for more details. |
+// | |
+// | You should have received a copy of the GNU General Public License |
+// | along with this program; if not, write to the Free Software |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA. |
+// +-----------------------------------------------------------------------+
+
+if (!defined('PHPWG_ROOT_PATH'))
+{
+ die('Hacking attempt!');
+}
+
+$upgrade_description = 'add index on #tags.url_name and #image_tag.tag_id ';
+
+
+
+$query = '
+ALTER TABLE '.PREFIX_TABLE.'tags ADD INDEX `tags_i1`(`url_name`);
+;';
+pwg_query($query);
+
+
+$query = '
+ALTER TABLE '.PREFIX_TABLE.'image_tag ADD INDEX `image_tag_i1`(`tag_id`);
+;';
+pwg_query($query);
+
+
+// +-----------------------------------------------------------------------+
+// | End notification |
+// +-----------------------------------------------------------------------+
+
+echo
+"\n"
+.'Tables '.PREFIX_TABLE.'tags and '.PREFIX_TABLE.'image_tag updated'."\n"
+;
+echo $upgrade_description;
+?>
diff --git a/install/phpwebgallery_structure.sql b/install/phpwebgallery_structure.sql
index 253157e79..dbc7b2335 100644
--- a/install/phpwebgallery_structure.sql
+++ b/install/phpwebgallery_structure.sql
@@ -140,7 +140,8 @@ DROP TABLE IF EXISTS `phpwebgallery_image_tag`;
CREATE TABLE `phpwebgallery_image_tag` (
`image_id` mediumint(8) unsigned NOT NULL default '0',
`tag_id` smallint(5) unsigned NOT NULL default '0',
- PRIMARY KEY (`image_id`,`tag_id`)
+ PRIMARY KEY (`image_id`,`tag_id`),
+ KEY `image_tag_i1` (`tag_id`)
) TYPE=MyISAM;
--
@@ -233,7 +234,8 @@ CREATE TABLE `phpwebgallery_tags` (
`id` smallint(5) unsigned NOT NULL auto_increment,
`name` varchar(255) binary NOT NULL default '',
`url_name` varchar(255) binary NOT NULL default '',
- PRIMARY KEY (`id`)
+ PRIMARY KEY (`id`),
+ KEY `tags_i1` (`url_name`)
) TYPE=MyISAM;
--
diff --git a/template/yoga/default-layout.css b/template/yoga/default-layout.css
index d8f70bfb6..bcbfe81f2 100644
--- a/template/yoga/default-layout.css
+++ b/template/yoga/default-layout.css
@@ -188,11 +188,11 @@ FORM.properties SPAN.property {
padding: 0 0.5em 0 0;
}
-FORM.properties .focus {
+FORM .focus {
background-color: whitesmoke;
}
-FORM.properties .nofocus {
+FORM .nofocus {
background-color: lightgrey; /* must be the same as input background-color */
}
diff --git a/template/yoga/identification.tpl b/template/yoga/identification.tpl
index 8f28ac224..1fd0e7619 100644
--- a/template/yoga/identification.tpl
+++ b/template/yoga/identification.tpl
@@ -20,27 +20,27 @@
</div>
<!-- END errors -->
-<form action="{F_LOGIN_ACTION}" method="post" class="properties">
+<form action="{F_LOGIN_ACTION}" method="post" name="login_form" class="properties">
<fieldset>
<legend>{lang:Connection settings}</legend>
-
+
<input type="hidden" name="redirect" value="{U_REDIRECT}">
-
+
<ul>
- <li>
+ <li>
<span class="property">
<label for="username">{L_USERNAME}</label>
</span>
<input tabindex="1" class="login" type="text" name="username" id="username" size="25" maxlength="40" value="{USERNAME}" onfocus="this.className='focus';" onblur="this.className='nofocus';" />
</li>
-
+
<li>
<span class="property">
<label for="password">{L_PASSWORD}</label>
</span>
<input tabindex="2" class="login" type="password" name="password" id="password" size="25" maxlength="25" onfocus="this.className='focus';" onblur="this.className='nofocus';" />
</li>
-
+
<!-- BEGIN remember_me -->
<li>
<span class="property">
@@ -54,7 +54,11 @@
<p><input tabindex="4" type="submit" name="login" value="{L_LOGIN}"></p>
</form>
-
+
+<script><!--
+document.login_form.username.focus();
+//--></script>
+
<p>
<a href="{U_REGISTER}"><img src="{themeconf:icon_dir}/register.png" class="button" alt=""> {L_REGISTER}</a>
<a href="{U_LOST_PASSWORD}"><img src="{themeconf:icon_dir}/lost_password.png" class="button" alt=""> {lang:Forgot your password?}</a>
diff --git a/template/yoga/index.tpl b/template/yoga/index.tpl
index e56ceaa97..062a99061 100644
--- a/template/yoga/index.tpl
+++ b/template/yoga/index.tpl
@@ -89,12 +89,12 @@
<label>
{lang:Username}
- <input type="text" name="username" size="15" value="">
+ <input type="text" name="username" size="15" value="" onfocus="this.className='focus';" onblur="this.className='nofocus';">
</label>
<label>
{lang:password}
- <input type="password" name="password" size="15">
+ <input type="password" name="password" size="15" onfocus="this.className='focus';" onblur="this.className='nofocus';">
</label>
<!-- BEGIN remember_me -->
diff --git a/template/yoga/register.tpl b/template/yoga/register.tpl
index 90115d101..b00dd9e79 100644
--- a/template/yoga/register.tpl
+++ b/template/yoga/register.tpl
@@ -19,7 +19,7 @@
</div>
<!-- END errors -->
-<form method="post" action="{F_ACTION}" class="properties">
+<form method="post" action="{F_ACTION}" class="properties" name="register_form">
<fieldset>
<legend>{lang:Enter your personnal informations}</legend>
@@ -63,5 +63,9 @@
</form>
+<script><!--
+document.register_form.login.focus();
+//--></script>
+
</div> <!-- content -->
</div> <!-- registerPage -->
diff --git a/template/yoga/search.tpl b/template/yoga/search.tpl
index 433a2d4f0..2ac9ba0b1 100644
--- a/template/yoga/search.tpl
+++ b/template/yoga/search.tpl
@@ -146,4 +146,8 @@
</table>
</form>
+<script><!--
+document.post.search_allwords.focus();
+//--></script>
+
</div> <!-- content -->