Apache2-PageKit

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

		DBD::CSV, SQL::Statement and Text::CSV_XS.
		( Boris Zentner )
	- fop_command can be disabled with fop_command = ""
		( Boris Zentner, Shimon Rura )
	- Remove Apache->request calls from Apache::PageKit::Edit
		just to make apache 2 changes smaller ( Boris Zentner )
	- Fix: Parse Accept-Charsets more pettier ( Boris Zentner )
	! If the client browser has no accept charset header or no good one,
		deliver in the default_output_charset and set the charset
		in the content_type header. ( Erik Günther )
	- Fix uri_prefix in conjunction with can_edit
		( Boris Zentner, Erik Günther ) 
1.13
	- Add support for Apache2 ( Boris Zentner )
	- Add scripts/pkit_rename_app.pl it helps to start new applications
		fast ( Boris Zentner )
	- Add <PKIT_COMMENT> and </PKIT_COMMENT> tags. ( Boris Zentner )
	- Fix filetest for upload_tmp_dir ( Boris Zentner )
	- Fix locale support. One message was twice in the .po files.
		( Boris Zentner )
	- Fix Encoding of Apache::PageKit::Edit. Use HTML::Entities

Changes  view on Meta::CPAN

	- Avoid changing apr->filename and apr->path_info
		(Boris Zentner)
	- Fix warning, when the clients browser did not send a
		User-Agent header. (Boris Zentner)
	- Fix for startup when passed parameter should override
		PKIT_ROOT and PKIT_SERVER settings (TJ Mather)
	- Workaround another UTF conversion bug in perl 5.6.1
		(Boris Zentner, Gabriel Burca)
	- Fix docs for PKIT_HAVE_MESSAGES and PKIT_HAVE_NOT_MESSAGES
		(Boris Zentner)
	- Fix: pkit_edit translate & to &amp; since <textarea> holds
		#PCDATA, but we want it raw. (Boris Zentner)
	- Fix warning, when pkit_auth_session_key is called with a session
		without a user_id or the database can not provide a login
		or passwd. (Boris Zentner)
	- Fix: do NOT cache the page, that force us to login (Boris Zentner)
	- Fix warning, when a pkit_macro tag is used without the same
		parameter in the pkit_component tag (Boris Zentner)
	- Fix pkit_input_hashref for the case where you request the hash,
		change something and request the hash again. In error
		you get the old value(s) back. (Glenn Morgan)

Changes  view on Meta::CPAN

		find PKIT_ROOT and or PKIT_SERVER for
		mod_perl >= 1.06 (Boris Zentner)
	- Add patch to use <PKIT_ERRORSPAN> and <PKIT_ERRORFONT>
		without a name attribute. (Boris Zentner)
	- Add: component subs are called with component-parameters.
		See pkit_component_params_hashref
		(Boris Zentner)
	! Component code is called inorder from top to the bottom
		(Boris Zentner)
	- Fix: bug, where path relative components are not listed
		as an edit component. (Boris Zentner, Gabriel Burca)
	- Fix: A errormessage is fixed, that report file is out of
		the root_dir even if the file is not found.
		(Boris Zentner, Gabriel Burca)
	- Add new server option cookie_postfix. To name cookies just for the
                case, that multiple pkit applications run  in the same
                apache server. (Boris Zentner, David Raimbault)
	- Fix: write the session data and destroy the db connection
		even if an error transpires (Boris Zentner)
	- Fix: defer delivery of static pages if parameters are attached to
		the URI. This allows to login/logout even with a static

Changes  view on Meta::CPAN

		attribute. (Boris Zentner)
	- Fix two cases where a filehandle can be used even if open failed
		(Boris Zentner)
	- Fix uri_prefix so that the url did not grow anymore (Boris Zentner)
	- Remove unused modules Data::Dumper and Carp from View.pm (Boris Zentner)
	- Fix to deliver static pages unzipped if desired (Anton Permyakov)
	- Fix case where wrong cached file is used for xsl files with
		reload="no" and first called without parameters in the
		URL (Boris Zentner, Ben Ausden)
1.08
	- Added on-line editing tools
	- Add Postgres support (Chris Hamilton)
        - Add support for page based sessions (Boris Zentner)
        - Add support for localized messages of pkit (Boris Zentner)
        - Add fr message catalog (David Raimbault)
        - Add pt message catalog (Leonardo T. de Carvalho)
        - Add de message catalog (Boris Zentner)
        ! Change default for html_clean_level to 0 (Boris Zentner)
        - Add <PKIT_NOT_ERROR> directive to seperate errors
		from messages (David Christian)
        ! Catch up with new interface in XML::LibXML 1.31 (Anton Berezin)

Changes  view on Meta::CPAN

	- Fixed pkit_merge_sessions (David Raimbault)
        - Fixed writing and warning of gzipped static pages (Boris Zentner)
        - Fixed default for html_clean_level. It is now 9 as documented (Boris Zentner)
        - Fixed language localization support (Boris Zentner)
        - Fixed default for post_max. It is now 100_000_000 as documented (Boris Zentner)
        - Reenable gzip content it was ignored before. (Boris Zentner)
        - Fixed uri handling of http://www.abc.de/ where we end in a empty uri instead
		of index (Boris Zentner)
	- Fixed usage of Digest::MD5::md5_hex in sub pkit_auth_credential and
		pkit_auth_session_key in Common.pm (Boris Zentner)
	- Set Default for the server attrs can_edit and reload (Boris Zentner)
	- First attempt to make pkit warning clean (Boris Zentner, David Raimbault)
        - Fix default timeout for 'recent_login_timeout' from unlimited to 3600
		like the Docs say (Boris Zentner)
	- Parse difficult parameters like
		http://ka.brain.de/login2?passwd=ss&&&&submit&&login=s& (Boris Zentner)
        - Add restricted page to the example site (Boris Zentner)
        - Fixed setup_session without touch of pkit_merge_session (Boris Zentner)
        - Fixed problem with append of check_cookie (Boris Zentner)
        - Sessions are not lazy anymore (Boris Zentner)

Changes  view on Meta::CPAN

	- Fixed bug with use_template is set to 'no'
	- Fixed bug with XPath queries.
	- Fixed bug with locating only files in Page dir for
		preparse_templates

0.97	Wed Apr 25 17:07:31 2001 EST
	- Login code has been rewritten.  To attempt a login, the
		pkit_login request parameter must be set.
		The new_credential configuration option is no longer
		supported.
	- added can_edit to server config section Config.dtd file.
	- Names in <CONTENT_VAR> and <CONTENT_LOOP> tags are
		XPath queries
	- Removed support for navigation bars, since they didn't fit
		in well with the new Content and View modules.  Might
		add them back if there is demand and I can find an
		clean way of doing it (using XPointers in content
		XML file???)
	- Removed support for $model->content_param, since content
		is now compiled into template and it is not possible
		to get or set the tags run time.

MANIFEST  view on Meta::CPAN

eg/View/Default/customize.tmpl
eg/View/Default/demo_desc.tmpl
eg/View/Default/end_cell.tmpl
eg/View/Default/form_validation.tmpl
eg/View/Default/index.tmpl
eg/View/Default/language.tmpl
eg/View/Default/license.tmpl
eg/View/Default/login1.tmpl
eg/View/Default/media.tmpl
eg/View/Default/newacct1.tmpl
eg/View/Default/pkit_edit/open_file.tmpl
eg/View/Default/restricted.tmpl
eg/View/Default/simple_page.xsl
eg/View/Default/top.tmpl
eg/View/pdf/media.tmpl
eg/View/pdf/simple_page.xsl
eg/View/print/bottom.tmpl
eg/View/print/top.tmpl
eg/View/wml/media.tmpl
eg/View/wml/simple_page.xsl
eg/View/xml/media.tmpl

README  view on Meta::CPAN

	by providing a clear separation of programming, content and
	presentation.

	It does this by implementing a Model/View/Content/Controller (MVCC)
	design paradigm:
		- Model is user supplied Perl Classes
		- View is set of PageKit Templates and/or XSLT files
		- Content is set of XML Files
		- Controller is PageKit

	This allows your programmers, designers and content editors to work
	independently with clean well-defined interfaces.

	PageKit provides the following features:
		- Component-based architecture
		- Language Localization and charset translation
		- Session Management
		- Input Validation
		- Sticky HTML Forms
		- Authentication
		- Co-branding and XML,WML, and PDF output

docsrc/features.xml  view on Meta::CPAN

   FOP processor, available from
   <ulink url="http://xml.apache.org/fop/">http://xml.apache.org/fop/</ulink>, and
   configure <link linkend="config.global.fop_command">fop_command</link> to point
   to the FOP processor.
  </para>
  <para>
   You may set the <literal><link linkend="request.pkit_view">pkit_view</link></literal> request parameter in the request URI or by using
   <literal>$model->input(pkit_view => <replaceable>pkit_view</replaceable>);</literal> in your model code.
  </para>
 </sect1>
 <sect1 id="features.editing"><?dbhtml filename="editing.html"?>
  <title>On-line Editing tools</title>
  <para>
   PageKit supports a set of simple on-line editing tools.  To enable,
   set <literal><link linkend="config.server.can_edit">can_edit</link></literal> in your
   server config.  You will also need to call in your Model code:
  </para>
      <informalexample>
       <programlisting>
  $model->output(pkit_admin => 1);
       </programlisting>
      </informalexample>
 </sect1>
 <sect1><?dbhtml filename="errorreport.html"?>
  <title>Error Reporting</title>

docsrc/reference.xml  view on Meta::CPAN

      </para>
     </listitem>
    </varlistentry>
   <varlistentry id="config.global.relaxed_parser">
    <term>relaxed_parser</term>
    <listitem>
     <para>
       If set to yes, this option allows template tags to be placed inside
HTML comments. It also permits spaces and newlines within the tag itself.
This option may be useful to HTML authors who would like to validate their
templates' HTML syntax prior to processing, or who use DTD-aware editing
tools.

      Defaults to <emphasis>no</emphasis>.
      <informalexample>
       <programlisting>
        relaxed_parser = "yes"

        # these tags are all allowed if relaxed_parser is enabled:
        &lt;MODEL_VAR NAME="x"&gt;
        &lt; MODEL_VAR NAME = 'x' &gt;

docsrc/reference.xml  view on Meta::CPAN



  <sect2>
   <title>Server Attributes</title>
   <para>
    These options are global over all pages, but are local to each server configuration
    (e.g. production, staging, development). They are located in the &lt;SERVERS&gt; tag of
    <filename>Config/Config.xml</filename>.
   </para>
   <variablelist>
    <varlistentry id="config.server.can_edit">
     <term>can_edit</term>
     <listitem>
      <para>
If set to <emphasis>yes</emphasis>, enables <link linkend="features.editing">on-line editing tools</link>.
      </para>
     </listitem>
    </varlistentry>
    <varlistentry id="config.server.cookie_domain">
     <term>cookie_domain</term>
     <listitem>
      <para>
       Domain for that cookies are issued.  Note that you must have
       at least two periods in the cookie domain.
      </para>

docsrc/reference.xml  view on Meta::CPAN

    </refnamediv>
    <refsynopsisdiv>
     <synopsis>
  $model->fillinform(email => $email);
     </synopsis>
    </refsynopsisdiv>
    <refsect1>
     <title>Description</title>
     <para>
Used with <ulink uri="http://kobesearch.cpan.org/search?dist=HTML-FillInForm">HTML::FillInForm</ulink> to fill in HTML forms.  Useful for example
when you want to fill an edit form with data from the database.
     </para>
    </refsect1>
   </refentry>
   
   <refentry id="model.api.ignore_fillinform_fields">
    <refnamediv>
     <refname>ignore_fillinform_fields</refname>
     <refpurpose>
      Fills in HTML Forms
     </refpurpose>

eg/Config/Config.xml  view on Meta::CPAN

	login_page="login1"
	model_base_class="MyPageKit::Common"
	model_dispatch_prefix="MyPageKit::MyModel"
	recent_login_timeout="10"
	session_expires="+1y"
/>
<SERVERS>
   <SERVER id="production"
	reload="no"/>
   <SERVER id="staging"
	can_edit="yes"
	reload="yes"/>
</SERVERS>
<VIEWS>
   <VIEW id="pdf"/>
   <VIEW id="wml"/>
   <VIEW id="xml"/>
</VIEWS>
<PAGES>
  <PAGE id="customize" request_param_in_tmpl="yes"/>
  <PAGE id="restricted" require_login="recent"/>

eg/Config/PageKit_Config-0.97.dtd  view on Meta::CPAN

	post_max			CDATA	"100000000"
	recent_login_timeout		CDATA	"3600"
	request_param_in_tmpl		CDATA	"no"
	session_expires			CDATA	#IMPLIED
	uri_prefix			CDATA	#IMPLIED
	verify_page			CDATA	#IMPLIED>
<!ELEMENT SERVERS (SERVER)*>
<!ELEMENT SERVER EMPTY>
<!ATTLIST SERVER
	id			CDATA	"Default"
	can_edit		(yes|no)	"no"
	cookie_domain		NMTOKENS	#IMPLIED
	files_match		CDATA	#IMPLIED
	html_clean_level	(0|1|2|3|4|5|6|7|8|9)	"9"
	reload			(yes|no)	"no">
<!ELEMENT PAGES (PAGE)*>
<!ELEMENT PAGE EMPTY>
<!ATTLIST PAGE
        id                 ID      #REQUIRED
        browser_cache           CDATA   #IMPLIED
	fill_in_form		(yes|no)	"yes"

eg/Model/MyPageKit/Common.pm  view on Meta::CPAN

    $session = $model->session;
  }

  # for the pagekit.org website, we control the colors based on the
  # values the user selected, stored in the session.
  $model->output(link_color => $session->{'link_color'} || '#ff9933');
  $model->output(text_color => $session->{'text_color'} || '#000000');
  $model->output(bgcolor => $session->{'bgcolor'} || '#dddddd');
  $model->output(mod_color => $session->{'mod_color'} || '#ffffff');

  # toggle on-line editing tools
  if($model->input('pkit_admin')) {
    $session->{'pkit_admin'} = $model->input('pkit_admin') eq 'on' ? 1 : 0;
  }
  $model->output(pkit_admin => $session->{'pkit_admin'});
}

sub pkit_auth_credential {
  my ($model) = @_;
  my $dbh = $model->dbh;
  my $login = $model->input('login');

eg/View/Default/pkit_edit/open_file.tmpl  view on Meta::CPAN

<html>
  <body>
    <center>
      <h1><MODEL_VAR file/></h1>

      <MODEL_IF read_only>
      <h2>File is readonly!</h2>
      </MODEL_IF>

      <form action="/pkit_edit/commit_file?file=<MODEL_VAR file/>&pkit_done=<MODEL_VAR pkit_done>" method=post enctype="application/x-www-form-urlencoded">
        <p><textarea
          name="content" wrap=off cols=100 rows=25
          <MODEL_IF read_only>readonly</MODEL_IF>
        ><MODEL_VAR content></textarea></p>
        <MODEL_UNLESS read_only><input name="submit" type=submit value="Commit"> <input name="reset" type=reset value="Reset"></MODEL_UNLESS>
      </form>
    </center>
  </body>
</html>

lib/Apache2/PageKit.pm  view on Meta::CPAN

      die "Model class $model_base_class has no new method ($@)";
    }
  }

  $self->{dbh} = $model->pkit_dbi_connect if $model->can('pkit_dbi_connect');

  my $default_lang = $config->get_global_attr('default_lang') || 'en';
  my $default_input_charset = $config->get_global_attr('default_input_charset') || 'ISO-8859-1';
  my $default_output_charset = $config->get_global_attr('default_output_charset') || 'ISO-8859-1';
  my $html_clean_level = $config->get_server_attr('html_clean_level') || 0;
  my $can_edit = $config->get_server_attr('can_edit') || 'no';
  my $reload = $config->get_server_attr('reload') || 'no';

  my $cache_dir = $config->get_global_attr('cache_dir');
  my $view_cache_dir = $cache_dir ? $cache_dir . '/pkit_cache' : $pkit_root . '/View/pkit_cache';
  my $relaxed_parser = $config->get_global_attr('relaxed_parser') || 'no';
  my $errorspan_begin_tag = $config->get_global_attr('errorspan_begin_tag') || q{<font color="<PKIT_ERRORSTR>">};
  my $errorspan_end_tag   = $config->get_global_attr('errorspan_end_tag')   || q{</font>};
  my $default_errorstr   = $config->get_global_attr('default_errorstr')   || '#ff0000';

  my $uri_prefix = $config->get_global_attr('uri_prefix') || '';

lib/Apache2/PageKit.pm  view on Meta::CPAN

  					     view_dir => "$pkit_root/View",
					     content_dir => "$pkit_root/Content",
					     cache_dir => $view_cache_dir,
					     default_lang => $default_lang,
					     default_input_charset => $default_input_charset,
					     default_output_charset => $default_output_charset,
					     reload => $reload,
					     html_clean_level => $html_clean_level,
					     input_param_object => $apr,
					     output_param_object => $self->{output_param_object},
					     can_edit => $can_edit,
                                             relaxed_parser => $relaxed_parser,
                                             errorspan_begin_tag => $errorspan_begin_tag,
                                             errorspan_end_tag => $errorspan_end_tag,
                                             default_errorstr => $default_errorstr,
                                             template_class => $template_class,

					     uri_prefix => $uri_prefix,

					     # used only to set browser_cache = '..' maybe another
					     # way to set browser_cache is better to leave the View

lib/Apache2/PageKit.pm  view on Meta::CPAN

}

sub page_sub {
  my $pk = shift;
  my $page_id = shift || $pk->{page_id};

  # change all the / to ::
  $page_id =~ s!/!::!g;

  my $perl_sub;
  if($page_id =~ s/^pkit_edit:://){
    $perl_sub = 'Apache2::PageKit::Edit::' . $page_id;
  } else {
    my $model_dispatch_prefix = $pk->{config}->get_global_attr('model_dispatch_prefix');
    $perl_sub = $model_dispatch_prefix . '::' . $page_id;
  }

  return $perl_sub if defined &{$perl_sub};

  my ($class_package) = $perl_sub =~ m/^(.*)::/;
  return if exists $Apache2::PageKit::checked_classes{$class_package};

lib/Apache2/PageKit/Edit.pm  view on Meta::CPAN

  open my $fh, ">$file" or die $!;
  binmode $fh, ":encoding($default_input_charset)";
  print $fh $content;
  close $fh;

  if($pkit_done){
    $model->pkit_redirect($pkit_done);
  }
}

sub add_edit_links {
  my ($view, $record, $output_ref) = @_;

  my $pkit_root = $view->{root_dir};

  my $output_param_object = $view->{output_param_object};

  if($output_param_object->param('pkit_admin')){
    my $pkit_done = Apache2::Util::escape_path($output_param_object->param('pkit_done'), $view->{pkit_pk}->{apr}->pool);

    my $include_mtimes = $record->{include_mtimes};

    my $abs_uri_prefix = $view->{uri_prefix} ? '/' . $view->{uri_prefix} : '';

    # add edit link for main template file
    my $filename = $record->{filename};

    die "Filename ($filename) points outside PKIT_ROOT ($pkit_root)" if ( $filename and $filename !~ s!^$pkit_root/!! );

    my $edit_html = $filename ? qq{<font size="-1"><a href="$abs_uri_prefix/pkit_edit/open_file?file=$filename&pkit_done=$pkit_done">(edit $filename)</a></font><br>}:qq{};

    for my $filename (grep /\.(xml|xsl)$/, keys %$include_mtimes){
      # add edit link content XML files and XSLT files
      die "Filename ($filename) points outside PKIT_ROOT ($pkit_root)" unless ( $filename =~ s!^$pkit_root/!! );

      $edit_html .= qq{<font size="-1"><a href="$abs_uri_prefix/pkit_edit/open_file?file=$filename&pkit_done=$pkit_done">(edit $filename)</a></font><br>};
    }

    for my $filename (grep !/\.xml$/, keys %$include_mtimes){
      # add edit links for components in the location right before where the
      # the component is included
      die "Filename ($filename) points outside PKIT_ROOT ($pkit_root)" unless ( $filename =~ s!^$pkit_root/!! );

      (my $component_id = $filename) =~ s!(?:[^/]+/+){2}(.*?)\.(?:tmpl|xsl)$!$1!;
      $$output_ref =~ s!<PKIT_EDIT_COMPONENT NAME="/?$component_id">!<font size="-1"><a href="$abs_uri_prefix/pkit_edit/open_file?file=$filename&pkit_done=$pkit_done">(edit $filename)</a></font><br>!g;
    }
    $$output_ref = $edit_html . $$output_ref;
#    $$output_ref =~ s/<\s*BODY($key_value_pattern)*\s*>/<BODY$1>$edit_html/i;
  } else {
    $$output_ref =~ s!<PKIT_EDIT_COMPONENT NAME=".*?">!!sig;
  }
}

sub add_component_edit_stubs {
  my ( $view, $page_id, $html_code_ref, $pkit_view ) = @_;

  # insert edit stubs (PKIT_EDIT_COMPONENT), before each PKIT_COMPONENT tag,
  # for online editing tools to use
  
  if ( $view->{relaxed_parser} eq 'yes' ) {
    $$html_code_ref =~
      s%<(!--)?\s*PKIT_COMPONENT($key_value_pattern+)\s*/?(?(1)--)?>(?:<(!--)?\s*/PKIT_COMPONENT\s*(?(1)--)>)?%_build_component_edit_stub($view, $pkit_view, $page_id, $2)%eig;
  } else {
    $$html_code_ref =~
      s%<\s*PKIT_COMPONENT($key_value_pattern+)\s*/?>(<\s*/PKIT_COMPONENT\s*>)?%_build_component_edit_stub($view, $pkit_view, $page_id, $1)%eig;
  }
    ###$$html_code_ref =~ s!(<[^>]*)?(<PKIT_COMPONENT $key_value_pattern>)!<font size="-1"><a href="/pkit_edit/open_file?file=$3">(edit $3)</a></font><br>$2!sig;

  sub _build_component_edit_stub {
    my ( $view, $pkit_view, $page_id, $params ) = @_;
    my %params;

    while ( $params =~ m!$key_value_pattern!g ) {
      my $value = $3 || $4 || $5;
      if ( $value ) {
        $params{ uc($2) } = $value;
      } else {
        # put standalone attrs into the NAME key. This might be wrong for other tags,
        # but for <PKIT_COMPONENT ...> this is a shortcut for the filename.

lib/Apache2/PageKit/FAQ.pod  view on Meta::CPAN

=head1 Migrating to I<Apache2::PageKit> from...

=head2 3.1 I already have a website and I want to extend it with Apache2::PageKit. Where can I put my data?

You have several options, some follows.

=over 2

=item *

Copy your whole site into the directory View/Default/. Of the edited eg site of I<Apache2::PageKit>.

=item *

Copy the eg site of I<Apache2::PageKit> to a directory in the rootdir of your site ie:

  cp -R .../Apache-PageKit-x.yz/eg .../htdocs/.../pagekit

edit MyModel/Model.pm, MyModel/Common.pm and Config/Config.xml and add I<Apache2::PageKit> as the
handler for this dir in yout C<httpd.conf>.

=back

=head1 I<Apache2::PageKit> beginner's FAQ's

=head2 4.1 Can I run more as one site with one Apache Server?

Sure, as long as the Perl Classes don't conflict. (You can't run both production and development
PageKits on the same server, unless you make sure that the Classes have different names.)

lib/Apache2/PageKit/View.pm  view on Meta::CPAN

#    * include_mtimes - a hash ref with file names as keys and mtimes as values
#        (contains all of the files included by the <PKIT_COMPONENT> tags
#    * component_ids - an array ref containing an array ref of component_ids and a hash ref 
#	with the parameters for the compoent, that may have
#       code associated with them
#    * has_form - 1 if contains <form> tag, 0 otherwise.  used to
#        determine whether to apply HTML::FillInForm module
# the objects themselves are keyed by page_id, pkit_view and lang

# 3. methods that are called externally
#    * new($view_dir, $content_dir, $cache_dir, $default_lang, $reload, $html_clean_level, $can_edit, [ $associated_objects ], [ $fillinform_objects], $input_param_object, $output_param_object) (args passed as hash reference)
#    * fill_in_view($page_id, $pkit_view, $lang)
#    * open_view($page_id, $pkit_view, $lang)
#    * param
#    * preparse_templates($view_root,$html_clean_level,$view_cache_dir);
#    * template_file_exists($page_id, $pkit_view)

# 4. methods that are called interally
#    * _fetch_from_file_cache($page_id, $pkit_view, $lang);
#    * _prepare_content($template_text_ref, $page_id)
#    * _fill_in_content($template_text_ref, $page_id)

lib/Apache2/PageKit/View.pm  view on Meta::CPAN

      $view->{pkit_pk}->{browser_cache} = 'no';
      Encode::_utf8_off($output);
      $fif = HTML::FillInForm->new();
      $output = $fif->fill(scalarref => \$output,
                           fobject   => $view->{fillinform_objects},
			   ignore_fields => $view->{ignore_fillinform_fields}
			  );
      Encode::_utf8_on($output);
    }
  }
  if($view->{can_edit} eq 'yes'){
    $view->{pkit_pk}->{browser_cache} = 'no';
    Apache2::PageKit::Edit::add_edit_links($view, $record, \$output);
  }
  return \$output;
}

# gets static gzipped file, creating it if necessary
sub get_static_gzip {
  my ($view, $filename) = @_;
  my ($gzip_mtime, $gzipped_content);

  (my $relative_filename = $filename) =~ s!^$view->{view_dir}/!!;

lib/Apache2/PageKit/View.pm  view on Meta::CPAN


    # expand PKIT_MACRO tags
    $template =~ s!<\s*PKIT_MACRO$key_value_pattern\s*/?>!$component_params->{uc($+)} || ''!egi;

    $template_ref = \$template;

    my $mtime = (stat(_))[9];
    $view->{include_mtimes}->{$template_file} = $mtime;
  }

  if($view->{can_edit} eq 'yes'){
    Apache2::PageKit::Edit::add_component_edit_stubs($view, $page_id, $template_ref, $pkit_view);
  }

  $view->_include_components($page_id,$template_ref,$pkit_view);

  return $template_ref;
}

sub _load_page {
  my ($view, $page_id, $pkit_view) = @_;

lib/Apache2/PageKit/View.pm  view on Meta::CPAN

      Encode::_utf8_off($output);
      $fif = HTML::FillInForm->new();
      $output = $fif->fill(
                            scalarref     => \$output,
                            fobject       => $view->{fillinform_objects},
                            ignore_fields => $view->{ignore_fillinform_fields}
      );
      Encode::_utf8_on($output);      
    }
  }
  if ( $view->{can_edit} eq 'yes' ) {
    $view->{pkit_pk}->{browser_cache} = 'no';
    Apache2::PageKit::Edit::add_edit_links( $view, $record, \$output );
  }
  return \$output;
}

######################################################

sub _load_page {
  my ( $view, $page_id, $pkit_view ) = @_;

  # solange HTML::Template::XPath noch nichts mit Tempate Toolkit anfangen kann,



( run in 0.573 second using v1.01-cache-2.11-cpan-de7293f3b23 )