CssWork: Difference between revisions

From SoylentNews
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
<h2>This is a title </h2>


The is an index for css discoveries, etc. Testing idea... Brought to you by the Frontend Team.
<h2>Related pages  </h2>


* [[FileLocations]] Locations of important files on disk
* [[AvailableThemes]] and how they are organized
* [[CssFilesUsedEachPage]] Which css files are used on different pages




<h3>Order css files are loaded when simple switch on user prefs page is selected viewing main page main page</h3>
 
<h2>Order css files are loaded when simple switch on user prefs page is selected viewing main page main page</h2>


* base.css?T_2_5_0_272
* base.css?T_2_5_0_272
Line 13: Line 16:
* print.cssT_2_5__0_272
* print.cssT_2_5__0_272


<h3>Follow a page link from the main page to an individual article page </h3>
<h2>Follow a page link from the main page to an individual article page </h2>


* Link: http://soylentnews.org/article.pl?sid=14/02/18/0336229
* Link: http://soylentnews.org/article.pl?sid=14/02/18/0336229

Revision as of 06:24, 19 February 2014

Related pages


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 {

Slash/DB/MySQL/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 


more stuff in local/lib64/slash

Apache.pm:sub SlashVirtualUser ($$$) {
Apache.pm:sub SlashSetVar ($$$$) {
Apache.pm:sub SlashSetForm ($$$$) {
Apache.pm:sub SlashCompileTemplates ($$$) {
Apache.pm:sub ProxyRemoteAddr ($) {
Apache.pm:sub ConnectionIsSSL {
Apache.pm:sub ConnectionIsSecure {
Apache.pm:sub IndexHandler {
Apache.pm:sub DESTROY { }
Client.pm:sub new {
Client.pm:sub soap {
Client.pm:sub find_cookie_file {
Client.pm:sub bakeUserCookie {
Client.pm:sub literal {
Client.pm:sub fixparam {
Constants.pm:sub constants {
DB.pm:sub new {
DB.pm:sub isInstalled {
DB.pm:sub init {
DB.pm:sub DESTROY {
Display.pm:sub slashDisplay {
Display.pm:sub slashDisplayName {
Display.pm:sub get_template {
Display.pm:sub _ref { ref $_[0] }
Display.pm:sub tempWarn {
Hook.pm:sub slashHook {
Install.pm:sub new {
Install.pm:sub create {
Install.pm:sub delete {
Install.pm:sub deleteByID  {
Install.pm:sub get {
Install.pm:sub exists {
Install.pm:sub getValue {
Install.pm:sub getByID {
Install.pm:sub readTemplateFile {
Install.pm:sub writeTemplateFile {
Install.pm:sub installTheme {
Install.pm:sub installThemes {
Install.pm:sub installPlugin {
Install.pm:sub installPlugins {
Install.pm:sub installTagbox {
Install.pm:sub installTagboxes {
Install.pm:sub _munge_line {
Install.pm:sub _process_fh_into_sql {
Install.pm:sub _install {
Install.pm:sub getPluginList {
Install.pm:sub getThemeList {
Install.pm:sub getTagboxList {
Install.pm:sub getSiteTemplates {
Install.pm:sub _parseFilesForTemplates {
Install.pm:sub _getList {
Install.pm:sub setListOrder {
Install.pm:sub setListInstallOrder {
Install.pm:sub reloadArmors {
Plugin.pm:sub isInstalled {
Slashboxes.pm:sub getUserSlashboxes {
Slashboxes.pm:sub displaySlashboxes {
Test.pm:sub import {
Test.pm:sub slashTest {
Test.pm:sub Display {
Test.pm:sub Test {
Test.pm:sub _getTemplate {
Tools.pm:sub import {
Tools.pm:sub syntax_check {
Tools.pm:sub basefile {
Tools.pm:sub srcfile {
Tools.pm:sub installfile {
Tools.pm:sub counterpart {
Tools.pm:sub _getpackage {
Tools.pm:sub pathpm {
Tools.pm:sub pmpathsrc {
Tools.pm:sub pmpath {
Tools.pm:sub myprint {
Tools.pm:sub myexit {
Tools.pm:sub myask {
Tools.pm:sub mysystem {
Tools.pm:sub new {
Tools.pm:sub front {
Tools.pm:sub frontpath {
Tools.pm:sub output {
Tools.pm:sub file {
Tools.pm:sub do_prep {
Tools.pm:sub do {
Tools.pm:sub gitdiff {
Tools.pm:sub diff {
Tools.pm:sub new {
Tools.pm:sub set_type {
XML.pm:sub xmlDisplay {
XML.pm:sub date2iso8601 {
XML.pm:sub encode {



Slash/Apache/User/User.pm


548 {
549 my %ops_my = (
550         inbox           => { args => 'op=list', uri => 'messages.pl' },
551         # XXX change messages to be same as /inbox, move this to /my/preferences/messages
552         messages        => { args => 'op=display_prefs', uri => 'messages.pl' },
553         comments        => { args => 'op=editcomm' },
554         homepage        => { args => 'op=edithome' },
555         password        => { args => 'op=changeprefs', uri => 'login.pl' },
556         logout          => { args => 'op=userclose', uri => 'login.pl' },
557         misc            => { args => 'op=editmiscopts' },
558         amigos          => { args => 'op=friendview', uri => 'journal.pl' },
559         bookmarks       => { args => 'op=showbookmarks' },
560         firehose        => { args => 'op=userfirehose' },
561         preferences     => { args => 'op=displayprefs', uri => 'preferences.pl' },
562         tags            => { args => 'op=showtags' },
563         journal         => { args => 'op=list', uri => 'journal.pl' },
564
565         friends         => { args => 'op=friends', uri  => 'zoo.pl' },
566         fans            => { args => 'op=fans', uri  => 'zoo.pl' },
567         freaks          => { args => 'op=freaks', uri  => 'zoo.pl' },
568         foes            => { args => 'op=foes', uri  => 'zoo.pl' },
569         zoo             => { args => 'op=all', uri  => 'zoo.pl' },
570
571         default         => { args => 'op=edituser' }
572 );

sql/mysql/defaults.sql

 134 INSERT INTO css (rel, type, media, file, title, skin, page, admin, theme, ctid, ordernum, ie_cond, lowbandwidth) VALUES ('stylesheet','text/css','screen, projection','base.css','','','','no','',1,0, "","no");
135 INSERT INTO css (rel, type, media, file, title, skin, page, admin, theme, ctid, ordernum, ie_cond, lowbandwidth) VALUES ('stylesheet','text/css','screen, projection','comments.css','','','comments','no','',2,0, "","no");
136 INSERT INTO css (rel, type, media, file, title, skin, page, admin, theme, ctid, ordernum, ie_cond, lowbandwidth) VALUES ('stylesheet','text/css','screen, projection','comments.css','','','article','no','',2,0, "","no");
137 INSERT INTO css (rel, type, media, file, title, skin, page, admin, theme, ctid, ordernum, ie_cond, lowbandwidth) VALUES ('stylesheet','text/css','print','print.css','','','','no','',5,0, "","no");
138 INSERT INTO css (rel, type, media, file, title, skin, page, admin, theme, ctid, ordernum, ie_cond, lowbandwidth) VALUES ('stylesheet','text/css','screen, projection','admin.css','','','','yes','',1,0, "","no");
139 INSERT INTO css (rel, type, media, file, title, skin, page, admin, theme, ctid, ordernum, ie_cond, lowbandwidth) VALUES ('stylesheet','text/css','screen, projection','comments.css','','','pollBooth','no','',2,0, "","no");
140 INSERT INTO css (rel, type, media, file, title, skin, page, admin, theme, ctid, ordernum, ie_cond, lowbandwidth) VALUES ('stylesheet','text/css','screen, projection','slashcode_lite.css','','','','no','light',4,0, "","no");
141 INSERT INTO css (rel, type, media, file, title, skin, page, admin, theme, ctid, ordernum, ie_cond, lowbandwidth) VALUES ('stylesheet','text/css','screen, projection','comments.css','','','journal','no','',2,0, "","no");
142 INSERT INTO css (rel, type, media, file, title, skin, page, admin, theme, ctid, ordernum, ie_cond, lowbandwidth) VALUES ('stylesheet','text/css','screen, projection','slashcode_lite.css','','','','no','light',4,0, "","no");
143 INSERT INTO css (rel, type, media, file, title, skin, page, admin, theme, ctid, ordernum, ie_cond, lowbandwidth) VALUES ('stylesheet','text/css','screen, projection','comments.css','','','journal','no','',2,0, "","no");
144 INSERT INTO css (rel, type, media, file, title, skin, page, admin, theme, ctid, ordernum, ie_cond, lowbandwidth) VALUES ('stylesheet','text/css','screen, projection','slashcode.css','','','','no','',3,0, "","no");
145 INSERT INTO css (rel, type, media, file, title, skin, page, admin, theme, ctid, ordernum, ie_cond, lowbandwidth) VALUES ('stylesheet','text/css','screen, projection','comments.css','','','metamod','no','',2,0, "","no");
146 INSERT INTO css (rel, type, media, file, title, skin, page, admin, theme, ctid, ordernum, ie_cond, lowbandwidth) VALUES ('stylesheet','text/css','screen, projection','slashcode_low_bw.css','','','','no','',4,99, "","yes");
147
148 #
149 # Dumping data for table 'css_type'
150 #
151 INSERT INTO css_type (ctid, name, ordernum) VALUES (1,'base',1);
152 INSERT INTO css_type (ctid, name, ordernum) VALUES (2,'page',2);
153 INSERT INTO css_type (ctid, name, ordernum) VALUES (3,'theme',3);
154 INSERT INTO css_type (ctid, name, ordernum) VALUES (4,'user_theme',5);
155 INSERT INTO css_type (ctid, name, ordernum) VALUES (5,'print',6);
156 INSERT INTO css_type (ctid, name, ordernum) VALUES (6,'skin',4);
157 INSERT INTO css_type (ctid, name, ordernum) VALUES (7,'handheld',7);
158