CssWork: Difference between revisions
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. | ||
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
- Link: http://soylentnews.org/article.pl?sid=14/02/18/0336229
- article.pl is foind in slash/themes/slashcode/htdocs/article.pl So 'slashcode' is treated as a theme.
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