Re: [phpslash-users] custom querys
Brought to you by:
joestewart,
nhruby
From: Tigran <ti...@us...> - 2002-11-05 19:46:40
|
>Hi! My former roommmate from grad school has a Ph.D. in Armenian Studies >but he never taught me how to say hello. Hello in Armenian is "barev" barev > > I would like to have my site be more custom looking and maybe provide > > more of a newspaper type look. To do this I need to write some custom > > querys. > > > Can somebody help me with a sample query? > >I would say this is an unstable tactic. Many of the new features >coalescing into M7 change the database structure, and so you might have to >rewrite your queries if you ever upgrade phpslash. The tools already >exist to get some of what you want. I didn't think of it that way. I can see how this way is much easier. > > I would like to have the home page look something like this > > http://www.usanogh.com/dev/ > > > > Where the latest story would go on top and on the bottom of that there > > would be a list of sections with just the titles of the latest 5 stories > > that corespond to each section. > >As for the latest story going on top, you need to alter the arguments sent >to the story class. > >There is a block of code in index.php3 like this: > >$story = new Story; >$block = new Block_i; > >// Start of Page > >$ary = $HTTP_GET_VARS; > >/* defaults for main "index" page */ >if ((!$section) AND (!$section_id)){ > $section = $_PSL['site_homesection']; > if(!$section) { > $section = "Home"; > // INSERT THIS LINE TO GET ONLY ONE STORY ON THE HOME PAGE > $ary['max'] = 1; > } > $ary['section'] = $section; >} else { > $pagetitle .= " - $section"; >} tried the $ary['max'] = 1; but still got all the stories on the home page. >Note that phpslash has no support for photos at this time, and it is not >part of the M7 road map. Keep your fingers crossed and your eye on this >feature request: > >http://sourceforge.net/tracker/index.php?func=detail&aid=513265&group_id=10 >566&atid=360566 yes I know and the photo isn't a big deal. The photo can be entered manual most of the time we won't have a photo anyway. >Your "Culture", "Features", "Interviews," et cetera are section blocks. >You can set them on the blockadmin page. The query is "section=Culture", >"section=Features", whatever. Make them owned by the Home section. Also, >give them each their own column. Like this: > >Title: Culture >Type: Query >Site Location: <blank> [you could make links to >index.php3?section=Culture] >Query: section=Culture >Expire Length: <whatever> [suggestion: 3600 for one hour] >Owned by Section: Home >Order Number: 1 >Variables: >column culture > >Title: Features >Type: Query >Site Location: <blank> [you could make links to >index.php3?section=Features] >Query: section=Features >Expire Length: <whatever> [suggestion: 3600 for one hour] >Owned by Section: Home >Order Number: 1 >Variables: >column features > >[Repeat for interviews & reviews] I created the blocks looks good and easier then writing SQL statements >The Block_i class allows you to put data in columns. You want a row, so >the quickest solution is to make each one their own "column". In the >template for your main page, put (adapt to whatever HTML spec you are >using) ><!-- here are the section blocks --> ><table> > <tr> > <td>{CULTURE_BLOCK}</td> > <td>{FEATURES_BLOCK}</td> > <td>{INTERVIEWS_BLOCK}</td> > <td>{REVIEWS_BLOCK}</td> > </tr> ></table> > >Your index.php3 should already have this code in it: > >$block = new Block_i; >[...some code setting up an array $ary...] >$leftblocks = $block->getBlocks($ary, "left"); >$centerblocks = $block->getBlocks($ary, "center"); >$rightblocks = $block->getBlocks($ary, "right"); > >and these strings are put into the template. Mimic this behavior by >doing: > >$tpl->set_var(array( >'CULTURE_BLOCK'=>$block->getBlocks($ary,'culture'), >'FEATURES_BLOCK'=>$block->getBlocks($ary,'features'), >'INTERVIEWS_BLOCK'=>$block->getBlocks($ary,'interviews'), >'REVIEWS_BLOCK'=>$block->getBlocks($ary,'reviews') >)); > >The template variable in CAPS is what's in the template file within curly >braces, and the section argument to getBlocks is the column variable you >set for the block. in my index.php3 the column variable is within double quotes not single like you have above. Will that make any difference. here is an example $rightblocks = $block->getBlocks($ary, "right"); >This will get what you want today. It reminds me that what needs to be >done is a block_table class so we can arrange blocks in rows and columns. Everything worked. and looks great but what I want is to have every link to an article or section to come up with the 3 column look other then for the first page. With this setup clicking on the story link or full story keeps the non 3 column custom setup. And for some reason the blocks show up on the right hand side instead of the bottom. In the index3col.tpl they are placed on the bottom separated with a table just like your example. The blocks were on the bottom but as soon as I removed all the other blocks from HOME they moved to the right hand side. you can take a look at all the changes at www.usanogh.com > > Thank you > >HTH, >Matt |