Historic: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