Index
A
- access logs / Access logs and statistics
- addTemplateBit method / Template improvements
- administrators
- system events stream / A system stream for administrators
- advertising spaces
- purchasing / Advertising space, Keeping them happy
- affiliate marketing / Monetization options
- Akamai
- about / Content Delivery Networks
- URL / Content Delivery Networks
- Amazon EC2 / VPS Cloud Hosting
- Apache / Apache
- APC / Available caching systems
- API
- about / What is an API and why should we create one?
- benefits / What is an API and why should we create one?
- adding, to social networks / APIs in social networks
- API, implementing
- data format / Data format
- API controller / API controller
- API, methods
- API controller
- about / API controller
- example / API controller
- A Small Orange
- authenticate registry object
- amending / Amending the authenticate registry object
- authentication
- registry object / Our authentication registry object
- POST authentication / POST authentication
- SESSION authentication / SESSION authentication
- about / API controller
- authentication controller
- authentication object
- about / Authentication with our authentication object
- database, connecting / Logging in
- authentication method, calling / Logging in
- user status, verifying / Are we logged in?
- logout request, verifying / Logging out
- remember me option / Remember me
B
- birthdays calendar
- about / Birthdays
- relationship IDs, getting / Getting relationship IDs
- calendar, setting up / Setting up the calendar
- birthdays, getting / Getting the birthdays
- birthdays, passing to calendar / Passing them to the calendar
- results / The results
- British Telecom
- about / BT: Twitter
- URL / BT: Twitter
- business logic, social networks
- about / Business logic to social networks
- NameCheap / NameCheap: Twitter
- Dell / Dell: Twitter
- British Telecom / BT: Twitter
- Netgear / Netgear: custom
C
- caching systems
- about / Caching systems
- Memcached / Memcached, Available caching systems
- XCache / Available caching systems
- APC / Available caching systems
- calendar, diaplaying
- output, generating / Generate and output
- multiple calendars / Multiple calendars
- event information / With events
- calendar library
- considerations / Calendars: what do we need to be able to do?
- about / Calendar library
- variables, creating / Calendar library
- month, generating / Generating the month
- days in a month, calculating / Days in the month
- ordered days / Ordered days
- previous month links / Previous month
- next month / Next month
- diaplaying / Displaying a calendar
- CAPTCHA system
- about / CAPTCHA
- working / General CAPTCHA
- reCAPTCHA / reCAPTCHA
- CAPTCHA systems / Farm it out
- checkForAuthentication method / Our authentication registry object
- Clickatell
- about / SMS notifications
- cloud hosting / Choosing a web hosting provider
- cloud hosting, VPS / VPS Cloud Hosting
- co-location / Choosing a web hosting provider
- code performance
- need for / Code performance
- improving, guidelines / Code performance
- code, profiling / Code profiling
- MySQL queries, optimizing / Slow queries
- website output, compressing / Compression
- resources / Useful tools and resources
- tools / Useful tools and resources
- comments
- adding, to status stream / Comments
- comments, statuses
- Component, MVC component / Controller
- ComputerWorld article
- tips, URL / Useful tools and resources
- conference talks / Conference talks
- connections
- content delivery network (CDN) / Content Delivery Networks
- controller
- event, creating / Creating an event
- new event template / Template for a new event
- controller, private messages
- messages, listing / Listing messages
- messages, reading / Reading a message
- messages, deleting / Deleting a message
- messages, composing / Composing a new message
- controller, public messages
- about / Controller
- profile messages, displaying / Displaying profile messages
- post message box, displaying / Displaying the post message box
- CouchDB / No SQL
- cPanel / Choosing a web hosting provider
- site, backing up / With cPanel
- site, restoring / With cPanel
- cPanel hosting Control Panel
- database, creating / With cPanel hosting control panel
- cURL
- using / Consuming
- data, posting to API / POSTing data to our API with cURL
- CURLOPT_HEADER option / Consuming
D
- data
- sanitizing / Sanitizing data
- database
- connecting, to / Connecting to the database and managing connections
- structuring / Structuring the database
- creating, on hosting account / Creating a database on the hosting account
- creating, with cPanel hosting control panel / With cPanel hosting control panel
- creating, with privileges on phpMyAdmin / With appropriate privileges on phpMyAdmin
- local database, exporting / Exporting our local database
- records, changing / Changing some of our database records
- configuration options, changing / Changing our database configuration options
- database, discussion forums
- database access class
- functions / Database
- database table
- versus message queue / Message queue versus database table
- database table, statuses
- structure / Statuses database table
- types / Statuses types database table
- status, types / Different types of status
- data format / Data format
- Data Protection Act
- issues, covering / Privacy policies
- data protection legislation / Security
- dataToTags method / Multiple calendars
- dedicated servers / Choosing a web hosting provider
- delegateControl method / API controller
- Dell
- about / Dell: Twitter
- URL / Dell: Twitter
- description tag / Page metadata
- Dino Net / Advertising space
- Dino Planet / Advertising space
- DinoSpace
- about / Our site: DinoSpace
- features / Our site: DinoSpace
- profile fields / Hooking additional fields on
- additional profile fields, creating / Hooking additional fields on
- users, connecting with / Inviting friends
- members / Members
- relationships / Custom relationships, Relationships
- relationship, types / Relationship types
- relationships table, structure / Relationships
- friends, adding / Adding friends
- friends, listing / Listing friends
- profile friends / Friends in your profile
- statuses / Statuses
- status stream / What is a status stream?
- functionality areas / What should it do, and who should be able to do what?, How should it work?
- discussion, within group
- group controller additions / Group controller additions
- view / View
- implementing / Discussion in action—viewing a topic
- discussion forums
- domain
- nameservers, setting for / Setting the nameservers for the domain
- domain name
- selecting, for site / Choosing a domain name
- registering / Registering a domain name
- registrars / Popular domain name registrars
- domain name registrars
- NameCheap / Popular domain name registrars
- GoDaddy / Popular domain name registrars
- 123-reg / Popular domain name registrars
- Drupal
E
- e-mail notifications, reminders
- about / E-mail notifications
- e-mails
- sending, for verification / Sending e-mails
- Elgg
- event
- viewing / Viewing an event
- viewing, in action / Viewing an event in action
- event model
- about / Event model
- events
- about / Events
- invitations / Attendees, invitations, and RSVPs
- attendees / Attendees, invitations, and RSVPs
- RSVPs / RSVPsRSVPsabout
- controller / Controller
- integrating, with calendar library / Calendar of events
- upcoming events / Upcoming events
- events model
- creating / Events model
- event template
- for, viewing event / Event template
- exit() method / Processing the image upload
F
- Facebook applications / Hybrid approaches
- Facebook connect / Hybrid approaches
- fetch_array method / Executing queries
- files
- uploading / Uploading the files
- file upload
- processing, image manager library used / Using the image manager library to process the file upload
- firewall
- site, securing / Securing the site with a firewall
- folder structure / Folder structure
- foreach loop / Disconnecting
- framework
- designing / Designing the framework
- building / Building the framework
- friends, adding
- relationship, forming / Forming a relationship
- friends, automatic invitation
- about / Automatically inviting friends
- Google Friend Connect / Google Friend Connect
- Windows Live contacts / Windows Live contacts
- Yahoo! / Yahoo!
- Gmail contacts / Gmail contacts
- friends, inviting
- ways / Inviting friends
- via e-mail / Inviting friends
- direct contact / Inviting friends
- manually / Manually inviting friends
- manually, invitation controller used / Invitation controller
- automatically / Automatically inviting friends
- connecting, automatically / Automatically connecting with friends
- friends, listing
- steps / Our friends
- for other users / Their friends
- Front Controller pattern / The Front Controller pattern
G
- generatePagination method / Paginated members
- generateStream method
- creating / Generating the stream
- getIDsByUser method / Events model
- getimagesize function / Uploading a photograph—an image handler
- getimagesize method / Processing the image upload
- getNetwork method / Relationships—get the IDs!
- getObject method / The registry object
- getRelationships method / All contacts
- getSetting method / The registry object
- getter method / New getter: isValid()
- getURLData method / URL processing
- GoDaddy
- Google Adsense / Monetization options
- Google Adwords / What to look for in an SEO company
- Google Analytics
- about / Newsletters, Final tips: web stats
- Google OpenSocial / Hybrid approaches
- group
- discussion / Discussion
- group itself / The group itself
- creating / Creating a group, Creating a group—in action
- controller, creating / Controller
- template, creating / View
- viewing / Viewing a group
- discussing within / Discussing within a group
- joining / Joining a group
- public groups, adding / Joining (public) groups
- group, viewing
- membership / Membership
- group_memberships table / Membership
- membership model / Membership model
- controller / Controller
- view / View
- implementing / In action
- group controller additions
- about / Group controller additions
- topic, creating / Creating a topic
- topic, viewing / Viewing a topic
- topic, replying to / Replying to a topic
- group discussion
- about / Discussion
- group model
- about / Model
- groups
- adding / Some planning
- standard information / Group information
- types / Types of groups
- global/public groups / Types of groups
- network specific groups / Types of groups
- private groups / Types of groups
- ownership / Ownership
- membership / Membership
- features / Features
- listing / Listing groups
- my groups / My groups
- groups, listing
- groups controller addition / Group controller addition
- template / Template
- implementing / In action
- group table
- about / Group table
H
- .htaccess file / .htaccess
- home_page_content key / Memcached
- hosting
- about / Choosing a web hosting provider
- shared hosting / Choosing a web hosting provider
- hosting provider
- signing up, with / Signing up with a hosting provider
- hosting providers
- shared hosting / Choosing a web hosting provider
- VPS / Choosing a web hosting provider
- cloud hosting / Choosing a web hosting provider
- dedicated servers / Choosing a web hosting provider
- co-location / Choosing a web hosting provider
- HTTP authentication / Authentication
- HTTP verbs / HTTP verbs
I
- 1&1 Internet Inc.
- iFrame application / An Application Framework API
- if statement / Relationships—get the IDs!
- image, processing
- about / Images
- database table / Database table
- model / Model
- imagecreatefrom function / Processing the image upload
- imagecreate function / Uploading a photograph—an image handler
- image manager library
- file upload, processing / Using the image manager library to process the file upload
- image manager library file
- working / Processing the image upload
- image upload
- processing / Processing the image upload
- index.php file / The Front Controller pattern, index.php
- amending / Amending index.php
- InnoDB storage engine / Message queue versus database table
- international TLDs / Choosing a domain name
- isValid() method / New getter: isValid()
J
- Jailed FTP / Shared hosting precautions
- Jailed Shell / Shared hosting precautions
- JavaScript
- user experience, enhancing / jQuery to enhance the user experience
- Jomsocial component
- URL / Joomla!
- Joomla!
- json_encode function / Data format
K
- KCacheGrind / Code profiling
- keywords tag / Page metadata
L
- $last variable / Executing queries
- LIMIT keyword / Simplifying common queries
- links, sharing
- listMembersByLetter method / Paginated users by letter
- listMembers method / Paginated members
- listRecentStatuses method / Code
- listUpcomingInNetwork method
- about / Upcoming events
- loadFromPost method / Uploading a photograph—an image handler
- local database
- exporting / Exporting our local database
- importing, to hosting account / Importing our local database to the hosting account
M
- magic_quotes_gpc setting / Sanitizing data
- mail() function / Room for improvement
- MailChimp / Newsletters
- mailout.class.php file / Sending e-mails
- marketing
- methods / Marketing
- marketing, methods
- about / Marketing
- online advertising / Online advertising
- newsletters / Newsletters
- social marketing / Social marketing
- MaxClient Directive / Apache
- MD5 one-way hash / SESSION authentication
- MediaTemple
- members
- creating / Members
- users, listing / Listing users
- users, searching / Searching for users
- Memcached / Memcached, Available caching systems
- message queue
- about / Message queues
- versus database table / Message queue versus database table
- benefits / What can we queue?
- method
- generatePagination / Paginated members
- listMembers / Paginated members
- listMembersByLetter / Paginated users by letter
- searchMembers / Searching for users
- updateRecords / Profile model
- getRelationships / All contacts
- loadFromPost / Uploading a photograph—an image handler
- addTemplateBit / Template improvements
- listRecentStatuses / Code
- mobile integration / Facebook
- Model, MVC component / Model
- Model-View-Controller (MVC) architecture
- about / MVC: Model-View-Controller
- components / MVC: Model-View-Controller
- Model-View-Controller (MVC) architecture, components
- model / Model
- view / View
- controller / Controller
- mod_rewrite module / The Front Controller pattern, .htaccess, Consuming, Choosing a web hosting provider
- Mollom
- URL / SPAM
- monetization
- options / Monetization options
- MongoDB
- URL / No SQL
- mutual relationships
- about / Mutual relationships—accepting or rejecting a request
- pending requests, finding / Pending requests
- pending requests, accepting / Accepting a pending request
- pending requests, rejecting / Rejecting a pending request
- my groups
- groups controller addition / Addition to the group's controller
- template file / Template file
- MySpace / MySpace
- MySQL / MySQL
- MySQLi functions / Wrapping other MySQLi functions
N
- NameCheap
- nameservers
- setting, for domain / Setting the nameservers for the domain
- Netgear
- about / Netgear: custom
- newsletter advertising / Newsletter advertising
- newsletters / Newsletters
- Ning
- URL / Hybrid approaches
- NoSQL / No SQL
O
- OAuth / API controller
- object
- constructing / Class, variable, and constructor
- Off-site SEO
- about / Off-site SEO
- examples / Off-site SEO
- on-site notifications, reminders
- about / On-site notifications
- On-site SEO
- about / On-site SEO
- headings / Headings
- page metadata / Page metadata
- site speed / Site speed
- tools / Search engine goodies—sitemaps and tools
- sitemaps / Search engine goodies—sitemaps and tools
- online advertising
- techniques / Online advertising, Advertising space, Keeping them happy, Newsletter advertising
- online advertising, techniques
- Pay-Per-Click (PPC) advertising / Pay-Per-Click
- advertising spaces, purchasing / Advertising space, Keeping them happy
- newsletter advertising / Newsletter advertising
- OpenSocial
- about / OpenSocial
- using / One solution: use OpenSocial
- Open_basedir restrictions / Shared hosting precautions
P
- parent keyword / Class, variable, and constructor
- password
- resetting / Let them reset the password
- password reminder feature
- implementing, in authentication controller / Password
- passwords / Passwords
- Pay-Per-Click (PPC) advertising
- about / Pay-Per-Click
- services, working / Pay-Per-Click
- search engine / Search engine PPC networks
- Pay Per Action (PPA) / Pay Per Action—a look to the future
- Pay Per Action (PPA) / Pay Per Action—a look to the future
- pending requests, finding
- model method, using / New model method
- controller method, using / New controller method
- results / The result
- PHP
- need for / Why use PHP?
- about / Why use PHP?
- php
- //input / API controller
- phpMyAdmin privileges
- database, creating / With appropriate privileges on phpMyAdmin
- post, discussion forums
- about / Post
- postAuthenticate method / POST authentication
- POST authentication / POST authentication
- POST data
- sending, to API / POSTing data to our API with cURL
- post message box, public messages
- displaying / Displaying the post message box
- new message, processing / Process a new message
- status model / Status model
- controller additions / Controller additions
- post model, discussion forums
- about / Model
- privacy policies
- need for / Privacy policies
- guidelines / Privacy policies
- private messages
- about / Private messages
- database / Database
- message model / Message model
- messages model / Messages model
- inbox template / Inbox
- message template / View message template
- mark as read / Mark as read
- message template, creating / Creating a message template
- implementing / In action
- profile
- creating / Creating the profile
- extending / Extending the profiles
- status posts, processing / Processing the new status posts
- statuses query, altering / Altering our profile status' query
- profile controller
- shared information / Core shared information
- user name, obtaining / Name, ID, and photograph
- user ID, obtaining / Name, ID, and photograph
- user photograph, obtaining / Name, ID, and photograph
- profile model, creating / Profile model
- friend sample, adding / Sample of friends
- core shared information, obtaining / Pulling the core shared information together
- profile model
- profiles delegate / API controller, Profile's delegate
- profile statuses query
- altering / Altering our profile status' query
- public messages
- about / Public messages
- controller / Controller
- profile messages, displaying / Displaying profile messages
- post message box, displaying / Displaying the post message box
- confirmation message, displaying / Displaying a confirmation message
- view / View
- implementing / In action
- Putty / Command Line Access and PuTTY
Q
- queries
- executing / Executing queries
R
- 123-reg
- redundancy / Redundancy
- registration
- about / Registration
- fields / Standard details
- processing / Processing the registration
- constructor / Putting it all together: registration constructor
- sign up functionality / Where do I sign up?
- e-mail, verifying / E-mail verification
- registration constructor / Putting it all together: registration constructor
- registry, objects
- database access class / Database
- template management / Template management
- authentication / Authentication
- URL processing / URL processing
- registry object / The registry object, Our authentication registry object
- registry pattern
- about / Registry
- dependency injection / Registry
- combining, with MVC pattern / Registry + MVC
- relationship, forming
- process / Forming a relationship
- model, defining / Relationship model
- creating, checks / Relationship model
- delete method, using / Relationship model
- controller, using / Relationship controller
- mutual relationships / Mutual relationships—accepting or rejecting a request
- relationships model / Relationships—get the IDs!
- reminders
- about / Reminders
- o-site notifications / On-site notifications
- e-mail notifications / E-mail notifications
- SMS notifications / SMS notifications
- resetPassword method / Let them reset the password
- resize method / Processing the image upload
- REST
- about / REST, Let's go with REST, Sessions lead to unREST!
- requests / Requests
- response / Responses
- authentivate registry object, amending / Amending the authenticate registry object
- index.php file, amending / Amending index.php
- RESTful PHP Web Services
- URL / RESTful PHP Web Services
- REST requests
- about / Requests
- HTTP verbs / HTTP verbs
- resources / Resources, Resources and verbs—the requests
- RMI / RPC / RMI
- room for improvement, messages
- sent items / Sent items
- replies / Replies
- group messages / Group messages
- RPC / RPC / RMI
- RSS feeds / RSS feeds
- RSVPs
- about / RSVPsRSVPsabout
S
- scaling
- about / Scaling
- VPS cloud hosting / VPS Cloud Hosting
- search engine optimization (SEO)
- about / Search engine optimization
- on-site SEO method / On-site SEO, Site speed, Search engine goodies—sitemaps and tools
- off-site SEO method / Off-site SEO
- tips / What to look for in an SEO company
- Search Engine Results Pages (SERPs) / Getting penalized by the search engines
- searchMembers method / Searching for users
- security
- about / Security
- server security / Server Security
- passwords / Passwords
- error reporting / Error reporting
- directory listings / Directory listings
- SPAM protection APIs / SPAM
- server performance
- about / Server performance
- Apache configuration file / Apache
- MySQL / MySQL
- server security
- software / Software
- sessionAuthenticate method / Our authentication registry object
- SESSION authentication / SESSION authentication
- setActiveConnection method / Connecting to the database and managing connections
- setDate method / Event model
- setReferenceType method / Model
- setType method / Event model
- setTypeReference method / Class, variable, and constructor
- shared hosting
- precautions / Shared hosting precautions
- Singleton pattern / A note on the Singleton pattern
- site
- deploying / Deploying the site
- domain name, selecting for / Choosing a domain name
- domain name, selecting / Choosing a domain name
- domain name, registering / Registering a domain name
- deployment, automating / Automating deployment
- security / Security
- securing, with firewall / Securing the site with a firewall
- maintenance options / Maintenance
- backing up / Backing up and restoring your social network
- restoring / Backing up and restoring your social network
- site, deploying
- about / Deploying the site
- domain name, selecting / Choosing a domain name
- domain name, registering / Registering a domain name
- hosting provider / Signing up with a hosting provider
- nameservers, setting for domain / Setting the nameservers for the domain
- database, creating on hosting account / Creating a database on the hosting account
- local database, exporting / Exporting our local database
- local database, importing to hosting account / Importing our local database to the hosting account
- database records, changing / Changing some of our database records
- database configuration options, changing / Changing our database configuration options
- files, uploading / Uploading the files
- testing / Testing
- siteurl setting / Changing some of our database records
- Slicehost / Redundancy
- SMS notifications, reminders
- about / SMS notifications
- SOAP / SOAP
- social marketing
- about / Social marketing
- viral marketing campaigns / Viral marketing campaigns
- Twitter / Twitter
- RSS feeds / RSS feeds
- social networking sites
- public messages / Public messages
- private messages / Private messages
- groups, adding / Some planning
- social networking software
- about / Existing social networking software
- Drupal / Drupal
- Elgg / Elgg
- Joomla! / Joomla!
- social networking website
- about / Existing social networks
- Facebook / Facebook
- LinkedIn / LinkedIn
- MySpace / MySpace
- Twitter / Twitter
- building, benefits / Why roll your own?, Easier to update and maintain, Improve business, Improve communication
- Dinospace / Our site: DinoSpace
- features / Feature list
- limitations / Limitations
- tasks / Registry
- privacy policies / Privacy policies
- users / Users
- registration / Registration, Standard details
- guidelines / Considerations for hosts of social networking websites
- social networks
- about / Introduction to social networks
- functions / Introduction to social networks
- business logic / Business logic to social networks, Examples: Businesses making use of existing social networks and their own social networks
- status stream / What is a status stream?
- API, adding / APIs in social networks
- SPAM / SPAM
- startFresh() method / Sending e-mails
- static profile
- about / Static profile
- viewing / Viewing the profile
- relationships, improving / Relationships—some improvements
- contact list, obtaining / All contacts
- template for viewing / Template
- editing / Editing the profile
- static profile, editing
- user photograph, uploading / Uploading a photograph—an image handler
- profile page, editing / Back to the controller
- template file, adding / Template, The template file
- date picker / Datepicker
- steps / In action
- static profile, viewing
- profile link / Profile link
- profile information controller / Controller
- steps / In action
- status
- saving / Saving the status
- statuses
- about / Statuses
- database table, structure / Statuses database table
- types database table / Statuses types database table
- template improvements / Template improvements
- listing / Listing statuses
- statuses, listing
- status posts
- processing / Processing the new status posts
- status stream / What is a status stream?
- updating / Friendly times
- comments, adding / Comments
- status views
- stream
- building / Building the stream
- generating / Generating the stream
- stream controller
- functions / Stream controller
- stream, generating / Generating the stream
- generateStream method / Generating the stream
- stream model
- about / Stream model
- code / Stream model
- stream, building / Building the stream
- methods, requisites / The rest…
- system events stream
- creating, for administrators / A system stream for administrators
T
- TechCrunch
- temp folder / Processing the image upload
- template
- update status template / Template
- template management / Template management
- template manager / Template management
- testOutput() method / Generate and output
- Timeout Directive / Apache
- toArray() method / New getter: toArray()
- topic model, discussion forums
- toTags() method / New getter: toArray()
- toTags method / Controller, Event model
U
- URL
- processing / URL processing
- username reminder feature
- implementing, in authentication controller / Username
- user object
- about / Our user object
- creating / Our user object
- user profiles
- features / User profiles
- extendable profile system / Extendable profile
- profile controller / Profile controller
- static profile / Static profile
- user retention
- concepts / User retention, Hello there!
- users
- about / Users
- user object / Our user object
- users listing, members
- pagination / Pagination
- paginated members / Paginated members
- paginated users, listing alphabetically / Paginated users by letter
V
- variable
- defining, for image / Class, variable, and constructor
- verification e-mail
- sending / Sending the e-mail verification e-mail
- video
- about / Video (via YouTube)
- database / Database
- model / Model
- view
- main template / Main template
- status type templates / Status type templates
- changing / Changes to the view
- view, discussion within group
- about / View
- topic, creating / Creating a topic
- topic, viewing / Viewing a topic
- View, MVC component / View
- view, public messages
- viewProfile method / Back to the controller
- viral marketing campaigns
- about / Viral marketing campaigns
- VPS
- about / Choosing a web hosting provider
- cloud hosting / VPS Cloud Hosting
- VPS cloud hosting / VPS Cloud Hosting
W
- web hosting provider
- selecting / Choosing a web hosting provider
- selecting, guidelines / Choosing a web hosting provider
- Slicehost / Popular web hosting providers
- A Small Orange / Popular web hosting providers
- MediaTemple / Popular web hosting providers
- 1&1 Internet Inc. / Popular web hosting providers
- Web Hosting Talk
- website integration / Facebook
- WinCacheGrind / Code profiling
X
- XCache / Available caching systems
- xdebug
- URL / Code profiling
Y
- Yahoo! / Yahoo!
- Yahoo! Developer Network
- YSlow
- about / Useful tools and resources
- URL / Useful tools and resources