CssWork: Difference between revisions

From SoylentNews
Jump to navigation Jump to search
No edit summary
No edit summary
Line 3: Line 3:
The is an index for css discoveries, etc. Testing idea... Brought to you by the Frontend Team.
The is an index for css discoveries, etc. Testing idea... Brought to you by the Frontend Team.


<h3>test</h3>




Line 152: Line 150:
sub _ref { ref $_[0] }
sub _ref { ref $_[0] }
sub tempWarn {
sub tempWarn {
</pre>
<h4>MySQL.pm</h4>
<pre>
479 sub getCSS {
480        my($self, $layout) = @_;
481        my $user = getCurrentUser();
482        my $page = $user->{currentPage};
483        my $skin = getCurrentSkin('name');
484        my $admin = $user->{is_admin};
485        my $theme = ($user->{simpledesign} || $user->{pda}) ? "light" : $user->{css_theme};
486        my $secure = apacheConnectionSSL();
487        $layout ||= '';
488        my $constants = getCurrentStatic();
489
490        my $expire_time = $constants->{css_expire} || 3600;
491        $expire_time += int(rand(60)) if $expire_time;
492        _genericCacheRefresh($self, 'css', $expire_time);
493        _genericCacheRefresh($self, 'css_pages', $expire_time);
494        _genericCacheRefresh($self, 'css_skins', $expire_time);
495        _genericCacheRefresh($self, 'css_themes', $expire_time);
496
497        my $css_ref            = $self->{_css_cache} ||= {};
498        my $css_pages_ref      = $self->{_css_pages_cache};
499        my $css_skins_ref      = $self->{_css_skins_cache};
500        my $css_themes_ref      = $self->{_css_themes_cache};
501        my $css_layouts_ref    = $self->{_css_layouts_cache};
502
503        $css_pages_ref = $self->getCSSValuesHashForCol('page') if !$css_pages_ref;
504        $css_skins_ref = $self->getCSSValuesHashForCol('skin') if !$css_skins_ref;
505        $css_themes_ref = $self->getCSSValuesHashForCol('theme') if !$css_themes_ref;
506        $css_layouts_ref = $self->getCSSValuesHashForCol('layout') if !$css_layouts_ref;
507
508        my $lowbandwidth = ($user->{lowbandwidth} || $user->{pda}) ? "yes" : "no";
509
510        $page  = '' if !$css_pages_ref->{$page};
511        $skin  = '' if !$css_skins_ref->{$skin};
512        $theme  = '' if !$css_themes_ref->{$theme};
513        $layout = '' if !$css_layouts_ref->{$layout};
514
515        return $css_ref->{$skin}{$page}{$admin}{$theme}{$lowbandwidth}{$layout}{$secure}
516                if exists $css_ref->{$skin}{$page}{$admin}{$theme}{$lowbandwidth}{$layout}{$secure};
517
518        my @clauses;
519
520        my $page_q = $self->sqlQuote($page);
521        my $page_in = $page ? "(page = '' or page = $page_q)" : "page = ''";
522        push @clauses, $page_in;
523
524        my $skin_in = $skin ? "(skin = '' or skin = '$skin')" : "skin = ''";
525        push @clauses, $skin_in;
526
527        push @clauses, "admin='no'" if !$admin;
528
529        my $theme_q  = $self->sqlQuote($theme);
530        my $theme_in = $theme ? "(theme='' or theme=$theme_q)" : "theme=''";
531        push @clauses, $theme_in;
532
533        push @clauses, "lowbandwidth='$lowbandwidth'" if $lowbandwidth eq "no";
534
535        my $layout_q = $self->sqlQuote($layout);
536        push @clauses, "layout=$layout_q";
537
538        my $where = "css.ctid=css_type.ctid AND ";
539        $where .= join ' AND ', @clauses;
540
541        my $css = $self->sqlSelectAllHashrefArray("rel,type,media,file,title,ie_cond,skin",
542                "css, css_type", $where, "ORDER BY css_type.ordernum, css.ordernum");
543        if ($secure) {
544                for my $hr (@$css) { $hr->{file} =~ s/\.css/.ssl.css/ }
545        }
546       
547        $css_ref->{$skin}{$page}{$admin}{$theme}{$lowbandwidth}{$layout}{$secure} = $css;
548        return $css;
549 }
550
</pre>
</pre>

Revision as of 03:06, 19 February 2014

This is a title

The is an index for css discoveries, etc. Testing idea... Brought to you by the Frontend Team.


Order css files are loaded when simple switch on user prefs page is selected viewing main page main page

  • base.css?T_2_5_0_272
  • slashcode.css?T_2_5__0_272
  • slashcode_lite.css?T_2_5__0_272
  • slashcode_lite.css?T_2_5__0_272 (appears to be loading this twice,why?)
  • print.cssT_2_5__0_272

Follow a page link from the main page to an individual article page

article.pl

The stuff of interest to us


use Slash;  -------- located in /local/lib64/perl5/slash.pm
use Slash::Display;     
use Slash::Utility;

sub main {
        my $slashdb   = getCurrentDB();
        my $constants = getCurrentStatic();
        my $user      = getCurrentUser();
        my $form      = getCurrentForm();
        my $gSkin     = getCurrentSkin();
         
        my $story;
        my $reader = getObject('Slash::DB', { db_type => 'reader' });

                # Make sure the reader is viewing this story in the
                # proper skin.
                my $cur_skid = determineCurrentSkin();
                if ($story->{primaryskid} != $cur_skid) {
                        my $cur_skin = $reader->getSkin($cur_skid);
                        my $story_skin = $reader->getSkin($story->{primaryskid});
                        if ($story_skin && $story_skin->{rootdir}
                                && $story_skin->{rootdir} ne $cur_skin->{rootdir})$
                                redirect("$story_skin->{rootdir}$ENV{REQUEST_URI}"$
                                return;

               # XXXSECTIONTOPICS this needs to be updated
                my $SECT = $reader->getSection($story->{section});
                # This should be a getData call for title
                my $title = "$constants->{sitename} | $story->{title}";
                if ($gSkin->{name} && $gSkin->{name} eq "idle") {
                        $title = "$gSkin->{hostname} | $story->{title}";
                
if (my $pollbooth_db = getObject('Slash::PollBooth')) {


slashDisplay('display', {
                        poll                    => $pollbooth,
                        section                 => $SECT,
                        section_block           => $reader->getBlock($SECT->{secti$
                        show_poll               => $pollbooth ? 1 : 0,
                        story                   => $story,
                        stories                 => \%stories,
                });


               my $called_pc = 0;
                if ($story->{discussion}) {
                        # Still not happy with this logic -Brian
                        my $discussion = $reader->getDiscussion($story->{discussio$

                        }
                        # If no comments ever have existed and commentstatus is di$
                        # just skip the display of the comment header bar -Brian

                               &&  $discussion->{commentstatus} eq 'disabled'
                        )) {
                                printComments($discussion);
                                $called_pc = 1;
                        }
                 if (!$called_pc && $form->{ssi} && $form->{ssi} eq 'yes' && $form-$
                        # This is a real hack, we're kind of skipping down
                        # two levels of code.  But the cchp printing is an
                        # important optimization;  we avoid having to do
                        # multiple expensive comment selects.  One problem
                        # is that if there's no discussion with a story,
                        # printComments() doesn't get called, which means
                        # selectComments() doesn't get called, which means
                        # the cchp file won't be written.  If article.pl
                       # is being called by slashd, and we need to write
                        # that file, then here's where we print an empty
                        # file that will satisfy slashd. - Jamie

                        Slash::Utility::Comments::_print_cchp({ stoid => "dummy" }$
                }
        } else {
                header('Error', $form->{section}) or return;
       
       my $plugins = $slashdb->getDescriptions('plugins');
        if (!$user->{is_anon} && $plugins->{Tags} && $story) {
                my $tagsdb = getObject('Slash::Tags');
                $tagsdb->markViewed($user->{uid},
                        $reader->getGlobjidCreate('stories', $story->{stoid}));
        }
                        
        footer();
        if ($story) {
                writeLog($story->{sid} || $sid);
        } else { 
                writeLog($sid);

               
createEnvironment();
main();  
1; 

(EOF)


Slash.pm

in /usr/local/lib64/perl5/

in root@mike2 perl5 # grep '^sub' Slash.pm 
sub dispStory {
sub displayStory {
sub displayRelatedStories {
sub getOlderStories {
sub getOlderDays {
sub getOlderDaysFromDay {
sub getData {
sub _dataCacheRefresh {

display.pm

In local/lib64/slash/display.pm

root@mike2 Slash # grep '^sub' Display.pm 
sub slashDisplay {
sub slashDisplayName {
sub get_template {
sub _ref { ref $_[0] }
sub tempWarn {

MySQL.pm


479 sub getCSS {
480         my($self, $layout) = @_;
481         my $user = getCurrentUser();
482         my $page = $user->{currentPage};
483         my $skin = getCurrentSkin('name');
484         my $admin = $user->{is_admin};
485         my $theme = ($user->{simpledesign} || $user->{pda}) ? "light" : $user->{css_theme};
486         my $secure = apacheConnectionSSL();
487         $layout ||= '';
488         my $constants = getCurrentStatic();
489
490         my $expire_time = $constants->{css_expire} || 3600;
491         $expire_time += int(rand(60)) if $expire_time;
492         _genericCacheRefresh($self, 'css', $expire_time);
493         _genericCacheRefresh($self, 'css_pages', $expire_time);
494         _genericCacheRefresh($self, 'css_skins', $expire_time);
495         _genericCacheRefresh($self, 'css_themes', $expire_time);
496
497         my $css_ref             = $self->{_css_cache} ||= {};
498         my $css_pages_ref       = $self->{_css_pages_cache};
499         my $css_skins_ref       = $self->{_css_skins_cache};
500         my $css_themes_ref      = $self->{_css_themes_cache};
501         my $css_layouts_ref     = $self->{_css_layouts_cache};
502
503         $css_pages_ref = $self->getCSSValuesHashForCol('page') if !$css_pages_ref;
504         $css_skins_ref = $self->getCSSValuesHashForCol('skin') if !$css_skins_ref;
505         $css_themes_ref = $self->getCSSValuesHashForCol('theme') if !$css_themes_ref;
506         $css_layouts_ref = $self->getCSSValuesHashForCol('layout') if !$css_layouts_ref;
507
508         my $lowbandwidth = ($user->{lowbandwidth} || $user->{pda}) ? "yes" : "no";
509
510         $page   = '' if !$css_pages_ref->{$page};
511         $skin   = '' if !$css_skins_ref->{$skin};
512         $theme  = '' if !$css_themes_ref->{$theme};
513         $layout = '' if !$css_layouts_ref->{$layout};
514
515         return $css_ref->{$skin}{$page}{$admin}{$theme}{$lowbandwidth}{$layout}{$secure}
516                 if exists $css_ref->{$skin}{$page}{$admin}{$theme}{$lowbandwidth}{$layout}{$secure};
517
518         my @clauses;
519
520         my $page_q = $self->sqlQuote($page);
521         my $page_in = $page ? "(page = '' or page = $page_q)" : "page = ''";
522         push @clauses, $page_in;
523
524         my $skin_in = $skin ? "(skin = '' or skin = '$skin')" : "skin = ''";
525         push @clauses, $skin_in;
526
527         push @clauses, "admin='no'" if !$admin;
528
529         my $theme_q  = $self->sqlQuote($theme);
530         my $theme_in = $theme ? "(theme='' or theme=$theme_q)" : "theme=''";
531         push @clauses, $theme_in;
532
533         push @clauses, "lowbandwidth='$lowbandwidth'" if $lowbandwidth eq "no";
534
535         my $layout_q = $self->sqlQuote($layout);
536         push @clauses, "layout=$layout_q";
537
538         my $where = "css.ctid=css_type.ctid AND ";
539         $where .= join ' AND ', @clauses;
540
541         my $css = $self->sqlSelectAllHashrefArray("rel,type,media,file,title,ie_cond,skin",
542                 "css, css_type", $where, "ORDER BY css_type.ordernum, css.ordernum");
543         if ($secure) {
544                 for my $hr (@$css) { $hr->{file} =~ s/\.css/.ssl.css/ }
545         }
546         
547         $css_ref->{$skin}{$page}{$admin}{$theme}{$lowbandwidth}{$layout}{$secure} = $css;
548         return $css;
549 }
550