Page MenuHomeCode

No OneTemporary

This document is not UTF8. It was detected as ISO-8859-1 (Latin 1) and converted to UTF8 for display.
diff --git a/css/zed/profile.css b/css/zed/profile.css
--- a/css/zed/profile.css
+++ b/css/zed/profile.css
@@ -1,124 +1,124 @@
@charset "utf-8";
/* -------------------------------------------------------------
Zed
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Author: Dereckson
Tags: space retro futurist
Filename: profile.css
Version: 1.0
Created: 2010-01-27
Updated: 2010-02-11
Licence: Creative Commons BY 3.0
------------------------------------------------------------- */
/* -------------------------------------------------------------
Profile header
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
.profile_id {
height: 40px;
line-height: 1.2em;
background-color: black;
color: white;
}
.profile_id H1 {
color: #04acf8;
}
.profile_info {
float: right;
font-size: 0.90em;
padding-right: 1em;
}
.profile_info a {
color: white;
}
.profile_info a:hover {
color: white;
font-weight: bold;
}
.profile_nick {
float: left;
margin-top: 0;
height: 30px;
padding-left: 12px;
padding-top: 10px;
font-size: 1.25em;
font-weight: 500;
border-left: solid #04acf8 6px;
}
/* -------------------------------------------------------------
Profile
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
.profile {
background-color: black;
color: white;
margin-bottom: 20px;
border: 2px solid #04acf8;
}
.profile_text {
margin-left: 10px;
margin-right: 10px;
padding-top: 1em;
font-size: 1em;
text-align: justify;
}
.profile_text img {
border: 0px;
}
.profile_text.fixedwidth {
- font-family: Fixedsys, Fixed;
+ font-family: "Fixedsys Excelsior 3.01", Fixedsys, Fixed;
white-space: pre;
}
/* -------------------------------------------------------------
Profile comments
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
.profile_comments {
background-color: #fafafa;
border: solid 1px #dedede;
}
.profile_comments_info {
font-style: italic;
}
.profile_comments_text {
font-size: 1.25em;
}
/* -------------------------------------------------------------
Profile editor
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
.photos {
}
.photo img {
margin: 8px 0px 12px 20px;
border: 0;
}
.photo {
float: left;
}
/* -------------------------------------------------------------
Profile sidebar
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
#sidebar {
color: white;
}
diff --git a/img/zed/empty_profile.png b/img/zed/empty_profile.png
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..ec59b73b3a2083cb7ab22ea74b417f77b4c5dba7
GIT binary patch
literal 12177
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
diff --git a/includes/objects/profile.php b/includes/objects/profile.php
--- a/includes/objects/profile.php
+++ b/includes/objects/profile.php
@@ -1,71 +1,91 @@
<?php
/*
* Zed
* (c) 2010, Dereckson, some rights reserved
* Released under BSD license
*
* Profile class.
*
* 0.1 2010-01-02 16:49 Autogenerated by Pluton Scaffolding
- Import from Azhàr
+ * Import from Azhàr
+ * 0.2 2010-07-05 03:56 Tags
*
*/
class Profile {
public $perso_id;
public $text;
public $updated;
public $fixedwidth;
function __construct ($perso_id) {
$this->perso_id = $perso_id;
$this->load_from_database();
}
//Loads the object Profile (ie fill the properties) from the $_POST array
function load_from_form ($read_boolean = true) {
if (array_key_exists('perso_id', $_POST)) $this->perso_id = $_POST['perso_id'];
if (array_key_exists('text', $_POST)) $this->text = $_POST['text'];
if (array_key_exists('updated', $_POST)) $this->updated = $_POST['updated'];
if ($read_boolean) {
if (array_key_exists('fixedwidth', $_POST)) $this->fixedwidth = $_POST['fixedwidth'];
}
}
//Loads the object Profile (ie fill the properties) from the database
function load_from_database () {
global $db;
$id = $db->sql_escape($this->perso_id);
$sql = "SELECT * FROM " . TABLE_PROFILES . " WHERE perso_id = '$id'";
if ( !($result = $db->sql_query($sql)) ) message_die(SQL_ERROR, "Unable to query azhar_profiles", '', __LINE__, __FILE__, $sql);
if (!$row = $db->sql_fetchrow($result)) {
$this->lastError = "Profile unkwown: " . $this->perso_id;
return false;
}
$this->text = $row['profile_text'];
$this->updated = $row['profile_updated'];
$this->fixedwidth = $row['profile_fixedwidth'];
return true;
}
//Saves the object to the database
function save_to_database () {
global $db;
$perso_id = $db->sql_escape($this->perso_id);
$text = $db->sql_escape($this->text);
$updated = $db->sql_escape($this->updated);
$fixedwidth = $this->fixedwidth ? 1 : 0;
$sql = "REPLACE INTO " . TABLE_PROFILES . " (`perso_id`, `profile_text`, `profile_updated`, `profile_fixedwidth`) VALUES ('$perso_id', '$text', '$updated', '$fixedwidth')";
if (!$db->sql_query($sql)) {
message_die(SQL_ERROR, "Unable to save", '', __LINE__, __FILE__, $sql);
}
}
+
+ ///
+ /// Tags
+ ///
+
+ function get_tags ($class) {
+ global $db;
+ $id = $db->sql_escape($this->perso_id);
+ $sql = "SELECT tag_code, tag_class FROM" . TABLE_PROFILES_TAGS
+ . " WHERE perso_id = '$id'";
+ if (!$db->sql_query($sql)) {
+ message_die(SQL_ERROR, "Can't get tags", '', __LINE__, __FILE__, $sql);
+ }
+ $tags = array();
+ while (!$row = $db->sql_fetchrow($result)) {
+ $tags[$row['tag_class']][] = $row['tag_code'];
+ }
+ return $tags;
+ }
}
?>
\ No newline at end of file
diff --git a/includes/objects/profilephoto.php b/includes/objects/profilephoto.php
--- a/includes/objects/profilephoto.php
+++ b/includes/objects/profilephoto.php
@@ -1,153 +1,163 @@
<?php
/*
* Zed
* (c) 2010, Dereckson, some rights reserved
* Released under BSD license
*
* photo class.
*
* 0.1 2010-01-03 21:00 Autogenerated by Pluton Scaffolding
* 0.2 2010-02-02 00:52 Thumbnail ImageMagick generation code
*
*/
class ProfilePhoto {
public $id;
public $perso_id;
public $name;
public $description;
public $avatar;
function __construct ($id = '') {
if ($id) {
$this->id = $id;
$this->load_from_database();
}
}
//Loads the object photo (ie fill the properties) from the $_POST array
function load_from_form ($readBoolean = true) {
if (array_key_exists('perso_id', $_POST)) $this->perso_id = $_POST['perso_id'];
if (array_key_exists('name', $_POST)) $this->name = $_POST['name'];
if (array_key_exists('description', $_POST)) $this->description = $_POST['description'];
if ($readBoolean) {
$this->avatar = $_POST['avatar'] ? true : false;
}
}
//Loads the object photo (ie fill the properties) from the database
function load_from_database () {
global $db;
$id = $db->sql_escape($this->id);
$sql = "SELECT * FROM " . TABLE_PROFILES_PHOTOS . " WHERE photo_id = '" . $id . "'";
if ( !($result = $db->sql_query($sql)) ) message_die(SQL_ERROR, "Unable to query azhar_profiles_photos", '', __LINE__, __FILE__, $sql);
if (!$row = $db->sql_fetchrow($result)) {
$this->lastError = "photo unkwown: " . $this->id;
return false;
}
$this->perso_id = $row['perso_id'];
$this->name = $row['photo_name'];
$this->description = $row['photo_description'];
$this->avatar = $row['photo_avatar'];
return true;
}
+ /*
+ * Promots the photo to avatar
+ */
function promote_to_avatar () {
global $db;
+
+ //1 - locally
$sql = "UPDATE " . TABLE_PROFILES_PHOTOS . " SET photo_avatar = 0 WHERE perso_id = " . $this->perso_id;
$db->sql_query_express($sql);
$this->avatar = true;
+
+ //2 - in perso table
+ $perso = Perso::get($this->perso_id);
+ $perso->avatar = $this->name;
+ $perso->saveToDatabase();
}
//Saves the object to the database
function save_to_database () {
global $db;
//Escapes fields
$id = $this->id ? "'" . $db->sql_escape($this->id) . "'" : 'NULL';
$perso_id = $db->sql_escape($this->perso_id);
$name = $db->sql_escape($this->name);
$description = $db->sql_escape($this->description);
$avatar = $this->avatar ? 1 : 0;
//Saves
$sql = "REPLACE INTO " . TABLE_PROFILES_PHOTOS . " (`photo_id`, `perso_id`, `photo_name`, `photo_description`, `photo_avatar`) VALUES ($id, '$perso_id', '$name', '$description', $avatar)";
if (!$db->sql_query($sql)) {
message_die(SQL_ERROR, "Unable to save", '', __LINE__, __FILE__, $sql);
}
if (!$id) {
//Gets new record id value
$this->id = $db->sql_nextid();
}
}
function delete () {
global $db;
//Deletes from disk
$pic_tn = PHOTOS_DIR . '/' . $this->name;
$pic_genuine = PHOTOS_DIR . '/tn/' . $this->name;
unlink($pic_tn);
unlink($pic_genuine);
//Deletes from database
$id = $db->sql_escape($this->id);
$sql = "DELETE FROM " . TABLE_PROFILES_PHOTOS . " WHERE photo_id = '$id' LIMIT 1";
if (!$db->sql_query($sql)) {
message_die(SQL_ERROR, "Can't delete photo", '', __LINE__, __FILE__, $sql);
}
}
/*
* Generates a thumbnail using ImageMagick binary
* @return boolean true if the thumbnail command returns 0 as program exit code ; otherwise, false
*/
function generate_thumbnail () {
global $Config;
$sourceFile = PHOTOS_DIR . DIRECTORY_SEPARATOR . $this->name;
$thumbnailFile = PHOTOS_DIR . DIRECTORY_SEPARATOR . 'tn' . DIRECTORY_SEPARATOR . $this->name;
$command = $Config['ImageMagick']['convert'] . " $sourceFile -resize 1000x80 $thumbnailFile";
@system($command, $code);
return ($code == 0);
}
static function get_photos ($perso_id, $allowUnsafe = true) {
global $db;
$sql = "SELECT photo_id FROM " . TABLE_PROFILES_PHOTOS . " WHERE perso_id = " . $db->sql_escape($perso_id);
if (!$allowUnsafe) $sql .= " AND photo_safe = 0";
if (!$result = $db->sql_query($sql)) {
message_die(SQL_ERROR, "Unable to get photos", '', __LINE__, __FILE__, $sql);
}
while ($row = $db->sql_fetchrow($result)) {
$photos[] = new ProfilePhoto($row[0]);
}
return $photos;
}
/*
* Gets perso avatar
* @param integer $perso_id the perso to get the avatar ID
* @param string $username the username to put in title tag
*/
static function get_avatar ($perso_id, $username = '') {
global $db;
$perso_id = $db->sql_escape($perso_id);
$sql = "SELECT photo_description, photo_name FROM " . TABLE_PROFILES_PHOTOS . " WHERE perso_id = '$perso_id' and photo_avatar = 1";
if (!$result = $db->sql_query($sql)) {
message_die(SQL_ERROR, "Unable to get avatar", '', __LINE__, __FILE__, $sql);
}
if ($row = $db->sql_fetchrow($result)) {
if (!$username) $username = get_name($perso_id);
$description = $row['photo_description'] ? "$row[photo_description] ($username's avatar)" : "$username's avatar";
$url = PHOTOS_URL . '/tn/' . $row['photo_name'];
return "<img src=\"$url\" title=\"$username\" alt=\"$description\" />";
} else {
return null;
}
}
}
?>
\ No newline at end of file
diff --git a/lang/en/profile.conf b/lang/en/profile.conf
--- a/lang/en/profile.conf
+++ b/lang/en/profile.conf
@@ -1,99 +1,103 @@
#Zed language config file - Profiles
#Language: English
#Code: en
#Author: Dereckson
###
### profile.tpl - main profile
###
#<img src=".../mail.png" title="E-mail" alt="@"... />
Mail = E-mail
MailAlt = @
+Online = Online
###
### profile.tpl - communication area
###
DropMessage = Drop a message
SendMessage = Send a message to %s
AddComment = Add a comment to %s's profile
+Send = Send
+Publish = Publish
+
###
### profile.tpl - sidebar - Edit account preferences and profile content
###
EditMyPage = Edit my page
EditProfile = Edit my text
EditAccount = Edit my information
ManagePhotos = Manage photos
AddPhoto = Add a photo
###
### profile_edit.tpl - edit
###
ProfileTextTitle = My best words to express myself
SaveProfile = Save profile
ProfileFont = Profile fontz
Calibri = Calibri (regular font)
FixedSys = FixedSys (fixed width)
###
### user_account.tpl - edit my information
###
Login = Login
LongName = Full character name
UpdateAccountInfo = Update account information
###
### profile_photo.tpl - photo manager - add a photo to my profile
###
AddPhoto = Add a photo to my profile
AddPhotoExplanations = You can upload here a personal photo with you as main subject.<br />Note you can also host any kind of pictures in various Zed places, like in the HyperShip's tower.
ShortDescription = Short description
SafeForWorkLabel = Check this box if the picture is "<strong>safe for work</strong>", you can view it without problem from any public computer.
###
### profile_photo.tpl - photo manager - manage current photos
###
ManageCurrentPhotos = Manage current photos
PictureProperties = Picture properties
EditPictureProperties = Edit this picture description or safe status
Delete = Delete
DeleteThisPicture = Delete this picture
###
### profile_photo_edit.tpl - edit individual photo properties
###
EditPhoto = Edit photo
PhotoInfo = Photo information
Description = Description
SafeForWork = Safe for work
UseAsAvatar = Use as avatar
OtherActions = Other actions
DeletePicture = Delete this picture
BackToPhotoManager = Back to photo manager
###
### profile.php
###
UnknownUser = Unknown being
Who = Who?
WhoIsUser = Who is %s?
MessageSent = Message sent.
MessageSentSelf = Message sent to yourself.
CommentPublished = Comment published.
PhotoUploaded = Photo uploaded.
NotYourPic = Hey, this photo is not one of yours.
PictureDeleted = Picture deleted.
InactivatedUser = This being's account isn't active yet.
\ No newline at end of file
diff --git a/lang/fr/profile.conf b/lang/fr/profile.conf
--- a/lang/fr/profile.conf
+++ b/lang/fr/profile.conf
@@ -1,100 +1,104 @@
#Zed language config file - Profiles
#Language: French
#Code: fr
#Author: Dereckson
###
### profile.tpl - main profile
###
#<img src=".../mail.png" title="E-mail" alt="@"... />
Mail = Courriel
MailAlt = @
+Online = Online
###
### profile.tpl - communication area
###
DropMessage = Laisser un message
-SendMessage = Message privé pour %s
-AddComment = Publier un commentaire sur ce profil <!--%s-->
+SendMessage = "Envoyer un message privé <!-- %s -->"
+AddComment = "Publier un commentaire sur ce profil <!--%s-->"
+
+Send = Envoyer
+Publish = Publier
###
### profile.tpl - sidebar - Edit account preferences and profile content
###
EditMyPage = Éditer ma page
EditProfile = Éditer mon texte
EditAccount = Éditer mes infos
ManagePhotos = Gérer mes photos
AddPhoto = Upload une photo
###
### profile_edit.tpl - edit my text
###
ProfileTextTitle = Texte
SaveProfile = Enregistrer mon texte
ProfileFont = Police
Calibri = Calibri (police à chasse variable)
FixedSys = FixedSys (police à chasse fixe)
###
### user_account.tpl - edit my information
###
Login = Login
LongName = Nom complet
UpdateAccountInfo = Mettre à jour mon compte
###
### profile_photo.tpl - photo manager - add a photo to my profile
###
AddPhotoToProfile = Ajouter une photo à mon profil
AddPhotoExplanations = Vous pouvez upload ici toute photo dont vous êtes le sujet principal. Celles-ci seront affichées sur votre profil.<br />Pour partager toute autre photo, placez là quelque part dans la galaxie, comme par exemple dans la tour de Zed.
ShortDescription = Courte description
SafeForWorkLabel = Cochez la case "<strong>safe for work</strong>", si la photo peut être regardée sans problème par tout en chacun depuis tout lieu public.
###
### profile_photo.tpl - photo manager - manage current photos
###
ManageCurrentPhotos = Gérer les photos
PictureProperties = Propriétés de la photo
EditPictureProperties = Modifier les propriétés
Delete = Effacer
DeleteThisPicture = Effacer cette image
###
### profile_photo_edit.tpl - edit individual photo properties
###
EditPhoto = Photo — Propriétés
PhotoInfo = Info sur cette photo
Description = Description
SafeForWork = Safe for work
UseAsAvatar = Avatar
OtherActions = Autres actions
DeletePicture = Effacer cette photo
BackToPhotoManager = < Retourner au gestionnaire de photos
###
### profile.php
###
UnknownUser = Inconnu au bataillon.
Who = Qui ?
WhoIsUser = Qui est %s?
MessageSent = Message envoyé.
MessageSentSelf = Message personnel envoyé.
CommentPublished = Commentaire publié.
PhotoUploaded = Photo enregistrée.
NotYourPic = Same player, try again.
PictureDeleted = Photo effacée.
PromotedToAvatar = Hop, un nouvel avatar.
InactivatedUser = "Attention, ce compte n'est pas encore actif."
diff --git a/skins/zed/profile.tpl b/skins/zed/profile.tpl
--- a/skins/zed/profile.tpl
+++ b/skins/zed/profile.tpl
@@ -1,77 +1,76 @@
<!-- Profile -->
<div class="clear">&nbsp;</div>
<div class="grid_11 alpha">
<!-- Profile header -->
<div class="profile_id clearfix">
<h1 class="profile_nick">{$perso->name}</h1>
<div class="profile_info">
{$perso->location}&nbsp;<br />
- {if $perso->is_online()}Online{/if}
+ {if $perso->is_online()}{#Online#}{/if}
</div>
</div>
<div class="clear">&nbsp;</div>
<div class="profile">
{if $PICS}
<!-- Photos -->
<div class="profile_photos">
{foreach from=$PICS item=photo}
<a rel="lightbox" href="{$URL_PICS}/{$photo->name}" title="{$photo->description}"><img src="{$URL_PICS}/tn/{$photo->name}" alt="{$photo->description}" /></a>
{/foreach}
</div>
{/if}
<!-- Text -->
- <div class="profile_text{if $PROFILE_FIXEDWIDTH} fixedwidth{/if}">{if $PROFILE_TEXT != ""}{if $PROFILE_FIXEDWIDTH}{$PROFILE_TEXT}{else}{$PROFILE_TEXT|nl2br}{/if}{else}{if $PROFILE_SELF}<a href="{get_url('who')}/edit/profile">{/if}<img src="/skins/VacuumCleanerBridge/images/empty_profile.png" width="642" height="392" alt="Be creative ! Fill this space with your best words." />{if $PROFILE_SELF}</a>{/if}{/if}</div>
+ <div class="profile_text{if $PROFILE_FIXEDWIDTH} fixedwidth{/if}">{if $PROFILE_TEXT != ""}{if $PROFILE_FIXEDWIDTH}{$PROFILE_TEXT}{else}{$PROFILE_TEXT|nl2br}{/if}{else}{if $PROFILE_SELF}<a href="{get_url('who')}/edit/profile">{/if}<img src="{#StaticContentURL#}/img/zed/empty_profile.png" width="642" height="392" alt="Be creative ! Fill this space with your best words." />{if $PROFILE_SELF}</a>{/if}{/if}</div>
<div class="profile_separator_light"></div>
<div class="profile_message">
<h2 id="Message">{#DropMessage#}</h2>
<form method="post" action="{get_url('who')}/{$perso->nickname}">
<div class="grid_4 alpha">
<input type="radio" name="message_type" value="private_message" checked onclick="document.getElementById('MessageSubmit').value = '{#Send#}';">{sprintf(#SendMessage#, $NAME)}
</div>
<div class="grid_6 omega">
<input type="radio" name="message_type" value="profile_comment" onclick="document.getElementById('MessageSubmit').value = '{#Publish#}';">{sprintf(#AddComment#, $NAME)}
</div>
<p><textarea rows="7" cols="64" name="message"></textarea></p>
<p><input id="MessageSubmit" type="submit" name="MessageSubmit" value="{#Send#}" /></p>
-
</form>
</div>
</div>
</div>
<!-- User content -->
<div class="grid_5 omega">
<div class="sidebar_border"></div>
<div id="sidebar">
<div class="border_top"></div>
<div class="sidebar_content">
{if $PROFILE_SELF}
<!-- {{counter name=section}|romanize}. edit profile, account, photos -->
<h2>{#EditMyPage#}</h2>
<ul>
<li><a href="{get_url('who','edit','profile')}">{#EditProfile#}</a></li>
<li><a href="{get_url('settings','perso')}">{#EditAccount#}</a></li>
<li><a href="{get_url('who','edit','photos')}">{if $PICS}{#ManagePhotos#}{else}{#AddPhoto#}{/if}</a></li>
</ul>
{/if}
<!-- {{counter name=section}|romanize}. sidebar placeholder/explanation -->
<h2>Sidebar</h2>
<p>Here will be published new art submission, request/offers post it, external content imported, etc.</p>
</div>
<div class="border_bottom"></div>
</div>
</div>
-{if $PROFILE_COMMENTS}
+{if $PROFILE_COMMENTS}
<!-- Profile comments -->
<div class="grid_16 alpha omega profile_comments" id="comments" style="margin-bottom: 1em;">
{foreach from=$PROFILE_COMMENTS item=comment}
<div class="comment black">
<div class="profile_comments_text"><p>{$comment->text|nl2br}</p></div>
- <div class="profile_comments_info">-- <a href="{get_url('who')}/{$comment->author}">{$comment->authorname}</a>, {$comment->date|date_format:"%Y-%m-%d %H:%M:%S"}.</div>
+ <div class="profile_comments_info">-- <a href="{get_url('who')}/{$comment->author}">{$comment->authorname}</a>, {get_hypership_time($comment->date)}</div>
</div>
{/foreach}
</div>
{/if}
diff --git a/skins/zed/profile_edit.tpl b/skins/zed/profile_edit.tpl
--- a/skins/zed/profile_edit.tpl
+++ b/skins/zed/profile_edit.tpl
@@ -1,58 +1,59 @@
 <!-- Calls dojo -->
<script src="/js/dojo/dojo/dojo.js" type="text/javascript"
djConfig="isDebug: false, parseOnLoad: true"></script>
<script type="text/javascript">
dojo.require("dijit.form.Form");
dojo.require("dijit.form.CheckBox");
dojo.require("dijit.form.Button");
function SetWidgetFont(id, font) {
//TODO: document.getElementById(id).style.font = font;
}
</script>
<!-- Edit profile -->
<div class="grid_11 alpha profile">
<div class="profile_id clearfix">
<h1 class="profile_nick" id="UserLongname">{$USERNAME}</h1>
</div>
<div class="profile_separator"></div>
<div class="profile_text">
<form action="" method="post">
- <h2>{#ProfileTextTitle#}</h2>
+ <input type="hidden" name="EditProfile" value="1" />
+ <h2>{#ProfileTextTitle#}</h2>
<textarea style="font-family: Calibri" id="ProfileText" rows="16" cols="72" name="text" class="text">{$PROFILE_TEXT}</textarea><br />
<div class="row" style="background-color: white; color: black;">
<span>{#ProfileFont#}{#_t#}</span>
<input type="radio" name="fixedwidth" id="fixedwidthNo" value="0" dojoType="dijit.form.RadioButton" {if !$PROFILE_FIXEDWIDTH}checked{/if} onclick="SetWidgetFont('ProfileText', 'Calibri')" />
- <label for="fixedwidthNo"><span style="font-family: Calibri, Arial; font-weight: 100; font-size: 1.25em;">{#Calibri#}</span></label>
+ <label for="fixedwidthNo"><span style="font-family: Calibri, Arial; font-weight: 100; font-size: 1.25em; color: black;">{#Calibri#}</span></label>
<input type="radio" name="fixedwidth" id="fixedwidthYes" value="1" dojoType="dijit.form.RadioButton" {if $PROFILE_FIXEDWIDTH}checked={/if} onclick="SetWidgetFont('ProfileText', 'FixedSys')" />
- <label for="fixedwidthYes"><span style="font-family: Fixedsys, Fixed; font-weight: 100;">{#FixedSys#}</span></label>
+ <label for="fixedwidthYes"><span style='font-family: "Fixedsys Excelsior 3.01", Fixedsys, Fixed; font-weight: 100; color: black;'>{#FixedSys#}</span></label>
</div>
<div class="row">
<button dojoType="dijit.form.Button" iconClass="dijitEditorIcon dijitEditorIconSave" type=submit onclick="document.forms[0].submit()">
{#SaveProfile#}
</button>
<noscript>
<input type="submit" value="{#SaveProfile#} {#JavaScriptSafeMessage#}" />
</noscript>
</div>
</form>
</div>
</div>
<!-- Faerie content -->
<div class="grid_5 omega">
<div class="sidebar_border"></div>
<div id="sidebar">
<div class="border_top"></div>
<div class="sidebar_content">
<h2>{#EditMyPage#}</h2>
<ul>
<li>{#EditProfile#}</li>
<li><a href="{get_url('settings','perso')}">{#EditAccount#}</a></li>
<li><a href="{get_url('who')}/edit/photos">{if $PICS}{#ManagePhotos#}{else}{#AddPhoto#}{/if}</a></li>
</ul>
</div>
<div class="border_bottom"></div>
</div>
</div>
\ No newline at end of file

File Metadata

Mime Type
text/x-diff
Expires
Fri, Nov 8, 15:24 (3 w, 1 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
20883
Default Alt Text
(40 KB)

Event Timeline