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 comarketing 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" dropdown 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. 2. 3. 4. 5. 6. 7. {checkActionsTpl location="tpl_pligg_head_start"} - After tag {checkActionsTpl location="tpl_pligg_head_end"} - Before tag {checkActionsTpl location="tpl_pligg_body_start"} - After tag {checkActionsTpl location="tpl_pligg_body_end"} - Before tag {checkActionsTpl location="tpl_pligg_navbar_start"} - Before main navigation link list {checkActionsTpl location="tpl_pligg_navbar_end"} - After main navigation link list {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

Sign up to vote on this title
UsefulNot useful