NYCPHP Meetup

NYPHP.org

[nycphp-talk] translating behaviors from JavaScript to PHP

-sry sryBoston at hotmail.com
Wed Dec 3 08:15:59 EST 2003


Wow, Keith, thanks for the lesson!! This is *EXACTLY*
what I wanted - a comparison of approaches and the PHP
solution to a parallel JS situation.  And I agree, sessions are
much easier to manage for anything that forces a reload of
a page otherwise. Will be studying this and probably trying
something out with it this weekend. Stay tuned... :)

-sry

----- Original Message -----
From: "Keith Richardson" <keith.richardson at thompsonhealth.com>
To: "'NYPHP Talk'" <talk at lists.nyphp.org>
Sent: Wednesday, December 03, 2003 7:54 AM
Subject: RE: [nycphp-talk] translating behaviors from JavaScript to PHP


> In my opinion, to accomplish that I would probabally use sessions, or a
get
> variable.
>
> in the top, you would have something like this:
>
> <?php
>
> $current_stylesheet = "default.css";
>
> if (!empty($_GET['stylesheet']))
> {
>   switch($_GET['stylesheet'])
>   {
>     case "red":
>       $current_stylesheet = "red.css";
>       break;
>     case "blue":
>       $current_stylesheet = "blue.css";
>       break;
>   }
> }
> ?>
> Then where you display the style sheet, you would do something like this
in
> the html code:
>
> <link rel="stylesheet"
> type="text/css" href="<?php print($current_stylesheet); ?>" />
>
>
> So when you have a list of stylesheets to use, it just reloads the page,
say
> index.php, as index.php?stylesheet=red - and it will load the red style
> sheet. If they did not enter a style sheet, or it is not one of your
> options, then it would load the default style sheet.
>
> the thing with this one, is that you have to pass the get variable to each
> page that you want to have customized style sheets, which can be a lot of
> reworking, because you have to add something like this to each link:
> <A href="links.php<?php if ($current_stylesheet != "default.css") {
> print("?stylesheet=".$_GET['stylesheet']); } ?>">Links</a>
>
> This prints out the ?stylesheet=red (as an example) after the link, if red
> is selected. if there is no option, it wont print anything after the link.
>
> The other way to do it is with sessions, which for me is easier.
>
> on the top of the page, do something like
> <?php
>   session_name("mysite.com_css");
>   session_start();
>
>   if (empty($_SESSION['stylesheet']))
>     $_SESSION['stylesheet'] = "default.css";
>
>   if (!empty($_GET['stylesheet']))
>   {
>     switch($_GET['stylesheet'])
>     {
>       case "red":
>         $_SESSION['stylesheet'] = "red.css";
>         break;
>       case "blue":
>         $_SESSION['stylesheet'] = "blue.css";
>         break;
>     }
>   }
>
> ?>
>
> Then where you display the style sheet, you would do something like this
in
> the html code:
>
> <link rel="stylesheet"
> type="text/css" href="<?php print($_SESSION['stylesheet']); ?>" />
>
> This way, you can change the stylesheet with the GET request, say
> page.php?stylesheet=red - and it will change the stylesheet in the users
> session. Since the sessions are saved for the browser session, it will
keep
> the session variables for each page that the user loads, and thus keeping
> their selected style with each page, without having to add any more get
> requests.
>
> If it were me, I would add the php code that checks the session
> variables/get variables in an include file, say change_css.php - and
include
> it on the top of every file, or in your header file. This way its easier
to
> add another option for a different CSS.
>
> -----Original Message-----
> From: talk-bounces at lists.nyphp.org
> [mailto:talk-bounces at lists.nyphp.org]On Behalf Of -sry
> Sent: Wednesday, December 03, 2003 7:43 AM
> To: NYPHP Talk
> Subject: Re: [nycphp-talk] translating behaviors from JavaScript to PHP
>
>
>
> On Tuesday, December 02, 2003 12:36 PM
> "Hans Zaunere" <hans not junk at nyphp.com>
> > -sry wrote:
> > > [ repost - sent to the wrong list ]
> > > [snip]
> > >>vis my personal web site. Since I like to keep code as
> > >>modularized as possible, I separated out my JavaScript
> > >>(for mouseover behavior and other sillyness) into a .js file.
> > >>As a mechanism for putting my hands on some PHP as I
> > >>learn it, I figured I'd take the existing page design and
> > >>behavior and "translate" it into a PHP implementation.
> >
> > Keep in mind that PHP runs strictly on the server - the
> > browser is never aware of any PHP code.  Granted, you
> > can use PHP to generate the client-side code the browser
> > then reads and parses, but translating between Javascript
> > and PHP - in a linear sense - is not possible.
>
> I guess my subject line wording is a bit misleading. I don't
> mean a LITERAL translation. I meant to say I am trying
> to translate my thinking into how to design the same
> results/behavior with a different approach, a PHP approach.
> There is always more than one way to skin any cat and I
> am not used to thinking in PHP terms--as is apparent from
> my newbie post where I was embedding HTML in PHP
> rather than PHP into HTML which seems obvious now
> that some of you have pointed it out to me :-) Thanks for
> the tips, guys.
>
> I'm asking for more "tips" like this, how to approach, in
> PHP, doing things like overwriting DIVs to dynamically
> load content or how to replace stylesheets based on
> user prefs using PHP rather than JS...such as the JS
> code described at:
>
> http://www.alistapart.com/articles/alternate/
>
> Maybe some of these behaviors are simply not appropriate
> for a PHP implementation - I dunno - that's why I'm asking
> for your opinions :)
>
> Maybe it'd better to ask, how would I go about "retooling"
> existing functionality from JS to PHP? Assuming the
> functionality is *not* specifically better-suited for a client-side
> scripting. Better way to ask? :)
>
> -sry
> _______________________________________________
> talk mailing list
> talk at lists.nyphp.org
> http://lists.nyphp.org/mailman/listinfo/talk
>
> _______________________________________________
> talk mailing list
> talk at lists.nyphp.org
> http://lists.nyphp.org/mailman/listinfo/talk
>



More information about the talk mailing list