/[clipping]/bin/clipping.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Annotation of /bin/clipping.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1.1.1 - (hide annotations) (vendor branch)
Fri Jan 16 22:46:52 2004 UTC (20 years, 2 months ago) by dpavlin
Branch: MAIN, phperl
CVS Tags: r20040116, HEAD
Changes since 1.1: +0 -0 lines
initial import of downloaded version

1 dpavlin 1.1 # Project: Clipping
2     # Author: Nelson Ferraz <nferraz@phperl.com>
3     # Date: 2003-08-14
4    
5     # Configuration
6    
7     # Modules
8     use lib "./lib";
9    
10     use c_customer;
11     use c_source;
12     use c_type;
13     use c_news;
14    
15     # Database configuration -- MODIFY THIS LINE!!!
16     %conf = (
17     db => "dbname=nferraz user=nferraz"
18     );
19    
20     # Valid actions
21    
22     %action = (
23     'print_source' => '&print_source',
24     'select_c_customer' => '&select_c_customer',
25     'view_c_customer' => '&view_c_customer',
26     'insert_c_customer' => '&insert_c_customer',
27     'update_c_customer' => '&update_c_customer',
28     'delete_c_customer' => '&delete_c_customer',
29     'download_c_customer' => '&download_c_customer',
30     'select_c_source' => '&select_c_source',
31     'view_c_source' => '&view_c_source',
32     'insert_c_source' => '&insert_c_source',
33     'update_c_source' => '&update_c_source',
34     'delete_c_source' => '&delete_c_source',
35     'download_c_source' => '&download_c_source',
36     'select_c_type' => '&select_c_type',
37     'view_c_type' => '&view_c_type',
38     'insert_c_type' => '&insert_c_type',
39     'update_c_type' => '&update_c_type',
40     'delete_c_type' => '&delete_c_type',
41     'download_c_type' => '&download_c_type',
42     'select_c_news' => '&select_c_news',
43     'view_c_news' => '&view_c_news',
44     'insert_c_news' => '&insert_c_news',
45     'update_c_news' => '&update_c_news',
46     'delete_c_news' => '&delete_c_news',
47     'download_c_news' => '&download_c_news'
48     );
49    
50     # Events (actions raised automatically by templates)
51     %event = (
52    
53     'before_pg_sel_c_customer' => '&before_pg_sel_c_customer',
54     'before_pg_ins_c_customer' => '&before_pg_ins_c_customer',
55     'before_pg_upd_c_customer' => '&before_pg_upd_c_customer',
56     'before_pg_detail_c_customer' => '&before_pg_detail_c_customer',
57    
58     'before_pg_sel_c_source' => '&before_pg_sel_c_source',
59     'before_pg_ins_c_source' => '&before_pg_ins_c_source',
60     'before_pg_upd_c_source' => '&before_pg_upd_c_source',
61     'before_pg_detail_c_source' => '&before_pg_detail_c_source',
62    
63     'before_pg_sel_c_type' => '&before_pg_sel_c_type',
64     'before_pg_ins_c_type' => '&before_pg_ins_c_type',
65     'before_pg_upd_c_type' => '&before_pg_upd_c_type',
66     'before_pg_detail_c_type' => '&before_pg_detail_c_type',
67    
68     'before_pg_sel_c_news' => '&before_pg_sel_c_news',
69     'before_pg_ins_c_news' => '&before_pg_ins_c_news',
70     'before_pg_upd_c_news' => '&before_pg_upd_c_news',
71     'before_pg_detail_c_news' => '&before_pg_detail_c_news',
72    
73     'before_count_c_news_by_c_source' => '&count_c_news_by_c_source',
74    
75     'before_count_c_news_by_c_customer' => '&count_c_news_by_c_customer',
76    
77     'before_count_c_news_by_c_type' => '&count_c_news_by_c_type',
78    
79     'beforePrint' => '&beforePrint'
80     );
81    
82     ####### ACTIONS #######
83    
84     sub print_source {
85     # Print template source code
86    
87     my $template = $in->{'template'};
88     if ($template =~ /(\w+)\.tt2/) {
89     $template = "../templates/$1.tt2";
90     } else {
91     die "Invalid template name '$template'\n";
92     }
93    
94     open (FILE,$template) or die "Can't read '$template': $!\n";
95     my @source = <FILE>;
96     close FILE;
97    
98     print "Content-type: text/html\n\n";
99     print "<PRE>";
100     foreach my $r (@source) {
101     $r =~ s/\</\&lt;/g;
102     $r =~ s/\>/\&gt;/g;
103     $r =~ s/\[\%(.+?)\%\]/\<span style\=\"background-color\:\#ffffcc\"\>\[\%$1\%\]\<\/span\>/g;
104    
105     if ($r =~ /(\w+\.tt2)/) {
106     my $tmpl = $1;
107     my $link = "<a href=\"$out->{'script_name'}?action=print_source&template=$tmpl\">$tmpl</a>";
108     $r =~ s/$tmpl/$link/g;
109     }
110     print $r;
111     }
112     print "</PRE>";
113     exit;
114     }
115    
116     ###
117    
118     sub select_c_customer {
119     my $c_customer = new c_customer(\$conn);
120     my @c_customer = $c_customer->select($in);
121    
122     $out->{'select_c_customer'} = \@c_customer;
123     }
124    
125     ###
126    
127     sub view_c_customer {
128     my $c_customer = new c_customer(\$conn);
129     my @view_c_customer = $c_customer->view($in);
130    
131     $out->{'view_c_customer'} = \@view_c_customer;
132     }
133    
134     ###
135    
136    
137     sub insert_c_customer {
138     my $c_customer = new c_customer(\$conn);
139     $c_customer->insert($in);
140     &_clean_c_customer_params;
141     }
142    
143     ###
144    
145     sub update_c_customer {
146     my $c_customer = new c_customer(\$conn);
147     $c_customer->update($in);
148     &_clean_c_customer_params;
149     }
150    
151     ###
152    
153     sub delete_c_customer {
154     my $c_customer = new c_customer(\$conn);
155     $c_customer->delete($in);
156     &_clean_c_customer_params;
157     }
158    
159     ###
160    
161     sub download_c_customer {
162     # Print CSV file and exit
163     my $c_customer = new c_customer(\$conn);
164     my @view_c_customer = $c_customer->view($in);
165    
166     my @keys = sort keys %{$view_c_customer[0]};
167    
168     print "Content-type: text/plain\n\n";
169    
170     print "# ", join (";", @keys), "\n"; # "key1","key2", ... "keyn"
171    
172     foreach my $c_customer (@view_c_customer) {
173     my @values = ();
174     foreach my $key (@keys) {
175     my $value = $c_customer->{$key};
176     $value =~ s/\t/\\t/gs;
177     $value =~ s/\r/\\r/gs;
178     $value =~ s/\n/\\n/gs;
179     $value =~ s/\;/\%3B/gs;
180     push @values, $value;
181     }
182     print join (";", @values), "\n";
183     }
184    
185     exit;
186    
187     }
188    
189     ###
190    
191     sub _clean_c_customer_params {
192     # clean input params
193     delete $in->{'c_customer_id'};
194     delete $in->{'c_customer_name'};
195     delete $in->{'c_customer_phone'};
196     delete $in->{'c_customer_email'};
197     delete $in->{'c_customer_notes'};
198     }
199    
200     ###
201    
202    
203    
204    
205     sub select_c_source {
206     my $c_source = new c_source(\$conn);
207     my @c_source = $c_source->select($in);
208    
209     $out->{'select_c_source'} = \@c_source;
210     }
211    
212     ###
213    
214     sub view_c_source {
215     my $c_source = new c_source(\$conn);
216     my @view_c_source = $c_source->view($in);
217    
218     $out->{'view_c_source'} = \@view_c_source;
219     }
220    
221     ###
222    
223    
224     sub insert_c_source {
225     my $c_source = new c_source(\$conn);
226     $c_source->insert($in);
227     &_clean_c_source_params;
228     }
229    
230     ###
231    
232     sub update_c_source {
233     my $c_source = new c_source(\$conn);
234     $c_source->update($in);
235     &_clean_c_source_params;
236     }
237    
238     ###
239    
240     sub delete_c_source {
241     my $c_source = new c_source(\$conn);
242     $c_source->delete($in);
243     &_clean_c_source_params;
244     }
245    
246     ###
247    
248     sub download_c_source {
249     # Print CSV file and exit
250     my $c_source = new c_source(\$conn);
251     my @view_c_source = $c_source->view($in);
252    
253     my @keys = sort keys %{$view_c_source[0]};
254    
255     print "Content-type: text/plain\n\n";
256    
257     print "# ", join (";", @keys), "\n"; # "key1","key2", ... "keyn"
258    
259     foreach my $c_source (@view_c_source) {
260     my @values = ();
261     foreach my $key (@keys) {
262     my $value = $c_source->{$key};
263     $value =~ s/\t/\\t/gs;
264     $value =~ s/\r/\\r/gs;
265     $value =~ s/\n/\\n/gs;
266     $value =~ s/\;/\%3B/gs;
267     push @values, $value;
268     }
269     print join (";", @values), "\n";
270     }
271    
272     exit;
273    
274     }
275    
276     ###
277    
278     sub _clean_c_source_params {
279     # clean input params
280     delete $in->{'c_source_id'};
281     delete $in->{'c_source_description'};
282     delete $in->{'c_source_notes'};
283     }
284    
285     ###
286    
287    
288    
289    
290     sub select_c_type {
291     my $c_type = new c_type(\$conn);
292     my @c_type = $c_type->select($in);
293    
294     $out->{'select_c_type'} = \@c_type;
295     }
296    
297     ###
298    
299     sub view_c_type {
300     my $c_type = new c_type(\$conn);
301     my @view_c_type = $c_type->view($in);
302    
303     $out->{'view_c_type'} = \@view_c_type;
304     }
305    
306     ###
307    
308    
309     sub insert_c_type {
310     my $c_type = new c_type(\$conn);
311     $c_type->insert($in);
312     &_clean_c_type_params;
313     }
314    
315     ###
316    
317     sub update_c_type {
318     my $c_type = new c_type(\$conn);
319     $c_type->update($in);
320     &_clean_c_type_params;
321     }
322    
323     ###
324    
325     sub delete_c_type {
326     my $c_type = new c_type(\$conn);
327     $c_type->delete($in);
328     &_clean_c_type_params;
329     }
330    
331     ###
332    
333     sub download_c_type {
334     # Print CSV file and exit
335     my $c_type = new c_type(\$conn);
336     my @view_c_type = $c_type->view($in);
337    
338     my @keys = sort keys %{$view_c_type[0]};
339    
340     print "Content-type: text/plain\n\n";
341    
342     print "# ", join (";", @keys), "\n"; # "key1","key2", ... "keyn"
343    
344     foreach my $c_type (@view_c_type) {
345     my @values = ();
346     foreach my $key (@keys) {
347     my $value = $c_type->{$key};
348     $value =~ s/\t/\\t/gs;
349     $value =~ s/\r/\\r/gs;
350     $value =~ s/\n/\\n/gs;
351     $value =~ s/\;/\%3B/gs;
352     push @values, $value;
353     }
354     print join (";", @values), "\n";
355     }
356    
357     exit;
358    
359     }
360    
361     ###
362    
363     sub _clean_c_type_params {
364     # clean input params
365     delete $in->{'c_type_id'};
366     delete $in->{'c_type_description'};
367     delete $in->{'c_type_notes'};
368     }
369    
370     ###
371    
372    
373    
374    
375     sub select_c_news {
376     my $c_news = new c_news(\$conn);
377     my @c_news = $c_news->select($in);
378    
379     $out->{'select_c_news'} = \@c_news;
380     }
381    
382     ###
383    
384     sub view_c_news {
385     my $c_news = new c_news(\$conn);
386     my @view_c_news = $c_news->view($in);
387    
388     $out->{'view_c_news'} = \@view_c_news;
389     }
390    
391     ###
392    
393    
394     sub insert_c_news {
395     my $c_news = new c_news(\$conn);
396     $c_news->insert($in);
397     &_clean_c_news_params;
398     }
399    
400     ###
401    
402     sub update_c_news {
403     my $c_news = new c_news(\$conn);
404     $c_news->update($in);
405     &_clean_c_news_params;
406     }
407    
408     ###
409    
410     sub delete_c_news {
411     my $c_news = new c_news(\$conn);
412     $c_news->delete($in);
413     &_clean_c_news_params;
414     }
415    
416     ###
417    
418     sub download_c_news {
419     # Print CSV file and exit
420     my $c_news = new c_news(\$conn);
421     my @view_c_news = $c_news->view($in);
422    
423     my @keys = sort keys %{$view_c_news[0]};
424    
425     print "Content-type: text/plain\n\n";
426    
427     print "# ", join (";", @keys), "\n"; # "key1","key2", ... "keyn"
428    
429     foreach my $c_news (@view_c_news) {
430     my @values = ();
431     foreach my $key (@keys) {
432     my $value = $c_news->{$key};
433     $value =~ s/\t/\\t/gs;
434     $value =~ s/\r/\\r/gs;
435     $value =~ s/\n/\\n/gs;
436     $value =~ s/\;/\%3B/gs;
437     push @values, $value;
438     }
439     print join (";", @values), "\n";
440     }
441    
442     exit;
443    
444     }
445    
446     ###
447    
448     sub _clean_c_news_params {
449     # clean input params
450     delete $in->{'c_news_id'};
451     delete $in->{'c_source_fk'};
452     delete $in->{'c_customer_fk'};
453     delete $in->{'c_type_fk'};
454     delete $in->{'c_news_section'};
455     delete $in->{'c_news_page'};
456     delete $in->{'c_news_title'};
457     delete $in->{'c_news_abstract'};
458     delete $in->{'c_news_full_text'};
459     }
460    
461     ###
462    
463    
464     sub count_c_news_by_c_source {
465     my $c_news = new c_news(\$conn);
466     my @count_c_news_by_c_source = $c_news->count_by_c_source($in);
467     $out->{'count_c_news_by_c_source'} = \@count_c_news_by_c_source;
468     &_clean_c_news_params;
469     }
470    
471     ###
472    
473     sub count_c_news_by_c_customer {
474     my $c_news = new c_news(\$conn);
475     my @count_c_news_by_c_customer = $c_news->count_by_c_customer($in);
476     $out->{'count_c_news_by_c_customer'} = \@count_c_news_by_c_customer;
477     &_clean_c_news_params;
478     }
479    
480     ###
481    
482     sub count_c_news_by_c_type {
483     my $c_news = new c_news(\$conn);
484     my @count_c_news_by_c_type = $c_news->count_by_c_type($in);
485     $out->{'count_c_news_by_c_type'} = \@count_c_news_by_c_type;
486     &_clean_c_news_params;
487     }
488    
489     ###
490    
491    
492    
493     ####### EVENTS #######
494    
495     sub before_pg_sel_c_customer {
496     # view_c_customer
497    
498     my $c_customer = new c_customer(\$conn);
499     my @view_c_customer = $c_customer->view($in);
500    
501    
502    
503     if ($#view_c_customer == -1) {
504     &Print_template ('pg_ins_c_customer');
505     exit;
506     } elsif ($#view_c_customer == 0) {
507     $in->{"c_customer_id"} = $view_c_customer[0]->{"c_customer_id"};
508     &Print_template ('pg_detail_c_customer');
509     exit;
510     }
511    
512     $out->{'view_c_customer'} = \@view_c_customer;
513     }
514    
515     ###
516    
517     sub before_pg_ins_c_customer {
518     # select
519    
520    
521     }
522    
523     ###
524    
525     sub before_pg_upd_c_customer {
526     # select c_customer
527    
528     &select_c_customer;
529     }
530    
531     ###
532    
533     sub before_pg_detail_c_customer {
534     # select c_customer
535    
536     &view_c_customer;
537     &view_c_news;
538     }
539    
540     ###
541    
542    
543     sub before_pg_sel_c_source {
544     # view_c_source
545    
546     my $c_source = new c_source(\$conn);
547     my @view_c_source = $c_source->view($in);
548    
549    
550    
551     if ($#view_c_source == -1) {
552     &Print_template ('pg_ins_c_source');
553     exit;
554     } elsif ($#view_c_source == 0) {
555     $in->{"c_source_id"} = $view_c_source[0]->{"c_source_id"};
556     &Print_template ('pg_detail_c_source');
557     exit;
558     }
559    
560     $out->{'view_c_source'} = \@view_c_source;
561     }
562    
563     ###
564    
565     sub before_pg_ins_c_source {
566     # select
567    
568    
569     }
570    
571     ###
572    
573     sub before_pg_upd_c_source {
574     # select c_source
575    
576     &select_c_source;
577     }
578    
579     ###
580    
581     sub before_pg_detail_c_source {
582     # select c_source
583    
584     &view_c_source;
585     &view_c_news;
586     }
587    
588     ###
589    
590    
591     sub before_pg_sel_c_type {
592     # view_c_type
593    
594     my $c_type = new c_type(\$conn);
595     my @view_c_type = $c_type->view($in);
596    
597    
598    
599     if ($#view_c_type == -1) {
600     &Print_template ('pg_ins_c_type');
601     exit;
602     } elsif ($#view_c_type == 0) {
603     $in->{"c_type_id"} = $view_c_type[0]->{"c_type_id"};
604     &Print_template ('pg_detail_c_type');
605     exit;
606     }
607    
608     $out->{'view_c_type'} = \@view_c_type;
609     }
610    
611     ###
612    
613     sub before_pg_ins_c_type {
614     # select
615    
616    
617     }
618    
619     ###
620    
621     sub before_pg_upd_c_type {
622     # select c_type
623    
624     &select_c_type;
625     }
626    
627     ###
628    
629     sub before_pg_detail_c_type {
630     # select c_type
631    
632     &view_c_type;
633     &view_c_news;
634     }
635    
636     ###
637    
638    
639     sub before_pg_sel_c_news {
640     # view_c_news
641    
642     my $c_news = new c_news(\$conn);
643     my @view_c_news = $c_news->view($in);
644    
645     &select_c_source;
646     &select_c_customer;
647     &select_c_type;
648    
649     if ($#view_c_news == -1) {
650     &Print_template ('pg_ins_c_news');
651     exit;
652     } elsif ($#view_c_news == 0) {
653     $in->{"c_news_id"} = $view_c_news[0]->{"c_news_id"};
654     &Print_template ('pg_detail_c_news');
655     exit;
656     }
657    
658     $out->{'view_c_news'} = \@view_c_news;
659     }
660    
661     ###
662    
663     sub before_pg_ins_c_news {
664     # select c_source, c_customer, c_type
665    
666     &select_c_source;
667     &select_c_customer;
668     &select_c_type;
669     }
670    
671     ###
672    
673     sub before_pg_upd_c_news {
674     # select c_news, c_source, c_customer, c_type
675    
676     &select_c_news;
677     &select_c_source;
678     &select_c_customer;
679     &select_c_type;
680     }
681    
682     ###
683    
684     sub before_pg_detail_c_news {
685     # select c_news, c_source, c_customer, c_type
686    
687     &view_c_news;
688    
689     }
690    
691     ###
692    
693    
694    
695     __END__
696    
697     Clipping - Copyright 2003 PhPerl.com
698    
699     This program is free software; you can redistribute it and/or
700     modify it under the terms of the GNU General Public License
701     as published by the Free Software Foundation; either version 2
702     of the License, or (at your option) any later version.
703    
704     This program is distributed in the hope that it will be useful,
705     but WITHOUT ANY WARRANTY; without even the implied warranty of
706     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
707    
708     See the GNU General Public License for more details:
709    
710     http://www.gnu.org/copyleft/gpl.html

  ViewVC Help
Powered by ViewVC 1.1.26