web

Legibility. Or not.

Blog

If your site takes a while to load and this is how you style your page without javascript turned on, I recommend reconsidering your choices.

Even if your site doesn't take a while to load for you, it will for the person on 2G on the other side of the world.

Unless, of course, you don't care about your site being accessible or legible. I can understand that not-caring.

Related, no, I'm not going to turn on javascript to view your site. If you can't render on the server and render well, learn.

How to Estimate a Web Site Project

Book page

From: http://www.webdevbiz.com/article.cfm?VarArtID=5

How to Estimate a Web Site Project

How to Estimate a Web Site Project

There's no getting around it - almost every web site client you'll ever have will want a cost estimate before work begins.

If the prospect makes you anxious, you're not alone. Estimating a web project is not easy to do, even for pros. In fact, some very skilled web developers I know use systems of estimating which have more in common with consulting a Magic 8-Ball than with detailing time and costs - basically, they make wild guesses. Although this may get the unpleasant task over with quickly, it's not helpful for keeping clients happy or for running a viable business.

But with some preparation and organization, estimating can be done with reasonable accuracy, and without any permanent damage to your mental health.

A Few Thoughts on Free Estimates

Some web developers offer free estimates as a matter of policy. I believe that this can be problematic, especially for very small companies, and so recommend giving it due consideration before publishing that offer.

The reasoning is simple: estimating well takes time, and not every estimate will net you a contract. Depending upon your market and the tone you set with your business, you may get a lot of "shoppers". Shoppers are looking to get estimates from several companies and compare them, and you may very well be only a pawn in their process of finding the supposedly "best deal" - or worse still, in driving the price down with someone who they've already decided to work with.

If this turns out to be the case, it's not the end of the world, of course - but how many times a month do you want to spend several hours (or more) working for someone for no pay? Of course, that decision has to be up to you.

In my business, we provide an estimate for free if we think that an accurate specification can be determined and written up within a couple of hours. If we feel that it's a complex enough project that it will take us 5-10 hours or more of meeting, talking, researching, and writing and re-writing the specifications, we charge for that time. We tell the client that we'll be spending valuable consulting time with them, determining their needs, and that we'll produce a detailed specification document and cost estimate. This information is obviously of value whether or not they decide to work with us. If they do decide to work with us, the cost of the specification-development phase is applied to the total cost of the project. Either way, their money is well-spent.

After all, developing a web site is not the same as painting the living room or fixing a leaky faucet. Free estimates and convenient price-shopping may be commonplace in a lot of industries, but they aren't necessarily appropriate for complex creative and technical work.

But whether or not you're being paid for your time, the process should be the same.

A Five-Step Process

Estimating is essentially a five-step process:

  1. Determine what the specifications are for the site
  2. Break these specifications down into as many smaller tasks as possible
  3. Figure as accurately as possible the amount of time each task will take
  4. Add up the total hours and multiply by your hourly rate
  5. Add a percentage for contingencies, add expenses, and total it all up

Determine what the specifications are for the site. This is usually the most difficult part of the process. Clients often don't have a clear idea of what they want; they need your help to clarify and articulate what kind of web site they have in mind. This can be done through in-person or telephone meetings and emails, but you have to take the wheel, and you often have to persevere through a certain amount of uncertainty, hesitance, and outright fogginess.

It's helpful to have a list of the various aspects and features of web sites to help you and the client through this process. Your conversations need to cover every aspect of the proposed web site, including:

  1. Total number of pages
  2. What kind of navigation bars or menus
  3. More than one page design?
  4. Number of custom graphics needed
  5. Number of graphics provided by the client
  6. How design-intensive a site do they want?
  7. What type of text content, provided in what form?
  8. Interactive forms? How many fields?
  9. Database-driven applications? (Detailed description of all functionality is needed)
  10. Administration areas?
  11. Domain registrations or changes?
  12. Hosting arrangements?
  13. How important is search engine positioning?
  14. Will any client training be necessary?

You won't get all of this information worked out in a single conversation. For me, the process usually involves a series of conversations and email exchanges. After the first consultation, I go over my notes, usually typing them up so that they're easier to read. I then write out a "sketchy" specification, usually somewhat vague at this point. This makes obvious what information I still need.

For instance, the client may have told me, "We want to display photos of the houses our firm has built", but I need to know more. How many photos? Displayed in what way? With thumbnails linking to larger photos? Will they need captions? In what form will he be providing the photos? These questions are jotted down for the next conversation. When I have a complete list of questions, I phone the client, making sure he has some time to spend, and I ask him the questions one by one. The discussion is usually far from linear, and may jump from one subject to the next, but I make sure that I'm in charge, and that I get the information I need. Remember, the client doesn't know how to write a specification for a web site - you do. The tangents and side-trips often provide valuable information too, so I try to be sure to listen well.

A friend of mine recently took a sales seminar, and came back very excited about what he had learned. Basically, he said, he learned that he needed to really, really listen to his potential clients and customers. This is crucial during the specification-development phase. But again, be sure that your questions are answered, and that an unfocused or overly chatty client doesn't waste everybody's time.

Always take notes when conversing with a client. Even if they are just scrawled notes, make sure you commit the crucial points of the conversation to writing, and be sure to date it.

The information you have after this second meeting may be enough to write up a detailed specification. Add the information you've gained to your sketchy specification document, and see if you can flesh it out enough that you feel you are very clear on what's expected of you - and that the client will be very clear on what he is getting for the estimated price.

A note on pinning the client down on specifications: web site clients are notorious for figuring out what they really need and want only after a contract is signed and work has begun. This is so common that there's really no point in fighting it - it's almost guaranteed that the specifications will change. No problem - but make it clear to your client that when the specifications change, the cost estimate will change as well. Say this more than once during this phase: "This specification is only a snapshot, so that I can provide an estimate. If you add or subtract significant content or features, the cost estimate will definitely change. When that happens, I'll provide you with a written description of the change and the difference in cost."

You may need more conversations, or a series of emails, to clarify the specifications. Don't rush it! Be sure that you have enough information before you commit to an estimated cost total.

Break the specifications down. Now, take each part of the specification document and break it down into as many actual tasks as possible. For instance, "Gallery of 30 photos of 6 different houses" might involve:

  1. Receiving and sorting out client's photos
  2. Cropping, sizing, optimizing, and renaming photos
  3. Working with client to figure out how to present photos
  4. Creating thumbnails
  5. Building pages
  6. Receiving client's feedback, correcting and refining gallery page design

Figure how much time each task will take. This part of the process requires a little brow-furrowing. For each task in your list, make your most honest estimate of the time it will require. Be realistic. You may want it to take one hour to build an entire page draft, but the reality is probably going to be closer to three or four hours. Give yourself enough time to do a good job! And remember - this type of time estimate is almost always short. Be generous!

Add up the total hours and multiply by your hourly rate. Even if you don't plan to charge the client by the hour, but rather by the project, figuring by the hour is the only reasonable way to go, as it's the only real available objective measure of "how much work". The client doesn't need to know anything about the hours you're estimating it will take you, but you should know this.

Figuring your hourly rate is beyond the scope of this article; we're assuming here that you have decided what you need and want to earn for each hour you work "on the clock".

Add a percentage for contingencies, add expenses, and total it all up. The "contingency allowance" is something that experienced web and graphic designers don't even question. Underestimating is so universal that providing a cushion against your own probable inaccuracy is highly advisable. Between 10-20% is typical. Expenses, of course, are any out-of-pocket costs such as the price of graphics purchased, paying subcontractors, etc. Add it all up, and there's your total!

Stand your ground. You may be tempted to shrink the total estimate down, fearing that your potential client will find it too high, but resist that urge. You came up with as accurate an estimate as possible, and it makes no sense to lower it. The client may or may not like your price, but if you offer to do the job for less than what is fair for you, no good can come of it. Stand your ground! You won't get every job, but the ones you do get will go much smoother if your estimate was accurate and fair.

26 Steps to 15k a day

Book page

From: http://www.searchengineworld.com/misc/guide.htm

26steps to 15k a Day

Site Builder

26 steps to 15k a Day

By Brett Tabke, Feb 2, 2002
Originally posted as Successful Site in 12 months with Google Alone

The following will build a successful site in 1 years time via Google alone. It can be done faster if you are a real go getter, or everyones favorite: a self starter.

A) Prep Work:

Prep work and begin building content. Yep, long before the domain name is settled on, start putting together notes to build at least a 100 page site. That's just for openers. That's 100 pages of "real content", as opposed to link pages, resource pages, about/copyright/tos...etc fluff pages.

B) Domain name:
Easily brandable. You want "google.com" and not "mykeyword.com". Keyword domains are out - branding and name recognition are in - big time in. The value of keywords in a domain name have never been less to se's. Learn the lesson of "goto.com" becomes "Overture.com" and why they did it. It's one of the powerful gut check calls I've ever seen on the internet. That took resolve and nerve to blow away several years of branding. (that's a whole 'nuther article, but learn the lesson as it applies to all of us).

C) Site Design:
The simpler the better. Rule of thumb: text content should out weight the html content. The pages should validate and be usable in everything from Lynx to leading edge browsers. eg: keep it close to html 3.2 if you can. Spiders are not to the point they really like eating html 4.0 and the mess that it can bring. Stay away from heavy: flash, dom, java, java script. Go external with scripting languages if you must have them - there is little reason to have them that I can see - they will rarely help a site and stand to hurt it greatly due to many factors most people don't appreciate (search engines distaste for js is just one of them).
Arrange the site in a logical manner with directory names hitting the top keywords you wish to hit.
You can also go the other route and just throw everything in root (this is rather controversial, but it's been producing good long term results across many engines).
Don't clutter and don't spam your site with frivolous links like "best viewed" or other counter like junk. Keep it clean and professional to the best of your ability.

Learn the lesson of Google itself - simple is retro cool - simple is what surfers want.

Speed isn't everything, it's almost the only thing. Your site should respond almost instantly to a request. If you get into even 3-4 seconds delay until "something happens" in the browser, you are in long term trouble. That 3-4 seconds response time may vary for site destined to live in other countries than your native one. The site should respond locally within 3-4 seconds (max) to any request. Longer than that, and you'll lose 10% of your audience for every second. That 10% could be the difference between success and not.

D) Page Size:
The smaller the better. Keep it under 15k if you can. The smaller the better. Keep it under 12k if you can. The smaller the better. Keep it under 10k if you can - I trust you are getting the idea here. Over 5k and under 10k. Ya - that bites - it's tough to do, but it works. It works for search engines, and it works for surfers. Remember, 80% of your surfers will be at 56k or even less.

E) Content:
Build one page of content and put online per day at 200-500 words. If you aren't sure what you need for content, start with the Overture keyword suggestor and find the core set of keywords for your topic area. Those are your subject starters.

F) Density, position, yada, yada, yada...
Simple, old fashioned, seo from the ground up.
Use the keyword once in title, once in description tag, once in a heading, once in the url, once in bold, once in italic, once high on the page, and hit the density between 5 and 20% (don't fret about it). Use good sentences and speel check it ;-) Spell checking is becoming important as se's are moving to auto correction during searches. There is no longer a reason to look like you can't spell (unless you really are phonetically challenged).

G) Outbound Links:
From every page, link to one or two high ranking sites under that particular keyword. Use your keyword in the link text (this is ultra important for the future).

H) Cross links:
(cross links are links WITHIN the same site)
Link to on topic quality content across your site. If a page is about food, then make sure it links it to the apples and veggies page. Specifically with Google, on topic cross linking is very important for sharing your pr value across your site. You do NOT want an "all star" page that out performs the rest of your site. You want 50 pages that produce 1 referral each a day and do NOT want 1 page that produces 50 referrals a day. If you do find one page that drastically out produces the rest of the site with Google, you need to off load some of that pr value to other pages by cross linking heavily. It's the old share the wealth thing.

I) Put it Online:
Don't go with virtual hosting - go with a stand alone ip.
Make sure the site is "crawlable" by a spider. All pages should be linked to more than one other page on your site, and not more than 2 levels deep from root. Link the topic vertically as much as possible back to root. A menu that is present on every page should link to your sites main "topic index" pages (the doorways and logical navigation system down into real content).
Don't put it online before you have a quality site to put online. It's worse to put a "nothing" site online, than no site at all. You want it flushed out from the start.

Go for a listing in the ODP. If you have the budget, then submit to Looksmart and Yahoo. If you don't have the budget, then try for a freebie on Yahoo (don't hold your breath).

J) Submit:
Submit the root to: Google, Fast, Altavista, WiseNut, (write Teoma), DirectHit, and Hotbot. Now comes the hard part - forget about submissions for the next six months. That's right - submit and forget.

K) Logging and Tracking:
Get a quality logger/tracker that can do justice to inbound referrals based on log files (don't use a lame graphic counter - you need the real deal). If your host doesn't support referrers, then back up and get a new host. You can't run a modern site without full referrals available 24x7x365 in real time.

L) Spiderlings:
Watch for spiders from se's. Make sure those that are crawling the full site, can do so easily. If not, double check your linking system (use standard hrefs) to make sure the spider found it's way throughout the site. Don't fret if it takes two spiderings to get your whole site done by Google or Fast. Other se's are pot luck and doubtful that you will be added at all if not within 6 months.

M) Topic directories:
Almost every keyword sector has an authority hub on it's topic. Go submit within the guidelines.

N) Links:
Look around your keyword sector in Googles version of the ODP. (this is best done AFTER getting an odp listing - or two). Find sites that have links pages or freely exchange links. Simply request a swap. Put a page of on topic, in context links up your self as a collection spot.
Don't freak if you can't get people to swap links - move on. Try to swap links with one fresh site a day. A simple personal email is enough. Stay low key about it and don't worry if site Z won't link with you - they will - eventually they will.

O) Content:
One page of quality content per day. Timely, topical articles are always the best. Try to stay away from to much "bloggin" type personal stuff and look more for "article" topics that a general audience will like. Hone your writing skills and read up on the right style of "web speak" that tends to work with the fast and furious web crowd.

Lots of text breaks - short sentences - lots of dashes - something that reads quickly.

Most web users don't actually read, they scan. This is why it is so important to keep low key pages today. People see a huge overblown page by random, and a portion of them will hit the back button before trying to decipher it. They've got better things to do that waste 15 seconds (a stretch) at understanding your whiz bang flash menu system. Because some big support site can run flashed out motorhead pages, that is no indication that you can. You don't have the pull factor they do.

Use headers, and bold standout text liberally on your pages as logical separators. I call them scanner stoppers where the eye will logically come to rest on the page.

P) Gimmicks:
Stay far away from any "fades of the day" or anything that appears spammy, unethical, or tricky. Plant yourself firmly on the high ground in the middle of the road.

Q) Link backs:
When YOU receive requests for links, check the site out before linking back with them. Check them through Google and their pr value. Look for directory listings. Don't link back to junk just because they asked. Make sure it is a site similar to yours and on topic.

R) Rounding out the offerings:
Use options such as Email-a-friend, forums, and mailing lists to round out your sites offerings. Hit the top forums in your market and read, read, read until your eyes hurt you read so much.
Stay away from "affiliate fades" that insert content on to your site.

S) Beware of Flyer and Brochure Syndrome:
If you have an ecom site or online version of bricks and mortar, be careful not to turn your site into a brochure. These don't work at all. Think about what people want. They aren't coming to your site to view "your content", they are coming to your site looking for "their content". Talk as little about your products and yourself as possible in articles (raise eyebrows...yes, I know).

T) Build one page of content per day:
Head back to the Overture suggestion tool to get ideas for fresh pages.

U) Study those logs:
After 30-60 days you will start to see a few referrals from places you've gotten listed. Look for the keywords people are using. See any bizarre combinations? Why are people using those to find your site? If there is something you have over looked, then build a page around that topic. Retro engineer your site to feed the search engine what it wants.
If your site is about "oranges", but your referrals are all about "orange citrus fruit", then you can get busy building articles around "citrus" and "fruit" instead of the generic "oranges".
The search engines will tell you exactly what they want to be fed - listen closely, there is gold in referral logs, it's just a matter of panning for it.

V) Timely Topics:
Nothing breeds success like success. Stay abreast of developments in your keyword sector. If big site "Z" is coming out with product "A" at the end of the year, then build a page and have it ready in October so that search engines get it by December. eg: go look at all the Xbox and XP sites in Google right now - those are sites that were on the ball last summer.

W) Friends and Family:
Networking is critical to the success of a site. This is where all that time you spend in forums will pay off. pssst: Here's the catch-22 about forums: lurking is almost useless. The value of a forum is in the interaction with your fellow colleagues and cohorts. You learn long term by the interaction - not by just reading.
Networking will pay off in link backs, tips, email exchanges, and in general put you "in the loop" of your keyword sector.
Take Giacomos first post in the other thread mentioned above - he could have lurked, read, made his judgements, learned, and went off to write up his thesis. However, the step forward and the interaction has probably taught him far more about what he is concerned with than if you would have read the forums front to back. In the process he met some people that may in turn be useful resources in the future.

X) Notes, Notes, Notes:
If you build one page per day, you will find that brain storm like inspiration will hit you in the head at some magic point. Whether it is in the shower (dry off first), driving down the road (please pull over), or just parked at your desk, write it down! 10 minutes of work later, you will have forgotten all about that great idea you just had. Write it down, and get detailed about what you are thinking. When the inspirational juices are no longer flowing, come back to those content ideas. It sounds simple, but it's a life saver when the ideas stop coming.

Y) Submission check at six months:
Walk back through your submissions and see if you got listed in all the search engines you submitted to after six months. If not, then resubmit and forget again. Try those freebie directories again too.

Z) Build one page of quality content per day:
Starting to see a theme here? Google loves content, lots of quality content. Broad based over a wide range of keywords. At the end of a years time, you should have around 400 pages of content. That will get you good placement under a wide range of keywords, generate recip links, and overall position your site to stand on it's own two feet.

Do those 26 things, and I guarantee you that in ones years time you will call your site a success. It will be drawing between 500 and 2000 referrals a day from search engines. If you build a good site with an average of 4 to 5 pages per user, you should be in the 10-15k page views per day range in one years time. What you do with that traffic is up to you, but that is more than enough to "do something" with.

Related

Postnuke to Drupal Conversions: phpbb2.0 forums

Book page

Converting forums for phpbb2.0 to Drupal 4.5 forums. This is in a comment from http://drupal.org/node/12311.

# Forums
# Add the phpbb forum topics
#Replace XXX with the vid of the vocabularly you want to create, e.g., on a fresh drupal install, you can use "1" - otherwise, check your sequences table for the next available number
INSERT INTO vocabulary
VALUES (XXX, "Forum", "Topics for forums", "", 0, 1, 0, 1, "forum", -10);
# add the forum head topics by forum categories
#Replace YYY with the next available term data TID from your sequences table.
#For a fresh install, you can just delete "+ YYY". Replace XXX with the number you used above.
INSERT INTO term_data (tid, vid, name, description, weight)
SELECT cat_id + YYY, XXX, cat_title, cat_title, 0 FROM phpbb_categories;
#YYY same number as above or delete
INSERT INTO term_hierarchy (tid, parent)
SELECT cat_id + YYY, 0 FROM phpbb_categories;
# add the forum specific topics.
#Check your term_data table and find the highest TID number
#and replace ZZZ with a higher number.
#Use same XXX as above.
INSERT INTO term_data (tid, vid, name, description, weight)
SELECT forum_id + ZZZ, XXX, forum_name, forum_desc, 0 FROM phpbb_forums;
INSERT INTO term_hierarchy (tid, parent)
SELECT forum_id + ZZZ, cat_id + YYY FROM phpbb_forums;
#
# Create temporary tables for sorting topics and comments.
#
DROP TABLE IF EXISTS temp_posts;
CREATE TABLE temp_posts (
post_id mediumint(8) UNSIGNED NOT NULL auto_increment,
topic_id mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
forum_id smallint(5) UNSIGNED DEFAULT '0' NOT NULL,
poster_id mediumint(8) DEFAULT '0' NOT NULL,
post_time int(11) DEFAULT '0' NOT NULL,
post_edit_time int(11),
post_subject char(120),
post_text text,
PRIMARY KEY (post_id),
KEY forum_id (forum_id),
KEY topic_id (topic_id),
KEY poster_id (poster_id),
KEY post_time (post_time)
);
DROP TABLE IF EXISTS temp_node;
CREATE TABLE temp_node (
post_id mediumint(8) UNSIGNED NOT NULL auto_increment,
topic_id mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
PRIMARY KEY (post_id),
KEY topic_id (topic_id)
);
#
# Copy into temporary table topics without comments
#
INSERT INTO temp_node (post_id,topic_id)
SELECT MIN(post_id), topic_id
FROM phpbb_posts
GROUP BY topic_id;
INSERT INTO temp_posts (post_id, topic_id,forum_id,poster_id, post_time,post_edit_time,post_subject,post_text)
SELECT c.post_id, c.topic_id, a.forum_id, IF(a.poster_id='-1','0',a.poster_id), a.post_time, a.post_edit_time, REPLACE(b.post_subject, CONCAT(':',b.bbcode_uid),''), REPLACE(b.post_text, CONCAT(':',b.bbcode_uid),'')
FROM phpbb_posts AS a, phpbb_posts_text AS b, temp_node AS c
WHERE c.post_id=a.post_id AND c.post_id=b.post_id;
#
# Insert nid and tid from temp_posts into term_node
#
#check your node table and find the highest NID
#and replace WWW with a higher number.
#USe same ZZZ as above
INSERT INTO term_node (nid,tid)
SELECT WWW+topic_id,ZZZ+forum_id
FROM temp_posts;
ALTER TABLE term_node ORDER BY nid;
#
# Insert forum topics from temp_posts into node
#USe same WWW as above
INSERT INTO node (nid,type,title,uid,created,comment,body,changed)
SELECT WWW+topic_id,'forum',post_subject,poster_id,post_time,'2',post_text,IF(post_edit_time<>'NULL',post_edit_time,post_time)
FROM temp_posts;
ALTER TABLE node ORDER BY nid;
#
# Insert nid into forum
#Use same WWW and ZZZ as above
DELETE FROM forum;
INSERT INTO forum (nid,tid)
SELECT WWW+topic_id,ZZZ+forum_id
FROM temp_posts;
#
# Insert comments into comments for topics from temp_posts
#Use same WWW as above
INSERT INTO comments (nid,uid,subject,comment,hostname,timestamp,users)
SELECT WWW+a.topic_id,
CASE WHEN a.poster_id='-1' THEN '0' ELSE a.poster_id END,
REPLACE(c.post_subject, CONCAT(':',c.bbcode_uid),''),
REPLACE(c.post_text, CONCAT(':',c.bbcode_uid),''),
CONCAT_WS('.',CONV(SUBSTRING(a.poster_ip,1,2),16,10),CONV(SUBSTRING(a.poster_ip,3,2),16,10),CONV(SUBSTRING(a.poster_ip,5,2),16,10),CONV(SUBSTRING(a.poster_ip,7,2),16,10)),
a.post_time,'a:1:{i:0;i:0;}'
FROM phpbb_posts AS a LEFT JOIN temp_posts AS b ON a.post_id=b.post_id,phpbb_posts_text AS c
WHERE b.post_id IS NULL AND a.post_id=c.post_id;
ALTER TABLE comments ORDER BY cid;
UPDATE comments,node
SET comments.subject=IF(comments.subject='',CONCAT('Re:',node.title),comments.subject)
WHERE comments.nid=node.nid;
DROP TABLE IF EXISTS temp_posts;
DROP TABLE IF EXISTS temp_node;
#replace UUU with number higher than your highest current UID,
#or delete +UUU if this is fresh install
INSERT INTO users (uid+UUU,name,pass,mail,signature,timestamp,status,init,rid)
SELECT user_id,username,user_password,user_email,user_sig,IF(user_session_time='0',user_regdate,user_session_time),'1',user_email,'2'
FROM phpbb_users;
WHERE user_id>1
#replace WWW
INSERT INTO node_comment_statistics(
nid,
cid,
last_comment_timestamp,
last_comment_name,
last_comment_uid,
comment_count
)
SELECT
t.topic_id + WWW,
0,
t.topic_time,
p.username,
t.topic_poster,
t.topic_replies
FROM phpbb_topics t, users p
WHERE t.topic_poster = p.pn_uid;
#replace WWW
UPDATE node_comment_statistics n, phpbb_topics z SET
n.last_comment_timestamp = z.topic_last_post_id
WHERE n.nid = z.topic_id + WWW AND z.topic_last_post_id != 0;
UPDATE node_comment_statistics n, users z, phpbb_posts p SET
n.last_comment_name = z.username, n.last_comment_uid = z.uid
WHERE p.post_id = n.last_comment_timestamp and p.poster_id = z.uid;
UPDATE node_comment_statistics n, phpbb_posts p SET
n.last_comment_timestamp = p.post_time
WHERE p.post_id = n.last_comment_timestamp AND n.last_comment_timestamp != 0 ;
#
# Update Drupal variables
# This may not work and you ahve to update sequnces manually
SELECT @term_data_tid:=MAX(tid) FROM term_data;
SELECT @comments_cid:=MAX(cid) FROM comments;
SELECT @node_nid:=MAX(nid) FROM node WHERE type = 'forum';
SELECT @users_uid:=MAX(uid) FROM users;
UPDATE sequences SET id=@term_data_tid WHERE name='term_data_tid';
UPDATE sequences SET id=@comments_cid WHERE name = 'comments_cid';
UPDATE sequences SET id=@node_nid WHERE name = 'node_nid';
UPDATE sequences SET id=@users_uid WHERE name = 'users_uid';
#Now you have to install the Drupal BB code module AND the Drupal Quote Module, and you have to hack them:
#In the quote module replace function _quote_filter_process($text) with this:
function _quote_filter_process($text) {
// Quoting with or without specifying the source (code borrowed from bbcode.module)
// Thanks: function based on code from punbb.org
if (strpos($text, '[quote') !== false) {
$text = preg_replace('#\[quote=(?:"|"|\')?(.*?)["\']?(?:"|"|\')?\]#si', '
'.'\\1'." ".t("wrote:").'
', $text); $text = str_replace('[quote]', '
'.t("Quote:").'
', $text); $text = str_replace('[/quote]', '
', $text); $text = preg_replace('#\[quote:(.*?)=(?:"|"|\')?(.*?)["\']?(?:"|"|\')?\]#si', '
'.'\\2'." ".t("wrote:").'
', $text); $text = str_replace('[quote]', '
'.t("Quote:").'
', $text); $text = preg_replace('#\[/quote:(.*?)\]#', '
', $text); } return $text; } #In the BB code module, file bb-code-filter.inc, comment out the following lines: Quoting with or without specifying the source '#\[quote(?::\w+)?\](?:[\r\n])*(.*?)\[/quote(?::\w+)?\]#si' => '
'.$quote_text.':
\\1
', '#\[quote:(.*?)=(?:"|"|\')?(.*?)["\']?(?:"|"|\')?\](?:[\r\n])*(.*?)\[/quote(?::\w+)?\]#si' => '
'.$quote_user.':
\\2
',

Web Related Content & Reference

Book page