Merge branch '8' into psgi
Conflicts: lib/WebGUI/Asset/Template.pm lib/WebGUI/Session/Scratch.pm
This commit is contained in:
commit
cb3f83a93e
45 changed files with 987 additions and 860 deletions
|
|
@ -449,7 +449,7 @@ Extends the master method to clear the view cache.
|
|||
|
||||
override purgeCache => sub {
|
||||
my $self = shift;
|
||||
eval{$self->session->cache->delete("view_".$self->getId)};
|
||||
$self->session->cache->remove("view_".$self->getId);
|
||||
super();
|
||||
};
|
||||
|
||||
|
|
@ -584,7 +584,7 @@ Generate the view method for the Asset, and handle caching.
|
|||
sub view {
|
||||
my $self = shift;
|
||||
if (!$self->session->var->isAdminOn && $self->get("cacheTimeout") > 10) {
|
||||
my $out = eval{$self->session->cache->get($self->getViewCacheKey)};
|
||||
my $out = $self->session->cache->get($self->getViewCacheKey);
|
||||
return $out if $out;
|
||||
}
|
||||
my %var = %{$self->get};
|
||||
|
|
@ -594,7 +594,7 @@ sub view {
|
|||
$var{fileSize} = formatBytes($self->get("assetSize"));
|
||||
my $out = $self->processTemplate(\%var,undef,$self->{_viewTemplate});
|
||||
if (!$self->session->var->isAdminOn && $self->get("cacheTimeout") > 10) {
|
||||
eval{$self->session->cache->set($self->getViewCacheKey, $out, $self->get("cacheTimeout"))};
|
||||
$self->session->cache->set($self->getViewCacheKey, $out, $self->get("cacheTimeout"));
|
||||
}
|
||||
return $out;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -827,19 +827,6 @@ sub valid_parent_classes {
|
|||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 validParent ( )
|
||||
|
||||
Override validParent to only allow GalleryAlbums to hold GalleryFiles.
|
||||
|
||||
=cut
|
||||
|
||||
sub validParent {
|
||||
my ($class, $session) = @_;
|
||||
return $session->asset->isa('WebGUI::Asset::Wobject::GalleryAlbum');
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 view ( )
|
||||
|
||||
method called by the container www_view method.
|
||||
|
|
|
|||
|
|
@ -224,7 +224,7 @@ sub view {
|
|||
my $cache = $session->cache;
|
||||
my $cacheKey = $self->getWwwCacheKey('view');
|
||||
if (!$session->var->isAdminOn && $self->cacheTimeout > 10) {
|
||||
my $out = eval { $cache->get( $cacheKey ) };
|
||||
my $out = $cache->get( $cacheKey );
|
||||
return $out if $out;
|
||||
}
|
||||
my %var = %{$self->get};
|
||||
|
|
@ -247,7 +247,7 @@ sub view {
|
|||
$var{parameters} .= sprintf("id=%s", $self->getId);
|
||||
my $out = $self->processTemplate(\%var,undef,$self->{_viewTemplate});
|
||||
if (!$session->var->isAdminOn && $self->cacheTimeout > 10) {
|
||||
eval{ $cache->set( $cacheKey, $out, $self->get("cacheTimeout") ) };
|
||||
$cache->set( $cacheKey, $out, $self->get("cacheTimeout") );
|
||||
}
|
||||
return $out;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -186,7 +186,7 @@ sub view {
|
|||
my $cache = $self->session->cache;
|
||||
my $cacheKey = $self->getWwwCacheKey('view');
|
||||
if (!$self->session->var->isAdminOn && $self->cacheTimeout > 10) {
|
||||
my $out = eval { $cache->get( $cacheKey ) };
|
||||
my $out = $cache->get( $cacheKey );
|
||||
return $out if $out;
|
||||
}
|
||||
my %var = %{$self->get};
|
||||
|
|
@ -209,7 +209,7 @@ sub view {
|
|||
$var{noFileSpecified} = $i18n->get('noFileSpecified');
|
||||
my $out = $self->processTemplate(\%var,undef,$self->{_viewTemplate});
|
||||
if (!$self->session->var->isAdminOn && $self->cacheTimeout > 10) {
|
||||
eval{ $cache->set( $cacheKey, $out, $self->cacheTimeout) };
|
||||
$cache->set( $cacheKey, $out, $self->cacheTimeout);
|
||||
}
|
||||
return $out;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1174,7 +1174,7 @@ Extend the base class to handle caching.
|
|||
|
||||
override purgeCache => sub {
|
||||
my $self = shift;
|
||||
eval{$self->session->cache->delete("view_".$self->getThread->getId)} if ($self->getThread);
|
||||
$self->session->cache->remove("view_".$self->getThread->getId) if ($self->getThread);
|
||||
super();
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -484,7 +484,7 @@ sub getOverrides {
|
|||
my $cache = $session->cache;
|
||||
my $u = WebGUI::User->new($self->session, $self->discernUserId);
|
||||
|
||||
my $overridesRef = eval{$cache->get($self->_overridesCacheTag)};
|
||||
my $overridesRef = $cache->get($self->_overridesCacheTag);
|
||||
##If admin mode is not on, and the cache is valid, and not expired, and the user object was not updated,
|
||||
##return the cached value.
|
||||
if ( ! $session->var->isAdminOn
|
||||
|
|
@ -532,7 +532,7 @@ sub getOverrides {
|
|||
}
|
||||
}
|
||||
$overrides{userLastUpdated} = $session->user->get('lastUpdated');
|
||||
eval{$cache->set($self->_overridesCacheTag, \%overrides, 60*60)};
|
||||
$cache->set($self->_overridesCacheTag, \%overrides, 60*60);
|
||||
$overridesRef = \%overrides;
|
||||
return %{ $overridesRef };
|
||||
}
|
||||
|
|
@ -879,7 +879,7 @@ Delete any cached overrides.
|
|||
|
||||
sub uncacheOverrides {
|
||||
my $self = shift;
|
||||
eval{$self->session->cache->delete($self->_overridesCacheTag)};
|
||||
$self->session->cache->remove($self->_overridesCacheTag);
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -769,7 +769,7 @@ Extends the base class to handle cleaning up the cache for this asset.
|
|||
|
||||
override purgeCache => sub {
|
||||
my $self = shift;
|
||||
$self->session->cache->delete("view_".$self->getId);
|
||||
$self->session->cache->remove("view_".$self->getId);
|
||||
super();
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -35,38 +35,44 @@ property snippet => (
|
|||
hoverHelp => ['snippet description','Asset_Snippet'],
|
||||
default => undef,
|
||||
);
|
||||
around snippet => sub {
|
||||
my $orig = shift;
|
||||
sub _trigger_snippet {
|
||||
my $self = shift;
|
||||
if (@_ > 1) {
|
||||
my $packed = $_[0];
|
||||
if ( $self->mimeType eq "text/html" ) {
|
||||
HTML::Packer::minify( \$packed, {
|
||||
remove_comments => 1,
|
||||
do_javascript => "shrink",
|
||||
do_stylesheet => "minify",
|
||||
} );
|
||||
}
|
||||
elsif ( $self->mimeType eq "text/css" ) {
|
||||
CSS::Packer::minify( \$packed, {
|
||||
compress => 'minify',
|
||||
});
|
||||
}
|
||||
elsif ( $self->mimeType eq 'text/javascript' ) {
|
||||
JavaScript::Packer::minify( \$packed, {
|
||||
compress => "shrink",
|
||||
});
|
||||
}
|
||||
$self->snippetPacked($packed);
|
||||
my ($new, $old) = @_;
|
||||
if ($new ne $old) {
|
||||
$self->_clear_snippetPacked;
|
||||
}
|
||||
$self->$orig(@_);
|
||||
};
|
||||
|
||||
}
|
||||
property snippetPacked => (
|
||||
fieldType => "hidden",
|
||||
default => undef,
|
||||
noFormPost => 1,
|
||||
lazy => 1,
|
||||
clearer => '_clear_snippetPacked',
|
||||
builder => '_build_snippetPacked',
|
||||
);
|
||||
|
||||
sub _build_snippetPacked {
|
||||
my $self = shift;
|
||||
my $snippet = $self->snippet;
|
||||
if ( $self->mimeType eq "text/html" ) {
|
||||
HTML::Packer::minify( \$snippet, {
|
||||
remove_comments => 1,
|
||||
do_javascript => "shrink",
|
||||
do_stylesheet => "minify",
|
||||
} );
|
||||
}
|
||||
elsif ( $self->mimeType eq "text/css" ) {
|
||||
CSS::Packer::minify( \$snippet, {
|
||||
compress => 'minify',
|
||||
});
|
||||
}
|
||||
elsif ( $self->mimeType eq 'text/javascript' ) {
|
||||
JavaScript::Packer::minify( \$snippet, {
|
||||
compress => "shrink",
|
||||
});
|
||||
}
|
||||
$snippet;
|
||||
}
|
||||
|
||||
property usePacked => (
|
||||
tab => 'properties',
|
||||
fieldType => 'yesNo',
|
||||
|
|
@ -165,30 +171,6 @@ sub exportGetUrlAsPath {
|
|||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getCache ( $calledAsWebMethod )
|
||||
|
||||
Overrides the base method to handle Snippet specific caching.
|
||||
|
||||
=head3 $calledAsWebMethod
|
||||
|
||||
If this is true, then change the cache key.
|
||||
|
||||
=cut
|
||||
|
||||
sub getCache {
|
||||
my $self = shift;
|
||||
my $calledAsWebMethod = shift;
|
||||
my $session = $self->session;
|
||||
my $cacheKey = "view_".$calledAsWebMethod.'_'.$self->getId;
|
||||
if ($session->env->sslRequest) {
|
||||
$cacheKey .= '_ssl';
|
||||
}
|
||||
my $cache = WebGUI::Cache->new($session, $cacheKey);
|
||||
return $cache;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getToolbar ( )
|
||||
|
||||
Returns a toolbar with a set of icons that hyperlink to functions that delete, edit, promote, demote, cut, and copy.
|
||||
|
|
@ -229,10 +211,10 @@ override purgeCache => sub {
|
|||
my $self = shift;
|
||||
my $cache = $self->session->cache;
|
||||
eval {
|
||||
$cache->delete("view__".$self->getId);
|
||||
$cache->delete("view_1_".$self->getId);
|
||||
$cache->delete("view__".$self->getId . '_ssl');
|
||||
$cache->delete("view_1_".$self->getId . '_ssl');
|
||||
$cache->remove("view__".$self->getId);
|
||||
$cache->remove("view_1_".$self->getId);
|
||||
$cache->remove("view__".$self->getId . '_ssl');
|
||||
$cache->remove("view_1_".$self->getId . '_ssl');
|
||||
};
|
||||
super();
|
||||
};
|
||||
|
|
@ -273,7 +255,7 @@ sub view {
|
|||
|| ($versionTag && $versionTag->getId eq $self->tagId);
|
||||
my $cacheKey = $self->getWwwCacheKey('view', $calledAsWebMethod);
|
||||
unless ($noCache) {
|
||||
my $out = eval { $session->cache->get( $cacheKey )};
|
||||
my $out = $session->cache->get( $cacheKey );
|
||||
return $out if $out;
|
||||
}
|
||||
my $output = $self->usePacked
|
||||
|
|
@ -286,7 +268,7 @@ sub view {
|
|||
}
|
||||
WebGUI::Macro::process($session,\$output);
|
||||
unless ($noCache) {
|
||||
eval { $session->cache->set( $cacheKey, $output, $self->cacheTimeout) };
|
||||
$session->cache->set( $cacheKey, $output, $self->cacheTimeout);
|
||||
}
|
||||
return $output;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -85,6 +85,7 @@ sub _build_templatePacked {
|
|||
do_javascript => 'shrink',
|
||||
do_stylesheet => 'minify',
|
||||
} );
|
||||
$template;
|
||||
}
|
||||
|
||||
property usePacked => (
|
||||
|
|
|
|||
|
|
@ -290,7 +290,7 @@ See WebGUI::Asset::purgeCache() for details.
|
|||
|
||||
override purgeCache => sub {
|
||||
my $self = shift;
|
||||
eval{$self->session->cache->delete("view_".$self->getId)};
|
||||
$self->session->cache->remove("view_".$self->getId);
|
||||
super();
|
||||
};
|
||||
|
||||
|
|
@ -322,7 +322,7 @@ sub view {
|
|||
my $cache = $self->session->cache;
|
||||
if (!$self->session->var->isAdminOn && $self->cacheTimeout > 10 && !$self->session->form->process("overrideTemplateId") &&
|
||||
!$self->session->form->process($self->paginateVar) && !$self->session->form->process("makePrintable")) {
|
||||
my $out = eval{$cache->get($self->getViewCacheKey)};
|
||||
my $out = $cache->get($self->getViewCacheKey);
|
||||
return $out if $out;
|
||||
}
|
||||
my %var;
|
||||
|
|
@ -386,7 +386,7 @@ sub view {
|
|||
my $out = $self->processTemplate(\%var,undef,$self->{_viewTemplate});
|
||||
if (!$self->session->var->isAdminOn && $self->cacheTimeout > 10 && !$self->session->form->process("overrideTemplateId") &&
|
||||
!$self->session->form->process($self->paginateVar) && !$self->session->form->process("makePrintable")) {
|
||||
eval{$cache->set($self->getViewCacheKey, $out, $self->cacheTimeout)};
|
||||
$cache->set($self->getViewCacheKey, $out, $self->cacheTimeout);
|
||||
}
|
||||
return $out;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1436,8 +1436,8 @@ override purgeCache => sub {
|
|||
my $self = shift;
|
||||
my $cache = $self->session->cache;
|
||||
eval {
|
||||
$cache->delete("view_".$self->getId);
|
||||
$cache->delete($self->_visitorCacheKey);
|
||||
$cache->remove("view_".$self->getId);
|
||||
$cache->remove($self->_visitorCacheKey);
|
||||
};
|
||||
super();
|
||||
};
|
||||
|
|
@ -1584,7 +1584,7 @@ sub view {
|
|||
my $self = shift;
|
||||
my $cache = $self->session->cache;
|
||||
if ($self->_visitorCacheOk) {
|
||||
my $out = eval{$cache->get($self->_visitorCacheKey)};
|
||||
my $out = $cache->get($self->_visitorCacheKey);
|
||||
$self->session->errorHandler->debug("HIT") if $out;
|
||||
return $out if $out;
|
||||
}
|
||||
|
|
@ -1595,7 +1595,7 @@ sub view {
|
|||
$self->prepareView unless ($self->{_viewTemplate});
|
||||
my $out = $self->processTemplate($self->getViewTemplateVars,undef,$self->{_viewTemplate});
|
||||
if ($self->_visitorCacheOk) {
|
||||
eval{$cache->set($self->_visitorCacheKey, $out, $self->visitorCacheTimeout)};
|
||||
$cache->set($self->_visitorCacheKey, $out, $self->visitorCacheTimeout);
|
||||
}
|
||||
return $out;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -190,7 +190,7 @@ See WebGUI::Asset::purgeCache() for details.
|
|||
|
||||
override purgeCache => sub {
|
||||
my $self = shift;
|
||||
eval{$self->session->cache->delete("view_".$self->getId)};
|
||||
$self->session->cache->remove("view_".$self->getId);
|
||||
super();
|
||||
};
|
||||
|
||||
|
|
@ -209,7 +209,7 @@ sub view {
|
|||
# Use cached version for visitors
|
||||
my $cache = $self->session->cache;
|
||||
if ($self->session->user->isVisitor) {
|
||||
my $out = eval{$cache->get("view_".$self->getId)};
|
||||
my $out = $cache->get("view_".$self->getId);
|
||||
return $out if $out;
|
||||
}
|
||||
|
||||
|
|
@ -274,7 +274,7 @@ sub view {
|
|||
|
||||
# Update the cache
|
||||
if ($self->session->user->isVisitor) {
|
||||
eval{$cache->set("view_".$self->getId, $out, $self->visitorCacheTimeout)};
|
||||
$cache->set("view_".$self->getId, $out, $self->visitorCacheTimeout);
|
||||
}
|
||||
|
||||
return $out;
|
||||
|
|
|
|||
|
|
@ -342,34 +342,6 @@ use WebGUI::HTML;
|
|||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 addChild ( properties, [...] )
|
||||
|
||||
Add a child to this asset. See C<WebGUI::AssetLineage> for more info.
|
||||
|
||||
Overridden to ensure that only GalleryAlbums are added to Galleries.
|
||||
|
||||
=cut
|
||||
|
||||
sub addChild {
|
||||
my $self = shift;
|
||||
my $properties = shift;
|
||||
my $albumClass = "WebGUI::Asset::Wobject::GalleryAlbum";
|
||||
|
||||
# Load the class
|
||||
WebGUI::Pluggable::load( $properties->{className} );
|
||||
|
||||
if ( !$properties->{className}->isa( $albumClass ) ) {
|
||||
$self->session->errorHandler->security(
|
||||
"add a ".$properties->{className}." to a ".$self->className
|
||||
);
|
||||
return undef;
|
||||
}
|
||||
|
||||
return $self->next::method( $properties, @_ );
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 appendTemplateVarsSearchForm ( var )
|
||||
|
||||
Appends the template vars for the search form to the hash reference C<var>.
|
||||
|
|
|
|||
|
|
@ -269,8 +269,8 @@ override purgeCache => sub {
|
|||
my $self = shift;
|
||||
my $cache = $self->session->cache;
|
||||
eval {
|
||||
$cache->delete([$self->proxiedUrl,"URL"]);
|
||||
$cache->delete([$self->proxiedUrl,"HEADER"]);
|
||||
$cache->remove($self->proxiedUrl."_URL");
|
||||
$cache->remove($self->proxiedUrl."_HEADER");
|
||||
};
|
||||
super();
|
||||
};
|
||||
|
|
@ -316,8 +316,8 @@ sub view {
|
|||
my $cache = $self->session->cache;
|
||||
if ($requestMethod =~ /^GET$/i) {
|
||||
eval {
|
||||
$var{header} = $cache->get([$proxiedUrl,'HEADER']);
|
||||
$var{content} = $cache->get([$proxiedUrl,"URL"]);
|
||||
$var{header} = $cache->get($proxiedUrl.'_HEADER');
|
||||
$var{content} = $cache->get($proxiedUrl."_URL");
|
||||
};
|
||||
}
|
||||
|
||||
|
|
@ -459,8 +459,8 @@ sub view {
|
|||
}
|
||||
unless ($self->cacheTimeout <= 10) {
|
||||
eval{
|
||||
$cache->set([$proxiedUrl,'URL'], $var{content}, $self->cacheTimeout);
|
||||
$cache->set([$proxiedUrl,'HEADER'], $var{header}, $self->cacheTimeout);
|
||||
$cache->set($proxiedUrl.'URL', $var{content}, $self->cacheTimeout);
|
||||
$cache->set($proxiedUrl.'HEADER', $var{header}, $self->cacheTimeout);
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -420,12 +420,12 @@ override www_view => sub {
|
|||
return $check if (defined $check);
|
||||
my $cacheKey = $self->getWwwCacheKey('view');
|
||||
my $cache = $session->cache;
|
||||
my $out = eval{ $cache->get($cacheKey) };
|
||||
my $out = $cache->get($cacheKey);
|
||||
unless ($out) {
|
||||
$self->prepareView;
|
||||
$session->stow->set("cacheFixOverride", 1);
|
||||
$out = $self->processStyle($self->view, { noHeadTags => 1 });
|
||||
eval{ $cache->set($cacheKey, $out, 60) };
|
||||
$cache->set($cacheKey, $out, 60);
|
||||
$session->stow->delete("cacheFixOverride");
|
||||
}
|
||||
# keep those ads rotating even though the output is cached
|
||||
|
|
|
|||
|
|
@ -85,6 +85,7 @@ property startZoom => (
|
|||
maximum => 19,
|
||||
label => ["startZoom label", 'Asset_Map'],
|
||||
hoverHelp => ["startZoom description", 'Asset_Map'],
|
||||
default => 1,
|
||||
);
|
||||
property templateIdEditPoint => (
|
||||
tab => "display",
|
||||
|
|
@ -116,6 +117,7 @@ property workflowIdPoint => (
|
|||
label => ["workflowIdPoint label", 'Asset_Map'],
|
||||
hoverHelp => ["workflowIdPoint description", 'Asset_Map'],
|
||||
type => 'WebGUI::VersionTag',
|
||||
default => "pbworkflow000000000003",
|
||||
);
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -486,7 +486,7 @@ sub getListings {
|
|||
|| ($versionTag && $versionTag->getId eq $self->tagId);
|
||||
my $cache = $session->cache;
|
||||
unless ($noCache) {
|
||||
$listingsEncoded = eval{$cache->get("matrixListings_".$self->getId)};
|
||||
$listingsEncoded = $cache->get("matrixListings_".$self->getId);
|
||||
}
|
||||
|
||||
if ($listingsEncoded){
|
||||
|
|
@ -526,7 +526,7 @@ assetData.revisionDate
|
|||
}
|
||||
|
||||
$listingsEncoded = JSON->new->encode($listings);
|
||||
eval{$cache->set("matrixListings_".$self->getId, $listingsEncoded, $self->listingsCacheTimeout)};
|
||||
$cache->set("matrixListings_".$self->getId, $listingsEncoded, $self->listingsCacheTimeout);
|
||||
}
|
||||
return $listings;
|
||||
}
|
||||
|
|
@ -647,7 +647,7 @@ sub view {
|
|||
|| ($versionTag && $versionTag->getId eq $self->tagId);
|
||||
my $cache = $session->cache;
|
||||
unless ($noCache) {
|
||||
$varStatisticsEncoded = eval{$cache->get("matrixStatistics_".$self->getId)};
|
||||
$varStatisticsEncoded = $cache->get("matrixStatistics_".$self->getId);
|
||||
}
|
||||
|
||||
if ($varStatisticsEncoded){
|
||||
|
|
@ -797,7 +797,7 @@ sub view {
|
|||
[$self->getId]);
|
||||
|
||||
$varStatisticsEncoded = JSON->new->encode($varStatistics);
|
||||
eval{$cache->set("matrixStatistics_".$self->getId, $varStatisticsEncoded, $self->statisticsCacheTimeout)};
|
||||
$cache->set("matrixStatistics_".$self->getId, $varStatisticsEncoded, $self->statisticsCacheTimeout);
|
||||
}
|
||||
|
||||
foreach my $statistic (keys %{$varStatistics}) {
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ See WebGUI::Asset::purgeCache() for details.
|
|||
|
||||
override purgeCache => sub {
|
||||
my $self = shift;
|
||||
eval{$self->session->cache->delete("view_".$self->getId)};
|
||||
$self->session->cache->remove("view_".$self->getId);
|
||||
super();
|
||||
};
|
||||
|
||||
|
|
@ -88,7 +88,7 @@ sub view {
|
|||
my $self = shift;
|
||||
my $cache = $self->session->cache;
|
||||
if ($self->session->user->isVisitor) {
|
||||
my $out = eval{$cache->get("view_".$self->getId)};
|
||||
my $out = $cache->get("view_".$self->getId);
|
||||
return $out if $out;
|
||||
}
|
||||
my %var;
|
||||
|
|
@ -153,7 +153,7 @@ sub view {
|
|||
|
||||
my $out = $self->processTemplate(\%var,undef,$self->{_viewTemplate});
|
||||
if ($self->session->user->isVisitor) {
|
||||
eval{$cache->set("view_".$self->getId, $out, $self->visitorCacheTimeout)};
|
||||
$cache->set("view_".$self->getId, $out, $self->visitorCacheTimeout);
|
||||
}
|
||||
return $out;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ See WebGUI::Asset::purgeCache() for details.
|
|||
|
||||
override purgeCache => sub {
|
||||
my $self = shift;
|
||||
eval{$self->session->cache->delete("view_".$self->getId)};
|
||||
eval{$self->session->cache->remove("view_".$self->getId)};
|
||||
super();
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -559,7 +559,7 @@ See WebGUI::Asset::purgeCache() for details.
|
|||
|
||||
override purgeCache => sub {
|
||||
my $self = shift;
|
||||
eval{$self->session->cache->delete("view_".$self->getId)};
|
||||
$self->session->cache->remove("view_".$self->getId);
|
||||
super();
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -115,23 +115,36 @@ Combines all feeds into a single XML::FeedPP object.
|
|||
sub generateFeed {
|
||||
my $self = shift;
|
||||
my $limit = shift || $self->maxHeadlines;
|
||||
my $session = $self->session;
|
||||
my ( $log, $cache ) = $session->quick(qw( log cache ));
|
||||
my $feed = XML::FeedPP::Atom->new();
|
||||
my $log = $self->session->log;
|
||||
|
||||
# build one feed out of many
|
||||
my $newlyCached = 0;
|
||||
my $cache = $self->session->cache;
|
||||
foreach my $url (split(/\s+/, $self->rssUrl)) {
|
||||
$log->info("Processing FEED: ".$url);
|
||||
$url =~ s/^feed:/http:/;
|
||||
if ($self->processMacroInRssUrl) {
|
||||
WebGUI::Macro::process($self->session, \$url);
|
||||
}
|
||||
my $value = eval{$cache->get($url)};
|
||||
unless ($value) {
|
||||
$value = eval{$cache->setByHttp($url, $self->cacheTimeout)};
|
||||
$newlyCached = 1;
|
||||
}
|
||||
|
||||
my $value = $cache->compute( $url, sub {
|
||||
my $ua = LWP::UserAgent->new(
|
||||
env_proxy => 1,
|
||||
agent => "WebGUI/" . $WebGUI::VERSION,
|
||||
timeout => 30,
|
||||
);
|
||||
|
||||
my $r = $ua->get( $url );
|
||||
if ( $r->is_error ) {
|
||||
$session->log->warn( "Could not get syndicated content from '$url': " . $r->status_line );
|
||||
}
|
||||
else {
|
||||
$newlyCached = 1;
|
||||
return $r->decoded_content;
|
||||
}
|
||||
}, $self->cacheTimeout );
|
||||
|
||||
# if the content can be downgraded, it is either valid latin1 or didn't have
|
||||
# an HTTP Content-Encoding header. In the second case, XML::FeedPP will take
|
||||
# care of any encoding specified in the XML prolog
|
||||
|
|
@ -142,7 +155,7 @@ sub generateFeed {
|
|||
$feed->merge_item($singleFeed);
|
||||
};
|
||||
if ($@) {
|
||||
$log->error("Syndicated Content asset (".$self->getId.") has a bad feed URL (".$url."). Failed with ".$@);
|
||||
$log->warn("Syndicated Content asset (".$self->getId.") has a bad feed URL (".$url."). Failed with ".$@);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -159,7 +172,7 @@ sub generateFeed {
|
|||
}
|
||||
}
|
||||
|
||||
my %seen = {};
|
||||
my %seen = ();
|
||||
my @items = $feed->get_item;
|
||||
$feed->clear_item;
|
||||
ITEM: foreach my $item (@items) {
|
||||
|
|
@ -306,7 +319,7 @@ See WebGUI::Asset::purgeCache() for details.
|
|||
|
||||
override purgeCache => sub {
|
||||
my $self = shift;
|
||||
eval{$self->session->cache->delete("view_".$self->getId)};
|
||||
$self->session->cache->remove("view_".$self->getId);
|
||||
super();
|
||||
};
|
||||
|
||||
|
|
@ -324,7 +337,7 @@ sub view {
|
|||
|
||||
# try the cached version
|
||||
my $cache = $session->cache;
|
||||
my $out = eval{$cache->get("view_".$self->getId)};
|
||||
my $out = $cache->get("view_".$self->getId);
|
||||
return $out if ($out ne "" && !$session->var->isAdminOn);
|
||||
#return $out if $out;
|
||||
|
||||
|
|
@ -332,7 +345,7 @@ sub view {
|
|||
my $feed = $self->generateFeed;
|
||||
$out = $self->processTemplate($self->getTemplateVariables($feed),undef,$self->{_viewTemplate});
|
||||
if (!$session->var->isAdminOn && $self->cacheTimeout > 10) {
|
||||
eval{$cache->set("view_".$self->getId, $out, $self->cacheTimeout)};
|
||||
$cache->set("view_".$self->getId, $out, $self->cacheTimeout);
|
||||
}
|
||||
return $out;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2656,7 +2656,7 @@ sub www_export {
|
|||
push(@fieldLabels,@metaDataFields)
|
||||
}
|
||||
|
||||
$query = eval{$session->cache->get("query_".$thingId)};
|
||||
$query = $session->cache->get("query_".$thingId);
|
||||
$sth = $session->db->read($query);
|
||||
|
||||
### Loop through the returned structure and put it through Text::CSV
|
||||
|
|
@ -3301,7 +3301,7 @@ sequenceNumber');
|
|||
}
|
||||
|
||||
# store query in cache for thirty minutes
|
||||
eval{$self->session->cache->set("query_".$thingId, $query, 30*60)};
|
||||
$self->session->cache->set("query_".$thingId, $query, 30*60);
|
||||
|
||||
$paginatePage = $self->session->form->param('pn') || 1;
|
||||
$currentUrl = $self->session->url->append($currentUrl, "orderBy=".$orderBy) if $orderBy;
|
||||
|
|
|
|||
|
|
@ -187,6 +187,7 @@ with 'WebGUI::Role::Asset::RssFeed';
|
|||
use WebGUI::International;
|
||||
use HTML::Parser;
|
||||
use URI::Escape;
|
||||
use WebGUI::Utility qw/isIn/;
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue