/[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

Contents of /bin/clipping.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1.1.1 - (show 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 # 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