You are on page 1of 95

Pligg Wiki

Glossary

The Pligg glossary defines terms commonly used in Pligg that might not be used outside of
the project.

Bury: Allows users to mark stories they consider to be below standard, for example, spam.

Karma: A method for weighing users by their participation and quality. Based on submitted
stories, comments, buried stories and other user actions. This feature is still in its early stages
and is not complete, but could be easily modified and updated by a developer to take more
factors into account when "publishing" stories.

Pligg: Pligg is an open source content management system. Pligg's free software creates
sites driven by user generated and moderated content. Pligg was created on December 17,
2005.

Pliggy Bank: All donations made to the Pligg project are collected in our "Pliggy Bank". By
donating to Pligg you will receive a Pliggy Bank badge that appears on your forum profile and
on all of your posts. The Pliggy bank icon is also used for the Pligg Pro shop.
[Badge: ]

Pligg Pro: Pligg Pro is the name that Pligg uses for commercial products sold in the Pligg Pro
Shop.

Published: Stories that appear on the front page are known as "published". These stories
must meet certain voting minimums to make it to the site homepage.

Related Links: Automatically generated list of links that finds stories that share the same
tags.

Save/Remove: Adds or removes stories from a logged-in user's Saved (favorites) list. The
saved stories can then be viewed from the user profile.

Smarty: The older template system used for designing Pligg templates. Please see the official
Smarty homepage for more details, or Template Lite for the more recent templating engine.

Template Lite: The new templating engine used for Pligg templates. Template Lite shares a
lot of similarities with Smarty.
Upcoming and Queued: Stories that have recently been submitted, but have not received
enough votes to make it to the front "published" page.

Licensing

Pligg code is published under the Affero General Public License (AGPL), reproduced below.
The AGPL is a modified version of the GNU General Public License (GPL). You may want to
consult the AGPL Frequently Asked Questions at affero.org, which includes a brief summary
of how the AGPL differs from the GPL.

AFFERO GENERAL PUBLIC LICENSE

Version 1, March 2002

Copyright © 2002 Affero Inc.

510 Third Street - Suite 225, San Francisco, CA 94107, USA

This license is a modified version of the GNU General Public License copyright (C) 1989,
1991 Free Software Foundation, Inc. made with their permission. Section 2(d) has been
added to cover use of software over a computer network.

Everyone is permitted to copy and distribute verbatim copies of this license document, but
changing it is not allowed.
Preamble

The licenses for most software are designed to take away your freedom to share and change
it. By contrast, the Affero General Public License is intended to guarantee your freedom to
share and change free software--to make sure the software is free for all its users. This Public
License applies to most of Affero's software and to any other program whose authors commit
to using it. (Some other Affero software is covered by the GNU Library General Public License
instead.) You can apply it to your programs, too.

When we speak of free software, we are referring to freedom, not price. This General Public
License is designed to make sure that you have the freedom to distribute copies of free
software (and charge for this service if you wish), that you receive source code or can get it if
you want it, that you can change the software or use pieces of it in new free programs; and
that you know you can do these things.

To protect your rights, we need to make restrictions that forbid anyone to deny you these
rights or to ask you to surrender the rights. These restrictions translate to certain
responsibilities for you if you distribute copies of the software, or if you modify it.

For example, if you distribute copies of such a program, whether gratis or for a fee, you must
give the recipients all the rights that you have. You must make sure that they, too, receive or
can get the source code. And you must show them these terms so they know their rights.

We protect your rights with two steps: (1) copyright the software, and (2) offer you this license
which gives you legal permission to copy, distribute and/or modify the software.

Also, for each author's protection and ours, we want to make certain that everyone
understands that there is no warranty for this free software. If the software is modified by
someone else and passed on, we want its recipients to know that what they have is not the
original, so that any problems introduced by others will not reflect on the original authors'
reputations.
Finally, any free program is threatened constantly by software patents. We wish to avoid the
danger that redistributors of a free program will individually obtain patent licenses, in effect
making the program proprietary. To prevent this, we have made it clear that any patent must
be licensed for everyone's free use or not licensed at all.

The precise terms and conditions for copying, distribution and modification follow.

TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

0. This License applies to any program or other work which contains a notice placed by the
copyright holder saying it may be distributed under the terms of this Affero General Public
License. The "Program", below, refers to any such program or work, and a "work based on the
Program" means either the Program or any derivative work under copyright law: that is to say,
a work containing the Program or a portion of it, either verbatim or with modifications and/or
translated into another language. (Hereinafter, translation is included without limitation in the
term "modification".) Each licensee is addressed as "you".

Activities other than copying, distribution and modification are not covered by this License;
they are outside its scope. The act of running the Program is not restricted, and the output
from the Program is covered only if its contents constitute a work based on the Program
(independent of having been made by running the Program). Whether that is true depends on
what the Program does.

1. You may copy and distribute verbatim copies of the Program's source code as you receive
it, in any medium, provided that you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to
this License and to the absence of any warranty; and give any other recipients of the Program
a copy of this License along with the Program.

You may charge a fee for the physical act of transferring a copy, and you may at your option
offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion of it, thus forming a work
based on the Program, and copy and distribute such modifications or work under the terms of
Section 1 above, provided that you also meet all of these conditions:

* a) You must cause the modified files to carry prominent notices stating that you changed the
files and the date of any change.

* b) You must cause any work that you distribute or publish, that in whole or in part contains or
is derived from the Program or any part thereof, to be licensed as a whole at no charge to all
third parties under the terms of this License.

* c) If the modified program normally reads commands interactively when run, you must cause
it, when started running for such interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a notice that there is no warranty
(or else, saying that you provide a warranty) and that users may redistribute the program
under these conditions, and telling the user how to view a copy of this License. (Exception: if
the Program itself is interactive but does not normally print such an announcement, your work
based on the Program is not required to print an announcement.)

* d) If the Program as you received it is intended to interact with users through a computer
network and if, in the version you received, any user interacting with the Program was given
the opportunity to request transmission to that user of the Program's complete source code,
you must not remove that facility from your modified version of the Program or work based on
the Program, and must offer an equivalent opportunity for all users interacting with your
Program through a computer network to request immediate transmission by HTTP of the
complete source code of your modified version or other derivative work.

These requirements apply to the modified work as a whole. If identifiable sections of that work
are not derived from the Program, and can be reasonably considered independent and
separate works in themselves, then this License, and its terms, do not apply to those sections
when you distribute them as separate works. But when you distribute the same sections as
part of a whole which is a work based on the Program, the distribution of the whole must be
on the terms of this License, whose permissions for other licensees extend to the entire
whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest your rights to work written
entirely by you; rather, the intent is to exercise the right to control the distribution of derivative
or collective works based on the Program.

In addition, mere aggregation of another work not based on the Program with the Program (or
with a work based on the Program) on a volume of a storage or distribution medium does not
bring the other work under the scope of this License.

3. You may copy and distribute the Program (or a work based on it, under Section 2) in object
code or executable form under the terms of Sections 1 and 2 above provided that you also do
one of the following:

* a) Accompany it with the complete corresponding machine-readable source code, which


must be distributed under the terms of Sections 1 and 2 above on a medium customarily used
for software interchange; or,

* b) Accompany it with a written offer, valid for at least three years, to give any third party, for
a charge no more than your cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be distributed under the terms of
Sections 1 and 2 above on a medium customarily used for software interchange; or,

* c) Accompany it with the information you received as to the offer to distribute corresponding
source code. (This alternative is allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such an offer, in accord with
Subsection b above.)

The source code for a work means the preferred form of the work for making modifications to
it. For an executable work, complete source code means all the source code for all modules it
contains, plus any associated interface definition files, plus the scripts used to control
compilation and installation of the executable. However, as a special exception, the source
code distributed need not include anything that is normally distributed (in either source or
binary form) with the major components (compiler, kernel, and so on) of the operating system
on which the executable runs, unless that component itself accompanies the executable.

If distribution of executable or object code is made by offering access to copy from a


designated place, then offering equivalent access to copy the source code from the same
place counts as distribution of the source code, even though third parties are not compelled to
copy the source along with the object code.

4. You may not copy, modify, sublicense, or distribute the Program except as expressly
provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute
the Program is void, and will automatically terminate your rights under this License. However,
parties who have received copies, or rights, from you under this License will not have their
licenses terminated so long as such parties remain in full compliance.

5. You are not required to accept this License, since you have not signed it. However, nothing
else grants you permission to modify or distribute the Program or its derivative works. These
actions are prohibited by law if you do not accept this License. Therefore, by modifying or
distributing the Program (or any work based on the Program), you indicate your acceptance of
this License to do so, and all its terms and conditions for copying, distributing or modifying the
Program or works based on it.

6. Each time you redistribute the Program (or any work based on the Program), the recipient
automatically receives a license from the original licensor to copy, distribute or modify the
Program subject to these terms and conditions. You may not impose any further restrictions
on the recipients' exercise of the rights granted herein. You are not responsible for enforcing
compliance by third parties to this License.

7. If, as a consequence of a court judgment or allegation of patent infringement or for any


other reason (not limited to patent issues), conditions are imposed on you (whether by court
order, agreement or otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot distribute so as to satisfy
simultaneously your obligations under this License and any other pertinent obligations, then
as a consequence you may not distribute the Program at all. For example, if a patent license
would not permit royalty-free redistribution of the Program by all those who receive copies
directly or indirectly through you, then the only way you could satisfy both it and this License
would be to refrain entirely from distribution of the Program.

If any portion of this section is held invalid or unenforceable under any particular
circumstance, the balance of the section is intended to apply and the section as a whole is
intended to apply in other circumstances.

It is not the purpose of this section to induce you to infringe any patents or other property right
claims or to contest validity of any such claims; this section has the sole purpose of protecting
the integrity of the free software distribution system, which is implemented by public license
practices. Many people have made generous contributions to the wide range of software
distributed through that system in reliance on consistent application of that system; it is up to
the author/donor to decide if he or she is willing to distribute software through any other
system and a licensee cannot impose that choice.

This section is intended to make thoroughly clear what is believed to be a consequence of the
rest of this License.

8. If the distribution and/or use of the Program is restricted in certain countries either by
patents or by copyrighted interfaces, the original copyright holder who places the Program
under this License may add an explicit geographical distribution limitation excluding those
countries, so that distribution is permitted only in or among countries not thus excluded. In
such case, this License incorporates the limitation as if written in the body of this License.

9. Affero Inc. may publish revised and/or new versions of the Affero General Public License
from time to time. Such new versions will be similar in spirit to the present version, but may
differ in detail to address new problems or concerns.

Each version is given a distinguishing version number. If the Program specifies a version
number of this License which applies to it and "any later version", you have the option of
following the terms and conditions either of that version or of any later version published by
Affero, Inc. If the Program does not specify a version number of this License, you may choose
any version ever published by Affero, Inc.

You may also choose to redistribute modified versions of this program under any version of
the Free Software Foundation's GNU General Public License version 3 or higher, so long as
that version of the GNU GPL includes terms and conditions substantially equivalent to those
of this license.

10. If you wish to incorporate parts of the Program into other free programs whose distribution
conditions are different, write to the author to ask for permission. For software which is
copyrighted by Affero, Inc., write to us; we sometimes make exceptions for this. Our decision
will be guided by the two goals of preserving the free status of all derivatives of our free
software and of promoting the sharing and reuse of software generally.

NO WARRANTY

11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO


WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN


WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
Overview
Pligg is an Open Source Web 2.0 CMS [1]. Pligg uniquely combines collaborative bookmarking,
social networking, folksonomy [2] and blogging. Here, visitors are creator, consumer and judge
of the content. Each submitted news item has a vote button, URL and optionally a short
description. Visitors may vote or veto and comment on any item. At the end of the day,
depending on the vote count, items are automatically promoted to the home page, held in the
queue, or permanently removed from site. Being a collaborative CMS, Pligg sites tend to grow
rapidly in popularity and traffic.

System requirements

TroubleShooter

Pligg comes with a troubleshooter, which can be accessed by visiting


/install/troubleshooter.php on your web server after uploading the Pligg files. The
troubleshooter will check your CHMOD settings as well as your MySQL and PHP versions and
PHP functions used by Pligg. If your server is fully-compatible with Pligg it will output green
text at the end of each row. Any features that are missing or not up to date will appear as red
text, and a help icon will appear next to the red text that you can click on for a detailed
explanation of the problem. Even if some of these fields output red text, that does not mean
that Pligg will not work on your server. Some rows being red simply mean that one or more
features may not work on your site.
PHP

Pligg is mostly tested on PHP version 5, but there are reports that Pligg will work on PHP 4
servers. Because of our development test setups we recommend that you use PHP 5
whenever possible.

MySQL

Pligg has been tested on MySQL versions 4 and 5. We highly recommend that you use
version 5 to maintain long term compatibility with Pligg, but Pligg will "mostly" work with
MySQL 4.

Pligg will not work on MySQL 3.x or lower.


That's it!

Some extra features and modules have additional requirements not listed on this page.

Attached Thumbnails

Registration and user groups

New users

Normal user registration is automated and immediate. By default, Pligg 1.0 requires a user to
validate their email address in an effort to reduce spam users. A unique username, email
address and password (and an optional CAPTCHA confirmation) are required when
registering a new account. Upon successful registrations, users are taken to their Profile page.
There they can modify their profile and site preferences.

New users can also be created by a God administrator from the User Manager page in the
admin panel.

User Levels
Three user levels for registered users. Unregistered visitors can browse the site and optionally
vote anonymously.

Normal - default level for new user registrations. These users can submit stories, vote,
comment, modify password and personal data on personal profile page, optionally upload a
custom avatar

Admin - in addition to Normal privileges, admins can edit stories, ban story source URLs,
change story status (published, queued, discard), and disable users.

God - A super admin level named "god" gives access to the Pligg Admin control panel. The
control panel allows you to manage site settings that only the site owner should control. By
default the "god" users password when installing Pligg is 12345.

Templates

Templates
The Pligg default template is Wistie. A number of other free (open source) and for-purchase
templates are available through the Pligg Templates forum.

Pligg uses the Smarty template engine. Smarty separates application data from presentation.
This allows users to edit the way that their site looks and functions without having to modify
the php files that handle the main processes.

Template files (.tpl) contain presentation mark-up (HTML, CSS), while content data is
delivered through Smarty tags, enclosed in curly brackets: { ... }. Smarty also allows
presentation logic from within template files, such as including one template inside of another .

Templates - Contents

● 1Templates
○ 1.1About Templates
○ 1.2Smarty Variables
● 2Template Structure
● 3Template Files
● 4Adding Templates

About Templates

This Pligg Wiki book entry titled "Templates" will guide you though how Pligg templates work,
how to modify them and how to add new templates to your Pligg website. It will discuss both
beginner and advanced techniques for customizing your Pligg templates. By the end of this
template guide you should have a better understanding of what each template file controls,
how to use conditional statements to display content on specific pages and how to become a
better template designer.

Smarty Variables

Smarty has several different types of variables. The type of the variable depends on what
symbol it is prefixed with (or enclosed within). Variables in Smarty can be either displayed
directly or used as arguments for function attributes and modifiers, inside conditional
expressions, etc. To print a variable enclose it in the delimiters, for example:
{$pligg_language} will print your Pligg site's language.

To list all of your available Smarty variables you can enter the following code into any of your
template files for it to print all of the variables:

Code:

{php}

$myVars = $this->get_template_vars();

$this->assign('myVars',$myVars);

{/php}

{foreach from=$myVars key=k item=i}

{literal}{${/literal}{$k}} = {$i}

{/foreach}
Administration

Default Admin Panel sections (v9.8.2).

The Pligg Admin Control Panel allows convenient browser-based control over all aspects of
the Pligg environment, including presentation, features and users. To access the Admin CP,
you must be in the God user group (a default God account is created during Pligg installation).

To access the Admin CP, login as a God user and click the Admin link on the user menubar.
Contents

● 1User Management
● 2Category Management
● 3News Management
● 4Comment Management
● 5Modify Language
● 6File and MySQL Backup
● 7Module Management
● 8Configure Pligg
● 9Template Editor
● 10Donate to Pligg

User Management

create new users and edit existing user profiles

Category Management

add and edit categories, rearrange display order

News Management
review stories, change status (published, queued, discard), scripted batch status change
works with search and preset filters

Comment Management

review comments, with individual and batch delete

Modify Language

editing interface for lang.conf (must be writable)

File and MySQL Backup

prescripted backup for database, avatars, and all files except avatars, creates SQL dumps
and zip files in pligg/backup directory (must be writable), with links for downloading to local PC

Module Management

install/uninstall add-ons
Configure Pligg

core application settings

Template Editor

simple write access to files in the current template directory, files must be writable 777

Donate to Pligg

convenient way to support Pligg development with a cash contributon

Attached Thumbnails

Admin Troubleshooting

Don't know how much of this is current.


Contents

● 1500 Internal Server Error


● 2404 error
● 3403 error
● 4The main page loads, but all the links are incorrect

500 Internal Server Error


● Most likely your permissions are incorrect. CHMOD every file and folder to 644. Then
follow the installation instructions.
● Try deleting the .htaccess file.

404 error
● You probably missed a file. Try uploading all the files again.

403 error
● Your server may have trouble with the .htaccess file (we don't know why). Delete that
from the server and try again.

The main page loads, but all the links are incorrect
● Make sure mod_rewrite is turned on (Apache web server).
● Make sure your server is configured to allow access to the .htaccess file in the Pligg
directory.
● Make sure your .htaccess file is set up for your Pligg install directory. If you installed to
root, you don't need any changes. However, if you installed to a subdirectory, change
the fourth line of htaccess from "RewriteBase /" to "RewriteBase
/your_Pligg_subdirectory"

Web Programming Basics

Anyone wanting to modify the pligg will require some knowledge in programming the web.
Hopefully the following links will provide you with tutorials and documentation to help with your
journey (please edit with better intro)

Lets go through the various parts of the pligg and see what is use where.

Core code: Pligg uses PHP for server side scripting

Template: The templates are a mixture of HTML and CSS. The templating engine used by
pligg is called template-lite and is a lite version of the popular smarty engine

Flashy cool stuff: All the cools slidey things and effects is done with javascript.

The links is not the definitive guide to creating and modifying pligg but it will teach you the
general programming skill required to modify pligg. and if you have any problems the forum is
full of bright and helpful people so don't be afraid to ask. (just don't email kb :) )

Contents

● 1PHP
● 2MySQL
● 3HTML
● 4CSS
● 5Javascript
● 6Template Lite
PHP

PHP is a reflective programming language originally designed for producing dynamic web
pages.[1] PHP is used mainly in server-side scripting, but can be used from a command line
interface or in standalone graphical applications. Textual User Interfaces can also be created
using ncurses. PHP is a recursive acronym for "PHP: Hypertext Preprocessor".

The main implementation is produced by The PHP Group and released under the PHP
License. It is considered to be free software by the Free Software Foundation[2]. This
implementation serves to define a de facto standard for PHP, as there is no formal
specification.

Currently, two major versions of PHP are being actively developed: 5.x and 4.4.x; on July 13,
2007, the PHP group announced that active development on PHP4 will cease by December
31, 2007, however, critical security updates will be provided until August 8, 2008.[3]

MySQL

MySQL (pronounced (IPA) /mɑɪ ɛs kjuː ɛl/, "my S-Q-L") is a multithreaded, multi-user SQL
database management system (DBMS)[1] which has, according to MySQL AB, more than 10
million installations.[2]

MySQL is owned and sponsored by a single for-profit firm, the Swedish company MySQL AB,
which holds the copyright to most of the codebase. This is similar to the JBoss model and how
the Free Software Foundation handles copyright in its projects. It is dissimilar to the Apache
project, where the software is developed by a public community and the copyright to the
codebase is owned by its individual authors.

The company develops and maintains the system, selling support and service contracts, as
well as proprietary-licensed copies of MySQL, and employing people all over the world who
collaborate via the Internet. MySQL AB was founded by David Axmark, Allan Larsson, and
Michael "Monty" Widenius. The CEO is Mårten Mickos.
The MySQL company also sells another DBMS, MaxDB, which is from an unrelated
codebase.

HTML

HTML, short for Hypertext Markup Language, is the predominant markup language for web
pages. It provides a means to describe the structure of text-based information in a document
— by denoting certain text as headings, paragraphs, lists, and so on — and to supplement
that text with interactive forms, embedded images, and other objects. HTML is written in the
form of labels (known as tags), surrounded by less-than (<) and greater-than signs (>). HTML
can also describe, to some degree, the appearance and semantics of a document, and can
include embedded scripting language code which can affect the behavior of web browsers
and other HTML processors.

HTML is also often used to refer to content of the MIME type text/html or even more broadly
as a generic term for HTML whether in its XML-descended form (such as XHTML 1.0 and
later) or its form descended directly from SGML (such as HTML 4.01 and earlier).

CSS

In web development, Cascading Style Sheets (CSS) is a stylesheet language used to


describe the presentation of a document written in a markup language. Its most common
application is to style web pages written in HTML and XHTML, but the language can be
applied to any kind of XML document, including SVG and XUL.

CSS is used by both the authors and readers of web pages to define colors, fonts, layout, and
other aspects of document presentation. It is designed primarily to enable the separation of
document content (written in HTML or a similar markup language) from document
presentation (written in CSS). This separation can improve content accessibility, provide more
flexibility and control in the specification of presentational characteristics, and reduce
complexity and repetition in the structural content. CSS can also allow the same markup page
to be presented in different styles for different rendering methods, such as on-screen, in print,
by voice (when read out by a speech-based browser or screen reader) and on Braille-based,
tactile devices. CSS specifies a priority scheme to determine which style rules apply if more
than one rule matches against a particular element. In this so-called cascade, priorities or
weights are calculated and assigned to rules, so that the results are predictable.

The CSS specifications are maintained by the World Wide Web Consortium (W3C). Internet
media type (MIME type) text/css is registered for use with CSS by RFC 2318 (March 1998).

Javascript

JavaScript is a scripting language most often used for client-side web development. Its
standardized name is ECMAScript, though "JavaScript" is much more commonly used.
"JavaScript" is actually Netscape Communications Corporation's (and now the Mozilla
Foundation's) implementation of the ECMAScript standard.

JavaScript is a dynamic, weakly typed, prototype-based language with first-class functions.


JavaScript was influenced by many languages and was designed to have a similar look to
Java, but be easier for non-programmers to work with.[1] The language is best known for its
use in websites (as client-side JavaScript), but is also used to enable scripting access to
objects embedded in other applications.

Despite the name, JavaScript is unrelated to the Java programming language; though both
have a common debt to C syntax. The language was renamed from LiveScript in a co-
marketing deal between Netscape and Sun in exchange for Netscape bundling Sun's Java
runtime with their browser, which was dominant at the time. JavaScript semantics is much
more similar to the Self programming language.

"JavaScript" is a registered trademark of Sun Microsystems, Inc. It was used under license for
technology invented and implemented by Netscape Communications and current entities such
as the Mozilla Foundation.[2]

Template Lite
Template Lite has many advantages over other template engines, as well as a few
disadvantages.
● Template Lite is a stripped down version of Smarty and thus is extremely fast, yet very
similar to Smarty.
● Template Lite uses most of the same basic syntax as Smarty template engine, making
it relatively easy to port template files from Smarty and for previous users of Smarty to
quickly learn how to use it.
● Template Lite variable syntax, specifically variables in double quotes and
concatentation, is designed to imitate PHP's, making variable usage intuitive for
beginners who are used to programming in PHP.
● Template Lite introduces the new switch and for tags, which have identical functionality
to PHP's switch and for functions, respectively.
● Template Lite compiles all template files for speed, making script start-up faster. All
compiled files are saved for faster loading on the next load.
● Template Lite will also optionally save a cached version of templates, thus bypassing
any compiling or execution, as it will load static pages precompiled and assembled,
offering significant speed increases.
● Template Lite supports config files and variables and will compile config files for
speed, too!

Template Lite was designed from the ground up to be fast. It has acheived that goal.

What you see here is the work of Paul Lockaby. However, while more than 75% of the code in
this template engine has been rewritten, a bunch of that other 25% and a lot of organization
has been directly derived from Smarty - the compiling PHP template engine for PHP. Smarty
template engine was originally programmed and is still maintained at the aforementioned
website by Monte Ohrt and Andrei Zmievski.

All updates, fixes and changes beginning February 1, 2006 are by Mark Dickenson when the
project was taken over after being abandoned by Paul Lockaby due to a trademarking issue
with the creators of Smarty.

Ok I set up Pligg 1.0 now what?


This article is to give you a initial basis of how to get the most out of your pligg installation.

The first question asked is how to change certain things like " my site" or the "what is pligg?"

You can do this by simply going to admin and clicking on modify language.

you can filter any language item from there and make the necessary changes.

One big mistake I see if that people automatically install each and every module that comes
with pligg.

You don't want to do this.

Only activate modules that are within your niche.

Block your site from countries that have no purpose being there. If you have a site for people
in Rochester NY to share cookie recipes, there is no reason to allow people from other
countries to post and submit. Experience says while you may think that they may have a good
recipe. Chances are you will get more spam posts from those people. It's better to block them
from the start. Go to block a country, block by ip address, deny access by country to get a
customized block list of countries you wish to block.

Don't be shocked when someone submits something to your site that you don't like. You may
not like what they are submitting but generally it can not be called spam. Please learn the
definition of spam. In the past people would come the forums and complain about spam. To
these people spam was anything that they didn't like or agree with. This is not spam. If you
think this is spam then you better get used to it, you're running an open submission system.
Not every submission is going to be good. Take a moment to look at the upcoming section of
digg or reddit. It's full of what most would consider spam.

Pligg being the only OS CMS that is wide open for people to submit and share links is easily
targeted for spam. That should be understood from the start. Pligg is also the only CMS of it's
kind that provides you with numerous add ons to battle spam. I always recommend that you
utilize every possible antispam method available. They are all available from pligg.com and
most don't come with the standard package. Pligg is a flexible CMS so a vast majority of our
users don't allow open submissions. If we packaged every possible antispam method with
pligg it would be seriously bloated. Your best bet is to go through the forums and grab any
available antispam method available for the version you're running.

Another good suggestion is to run the "antispam submission module" This allows you to set
specific rules for new users. If user "A" signs up today he can only submit a limit of twice
today. If his submissions are good enough he will be allowed more tomorrow.

One problem we do run into often is that many of our user base seem to think they since
we've provided them with this free software, they believe that we are responsible for providing
them with personal customization. Yes I know, we can't believe it either, but with hundreds of
thousands of pligg users we still get a group that somehow believe that the developers of this
great software should stop everything they are doing and work on customizing their site for
free. This is HUGELY frowned upon.

Pligg is not like other CMS solutions. We do not have a large office with a bunch of interns.
Pligg is run by a handful of good guys. None of which can be considered professional
developers. We all have lives and no one does this full time.

How can you support Pligg?

We always accept donations. This is how we pay for server fees, bandwidth, etc.
Unfortunately only 1 out of 100 will make any kind of donation. This is why we offer the Pligg
Pro Shop. The shop allows for our developers to create add ons which can be purchased for a
reasonable price and the proceeds go towards pligg. It's the best way to support pligg other
than a direct donation to our cause. The shop gives you a chance to get something, and for
Pligg to get something in return.

So you've installed pligg and have a question?

Please use the forum search. We've been doing this for over 3 years. Believe me, someone
has already asked your question. There is nothing like wasting the developers time because
you're too lazy to search.

Think you found a bug?

While it may be possible, chances are you've not configured something correctly or didn't read
far enough. This becomes really bothersome to those that have been here for a long time.
Can you imagine working at a job in which everyone around you refused to take the time to
read instructions? You would probably be as bitter as we can be some days. The best advise
is to always read everything twice. We are not saying you won't find a bug. We're just saying
that with the widespread use, chances are that this bug has been reported already. Always
search before starting a new bug thread.
Don't advertise your new site. Market your content.

A big mistake I see of new pligg sites is that they run to a place like digg and immediately
submit the site. That's the kiss of death. It really shows that the administrator has no business
running a site to begin with.

You might as well put " hey everyone I was smart enough to click a few buttons and this is the
result" No one cares about your Pligg site.

Always market your content. Not the site itself. No one will care about a new site called
blablablablabla dot come. but if blablalba dot com has some good content, they are more
likely to come back.

It's going to take some time to build up a good social network. If you think you can install pligg
and come back in a month to a vibrant social network you are smoking crack. It takes a lot of
time to build up a good social news site. It's not going to happen tomorrow, next week, or even
next month. Be prepared to spend numerous hours maintaining your community. If anyone
could start their own twitter, digg, or reddit tomorrow they would.

Remember that all the good sites didn't start overnight. It takes time dedication and overall
patience. If you start a niche site and it doesn't work out. Don't blame the developers. We only
provide you the tools. If you are not able to utilize those tools correctly it's not the developers
fault. You would not blame the guy that designed the plunger if your toilet overflows.

PHP in Template Files

Pligg Templates use Template Lite, a variation of the Smarty template engine. Because of this
you are unable to simply write PHP code in the .tpl files and expect it to render as PHP would.
But using a {php} tag within your template files will allow you to use PHP in your templates.
See below for examples of how to use PHP in a Pligg template file.

Code:

{php}

// PHP examples for printing the current date and time in various formats

//07/23/09

print date("m/d/y") . "";

//Thu, July 23rd

print date("D, F jS") . "";

//Thursday, July 23rd 2009

print date("l, F jS Y") . "";

//10:10 AM

print date("g:i A") . "";


//Thu, 23 Jul 2009 10:10:53 -0400

print date("r") . "";

//10:10:53 AM Thu, July 23rd 2009

print date("g:i:s A D, F jS Y") . "";

{/php}

Using an example from above you could easily insert the current time to the header.tpl file.
Below is an example that places the PHP after some Smarty variables that display the logged
in user's name if the user is logged in.

Code:

{if $user_authenticated eq true}Welcome {$user_username}.{/if} The current time is {php}print


date("g:i A");{/php}.

Expanding on this idea we can even use {if} conditions that will wrap around {php} tags. For
example if we want to redirect users to pligg.com when they try to access the submit page we
could use a combination of a pagename variable and PHP's header redirect ability to forward
them to another page. The sample code below will do just that and would be added
somewhere at the top of either the pligg.tpl file so that it would redirect before the page loads
any content.

Code:

{if $pagename eq "submit"}{php} header( 'Location: http://www.pligg.com/' ) ;{/php}{/if}


Admin Panel for 1.0 and above

You can login to your admin panel your navigation panel on your default wistie template which
will become available once you login or you can use yourdomain.com/admin. If you are not
login, you will be redirected to your login page and after a successful login you will be
redirected back to yourdomain.com/admin.

This article is sorted by how the default admin template is being arrange.

Contents

● 1Manage
● 2Configure
● 3Backup
● 4Modules
● 5Template
● 6Home

Manage

On this tab you will be able to manage News, User account, Comments, Categories and
pages.

News

On this page you will be able to managed your news, such as changing its status (Publish
Queued Discard), delete discarded news from the database and edit the news contents.

User

You will be able to manage user account from this page, such as changing account privileges,
edit the user account details, reset the user account password or disable the account.

- New User

You can create a new user by clicking this link. However on 1.0 RC 2 there is a reported bug
which prevent you from creating a new user, using this method. However user registration is
not affected.

- Editing User Account

To edit a user account, click on username and you will be redirected to a new page where you
will have various administrative options stated above.

Comments

On this tab, you will be able to manage the comments made by your visitor. To delete a
comment simply check the checkbox next to comments you wish to delete and click on delete
selected. To edit a comment, you must first click on Author name, find the comment you want
to edit and click on edit link just next to the delete checkbox. Clicking edit, you will redirected
to the page where the comments appears.
Alternatively, you don't need to go into your admin panel to manage your comments. Instead
simply login as admin and browse through the news normally and if find any comments you
wish to edit, you simply click on the edit link available on each comments. Do note you will
need to login as admin and above.

Categories

This is where you can manage your category. A wiki entry has been made by Yankidank that
explains category management. Below is youtube video made by the same people who make
pligg:

YouTube Video

If you are able to see this message it means


that you don't have flash installed or that the
video server is down.

Pages

Pages will enable you to make a static page. This is useful for TOS, about us pages without
creating a seperate file.

Configure
This where you will be spending most of your time when you login to your admin panel for the
first time. Please note the following is the default configuration page, if you have install extra
modules you may or may not find a link that is not listed here.

- AntiSpam

This is where you setup your antispam filtering for story / comments submission. You can also
set your filtering rules, domain blacklist and log for spam filtering activity.

- Avatars

This is where you setup the default user avatar location, size, to allow your user to upload
their own avatar and avatar storage location.

- Comments

This is where you can enable / disable user ability to comments and the ability to vote on
comments. You can also changed how pligg sort your comments. Plus you can changed the
number of comments that appears on your sidebar and the maximum length before pligg
automatically turnacate it.

- Groups

This is where you enable / disable and setup pligg group feature. A wiki entry has already
been made on explaining pligg group feature.

- Live

A wiki entry has been made on the pligg live feature.

- Location Installed
- Misc

This is where you find the setting for all the other pligg features, which includes the following:
● Trackback URL
● Enable extra fields
● Allow friends
● Search method
● Database Language
● Page Size
● Top Users Size
● Spell Check
● MySQL Table Prefix
● Enable Gzip File Compression
● Validate user email

- OutGoing

- SEO

This is where you can enable SEO friendly url. An in-depth explanation can be found: SEO
Friendly URL

- Story

This is where you can enable Thumbnail preview on news page, and choose if to open links in
a new window.

- Submit
This is where you can control user news submission. The following can be found in this tab:
● HTML tags to allow to Normal users
● Require a URL when Submitting
● Show the URL Input Box
● No URL text
● Auto vote
● Validate URL
● Summary Content truncate
● Allow Edit of Summary
● Minimum Title Length
● Minimum Story Length
● Email Time Limit
● Limit time to edit stories
● Minutes before a user is no longer allowed to edit a story
● HTML tags to allow to Admin users
● HTML tags to allow to God

- Tags

This is wher you enable / disable pligg tags features. This is also where you can control the
tags size, word limits and the number of tags that is allowed to displayed on the tags sidebar.

- Tell-a-Friend

This is where you enable / disable pligg Tell-a-Friend features. It is recommended that you do
not leave "Sent from email" field empty as it will likely not reach the intended receipents if you
leave it blank.

- Template

This is where you indicated to pligg which template you want to use a default and if you allow
each user to select his/her own template.

- Voting
This is where you can control the voting style. You can choose between digg style or the good
olb five star rating. There is one field called "Votes Allowed from one IP" which has been
faulted in some thread in pligg forums for causing user not being able to vote. If you set this
field to 1, user will only be able to vote once per IP per news.

Backup

This is where you can do backup user avatar, pligg database or both. All backups made will
be available in the following folder: admin > backup.

Modules

This is where you enable / disable or install modules. To install modules, simple find the
modules you want and click on install. Do note some module will require other modules to be
installed first.

After a module has been install, it will be enable by default. All enable modules will be
indicated by dark red Disable text. Clicking on Disable will disable the modules and the text
will be replace by a green enable text which of course when click will enable the module.

Template

This is where you can edit your template file (.tpl) via your admin panel. Do note that you won't
be able to edit your css file via this method. You may also want to read the following:

Template Files

Template Structure

Home

This will simply return you back to you index page.

If you wish to logout of admin, click on home and click on logout.

Pligg Captcha

Contents

● 1What is Captcha?
● 2Available Captchas
○ 2.1Pligg Default Captcha
○ 2.2Recaptcha
○ 2.3WhiteHat Method
○ 2.4Math Question

What is Captcha?

A captcha is a program that can tell whether its user is a human or a computer. You've
probably seen them — colorful images with distorted text at the bottom of Web registration
forms. Captchas are used by many websites to prevent abuse from "bots," or automated
programs usually written to generate spam. No computer program can read distorted text as
well as humans can, so bots cannot navigate sites protected by captchas [source].

Available Captchas

Currently Pligg supports 4 different captcha methods. These four methods are all modularized
so that they can be updated without altering the Pligg core code.

Pligg Default Captcha

The standard Pligg captcha is one of the more advanced methods for generating a captcha
image. It generates a common captcha image with alphanumeric characters that users have
to decifer in order to proceed.

Recaptcha
About 60 million CAPTCHAs are solved by humans around the world every day. In each case,
roughly ten seconds of human time are being spent. Individually, that's not a lot of time, but in
aggregate these little puzzles consume more than 150,000 hours of work each day. What if
we could make positive use of this human effort? reCAPTCHA does exactly that by
channeling the effort spent solving CAPTCHAs online into "reading" books.

To archive human knowledge and to make information more accessible to the world, multiple
projects are currently digitizing physical books that were written before the computer age. The
book pages are being photographically scanned, and then transformed into text using "Optical
Character Recognition" (OCR). The transformation into text is useful because scanning a
book produces images, which are difficult to store on small devices, expensive to download,
and cannot be searched. The problem is that OCR is not perfect.

reCAPTCHA improves the process of digitizing books by sending words that cannot be read
by computers to the Web in the form of CAPTCHAs for humans to decipher. More specifically,
each word that cannot be read correctly by OCR is placed on an image and used as a
CAPTCHA. This is possible because most OCR programs alert you when a word cannot be
read correctly.

But if a computer can't read such a CAPTCHA, how does the system know the correct answer
to the puzzle? Here's how: Each new word that cannot be read correctly by OCR is given to a
user in conjunction with another word for which the answer is already known. The user is then
asked to read both words. If they solve the one for which the answer is known, the system
assumes their answer is correct for the new one. The system then gives the new image to a
number of other people to determine, with higher confidence, whether the original answer was
correct.

Currently, we are helping to digitize books from the Internet Archive and old editions of the
New York Times.

WhiteHat Method
The WhiteHat captcha is similar to the Pligg default captcha. It is based on teh work of
http://www.white-hat-web-design.co.uk. You can see the source for the original captcha code
here.

Math Question

The math question captcha asks a user to solve a simple math formula. You specify a 2
number ranges for the captcha to pull a random number from using the Pligg configuration
page. The end result would look something like this:

Quote:

What is the answer to this question: What is 4 + 4 =

This captcha method assumes that a computer is not able to detect that the captcha field is for
bot checking and that the computer won't try to solve the math question. It is much less secure
than randomly generated images because it can be read by computers much easier. At the
same time it is partially more user friendly because a user doesn't have to decipher a partially
scrambled alphanumeric image.

Pligg Database Tables

A MySQL database is used to store data for your Pligg site. Within that database are several
tables which group the data into easy to understand fields. Stories, for example, are all stored
in the same database table.
This wiki article will outline all of the MySQL database tables that Pligg uses to store data.

Contents

● 1Database Prefix
● 2Table categories
● 3Table comments
● 4Table config
● 5Table groups

Database Prefix

When installing Pligg you have the option to change the default prefix used in your table
names. By default pligg uses the prefix pligg_, but you could change this value to anything
you want. Because of this I will be referring to the table name that comes after that prefix in
the table outline below.

Table categories

This table is used to store the categories on your Pligg site. It stores the following data:
● Category name
● Category description
● Keywords associated with the category
● Author levels allowed to submit to the category
● Groups allowed to submit to the category
● Data that determines how it should be ordered

Table comments

This table contains details about:


● What story the comment belongs to
● The comment content.
● Who was the author
● Whether it was a reply to another comment or an original comment
● How many positive or negative votes the comment received

Table config

This table holds the data that is used for Pligg's "Configure" admin page. It contains a variety
of information that changes your site's settings.

Table groups

This table is used to store data about groups that belong to your Pligg site. Some of the fields
found in this MySQL table are:
● Group ID (auto incrementing number assigned to each group)
● Group Creator (who created the group)
● Group Status (enable/disable)
● Group Members
● Group Date (last updated the group settings)
● Group Name
● Group Description
● Group Privacy (determines who can join the group, who can see the users/content)
● Group Avatar
● Group Votes to Publish (how many votes make the Group's published homepage)

Attached Thumbnails

Pligg Categories

Contents

● 1Adding New Categories


● 2Deleting Categories
● 3Ordering Categories
● 4Creating Subcategories
● 5Search Engine Optimized Categories
● 6Category Permissions
● 7Templating Categories

Adding New Categories


Adding new categories and editing them is a very easy task in Pligg. Begin by logging in as a
"god" level user then navigate to /admin/admin_categories.php. You can also get to this by
clicking on the Manage navigational link on top of the admin panel, then click on the
Categories sub-navigational link.

Once you are on the category manager page, just click on the green "Add A New Category"
link and it will insert a new category called "new category". Click on the title "new category" to
edit the value on the right to a category name of your choice.

Deleting Categories

To delete a category, click on the category name that you want to delete then click on the
"Delete Category" button. An ajax area will appear below the delete button where you can
choose to either move stories to another category or delete all of the stories assigned to that
category. After making a choice and clicking on the bottom "Delete Category" button you will
be given one last chance to cancel as a popup box makes you confirm that you want to delete
the category.

Ordering Categories

Pligg uses up and down arrows to manage the category order at the bottom of the admin
category page. Just click on the up or down arrows to move the categories to the position that
you want them in. If you want to change the level in which the category appears to make it a
subcategory or move it out of a subcategory position you will need to change the "parent
category" value from the category edit area. Any changes to the order of categories will
immediately update on your site. Meaning that each time you click that up or down arrow it will
change the positioning of the categories on your homepage without you needing to hit a save
button.

Creating Subcategories

To make a subcategory click on the category name on the left then change the "Parent" drop-
down value to assign a parent category then click the Update Category button to save your
changes.

Search Engine Optimized Categories

Pligg offers two items to enhance your website's SEO. The first is the ability to use SEO
friendly links and categories will need to be configured in order to do this. You will sometimes
need to copy the code provided at the bottom of the category manager page into your
.htaccess file. Read through the entire .htaccess file before using it because it can break your
site if you don't configure it properly.

The second SEO enhancement is the ability to add meta keywords and descriptions to
category pages. To do this, simply click on the category that you want to add meta information
to then enter in the appropriate fields.

Category Permissions

If you want your site to only allow certain user levels or group members to post to specific
categories, this can be set from the category manager. Just click on the category link to the
left, then click on one the selection area for one of the two options below.

Quote:

Required Level To Post: normal

Required User Group To Post: Group Names seperated by commas here

Templating Categories
The easy way to make sure that you are properly formatting the category name is to use URL
Method 1 from the Pligg config > SEO page. This will print a url like the one below when you
navigate to a category page:

Code:

/upcoming.php?category=Tech-News

Copy the part after the = sign for the proper category name to use in the code below.

This code will display the word "Test" on the "Tech News" category page on my example site:

Code:

{if $request_category eq "Tech-News"}Test{/if}

This code will display the word "Test" on the "Tech News" AND "World News" categories on
my example site:

Code:

{if $request_category eq "Tech-News" || $request_category eq "World-News"}Test{/if}

If you want to add content to ALL CATEGORIES, but not the Upcoming and Published
sections you can use the following code to apply the word "Test" to every category page on
your site:

Code:

{if $request_category}Test{/if}

Template Files:
Below is a list of all of the template files included with Pligg followed by a description for each
file. This should make it easier for beginners to figure out what files they will want to edit.
Because Pligg is a very advanced content management system, there are a large number of
template files that control the look of your Pligg website. Not only are there templates in the
/templates folder of your Pligg site, but modules will commonly have their own template files
which you will find in the module directory. For example, the template for the captcha on the
registration page will be controlled through a template file located somewhere in the
/modules/captcha/templates folder.

Templates - Contents
● 1Templates
● 2Template Structure
● 3Template Files
○ 3.1/sidebar_modules/
○ 3.2blank.tpl
○ 3.3comment_form.tpl
○ 3.4comment_show.tpl
○ 3.5edit_comment_center.tpl
○ 3.6edit_group_center.tpl
○ 3.7editlink_edit_center.tpl
○ 3.8footer.tpl
○ 3.9group_center.tpl
○ 3.10group_story_center.tpl
○ 3.11header.tpl
○ 3.12index_center.tpl
○ 3.13link_summary.tpl
○ 3.14live_center.tpl
○ 3.15live_comments_center.tpl
○ 3.16live_js.tpl
○ 3.17live_published_center.tpl
○ 3.18live_unpublished_center.tpl
○ 3.19login_center.tpl
○ 3.20page_mod.tpl
○ 3.21pligg.tpl
○ 3.22profile_center.tpl
○ 3.23recommend_small.tpl
○ 3.24register_center.tpl
○ 3.25register_step_1.tpl
○ 3.26rssfeeds.tpl
○ 3.27search_advanced_center.tpl
○ 3.28search_center.tpl
○ 3.29settemplate_center.tpl
○ 3.30sidebar.tpl
○ 3.31sidebar2.tpl
○ 3.32sidebar_comments.tpl
○ 3.33sidebar_comments_wrapper.tpl
○ 3.34sidebar_stories.tpl
○ 3.35sidebar_stories_wrapper.tpl
○ 3.36sidebar_stories_wrapper_top_today.tpl
○ 3.37story_center.tpl
○ 3.38submit_errors.tpl
○ 3.39submit_extra_fields.tpl
○ 3.40submit_groups.tpl
○ 3.41submit_step_1.tpl
○ 3.42submit_step_2.tpl
○ 3.43submit_step_3.tpl
○ 3.44tag_cloud_center.tpl
○ 3.45template_details.php
○ 3.46topusers_center.tpl
○ 3.47topusers_data.tpl
○ 3.48upcoming_center.tpl
○ 3.49user_center.tpl
○ 3.50validation.tpl
● 4Adding Templates

/sidebar_modules/

This is a directory used to store several small template files that are known as "sidebar
widgets". These files add small content blocks to the sidebar area such as a login or search
form.

blank.tpl

This file is used when there isn't any data to display in the main body area.

comment_form.tpl
This form generates the comment form, which is included at the bottom of a story page.

comment_show.tpl

This form displays comments at the bottom of a story.

edit_comment_center.tpl

This template controls the style for when a user or admin edits a comment.

edit_group_center.tpl

This template is for editing groups information such as the group name, description, avatar and
privacy type.

editlink_edit_center.tpl

footer.tpl

This template is for the bottom of the template, typically where copyright information is
displayed.

group_center.tpl

This template controls the main Group listing page. This is the page that shows all of the groups
for the site.

group_story_center.tpl
header.tpl

This file usually contains the site name, logo, search box, categories and other navigational
links.

index_center.tpl

link_summary.tpl

This file handles most of the story content. Everything from the story title, to what tags the story
has.

live_center.tpl

This is the main live page, which shows the latest changes to the site.

live_comments_center.tpl

This is the comments live page, which displays the latest comments added to the site.

live_js.tpl

This file handles the javascript for the live page. Usually you will only want to edit the
hexadecimal color codes inside it.
live_published_center.tpl

This is used to render the live published page, which shows the latest published stories.

live_unpublished_center.tpl

This shows the live unpublished stories which have been recently submitted to the site.

login_center.tpl

This template controls the main login page.

page_mod.tpl

This template controls how pages added to your site through the admin page creator are
displayed.

pligg.tpl

This is the main template file that controls the information in the tags and organizes what order
other templates should be included.

profile_center.tpl

This template controls user profile pages, but not your own user profile. Your own profile, where
you can edit the values, is handled by user_center.tpl.

recommend_small.tpl
This template is used when a user wants to recommend a story to a friend. This is a "story tool".

register_center.tpl

This is the main registration template file.

register_step_1.tpl

This is the registration complete template that alerts users to check their email to verify their
email address.

rssfeeds.tpl

This template displays all of the published category RSS feeds.

search_advanced_center.tpl

This template controls the advanced search page feature for Pligg.

search_center.tpl

This is the template file for search results.

settemplate_center.tpl

This template displays what templates are available for users to change to.

sidebar.tpl
This template will allow you to edit the third column of the wistie template.

sidebar2.tpl

This template allows you to edit the second column of the wistie template.

sidebar_comments.tpl

This is an individual template for the sidebar comments, which is by default on the second
column.

sidebar_comments_wrapper.tpl

If you need to change the overall look like width, headlines color than this is the template to edit.

sidebar_stories.tpl

This tempalte handles how the text is display on upcoming / published stories available on your
seond column.

sidebar_stories_wrapper.tpl

If you need to change the overall look such as the width, headline style than this is the template
to edit, however this is only for
both published / upcoming stories displayed on the second column.

sidebar_stories_wrapper_top_today.tpl

Like the above, this is the template to edit if you want to change the design of Top stories
displayed on the second column.
story_center.tpl

This template handles the overall look on the full story page. You may also want to read:
story.php. Please note that you may also need to change link_summary.tpl depending on your
needs.

submit_errors.tpl

When someone submitted a story but pligg detected an error on the submission the user will be
redirected to an error page. This is
the template to edit if you want change the overall look of that page. If you wish to change the
text being used, please see lang_english.conf

submit_extra_fields.tpl

submit_groups.tpl

submit_step_1.tpl

This template handles the overall look on step 1 when a user submitted a story, unless you
have disable this via your admin panel.

submit_step_2.tpl
Like the above this template handles the overall look on the second page.

submit_step_3.tpl

Same as the above except this template handles the overall look of step 3 which is the final
step.

tag_cloud_center.tpl

template_details.php

topusers_center.tpl

topusers_data.tpl

upcoming_center.tpl
user_center.tpl

This is used for the user profile page when a user is viewing their own profile or editing their
profile.

validation.tpl

This is the registration confirmation page when you have activated the email validation method
from the admin panel. It will tell them that they need to check their email account for a
verification link to activate their account.

Template Structure

« Previous Chapter Templates

Pligg's default template can be divided up into 6 parts to demonstrate how the template files
work together to generate a page. This wiki entry will outline those 6 parts, please begin by
opening the attached image file for use in this tutorial for reference.

Templates - Contents

● 1Templates
● 2Template Structure
○ 2.1Header
○ 2.2Main Body
○ 2.3Sidebar
○ 2.4Footer
○ 2.5Story Data
○ 2.6Sidebar Widgets (Modules)
● 3Template Files
● 4Adding Templates

Header

The header area is designated the number 1 in the attached image.

The header uses header.tpl to generate it's content. In some templates (such as Wistie) the
file /sidebar_modules/categories.tpl is used to generate the categories in the header area.

The header area is used commonly for inserting the following data:
● Search field
● Logo
● Category navigation
● Submit
● Upcoming and Published navigation
● Groups and Create Group
● Other common navigation buttons (profile, admin, login, logout, register)

Main Body

The main body area is designated the number 2 in the attached image.

The following templates are used to insert data into the main body:
● group_center.tpl
● group_story_center.tpl
● index_center.tpl (which includes link_summary.tpl)
● live_center.tpl
● live_comments_center.tpl
● live_published_center.tpl
● live_unpublished_center.tpl
● login_center.tpl
● page_mod.tpl
● profile_center.tpl
● register_center.tpl (and register_step_1.tpl)
● rssfeeds.tpl
● search_advanced_center.tpl
● search_center.tpl
● settemplate_center.tpl
● story_center.tpl (which includes link_summary.tpl)
● submit_step_1.tpl
● submit_step_2.tpl
● submit_step_3.tpl
● tag_cloud_center.tpl
● topusers_center.tpl
● upcoming_center.tpl
● user_center.tpl

The main body area is used commonly for inserting the following data:
● Registration Form
● Login Form
● Story Page (See also Story Data, number 5)
● Search Results
Sidebar

The sidebar area is designated the number 3 in the attached image.

Pligg supports up to 2 sidebars without having to make any complicated edits. If you want to
call a second sidebar, just add {include file=$tpl_second_sidebar.".tpl"} to pligg.tpl where you
want sidebar2.tpl inserted. This could be anywhere on your site, not just to the side of the
main body.

Sidebar content is something we refer to as "sidebar widgets". These items are covered in
more depth further down on the page and are demonstrated through the number 6 on the
image.

The sidebar area is used commonly for inserting the following data:
● Search field
● Login form
● Registration form
● Sort story links (Top today, yesterday, week, month, year, etc.)
● Latest Comments
● Top Tags
● Top Stories Today
● Latest Stories

Footer

The footer area is designated the number 4 in the attached image.

The footer area is used commonly for inserting the following data:
● Copyright Information
● RSS Information
● Advanced Search link

Story Data

The story data area is designated the number 5 in the attached image.

The story data area is used to insert story content into the main body area. This includes the
main story, comments, and who voted.

Template files used to generate the story data:


● link_summary.tpl
● story_center.tpl
● comment_form.tpl
● comment_show.tpl
● edit_comment_center.tpl

Sidebar Widgets (Modules)

The sidebar widget data area is designated the number 6 in the attached image.

The sidebar widgets are the individual template files found in the /sidebar_modules/ folder
included with a template. These items are small blocks of content that get inserted into the
sidebars.

See the sidebar definition for examples of sidebar widgets.


Module Hooks

Module template hooks are necessary to allow modules to easily be added to a Pligg template
without making the Pligg user make edits to their template files. Pligg has added a large
number of new template hooks in the latest templates and is providing this page so that
template authors and users can learn how to add the new hooks into their existing and future
templates.

The module hooks are generally placed as pairs, one at the beginning of an area and another
at the end. This allows modules to place content before or after pretty much any part of Pligg.
We even included an optional second and third sidebar hook if a template developer chooses
to provide more than one sidebar.

Standard Template Module Hooks:


1. {checkActionsTpl location="tpl_pligg_head_start"} - After tag
2. {checkActionsTpl location="tpl_pligg_head_end"} - Before tag
3. {checkActionsTpl location="tpl_pligg_body_start"} - After tag
4. {checkActionsTpl location="tpl_pligg_body_end"} - Before tag
5. {checkActionsTpl location="tpl_pligg_navbar_start"} - Before main navigation link list
6. {checkActionsTpl location="tpl_pligg_navbar_end"} - After main navigation link list
7. {checkActionsTpl location="tpl_pligg_secondary_navbar_start"} - Before secondary
navigation
8. {checkActionsTpl location="tpl_pligg_secondary_navbar_end"} - After secondary
navigation
9. {checkActionsTpl location="tpl_pligg_banner_top"} - Before the main content area
starts and after any navigation
10. {checkActionsTpl location="tpl_pligg_banner_bottom"} - Between body content and
footer
11. {checkActionsTpl location="tpl_pligg_content_start"} - Top of the content area
12. {checkActionsTpl location="tpl_pligg_content_end"} - Bottom of the content area
13. {checkActionsTpl location="tpl_pligg_breadcrumb_end"} - End of the breadcrumbs
14. {checkActionsTpl location="tpl_pligg_sort_start"} - Beginning of sort (day, week,
month, etc.) buttons
15. {checkActionsTpl location="tpl_pligg_sort_end"} - End of sort (day, week, month, etc.)
buttons
16. {checkActionsTpl location="tpl_pligg_profile_sort_start"} - Beginning of profile page
sort buttons
17. {checkActionsTpl location="tpl_pligg_profile_sort_end"} - End of profile page sort
buttons
18. {checkActionsTpl location="tpl_pligg_profile_start"} - Just after profile breadcrumbs
19. {checkActionsTpl location="tpl_pligg_profile_end"} - After profile bookmarklet
20. {checkActionsTpl location="tpl_pligg_profile_info_start"} - Before personal info
21. {checkActionsTpl location="tpl_pligg_profile_info_middle"} - Between personal info and
stats
22. {checkActionsTpl location="tpl_pligg_profile_info_end"} - After user stats
23. {checkActionsTpl location="tpl_pligg_profile_settings_start"} - Start of the User
Settings page
24. {checkActionsTpl location="tpl_pligg_profile_settings_end"} - End of the User Settings
page
25. {checkActionsTpl location="tpl_pligg_group_start"} - Before the Group avatar and
information
26. {checkActionsTpl location="tpl_pligg_group_end"} - After Group Information (before
the group stories on group_stories.php)
27. {checkActionsTpl location="tpl_pligg_group_list_start"} - After individual Group title
28. {checkActionsTpl location="tpl_pligg_group_list_end"} - After individual Group Member
number
29. {checkActionsTpl location="tpl_pligg_group_sort_start"} - Start of Group Sort list
30. {checkActionsTpl location="tpl_pligg_group_sort_end"} - End of Group Sort list
31. {checkActionsTpl location="tpl_pligg_submit_step1_start"} - After Submit step 1 of 3
32. {checkActionsTpl location="tpl_pligg_submit_step1_middle"} - After Submit step 1
guideline list
33. {checkActionsTpl location="tpl_pligg_submit_step1_end"} - After Submit step 1 link
field
34. {checkActionsTpl location="tpl_pligg_submit_step2_start"} - After step 2 of 3
35. {checkActionsTpl location="tpl_pligg_submit_step2_middle"} - Before Submit Step 2
description
36. {checkActionsTpl location="tpl_pligg_submit_step2_end"} - After Submit Step 2
continue button
37. {checkActionsTpl location="tpl_pligg_submit_step3_start"} - After step 3 of 3
38. {checkActionsTpl location="tpl_pligg_submit_step3_end"} - After Submit Step 3
continue button
39. {checkActionsTpl location="tpl_pligg_story_start"} - Very beginning of link_summary.tpl
40. {checkActionsTpl location="tpl_pligg_story_end"} - Very end of link_summary.tpl
41. {checkActionsTpl location="tpl_pligg_story_votebox_start"} - Before votebox
42. {checkActionsTpl location="tpl_pligg_story_votebox_end"} - After votebox
43. {checkActionsTpl location="tpl_pligg_story_title_start"} - Before title
44. {checkActionsTpl location="tpl_pligg_story_title_end"} - After votebox
45. {checkActionsTpl location="tpl_link_summary_pre_story_content"} - Before the story
content on all story pages
46. {checkActionsTpl location="tpl_pligg_story_body_start"} - Before story body on
summary pages
47. {checkActionsTpl location="tpl_pligg_story_body_start_full"} - Before story body on the
story url page
48. {checkActionsTpl location="tpl_pligg_story_body_end"} - After story body
49. {checkActionsTpl location="tpl_pligg_story_tools_start"} - Before story tools
50. {checkActionsTpl location="tpl_pligg_story_tools_end"} - After story tools
51. {checkActionsTpl location="tpl_link_summary_admin_links"} - End of the story admin
link tools
52. {checkActionsTpl location="tpl_pligg_story_who_voted_start"} - Before who voted
53. {checkActionsTpl location="tpl_pligg_story_who_voted_end"} - After who voted
54. {checkActionsTpl location="tpl_pligg_story_related_start"} - Before related
55. {checkActionsTpl location="tpl_pligg_story_related_end"} - After related
56. {checkActionsTpl location="tpl_pligg_story_comments_start"} - Before comments
57. {checkActionsTpl location="tpl_pligg_story_comments_end"} - After comments
58. {checkActionsTpl location="tpl_pligg_story_comments_single_start"} - Before
individual comment
59. {checkActionsTpl location="tpl_pligg_story_comments_single_end"} - After individual
comments
60. {checkActionsTpl location="tpl_pligg_story_comments_submit_start"} - Before
comment submit
61. {checkActionsTpl location="tpl_pligg_story_comments_submit_end"} - After comment
submit
62. {checkActionsTpl location="tpl_pligg_sidebar_start"} - Start of sidebar
63. {checkActionsTpl location="tpl_pligg_sidebar_end"} - End of sidebar
64. {checkActionsTpl location="tpl_pligg_sidebar2_start"} - Start of second (optional)
sidebar
65. {checkActionsTpl location="tpl_pligg_sidebar2_end"} - End of second (optional)
sidebar
66. {checkActionsTpl location="tpl_pligg_sidebar3_start"} - Start of third (optional) sidebar
67. {checkActionsTpl location="tpl_pligg_sidebar3_end"} - End of third (optional) sidebar
68. {checkActionsTpl location="tpl_pligg_pagination_start"} - Before pagination
69. {checkActionsTpl location="tpl_pligg_pagination_end"} - After pagination
70. {checkActionsTpl location="tpl_pligg_footer_start"} - Beginning of footer
71. {checkActionsTpl location="tpl_pligg_footer_end"} - End of footer
72. {checkActionsTpl location="submit_step_2_pre_extrafields"} - Before Submit Step 2
Submit button
Admin Panel Module Hooks:
1. {checkActionsTpl location="tpl_pligg_admin_head_start"} - After admin panel tag
2. {checkActionsTpl location="tpl_pligg_admin_head_end"} - Before admin panel tag
3. {checkActionsTpl location="tpl_pligg_admin_breadcrumbs"} - After admin panel
breadcrumbs
4. {checkActionsTpl location="tpl_pligg_admin_body_start"} - After admin panel tag
5. {checkActionsTpl location="tpl_pligg_admin_body_end"} - Before admin panel tag
6. {checkActionsTpl location="tpl_pligg_admin_sidebar_start"} - Beginning of admin
sidebar
7. {checkActionsTpl location="tpl_pligg_admin_sidebar_end"} - End of admin sidebar
8. {checkActionsTpl location="tpl_pligg_admin_navtabs_start"} - Beginning of admin
navigation tabs
9. {checkActionsTpl location="tpl_pligg_admin_navtabs_end"} - End of admin navigation
tabs
10. {checkActionsTpl location="tpl_pligg_admin_legend_before"} - After admin
11. {checkActionsTpl location="tpl_pligg_admin_legend_after"} - Before admin
12. {checkActionsTpl location="tpl_header_admin_main_links"} - In the main admin panel
Module link list.
13. {checkActionsTpl location="tpl_admin_after_stats"} - Main admin panel page after the
stats.
14. {checkActionsTpl location="tpl_header_admin_links"} - Admin panel navigation links

Winmerge

Winmerge is an Open Source visual text file differencing and merging tool for Windows. It is
highly useful for determing what has changed between project versions, and then merging
changes between versions.

Download the latest version of Winmerge at:

WinMerge.org
Contents

● 1Installation
● 2Screenshots
● 3Supported Languages
● 4Support

Installation

Just download the installer and double-click it.

Or you may simply unzip the binary zip package into the desired location, and run
WinMergeU.exe (except for Windows 98/ME users who should use WinMerge.exe).

For more information, please see the Installation section of the Manual.

Screenshots
Supported Languages
● Brazilian
● Bulgarian
● Catalan
● ChineseSimplified
● ChineseTraditional
● Croatian
● Czech
● Danish
● Dutch
● English
● French
● German
● Greek
● Hungarian
● Italian
● Japanese
● Korean
● Norwegian
● Polish
● Portuguese
● Romanian
● Russian
● Slovak
● Slovenian
● Spanish
● Swedish
● Turkish
● Ukrainian

Support

WinMerge is an Open Source project, that is covered under the GNU General Public License.
As such, your main form of support for WinMerge will be through subscription to the
WinMerge-support mailing list. In addition, SourceForge has bug tracking capabilities, so
please report any bugs here. Wish list items on the feature request list will also be considered,
but we make absolutely no promises.
We prefer that you register with SourceForge before posting a bug report (registration is public
and free), so that you may get email notifications if we post follow-up questions to your bug. It
is not at this time required that you register to post a bug report (although, we do generally
give less priority to unregistered bug reports, because it has been our experience that
unregistered posters often do not remember to return and check to answer follow-on
questions).

Since WinMerge is an Open Source project, you may use it free of charge. But please
consider making a donation to support the continued development of WinMerge.

File and MySQL Backup

Pligg offers a built in File and MySQL backup utility to allow you to easily make a backup of
your site files and database.

How to use File and MySQL Backup

To use this tool, first log in as a "god" level user then navigate to your Pligg Admin Panel.

Click on "File and MySQL Backup".

You will then be presented with three options:


● Backup all files (except avatars)
● Backup avatars
● Backup database

Clicking on any of these three options will generate a .zip archive or .sql file and a link will be
displayed under "Previously created backups" so that you can download the files to your
computer. After you have downloaded the files, click on the "Remove all the backups listed
below" to delete them from your web server. This will prevent unauthorized users from
accessing them should they discover the timestamped url.

Attached Thumbnails

Pligg User Integration Options

The following options are available for integrating Pligg with existing user databases:

Contents

● 1Forum (Bulletin Board) Software


○ 1.1phpBB Integration Module
○ 1.2Invision Power Board (IPB) Integration Module
○ 1.3vBulletin Integration Module
● 2Other Content Management Systems
○ 2.1Joomla Integration Plugin

Forum (Bulletin Board) Software


Since web bulletin boards (bb) are a great starting point for online communities it was only
natural for Pligg to first offer integration options for forum web scripts. Below is a list of bulletin
board scripts that Pligg is able to integrate user information with.

phpBB Integration Module

phpBB offers a popular open source solution for creating forums, which made it a great
candidate for the first user integration module for Pligg. We offer a free integration module that
will add Pligg users to a phpBB database. This module is available for free, but we are only
able to support it for commercial projects at this time.

Official phpBB Integration Module Thread

Invision Power Board (IPB) Integration Module

The Invision Power Board module is a premium addon that offers the most advanced
integration option available.

Features:
● Users automatically log in to the Pligg site if they have logged into IPB and set a
browser cookie
● Users can log in to Pligg using their IPB credentials
● User avatars are imported from IPB into Pligg

Requirements:
● Invision Power Board License
● Invision Power Converge (IP.Converge) plugin for IPB.
● Pligg and Invision Power Board must sit on the same domain name. Different
subdomains are okay.
● New users should register through IPB

Please contact Yankidank for more details and pricing information.

vBulletin Integration Module

Similar to the Invision Power Board module, the vBulletin module integrates users by
automatically adding them to the Pligg database when a user who is currently logged in to
vBulletin lands on the Pligg page. Alternatively they can log in to the Pligg site using vBulletin
credentials and that will add their account to the Pligg site if it is their first time registering on
the site.

Features:
● Users automatically log in to the Pligg site if they have logged into vBullletin and set a
browser cookie
● Users can log in to Pligg using their vBulletin credentials

Requirements:
● vBulletin License
● Pligg and vBulletin must sit on the same domain name. Different subdomains are
okay.
● New users should register through vBulletin

The vBulletin User Integration module can be purchased from Pligg Pro.

Other Content Management Systems

If you are looking to pair Pligg with an existing CMS or migrate to Pligg from another CMS you
may be interested in these user integration solutions.
Joomla Integration Plugin

JPligger is a Joomla plugin that will sync Pligg 9.9 and Joomla 1.5 users. This plugin will allow
you to run Pligg inside Joomla using Wrapper. It will sync user registration, login and forgot
password between Joomla, Community Builder and Pligg.

Tested on: Joomla 1.5.2; Pligg 9.9.0

Note : Community Builder is not required for this plugin to work

Ideal Installation:
● Use at your own risk! Backup first or use in test environment first.
● Install Joomla in root folder
● Install Pligg in /
● Note DB settings of Pligg
● Install JPligger Plugin in Joomla
● Visit its settings
● Provide details for Pligg DB
● Publish and Save
● Hide Pligg Registration Links

Optional Information: Pligg inside Joomla wrapper instructions here.

Attached Files

jpligger_plugin.zip (9.9 KB, 42 views)


Wrong Referrer
Redirected from Wrong Referer.

Wrong Referrer is a message you might see if you try to navigate to a page that checks to
make sure that the user was navigating to the page from your site, and not from another site
or manually entered into the address bar of your browser. We added this to greatly reduce the
chances of an XSRF hack that someone might try to exploit.

To remove this error and remove the security check you can remove the following line of code
from files that give you the "Wrong Referrer" message:

Code:

check_referrer();

We advise against removing the security check, but it is understandable that not every site
configuration will want to display a message when users directly access a common file such
as submit.php

-------------------------------

I experienced this because I had "www" turned on in .htaccess when I should have disabled it.

You could experience this problem if you're switching between www and non-www.
To debug the problem, edit /libs/html1.php

Replace the function check_referrer() with .....

Code:

function check_referrer()

global $my_base_url, $my_pligg_base;

if (!strstr($_SERVER['HTTP_REFERER'],$my_base_url.$my_pligg_base)){

die($_SERVER['HTTP_REFERER'] . '=' . $my_base_url.$my_pligg_base . 'Wrong


Referrer');

Spam Prevention
Also see: Pligg Captcha

_____________________________________

SFS Global Antispam - Help block and determine if users are potential spammers

My Spam IP Blocklist - This list contains 41,998 IP addresses of known Pligg spammers.

Blacklist v0.1 - Allows one to create a list of IPs to block.

Bad-Behavior v.01

Mods - Blackball for Pligg - Contains a list of 300k+ domains to block.

Scarecrow v.01 Pligg Module

Akismet Anti-Spam v0.2


you can use htaccess to block pycurl:

#Block pycurl bot

RewriteEngine on

RewriteCond %{HTTP_USER_AGENT} ^pycurl/ [NC]

RewriteRule .* - [F]

Display Number of Friends in Profile

I spent a while banging my head against the wall trying to figure out a simple feature today. I
wanted to display the number of friends a user has on their profile. I eventually came up with a
complicated solution (see bottom code example), but another developer corrected me with a
much more elegant solution:

Code:

{$friends|@count}

If you insert the code above into your user_center.tpl file it will print out the number of friends
a user has. You can see an example of this code being used in the Cuteaholic.com user
profile pages.

Hopefully some other users will find this template code useful for creating more interesting
user profiles.

------------------------------------------------------------------

Next is a much more complicated method to get the number of friends, which I was originally
using. I'm leaving this code for posterity sake, in case someone finds an alternate use for it.

Code:

{section name=friends loop=$friends}

{if $templatelite.section.friends.last}

{php}

$this->assign('friend_count', $this->_sections['friends']['total']);

{/php}

{/if}

{/section}
{if $friend_count eq ''}0{else}{$friend_count}{/if}

URL Method

URL Method is the term used to describe the way a URL is formed. There are generally 2
types.

Method 1 = dynamic urls (default) and Method 2 = static urls

Contents

● 1Dynamic vs Static urls


● 2Url Method options
● 3.htaccess
● 4Step by Step Instructions
○ 4.1If your Pligg is installed in a subfolder
○ 4.2Rewrite rule for categories
○ 4.3It's not working. How do i go back?

Dynamic vs Static urls

Dynamic urls contain variables and are typically seen on database driven sites like blogs and
forums. A static url does not contain any variables and does not change. Static urls are easier
for your users to read. They are also sometimes ranked higher by search engines.
Examples

Dynamic url: yoursite.com/pligg/story.php?title=storytitle

Static url: yoursite.com/pligg/news/yourstorytitle

Url Method options

There are three options on the Url Method page in the admin panel. Choose Url Method 2 to
enable static urls.
● Method 1 = dynamic urls (default)
● Method 2 = static urls

.htaccess

If you enable Url Method 2 in the admin panel you should see static urls on your site but when
you click on an internal link you'll probably get a 404 this page can not be found error. In order
to work properly Url Method 2 requires modifications to your .htaccess file so that so that the
new friendly urls are properly mapped to the actual files they refer to.

There is a default .htaccess file included in your Pligg installation called htaccess.default that
contains a long list of rewrite commands that are meant to get you started. But you will
probably need to modify this file in order to get static urls working properly on your site.

Step by Step Instructions


1. Check with your host to see if mod rewrite is allowed. If not buy a dreamhost package
to help pligg dev.
2. Check with your host that Apache is configured to use .htaccess files (AllowOverride
All)
3. Get the latest htaccess.default from the SVN on sourceforge.
4. Go to your admin panel/category management. At the bottom there is a rewrite rule
for the categories. Copy this whole line and in htaccess.default paste over You need to
copy the line for this whole thing to work right. Paste over the line: RewriteRule ^(all|
pligg|category1|category2)/([a-zA-Z0-9-]+)/?$ story.php?title=$2 [L]
5. Upload htaccess.default to your webserver in the root directory of your install.
Overwrite the existing one.
6. Rename "htaccess.default" to ".htaccess" (no quotes). Note the period in front. That
period denotes a hidden file, and may cause it to disappear from some FTP clients.
(You might need to enable showing of hidden files or call it by name when
downloading).
7. Turn on URL Method 2 in the admin panel by going to Admin > Configure > SEO and
set the URL Method to 2.

If your Pligg is installed in a subfolder

If Pligg is installed in a subfolder: (ie : yourdomain.com/pligg/) then you will need to modify the
RewriteBase in .htaccess:

Change RewriteBase / to RewriteBase /pligg/

Rewrite rule for categories

Every time you add a new category to your site you need to update the mod rewrite rules for
the category urls. Simply go back to the admin panel / category management page copy the
new rewrite rule and paste it on top of the old one in your .htaccess file.

It's not working. How do i go back?

If this doesn't work, mod_rewrite probably isn't enabled on your webserver. You can go back
to the admin panel and set Url Method to 1 again. No harm was done to any files during the
instructions above and your site should operate fine without friendly urls.

Duplicate URLs
How to allow duplicate urls for stories

By default Pligg is set up so that users can not submit duplicate urls for stories. For some sites
this restriction does not make sense. Currently there is no way to enable duplicate urls via the
admin panel. You must modify submit.php to enable duplicate urls by commenting out lines
123 to 133 (begins with if($linkres->duplicates($url) > 0) ).

Page Variables

What are Page Variables?

Page variables are used to define what page a user is on. Variables are used in Pligg
templates to determine whether or not you should display content by using {if} tags, this
method is similar to many programming languages such as PHP.

Pagename variables are defined in .php files to determine what page you are currently
viewing. If you open up index.php, for example, you will find the code below which assigns the
pagename variable "index" and "published" to the Pligg published pages (homepage).

PHP Code:

// pagename

define('pagename', 'index');
$main_smarty->assign('pagename', pagename);

Below are example codes that you can use with these variables, in these examples "story" is
the page name that can be replaced with one of the variables listed lower on this page.

Code:

{if $pagename eq "story"}

Content to show if it IS a story page

{/if}

Code:

{if $pagename neq "story"}

Content to show if it's NOT a story page

{/if}

Advanced Pagename Use

To shorten the amount of code needed you can use this more advanced method for specifying
AND (represented by && ) and OR (represented by || ). By using these symbols between
pagenames you can combine them in a variety of ways, for example the code below will show
the content on BOTH upcoming and published pages by using the || symbols to combine the
rules. I then will use {else} to display the content after that on any pages that don't match the
pagename criteria.

Code:

{if $pagename eq "upcoming" || $pagename eq "published" || $pagename eq "index" }


Content that goes on BOTH the upcoming AND published pages.

{/else}

This content will only go on pages that ARE NOT upcoming and published pages.

{/if}

In the below example I will demonstrate content that will show on the story page BUT NOT on
the live page.

Code:

{if $pagename eq "story" || $pagename neq "live"}

Content to show on a story page, but not on a live page

{/if}

In this final example I am going to make use of the AND symbols, meaning that the page
would have to qualify as BOTH variables. Because you can't have 2 pagenames on the same
page (it will cause the pagename variable to become blank if there is more than 1) I will be
using a combination of pagename AND modulename variables. Modulenames operate in the
same fasion as pagenames, but are applied to modules.

Code:

{if $pagename eq "register" && $modulename eq "captcha"}

This content will only show if you are on the registration page and the captcha module is
enabled

{/if}

My final example is probably the most popular, this code will demonstrate how to only show
something on the index.php homepage.
Code:

{if $pagename == 'index' && count($templatelite.get) == 0} Homepage Content {/if}

Pligg Page Variable List

Below is a list of variables that can be used to define the page. Next to each variable is an
equal sign ( = ) followed by a description. Typically variables are identical to the name of the
php file they are declared in. There are only a few examples that contradict this pattern,
including the user.php and index.php files.
● admin_index = Main Admin Page
● cloud = Tag cloud
● edit_page = Editing a Page
● editlink = Editing an Article
● groups = All Groups list page (groups.php)
● group_story = A specific group's upcoming, published, shared and member pages.
● live = Main live page (live.php)
● live_comments = Comment live page
● live_unpublished = Unpublished live page
● live_published = Published live page
● login = Log in page (login.php)
● profile = User profile page (profile.php)
● register = Registration page (register.php)
● search = Search Results (search.php)
● story = Story page (story.php)
● submit = Submission pages (steps 1-3) (submit.php)
● tools = ?
● topusers = Top User page
● user = User profile page when logged in and able to modify (user.php)

Pligg Pages
Pligg Pages are used to display static content. Examples of pages might be an about page,
terms of use, license and other pages that don't require comments, votes and other features
that Pligg stories use.

Database

Page data is stored in the same database table as story data, under pligg_links.

Customization

If you would like to use of {php} and other smarty tags in pages you must change the line in
page_center.tpl from

Code:

{$page_content}

to

Code:

{eval var=$page_content}

After making this change you will then be able to embed PHP and Smarty code into the
content area of your page.

Pligg Groups
The new Groups feature that was introduced with Pligg 1.0 provides a lot of new functionality
for Pligg sites that will enhance how Pligg is used by social networks along with several other
types of sites. This article will outline how Pligg Groups work, possible uses for the feature
and details about the settings available to configure Groups from the Pligg admin panel.

Contents

● 1About Groups
● 2How Groups Work
○ 2.1Finding a Group
○ 2.2Creating a Group
○ 2.3Group Privacy Types
○ 2.4Submit a Group Story
○ 2.5Share a Story
○ 2.6Group Voting

About Groups

Pligg Groups was originally a general idea that a few dedicated Pliggers tossed around, and
at the time it was conceived as a way for users to connect with each other on Pligg websites
to discuss and share ideas. The idea was then changed so that Groups could be used as a
more general tool to not only group users but also group user content. Rather than just giving
users a way to join a member list we decided to give users a way to share stories, which is the
best way to describe how Group works.

When submitting a story to Pligg you are submitting your story to a general upcoming que
where your story competes to get the attention among several categories, many stories and a
variety of users. Your story could potentially be lost because of the amount of content being
submitted to a site, and more importantly those who might be the best target audience for that
story may never see it. Here's where Groups comes into play.

Lets say that story you submitted is about a great new Photoshop plugin. You categoriezed it
under Art (because the site didn't have any category better suited than that) and then tagged it
with words like Adobe, software, imaging, photoshop, etc. Now lets say that this site has a
Group created called "Adobe Users", you can join that group and either share the story or
submit it to their upcoming page. By doing that you are highlighting what you think would be a
valuable article to a group of users who might take interest in it an help vote it up to the site's
homepage.

How Groups Work


Groups function on some level as mini-Pliggs within your Pligg site. They allow users to
create their own little area to manage stories and users in a simplified way that moderators
are able to edit the normal articles. Group admins are able to specify how many votes a
story needs to become published, who can join, who can see the articles and who can
modify stories or change the group settings.

Finding a Group

The Groups overview page allows you to sort Groups by their creation date, number of
members and name.

Creating a Group

If you can't find a group that fits your interest you can easily create a group if the site has
this feature enabled. You will only need to fill out one page with a Group Title, Description,
Group Privacy Type, and the number of votes required to publish a story. Optionally you can
enter in email addresses of friends you want to invite to the group and they will receive an
email letting them know about the Group.

Group Privacy Types

There are 3 privacy options for groups. These were designed to give a variety of privacy
settings to fit most needs.
● Public: New members do not need to be manually approved. The stories and member
list are viewable by anyone.
● Private: New users must be approved. Member list and articles are kept private. Only
the founder's username will be displayed.
● Restricted: New members must be approved. Stories and member list are public.
Submit a Group Story

Submitting a story to a Group is the same process as submitting a normal article to the
website. The only difference is that a new drop down menu will appear in the second submit
step where you can select which group (that you belong to) you want to submit the story to.
After you finish submitting the story it will appear on BOTH the group upcoming page AND
the main website's upcoming page.
Share a Story

Let's say that you find a story that hasn't been submitted to a group you belong to, but you
think it deserves to be bookmarked in the groups "Shared" space. Click on the Group Share
link below the story and then select the group you want to share the story with and the story
will then appear on the Group's "Shared" page. Think of it like social bookmarking, where
you share bookmarks with everyone else in the group. Please note that you can only share
stories with groups that you have an active membership with.

Group Voting

When you create a group you must specify how many votes a story needs to appear on the
Group Published page. This number can be different from the website's rule for publishing,
but it won't cause a Published Group story to become published on the main website.

Attached Thumbnails

You might also like