Register

If this is your first visit, please click the Sign Up now button to begin the process of creating your account so you can begin posting on our forums! The Sign Up process will only take up about a minute of two of your time.

Page 1 of 10 1 2 3 ... LastLast
Results 1 to 10 of 94
  1. #1
    Senior Member filburt1's Avatar
    Join Date
    Jul 2002
    Location
    Maryland, US
    Posts
    11,774
    Member #
    3
    Liked
    6 times
    This is just a bunch of screenshots, plus the following:

    WDF v6 will be powered by a custom framework (all existing posts and everything will be imported, obviously). This is to accomodate the very specific feature set that WDF now requires and that vBulletin does not offer without unclean or highly tedious solutions; for example, semantic markup, a strictly 3NF or 4NF database, simplification of the UI by completely removing features that will never be used, etc.

    A lot of the framework is powered by metadata in XML. For example, here's what defines the entire application overall, with two juicy keys censored:
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <application key="wdf">
        <title>Web Design Forums.net</title>
    	<abbreviation>WDF</abbreviation>
    	
        <version major="6" minor="0" revision="0" stable="false" />
        <templateNamespacePrefix>wdf</templateNamespacePrefix>    
    
        <baseDomain>suckers</baseDomain>
        <baseURI>still suckers</baseURI>
        
        <timeZone>America/New_York</timeZone>
        
        <xmlPaths>
            <events>xml/events.xml</events>
            <templates>xml/templates/</templates>
        </xmlPaths>
        
        <exceptionHandlers>
            <exception class="no_permission_exception">no_permission_exception_handler</exception>
            <exception class="ssl_required_exception">ssl_required_exception_handler</exception>
        </exceptionHandlers>
    </application>
    Also, the goal of the framework is to never use GET request variables (POST are just fine). That means URLs will be extremely simple, and even hiding the fact that PHP is powering it. For example, a URL to this thread might look like /announcements/2007/04/17/wdf_v6_sneak_peek_part_3/. Posting a new discussion might look like /php_and_mysql/new, and so on. When possible, you'll also be able to traverse this virtual directory tree and get the expected behavior.

    Events are defined in metadata, too, like:
    Code:
        <event name="login" requireSSL="false">
            <trigger>
                <pathTraversal>
                    <pathElement type="literal">login</pathElement>
                </pathTraversal>
            </trigger>
            <fields>
                <field title="Username" name="username" type="string" required="true" />
                <field title="Password" name="password_hash" type="suggested_client_side_md5" required="true" />
            </fields>
        </event>
    That bit of fields also leads me to talk about how templates are created: entirely in a DOM with no string manipulation at all. This means it's actually impossible for WDF v6 to generate pages that aren't well-formed XML--note that's not the same thing as saying valid XHTML, but WDF v6 will use XHTML 1.0 Strict. An example of the template for the above login event:
    Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" xmlns:wdf="http://www.webdesignforums.net/">
        <head>
            <title>Web Design Forums.net: Log In</title>
            
            <wdf:include template="head.xml" />
            <wdf:baseHref />
        </head>
        
        <body>
            <h1>Log into WDF v6</h1>
    		
    		<wdf:onEventError>
    			<p class="event-error"><wdf:eventErrorMessage /></p>
    		</wdf:onEventError>
    		
            <wdf:form event="login">
                <dl>
                    <dt>Username:</dt>
                    <dd>
                        <wdf:eventField name="username" />
                        <wdf:onFieldError name="username">
                            <p class="field-validation-error"><wdf:fieldErrorMessage /></p>
                        </wdf:onFieldError>
                    </dd>
                    
                    <dt>Password:</dt>
                    <dd>
                        <wdf:eventField name="password_hash" />
                        <wdf:onFieldError name="password_hash">
                            <p class="field-validation-error"><wdf:fieldErrorMessage /></p>
                        </wdf:onFieldError>
                    </dd>
                </dl>
                
                <div><wdf:submitButton title="Log In" /></div>
            </wdf:form>
            
            <p>Completed in <wdf:appStopwatch /> sec (<wdf:databaseStatus property="count" /> queries in <wdf:databaseStatus property="time" /> sec)</p>
        </body>
    </html>
    If you've ever used ASP.NET, this might look relatively familiar: defining components server-side and just having the application framework (.NET in ASP.NET's case, the application framework for WDF v6) make everything for you. The above template gets transformed in 0.01 sec to:
    Code:
    <?xml version="1.0"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
        <head>
            <title>Web Design Forums.net: Log In</title>
            
            
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        
        <link rel="icon" type="image/x-icon" href="/favicon.ico" />
        <link rel="shortcut icon" href="/favicon.ico" />
        
        <link rel="stylesheet" type="text/css" href="static/style/style.css" />
    
            <base href="suckers" />
        </head>
        
        <body>
            <h1>Log into WDF v6</h1>
    		
    		
    		
            <form method="post" action="/v6/login">
                <dl>
                    <dt>Username:</dt>
                    <dd>
                        <input type="text" name="username" id="username" />
                        
                    </dd>
                    
                    <dt>Password:</dt>
                    <dd>
                        <input type="password" name="password_hash" id="password_hash" />
                        
                    </dd>
                </dl>
                
                <div><input type="submit" value="Log In" /></div>
            </form>
            
            <p>Completed in <span>0.049731969833374</span> sec (<span>0</span> queries in <span>0</span> sec)</p>
        </body>
    </html>
    Note how it created all the inputs and other items automatically. That means if a field's type changes, the view never needs to be updated.

    It didn't even need to connect to the database at all! It's smart enough to connect as late as possible at runtime if ever; there are occasional cases where a database connection won't even be necessary if you're a guest.

    The database is implemented in PostgreSQL 8.2, not MySQL which many of you know, I loathe. It's in fourth-normal-form and consists of 70 tables, 4 of which are created by a PostgreSQL extension for fulltext indexing.

    The framework is ultra-object-oriented and requires PHP 5.1 or 5.2. There are only two lines of code, excluding a single static page used to catch the equivalent of blue screens, that are in the global namespace. Every single other line of code is part of a class.

    Now for the relatively interesting part: screenshots. Note that all of these have been hand-coded and aren't yet being generated by the system; these are just XHTML implementations of some mockups. Ignore the sidebar content for most of the pages; I was too lazy to uncomment that much code. It's quite possible most of these pages will have little in common with the final WDF v6 appearance except for the overall design. The New Discussion page in particular is likely to just be rewritten.
    Attached Images Attached Images
    • File Type: jpg 1.jpg (2.5 KB, 178 views)
    • File Type: jpg 2.jpg (2.6 KB, 170 views)
    • File Type: jpg 3.jpg (2.6 KB, 154 views)
    • File Type: jpg 4.jpg (2.8 KB, 148 views)
    • File Type: jpg 5.jpg (2.6 KB, 139 views)
    • File Type: jpg 6.jpg (2.6 KB, 145 views)
    • File Type: jpg 7.jpg (3.0 KB, 187 views)
    filburt1, Web Design Forums.net founder
    Site of the Month contest: submit your site or vote for the winner!

  2.  

  3. #2
    Senior Member -chris-'s Avatar
    Join Date
    Apr 2006
    Location
    SK
    Posts
    1,205
    Member #
    13102
    Beautiful!
    Portfolio | Blog | Twitter

    Was my post, or someone elses, helpful? Click the thumbs up to let everyone know!

  4. #3
    Senior Member Steax's Avatar
    Join Date
    Dec 2006
    Location
    Bandung, Indonesia
    Posts
    1,207
    Member #
    14572
    Wow, looks great. I'm on the last screenshot!!

    And, uhh, could you extend the textareas for posting across the entire page (by width)? It looks like such a waste to have so much empty space on the right....
    Note on code: If I give code, please note that it is simply sample code to demonstrate an effect. It is not meant to be used as-is; that is the programmer's job. I am not responsible to give you support or be held liable for anything that happens when using my code.

  5. #4
    Senior Member Karloff's Avatar
    Join Date
    Oct 2005
    Posts
    744
    Member #
    11702
    is there going to be any kind of design area, ie for type and logos, or even color scheme choice?

    looks nice btw:-)

  6. #5
    Senior Member Kayo's Avatar
    Join Date
    Dec 2006
    Location
    Brampton Ontario
    Posts
    416
    Member #
    14523
    Liked
    38 times
    Quote Originally Posted by Steax
    And, uhh, could you extend the textareas for posting across the entire page (by width)? It looks like such a waste to have so much empty space on the right....
    I agree, also only have two toolbar rows instead of three. other then that, I think it looks amazing.

  7. #6
    Senior Member filburt1's Avatar
    Join Date
    Jul 2002
    Location
    Maryland, US
    Posts
    11,774
    Member #
    3
    Liked
    6 times
    The editor is just a stock TinyMCE editor with virtually no customization to it. 100% probability that the toolbars will be customized because WDF v6 won't support all of the features of the default set, but will also support buttons not in the default set.

    A 100% width editor will be horrible because you'll completely lose track of a line of text--one of the problems of a liquid design to begin with. I can make it wider, but not that wide. Trust me, it'll be awful.
    filburt1, Web Design Forums.net founder
    Site of the Month contest: submit your site or vote for the winner!

  8. #7
    Senior Member Steax's Avatar
    Join Date
    Dec 2006
    Location
    Bandung, Indonesia
    Posts
    1,207
    Member #
    14572
    Ok, then give us a button that allows us to extend the box if necessary. Most often I don't like the short-width box when I'm writing code because it forces line-breaks when I need to see the entire line to make sure.
    Note on code: If I give code, please note that it is simply sample code to demonstrate an effect. It is not meant to be used as-is; that is the programmer's job. I am not responsible to give you support or be held liable for anything that happens when using my code.

  9. #8
    Senior Member filburt1's Avatar
    Join Date
    Jul 2002
    Location
    Maryland, US
    Posts
    11,774
    Member #
    3
    Liked
    6 times
    I've been working on the database more today, which is predictably growing in size but equally growing in cleanliness. It is definitely fourth normal form, unlike vBulletin's for a variety of reasons, including MySQL 4's useless support for referential integrity.

    What's notable:
    • There will definitely be a version history for comments that's linear (not tree-based). Moderators will be able to revert a comment to a previous state at any time, back to the original text. This is unlike vBulletin and nearly other forum engine where edits are destructive. This means additional near-redundant data in the database, but it is far more efficient than storing diffs of each comment (meaning the final version of the comment needs to be built on the fly, which is expensive). It'll also stop those people who edit posts by deleting the entire post with just "Thanks, I fixed it".
    • In all situations, content will be undeletable. vBulletin allows this, but it is up to the end user to choose that option. The database for WDF v6 is intentionally being designed such that the application will very rarely issue a DELETE query--in fact, I can only think of one situation where a DELETE will execute and it's related to the login process and security traps built into it.
    • It will be easily possible to delete any given comment on a discussion, blog, whatever, while still preserving the entire discussion. This is unlike vBulletin and most other forums where deleting the first post deletes the entire thread. In fact, the system is so elegant that the "discussions" table only has three or four fields.
    • Comments can be attached to, and in some cases define, blog entries, discussions, site showcase entries, users (only by moderators), code gallery entries, and articles. The database was designed from the very beginning to easily support attaching comments to nearly any other table, so you could attach comments to an uncaught exception or an IM provider for all it cares, so long as the necessary columns are added.
    • The Search will be powered by tsearch2, and as a result, will base results on natural language and relevance rather than a manually maintained index and sorted by date. This will hopefully vastly improve the usefulness of WDF's search engine. In fairness, it's a bitch to implement your own custom search engine. I've done it before, and I have no intention of doing it again, and why bother when tsearch2 exists?
    • The rating system for comments is designed to rate a comment and then, from that information, extract the aggregated rating data for the user. This is unlike the reputation system as it is customized here in WDF v5 where posts are rated but the intention within vBulletin is to rate the user, not the post. I chose this approach so helpful posts can be highlighted in addition to helpful users.

    It's all very fascinating, I know. Restrain yourself.
    filburt1, Web Design Forums.net founder
    Site of the Month contest: submit your site or vote for the winner!

  10. #9
    Senior Member Steax's Avatar
    Join Date
    Dec 2006
    Location
    Bandung, Indonesia
    Posts
    1,207
    Member #
    14572
    Uh-uh. Of course, when we have to wait another year. I do understand that you'll have a pile-up of access data - sometimes I edit posts just to change a few characters because of a syntax error or grammatical misleading sentence. In such case will you auto-clear this redundant data at a certain age or something?
    Note on code: If I give code, please note that it is simply sample code to demonstrate an effect. It is not meant to be used as-is; that is the programmer's job. I am not responsible to give you support or be held liable for anything that happens when using my code.

  11. #10
    Senior Member
    Join Date
    May 2003
    Location
    UK
    Posts
    2,354
    Member #
    1326
    Members ratings from v5 still exist come Jan 2008?


Page 1 of 10 1 2 3 ... LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
All times are GMT -6. The time now is 09:58 PM.
Powered by vBulletin® Version 4.2.0
Copyright © 2014 vBulletin Solutions, Inc. All rights reserved.
vBulletin Skin By: PurevB.com