Thread Innerhalb Hash Def auf Keys zugreifen (42 answers)
Opened by bianca at 2013-09-08 06:08

sitescriptor
 2013-09-09 23:02
#170059 #170059
User since
2009-08-09
105 Artikel
BenutzerIn
[default_avatar]
Hallo, Bianca,
komme nicht ganz mit, aber habe das Gefühl vielleicht schon ein ähnliches Problem formuliert zu haben:
more (23.1kb):
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# Im Modul
    $Self->{'MetaHash'}     = 
        'artikel' =>    
            {
            "id"        =>  
                {
                '_proto_'       =>  "idunsigned",
                },
            "reldate"       =>          
                {
                '_proto_'       =>  "date",
                '_default_'     =>  '0000-00-00',
                },
            "typ"           =>  
                {
                '_proto_'       =>  "enum",
                '_default_'     =>  "unknown",
                'set'           =>  ['unknown','article','page','quelle','keyword'],
                },
            "autor"         =>  
                {
                '_proto_'       =>  "textonly",
                'length'        =>  40,
                '_default_'     =>  "gf",
                },
            }
        };


# config systemweit erreichbar
my %META_protos =
        (
        'idunsigned' =>
            {
            '_select_'      =>  ' _tabfield_ ',             
            '_isindex_'     =>  'true',         
            '_noinsert_'    =>  'true',         
            '_noupdate_'    =>  'true',         
            },
        'date' =>
            {
            '_select_'      =>  " _tabfield_ ",
            '_default_'     =>  sub { Sitescriptor::Core::Libs::Data2html::get_sqldate( @_ ); },
            '_export_'      =>  sub { Sitescriptor::Core::Libs::Data2html::export_date( @_ ); },

            'year'          =>  {'_select_' =>  ' YEAR( _tabfield_ ) ',
                                '_default_' =>  sub { Sitescriptor::Core::Libs::Data2html::get_now_year( @_ ); }},
            'month'         =>  {'_select_' =>  ' MONTH( _tabfield_ ) ',
                                '_default_' =>  sub { Sitescriptor::Core::Libs::Data2html::get_now_month( @_ ); }},
            'dayofyear'     =>  {'_select_' =>  ' DAYOFYEAR( _tabfield_ ) ',
                                '_default_' =>  sub { Sitescriptor::Core::Libs::Data2html::get_now_dayofyear( @_ ); }},
            'dayofmonth'    =>  {'_select_' =>  ' DAYOFMONTH( _tabfield_ ) ',
                                '_default_' =>  sub { Sitescriptor::Core::Libs::Data2html::get_now_dayofmonth( @_ ); }},
            'dayofweek'     =>  {'_select_' =>  ' DAYOFWEEK( _tabfield_ ) ',
                                '_default_' =>  sub { Sitescriptor::Core::Libs::Data2html::get_now_dayofweek( @_ ); },
                                'day-de'    =>  {'_select_' =>  ' ELT( DAYOFWEEK( _tabfield_ ), 
                                    "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag" ) ',
                                    },
            'diffyear'      =>  {'_select_' =>  ' (YEAR(NOW()) - YEAR( _tabfield_ ))',},                
            'month_de'      =>  {'_select_' =>  ' ELT( MONTH( _tabfield_ ), "Januar", "Februar", "Maerz", "April", "Mai", "Juni", "Juli" , "August" , "September" , "Oktober" , "November" , "Dezember" )  ',},
            'date-combined-de'=>{'_select_' =>  ' DATE_FORMAT( _tabfield_ , "%d.%M.%Y" ) ',},
            'date-short-de' =>  {'_render_' =>  ' --date-short-de:_import_-- ','_select_'   =>  ' DATE_FORMAT( _tabfield_ , "%d.%m.%Y" ) ',},
            },
        'textonly' =>
            {
            '_select_'      =>  " _tabfield_ ",
            '_render_'      =>  sub { Sitescriptor::Core::Libs::Renderhtml::mysqltext_to_html( @_ ); },
            '_default_'     =>  "",
            },
        'set'           =>
            {
            '_select_'      =>  " _tabfield_ ",
            },
        );

Zum Beispiel: Ich suche für ein leeres neues Formular den Defaultwert "_default_" von "artikel.reldate.year" und erhalte '2013', weil '_proto_' auf den Prototypen "date" verweist.
Wenn ich nur die Jahreszahl aus der Datenbank haben will, frage ich nach "_select_" von "artikel.reldate.year" und erhalte ' YEAR( _tabfield_ ) '. '_tabfield_' wird mit realem Tabellennamen und Feldnamen ersetzt 'ep_artikel.reldate', 'artikel'.

Vielleicht kann man das auf Dein Problem übertragen oder ich hab´s gar nicht kapiert...

View full thread Innerhalb Hash Def auf Keys zugreifen