Tải bản đầy đủ (.pdf) (302 trang)

Packt community server quickly a concise and practical guide to installation administration and customization nov 2006 ISBN 1847190871 pdf

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (8.82 MB, 302 trang )

Community Server is Telligent System’s award-winning solution for quickly and easily
enabling online communities. With this clear and concise step-by-step guide you’ll be
up and running with a fully featured Community Server installation as quickly
as possible.
With full coverage of installing, managing, and customizing this powerful tool for your
community audience, this book is an administrator’s essential companion. This book can be used
as a reference with all editions of Community Server, but the screens and examples you will see
are from the free Express edition.

What you will learn from this book
An overview of Community Server, the various editions and licensing options
Installing Community Server
Creating and managing blogs and forums
Creating and managing photo and file galleries
Using the Reader and Roller functionality to collect and display RSS feeds
Managing users and roles, and working with user profiles
Monetizing your Community Server site by adding paid advertisements
Customizing Community Server, applying themes, and using add-ons
Configuring RSS, date, time, and email settings
Working with Community Server reports
Deploying Community Server

Who this book is written for
This book is for people who want to set up and run Community Server, or have been tasked with
administering a Community Server installation. No prior knowledge of system administration or
programming is required to get the most from this book.
$ 39.99 US
£ 24.99 UK
€ 36.99 EU
Prices do not include
local sales tax or VAT


where applicable

Packt Publishing
Birmingham - Mumbai

Anand Narayanaswamy













Community Server Quickly

Community Server Quickly

F r o m

T e c h n o l o g i e s

t o

S o l u t i o n s


Community Server Quickly

A Concise and Practical Guide to Installation, Administration,
and Customization

Foreword by Rob Howard, CEO of Telligent Systems

www.packtpub.com

Anand Narayanaswamy


Community Server Quickly

A Concise and Practical Guide to Installation,
Administration, and Customization

Anand Narayanaswamy

BIRMINGHAM - MUMBAI


Community Server Quickly
Copyright © 2006 Packt Publishing

All rights reserved. No part of this book may be reproduced, stored in a retrieval
system, or transmitted in any form or by any means, without the prior written
permission of the publisher, except in the case of brief quotations embedded in
critical articles or reviews.

Every effort has been made in the preparation of this book to ensure the accuracy of
the information presented. However, the information contained in this book is sold
without warranty, either express or implied. Neither the author, Packt Publishing,
nor its dealers or distributors will be held liable for any damages caused or alleged to
be caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all the
companies and products mentioned in this book by the appropriate use of capitals.
However, Packt Publishing cannot guarantee the accuracy of this information.

First published: November 2006

Production Reference: 1131106

Published by Packt Publishing Ltd.
32 Lincoln Road
Olton
Birmingham, B27 6PA, UK.
ISBN 1-84719-087-1
www.packtpub.com

Cover Image by www.visionwt.com


Credits
Author
Anand Narayanaswamy
Reviewers
David Stokes

Editorial Manager

Dipali Chittar
Project Manager
Patricia Weir

Rob Howard
Indexer
Development Editor

Bhushan Pangaonkar

Douglas Paterson
Proofreader
Assistant Development Editor

Chris Smith

Nikhil Bangera
Layouts and Illustrations
Technical Editors

Shantanu Zagade

Rashmi Phadnis
Viraj Joshi

Cover Designer
Shantanu Zagade


Foreword

We’ve come a long way from the vision of building a Community Platform. While
we are all thrilled with the success the product has had, we are not nearly satisfied
and have many more plans for the platform. In fact, we at Telligent believe we have
created an entirely unique and new type of solution: a "Community Management
System", although the acronym CMS is already taken!
Communities are becoming an increasingly important tool for organizations to use
to support their products and initiatives. Communities help you understand and
connect to people, such as Microsoft’s use of forums.xbox.com as a community for
supporting the millions of Xbox gamers. Communities allow you to participate in
discussions about your company, people, and products such as Dell’s Direct2Dell.
com blog. Communities also enable you to create vital tools for talking to customers
without spending money on marketing campaigns.
Community Server is the platform that enables all of these scenarios and this book
will help introduce you to Community Server and impart the knowledge you need to
build a community solution.
In this book, Anand Narayanaswamy will walk you through all of the various
capabilities of Community Server, such as how blogs, forums, photo galleries, and
file sharing can be used. He will also impart to you some tips & tricks for configuring
your Community Server application. More importantly, this book will serve as a
handy guide if you are implementing Community Server for your organization.


As I write this foreword our development team is hard at work on version 3.0 of
Community Server. The goal for Community Server 3.0 is to greatly simplify the
themes engine and to ensure that anyone can make changes to the user experience
using simple What You See Is What You Get editors without any knowledge of ASP.
NET, CSS, or HTML. At the same time we will not compromise on the platform
and Community Server will continue to be a reference software solution that
demonstrates best practices for writing software on Microsoft’s .NET platform.
With that I present to you this book and hope to see you online at www.

communityserver.org.
Thank you,
Rob Howard
Chief Executive Officer
Telligent Systems


About the Author
Anand Narayanaswamy works as an independent consultant and runs NetAns

Technologies (), which provides web hosting services
and is based in Trivandrum, Kerala State, India. He is a Microsoft Most Valuable
Professional (MVP) in Visual C#. He works as the full time Technical Editor lead for
ASPAlliance.com ( and is also a
member of the ASPAlliance.com Advisory Board.


He regularly contributes articles, and book and product reviews to
ASPAlliance.com, C-Sharpcorner.com, Developer.com, Codeguru.com,
Microsoft Academic Alliance, asp.netPRO print magazine, and asp.netNOW
online magazine.



Anand has worked as a Technical Editor for several popular publishers
such as Sams, Addison-Wesley Professional, Wrox, and Manning. His
technical editing skills helped the authors of Sams Teach Yourself the C# Language
in 21 Days, Core C# and .NET, Professional ADO.NET 2, and ASP.NET 2.0 Web Parts
in Action to fine tune the content. He has also contributed articles for Microsoft
Knowledge Base and delivered podcast shows for Aspnetpodcast.com. He is a

moderator for Windows MarketPlace Newsgroups.
Anand also runs LearnXpress.com, Dotnetalbum.com, CsharpFAQ.com,
Computerbookreviews.org, and DigitalGadget.Info. LearnXpress.com is a featured
site at MSDN's Visual C# .NET communities section.
Anand has so far won several prizes at Community-Credit.com and has been
featured as "All Time" contributor at the site. He is one of the founders of
Trivandrum Microsoft Usergroup. He regularly blogs under the banner "I Type
What I Feel" at and maintains a personal website at
/>

Acknowledgements
First, I would like to thank my parents for their excellent support and
encouragement. I am thankful to my brother for all his help and motivation that
made my work better, and I am really proud of him.
I am greatly indebted to Douglas Paterson, Development Editor at Packt Publishing,
for accepting my proposal and also for his support from the beginning. He provided
valuable advice at every stage through emails that encouraged me a lot. He managed
things to ensure that I am not overloaded with work.
My sincere thanks to Rob Howard, Chief Executive Officer, Telligent Systems for his
great help right from the beginning despite his busy schedule, by answering several
questions very quickly and also for providing a nice Foreword for my book. Rob
offered all kind of assistance when I proposed the project to him, and his comments
and suggestions as a Technical Reviewer helped me a lot. I am also thankful to David
Stokes for his help in reviewing the final set of chapters.
I am thankful to Alex Homer for all his help and support. He quickly replied to my
queries, which certainly helped me to complete the project on schedule. I am also
thankful to Scott Watermasysk, Jason Alexander, and Donnie Condor for their help
and assistance.
I am very much thankful to Nikhil Bangera, Rashmi Phadnis, and Viraj Joshi for
nicely editing the content and pinpointing several hidden mistakes in certain

chapters. Though I had to work more, I feel that the quality of the book has greatly
improved after I incorporated their comments and suggestions into the final drafts.
I am thankful to Patricia Weir and the entire staff at Packt Publishing who worked
behind this book.
I am thankful to Abhishek Kant, Community Program Manager, Microsoft India for
recognizing my talent and expertise. He also provided excellent support whenever
I approached him with questions. I am also thankful to Steven A Smith, President,
ASPAlliance LLC and Michelle Smith, Vice President, ASPAlliance LLC for their
encouragement, help and support.


About the Reviewers
Rob Howard has the privilege of running Telligent ()
and working with a phenomenal team of talented individuals to build software
that helps people share information. Community Server is the first product built
by Telligent. Every day Community Server helps people quickly and easily build
web communities. Rob’s blog is and his email
address is

Dave Stokes is a Community Server MVP and has over 20 years experience

working with Microsoft products. He has worked for many of the world's
leading IT companies in Europe and the United States of America, specializing
in Infrastructure Design and Management, and currently spends much of his
time packaging applications using Microsoft's Installer Technology. He has
been using Community Server since version 1.0. He can be contacted at



Table of Contents

Preface
Chapter 1: Introducing Community Server

1
7

What is Community Server?
Blog
Forums
Photo Gallery
File Gallery
Reader and Roller
The Evolution
A Comparison with DotNetNuke (DNN)
Editions and Licensing
Express
Standard
Professional
Enterprise
Hosted
What's New in Community Server 3.0 (or Calypso)?
Chameleon
Morpheus
Zion
Tallyman
Summary

7
9
10

11
11
12
13
16
17
17
17
17
17
18
19
20
20
20
20
20

Chapter 2: Getting Started with Community Server

21

Prerequisites
Downloading Community Server
Install Options
Using Windows Installer to Download Community Server
Using Web Installer to Download Community Server

21
22

23
23
24


Table of Contents

Installing Community Server
Installing Community Server Using the Windows Installer
Configuring Community Server
Connecting to the Database
Windows Authentication vs. SQL Server Authentication
Configuring the Administrator Account
Launching Community Server
Installing Community Server Using the Web Installer
Creating a Database Using SQL Server
Using the Installation Wizard
Testing the Installation of Community Server
Navigating the Control Panel Dashboard
Summary

Chapter 3: Working with Blogs

24
25
25
26
27
27
29

30
31
33
38
39
41

43

Understanding Blogs
Blog Groups
Creating a Blog Group
Managing Blog Groups
Creating a Blog
Managing Permissions
Managing a Blog
Writing your Blog Entry
Viewing a Blog Post
Working with Comments
Viewing Comments
Generating Email Alerts
Managing Comments
Managing Content

Managing Posts
Moderating Blogs and Comments
Approving Comments
Working with Blog Pages
Working with Tags
Working with Blog Lists

Working with Snippets
Displaying General Information on the Blog

Working with Global Settings
Supplying Title, Description, and News
Changing the Appearance of your Blog
Configuring Email Settings
Working with Post Settings
Understanding Blog-Level Settings
[ ii ]

43
44
44
45
46
49
50
52
56
56
57
59
59
61

62
62
63
64

65
66
69
70

70
71
71
73
73
74


Table of Contents

Understanding Syndication using RSS & Atom
Working with Spam, Ping, and Cross-Posting Settings

75

77

Rating Blog Posts
Managing Blogs Globally
Configuring Blogs for Members
Summary

77
78
81

84

Chapter 4: Working with Forums

85

A Brief History of Forums
Getting Started: A Sample Forum
Introduction to Creating Forums
Creating Forum Groups
Creating Forums
Viewing Sample Forums
Posting a Thread as an Administrator
Posting the Message to the Forum
Threads versus Posts
Moderating Posts
Approving a Post
Merging Posts
Moving Posts
Locking Posts
Managing Forum Settings Globally
Managing General Post Settings
Managing Post Editing
Managing Attachments
Managing Duplicates and Flooding
Managing Popular Posts
Working with Ranks
Creating a Rank
Viewing the Rank
Analyzing the Forums Home Page of an Administrator

Shortcuts
Popular Tags
My Discussions
Active
Unanswered
Most Active Users
Analyzing the Forums Home Page of a User
Personalizing the Home Page
Summary
[ iii ]

85
87
88
89
90
94
95
98
106
107
110
112
113
116
117
118
119
120
120

121
121
121
122
123
125
127
128
128
128
129
129
130
131


Table of Contents

Chapter 5: Working with Galleries

About Galleries
Building a Photo Gallery
Creating a Photo Gallery: Getting Started
Creating a Gallery Group
Creating a Photo Gallery
Adding Photos
Viewing Photos
Navigating Photos
Posting Comments
Managing Comments

Moderating Comments
Managing Tags

133

133
134
134

135
136
140
144
145
146
147
147
148

Working with Albums

149

Customizing your Photo Gallery

154

Creating Albums
Managing Albums


150
151

Modifying the Title and Description
Modifying the Appearance of your Gallery
Configuring the About Page
Changing the Categorization Method
Managing Post Settings
Managing Advanced Photo Settings

154
154
156
157
157
159

Watermarking Photos
Displaying the Properties of a Photo
Importing Photos
Advanced Syndication Settings
Building a File Gallery
Getting Started

160
161
162
163
163
163


Working with Comments
Managing Settings
Accessing the File Gallery
Viewing the Download Report
Summary

170
171
172
174
175

Creating a Folder Group
Creating a Folder
Managing a Folder
Uploading a File

Chapter 6: Working with Reader and Roller

Overview
Working with Reader
Aggregating Feeds
Managing Feeds
Granting Permissions for Users to Access the Reader
[ iv ]

164
165
166

167

177

177
178
179
181
182


Table of Contents

Working with Roller
Managing Settings
Summary

183
185
186

Chapter 7: Managing your Community's Users
The Community's Members
Getting Started
Searching
Navigating Search Pages
Examining Quick Lists Options
Top Contributors
Visitors in the Last 24 Hours
Recent Registrations

Users Awaiting Approval

Browsing All Members
Modifying the Username
Changing Passwords
Adding and Removing Roles
Deleting Users
Creating a New Account
Managing Roles
Managing Registration Settings
Allow Login
Allow Banned Users to Login
Allow New User Registration
Show Contact Checkboxes
New User Moderation Level
Username Regular Expression Pattern
Username Minimum Length
Username Maximum Length
Account Activation
Password Recovery
Password Regular Expression Pattern
Managing Account Profile Settings
Allow Signatures
Enable Signatures
Signature Maximum Length
Allow Gender
Enable User Theme Selection
Require Authentication for Profile Viewing
Member List Settings
Display Member List

[]

187

187
187
188
189
190

190
191
191
192

194
194
195
195
197
197
198
200
200
200
200
201
201
201
201

201
202
202
202
202
203
203
203
203
204
204
204
204


Table of Contents

Enable Advanced Member Searching
Enable Audit Counters
Members per Page
Managing Cookie and Anonymous Settings
Roles Cookie Enabled
Track Anonymous Users
Roles Cookie Name
Roles Cookie Expiration
Anonymous Cookie Name
Anonymous Cookie Expiration
Cookie Domain
Anonymous User Online Window
Managing Avatar Settings

Enable Avatars
Enable Remote Avatars
Avatar Dimensions
Summary

204
204
205
205
205
205
205
205
206
206
206
206
206
207
207
208
208

Chapter 8: Customizing Community Server

209

Chapter 9: Working with Settings

223


Customizing the Home Page
Modifying Headings and Logos
Editing Content
Modifying the Theme of your Site
Modifying the Theme of your Blog
Modifying Themes
Modifying Themes Dynamically
Working with Add-ons
Using FreeTextBoxWrapper Control
Installing the FreeTextBoxWrapper Control
Working with Modules
Creating Custom Links
Summary
Overview
Managing General Site Settings
Enable Ink
Display Site Description
Display Current Time
Display Who is Online
Display Site Statistics
Enable Display Names

[ vi ]

209
209
210
210
211

212
214
214
215
216
220
222
222
223
223
223
224
224
224
224
225


Table of Contents

Default Site URL
Terms of Service
Enable Content Language Filters
Display EULA Graphic
Managing Site Content
Site Name
Site Description
Search Meta Description
Search Meta Keywords
Raw Header

Copyright Notice
Applications
Managing Contact Information
Admin Email Address
Company/Organization Name
Company/Organization Email Address
Company/Organization Fax Number
Company/Organization Address
Managing RSS Settings
Enable Secure Syndication
Enable RSS Search
Managing Post Settings
Enable Anonymous Posting
Enable Post Censorship
Allow Emoticons
Forum Rating Type
User Posting Performance
Display User Rank as a Picture
Search Results/Page
Number of Top Posters
Managing Date and Time Settings
Time Zone
Date Format
Time Format
Thread Date Filter
Managing Email Settings
Enable Email
Email Encoding
Email Throttle
SMTP Server

Use Windows Integrated Authentication
[ vii ]

225
225
226
226
226
226
226
226
226
227
227
227
228
228
228
228
228
228
229
229
229
229
229
229
229
230
230

230
230
230
230
231
231
231
232
232
232
232
233
233
233


Table of Contents

SMTP Server Login Required
SMTP Server Login Name
SMTP Server Password
SMTP Port Number
Tracking the IP Address
Enable Tracking of Poster IP Address
Display Poster IP Address Publicly
Display Poster IP Address only to Administrators & Moderators
Summary

233
233

234
234
234
234
235
235
235

Chapter 10: Working with Reports

237

Chapter 11: Working with System Tools

249

Overview
Working with the Exceptions Report
Filtering the Exceptions Report
Working with the Jobs Report
Reporting with Community Server
Generating Reports for the Site
Generating Reports for Blogs
Generating Reports for Forums
Working with SQL Jobs
Creating SQL Jobs
Summary
Getting Started
Working with Ads
Enabling Ads

Implementing Google AdSense on your site
Implementing Amazon Associates on your Site
Implementing Inline Ads
Working with Disallowed Names
Working with Censorship
Creating Censored Words
Working with Smilies
Working with Articles
Working with Spam Blocker
Examining the Rules
Bad Word Count
Forbidden Word
IP Count
Link Count

Installing New Spam Rules

237
238
239
239
240
240
241
242
243
244
247
249
250

250
250
251
252
252
254
255
255
257
259
260

261
261
262
263

263
[ viii ]


Table of Contents

Working with the Member Points System
General
Enable the Member Points System
Post Points Visibility
User Points Visibility

Factor Values


263
264

264
264
264

264

Post Factor
Reply Factor
Replier Factor
Rating Factor
Download Factor
Downloader Factor
Favorite Post Factor
Favorite User Factor
Rater Factor

265
265
265
265
265
265
265
265
266


Calculate
Viewing Member Points
Working with Licenses
Working with URL Redirects
Handling Mass Emails
Banning an IP Address
Working with Event Log Viewer
Summary

266
266
266
267
269
269
270
270

Appendix A: Deploying Community Server

271

Index

275

Registering a Domain Name
Obtaining a Web Space
Uploading Files


[ ix ]

271
271
272



Preface
Community Server is an award-winning solution for setting up online communities.
It includes a suite of integrated applications, which includes blogs, discussion
forums, photo and file galleries, reader, and roller, which together can help you
create your community presence. Community Server is the trusted solution for
many organizations including Microsoft, Dell, Conde Nast, Match.com, and others.
You can learn more about Community Server, and see it in action, at
.
Written in a clear and concise manner, this book will guide you through the
installation, administration, customization, and deployment of a Community Server
solution. With the help of this book you will be able to start using your Community
Server site within minutes of its installation. The book kicks off with a brief overview
about the evolution of Community Server, its various editions, and installation
procedures, and then delves deep into the creation and management of its
integrated applications.
The later chapters of the book explore the different ways you can customize your
Community Server site along with comprehensive coverage of add-ons and modules.
You will also learn how to manage your Community Server license and other
related settings.

What This Book Covers


The Community Server platform is introduced in Chapter 1 and we look into the
evolution of Community Server and various applications available with it. Keeping
in mind the nature of tasks that lie ahead, this chapter also discusses various editions
and licensing options that will help you to choose the right Community Server
platform for your use. Finally it outlines some of the key features of the upcoming
Community Server 3.0.


Preface

Everything that you require to execute Community Server on a development
machine is discussed in Chapter 2. The steps required for download and installation
of Community Server are explained in depth. The chapter also lists the steps
required to configure your installation and describes the various options found in the
Control Panel.
One of the greatest features available with Community Server, blogs, is explored in
Chapter 3. It examines how to create and manage blogs to publish content with the
help of a sample blog. It also explains how to configure blogs for registered users.
Community Server has a fully featured discussion forum. Chapter 4 teaches you how
to create forum groups so
������������������������������������������������������������
that you can file each forum under the appropriate group
and create a sample forum. After creating forums
���������������������������������������
the chapter covers making posts
and also how to manage and administer these forums.
Chapter 5 shows you how to add a gallery to your Community Server. You will learn
how to create photo and file galleries and manage them with the help of sample
photo and file galleries.
Chapter 6 explains the powerful reader and roller features of Community Server.

By implementing reader and roller functionality in your site, you can keep track of
content of the other blogs using RSS feeds.
Chapter 7 looks at management of site members, their profiles, resetting passwords,
and managing roles, cookies, and avatar settings.
The standard look and feel of Community Server gets a face-lift in Chapter 8. It
gives you a run down of how attractive Community Server can be through the use
of themes and also explains how to make important modifications to your chosen
theme. It also teaches you how to use add-ons and modules, and to include custom
links in the navigation bar of the site.
Chapter 9 gives you the edge when it comes to managing various Community Server
settings. It explains the management of different settings associated with RSS,
post, date, time, and email. At the end of the chapter you learn how to track the IP
addresse��������������������������������������������
s of visitors to your Community Server site.
Chapter 10 takes you one step further by looking at the reporting functionality. This
chapter shows you how an administrator can generate and view not only user,
������������
blog,
and forum activity reports��������������������������������������������
but also different types of exceptions and
jobs reports.
Chapter 11 delves into monetizing your site by advertising through Google AdSense
and Amazon affiliate programs. It further discusses the management of licenses,
word filters, spam blocker, member points, emoticons, and IP addresses.
[]


Preface

Appendix A walks through the steps followed for deploying Community Server to a

hosted server. Basically it provides a sound process for taking the finished product
and making it available for public consumption on your host site.

What You Need for This Book

The prerequisite for this book is a working installation of Community Server. To
run Community Server the typical environment consists of IIS (5.1 or greater), .NET
Framework (1.1 or greater), a Database System (����������������������������������
SQL Server 2000, SQL Server 2005,
or SQL Server 2005 Express Edition�����������������������������������������������
) and a Development Environment (��������������
Visual Studio
.NET 2003, Visual Studio 2005, or Visual Web Developer 2005 Express Edition������
). We
cover the details of prerequisites and installation of Community Server in Chapter 2.

Conventions

In this book, you will find a number of styles of text that distinguish between
different kinds of information. Here are some examples of these styles, and an
explanation of their meaning.
There are two styles for code. Code words in text are shown as follows: "��������
You can
also modify the background color of the page header and other adjoining areas by
supplying the appropriate value for the background-color property��
."
A block of code will be set as follows:
body, html
{
margin: 0px;

padding: 0px;
color: #000000;
font-family: Tahoma, Arial, Helvetica;
background-color: #999966;
}

When we wish to draw your attention to a particular part of a code block, the
relevant lines or items will be made bold:
body, html
{
margin: 0px;
padding: 0px;
color: #000000;

[]


Preface


font-family: Tahoma, Arial, Helvetica;


}

background-color: #999966;

New terms and important words are introduced in a bold-type font. Words that you
see on the screen, in menus or dialog boxes for example, appear in our text like this:
"clicking the Next button moves you to the next screen".


Warnings or important notes appear in a box like this.

Tips and tricks appear like this.

Reader Feedback

Feedback from our readers is always welcome. Let us know what you think about
this book, what you liked or may have disliked. Reader feedback is important for us
to develop titles that you really get the most out of.
To send us general feedback, simply drop an email to ,
making sure to mention the book title in the subject of your message. You can even
submit a review on Amazon.com.
If there is a book that you need and would like to see us publish, please send us a
note in the SUGGEST A TITLE form on www.packtpub.com or email suggest@
packtpub.com.
If there is a topic that you have expertise in and you are interested in either writing
or contributing to a book, see our author guide on www.packtpub.com/authors.

Customer Support

Now that you are the proud owner of a Packt book, we have a number of things to
help you to get the most from your purchase.

Companion Website

Visit the companion website created by the author
to catch the latest news on the book.
[]



Preface

Errata

Although we have taken every care to ensure the accuracy of our contents, mistakes
do happen. If you find a mistake in one of our books—maybe a mistake in text or
code—we would be grateful if you would report this to us. By doing this you can
save other readers from frustration, and help to improve subsequent versions of this
book. If you find any errata, report them by visiting />support, selecting your book, clicking on the Submit Errata link, and entering the
details of your errata. Once your errata have been verified, your submission will be
accepted and the errata added to the list of existing errata. The existing errata can be
viewed by selecting your title from />
Questions

You can contact us at if you are having a problem with
some aspect of the book, and we will do our best to address it.

[]



×