Re: [Catalyst] CMS
Hia, We are developing and using a Catalyst Based CMS called OzinoCMS http://wiki.ozino.com/bin/view/OzinoCMS/WebHome Sample Website: http://www.tpico.ir/ but for some financial reasons the project is paused. you can take a look at source code, but I think we have to redesign recode some parts. Davood Firoozian On 8/23/07, Matt Rosin [EMAIL PROTECTED] wrote: Catalyst makes it easy to build a site with lots of little modules of content composing a single page - the actual content (words/images) being scattered in static apache directories, the database, the templates folders and the code. At some point a content management system of some type is needed. While I hand-roll this sort of thing now it might be nice to have a standard module with perhaps a rich editor and HTML form, or it might be more powerful with the ability to manage various stories/images on disk or db, and integrate uploads even, like some of the portal building systems do. Perhaps one integrated well with Catalyst could also allow the user to select template files to use in a given part of the screen to replace not just on a story basis but on a div basis. I'd just like to ask if anyone uses a CMS (beyond just hand-rolling for each instance) or has been seeing similar needs. I think much development time is spent on creating object management interfaces which perhaps could be boiled down to some repetitive functionality. Matt Rosin ___ List: Catalyst@lists.rawmode.org Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/catalyst@lists.rawmode.org/ Dev site: http://dev.catalyst.perl.org/ -- Kindly Regards Davood Firoozian Proud Developer Ozino Group http://www.ozino.com ___ List: Catalyst@lists.rawmode.org Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/catalyst@lists.rawmode.org/ Dev site: http://dev.catalyst.perl.org/
Re: [Catalyst] CMS
Can you tell me if this CMS can be used only with the keyboard? (with no mouse) If somebody knows a CMS that is accessible only with the keyboard and which can create tables and links by someone that doesn't know HTML, please tell me. Octavian - Original Message - From: Davood Firoozian To: The elegant MVC web framework Sent: Wednesday, August 29, 2007 1:19 PM Subject: Re: [Catalyst] CMS Hia, We are developing and using a Catalyst Based CMS called OzinoCMS http://wiki.ozino.com/bin/view/OzinoCMS/WebHome Sample Website: http://www.tpico.ir/ but for some financial reasons the project is paused. you can take a look at source code, but I think we have to redesign recode some parts. Davood Firoozian On 8/23/07, Matt Rosin [EMAIL PROTECTED] wrote: Catalyst makes it easy to build a site with lots of little modules of content composing a single page - the actual content (words/images) being scattered in static apache directories, the database, the templates folders and the code. At some point a content management system of some type is needed. While I hand-roll this sort of thing now it might be nice to have a standard module with perhaps a rich editor and HTML form, or it might be more powerful with the ability to manage various stories/images on disk or db, and integrate uploads even, like some of the portal building systems do. Perhaps one integrated well with Catalyst could also allow the user to select template files to use in a given part of the screen to replace not just on a story basis but on a div basis. I'd just like to ask if anyone uses a CMS (beyond just hand-rolling for each instance) or has been seeing similar needs. I think much development time is spent on creating object management interfaces which perhaps could be boiled down to some repetitive functionality. Matt Rosin ___ List: Catalyst@lists.rawmode.org Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/catalyst@lists.rawmode.org/ Dev site: http://dev.catalyst.perl.org/ -- Kindly Regards Davood Firoozian Proud Developer Ozino Group http://www.ozino.com -- ___ List: Catalyst@lists.rawmode.org Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/catalyst@lists.rawmode.org/ Dev site: http://dev.catalyst.perl.org/ ___ List: Catalyst@lists.rawmode.org Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/catalyst@lists.rawmode.org/ Dev site: http://dev.catalyst.perl.org/
Re: [Catalyst] About output in a browser
prints neatly, every line of the directory listing on a separate line in the browser: sub getFiles() { my ( $self, $c ) = @_; print getFiles() !; @{$c-stash-{files}} = `ls -l /home/frodo/`; } It looks like adding a print statement will throw the output into literal mode of some sort. Anyhow, that's not how the output should be made, since a view should be used and at least a minimal tt file. When I chomp the directory lines otained with 'ls -l' and use a simple tt file using pre and a view, everything is fine. But if I add a print statement in the model's method, then even the pre tags are shown in the browser. So since I learn Catalyst and I should be using views, then this behaviour of a print statement is not very important. Cheers, Al ___ List: Catalyst@lists.rawmode.org Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/catalyst@lists.rawmode.org/ Dev site: http://dev.catalyst.perl.org/
Re: [Catalyst] About output in a browser
On 28/08/2007, lanas [EMAIL PROTECTED] wrote: Hi folks, In understanding how Catalyst work and how to work with , I'm making very simple stuff, like having a model that only returns a directory listing. I found something curious before starting to make a view. Every line of the directory listing, obtained with 'ls -l', will be chomped if I do not put a print String ! just before it in the model, like this: prints chomped lines, which results in unstructured output in the browser: MyApp01/lib/MyApp01/Model/MyApp01Model.pm sub getFiles() { my ( $self, $c ) = @_; @{$c-stash-{files}} = `ls -l /home/user/`; } prints neatly, every line of the directory listing on a separate line in the browser: sub getFiles() { my ( $self, $c ) = @_; print getFiles() !; @{$c-stash-{files}} = `ls -l /home/frodo/`; } 'getFiles()!' will also get printed in the browser, but I presume this is OK. The output is in the following. There are no view defined at the moment. MyApp01/lib/MyApp01/Controller/Root.pm sub end : ActionClass('RenderView') { my ( $self, $c ) = @_; if (defined $c-stash-{files}) { $c-response-body( @{$c-stash-{files}} ) } else { $c-response-body(NO DATA !); } } Can someone tell me why the output of the directory listing is not the same due to, apparently, the poresence of a print statement ? Are you setting this anywhere...? $c-res-content_type('text/plain'); If not, I think if you view the page source in the browser, you'll see that the linebreaks are there - but the browser is ignoring them because it's treating it as HTML. If you change your output line to: $c-response-body( join br, @{$c-stash-{files}} ) then I think you'll find it looks as you expect. (Not that I'm recommending this as a solution - I definitely recommend using a templating View for most common uses). If you run the scripts/myapp_test.pl file from a command line, you can easily see the exact output that would be sent to your browser. Carl ___ List: Catalyst@lists.rawmode.org Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/catalyst@lists.rawmode.org/ Dev site: http://dev.catalyst.perl.org/
Re: [Catalyst] CMS
I don't think so. but may I ask why you are asking that ? On 8/29/07, Octavian Rasnita [EMAIL PROTECTED] wrote: Can you tell me if this CMS can be used only with the keyboard? (with no mouse) If somebody knows a CMS that is accessible only with the keyboard and which can create tables and links by someone that doesn't know HTML, please tell me. Octavian - Original Message - *From:* Davood Firoozian [EMAIL PROTECTED] *To:* The elegant MVC web framework catalyst@lists.rawmode.org *Sent:* Wednesday, August 29, 2007 1:19 PM *Subject:* Re: [Catalyst] CMS Hia, We are developing and using a Catalyst Based CMS called OzinoCMS http://wiki.ozino.com/bin/view/OzinoCMS/WebHome Sample Website: http://www.tpico.ir/ but for some financial reasons the project is paused. you can take a look at source code, but I think we have to redesign recode some parts. Davood Firoozian On 8/23/07, Matt Rosin [EMAIL PROTECTED] wrote: Catalyst makes it easy to build a site with lots of little modules of content composing a single page - the actual content (words/images) being scattered in static apache directories, the database, the templates folders and the code. At some point a content management system of some type is needed. While I hand-roll this sort of thing now it might be nice to have a standard module with perhaps a rich editor and HTML form, or it might be more powerful with the ability to manage various stories/images on disk or db, and integrate uploads even, like some of the portal building systems do. Perhaps one integrated well with Catalyst could also allow the user to select template files to use in a given part of the screen to replace not just on a story basis but on a div basis. I'd just like to ask if anyone uses a CMS (beyond just hand-rolling for each instance) or has been seeing similar needs. I think much development time is spent on creating object management interfaces which perhaps could be boiled down to some repetitive functionality. Matt Rosin ___ List: Catalyst@lists.rawmode.org Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/catalyst@lists.rawmode.org/ Dev site: http://dev.catalyst.perl.org/ -- Kindly Regards Davood Firoozian Proud Developer Ozino Group http://www.ozino.com -- ___ List: Catalyst@lists.rawmode.org Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/catalyst@lists.rawmode.org/ Dev site: http://dev.catalyst.perl.org/ ___ List: Catalyst@lists.rawmode.org Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/catalyst@lists.rawmode.org/ Dev site: http://dev.catalyst.perl.org/ -- Kindly Regards Davood Firoozian Proud Developer Ozino Group http://www.ozino.com ___ List: Catalyst@lists.rawmode.org Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/catalyst@lists.rawmode.org/ Dev site: http://dev.catalyst.perl.org/
Re: [Catalyst] About output in a browser
On Aug 28, 2007, at 6:52 PM, lanas wrote: Can someone tell me why the output of the directory listing is not the same due to, apparently, the poresence of a print statement ? The print statement is being output before the document headers are. Without the print statement, you are getting a content-type of text/ html, which causes everything to run together since the lines are separated with newlines instead of br tags. When you add the print statement, you are preventing the headers from being delivered correctly to the browser, and either the web server or the browser is deciding that since you didn't specify a content-type, it's going to default to text/plain. -- Jason Kohles [EMAIL PROTECTED] http://www.jasonkohles.com/ A witty saying proves nothing. -- Voltaire ___ List: Catalyst@lists.rawmode.org Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/catalyst@lists.rawmode.org/ Dev site: http://dev.catalyst.perl.org/
[Catalyst] Attribute::Handlers wont work in own classes under catalyst
OK, first the problem: we have build some classes with Attribute::Handlers (was inspired from Attribute::Property) This works realy fine! after a few tests we gone use this classes under catalyst ... and ... dont work :-/ under catalyst our classes dont use Attribute::Handlers :-/ we declare UNIVERSAL::Property and then use sub nondigit : Property { defined !m{[0-9]} } (see the code) then you can call: $obj-nondigit(4) and it will croak or $obj-nondigit(car) and it will set the object-property nondigit to car. under catalyst he ignore the redefined sub in UNIVERSAL::Property ... no, he dont call UNIVERSAL::Property to redefine sub :-/ MfG Felix Ostmann OK, here the code, you can test it with (works): perl -d -MData::Dumper -MmyExample -e 'my $e = myExample-create(); $e-nondigit(car); print Dumper($e);' or perl -d -MData::Dumper -MmyExample -e 'my $e = myExample-create(); $e-nondigit(4); print Dumper($e);' under catalyst (wont work): sub default : Private { my ($self, $c) = @_; use myExample; use Data::Dumper; my $e = myExample-create(); $e-nondigit(car); $c-response-body( Dumper($e) ); } CODE: package myExample; use strict; use warnings; use 5.006; use Attribute::Handlers; use Carp qw/carp croak/; $Carp::Internal{q/Attribute::Handlers/}++; # may we be forgiven for our sins $Carp::Internal{+__PACKAGE__}++; sub UNIVERSAL::Property : ATTR(CODE) { my (undef, $self_glob, $check_code) = @_; ref($self_glob) or croak Cannot use property attribute with anonymous sub; my $property = *$self_glob{NAME}; defined($self_glob) or undef $check_code; no warnings 'redefine'; *$self_glob = sub { (my $self, local $_) = @_; if( @_ == 1 ) { exists($self-{_property}-{_current}-{$property}) or croak Property $property not loaded; return $self-{_property}-{_current}-{$property}; } if( @_ == 2 ) { ref($_) and croak Invalid value for $property property, no refs; # Property wurde geladen, sonst Abbruch $self-{_in_storage} !exists($self-{_property}-{_storage}-{$property}) and croak Property $property not loaded; my $value = $_; # überprüfe neuen Wert auf Gültigkeit, sonst Abbruch defined($check_code) !$check_code-($self, $_) and croak Invalid value for $property property; if( !defined($self-{_in_storage}) ) { # status schammiges Objekt, dann alles laden als from storage # ist neuer Wert != alter Wert, warnung ausgeben if( defined($_) ^ defined($value) or defined($_) $_ ne $value ) { carp Property $property from database are inconsistent; $self-{_property}-{_storage}-{$property} = $value; } else { $self-{_property}-{_storage}-{$property} = $_; } } # wenn Objekt in der Datenbank elsif( $self-{_in_storage} ) { # lösche dirty-Status, wird neu berechnet delete($self-{_property}-{_dirty}-{$property}); # ist neuer Wert != alter Wert, dirty-Status neu setzten defined($_) ^ defined($self-{_property}-{_storage}-{$property}) and $self-{_property}-{_dirty}-{$property} = undef; # ist neuer Wert != alter Wert, dirty-Status neu setzten defined($_) $_ ne $self-{_property}-{_storage}-{$property} and $self-{_property}-{_dirty}-{$property} = undef; } # wenn nicht in der Datenbank else { # auf jeden Fall auf dirty setzten $self-{_property}-{_dirty}-{$property} = undef } return $self-{_property}-{_current}-{$property} = $_; } croak Too many arguments for $property method; }; } sub new { my ($class, @args) = @_; @args and croak q{Can't call method new with arguments}; my $self = { _property = { _current = {}, _storage = {}, _dirty = {}, }, _in_storage = undef, }; bless($self, $class); return $self; } sub create { my ($class, @args) = @_; @args % 2 and croak wrong count of arguments; my %customer_row = @args; # erstelle Objekt und setzte übergebene Parameter my $self = $class-new(); $self-in_storage(0); $self-$_($customer_row{$_}) for( keys(%customer_row) ); return $self; } sub in_storage { my ($self, $in_storage) = @_; if( @_ == 1 ) { return $self-{_in_storage}; } if( @_ == 2 ) { if( !defined($in_storage) ) { $self-{_property}-{_storage}-{$_} = $self-{_property}-{_current}-{$_} for( $self-is_changed ); $self-{_property}-{_dirty} = {}; } return $self-{_in_storage} =
Re: [Catalyst] Attribute::Handlers wont work in own classes under catalyst
Felix Antonius Wilhelm Ostmann wrote: we have build some classes with Attribute::Handlers (was inspired from Attribute::Property) This works realy fine! after a few tests we gone use this classes under catalyst ... and ... dont work :-/ under catalyst our classes dont use Attribute::Handlers :-/ we declare UNIVERSAL::Property and then use sub nondigit : Property { defined !m{[0-9]} } (see the code) then you can call: $obj-nondigit(4) and it will croak or $obj-nondigit(car) and it will set the object-property nondigit to car. I'm gonna stop right here because it seems like you're trying to re-invent Moose in some round-about way. Take a look at the simple Point example [1] plus the docs for TypeConstraints [2]. I'd trying to help with your existing code, but it makes my eyes bleed. :) -Brian [1] http://search.cpan.org/~stevan/Moose-0.25/lib/Moose/Cookbook/Recipe1.pod [2] http://search.cpan.org/~stevan/Moose-0.25/lib/Moose/Util/TypeConstraints.pm ___ List: Catalyst@lists.rawmode.org Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/catalyst@lists.rawmode.org/ Dev site: http://dev.catalyst.perl.org/
Re: [Catalyst] Attribute::Handlers wont work in own classes under catalyst
--- Felix Antonius Wilhelm Ostmann [EMAIL PROTECTED] wrote: OK, first the problem: we have build some classes with Attribute::Handlers (was inspired from Attribute::Property) This works realy fine! after a few tests we gone use this classes under catalyst ... and ... dont work :-/ under catalyst our classes dont use Attribute::Handlers :-/ we declare UNIVERSAL::Property and then use sub nondigit : Property { defined !m{[0-9]} } (see the code) then you can call: $obj-nondigit(4) and it will croak or $obj-nondigit(car) and it will set the object-property nondigit to car. under catalyst he ignore the redefined sub in UNIVERSAL::Property ... no, he dont call UNIVERSAL::Property to redefine sub :-/ MfG Felix Ostmann OK, here the code, you can test it with (works): perl -d -MData::Dumper -MmyExample -e 'my $e = myExample-create(); $e-nondigit(car); print Dumper($e);' or perl -d -MData::Dumper -MmyExample -e 'my $e = myExample-create(); $e-nondigit(4); print Dumper($e);' under catalyst (wont work): sub default : Private { my ($self, $c) = @_; use myExample; use Data::Dumper; my $e = myExample-create(); $e-nondigit(car); $c-response-body( Dumper($e) ); } CODE: package myExample; use strict; use warnings; use 5.006; use Attribute::Handlers; use Carp qw/carp croak/; $Carp::Internal{q/Attribute::Handlers/}++; # may we be forgiven for our sins $Carp::Internal{+__PACKAGE__}++; sub UNIVERSAL::Property : ATTR(CODE) { my (undef, $self_glob, $check_code) = @_; ref($self_glob) or croak Cannot use property attribute with anonymous sub; my $property = *$self_glob{NAME}; defined($self_glob) or undef $check_code; no warnings 'redefine'; *$self_glob = sub { (my $self, local $_) = @_; if( @_ == 1 ) { exists($self-{_property}-{_current}-{$property}) or croak Property $property not loaded; return $self-{_property}-{_current}-{$property}; } if( @_ == 2 ) { ref($_) and croak Invalid value for $property property, no refs; # Property wurde geladen, sonst Abbruch $self-{_in_storage} !exists($self-{_property}-{_storage}-{$property}) and croak Property $property not loaded; my $value = $_; # überprüfe neuen Wert auf Gültigkeit, sonst Abbruch defined($check_code) !$check_code-($self, $_) and croak Invalid value for $property property; if( !defined($self-{_in_storage}) ) { # status schammiges Objekt, dann alles laden als from storage # ist neuer Wert != alter Wert, warnung ausgeben if( defined($_) ^ defined($value) or defined($_) $_ ne $value ) { carp Property $property from database are inconsistent; $self-{_property}-{_storage}-{$property} = $value; } else { $self-{_property}-{_storage}-{$property} = $_; } } # wenn Objekt in der Datenbank elsif( $self-{_in_storage} ) { # lösche dirty-Status, wird neu berechnet delete($self-{_property}-{_dirty}-{$property}); # ist neuer Wert != alter Wert, dirty-Status neu setzten defined($_) ^ defined($self-{_property}-{_storage}-{$property}) and $self-{_property}-{_dirty}-{$property} = undef; # ist neuer Wert != alter Wert, dirty-Status neu setzten defined($_) $_ ne $self-{_property}-{_storage}-{$property} and $self-{_property}-{_dirty}-{$property} = undef; } # wenn nicht in der Datenbank else { # auf jeden Fall auf dirty setzten $self-{_property}-{_dirty}-{$property} = undef } return $self-{_property}-{_current}-{$property} = $_; } croak Too many arguments for $property method; }; } sub new { my ($class, @args) = @_; @args and croak q{Can't call method new with arguments}; my $self = { _property = { _current = {}, _storage = {}, _dirty = {}, }, _in_storage = undef, }; bless($self, $class); return $self; } sub create { my ($class, @args) = @_; @args % 2 and croak wrong count of arguments; my %customer_row = @args; # erstelle Objekt und setzte übergebene Parameter my $self = $class-new(); $self-in_storage(0); $self-$_($customer_row{$_}) for( keys(%customer_row) ); return $self; } sub in_storage { my
Re: [Catalyst] CMS
On 8/29/07, Octavian Rasnita [EMAIL PROTECTED] wrote: Can you tell me if this CMS can be used only with the keyboard? (with no mouse) From: Davood Firoozian I don't think so. but may I ask why you are asking that ? Because I am blind and I cannot use a mouse but only the keyboard. I have no problems creating the html content manually, but I need to make a CMS that is accessible to me, and in the same time to sighted guys that don't know HTML at all. I've tried using some CMS programs created for sighted people, but I've seen that the code generated by all those programs is not clean at all, and it is very hard to modify it manually after it was created by that program, and after modifying it, those programs were not able to modify it again right. So I cannot collaborate with sighted admins for updating a site... Thanks. Octavian ___ List: Catalyst@lists.rawmode.org Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/catalyst@lists.rawmode.org/ Dev site: http://dev.catalyst.perl.org/
Re: [Catalyst] Re: [Catalyst-dev] Ignoring Emacs temp files
Ouch. I use xemacs -nw and FindBin but haven't seen this explosion, I think. What autodiscovery are you using that makes it require Foo:::#Bar ? blows up when it tries to do something like: eval require Foo::.#Bar ___ List: Catalyst@lists.rawmode.org Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/catalyst@lists.rawmode.org/ Dev site: http://dev.catalyst.perl.org/
Re: [Catalyst] About output in a browser
FWIW I recently used keywords in TT template filenames to identify which CSS file to use (public,admin portal, customer portal, etc.). But the default wrapper (root/lib/site/wrapper) will use text/plain if the filename has css|js|txt in it. ___ List: Catalyst@lists.rawmode.org Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/catalyst@lists.rawmode.org/ Dev site: http://dev.catalyst.perl.org/
Re: [Catalyst] Attribute::Handlers wont work in own classes under catalyst
On 8/29/07, Felix Antonius Wilhelm Ostmann [EMAIL PROTECTED] wrote: after a few tests we gone use this classes under catalyst ... and ... dont work :-/ under catalyst our classes dont use Attribute::Handlers :-/ we declare UNIVERSAL::Property and then use sub nondigit : Property { defined !m{[0-9]} } (see the code) Catalyst breaks regular subroutine attributes. Apparently, it tries to parse them all so other code never gets the chance to parse them. I've seen this problem before while using a module (which used subroutine attributes) along with Catalyst and I decided to work around it instead of looking for a proper fix. Good luck. Hopefully someone else can come up with solution other than using Catalyst's own attribute handling framework. -Nilson Santos F. Jr. ___ List: Catalyst@lists.rawmode.org Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/catalyst@lists.rawmode.org/ Dev site: http://dev.catalyst.perl.org/