Go to Post We have a lot of rookies, and I can't wait to see the inspiration on their faces. - Karibou [more]
Home
Go Back   Chief Delphi > Technical > IT / Communications > Website Design/Showcase
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
Closed Thread
 
Thread Tools Rate Thread Display Modes
  #1   Spotlight this post!  
Unread 15-06-2009, 12:15
Ranana_Prussy's Avatar
Ranana_Prussy Ranana_Prussy is offline
Registered User
no team
 
Join Date: Jun 2009
Location: Israel
Posts: 5
Ranana_Prussy is an unknown quantity at this point
Site Design

Hi there,

I think the background of your site is good the color and design is also nice. If you give red color on top it will look more better.
  #2   Spotlight this post!  
Unread 15-06-2009, 19:37
ZInventor's Avatar
ZInventor ZInventor is offline
Registered User
AKA: Zeno Le Héricy
FRC #2915 (Riverdale Robotics Pandamonium)
Team Role: Alumni
 
Join Date: Feb 2008
Rookie Year: 2000
Location: Portland Oregon USA
Posts: 247
ZInventor is just really niceZInventor is just really niceZInventor is just really niceZInventor is just really nice
Re: Site Design

One of my friends at school and i built the RiverdaleRobotics site from the ground up using PHP and MySQL. all pages (in multiple languages) are editable through a simple web interface :Click here for the content entry demo

it took us quite a while to get the system running at 100%, but, now it's great, and super easy to use.

we also have an inventory system, and as mentioned before, Multiple languages.

all members on the team have accounts, which are used to access an email system, and the member pages (so team members can edit their own bios)

the ENTIRE site was written by us (ok, fine, not the menus, they came from DynamicDrive.com, but are heavily modified) and we're trying to get rid of the google stuff which kills validation.

everything was written in text editors with auto-highlight (more usefull than you think) and lots of trial and error.

the homepage ishttp://riverdalerobotics.com/

the demo page is http://riverdalerobotics.com/?demo&page=demo

if people want copies of bits of the source, wait a month or so, as we're about to do a massive overhaul of the back end (to make the source more compact and sensible...) after that, PM me, and we can talk...

overall, i like being in full control of the site, sometimes that can make all the difference, but then again, with power comes responsibility, and maintenance! so you have to be prepared to work. a lot.

-Z
__________________
[center]
  #3   Spotlight this post!  
Unread 15-06-2009, 20:41
Foster Foster is offline
Engineering Program Management
VRC #8081 (STEMRobotics)
Team Role: Mentor
 
Join Date: Jul 2007
Rookie Year: 2005
Location: Delaware
Posts: 1,393
Foster has a reputation beyond reputeFoster has a reputation beyond reputeFoster has a reputation beyond reputeFoster has a reputation beyond reputeFoster has a reputation beyond reputeFoster has a reputation beyond reputeFoster has a reputation beyond reputeFoster has a reputation beyond reputeFoster has a reputation beyond reputeFoster has a reputation beyond reputeFoster has a reputation beyond repute
Re: Site Design

It's interesting to see that your page information is in a simpler markup (like a wiki markup) to make it easier format the page. Did you write the parser / formatter from scratch?

Do you store the page in the database as the simplified markup?
__________________
Foster - VEX Delaware - 17 teams -- Chief Roboteer STEMRobotics.org
2010 - Mentor of the Year - VEX Clean Sweep World Championship
2006-2016, a decade of doing VEX, time really flies while having fun
Downingtown Area Robotics Web site and VEXMen Team Site come see what we can do for you.
  #4   Spotlight this post!  
Unread 15-06-2009, 21:00
ZInventor's Avatar
ZInventor ZInventor is offline
Registered User
AKA: Zeno Le Héricy
FRC #2915 (Riverdale Robotics Pandamonium)
Team Role: Alumni
 
Join Date: Feb 2008
Rookie Year: 2000
Location: Portland Oregon USA
Posts: 247
ZInventor is just really niceZInventor is just really niceZInventor is just really niceZInventor is just really nice
Re: Site Design

Quote:
Originally Posted by Foster View Post
It's interesting to see that your page information is in a simpler markup (like a wiki markup) to make it easier format the page. Did you write the parser / formatter from scratch?

Do you store the page in the database as the simplified markup?
The parser was written by us, in php, based off the wiki system (but we didn't like how that worked to we threw it away and built our own from the ground up)

everything is stored in a MySQL database in the non-parsed format.

here's some of the current (not cleaned up) code running the parser.

PHP Code:
function panda_parse($text) {
    global 
$panda;
    
// If $text is in string form, split it into an array of lines.
    
if (is_string($text)) {
        
$text str_replace("\r\n""\n"$text);
        
$text str_replace("\r""\n"$text);
        
$text explode("\n"$text);
    }
    
// Prepare an array to hold the parsed lines.
    
$parsed = array();
    
// Set up a variable to keep track of what tag we're in.
    
$this_tag '';
    
// Parse each line.
    
foreach ($text as $i => $line) {
        
// We'll need access to the lines on either side of the one we're parsing.
        
$prev_line $text[$i 1];
        
$next_line $text[$i 1];
        
// Prepare a few regular expressions to make things a bit neater later on.
        
$regex_table '/^((!!|\|\|).+?)+(!!|\|\|)$/';
        
$regex_img '/\{\{(.+?)\|(.+?)(\|(\d+)(\|(\d+))?)?(\|left|\|right|\|inline)?\}\}/';
        
$regex_just_img '/^\{\{(.+?)\|(.+?)(\|(\d+)(\|(\d+))?)?(\|left|\|right|\|inline)?\}\}$/';
        
// Dashes.
        
while (preg_match('/ ?-- ?/'$line$m)) {
            
$line str_replace($m[0], '—'$line);
        }
        while (
preg_match('/ - /'$line$m)) {
            
$line str_replace($m[0], ' – '$line);
        }
        while (
preg_match('/\d(-)\d/'$line$m)) {
            
$line str_replace($m[1], '–'$line);
        }
        
// Tables.
        
if (preg_match($regex_table$line)) {
            if (
preg_match($regex_table$prev_line)) $beginning "\t<tr>\n";
            else 
$beginning "<table class=\"parsed\">\n\t<tr>\n";
            
$end "\t</tr>";
            if (!
preg_match($regex_table$next_line)) $end .= "\n</table>";
            while (
preg_match('/((!!|\|\|)((\d+)[>^]){0,2}(.+?))(!!|\|\|)/'$line$m)) {
                
//print '<pre>There is a table cell which is ' . $m[0] . '</pre>';
                
$cell_tag 'td'$align $colspan $rowspan '';
                if (
$m[2] == '!!'$cell_tag 'th';
                if (
preg_match('/^ +(.+?) +$/'$m[5], $m2)) {
                    
$m[5] = $m2[1];
                    
$align ' class="center"';
                }
                else if (
preg_match('/^ +(.+?)$/'$m[5], $m2)) {
                    
$m[5] = $m2[1];
                    
$align ' class="right"';
                }
                else if (
preg_match('/^(.+?) *$/'$m[5], $m2)) $m[5] = $m2[1];
                if (
preg_match('/(\d+)>/'$m[3], $m2)) $colspan ' colspan="' $m2[1] . '"';
                if (
preg_match('/(\d+)\^/'$m[3], $m2)) $rowspan ' rowspan="' $m2[1] . '"';
                
$line str_replace($m[1], "\t\t<" $cell_tag $align $colspan $rowspan '>' $m[5] . '</' $cell_tag ">\n"$line);
            }
            
$line $beginning $line $end;
            
$line str_replace("\n||\t</tr>""\n\t</tr>"$line);
            
$line str_replace("\n!!\t</tr>""\n\t</tr>"$line);
        }
        
// Bulleted and numbered lists.
        
else if (preg_match('/^([*#]+)/m'$line$m)) {
            
$num_of_levels strlen($m[1]);
            
$beginning $end '';
            if (
preg_match('/^[*#]{0,' $num_of_levels '}([^*#]|$)/m'$next_line)) $end '</li>';
            for (
$i $num_of_levels 1$i 0$i--) {
                if (
$prev_line{$i} == $m[1]{$i});
                else if (
$m[1]{$i} == '*'$beginning .= "<ul>\n";
                else if (
$m[1]{$i} == '#'$beginning .= "<ol>\n";
                if (
$next_line{$i} == $m[1]{$i});
                else if (
$m[1]{$i} == '*'$end .= "\n</ul></li>";
                else if (
$m[1]{$i} == '#'$end .= "\n</ol></li>";
            }
            if (
$prev_line{0} == $m[1]{0});
            else if (
$m[1]{0} == '*'$beginning .= "<ul>\n";
            else if (
$m[1]{0} == '#'$beginning .= "<ol>\n";
            if (
$next_line{0} == $m[1]{0});
            else if (
$m[1]{0} == '*'$end .= "\n</ul>";
            else if (
$m[1]{0} == '#'$end .= "\n</ol>";
            
$line $beginning '<li>' substr($line$num_of_levels) . $end;
        }
        
// Headings.
        
else if (preg_match('/^!!!/m'$line)) $line '<h4>' substr($line3) . '</h4>';
        else if (
preg_match('/^!!/m'$line)) $line '<h3>' substr($line2) . '</h3>';
        else if (
preg_match('/^!/m'$line)) $line '<h2>' substr($line1) . '</h2>';
        
// Blockquotes.
        
else if (preg_match('/^:/m'$line)) {
            
$line '<blockquote>' substr($line1);
            
$this_tag 'blockquote';
        }
        
// Paragraphs.
        
else if ($line != '' and $prev_line == '' and !preg_match($regex_just_img$line) and $line{0} != '=') {
            
$line '<p>' $line;
            
$this_tag 'p';
        }
        
// No-paragraph lines.
        
else if ($line{0} == '='$line substr($line1);
        
// Close paragraph or blockquote.
        
if ($this_tag == true and $next_line == '') {
            
$line .= '</' $this_tag '>';
            
$this_tag '';
        }
        
// Bold italics.
        
while (preg_match("/'''''?(.+?)'''''?/"$line$m)) {
            
$line str_replace($m[0], '<b><i>' $m[1] . '</i></b>'$line);
        }
        
// Bold.
        
while (preg_match("/'''(.+?)'''/"$line$m)) {
            
$line str_replace($m[0], '<b>' $m[1] . '</b>'$line);
        }
        
// Italics.
        
while (preg_match("/''(.+?)''/"$line$m)) {
            
$line str_replace($m[0], '<i>' $m[1] . '</i>'$line);
        }
        
// External links.
        
while (preg_match('/\[\[(http[^|]+?)\|([^\]]+?)\]\]/'$line$m)) {
            
$line str_replace($m[0], '<a href="' $m[1] . '" class="ext" target="_blank">' $m[2] . '</a>'$line);
        }
        while (
preg_match('/\[\[(http[^\]]+?)\]\]/'$line$m)) {
            
$line str_replace($m[0], '<a href="' $m[1] . '" class="ext" target="_blank">' $m[1] . '</a>'$line);
        }
        
// Mailto links.
        
while (preg_match('/\[\[([^|]+?@[^|]+?)\|([^\]]+?)\]\]/'$line$m)) {
            print 
'<br>Mailto!<br>';
            
$line str_replace($m[0], '<a href="mailto:' $m[1] . '" class="mailto">' $m[2] . '</a>'$line);
        }
        while (
preg_match('/\[\[([^|]+?@[^|]+?)\]\]/'$line$m)) {
            
$line str_replace($m[0], '<a href="mailto:' $m[1] . '" class="mailto">' $m[1] . '</a>'$line);
        }
        
// Internal links.
        
while (preg_match('/\[\[([a-z0-9\-_=&]+?)\|(.+?)\]\]/'$line$m)) {
            
$line str_replace($m[0], '<a href=".?' $m[1] . '&amp;page=' $m[1] . '">' $m[2] . '</a>'$line);
        }
        while (
preg_match('/\[\[([a-z0-9\-_=&]+?)\]\]/'$line$m)) {
            
$line str_replace($m[0], '<a href=".?' $m[1] . '&amp;page=' $m[1] . '">' $m[1] . '</a>'$line);
        }
        
// Images.
        
while (preg_match($regex_img$line$m)) {
            if (!empty(
$m[4])) $width ' width="' $m[4] . '"';
            if (!empty(
$m[6])) $height ' height="' $m[6] . '"';
            if (
$m[7] == '|inline'$side 'inline';
            else if (
$m[7] == '|left'$side 'left';
            else 
$side 'right';
            
$line str_replace($m[0], '<img src="' $panda['imgdir'] . $m[1] . '" alt="' $m[2] . '" title="' $m[2] . '"' $width $height ' class="' $side '" />'$line);
        }
        
// Add this line to the array of parsed lines.
        
$parsed[] = $line;
    }
    
// Return a single string of HTML.
    
return join("\n"$parsed);

as you can see, it's pretty crazy, and takes a ton of debugging (the first 100 or so issues were forgotten semicolons!)

we're working on cleaning up this code, but anyone who wants it can use it, but PLEASE put a comment in the HTML of your code that says that you are using some of our stuff, thanks!

-Z
__________________
[center]
  #5   Spotlight this post!  
Unread 15-06-2009, 22:41
Uberbots's Avatar
Uberbots Uberbots is offline
Mad Programmer
AKA: Billy Sisson
FRC #1124 (ÜberBots)
Team Role: College Student
 
Join Date: Jan 2006
Rookie Year: 2005
Location: Avon
Posts: 739
Uberbots has a reputation beyond reputeUberbots has a reputation beyond reputeUberbots has a reputation beyond reputeUberbots has a reputation beyond reputeUberbots has a reputation beyond reputeUberbots has a reputation beyond reputeUberbots has a reputation beyond reputeUberbots has a reputation beyond reputeUberbots has a reputation beyond reputeUberbots has a reputation beyond reputeUberbots has a reputation beyond repute
Re: Site Design

Quote:
Originally Posted by ZInventor View Post
The parser was written by us, in php, based off the wiki system (but we didn't like how that worked to we threw it away and built our own from the ground up)

everything is stored in a MySQL database in the non-parsed format.
you should store it in parsed and non-parsed. it would reduce your load times by a lot, and disk space is cheap.
__________________
A few of my favorite numbers:
175 176 177 195 230 558 716 1024 1071 1592 1784 1816
RPI 2012
BREAKAWAY
  #6   Spotlight this post!  
Unread 15-06-2009, 22:55
ZInventor's Avatar
ZInventor ZInventor is offline
Registered User
AKA: Zeno Le Héricy
FRC #2915 (Riverdale Robotics Pandamonium)
Team Role: Alumni
 
Join Date: Feb 2008
Rookie Year: 2000
Location: Portland Oregon USA
Posts: 247
ZInventor is just really niceZInventor is just really niceZInventor is just really niceZInventor is just really nice
Re: Site Design

Quote:
Originally Posted by Uberbots View Post
you should store it in parsed and non-parsed. it would reduce your load times by a lot, and disk space is cheap.
we have a decent speed server, and fast connection, so the load time isn't an issue.

but more to the point here, the thread (as much as i'd like it to be) isn't about my team's site.

if you think this discussion should continue, PM me and i'll start a thread.

-Z
__________________
[center]
  #7   Spotlight this post!  
Unread 15-06-2009, 20:43
Uberbots's Avatar
Uberbots Uberbots is offline
Mad Programmer
AKA: Billy Sisson
FRC #1124 (ÜberBots)
Team Role: College Student
 
Join Date: Jan 2006
Rookie Year: 2005
Location: Avon
Posts: 739
Uberbots has a reputation beyond reputeUberbots has a reputation beyond reputeUberbots has a reputation beyond reputeUberbots has a reputation beyond reputeUberbots has a reputation beyond reputeUberbots has a reputation beyond reputeUberbots has a reputation beyond reputeUberbots has a reputation beyond reputeUberbots has a reputation beyond reputeUberbots has a reputation beyond reputeUberbots has a reputation beyond repute
Re: Site Design

Quote:
Originally Posted by ZInventor View Post
One of my friends at school and i built the RiverdaleRobotics site from the ground up using PHP and MySQL. all pages (in multiple languages) are editable through a simple web interface :Click here for the content entry demo

it took us quite a while to get the system running at 100%, but, now it's great, and super easy to use.

we also have an inventory system, and as mentioned before, Multiple languages.

all members on the team have accounts, which are used to access an email system, and the member pages (so team members can edit their own bios)

the ENTIRE site was written by us (ok, fine, not the menus, they came from DynamicDrive.com, but are heavily modified) and we're trying to get rid of the google stuff which kills validation.

everything was written in text editors with auto-highlight (more usefull than you think) and lots of trial and error.

the homepage ishttp://riverdalerobotics.com/

the demo page is http://riverdalerobotics.com/?demo&page=demo

if people want copies of bits of the source, wait a month or so, as we're about to do a massive overhaul of the back end (to make the source more compact and sensible...) after that, PM me, and we can talk...

overall, i like being in full control of the site, sometimes that can make all the difference, but then again, with power comes responsibility, and maintenance! so you have to be prepared to work. a lot.

-Z
I know you arent asking for reviews, but that parser is very, very good. Very wikipediesqe. see its so good it make me make up a new word.

Personally i use photoshop to make the graphics, and NetBeans to make the php code. Yes netbeans- it works VERY well. and it has built in source control. and its free (:

as for the engine, a while back i made my own collection of building blocks based on websites i had designed (news, calendars, picture libraries, blogs, AJAX comms, etc), so i basically make a copy of that folder and do some slight modifications to tailor them to the specific site im making. Im able to churn out most websites in 24 hours of work (so far, since i usually end up designing a new component)
__________________
A few of my favorite numbers:
175 176 177 195 230 558 716 1024 1071 1592 1784 1816
RPI 2012
BREAKAWAY
Closed Thread


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
[Official 2008 Game Design] OK, so YOU design the 2009 game... dlavery FRC Game Design 69 23-08-2009 19:54
Question regarding Web-site Design Deadline rsegrest Website Design/Showcase 3 10-02-2009 14:38
[Official 2008 Game Design] OK, so YOU design the 2008 game... dlavery FRC Game Design 25 20-02-2008 23:31
FIRST Team 1444 Site Design for 2008 Compnerd Website Design/Showcase 13 25-03-2007 23:55
[Official 2006 Game Design] OK, so YOU design the 2006 game... dlavery FRC Game Design 29 08-01-2006 00:21


All times are GMT -5. The time now is 00:51.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi