FWS-V2
view release on metacpan or search on metacpan
lib/FWS/V2/Display.pm view on Meta::CPAN
# site level css and js
#
$pageHead .= $self->siteValue( 'siteHead' );
if ( $self->siteValue( 'cssDevel' ) > 0 ) {
$self->_cssEnable( $self->{siteGUID} . "/assets/FWSElement-" . $self->siteValue( 'cssDevel' ) );
$somethingIsOnThePage = 1;
}
if ( $self->siteValue( 'jsDevel' ) > 0 ) {
$self->_jsEnable( $self->{siteGUID} . "/assets/FWSElement-" . $self->siteValue( 'jsDevel' ) );
$somethingIsOnThePage = 1;
}
#
# Page level CSS
#
$pageHead .= $pageHash{pageHead};
if ( $pageHash{cssDevel} > 0 ) {
$self->_cssEnable( $self->{siteGUID} . "/" . $pageId . "/FWSElement-" . $pageHash{cssDevel} );
$somethingIsOnThePage = 1;
}
if ( $pageHash{jsDevel} > 0 ) {
$self->_jsEnable( $self->{siteGUID} . "/" . $pageId . "/FWSElement-" . $pageHash{jsDevel} );
$somethingIsOnThePage = 1;
}
#
# set page head
#
$self->siteValue( 'pageHead', $pageHead );
#
# if the pageTitle ends with ' - ' then eat it
#
( my $cleanTitle = $self->siteValue( 'pageTitle' ) ) =~ s/\s*(-|\|)\s*$//g;
$self->siteValue( 'pageTitle', $cleanTitle );
my @elements = $self->openRS("select distinct d1.extra_value, d1.site_guid, x2.layout, d1.active, x1.ord+(d1.default_element*100000) as real_ord, x1.layout, d1.disable_edit_mode, d1.groups_guid, d1.guid, d1.element_type, d1.name, d1.title...
#
# set the pageTitle Hash into a fws var
#
$self->formValue( 'fws_pageTitle' , $pageHash{pageTitle} );
$self->formValue( 'fws_pageNavigationName' , $pageHash{name} );
$self->formValue( 'fws_pageReferenceId' , $pageHash{name} );
$self->formValue( 'fws_pageId' , $pageHash{guid} );
$self->formValue( 'fws_secureDomain' , $self->{secureDomain} );
$self->formValue( 'fws_domain' , $self->{domain} );
#
# Mech to figure out what number layout in the list we are so we can set class based on location ancestory
#
my %layoutCountHash;
my $columnWrapperStartFlag = 0;
my $columnWrapperStopFlag = 0;
my $lastLayoutId = 0;
my $elementTotal = 0;
my %columnContent;
my %columnCount;
my $FWSMenu;
#
# set the hash we use to ensure we don't use an default element more than once on the same page
#
my %elementUsed;
#
# here is some js and css hashs so we don't add multipuls to each page if ther eis more than one element that has the same file on one page
#
my %JSHash;
my %CSSHash;
while ( @elements ) {
#
# start with ext hash, and then overwrite if there is conflicts
#
my $extraValue = shift @elements;
my %valueHash = $self->mergeExtra( $extraValue );
$valueHash{siteGUID} = shift @elements;
my $elementTemplateId = shift @elements;
$valueHash{active} = shift @elements;
$valueHash{ord} = shift @elements;
$valueHash{layout} = shift @elements;
$valueHash{disableEditMode} = shift @elements;
$valueHash{userGroup} = shift @elements;
$valueHash{guid} = shift @elements;
$valueHash{type} = shift @elements;
$valueHash{name} = shift @elements;
$valueHash{title} = shift @elements;
$valueHash{showResubscribe} = shift @elements;
$valueHash{showLogin} = shift @elements;
$valueHash{showMobile} = shift @elements;
$valueHash{lang} = shift @elements;
$valueHash{friendlyURL} = shift @elements;
$valueHash{pageFriendlyURL} = shift @elements;
$valueHash{defaultElement} = shift @elements;
$valueHash{disableTitle} = shift @elements;
$valueHash{navigationName} = shift @elements;
#
# make sure userGroup is numeric
#
$valueHash{userGroup} ||= 0;
#
# if title is blank, lets use name
#
$valueHash{title} ||= $valueHash{name};
#
# a couple of presets we will need
#
$valueHash{editBoxColor} = "#FF0000";
#
# This should be legacy at some point and replaced with pageGUID... we will address later
#
$valueHash{parent} = $pageId;
lib/FWS/V2/Display.pm view on Meta::CPAN
#
my $editBox;
$columnContent{$valueHash{layout}} .= "<div" . $editBox . " class=\"" . $valueHash{layout} . "_element element_" . $valueHash{guid} . "\" id=\"" . $valueHash{layout} . "_element_" . $columnCount{$valueHash{layout}} . "\">";
if ( ( $self->{adminLoginId} && $valueHash{siteGUID} eq $self->{siteGUID} && !$self->formValue( 'FWS_showElementOnly' ) && !$showElementOnly && !$valueHash{disableEditMode} && $self->formValue( 'editMode' ) ) ) {
$columnContent{$valueHash{layout}} .= $self->editBox( %valueHash, AJAXDivStyle => 'border: solid 1px #FF0000;border-top: 0;', editBoxContent => $html );
}
else {
$columnContent{$valueHash{layout}} .= $html;
}
$elementTotal++;
$columnContent{$valueHash{layout}} .= "</div>";
}
}
}
#
# check if this is the home page, with no stuff on it, if not we need to dump to login, or redirect to fws_systemInfo
# only do this for the site though, if your making blank other sites for other reasons lets just let that happen
#
if ( $elementTotal < 1 && $pageId eq $self->homeGUID() && !$somethingIsOnThePage && $self->formValue( 's' ) eq 'site' ) {
if ( $self->{adminLoginId} ) {
print "Status: 302 Found\n";
print "Location: " . $self->{scriptName} . $self->{queryHead} . "p=fws_systemInfo\n\n";
}
else {
$self->displayAdminLogin();
}
}
if ( !$showElementOnly ) {
$pageHTML = $templateHash{template};
#
# Put in the edit mode box if we are in edit mod and loged in as the correct user for this site
#
if ( $self->{adminLoginId} ) {
#
# set all the things we could need
#
$self->{tinyMCEEnable} = 1;
$self->jqueryEnable( 'ui-1.8.9' );
$self->jqueryEnable( 'ui.widget-1.8.9' );
$self->jqueryEnable( 'ui.mouse-1.8.9' );
$self->jqueryEnable( 'ui.datepicker-1.8.9' );
$self->jqueryEnable( 'ui.slider-1.8.9' );
$self->jqueryEnable( 'timepickr-0.9.6' );
$self->jqueryEnable( 'ui.tabs-1.8.9' );
$self->jqueryEnable( 'simplemodal-1.4.4' );
$self->jqueryEnable( 'fileupload-ui-4.4.1' );
$self->jqueryEnable( 'fileupload-4.5.1' );
$self->jqueryEnable( 'fileupload-uix-4.6' );
$self->jqueryEnable( 'ui.fws-1.8.9' );
if ( $pageId eq $self->homeGUID() ) { $pageHash{disableDeleteTool} = 1 }
$pageHash{layout} = 'FWSPageMenu';
$pageHash{guid} = $pageId;
$pageHash{FWSMenuTool} = 1;
$pageHash{pageOnly} = 1;
$pageHash{alwaysShow} = 1;
$pageHash{disableActiveTool} = 1;
$pageHash{disableOrderTool} = 1;
if ( $pageHash{siteGUID} eq $self->{siteGUID} ) {
$pageHash{name} = $self->FWSMenu( pageId => $pageId ) . $pageHash{name};
}
else {
$pageHash{addElementTool} = 0;
$pageHash{disableDeleteTool} = 1;
$pageHash{disableEditTool} = 1;
$pageHash{disableActiveTool} = 1;
$pageHash{disableOrderTool} = 1;
$pageHash{name} = "Default FWS Page - To override this page create a new page with the friendly url of [ " . $pageHash{friendlyURL} . " ]";
}
#
# if we are not able to see the buttons lets kill them
#
if ( ( !$self->userValue( 'showDesign' ) && !$self->userValue( 'showContent' ) && !$self->userValue( 'showDeveloper' ) ) || ( $pageHash{siteGUID} ne $self->{siteGUID} ) ) {
$pageHash{addElementTool} = 0;
$pageHash{disableDeleteTool} = 1;
$pageHash{disableEditTool} = 1;
$pageHash{disableActiveTool} = 1;
$pageHash{disableOrderTool} = 1;
}
$pageHash{editBoxColor} = '#000000';
$FWSMenu .= $self->editBox( %pageHash );
}
#
# before we print head and foot css and js we need to compile and set cache
#
$self->setPageCache();
#
# add the head where it goes
#
my $FWSHead = $self->FWSHead();
$pageHTML =~ s/#FWSHead#/$FWSHead/g;
#
# add the menu
#
$pageHTML =~ s/#FWSMenu#/$FWSMenu/g;
#
# Clean up the adminLoggedIn stuff
#
$pageHTML =~ s/#FWSAdminLoggedIn#//g;
$pageHTML =~ s/#FWSAdminLoggedInEnd#//g;
#
# but all non-main info in the page
#
while ( $templateHash{template} =~ /#FWSShow-(.*?)#/g ) {
my $layout = $1;
if ( $layout ne 'main' ) {
#
# add it to the page
#
$pageHTML = $self->_replaceContentColumn(
layout => $layout,
html => $pageHTML,
content => $columnContent{$layout},
guid => $pageId,
contentType => 'FWSShow',
pageType => $pageHash{type},
siteGUID => $pageHash{siteGUID},
);
#
# delete it so we don't add it to main in the next section
#
delete $columnContent{$layout};
}
}
#
# but all non-main info in the page
#
while ( $templateHash{template} =~ /#FWSShowNoHeader-(.*?)#/g ) {
my $layout = $1;
if ( $layout ne 'main' ) {
#
# add it to the page
#
$pageHTML = $self->_replaceContentColumn(
layout => $layout,
html => $pageHTML,
content => $columnContent{$layout},
guid => $pageId,
contentType => 'FWSShowNoHeader',
pageType => $pageHash{type},
siteGUID => $pageHash{siteGUID},
);
#
# delete it so we don't add it to main in the next section
#
delete $columnContent{$layout};
}
}
( run in 0.633 second using v1.01-cache-2.11-cpan-39bf76dae61 )