Nokia S40 Thème Emballage classe PHP
- joebert
- Sledgehammer


- Inscription: Fév 10, 2004
- Messages: 13455
- Loc: Florida
- Status: Offline
Quelqu'un sait si cela DOCTYPE ou documents similaires sont disponibles quelque part?
Il semble que les magasins eux sur le Nokia, hmmm, téléphone, mais je n'arrive pas à trouver une ligne facilement visualisable n'importe où.
Code: [ Select ]
<!DOCTYPE theme PUBLIC "-//NOKIA//DTD THEME 1.1//EN" "theme.dtd">
Il semble que les magasins eux sur le Nokia, hmmm, téléphone, mais je n'arrive pas à trouver une ligne facilement visualisable n'importe où.
Strong with this one, the sudo is.
- Anonymous
- Bot


- Inscription: 25 Feb 2008
- Messages: ?
- Loc: Ozzuland
- Status: Online
Octobre 27th, 2006, 3:34 pm
- joebert
- Sledgehammer


- Inscription: Fév 10, 2004
- Messages: 13455
- Loc: Florida
- Status: Offline
J'ai couru le theme_descriptor.xml fichier de configuration produit par un des Nokias Thème Studios via Hit Logiciels document XML DTD Pour Utility Après avoir modifié la moindre petite chose que j'ai pu dans le Studio Theme & obtenu cela,
Im déterminant quels éléments sont nécessaires / optionnel, Tweeking deffinitions l'attribut, et commentant tout ce que son utilisation est déterminée.
Ill envoyer ce que je me retrouve avec ici la fin de la nuit, en essayant simplement de garder une trace de ce qui Im faisant pour le moment.
Code: [ Select ]
<!ELEMENT background EMPTY >
<!ATTLIST background src NMTOKEN #REQUIRED >
<!ELEMENT background-mini EMPTY >
<!ATTLIST background-mini src NMTOKEN #REQUIRED >
<!ELEMENT colorscheme EMPTY >
<!ATTLIST colorscheme color NMTOKEN #REQUIRED >
<!ELEMENT colorscheme-mini EMPTY >
<!ATTLIST colorscheme-mini color NMTOKEN #REQUIRED >
<!ELEMENT icon EMPTY >
<!ATTLIST icon item_id ID #REQUIRED >
<!ATTLIST icon size NMTOKEN #FIXED "large" >
<!ATTLIST icon src ( Deep.jpg | Mystery.jpg | Sea.jpg | Sunset.jpg ) #REQUIRED >
<!ELEMENT ringtone EMPTY >
<!ATTLIST ringtone src CDATA #REQUIRED >
<!ELEMENT screensaver EMPTY >
<!ATTLIST screensaver src NMTOKEN #REQUIRED >
<!ELEMENT theme ( wallpaper, screensaver, ringtone, colorscheme, icon+, wallpaper-mini, colorscheme-mini, background, background-mini ) >
<!ATTLIST theme name CDATA #REQUIRED >
<!ATTLIST theme version NMTOKEN #REQUIRED >
<!ELEMENT wallpaper EMPTY >
<!ATTLIST wallpaper src NMTOKEN #REQUIRED >
<!ELEMENT wallpaper-mini EMPTY >
<!ATTLIST wallpaper-mini src NMTOKEN #REQUIRED >
<!ATTLIST background src NMTOKEN #REQUIRED >
<!ELEMENT background-mini EMPTY >
<!ATTLIST background-mini src NMTOKEN #REQUIRED >
<!ELEMENT colorscheme EMPTY >
<!ATTLIST colorscheme color NMTOKEN #REQUIRED >
<!ELEMENT colorscheme-mini EMPTY >
<!ATTLIST colorscheme-mini color NMTOKEN #REQUIRED >
<!ELEMENT icon EMPTY >
<!ATTLIST icon item_id ID #REQUIRED >
<!ATTLIST icon size NMTOKEN #FIXED "large" >
<!ATTLIST icon src ( Deep.jpg | Mystery.jpg | Sea.jpg | Sunset.jpg ) #REQUIRED >
<!ELEMENT ringtone EMPTY >
<!ATTLIST ringtone src CDATA #REQUIRED >
<!ELEMENT screensaver EMPTY >
<!ATTLIST screensaver src NMTOKEN #REQUIRED >
<!ELEMENT theme ( wallpaper, screensaver, ringtone, colorscheme, icon+, wallpaper-mini, colorscheme-mini, background, background-mini ) >
<!ATTLIST theme name CDATA #REQUIRED >
<!ATTLIST theme version NMTOKEN #REQUIRED >
<!ELEMENT wallpaper EMPTY >
<!ATTLIST wallpaper src NMTOKEN #REQUIRED >
<!ELEMENT wallpaper-mini EMPTY >
<!ATTLIST wallpaper-mini src NMTOKEN #REQUIRED >
- <!ELEMENT background EMPTY >
- <!ATTLIST background src NMTOKEN #REQUIRED >
- <!ELEMENT background-mini EMPTY >
- <!ATTLIST background-mini src NMTOKEN #REQUIRED >
- <!ELEMENT colorscheme EMPTY >
- <!ATTLIST colorscheme color NMTOKEN #REQUIRED >
- <!ELEMENT colorscheme-mini EMPTY >
- <!ATTLIST colorscheme-mini color NMTOKEN #REQUIRED >
- <!ELEMENT icon EMPTY >
- <!ATTLIST icon item_id ID #REQUIRED >
- <!ATTLIST icon size NMTOKEN #FIXED "large" >
- <!ATTLIST icon src ( Deep.jpg | Mystery.jpg | Sea.jpg | Sunset.jpg ) #REQUIRED >
- <!ELEMENT ringtone EMPTY >
- <!ATTLIST ringtone src CDATA #REQUIRED >
- <!ELEMENT screensaver EMPTY >
- <!ATTLIST screensaver src NMTOKEN #REQUIRED >
- <!ELEMENT theme ( wallpaper, screensaver, ringtone, colorscheme, icon+, wallpaper-mini, colorscheme-mini, background, background-mini ) >
- <!ATTLIST theme name CDATA #REQUIRED >
- <!ATTLIST theme version NMTOKEN #REQUIRED >
- <!ELEMENT wallpaper EMPTY >
- <!ATTLIST wallpaper src NMTOKEN #REQUIRED >
- <!ELEMENT wallpaper-mini EMPTY >
- <!ATTLIST wallpaper-mini src NMTOKEN #REQUIRED >
Im déterminant quels éléments sont nécessaires / optionnel, Tweeking deffinitions l'attribut, et commentant tout ce que son utilisation est déterminée.
Ill envoyer ce que je me retrouve avec ici la fin de la nuit, en essayant simplement de garder une trace de ce qui Im faisant pour le moment.
Strong with this one, the sudo is.
- joebert
- Sledgehammer


- Inscription: Fév 10, 2004
- Messages: 13455
- Loc: Florida
- Status: Offline
Na avis il y avait une barre de défilement dans le menu Icônes de l'Atelier thématique.
Deffinition eu une mauvaise pour les éléments icône.
Deffinition eu une mauvaise pour les éléments icône.
Code: [ Select ]
<!ELEMENT icon EMPTY >
<!ATTLIST icon item_id NMTOKEN #REQUIRED >
<!ATTLIST icon size NMTOKEN #REQUIRED >
<!ATTLIST icon src NMTOKEN #REQUIRED >
<!ATTLIST icon item_id NMTOKEN #REQUIRED >
<!ATTLIST icon size NMTOKEN #REQUIRED >
<!ATTLIST icon src NMTOKEN #REQUIRED >
- <!ELEMENT icon EMPTY >
- <!ATTLIST icon item_id NMTOKEN #REQUIRED >
- <!ATTLIST icon size NMTOKEN #REQUIRED >
- <!ATTLIST icon src NMTOKEN #REQUIRED >
Strong with this one, the sudo is.
- joebert
- Sledgehammer


- Inscription: Fév 10, 2004
- Messages: 13455
- Loc: Florida
- Status: Offline
- joebert
- Sledgehammer


- Inscription: Fév 10, 2004
- Messages: 13455
- Loc: Florida
- Status: Offline
Cela devrait le faire pour la version 1.1
/ / Edit - Changement de tous types de données pour "src" attribue à "URI"
/ / Edit - Changement de tous types de données pour "src" attribue à "URI"
Code: [ Select ]
<!--
<!DOCTYPE theme PUBLIC "-//NOKIA//DTD THEME 1.1//EN" "theme.dtd">
This is a re-creation of theme DTD based on "theme_descriptor.xml"
that is produced by "Nokia S40 Theme Studio 1.2"
-- REQUIRED ELEMENTS
theme (main container, all other elements go inside this one)
colorscheme
ringtone
screensaver
wallpaper
-- OPTIONAL ELEMENTS
background
background-mini
colorscheme-mini
icon
wallpaper-mini
May not be entirely accurate in terms of data-types, sticking to it is working for me though.
-->
<!-- a Uniform Resource Identifier, see [RFC2396] -->
<!ENTITY % URI "CDATA">
<!-- Color Values -->
<!ENTITY % Color "blue|black|red|orange|gray|green|brown|pink">
<!-- Icon Sizes -->
<!ENTITY % IconSize "large|small">
<!-- Icon item_id references -->
<!ENTITY % MenuItem "callregister|settings|organizer|gallery|services|media|applications|
contacts|simatk|push_to_talk|wireless_village|number_entry|messages|
goto|amsmessages|default">
<!--
Image used for
menu backgrounds in the
main screen.
-->
<!ELEMENT background EMPTY>
<!--
src filename of image (jpg, jpeg, gif, png, bmp, wbmp, m3g)
-->
<!ATTLIST background
src URI #REQUIRED
>
<!--
Image used for
menu backgrounds in the
mini screen.
-->
<!ELEMENT background-mini EMPTY>
<!--
src filename of image (jpg, jpeg, gif, png, bmp, wbmp, m3g)
-->
<!ATTLIST background-mini
src URI #REQUIRED
>
<!--
Color used for symbols
and indicators on the main screen
-->
<!ELEMENT colorscheme EMPTY>
<!--
color name of color to use
-->
<!ATTLIST colorscheme
color %Color; #REQUIRED
>
<!--
Color used for symbols
and indicators on the mini screen
-->
<!ELEMENT colorscheme-mini EMPTY>
<!--
color name of color to use
-->
<!ATTLIST colorscheme-mini
color %Color; #REQUIRED
>
<!--
Menu item icon
-->
<!ELEMENT icon EMPTY>
<!--
item_id menu item to associate icon with
size large for list view, small for grid view (yes, two icon elements are required to cover both)
src filename of image to use (jpg, jpeg, gif, png, bmp, wbmp, m3g)
-->
<!ATTLIST icon
item_id %MenuItem; #REQUIRED
size %IconSize; #REQUIRED
src URI #REQUIRED
>
<!--
Ringtone to use
-->
<!ELEMENT ringtone EMPTY>
<!--
src filename of audio to use (mid, midi, amr, awb, mp3, mp4, aac)
-->
<!ATTLIST ringtone
src URI #REQUIRED
>
<!--
Screensaver for the main screen
-->
<!ELEMENT screensaver EMPTY>
<!--
src filename of image to use (jpg, jpeg, gif, png, bmp, wbmp, m3g)
-->
<!ATTLIST screensaver
src URI #REQUIRED
>
<!--
Main container
-->
<!ELEMENT theme (background?, background-mini?, colorscheme, colorscheme-mini?, icon*, ringtone, screensaver, wallpaper, wallpaper-mini?)>
<!--
name name that will show in the menu for the theme
version theme version number
-->
<!ATTLIST theme
name CDATA #REQUIRED
version NMTOKEN #REQUIRED
>
<!--
Wallpaper image to use on the main screen
-->
<!ELEMENT wallpaper EMPTY>
<!--
src filename of image to use (jpg, jpeg, gif, png, bmp, wbmp, m3g)
-->
<!ATTLIST wallpaper
src URI #REQUIRED
>
<!--
Wallpaper image to use on the mini screen
-->
<!ELEMENT wallpaper-mini EMPTY>
<!--
src filename of image to use (jpg, jpeg, gif, png, bmp, wbmp, m3g)
-->
<!ATTLIST wallpaper-mini
src URI #REQUIRED
>
<!DOCTYPE theme PUBLIC "-//NOKIA//DTD THEME 1.1//EN" "theme.dtd">
This is a re-creation of theme DTD based on "theme_descriptor.xml"
that is produced by "Nokia S40 Theme Studio 1.2"
-- REQUIRED ELEMENTS
theme (main container, all other elements go inside this one)
colorscheme
ringtone
screensaver
wallpaper
-- OPTIONAL ELEMENTS
background
background-mini
colorscheme-mini
icon
wallpaper-mini
May not be entirely accurate in terms of data-types, sticking to it is working for me though.
-->
<!-- a Uniform Resource Identifier, see [RFC2396] -->
<!ENTITY % URI "CDATA">
<!-- Color Values -->
<!ENTITY % Color "blue|black|red|orange|gray|green|brown|pink">
<!-- Icon Sizes -->
<!ENTITY % IconSize "large|small">
<!-- Icon item_id references -->
<!ENTITY % MenuItem "callregister|settings|organizer|gallery|services|media|applications|
contacts|simatk|push_to_talk|wireless_village|number_entry|messages|
goto|amsmessages|default">
<!--
Image used for
menu backgrounds in the
main screen.
-->
<!ELEMENT background EMPTY>
<!--
src filename of image (jpg, jpeg, gif, png, bmp, wbmp, m3g)
-->
<!ATTLIST background
src URI #REQUIRED
>
<!--
Image used for
menu backgrounds in the
mini screen.
-->
<!ELEMENT background-mini EMPTY>
<!--
src filename of image (jpg, jpeg, gif, png, bmp, wbmp, m3g)
-->
<!ATTLIST background-mini
src URI #REQUIRED
>
<!--
Color used for symbols
and indicators on the main screen
-->
<!ELEMENT colorscheme EMPTY>
<!--
color name of color to use
-->
<!ATTLIST colorscheme
color %Color; #REQUIRED
>
<!--
Color used for symbols
and indicators on the mini screen
-->
<!ELEMENT colorscheme-mini EMPTY>
<!--
color name of color to use
-->
<!ATTLIST colorscheme-mini
color %Color; #REQUIRED
>
<!--
Menu item icon
-->
<!ELEMENT icon EMPTY>
<!--
item_id menu item to associate icon with
size large for list view, small for grid view (yes, two icon elements are required to cover both)
src filename of image to use (jpg, jpeg, gif, png, bmp, wbmp, m3g)
-->
<!ATTLIST icon
item_id %MenuItem; #REQUIRED
size %IconSize; #REQUIRED
src URI #REQUIRED
>
<!--
Ringtone to use
-->
<!ELEMENT ringtone EMPTY>
<!--
src filename of audio to use (mid, midi, amr, awb, mp3, mp4, aac)
-->
<!ATTLIST ringtone
src URI #REQUIRED
>
<!--
Screensaver for the main screen
-->
<!ELEMENT screensaver EMPTY>
<!--
src filename of image to use (jpg, jpeg, gif, png, bmp, wbmp, m3g)
-->
<!ATTLIST screensaver
src URI #REQUIRED
>
<!--
Main container
-->
<!ELEMENT theme (background?, background-mini?, colorscheme, colorscheme-mini?, icon*, ringtone, screensaver, wallpaper, wallpaper-mini?)>
<!--
name name that will show in the menu for the theme
version theme version number
-->
<!ATTLIST theme
name CDATA #REQUIRED
version NMTOKEN #REQUIRED
>
<!--
Wallpaper image to use on the main screen
-->
<!ELEMENT wallpaper EMPTY>
<!--
src filename of image to use (jpg, jpeg, gif, png, bmp, wbmp, m3g)
-->
<!ATTLIST wallpaper
src URI #REQUIRED
>
<!--
Wallpaper image to use on the mini screen
-->
<!ELEMENT wallpaper-mini EMPTY>
<!--
src filename of image to use (jpg, jpeg, gif, png, bmp, wbmp, m3g)
-->
<!ATTLIST wallpaper-mini
src URI #REQUIRED
>
- <!--
- <!DOCTYPE theme PUBLIC "-//NOKIA//DTD THEME 1.1//EN" "theme.dtd">
- This is a re-creation of theme DTD based on "theme_descriptor.xml"
- that is produced by "Nokia S40 Theme Studio 1.2"
- -- REQUIRED ELEMENTS
- theme (main container, all other elements go inside this one)
- colorscheme
- ringtone
- screensaver
- wallpaper
- -- OPTIONAL ELEMENTS
- background
- background-mini
- colorscheme-mini
- icon
- wallpaper-mini
- May not be entirely accurate in terms of data-types, sticking to it is working for me though.
- -->
- <!-- a Uniform Resource Identifier, see [RFC2396] -->
- <!ENTITY % URI "CDATA">
- <!-- Color Values -->
- <!ENTITY % Color "blue|black|red|orange|gray|green|brown|pink">
- <!-- Icon Sizes -->
- <!ENTITY % IconSize "large|small">
- <!-- Icon item_id references -->
- <!ENTITY % MenuItem "callregister|settings|organizer|gallery|services|media|applications|
- contacts|simatk|push_to_talk|wireless_village|number_entry|messages|
- goto|amsmessages|default">
- <!--
- Image used for
- menu backgrounds in the
- main screen.
- -->
- <!ELEMENT background EMPTY>
- <!--
- src filename of image (jpg, jpeg, gif, png, bmp, wbmp, m3g)
- -->
- <!ATTLIST background
- src URI #REQUIRED
- >
- <!--
- Image used for
- menu backgrounds in the
- mini screen.
- -->
- <!ELEMENT background-mini EMPTY>
- <!--
- src filename of image (jpg, jpeg, gif, png, bmp, wbmp, m3g)
- -->
- <!ATTLIST background-mini
- src URI #REQUIRED
- >
- <!--
- Color used for symbols
- and indicators on the main screen
- -->
- <!ELEMENT colorscheme EMPTY>
- <!--
- color name of color to use
- -->
- <!ATTLIST colorscheme
- color %Color; #REQUIRED
- >
- <!--
- Color used for symbols
- and indicators on the mini screen
- -->
- <!ELEMENT colorscheme-mini EMPTY>
- <!--
- color name of color to use
- -->
- <!ATTLIST colorscheme-mini
- color %Color; #REQUIRED
- >
- <!--
- Menu item icon
- -->
- <!ELEMENT icon EMPTY>
- <!--
- item_id menu item to associate icon with
- size large for list view, small for grid view (yes, two icon elements are required to cover both)
- src filename of image to use (jpg, jpeg, gif, png, bmp, wbmp, m3g)
- -->
- <!ATTLIST icon
- item_id %MenuItem; #REQUIRED
- size %IconSize; #REQUIRED
- src URI #REQUIRED
- >
- <!--
- Ringtone to use
- -->
- <!ELEMENT ringtone EMPTY>
- <!--
- src filename of audio to use (mid, midi, amr, awb, mp3, mp4, aac)
- -->
- <!ATTLIST ringtone
- src URI #REQUIRED
- >
- <!--
- Screensaver for the main screen
- -->
- <!ELEMENT screensaver EMPTY>
- <!--
- src filename of image to use (jpg, jpeg, gif, png, bmp, wbmp, m3g)
- -->
- <!ATTLIST screensaver
- src URI #REQUIRED
- >
- <!--
- Main container
- -->
- <!ELEMENT theme (background?, background-mini?, colorscheme, colorscheme-mini?, icon*, ringtone, screensaver, wallpaper, wallpaper-mini?)>
- <!--
- name name that will show in the menu for the theme
- version theme version number
- -->
- <!ATTLIST theme
- name CDATA #REQUIRED
- version NMTOKEN #REQUIRED
- >
- <!--
- Wallpaper image to use on the main screen
- -->
- <!ELEMENT wallpaper EMPTY>
- <!--
- src filename of image to use (jpg, jpeg, gif, png, bmp, wbmp, m3g)
- -->
- <!ATTLIST wallpaper
- src URI #REQUIRED
- >
- <!--
- Wallpaper image to use on the mini screen
- -->
- <!ELEMENT wallpaper-mini EMPTY>
- <!--
- src filename of image to use (jpg, jpeg, gif, png, bmp, wbmp, m3g)
- -->
- <!ATTLIST wallpaper-mini
- src URI #REQUIRED
- >
Strong with this one, the sudo is.
- joebert
- Sledgehammer


- Inscription: Fév 10, 2004
- Messages: 13455
- Loc: Florida
- Status: Offline
Version 2.0
Vous avez les éléments nécessaires fait.
Quelques-uns des attributs obligatoires fait.
Une liste d'entité pour les éléments de menu disponibles.
Theres a lot en 2.0, je pourrais y revenir si je reçois toujours un téléphone qui elle soutient ou de s'ennuyer.
Vous avez les éléments nécessaires fait.
Quelques-uns des attributs obligatoires fait.
Une liste d'entité pour les éléments de menu disponibles.
Theres a lot en 2.0, je pourrais y revenir si je reçois toujours un téléphone qui elle soutient ou de s'ennuyer.
Code: [ Select ]
<!--
<!DOCTYPE theme PUBLIC "-//NOKIA//DTD THEME 2.0//EN" "theme.dtd">
This is a re-creation of theme DTD based on "theme_descriptor.xml"
that is produced by "Nokia S40 Theme Studio 2.1"
--REQUIRED
wallpaper
screensaver
-- OPTIONAL
everything else
-->
<!ENTITY % MenuItem "applications|ams_messages|brew|callregister|camera|
cdmacust|contacts|extras|gallery|goto|media|messages|
number_entry|organizer|push_to_talk|services|settings|
simatk|sport|voiceportal|wireless_village">
<!ENTITY % Colors.Display "main|second">
<!ELEMENT background EMPTY >
<!ATTLIST background
grid_menu_bg NMTOKEN #IMPLIED
main_default_bg NMTOKEN #IMPLIED
note_bg NMTOKEN #IMPLIED
second_default_bg NMTOKEN #IMPLIED
>
<!ELEMENT colors EMPTY >
<!ATTLIST colors
active_idle_active_font_color NMTOKEN #IMPLIED
active_idle_content_background_color NMTOKEN #IMPLIED
calendar_highlight_color NMTOKEN #IMPLIED
display %Colors.Display; #REQUIRED
grid_highlight_color NMTOKEN #IMPLIED
grid_menu_font_color NMTOKEN #IMPLIED
grid_menu_highlight_font_color NMTOKEN #IMPLIED
header_font_color NMTOKEN #IMPLIED
idle_font_color NMTOKEN #IMPLIED
menu_font_color NMTOKEN #IMPLIED
menu_highlight_font_color NMTOKEN #IMPLIED
reorder_highlight_color NMTOKEN #IMPLIED
reorder_highlight_font_color NMTOKEN #IMPLIED
shortcut_bar_popup_background_color NMTOKEN #IMPLIED
shortcut_bar_popup_font_color NMTOKEN #IMPLIED
softkey_font_color NMTOKEN #IMPLIED
status_area_font_color NMTOKEN #IMPLIED
>
<!ELEMENT highlight EMPTY >
<!ATTLIST highlight
active_idle_row NMTOKEN #IMPLIED
active_idle_shortcut_bar NMTOKEN #IMPLIED
grid NMTOKEN #IMPLIED
list NMTOKEN #IMPLIED
reorder NMTOKEN #IMPLIED
tab NMTOKEN #IMPLIED
>
<!ELEMENT menu_item EMPTY >
<!ATTLIST menu_item
animating_grid NMTOKEN #IMPLIED
app_specific_bg NMTOKEN #IMPLIED
grid_view_icon NMTOKEN #IMPLIED
item_id %MenuItem; #REQUIRED
list_view_icon NMTOKEN #IMPLIED
>
<!ELEMENT radio_audio_bg EMPTY >
<!ATTLIST radio_audio_bg
audio_bg NMTOKEN #IMPLIED
radio_bg NMTOKEN #IMPLIED
>
<!ELEMENT screensaver EMPTY >
<!ATTLIST screensaver
main_display_graphics NMTOKEN #REQUIRED
second_display_graphics NMTOKEN #IMPLIED
>
<!ELEMENT shutdown EMPTY >
<!ATTLIST shutdown
main_display_graphics NMTOKEN #IMPLIED
second_display_graphics NMTOKEN #IMPLIED
tone NMTOKEN #IMPLIED
>
<!ELEMENT softkey_bg EMPTY >
<!ATTLIST softkey_bg
left NMTOKEN #IMPLIED
middle NMTOKEN #IMPLIED
right NMTOKEN #IMPLIED
>
<!ELEMENT startup EMPTY >
<!ATTLIST startup
main_display_graphics NMTOKEN #IMPLIED
second_display_graphics NMTOKEN #IMPLIED
tone NMTOKEN #IMPLIED
>
<!ELEMENT theme
(colors*, menu_item*, wallpaper, screensaver, background?, radio_audio_bg?, softkey_bg?, wait_graphics?, highlight?, tones?, startup?, shutdown?, transformation_open?, transformation_close?)>
<!ATTLIST theme
name CDATA #IMPLIED
version NMTOKEN #IMPLIED
>
<!ELEMENT tones EMPTY >
<!ATTLIST tones
cal_alert NMTOKEN #IMPLIED
msg_alert NMTOKEN #IMPLIED
ringtone NMTOKEN #IMPLIED
>
<!ELEMENT transformation_close EMPTY >
<!ATTLIST transformation_close
main_display_graphics NMTOKEN #IMPLIED
second_display_graphics NMTOKEN #IMPLIED
tone NMTOKEN #IMPLIED
>
<!ELEMENT transformation_open EMPTY >
<!ATTLIST transformation_open
main_display_graphics NMTOKEN #IMPLIED
second_display_graphics NMTOKEN #IMPLIED
tone NMTOKEN #IMPLIED
>
<!ELEMENT wait_graphics EMPTY >
<!ATTLIST wait_graphics
src NMTOKEN #IMPLIED
>
<!ELEMENT wallpaper EMPTY >
<!ATTLIST wallpaper
main_display_graphics NMTOKEN #REQUIRED
second_display_graphics NMTOKEN #IMPLIED
>
<!DOCTYPE theme PUBLIC "-//NOKIA//DTD THEME 2.0//EN" "theme.dtd">
This is a re-creation of theme DTD based on "theme_descriptor.xml"
that is produced by "Nokia S40 Theme Studio 2.1"
--REQUIRED
wallpaper
screensaver
-- OPTIONAL
everything else
-->
<!ENTITY % MenuItem "applications|ams_messages|brew|callregister|camera|
cdmacust|contacts|extras|gallery|goto|media|messages|
number_entry|organizer|push_to_talk|services|settings|
simatk|sport|voiceportal|wireless_village">
<!ENTITY % Colors.Display "main|second">
<!ELEMENT background EMPTY >
<!ATTLIST background
grid_menu_bg NMTOKEN #IMPLIED
main_default_bg NMTOKEN #IMPLIED
note_bg NMTOKEN #IMPLIED
second_default_bg NMTOKEN #IMPLIED
>
<!ELEMENT colors EMPTY >
<!ATTLIST colors
active_idle_active_font_color NMTOKEN #IMPLIED
active_idle_content_background_color NMTOKEN #IMPLIED
calendar_highlight_color NMTOKEN #IMPLIED
display %Colors.Display; #REQUIRED
grid_highlight_color NMTOKEN #IMPLIED
grid_menu_font_color NMTOKEN #IMPLIED
grid_menu_highlight_font_color NMTOKEN #IMPLIED
header_font_color NMTOKEN #IMPLIED
idle_font_color NMTOKEN #IMPLIED
menu_font_color NMTOKEN #IMPLIED
menu_highlight_font_color NMTOKEN #IMPLIED
reorder_highlight_color NMTOKEN #IMPLIED
reorder_highlight_font_color NMTOKEN #IMPLIED
shortcut_bar_popup_background_color NMTOKEN #IMPLIED
shortcut_bar_popup_font_color NMTOKEN #IMPLIED
softkey_font_color NMTOKEN #IMPLIED
status_area_font_color NMTOKEN #IMPLIED
>
<!ELEMENT highlight EMPTY >
<!ATTLIST highlight
active_idle_row NMTOKEN #IMPLIED
active_idle_shortcut_bar NMTOKEN #IMPLIED
grid NMTOKEN #IMPLIED
list NMTOKEN #IMPLIED
reorder NMTOKEN #IMPLIED
tab NMTOKEN #IMPLIED
>
<!ELEMENT menu_item EMPTY >
<!ATTLIST menu_item
animating_grid NMTOKEN #IMPLIED
app_specific_bg NMTOKEN #IMPLIED
grid_view_icon NMTOKEN #IMPLIED
item_id %MenuItem; #REQUIRED
list_view_icon NMTOKEN #IMPLIED
>
<!ELEMENT radio_audio_bg EMPTY >
<!ATTLIST radio_audio_bg
audio_bg NMTOKEN #IMPLIED
radio_bg NMTOKEN #IMPLIED
>
<!ELEMENT screensaver EMPTY >
<!ATTLIST screensaver
main_display_graphics NMTOKEN #REQUIRED
second_display_graphics NMTOKEN #IMPLIED
>
<!ELEMENT shutdown EMPTY >
<!ATTLIST shutdown
main_display_graphics NMTOKEN #IMPLIED
second_display_graphics NMTOKEN #IMPLIED
tone NMTOKEN #IMPLIED
>
<!ELEMENT softkey_bg EMPTY >
<!ATTLIST softkey_bg
left NMTOKEN #IMPLIED
middle NMTOKEN #IMPLIED
right NMTOKEN #IMPLIED
>
<!ELEMENT startup EMPTY >
<!ATTLIST startup
main_display_graphics NMTOKEN #IMPLIED
second_display_graphics NMTOKEN #IMPLIED
tone NMTOKEN #IMPLIED
>
<!ELEMENT theme
(colors*, menu_item*, wallpaper, screensaver, background?, radio_audio_bg?, softkey_bg?, wait_graphics?, highlight?, tones?, startup?, shutdown?, transformation_open?, transformation_close?)>
<!ATTLIST theme
name CDATA #IMPLIED
version NMTOKEN #IMPLIED
>
<!ELEMENT tones EMPTY >
<!ATTLIST tones
cal_alert NMTOKEN #IMPLIED
msg_alert NMTOKEN #IMPLIED
ringtone NMTOKEN #IMPLIED
>
<!ELEMENT transformation_close EMPTY >
<!ATTLIST transformation_close
main_display_graphics NMTOKEN #IMPLIED
second_display_graphics NMTOKEN #IMPLIED
tone NMTOKEN #IMPLIED
>
<!ELEMENT transformation_open EMPTY >
<!ATTLIST transformation_open
main_display_graphics NMTOKEN #IMPLIED
second_display_graphics NMTOKEN #IMPLIED
tone NMTOKEN #IMPLIED
>
<!ELEMENT wait_graphics EMPTY >
<!ATTLIST wait_graphics
src NMTOKEN #IMPLIED
>
<!ELEMENT wallpaper EMPTY >
<!ATTLIST wallpaper
main_display_graphics NMTOKEN #REQUIRED
second_display_graphics NMTOKEN #IMPLIED
>
- <!--
- <!DOCTYPE theme PUBLIC "-//NOKIA//DTD THEME 2.0//EN" "theme.dtd">
- This is a re-creation of theme DTD based on "theme_descriptor.xml"
- that is produced by "Nokia S40 Theme Studio 2.1"
- --REQUIRED
- wallpaper
- screensaver
- -- OPTIONAL
- everything else
- -->
- <!ENTITY % MenuItem "applications|ams_messages|brew|callregister|camera|
- cdmacust|contacts|extras|gallery|goto|media|messages|
- number_entry|organizer|push_to_talk|services|settings|
- simatk|sport|voiceportal|wireless_village">
- <!ENTITY % Colors.Display "main|second">
- <!ELEMENT background EMPTY >
- <!ATTLIST background
- grid_menu_bg NMTOKEN #IMPLIED
- main_default_bg NMTOKEN #IMPLIED
- note_bg NMTOKEN #IMPLIED
- second_default_bg NMTOKEN #IMPLIED
- >
- <!ELEMENT colors EMPTY >
- <!ATTLIST colors
- active_idle_active_font_color NMTOKEN #IMPLIED
- active_idle_content_background_color NMTOKEN #IMPLIED
- calendar_highlight_color NMTOKEN #IMPLIED
- display %Colors.Display; #REQUIRED
- grid_highlight_color NMTOKEN #IMPLIED
- grid_menu_font_color NMTOKEN #IMPLIED
- grid_menu_highlight_font_color NMTOKEN #IMPLIED
- header_font_color NMTOKEN #IMPLIED
- idle_font_color NMTOKEN #IMPLIED
- menu_font_color NMTOKEN #IMPLIED
- menu_highlight_font_color NMTOKEN #IMPLIED
- reorder_highlight_color NMTOKEN #IMPLIED
- reorder_highlight_font_color NMTOKEN #IMPLIED
- shortcut_bar_popup_background_color NMTOKEN #IMPLIED
- shortcut_bar_popup_font_color NMTOKEN #IMPLIED
- softkey_font_color NMTOKEN #IMPLIED
- status_area_font_color NMTOKEN #IMPLIED
- >
- <!ELEMENT highlight EMPTY >
- <!ATTLIST highlight
- active_idle_row NMTOKEN #IMPLIED
- active_idle_shortcut_bar NMTOKEN #IMPLIED
- grid NMTOKEN #IMPLIED
- list NMTOKEN #IMPLIED
- reorder NMTOKEN #IMPLIED
- tab NMTOKEN #IMPLIED
- >
- <!ELEMENT menu_item EMPTY >
- <!ATTLIST menu_item
- animating_grid NMTOKEN #IMPLIED
- app_specific_bg NMTOKEN #IMPLIED
- grid_view_icon NMTOKEN #IMPLIED
- item_id %MenuItem; #REQUIRED
- list_view_icon NMTOKEN #IMPLIED
- >
- <!ELEMENT radio_audio_bg EMPTY >
- <!ATTLIST radio_audio_bg
- audio_bg NMTOKEN #IMPLIED
- radio_bg NMTOKEN #IMPLIED
- >
- <!ELEMENT screensaver EMPTY >
- <!ATTLIST screensaver
- main_display_graphics NMTOKEN #REQUIRED
- second_display_graphics NMTOKEN #IMPLIED
- >
- <!ELEMENT shutdown EMPTY >
- <!ATTLIST shutdown
- main_display_graphics NMTOKEN #IMPLIED
- second_display_graphics NMTOKEN #IMPLIED
- tone NMTOKEN #IMPLIED
- >
- <!ELEMENT softkey_bg EMPTY >
- <!ATTLIST softkey_bg
- left NMTOKEN #IMPLIED
- middle NMTOKEN #IMPLIED
- right NMTOKEN #IMPLIED
- >
- <!ELEMENT startup EMPTY >
- <!ATTLIST startup
- main_display_graphics NMTOKEN #IMPLIED
- second_display_graphics NMTOKEN #IMPLIED
- tone NMTOKEN #IMPLIED
- >
- <!ELEMENT theme
- (colors*, menu_item*, wallpaper, screensaver, background?, radio_audio_bg?, softkey_bg?, wait_graphics?, highlight?, tones?, startup?, shutdown?, transformation_open?, transformation_close?)>
- <!ATTLIST theme
- name CDATA #IMPLIED
- version NMTOKEN #IMPLIED
- >
- <!ELEMENT tones EMPTY >
- <!ATTLIST tones
- cal_alert NMTOKEN #IMPLIED
- msg_alert NMTOKEN #IMPLIED
- ringtone NMTOKEN #IMPLIED
- >
- <!ELEMENT transformation_close EMPTY >
- <!ATTLIST transformation_close
- main_display_graphics NMTOKEN #IMPLIED
- second_display_graphics NMTOKEN #IMPLIED
- tone NMTOKEN #IMPLIED
- >
- <!ELEMENT transformation_open EMPTY >
- <!ATTLIST transformation_open
- main_display_graphics NMTOKEN #IMPLIED
- second_display_graphics NMTOKEN #IMPLIED
- tone NMTOKEN #IMPLIED
- >
- <!ELEMENT wait_graphics EMPTY >
- <!ATTLIST wait_graphics
- src NMTOKEN #IMPLIED
- >
- <!ELEMENT wallpaper EMPTY >
- <!ATTLIST wallpaper
- main_display_graphics NMTOKEN #REQUIRED
- second_display_graphics NMTOKEN #IMPLIED
- >
Strong with this one, the sudo is.
- joebert
- Sledgehammer


- Inscription: Fév 10, 2004
- Messages: 13455
- Loc: Florida
- Status: Offline
Un peu d'une mise à jour sur mon / / Threads Fusionné , Puisque je viens de remarquer son été visionné plus de 2000 fois à ce jour. 
Id écrit ce paquet de thèmes pour téléphone cellulaire de ma dernière année mais n'a jamais vraiment fait beaucoup avec elle, je prévois de faire une réécriture pour y inclure plus de téléphones maintenant si je figure que je doit afficher cet avant que je le nettoyer mon lecteur.
Fondamentalement Thèmes Nokia S40 sont zipfiles contenant un descripteur de fichier XML, d'images, et peut-être un écran de veille SWF dans la version 3 thèmes S40.
Si vous renommez un fichier *. nth. Zip il sera ouvert dans toute application qui gère zipfiles, somthing comme 7-zip n'auront même pas besoin de le renommer.
Quand j'ai écrit ce le seul accès zip functionalty que j'ai eu était via un script Posté par camperjohn64 dans ce poste .
Ce conditionneur thème exige le script dans ce poste et qui est le include nécessaire comme on le voit dans les premières lignes de l'emballeur.
Ill premier poste de la classe, suivie par exemple d'utilisation dans le prochain post depuis son un poil long.
Id écrit ce paquet de thèmes pour téléphone cellulaire de ma dernière année mais n'a jamais vraiment fait beaucoup avec elle, je prévois de faire une réécriture pour y inclure plus de téléphones maintenant si je figure que je doit afficher cet avant que je le nettoyer mon lecteur.
Fondamentalement Thèmes Nokia S40 sont zipfiles contenant un descripteur de fichier XML, d'images, et peut-être un écran de veille SWF dans la version 3 thèmes S40.
Si vous renommez un fichier *. nth. Zip il sera ouvert dans toute application qui gère zipfiles, somthing comme 7-zip n'auront même pas besoin de le renommer.
Quand j'ai écrit ce le seul accès zip functionalty que j'ai eu était via un script Posté par camperjohn64 dans ce poste .
Ce conditionneur thème exige le script dans ce poste et qui est le include nécessaire comme on le voit dans les premières lignes de l'emballeur.
Code: [ Select ]
// File packaging/compression
require('zipfile.class.php');
require('zipfile.class.php');
- // File packaging/compression
- require('zipfile.class.php');
Ill premier poste de la classe, suivie par exemple d'utilisation dans le prochain post depuis son un poil long.
- joebert
- Sledgehammer


- Inscription: Fév 10, 2004
- Messages: 13455
- Loc: Florida
- Status: Offline
nokia-s40theme.php
Code: [ Select ]
<?php
// File packaging/compression
require('zipfile.class.php');
class s40theme
{
var $file_list = Array();
var $theme = Array('name' => 'New Theme', 'version' => '0.0');
var $theme_descriptor;
var $theme_elements;
var $descriptor_template = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<!DOCTYPE theme PUBLIC \"-//NOKIA//DTD THEME {VERSION}//EN\" \"theme.dtd\">
<theme name=\"{THEME_NAME}\" version=\"{VERSION}\">\n{ELEMENTS}\n</theme>";
// Convience Functions
function set_name($name){$this -> theme['name'] = $name;}
function set_version($version){$this -> theme['version'] = $version;}
function sanitized_filename($filename){return preg_replace( "/[^\w\.-]+/", "_", preg_replace( '/^.+[\\\/]/', '', $filename ));}
// Main Functions
function update_files($filename)
{
if( ! is_file($filename)){ return false;}
array_push($this -> file_list, $filename);
$this -> file_list = array_unique($this -> file_list);
return true;
}
function get_theme_descriptor()
{
$xml = '';
foreach($this -> theme_elements as $element => $details)
{
if( ! $details['inuse'])
{
continue;
}
if( ! $details['repeatable'])
{
$node = "\t<$element";
foreach($details['attributes'] as $attribute => $deffinition)
{
$node .= "\n\t\t" . $attribute . '="' . $deffinition['value'] . '"';
}
$xml .= "$node />\n";
}
else
{
foreach($details['clones'] as $clone => $clone_details)
{
$node = "\t<$element";
foreach($clone_details as $attribute => $deffinition)
{
$node .= "\n\t\t" . $attribute . '="' . $deffinition['value'] . '"';
}
$xml .= "$node />\n";
}
}
}
$this -> theme_descriptor = str_replace(
Array('{VERSION}', '{THEME_NAME}', '{ELEMENTS}'),
Array($this -> theme['version'], $this -> theme['name'], $xml),
$this -> descriptor_template
);
return $this -> theme_descriptor;
}
function set_element($element, $attributes)
{
if( ! array_key_exists($element, $this -> theme_elements)
or
! is_array($attributes))
{
return false;
}
$this -> theme_elements[$element]['inuse'] = true;
if($this -> theme_elements[$element]['repeatable'])
{
$clone_id = count($this -> theme_elements[$element]['clones']);
foreach($attributes as $attribute => $value)
{
if( ! array_key_exists($attribute, $this -> theme_elements[$element]['attributes']))
{
continue;
}
if($this -> theme_elements[$element]['attributes'][$attribute]['isfile'])
{
if( ! $this -> update_files($value))
{
if($clone_id < count($this -> theme_elements[$element]['clones']))
{
array_pop($this -> theme_elements[$element]['clones']);
if($clone_id == 0)
{
$this -> theme_elements[$element]['inuse'] = false;
}
}
return false;
}
$value = $this -> sanitized_filename($value);
}
$this -> theme_elements[$element]['clones'][$clone_id][$attribute]['value'] = utf8_encode($value);
}
}
else
{
foreach($attributes as $attribute => $value)
{
if( ! array_key_exists($attribute, $this -> theme_elements[$element]['attributes']))
{
continue;
}
if($this -> theme_elements[$element]['attributes'][$attribute]['isfile'])
{
if( ! $this -> update_files($value))
{
$this -> theme_elements[$element]['inuse'] = false;
return false;
}
$value = $this -> sanitized_filename($value);
}
$this -> set_elements_attribute($element, $attribute, $value);
}
}
return true;
}
function set_elements_attribute($element, $attribute, $value)
{
if( ! array_key_exists($attribute, $this -> theme_elements[$element]['attributes']))
{
return false;
}
$this -> theme_elements[$element]['attributes'][$attribute]['value'] = utf8_encode($value);
return true;
}
// Packaging
function packaged()
{
$zip = new zipfile();
$zip -> add_file($this -> get_theme_descriptor(), 'theme_descriptor.xml');
foreach($this -> file_list as $a_file)
{
$file_handle = fopen($a_file, 'rb');
$file_data = fread($file_handle, filesize($a_file));
fclose($file_handle);
$zip -> add_file($file_data, $this -> sanitized_filename($a_file));
}
return $zip -> file();
}
}
class s40theme1_1 extends s40theme
{
// Available Menu Items
var $menu_items = Array(
'callregister','settings','organizer','gallery','services','media','applications',
'contacts','simatk','push_to_talk','wireless_village','number_entry','messages',
'goto','amsmessages','default'
);
function s40theme1_1()
{
$this -> set_version('1.1');
$this -> theme_elements = Array(
'background' => Array(
'inuse' => false,
'repeatable' => false,
'attributes' => Array(
'src' => Array('isfile' => true, 'value' => false)
)
),
'background-mini' => Array(
'inuse' => false,
'repeatable' => false,
'attributes' => Array(
'src' => Array('isfile' => true, 'value' => false)
)
),
'colorscheme' => Array(
'inuse' => false,
'repeatable' => false,
'attributes' => Array(
'color' => Array('isfile' => false, 'value' => false)
)
),
'icon' => Array(
'inuse' => false,
'repeatable' => true,
'clones' => Array(),
'attributes' => Array(
'src' => Array('isfile' => true),
'item_id' => Array('isfile' => false),
'size' => Array('isfile' => false),
)
),
'ringtone' => Array(
'inuse' => false,
'repeatable' => false,
'attributes' => Array(
'src' => Array('isfile' => true, 'value' => false)
)
),
'screensaver' => Array(
'inuse' => false,
'repeatable' => false,
'attributes' => Array(
'src' => Array('isfile' => true, 'value' => false)
)
),
'wallpaper' => Array(
'inuse' => false,
'repeatable' => false,
'attributes' => Array(
'src' => Array('isfile' => true, 'value' => false)
)
),
'colorscheme-mini' => Array(
'inuse' => false,
'repeatable' => false,
'attributes' => Array(
'color' => Array('isfile' => false, 'value' => false)
)
),
'wallpaper-mini' => Array(
'inuse' => false,
'repeatable' => false,
'attributes' => Array(
'src' => Array('isfile' => true, 'value' => false)
)
)
);
}
}
class s40theme2_0 extends s40theme
{
function s40theme2_0()
{
$this -> set_version('2.0');
$this -> theme_elements = Array(
'colors' => Array(
'inuse' => false,
'repeatable' => true,
'clones' => Array(),
'attributes' => Array(
'display' => Array('isfile' => false, 'value' => false),
'header_font_color' => Array('isfile' => false, 'value' => false),
'status_area_font_color' => Array('isfile' => false, 'value' => false),
'softkey_font_color' => Array('isfile' => false, 'value' => false),
'calendar_highlight_color' => Array('isfile' => false, 'value' => false),
'idle_font_color' => Array('isfile' => false, 'value' => false),
'active_idle_active_font_color' => Array('isfile' => false, 'value' => false),
'active_idle_content_background_color' => Array('isfile' => false, 'value' => false),
'shortcut_bar_popup_font_color' => Array('isfile' => false, 'value' => false),
'shortcut_bar_popup_background_color' => Array('isfile' => false, 'value' => false),
'menu_font_color' => Array('isfile' => false, 'value' => false),
'menu_highlight_font_color' => Array('isfile' => false, 'value' => false),
'grid_menu_font_color' => Array('isfile' => false, 'value' => false),
'grid_menu_highlight_font_color' => Array('isfile' => false, 'value' => false),
'reorder_highlight_font_color' => Array('isfile' => false, 'value' => false),
'grid_highlight_color' => Array('isfile' => false, 'value' => false),
'reorder_highlight_color' => Array('isfile' => false, 'value' => false)
)
),
'menu_item' => Array(
'inuse' => false,
'repeatable' => true,
'clones' => Array(),
'attributes' => Array(
'item_id' => Array('isfile' => false, 'value' => false),
'list_view_icon' => Array('isfile' => true, 'value' => false),
'grid_view_icon' => Array('isfile' => true, 'value' => false),
'animating_grid' => Array('isfile' => true, 'value' => false),
'app_specific_bg' => Array('isfile' => true, 'value' => false)
)
),
'wallpaper' => Array(
'inuse' => false,
'repeatable' => false,
'attributes' => Array(
'main_display_graphics' => Array('isfile' => true, 'value' => false),
'second_display_graphics' => Array('isfile' => true, 'value' => false)
)
),
'screensaver' => Array(
'inuse' => false,
'repeatable' => false,
'attributes' => Array(
'main_display_graphics' => Array('isfile' => true, 'value' => false),
'second_display_graphics' => Array('isfile' => true, 'value' => false)
)
),
'background' => Array(
'inuse' => false,
'repeatable' => false,
'attributes' => Array(
'main_default_bg' => Array('isfile' => true, 'value' => false),
'second_default_bg' => Array('isfile' => true, 'value' => false),
'grid_menu_bg' => Array('isfile' => true, 'value' => false),
'note_bg' => Array('isfile' => true, 'value' => false)
)
),
'radio_audio_bg' => Array(
'inuse' => false,
'repeatable' => false,
'attributes' => Array(
'radio_bg' => Array('isfile' => true, 'value' => false),
'audio_bg' => Array('isfile' => true, 'value' => false)
)
),
'softkey_bg' => Array(
'inuse' => false,
'repeatable' => false,
'attributes' => Array(
'left' => Array('isfile' => true, 'value' => false),
'middle' => Array('isfile' => true, 'value' => false),
'right' => Array('isfile' => true, 'value' => false)
)
),
'wait_graphics' => Array(
'inuse' => false,
'repeatable' => false,
'attributes' => Array(
'src' => Array('isfile' => true, 'value' => false)
)
),
'highlight' => Array(
'inuse' => false,
'repeatable' => false,
'attributes' => Array(
'tab' => Array('isfile' => true, 'value' => false),
'list' => Array('isfile' => true, 'value' => false),
'grid' => Array('isfile' => true, 'value' => false),
'active_idle_row' => Array('isfile' => true, 'value' => false),
'active_idle_shortcut_bar' => Array('isfile' => true, 'value' => false),
'reorder' => Array('isfile' => true, 'value' => false)
)
),
'tones' => Array(
'inuse' => false,
'repeatable' => false,
'attributes' => Array(
'ringtone' => Array('isfile' => true, 'value' => false),
'msg_alert' => Array('isfile' => true, 'value' => false),
'cal_alert' => Array('isfile' => true, 'value' => false)
)
),
'startup' => Array(
'inuse' => false,
'repeatable' => false,
'attributes' => Array(
'main_display_graphics' => Array('isfile' => true, 'value' => false),
'second_display_graphics' => Array('isfile' => true, 'value' => false),
'tone' => Array('isfile' => true, 'value' => false)
)
),
'shutdown' => Array(
'inuse' => false,
'repeatable' => false,
'attributes' => Array(
'main_display_graphics' => Array('isfile' => true, 'value' => false),
'second_display_graphics' => Array('isfile' => true, 'value' => false),
'tone' => Array('isfile' => true, 'value' => false)
)
),
'transformation_open' => Array(
'inuse' => false,
'repeatable' => false,
'attributes' => Array(
'main_display_graphics' => Array('isfile' => true, 'value' => false),
'second_display_graphics' => Array('isfile' => true, 'value' => false),
'tone' => Array('isfile' => true, 'value' => false)
)
),
'transformation_close' => Array(
'inuse' => false,
'repeatable' => false,
'attributes' => Array(
'main_display_graphics' => Array('isfile' => true, 'value' => false),
'second_display_graphics' => Array('isfile' => true, 'value' => false),
'tone' => Array('isfile' => true, 'value' => false)
)
)
);
}
}
?>
// File packaging/compression
require('zipfile.class.php');
class s40theme
{
var $file_list = Array();
var $theme = Array('name' => 'New Theme', 'version' => '0.0');
var $theme_descriptor;
var $theme_elements;
var $descriptor_template = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<!DOCTYPE theme PUBLIC \"-//NOKIA//DTD THEME {VERSION}//EN\" \"theme.dtd\">
<theme name=\"{THEME_NAME}\" version=\"{VERSION}\">\n{ELEMENTS}\n</theme>";
// Convience Functions
function set_name($name){$this -> theme['name'] = $name;}
function set_version($version){$this -> theme['version'] = $version;}
function sanitized_filename($filename){return preg_replace( "/[^\w\.-]+/", "_", preg_replace( '/^.+[\\\/]/', '', $filename ));}
// Main Functions
function update_files($filename)
{
if( ! is_file($filename)){ return false;}
array_push($this -> file_list, $filename);
$this -> file_list = array_unique($this -> file_list);
return true;
}
function get_theme_descriptor()
{
$xml = '';
foreach($this -> theme_elements as $element => $details)
{
if( ! $details['inuse'])
{
continue;
}
if( ! $details['repeatable'])
{
$node = "\t<$element";
foreach($details['attributes'] as $attribute => $deffinition)
{
$node .= "\n\t\t" . $attribute . '="' . $deffinition['value'] . '"';
}
$xml .= "$node />\n";
}
else
{
foreach($details['clones'] as $clone => $clone_details)
{
$node = "\t<$element";
foreach($clone_details as $attribute => $deffinition)
{
$node .= "\n\t\t" . $attribute . '="' . $deffinition['value'] . '"';
}
$xml .= "$node />\n";
}
}
}
$this -> theme_descriptor = str_replace(
Array('{VERSION}', '{THEME_NAME}', '{ELEMENTS}'),
Array($this -> theme['version'], $this -> theme['name'], $xml),
$this -> descriptor_template
);
return $this -> theme_descriptor;
}
function set_element($element, $attributes)
{
if( ! array_key_exists($element, $this -> theme_elements)
or
! is_array($attributes))
{
return false;
}
$this -> theme_elements[$element]['inuse'] = true;
if($this -> theme_elements[$element]['repeatable'])
{
$clone_id = count($this -> theme_elements[$element]['clones']);
foreach($attributes as $attribute => $value)
{
if( ! array_key_exists($attribute, $this -> theme_elements[$element]['attributes']))
{
continue;
}
if($this -> theme_elements[$element]['attributes'][$attribute]['isfile'])
{
if( ! $this -> update_files($value))
{
if($clone_id < count($this -> theme_elements[$element]['clones']))
{
array_pop($this -> theme_elements[$element]['clones']);
if($clone_id == 0)
{
$this -> theme_elements[$element]['inuse'] = false;
}
}
return false;
}
$value = $this -> sanitized_filename($value);
}
$this -> theme_elements[$element]['clones'][$clone_id][$attribute]['value'] = utf8_encode($value);
}
}
else
{
foreach($attributes as $attribute => $value)
{
if( ! array_key_exists($attribute, $this -> theme_elements[$element]['attributes']))
{
continue;
}
if($this -> theme_elements[$element]['attributes'][$attribute]['isfile'])
{
if( ! $this -> update_files($value))
{
$this -> theme_elements[$element]['inuse'] = false;
return false;
}
$value = $this -> sanitized_filename($value);
}
$this -> set_elements_attribute($element, $attribute, $value);
}
}
return true;
}
function set_elements_attribute($element, $attribute, $value)
{
if( ! array_key_exists($attribute, $this -> theme_elements[$element]['attributes']))
{
return false;
}
$this -> theme_elements[$element]['attributes'][$attribute]['value'] = utf8_encode($value);
return true;
}
// Packaging
function packaged()
{
$zip = new zipfile();
$zip -> add_file($this -> get_theme_descriptor(), 'theme_descriptor.xml');
foreach($this -> file_list as $a_file)
{
$file_handle = fopen($a_file, 'rb');
$file_data = fread($file_handle, filesize($a_file));
fclose($file_handle);
$zip -> add_file($file_data, $this -> sanitized_filename($a_file));
}
return $zip -> file();
}
}
class s40theme1_1 extends s40theme
{
// Available Menu Items
var $menu_items = Array(
'callregister','settings','organizer','gallery','services','media','applications',
'contacts','simatk','push_to_talk','wireless_village','number_entry','messages',
'goto','amsmessages','default'
);
function s40theme1_1()
{
$this -> set_version('1.1');
$this -> theme_elements = Array(
'background' => Array(
'inuse' => false,
'repeatable' => false,
'attributes' => Array(
'src' => Array('isfile' => true, 'value' => false)
)
),
'background-mini' => Array(
'inuse' => false,
'repeatable' => false,
'attributes' => Array(
'src' => Array('isfile' => true, 'value' => false)
)
),
'colorscheme' => Array(
'inuse' => false,
'repeatable' => false,
'attributes' => Array(
'color' => Array('isfile' => false, 'value' => false)
)
),
'icon' => Array(
'inuse' => false,
'repeatable' => true,
'clones' => Array(),
'attributes' => Array(
'src' => Array('isfile' => true),
'item_id' => Array('isfile' => false),
'size' => Array('isfile' => false),
)
),
'ringtone' => Array(
'inuse' => false,
'repeatable' => false,
'attributes' => Array(
'src' => Array('isfile' => true, 'value' => false)
)
),
'screensaver' => Array(
'inuse' => false,
'repeatable' => false,
'attributes' => Array(
'src' => Array('isfile' => true, 'value' => false)
)
),
'wallpaper' => Array(
'inuse' => false,
'repeatable' => false,
'attributes' => Array(
'src' => Array('isfile' => true, 'value' => false)
)
),
'colorscheme-mini' => Array(
'inuse' => false,
'repeatable' => false,
'attributes' => Array(
'color' => Array('isfile' => false, 'value' => false)
)
),
'wallpaper-mini' => Array(
'inuse' => false,
'repeatable' => false,
'attributes' => Array(
'src' => Array('isfile' => true, 'value' => false)
)
)
);
}
}
class s40theme2_0 extends s40theme
{
function s40theme2_0()
{
$this -> set_version('2.0');
$this -> theme_elements = Array(
'colors' => Array(
'inuse' => false,
'repeatable' => true,
'clones' => Array(),
'attributes' => Array(
'display' => Array('isfile' => false, 'value' => false),
'header_font_color' => Array('isfile' => false, 'value' => false),
'status_area_font_color' => Array('isfile' => false, 'value' => false),
'softkey_font_color' => Array('isfile' => false, 'value' => false),
'calendar_highlight_color' => Array('isfile' => false, 'value' => false),
'idle_font_color' => Array('isfile' => false, 'value' => false),
'active_idle_active_font_color' => Array('isfile' => false, 'value' => false),
'active_idle_content_background_color' => Array('isfile' => false, 'value' => false),
'shortcut_bar_popup_font_color' => Array('isfile' => false, 'value' => false),
'shortcut_bar_popup_background_color' => Array('isfile' => false, 'value' => false),
'menu_font_color' => Array('isfile' => false, 'value' => false),
'menu_highlight_font_color' => Array('isfile' => false, 'value' => false),
'grid_menu_font_color' => Array('isfile' => false, 'value' => false),
'grid_menu_highlight_font_color' => Array('isfile' => false, 'value' => false),
'reorder_highlight_font_color' => Array('isfile' => false, 'value' => false),
'grid_highlight_color' => Array('isfile' => false, 'value' => false),
'reorder_highlight_color' => Array('isfile' => false, 'value' => false)
)
),
'menu_item' => Array(
'inuse' => false,
'repeatable' => true,
'clones' => Array(),
'attributes' => Array(
'item_id' => Array('isfile' => false, 'value' => false),
'list_view_icon' => Array('isfile' => true, 'value' => false),
'grid_view_icon' => Array('isfile' => true, 'value' => false),
'animating_grid' => Array('isfile' => true, 'value' => false),
'app_specific_bg' => Array('isfile' => true, 'value' => false)
)
),
'wallpaper' => Array(
'inuse' => false,
'repeatable' => false,
'attributes' => Array(
'main_display_graphics' => Array('isfile' => true, 'value' => false),
'second_display_graphics' => Array('isfile' => true, 'value' => false)
)
),
'screensaver' => Array(
'inuse' => false,
'repeatable' => false,
'attributes' => Array(
'main_display_graphics' => Array('isfile' => true, 'value' => false),
'second_display_graphics' => Array('isfile' => true, 'value' => false)
)
),
'background' => Array(
'inuse' => false,
'repeatable' => false,
'attributes' => Array(
'main_default_bg' => Array('isfile' => true, 'value' => false),
'second_default_bg' => Array('isfile' => true, 'value' => false),
'grid_menu_bg' => Array('isfile' => true, 'value' => false),
'note_bg' => Array('isfile' => true, 'value' => false)
)
),
'radio_audio_bg' => Array(
'inuse' => false,
'repeatable' => false,
'attributes' => Array(
'radio_bg' => Array('isfile' => true, 'value' => false),
'audio_bg' => Array('isfile' => true, 'value' => false)
)
),
'softkey_bg' => Array(
'inuse' => false,
'repeatable' => false,
'attributes' => Array(
'left' => Array('isfile' => true, 'value' => false),
'middle' => Array('isfile' => true, 'value' => false),
'right' => Array('isfile' => true, 'value' => false)
)
),
'wait_graphics' => Array(
'inuse' => false,
'repeatable' => false,
'attributes' => Array(
'src' => Array('isfile' => true, 'value' => false)
)
),
'highlight' => Array(
'inuse' => false,
'repeatable' => false,
'attributes' => Array(
'tab' => Array('isfile' => true, 'value' => false),
'list' => Array('isfile' => true, 'value' => false),
'grid' => Array('isfile' => true, 'value' => false),
'active_idle_row' => Array('isfile' => true, 'value' => false),
'active_idle_shortcut_bar' => Array('isfile' => true, 'value' => false),
'reorder' => Array('isfile' => true, 'value' => false)
)
),
'tones' => Array(
'inuse' => false,
'repeatable' => false,
'attributes' => Array(
'ringtone' => Array('isfile' => true, 'value' => false),
'msg_alert' => Array('isfile' => true, 'value' => false),
'cal_alert' => Array('isfile' => true, 'value' => false)
)
),
'startup' => Array(
'inuse' => false,
'repeatable' => false,
'attributes' => Array(
'main_display_graphics' => Array('isfile' => true, 'value' => false),
'second_display_graphics' => Array('isfile' => true, 'value' => false),
'tone' => Array('isfile' => true, 'value' => false)
)
),
'shutdown' => Array(
'inuse' => false,
'repeatable' => false,
'attributes' => Array(
'main_display_graphics' => Array('isfile' => true, 'value' => false),
'second_display_graphics' => Array('isfile' => true, 'value' => false),
'tone' => Array('isfile' => true, 'value' => false)
)
),
'transformation_open' => Array(
'inuse' => false,
'repeatable' => false,
'attributes' => Array(
'main_display_graphics' => Array('isfile' => true, 'value' => false),
'second_display_graphics' => Array('isfile' => true, 'value' => false),
'tone' => Array('isfile' => true, 'value' => false)
)
),
'transformation_close' => Array(
'inuse' => false,
'repeatable' => false,
'attributes' => Array(
'main_display_graphics' => Array('isfile' => true, 'value' => false),
'second_display_graphics' => Array('isfile' => true, 'value' => false),
'tone' => Array('isfile' => true, 'value' => false)
)
)
);
}
}
?>
- <?php
- // File packaging/compression
- require('zipfile.class.php');
- class s40theme
- {
- var $file_list = Array();
- var $theme = Array('name' => 'New Theme', 'version' => '0.0');
- var $theme_descriptor;
- var $theme_elements;
- var $descriptor_template = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
- <!DOCTYPE theme PUBLIC \"-//NOKIA//DTD THEME {VERSION}//EN\" \"theme.dtd\">
- <theme name=\"{THEME_NAME}\" version=\"{VERSION}\">\n{ELEMENTS}\n</theme>";
- // Convience Functions
- function set_name($name){$this -> theme['name'] = $name;}
- function set_version($version){$this -> theme['version'] = $version;}
- function sanitized_filename($filename){return preg_replace( "/[^\w\.-]+/", "_", preg_replace( '/^.+[\\\/]/', '', $filename ));}
- // Main Functions
- function update_files($filename)
- {
- if( ! is_file($filename)){ return false;}
- array_push($this -> file_list, $filename);
- $this -> file_list = array_unique($this -> file_list);
- return true;
- }
- function get_theme_descriptor()
- {
- $xml = '';
- foreach($this -> theme_elements as $element => $details)
- {
- if( ! $details['inuse'])
- {
- continue;
- }
- if( ! $details['repeatable'])
- {
- $node = "\t<$element";
- foreach($details['attributes'] as $attribute => $deffinition)
- {
- $node .= "\n\t\t" . $attribute . '="' . $deffinition['value'] . '"';
- }
- $xml .= "$node />\n";
- }
- else
- {
- foreach($details['clones'] as $clone => $clone_details)
- {
- $node = "\t<$element";
- foreach($clone_details as $attribute => $deffinition)
- {
- $node .= "\n\t\t" . $attribute . '="' . $deffinition['value'] . '"';
- }
- $xml .= "$node />\n";
- }
- }
- }
- $this -> theme_descriptor = str_replace(
- Array('{VERSION}', '{THEME_NAME}', '{ELEMENTS}'),
- Array($this -> theme['version'], $this -> theme['name'], $xml),
- $this -> descriptor_template
- );
- return $this -> theme_descriptor;
- }
- function set_element($element, $attributes)
- {
- if( ! array_key_exists($element, $this -> theme_elements)
- or
- ! is_array($attributes))
- {
- return false;
- }
- $this -> theme_elements[$element]['inuse'] = true;
- if($this -> theme_elements[$element]['repeatable'])
- {
- $clone_id = count($this -> theme_elements[$element]['clones']);
- foreach($attributes as $attribute => $value)
- {
- if( ! array_key_exists($attribute, $this -> theme_elements[$element]['attributes']))
- {
- continue;
- }
- if($this -> theme_elements[$element]['attributes'][$attribute]['isfile'])
- {
- if( ! $this -> update_files($value))
- {
- if($clone_id < count($this -> theme_elements[$element]['clones']))
- {
- array_pop($this -> theme_elements[$element]['clones']);
- if($clone_id == 0)
- {
- $this -> theme_elements[$element]['inuse'] = false;
- }
- }
- return false;
- }
- $value = $this -> sanitized_filename($value);
- }
- $this -> theme_elements[$element]['clones'][$clone_id][$attribute]['value'] = utf8_encode($value);
- }
- }
- else
- {
- foreach($attributes as $attribute => $value)
- {
- if( ! array_key_exists($attribute, $this -> theme_elements[$element]['attributes']))
- {
- continue;
- }
- if($this -> theme_elements[$element]['attributes'][$attribute]['isfile'])
- {
- if( ! $this -> update_files($value))
- {
- $this -> theme_elements[$element]['inuse'] = false;
- return false;
- }
- $value = $this -> sanitized_filename($value);
- }
- $this -> set_elements_attribute($element, $attribute, $value);
- }
- }
- return true;
- }
- function set_elements_attribute($element, $attribute, $value)
- {
- if( ! array_key_exists($attribute, $this -> theme_elements[$element]['attributes']))
- {
- return false;
- }
- $this -> theme_elements[$element]['attributes'][$attribute]['value'] = utf8_encode($value);
- return true;
- }
- // Packaging
- function packaged()
- {
- $zip = new zipfile();
- $zip -> add_file($this -> get_theme_descriptor(), 'theme_descriptor.xml');
- foreach($this -> file_list as $a_file)
- {
- $file_handle = fopen($a_file, 'rb');
- $file_data = fread($file_handle, filesize($a_file));
- fclose($file_handle);
- $zip -> add_file($file_data, $this -> sanitized_filename($a_file));
- }
- return $zip -> file();
- }
- }
- class s40theme1_1 extends s40theme
- {
- // Available Menu Items
- var $menu_items = Array(
- 'callregister','settings','organizer','gallery','services','media','applications',
- 'contacts','simatk','push_to_talk','wireless_village','number_entry','messages',
- 'goto','amsmessages','default'
- );
- function s40theme1_1()
- {
- $this -> set_version('1.1');
- $this -> theme_elements = Array(
- 'background' => Array(
- 'inuse' => false,
- 'repeatable' => false,
- 'attributes' => Array(
- 'src' => Array('isfile' => true, 'value' => false)
- )
- ),
- 'background-mini' => Array(
- 'inuse' => false,
- 'repeatable' => false,
- 'attributes' => Array(
- 'src' => Array('isfile' => true, 'value' => false)
- )
- ),
- 'colorscheme' => Array(
- 'inuse' => false,
- 'repeatable' => false,
- 'attributes' => Array(
- 'color' => Array('isfile' => false, 'value' => false)
- )
- ),
- 'icon' => Array(
- 'inuse' => false,
- 'repeatable' => true,
- 'clones' => Array(),
- 'attributes' => Array(
- 'src' => Array('isfile' => true),
- 'item_id' => Array('isfile' => false),
- 'size' => Array('isfile' => false),
- )
- ),
- 'ringtone' => Array(
- 'inuse' => false,
- 'repeatable' => false,
- 'attributes' => Array(
- 'src' => Array('isfile' => true, 'value' => false)
- )
- ),
- 'screensaver' => Array(
- 'inuse' => false,
- 'repeatable' => false,
- 'attributes' => Array(
- 'src' => Array('isfile' => true, 'value' => false)
- )
- ),
- 'wallpaper' => Array(
- 'inuse' => false,
- 'repeatable' => false,
- 'attributes' => Array(
- 'src' => Array('isfile' => true, 'value' => false)
- )
- ),
- 'colorscheme-mini' => Array(
- 'inuse' => false,
- 'repeatable' => false,
- 'attributes' => Array(
- 'color' => Array('isfile' => false, 'value' => false)
- )
- ),
- 'wallpaper-mini' => Array(
- 'inuse' => false,
- 'repeatable' => false,
- 'attributes' => Array(
- 'src' => Array('isfile' => true, 'value' => false)
- )
- )
- );
- }
- }
- class s40theme2_0 extends s40theme
- {
- function s40theme2_0()
- {
- $this -> set_version('2.0');
- $this -> theme_elements = Array(
- 'colors' => Array(
- 'inuse' => false,
- 'repeatable' => true,
- 'clones' => Array(),
- 'attributes' => Array(
- 'display' => Array('isfile' => false, 'value' => false),
- 'header_font_color' => Array('isfile' => false, 'value' => false),
- 'status_area_font_color' => Array('isfile' => false, 'value' => false),
- 'softkey_font_color' => Array('isfile' => false, 'value' => false),
- 'calendar_highlight_color' => Array('isfile' => false, 'value' => false),
- 'idle_font_color' => Array('isfile' => false, 'value' => false),
- 'active_idle_active_font_color' => Array('isfile' => false, 'value' => false),
- 'active_idle_content_background_color' => Array('isfile' => false, 'value' => false),
- 'shortcut_bar_popup_font_color' => Array('isfile' => false, 'value' => false),
- 'shortcut_bar_popup_background_color' => Array('isfile' => false, 'value' => false),
- 'menu_font_color' => Array('isfile' => false, 'value' => false),
- 'menu_highlight_font_color' => Array('isfile' => false, 'value' => false),
- 'grid_menu_font_color' => Array('isfile' => false, 'value' => false),
- 'grid_menu_highlight_font_color' => Array('isfile' => false, 'value' => false),
- 'reorder_highlight_font_color' => Array('isfile' => false, 'value' => false),
- 'grid_highlight_color' => Array('isfile' => false, 'value' => false),
- 'reorder_highlight_color' => Array('isfile' => false, 'value' => false)
- )
- ),
- 'menu_item' => Array(
- 'inuse' => false,
- 'repeatable' => true,
- 'clones' => Array(),
- 'attributes' => Array(
- 'item_id' => Array('isfile' => false, 'value' => false),
- 'list_view_icon' => Array('isfile' => true, 'value' => false),
- 'grid_view_icon' => Array('isfile' => true, 'value' => false),
- 'animating_grid' => Array('isfile' => true, 'value' => false),
- 'app_specific_bg' => Array('isfile' => true, 'value' => false)
- )
- ),
- 'wallpaper' => Array(
- 'inuse' => false,
- 'repeatable' => false,
- 'attributes' => Array(
- 'main_display_graphics' => Array('isfile' => true, 'value' => false),
- 'second_display_graphics' => Array('isfile' => true, 'value' => false)
- )
- ),
- 'screensaver' => Array(
- 'inuse' => false,
- 'repeatable' => false,
- 'attributes' => Array(
- 'main_display_graphics' => Array('isfile' => true, 'value' => false),
- 'second_display_graphics' => Array('isfile' => true, 'value' => false)
- )
- ),
- 'background' => Array(
- 'inuse' => false,
- 'repeatable' => false,
- 'attributes' => Array(
- 'main_default_bg' => Array('isfile' => true, 'value' => false),
- 'second_default_bg' => Array('isfile' => true, 'value' => false),
- 'grid_menu_bg' => Array('isfile' => true, 'value' => false),
- 'note_bg' => Array('isfile' => true, 'value' => false)
- )
- ),
- 'radio_audio_bg' => Array(
- 'inuse' => false,
- 'repeatable' => false,
- 'attributes' => Array(
- 'radio_bg' => Array('isfile' => true, 'value' => false),
- 'audio_bg' => Array('isfile' => true, 'value' => false)
- )
- ),
- 'softkey_bg' => Array(
- 'inuse' => false,
- 'repeatable' => false,
- 'attributes' => Array(
- 'left' => Array('isfile' => true, 'value' => false),
- 'middle' => Array('isfile' => true, 'value' => false),
- 'right' => Array('isfile' => true, 'value' => false)
- )
- ),
- 'wait_graphics' => Array(
- 'inuse' => false,
- 'repeatable' => false,
- 'attributes' => Array(
- 'src' => Array('isfile' => true, 'value' => false)
- )
- ),
- 'highlight' => Array(
- 'inuse' => false,
- 'repeatable' => false,
- 'attributes' => Array(
- 'tab' => Array('isfile' => true, 'value' => false),
- 'list' => Array('isfile' => true, 'value' => false),
- 'grid' => Array('isfile' => true, 'value' => false),
- 'active_idle_row' => Array('isfile' => true, 'value' => false),
- 'active_idle_shortcut_bar' => Array('isfile' => true, 'value' => false),
- 'reorder' => Array('isfile' => true, 'value' => false)
- )
- ),
- 'tones' => Array(
- 'inuse' => false,
- 'repeatable' => false,
- 'attributes' => Array(
- 'ringtone' => Array('isfile' => true, 'value' => false),
- 'msg_alert' => Array('isfile' => true, 'value' => false),
- 'cal_alert' => Array('isfile' => true, 'value' => false)
- )
- ),
- 'startup' => Array(
- 'inuse' => false,
- 'repeatable' => false,
- 'attributes' => Array(
- 'main_display_graphics' => Array('isfile' => true, 'value' => false),
- 'second_display_graphics' => Array('isfile' => true, 'value' => false),
- 'tone' => Array('isfile' => true, 'value' => false)
- )
- ),
- 'shutdown' => Array(
- 'inuse' => false,
- 'repeatable' => false,
- 'attributes' => Array(
- 'main_display_graphics' => Array('isfile' => true, 'value' => false),
- 'second_display_graphics' => Array('isfile' => true, 'value' => false),
- 'tone' => Array('isfile' => true, 'value' => false)
- )
- ),
- 'transformation_open' => Array(
- 'inuse' => false,
- 'repeatable' => false,
- 'attributes' => Array(
- 'main_display_graphics' => Array('isfile' => true, 'value' => false),
- 'second_display_graphics' => Array('isfile' => true, 'value' => false),
- 'tone' => Array('isfile' => true, 'value' => false)
- )
- ),
- 'transformation_close' => Array(
- 'inuse' => false,
- 'repeatable' => false,
- 'attributes' => Array(
- 'main_display_graphics' => Array('isfile' => true, 'value' => false),
- 'second_display_graphics' => Array('isfile' => true, 'value' => false),
- 'tone' => Array('isfile' => true, 'value' => false)
- )
- )
- );
- }
- }
- ?>
- joebert
- Sledgehammer


- Inscription: Fév 10, 2004
- Messages: 13455
- Loc: Florida
- Status: Offline
Exemple d'utilisation
Code: [ Select ]
<?php
include("nokia-s40theme.php");
$theme_name = 'Silky Smooth';
$theme = new s40theme1_1();
$theme -> set_name($theme_name);
$theme -> set_element('ringtone', Array(
'src' => 'Enigmate-Asim_Kha-2032.mp3'));
$theme -> set_element('wallpaper', Array(
'src' => 'wallpaper.png'));
$theme -> set_element('wallpaper-mini', Array(
'src' => 'wallpaper-mini.png'));
$theme -> set_element('background', Array(
'src' => 'wallpaper.png'));
$theme -> set_element('background-mini', Array(
'src' => 'wallpaper-mini.png'));
$theme -> set_element('colorscheme', Array(
'color' => 'blue'));
$theme -> set_element('colorscheme-mini', Array(
'color' => 'blue'));
$theme -> set_element('screensaver', Array(
'src' => 'screensaver.gif'));
$menu_items = Array('callregister','settings','organizer','gallery','media','applications','contacts','wireless_village','messages','amsmessages','services');
foreach($menu_items as $icon){
$theme -> set_element('icon', Array(
'src' => "icons/$icon.png",
'item_id' => $icon,
'size' => 'small'));
$theme -> set_element('icon', Array(
'src' => "icons/$icon.png",
'item_id' => $icon,
'size' => 'large'));
}
ob_start();
$package = $theme -> packaged();
$package_size = strlen($package);
header('Last-Modified: '.date('r'));
header('Accept-Ranges: bytes');
header('Content-Length: ' . $package_size);
header('Content-Type: application/vnd.nok-s40theme');
header('Content-Disposition: attachment; filename="' . $theme_name . '.nth"');
print($package);
ob_end_flush();
?>
include("nokia-s40theme.php");
$theme_name = 'Silky Smooth';
$theme = new s40theme1_1();
$theme -> set_name($theme_name);
$theme -> set_element('ringtone', Array(
'src' => 'Enigmate-Asim_Kha-2032.mp3'));
$theme -> set_element('wallpaper', Array(
'src' => 'wallpaper.png'));
$theme -> set_element('wallpaper-mini', Array(
'src' => 'wallpaper-mini.png'));
$theme -> set_element('background', Array(
'src' => 'wallpaper.png'));
$theme -> set_element('background-mini', Array(
'src' => 'wallpaper-mini.png'));
$theme -> set_element('colorscheme', Array(
'color' => 'blue'));
$theme -> set_element('colorscheme-mini', Array(
'color' => 'blue'));
$theme -> set_element('screensaver', Array(
'src' => 'screensaver.gif'));
$menu_items = Array('callregister','settings','organizer','gallery','media','applications','contacts','wireless_village','messages','amsmessages','services');
foreach($menu_items as $icon){
$theme -> set_element('icon', Array(
'src' => "icons/$icon.png",
'item_id' => $icon,
'size' => 'small'));
$theme -> set_element('icon', Array(
'src' => "icons/$icon.png",
'item_id' => $icon,
'size' => 'large'));
}
ob_start();
$package = $theme -> packaged();
$package_size = strlen($package);
header('Last-Modified: '.date('r'));
header('Accept-Ranges: bytes');
header('Content-Length: ' . $package_size);
header('Content-Type: application/vnd.nok-s40theme');
header('Content-Disposition: attachment; filename="' . $theme_name . '.nth"');
print($package);
ob_end_flush();
?>
- <?php
- include("nokia-s40theme.php");
- $theme_name = 'Silky Smooth';
- $theme = new s40theme1_1();
- $theme -> set_name($theme_name);
- $theme -> set_element('ringtone', Array(
- 'src' => 'Enigmate-Asim_Kha-2032.mp3'));
- $theme -> set_element('wallpaper', Array(
- 'src' => 'wallpaper.png'));
- $theme -> set_element('wallpaper-mini', Array(
- 'src' => 'wallpaper-mini.png'));
- $theme -> set_element('background', Array(
- 'src' => 'wallpaper.png'));
- $theme -> set_element('background-mini', Array(
- 'src' => 'wallpaper-mini.png'));
- $theme -> set_element('colorscheme', Array(
- 'color' => 'blue'));
- $theme -> set_element('colorscheme-mini', Array(
- 'color' => 'blue'));
- $theme -> set_element('screensaver', Array(
- 'src' => 'screensaver.gif'));
- $menu_items = Array('callregister','settings','organizer','gallery','media','applications','contacts','wireless_village','messages','amsmessages','services');
- foreach($menu_items as $icon){
- $theme -> set_element('icon', Array(
- 'src' => "icons/$icon.png",
- 'item_id' => $icon,
- 'size' => 'small'));
- $theme -> set_element('icon', Array(
- 'src' => "icons/$icon.png",
- 'item_id' => $icon,
- 'size' => 'large'));
- }
- ob_start();
- $package = $theme -> packaged();
- $package_size = strlen($package);
- header('Last-Modified: '.date('r'));
- header('Accept-Ranges: bytes');
- header('Content-Length: ' . $package_size);
- header('Content-Type: application/vnd.nok-s40theme');
- header('Content-Disposition: attachment; filename="' . $theme_name . '.nth"');
- print($package);
- ob_end_flush();
- ?>
Strong with this one, the sudo is.
- joebert
- Sledgehammer


- Inscription: Fév 10, 2004
- Messages: 13455
- Loc: Florida
- Status: Offline
Si vous générez des thèmes et de les enregistrer dans des fichiers plutôt que de les servir immédiatement comme dans l'exemple, et vous avez aussi utilisé Apache, sa valeur coller ce code suivant dans un fichier. Htaccess afin que le serveur envoie le droit mime-type.
Les téléphones Nokia sont kinda pointilleux à ce sujet et va enregistrer un fichier *. comme un énième fichier *. txt si elle n'obtient pas le droit mime-type.
Les téléphones Nokia sont kinda pointilleux à ce sujet et va enregistrer un fichier *. comme un énième fichier *. txt si elle n'obtient pas le droit mime-type.
Code: [ Select ]
AddType application/vnd.nok-s40theme .nth
Strong with this one, the sudo is.
- joebert
- Sledgehammer


- Inscription: Fév 10, 2004
- Messages: 13455
- Loc: Florida
- Status: Offline
- pmoch
- Born


- Inscription: Mai 20, 2009
- Messages: 1
- Status: Offline
Que tal,
J'ai un problème et ne peut pas trouver des réponses ailleurs. I & #39; ai fait l'essai et la modification des thèmes pour un nokia 6085. Tous les articles énumérés comme S40 v2, et la programmation telle qu'elle est décrite au début. Je pourrais modifier et de faire toutes les sections du sujet, mais un démarrage.
Pour une raison quelconque, le démarrage ne fonctionne pas, que ce soit dans les sujets ou téléchargé à partir du réseau dans lequel je modifier dans etmas quelques lignes manquantes dans le démarrage et d'arrêt que le deuxième graphique, et sans que cette séquence ne fonctionne pas lina. Mais même si le démarrage n'a pas fonctionné et je ne peux pas trouver la réponse à la question qui ne fonctionne pas.
Vous pouvez m'aider avec ça?
Merci d'avance.
J'ai un problème et ne peut pas trouver des réponses ailleurs. I & #39; ai fait l'essai et la modification des thèmes pour un nokia 6085. Tous les articles énumérés comme S40 v2, et la programmation telle qu'elle est décrite au début. Je pourrais modifier et de faire toutes les sections du sujet, mais un démarrage.
Pour une raison quelconque, le démarrage ne fonctionne pas, que ce soit dans les sujets ou téléchargé à partir du réseau dans lequel je modifier dans etmas quelques lignes manquantes dans le démarrage et d'arrêt que le deuxième graphique, et sans que cette séquence ne fonctionne pas lina. Mais même si le démarrage n'a pas fonctionné et je ne peux pas trouver la réponse à la question qui ne fonctionne pas.
Vous pouvez m'aider avec ça?
Merci d'avance.
Page 1 sur 1
Pour répondre à ce sujet, vous devez vous connecter ou vous enregistrer. Il est gratuit.
Afficher de l'information
- Total des messages de ce sujet: 12 messages
- Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 218 invités
- Vous ne pouvez pas poster de nouveaux sujets
- Vous ne pouvez pas répondre aux sujets
- Vous ne pouvez pas éditer vos messages
- Vous ne pouvez pas supprimer vos messages
- Vous ne pouvez pas joindre des fichiers
