INTERACT FORUM
More => Old Versions => Media Center 14 (Development Ended) => Topic started by: 221bBS on May 10, 2010, 02:37:50 am
-
The instructions below will allow you to enter a date one way and than have it displayed anyway you like.
Enter date:
(http://i87.photobucket.com/albums/k132/min221bbs/Media%20Center/DateReleasedInput.jpg)
Display it the way you want:
(http://i87.photobucket.com/albums/k132/min221bbs/Media%20Center/DateReleasedOutput1.jpg)
(http://i87.photobucket.com/albums/k132/min221bbs/Media%20Center/DateReleasedOutput2.jpg)
and more...
It also has some features that will help to make sure you enter the date correctly.
After creating this, I stopped using the default date field due to the fact that the default date field would not display only the year and month. With this, if you only enter the year and month, only the year and month will display.
I've tried to make this as simple as possible so that people who do not understand expressions can use this. All you have to do is follow the directions and paste the codes, listed below, in the expression field to make this work.
1. Custom Fields
Go to "Manage Library Fields" and create 6 custom fields and name them:
Date: Released
Date: Released (Display)
Date: Released (Day)
Date: Released (Month)
Date: Released (Month #)
Date: Released (Year)
Tools > Options > Library & Folders > Manage Library Fields... > Add New Field
Except for "Date: Released" all fields are expression fields. I suggest you make the fields uneditable. In order to make a expression field uneditable:
1. Go to the field and select "User Data"
2. Change the "Edit Type" to "Cannot be edited"
3. Click another field in the list, any field, and than go back to the original field
4. Select "Calculated data"
2. Code:
Enter the following code in the expression field right below "Calculated data"
Date: Released (Day)
If(IsEmpty([Date: Released]),,If(IsEqual(Right([Date: Released],2),00,0),,If(IsRange(Right([Date: Released],2),1-9),Right([Date: Released],1),If(IsRange(Right([Date: Released],2),10-31),Right([Date: Released],2),<ERROR: DAY>))))
Date: Released (Month)
If(IsEmpty([Date: Released]),,If(IsEqual(Mid([Date: Released],5,2),00,0),If(IsEqual(Right([Date: Released],2),Mid([Date: Released],5,2),0),,<ERROR: DAY>),If(IsRange(Mid([Date: Released],5,2),1-12),If(IsEqual(Mid([Date: Released],5,2),01,0),January,)If(IsEqual(Mid([Date: Released],5,2),02,0),February,)If(IsEqual(Mid([Date: Released],5,2),03,0),March,)If(IsEqual(Mid([Date: Released],5,2),04,0),April,)If(IsEqual(Mid([Date: Released],5,2),05,0),May,)If(IsEqual(Mid([Date: Released],5,2),06,0),June,)If(IsEqual(Mid([Date: Released],5,2),07,0),July,)If(IsEqual(Mid([Date: Released],5,2),08,0),August,)If(IsEqual(Mid([Date: Released],5,2),09,0),September,)If(IsEqual(Mid([Date: Released],5,2),10,0),October,)If(IsEqual(Mid([Date: Released],5,2),11,0),November,)If(IsEqual(Mid([Date: Released],5,2),12,0),December,),<ERROR: MONTH>)))
Date: Released (Month #)
If(IsEmpty([Date: Released]),,If(IsEqual(Mid([Date: Released],5,2),00,0),If(IsEqual(Right([Date: Released],2),Mid([Date: Released],5,2),0),,<ERROR: DAY>),If(IsRange(Mid([Date: Released],5,2),1-9),Mid([Date: Released],6,1),If(IsRange(Mid([Date: Released],5,2),10-12),Mid([Date: Released],5,2),<ERROR: MONTH>))))
Date: Released (Year)
If(IsEmpty([Date: Released]),,If(IsEqual(Left([Date: Released],4),0000,0),If(IsEqual(Left([Date: Released],4),Mid([Date: Released],5,2)00,0),,<ERROR: MONTH>),If(IsRange(Left([Date: Released],4),1-9),Mid([Date: Released],3,1),If(IsRange(Left([Date: Released],4),10-99),Mid([Date: Released],2,2),If(IsRange(Left([Date: Released],4),100-999),Mid([Date: Released],1,3),If(IsRange(Left([Date: Released],4),1000-2099),Left([Date: Released],4),<ERROR: YEAR>))))))
Date: Released (Display)
This field is used to display your date. Enter one of the following codes in the expression field.
The following examples use the same date:
Year=2010
Month=9
Day=5
1st line tells you the format
2nd line shows you how the date will be displayed if year, month and day is entered
3rd line shows you how the date will be displayed if year and month is entered
4th line shows you how the date will be displayed if only the year is entered
Followed by the code to use if you want your date displayed this way
Month#/Day/Year
9/5/2010
9/2010
2010
If(IsEmpty([Date: Released]),,If(IsEqual(Length([Date: Released])Mid([Date: Released],4,1)Mid([Date: Released],7,1),10--,0),If(IsEmpty([Date: Released (Month #)]),,[Date: Released (Month #)]//)If(IsEmpty([Date: Released (Day)]),,[Date: Released (Day)]//)[Date: Released (Year)],<ERROR: DATE>))
Year/Month#/Day
2010/9/5
2010/9
2010
If(IsEmpty([Date: Released]),,If(IsEqual(Length([Date: Released])Mid([Date: Released],4,1)Mid([Date: Released],7,1),10--,0),[Date: Released (Year)]If(IsEmpty([Date: Released (Month #)]),,//[Date: Released (Month #)])If(IsEmpty([Date: Released (Day)]),,//[Date: Released (Day)]),<ERROR: DATE>))
Year-Month#-Day
2010-9-5
2010-9
2010
If(IsEmpty([Date: Released]),,If(IsEqual(Length([Date: Released])Mid([Date: Released],4,1)Mid([Date: Released],7,1),10--,0),[Date: Released (Year)]If(IsEmpty([Date: Released (Month #)]),,-[Date: Released (Month #)])If(IsEmpty([Date: Released (Day)]),,-[Date: Released (Day)]),<ERROR: DATE>))
Month#/Day/Year
9-5-2010
9-2010
2010
If(IsEmpty([Date: Released]),,If(IsEqual(Length([Date: Released])Mid([Date: Released],4,1)Mid([Date: Released],7,1),10--,0),If(IsEmpty([Date: Released (Month #)]),,[Date: Released (Month #)]-)If(IsEmpty([Date: Released (Day)]),,[Date: Released (Day)]-)[Date: Released (Year)],<ERROR: DATE>))
Day Month Year
5 September 2010
September 2010
2010
If(IsEmpty([Date: Released]),,If(IsEqual(Length([Date: Released])Mid([Date: Released],4,1)Mid([Date: Released],7,1),10--,0),If(IsEmpty([Date: Released (Day)]),,[Date: Released (Day)] )If(IsEmpty([Date: Released (Month)]),,[Date: Released (Month)] )[Date: Released (Year)],<ERROR: DATE>))
Day Month(abbr) Year
5 Sep 2010
Sep 2010
2010
If(IsEmpty([Date: Released]),,If(IsEqual(Length([Date: Released])Mid([Date: Released],4,1)Mid([Date: Released],7,1),10--,0),If(IsEmpty([Date: Released (Day)]),,[Date: Released (Day)] )If(IsEmpty([Date: Released (Month)]),,Left([Date: Released (Month)],3) )[Date: Released (Year)],<ERROR: DATE>))
Month Day, Year
September 5, 2010
September 2010
2010
If(IsEmpty([Date: Released]),,If(IsEqual(Length([Date: Released])Mid([Date: Released],4,1)Mid([Date: Released],7,1),10--,0),If(IsEmpty([Date: Released (Month)]),,[Date: Released (Month)] )If(IsEmpty([Date: Released (Day)]),,[Date: Released (Day)]/, )[Date: Released (Year)],<ERROR: DATE>))
Month(abbr) Day, Year
Sep 5, 2010
Sep 2010
2010
If(IsEmpty([Date: Released]),,If(IsEqual(Length([Date: Released])Mid([Date: Released],4,1)Mid([Date: Released],7,1),10--,0),If(IsEmpty([Date: Released (Month)]),,Left([Date: Released (Month)],3) )If(IsEmpty([Date: Released (Day)]),,[Date: Released (Day)]/, )[Date: Released (Year)],<ERROR: DATE>))
3. How to use the custom Date field
"Date: Released" is used to enter the date. Date field must be ten characters long. Date field must be in the following format:
yyyy-MM-dd
"yyyy" is the year, it must be a four digit number, between 0000-2099.
Followed by "-" as a separator
"MM" is the month, it must be a two digit number, between 00-12.
Followed by "-" as a separator
"dd" is the day, it must be a two digit number, between 00-31.
Correct way to enter the date:
2010-01-21
0500-00-00
1948-05-00
0000-00-00
Incorrect way to enter the date:
2009-10-5
2010-1-21
1835-00-19
0000-12-01
1948-05
1948-5
1999
500
Error message will always display in the "Date: Released (Display)" field. Error message will appear if you do the following:
If the date is not 10 characters long. Example: 1987-5-22
If you do not use the dash (-) as a separator. Example: 2010/05/10
Enter a year not in range. Example: 2150-05-09
Enter a month not in range. Example: 1999-13-05
Enter a day not in range. Example: 1999-05-50
Enter day but no month. Example: 1947-00-02
Enter month but no year. Example: 0000-15-00
4. Changing the field name:
Please read carefully
If you don't like the field name I used it is easy to change them using a simple text editor. Start Notepad,
select my entire post and copy/paste to Notepad. Click Edit>Replace or Ctrl+H to use the Replace tool.
Replace "Date: Released" with your own name but keep the suffix:
If you want to change the name to "Recorded"
Type in Find what: Date Released
Type in Replace with: Recorded
Press "Replace All" button
Read and follow the directions in Notepad
This will result you creating the following fields
Recorded
Recorded (Display)
Recorded (Day)
Recorded (Month)
Recorded (Month #)
Recorded (Year)
Change name to something completely different
You MUST find and replace each field name with the desired field name but you MUST find and replace the "Date: Replaced" field last.
So find and replace:
Date: Released (Display)
Date: Released (Day)
Date: Released (Month)
Date: Released (Month #)
Date: Released (Year)
Than find and replace:
Date: Released
5. Change how the date is displayed:
Just ask and I'll post the code.
If you find any errors please let me know.
-
6. Code Breakdown
Below are all the code used to make my custom date field. It is written in a way for easy reading. At least to me.
Date: Released (Day)
If(
IsEmpty([Date: Released])
,
,
If(
IsEqual(Right([Date: Released],2),00,0)
,
,
If(
IsRange(Right([Date: Released],2),1-9)
,
Right([Date: Released],1)
,
If(
IsRange(Right([Date: Released],2),10-31)
,
Right([Date: Released],2)
,
<ERROR: DAY>
)
)
)
)
Date: Released (Month)
If(
IsEmpty([Date: Released])
,
,
If(
IsEqual(Mid([Date: Released],5,2),00,0)
,
If(
IsEqual(Right([Date: Released],2),Mid([Date: Released],5,2),0)
,
,
<ERROR: DAY>
)
,
If(
IsRange(Mid([Date: Released],5,2),1-12)
,
If(IsEqual(Mid([Date: Released],5,2),01,0),January,)
If(IsEqual(Mid([Date: Released],5,2),02,0),February,)
If(IsEqual(Mid([Date: Released],5,2),03,0),March,)
If(IsEqual(Mid([Date: Released],5,2),04,0),April,)
If(IsEqual(Mid([Date: Released],5,2),05,0),May,)
If(IsEqual(Mid([Date: Released],5,2),06,0),June,)
If(IsEqual(Mid([Date: Released],5,2),07,0),July,)
If(IsEqual(Mid([Date: Released],5,2),08,0),August,)
If(IsEqual(Mid([Date: Released],5,2),09,0),September,)
If(IsEqual(Mid([Date: Released],5,2),10,0),October,)
If(IsEqual(Mid([Date: Released],5,2),11,0),November,)
If(IsEqual(Mid([Date: Released],5,2),12,0),December,)
,
<ERROR: MONTH>
)
)
)
Date: Released (Month #)
If(
IsEmpty([Date: Released])
,
,
If(
IsEqual(Mid([Date: Released],5,2),00,0)
,
If(
IsEqual(Right([Date: Released],2),Mid([Date: Released],5,2),0)
,
,
<ERROR: DAY>
)
,
If(
IsRange(Mid([Date: Released],5,2),1-9)
,
Mid([Date: Released],6,1)
,
If(
IsRange(Mid([Date: Released],5,2),10-12)
,
Mid([Date: Released],5,2)
,
<ERROR: MONTH>
)
)
)
)
Date: Released (Year)
If(
IsEmpty([Date: Released])
,
,
If(
IsEqual(Left([Date: Released],4),0000,0)
,
If(
IsEqual(Left([Date: Released],4),Mid([Date: Released],5,2)00,0)
,
,
<ERROR: MONTH>
)
,
If(
IsRange(Left([Date: Released],4),1-9)
,
Mid([Date: Released],3,1)
,
If(
IsRange(Left([Date: Released],4),10-99)
,
Mid([Date: Released],2,2)
,
If(
IsRange(Left([Date: Released],4),100-999)
,
Mid([Date: Released],1,3)
,
If(
IsRange(Left([Date: Released],4),1000-2099)
,
Left([Date: Released],4)
,
<ERROR: YEAR>
)
)
)
)
)
)
Date: Released (Display)
9/5/2010
If(
IsEmpty([Date: Released])
,
,
If(
I sEqual(Length([Date: Released])Mid([Date: Released],4,1)Mid([Date: Released],7,1),10--,0)
,
If(IsEmpty([Date: Released (Month #)]),,[Date: Released (Month #)]//)
If(IsEmpty([Date: Released (Day)]),,[Date: Released (Day)]//)
[Date: Released (Year)]
,
<ERROR: DATE>
)
)
2010/9/5
If(
IsEmpty([Date: Released])
,
,
If(
IsEqual(Length([Date: Released])Mid([Date: Released],4,1)Mid([Date: Released],7,1),10--,0)
,
[Date: Released (Year)]
If(IsEmpty([Date: Released (Month #)]),,//[Date: Released (Month #)])
If(IsEmpty([Date: Released (Day)]),,//[Date: Released (Day)])
,
<ERROR: DATE>
)
)
2010-9-5
If(
IsEmpty([Date: Released])
,
,
If(
IsEqual(Length([Date: Released])Mid([Date: Released],4,1)Mid([Date: Released],7,1),10--,0)
,
[Date: Released (Year)]
If(IsEmpty([Date: Released (Month #)]),,-[Date: Released (Month #)])
If(IsEmpty([Date: Released (Day)]),,-[Date: Released (Day)])
,
<ERROR: DATE>
)
)
9-5-2010
If(
IsEmpty([Date: Released])
,
,
If(
IsEqual(Length([Date: Released])Mid([Date: Released],4,1)Mid([Date: Released],7,1),10--,0)
,
If(IsEmpty([Date: Released (Month #)]),,[Date: Released (Month #)]-)
If(IsEmpty([Date: Released (Day)]),,[Date: Released (Day)]-)
[Date: Released (Year)]
,
<ERROR: DATE>
)
)
5 September 2010
If(
IsEmpty([Date: Released])
,
,
If(
IsEqual(Length([Date: Released])Mid([Date: Released],4,1)Mid([Date: Released],7,1),10--,0)
,
If(IsEmpty([Date: Released (Day)]),,[Date: Released (Day)] )
If(IsEmpty([Date: Released (Month)]),,[Date: Released (Month)] )
[Date: Released (Year)]
,
<ERROR: DATE>
)
)
5 Sep 2010
If(
IsEmpty([Date: Released])
,
,
If(
IsEqual(Length([Date: Released])Mid([Date: Released],4,1)Mid([Date: Released],7,1),10--,0)
,
If(IsEmpty([Date: Released (Day)]),,[Date: Released (Day)] )
If(IsEmpty([Date: Released (Month)]),,Left([Date: Released (Month)],3) )
[Date: Released (Year)]
,
<ERROR: DATE>
)
)
September 5, 2010
If(
IsEmpty([Date: Released])
,
,
If(IsEqual(Length([Date: Released])Mid([Date: Released],4,1)Mid([Date: Released],7,1),10--,0)
,
If(IsEmpty([Date: Released (Month)]),,[Date: Released (Month)] )
If(IsEmpty([Date: Released (Day)]),,[Date: Released (Day)]/, )
[Date: Released (Year)]
,
<ERROR: DATE>
)
)
Sep 5, 2010
If(
IsEmpty([Date: Released])
,
,
If(
IsEqual(Length([Date: Released])Mid([Date: Released],4,1)Mid([Date: Released],7,1),10--,0)
,
If(IsEmpty([Date: Released (Month)]),,Left([Date: Released (Month)],3) )
If(IsEmpty([Date: Released (Day)]),,[Date: Released (Day)]/, )
[Date: Released (Year)]
,
<ERROR: DATE>
)
)
-
I found an error in my coding. :( This has to do with all the codes under "Date: Released (Display)". I've fixed it and updated my post. ;D
-
Updated codes under "Date: Released (Display)" again. I'm pretty sure I got all the bugs out this time. ::)
Below is the list of code changes.
Year/Month#/Day
2010/9/5
2010/9
2010
If(IsEmpty([Date: Released]),,If(IsEqual(Length([Date: Released])Mid([Date: Released],4,1)Mid([Date: Released],7,1),10--,0),If(IsEmpty([Date: Released (Year)]),,[Date: Released (Year)])If(IsEmpty([Date: Released (Month #)]),,//)If(IsEmpty([Date: Released (Month #)]),,[Date: Released (Month #)])If(IsEmpty([Date: Released (Day)]),,//)If(IsEmpty([Date: Released (Day)]),,[Date: Released (Day)]),<ERROR: DATE>))
-
that is a nice piece of work. very educational.
what i was wondering. have you tried to accomplish the same using something like
listitem([date: released], 0,-)
to get for instance year,
listitem([date: released], 1,-)
for month
instead of all the remove and mid statements. was thinking it might end up shorter, but i might be wrong. maybe a listitem([date: released],-) to see if the dates are complete.
great post
:)
gab
-
Updated every code under "Date: Released (Display)" AGAIN ::) cut out unneeded code
-
that is a nice piece of work. very educational.
what i was wondering. have you tried to accomplish the same using something like
listitem([date: released], 0,-)
to get for instance year,
listitem([date: released], 1,-)
for month
instead of all the remove and mid statements. was thinking it might end up shorter, but i might be wrong. maybe a listitem([date: released],-) to see if the dates are complete.
great post
:)
gab
Wow, I didn't know I could use ListItem like that. Thanks for the info.
As to the code ending up being shorter, I have no idea. I'd have to rewrite the code with ListItem and compare. But first I need to play around with ListItem a bit.
-
Corrected the "Date: Released (Year)" code. Top post has been updated. Error would display if the year was set to 0000.
Date: Released (Year)
If(IsEmpty([Date: Released]),,If(IsEqual(Left([Date: Released],4),0000,0),If(IsEqual(Left([Date: Released],4),Mid([Date: Released],5,2)00,0),,<ERROR: MONTH>),If(IsRange(Left([Date: Released],4),1-9),Mid([Date: Released],3,1),If(IsRange(Left([Date: Released],4),10-99),Mid([Date: Released],2,2),If(IsRange(Left([Date: Released],4),100-999),Mid([Date: Released],1,3),If(IsRange(Left([Date: Released],4),1000-2099),Left([Date: Released],4),<ERROR: YEAR>))))))
-
that is a nice piece of work. very educational.
what i was wondering. have you tried to accomplish the same using something like
listitem([date: released], 0,-)
to get for instance year,
listitem([date: released], 1,-)
for month
instead of all the remove and mid statements. was thinking it might end up shorter, but i might be wrong. maybe a listitem([date: released],-) to see if the dates are complete.
great post
:)
gab
I rewrote a few codes and compared them and it seems it's shorter using the mid,right & left. Mostly due to the fact that listitem has more letters.
-
Added a section where I broke down the code for easy reading.
Made a correction to "Date: Released (Day)" code.
Added another "Date: Released (Display)" code.
Changed all the codes under "Date: Released (Display)" again because I got a phantom space appearing in front of the year, if only the year was displayed. Found out it was some bug that corrected itself with a restart of MC. But by then I had already changed all the codes and didn't feel like changing it back.
Updated directions to be clearer.
-
I have a similar problem with customized fields. I'm using MP3 Tag editor to input my data. I've created a few customized field which has worked nicely. however, there 's one field I can not get to populate.
Mixartist.
The info shows in the Mp3 Editor fields, but it doesn't show in the MC 14 field.
I've created several different variations (Mixed Artist, My Mixed Artist, etc.) with no success, the value will not show up.
Not an expert, but I've created a few fields in MC-14 and the data shows up with no problem.
Any idea how to create a new link between MP3 Editor and MC-14.
-
In order for MC to show a field it must first be in "Manage Library Fields".
Tools > Options > Library & Folders > Manage Library Fields...
If it's not in there you can create it by pressing the "Add New Field" button.