Schrift
[thread]4561[/thread]

editor in perl 0.3.n: hurra (Seite 56)

Leser: 4


<< |< 1 ... 53 54 55 56 57 58 59 ... 64 >| >> 631 Einträge, 64 Seiten
renee
 2007-11-28 15:24
#103230 #103230
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Ich habe mal wieder etwas rumgespielt:

Kephra::App::Menu :
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
        if ($menu_name eq '&insert_templates') {
                set_update($menu_id, sub {
                        my $cfg = $Kephra::config{file}{templates}; 
                        my $file = Kephra::Config::filepath($cfg->{directory}, $cfg->{file});
                        my $tmp = Kephra::Config::File::load( $file );
                        my @menu_data;
                        if (exists $tmp->{template}){
                                $tmp = Kephra::Config::Tree::_convert_node_2_AoH(\$tmp->{template});
                                for my $template ( @{$tmp} ) {
                                        my %item;
                                        $item{type} = 'item';
                                        $item{label}= $template->{name};
                                        $item{call} = sub {
                                                my $text = $template->{content};
                                                if( exists $template->{preprocess} ){
                                                        my $module = $template->{preprocess};
                                                        (my $file  = $module) =~ s!::!/!g;
                                                        $file      = $module . '.pm';
                                                        eval{
                                                                require $file;
                                                                my $sub = $module->can( 'preprocess' );
                                                                if( $sub ){
                                                                        $text = $sub->( $text );
                                                                }
                                                        };
                                                }
                                                Kephra::Edit::insert_text( $text );
                                        };
                                        $item{help}= $template->{description};
                                        push @menu_data, \%item; 
                                }
                        }
                        eval_data($menu_id, \@menu_data);
                });

                set_absolete($menu_id);

        }


Dann kann man in den Templates so etwas schreiben:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
<template>
name = Skript
description = Skript-Stub
preprocess = ReneeB
content = <<EOF
#!/usr/bin/perl

use strict;
use warnings;

my $filename = "$(file)";
EOF
</template>


In dem Modul ReneeB:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package ReneeB;

use strict;
use warnings;

sub preprocess{
        my ($text) = @_;
        
        my $file = Kephra::Document::_get_current_name();
        $text =~ s~(?!\\)\$\(file\)~$file~g;
        
        return $text;
}

1;
Und man ist nicht auf ein paar Variablen beschränkt und kommt sich nicht mit anderen Sprachen in die Quere.

Hintergrund warum ich das gemacht habe:

Ich habe mir ein Template für das POD von Module eingerichtet. Dabei habe ich Variablen für den Modulnamen, die Liste der Methoden etc. eingerichtet. So wird mir schon beim Einfügen des Templates etliche Voreinstellungen gemacht...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Antworten mit Zitat
lichtkind
 2007-11-28 15:39
#103231 #103231
User since
2004-03-22
5708 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
was für variablen brauchst du? ich glaub das können wir auch einfacher lösen :)
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
Antworten mit Zitat
renee
 2007-11-28 15:46
#103232 #103232
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Mit ganz einfachen Variablen ist es in den meisten Fällen nicht getan, da ich z.B. den Quellcode mit PPI analysieren um z.B. an alle Subroutinen-Namen etc. zu kommen.

An "Plain"-Variablen brauche ich vor allem den aktuell eingeloggten User, den Dateinamen, den kompletten Dateipfad...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Antworten mit Zitat
lichtkind
 2007-11-29 00:41
#103241 #103241
User since
2004-03-22
5708 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
ich glaub was du willst geht son bischen über einfaches templating hinaus, aber die 3 und einige mehr stell ich dir zu den nächsten versionen.

gut erst mal als kompromiss?

und du kannst mir gerne mal deine templates als file schicken und ich kann sie mit aufnehmen, dadurch sparst du dir kopiererei bei jedem update und ich kann schon mal paar sinnvolle templates anbieten.

die ppi daten kannst du eh später vom outlining modul bekommen. :)
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
Antworten mit Zitat
renee
 2007-11-29 10:38
#103244 #103244
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
lichtkind+2007-11-28 23:41:34--
ich glaub was du willst geht son bischen über einfaches templating hinaus, aber die 3 und einige mehr stell ich dir zu den nächsten versionen.

gut erst mal als kompromiss?


Naja, dann werde ich die neuen Versionen immer "patchen" müssen...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Antworten mit Zitat
lichtkind
 2007-11-29 12:52
#103252 #103252
User since
2004-03-22
5708 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
oder in ein modul auslagern, wird wirklich zeit das plugin/modul api steht. Läuft deine version schon?
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
Antworten mit Zitat
renee
 2007-11-29 12:53
#103253 #103253
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Ja, aber bei einem anderen Kunden...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Antworten mit Zitat
lichtkind
 2007-11-29 13:45
#103262 #103262
User since
2004-03-22
5708 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
was genau machst du da?
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
Antworten mit Zitat
renee
 2007-11-29 13:58
#103264 #103264
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
wo? beim Kunden oder bei kephra?
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Antworten mit Zitat
lichtkind
 2007-11-29 14:09
#103265 #103265
User since
2004-03-22
5708 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
in deinem code natürlich, was du bei kunden machst geht mich nichts an.
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
Antworten mit Zitat
<< |< 1 ... 53 54 55 56 57 58 59 ... 64 >| >> 631 Einträge, 64 Seiten



View all threads created 2005-10-21 17:46.