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 )