The application can crawl any number of feeds and can organize them inside categories created.
Similar to how Google News does, it can now show related news articles appear below each new item, in clusters nice way of discovering more.
The premium version has the ability to categorize contents that include pre-defined keywords which is very useful if you're monitoring your brand or a specific subject.
That version also has a multi-user interface where each user can create his/her own feeds and vote on the stories displayed.
Who is it good for?
It fits to various scenarios:
creating a website from scratch which totally feeds from other sources.
a companion to a website for displaying content from other similar websites.
monitoring your brand or specific keywords from preferred sources (Twitter, newspapers and more).
P.S. The premium version also comes with an optional free installation.
The application can crawl any number of feeds and can organize them inside categories created.
Similar to how Google News does, it can now show related news articles appear below each new item, in clusters nice way of discovering more.
The premium version has the ability to categorize contents that include pre-defined keywords which is very useful if you're monitoring your brand or a specific subject.
That version also has a multi-user interface where each user can create his/her own feeds and vote on the stories displayed.
Who is it good for?
It fits to various scenarios:
creating a website from scratch which totally feeds from other sources.
a companion to a website for displaying content from other similar websites.
monitoring your brand or specific keywords from preferred sources (Twitter, newspapers and more).
P.S. The premium version also comes with an optional free installation.
MonoQL is a PHP-powered, open source and Ajaxed web application for managing MySQL databases.
It has a desktop-like interface -thanks to Ext JS- and can accomplish almost every task you can ask for like database/table design, data browsing/editing, advanced querying & more.
The application has support for controlling advanced MySQL features like triggers, stored procedures and views.
MonoQL can connect to any number of databases, both local or remote. Also, with the help of a context menu, it display options on every level like running queries, importing data from a CSV file or truncating/deleting a table.
Vivvo is a professional and “commercial open source” CMS application that is built with PHP, uses MySQL for storing data and offers a “top-notch” experience.
The application is ready to power any type and size of website from a portal to a newspaper, a blog, etc. as it is already preferred by 1000s of websites.
The CMS comes as a downloadable package to install on your own servers (has a web-based installer) with powerful features for managing the content like publishing articles, static pages, blogs, images, photo galleries, videos, podcasts and keeping revisions of them.
It has the tools to equip any website with functional modules like an event calendar, commenting system, integrated search, ability to show related articles and integrate with popular forum softwares.
Also, the application helps the content to spread with social bookmarking syndication, “email to a friend”, print version, subscribe, RSS and more.
Vivvo has an impressive and slick admin interface which has a permission-based user management system where it is possible to define editors, writers, photo gallery managers, members, etc.
It is SEO-friendly in means of the URLs created, ability to customize meta tags/keywords and auto-sitemap generation. And, the 20 free templates that the CMS comes with are all SEO optimized.
Besides these features, it is always to think of something missing. But Vivvo is ready to cover it with 100+ free plugins and widgets (like multi-site manager, Twitter updater) where it is possible to create new ones as the application is open source.
Vivvo is very well documented with user guides, a knowledge base and a highly active community behind it.
For anyone working with multiple clients, the sharing of files (screenshot of a design, documents, etc.) can be difficult, specially if they are large in size.
cFTP is an open source and multi-user PHP application that
In this tutorial, we'll be creating an Ajax Poll Script that displays the results with colored and animated lines using PHP, MySQL and jQuery.
The script has a pretty easy logic and can be implemented into any website quickly by simply calling a php function like getPoll(2) which brings the second poll.
The code has 3 parts: HTML, JavaScript (jQuery) and PHP. Let's start with the easiest one:
HTML
The HTML for the poll is generated within the PHP function which is usually nice as it is only a 1-line-code and doesn't create a visual pollution in the overall HTML.
There is nothing original here. In one of the list items, we mention the answer and provide a unique ID for it which matches that answer's answerID in the database. For the other list item, we reserve it for the colored line, again by giving it the unique ID.
PHP
We first include our db connection file and handle the posted items from the Ajax requests
This getPollID function below is for easily getting the ID of the related polls by providing an answerID:
function getPollID($pollAnswerID){
$query = "SELECT pollID FROM pollAnswers WHERE pollAnswerID = ".$pollAnswerID." LIMIT 1";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
return $row['pollID'];
}
And, the getPollResults function which is kinda tricky but not that much.
When ran, it returns a string like: 1|13|#ffcc00-2|32|#00ff00-3|18|#cc0000-63″ which the first number is the answerID, second is the points it has and third is the color for that answer's animated line.
The last number is the sum of all points for easily calculating percentages.
The string is parsed in the JavaScript side later on.
The last PHP code is the voting part which also sets a cookie:
if ($action == "vote"){
if (isset($_COOKIE["poll" . getPollID($pollAnswerID)])) {
echo "voted";
} else {
$query = "UPDATE pollAnswers SET pollAnswerPoints = pollAnswerPoints + 1 WHERE pollAnswerID = ".$pollAnswerID."";
mysql_query($query) or die('Error, insert query failed');
setcookie("poll" . getPollID($pollAnswerID), 1, time()+259200, "/", ".webresourcesdepot.com");
getPollResults(1);
}
}
jQuery (JavaScript)
It is only an Ajax request that posts the selected answer to the PHP code, gets the string in return, parses it and makes some show/hide tricks for displaying and hiding the messages or loaders.
Here it is:
$(document).ready(function() {
$("#pollAjaxLoader").hide(); //hide the ajax loader
$("#pollMessage").hide(); //hide the ajax loader
$("#pollSubmit").click(function() {
var pollAnswerVal = $('input:radio[name=pollAnswerID]:checked').val();//Getting the value of a selected radio element.
if ($('input:radio[name=pollAnswerID]:checked').length) {
$("#pollAjaxLoader").show(); //show the ajax loader
$.ajax({
type: "POST",
url: "inc/functions.php",
data: { pollAnswerID: pollAnswerVal, action: "vote" },
success: function(theResponse) {
//the functions.php returns a response like "1|13|#ffcc00-2|32|#00ff00-3|18|#cc0000-63" which the first number is the answerID, second is the points it has and third is the color for that answer's graph. The last number is the sum of all points for easilt calculating percentages.
if (theResponse == "voted") {
$("#pollAjaxLoader").hide(); //hide the ajax loader
$("#pollMessage").html("sorry, you already voted.").fadeTo("slow", 1);
} else {
var numberOfAnswers = (theResponse).split("-").length-2;//calculate the number of answers
var splittedResponse = (theResponse).split("-");
var pollAnswerTotalPoints = splittedResponse[numberOfAnswers+1];
for (i=0;i<=numberOfAnswers;i++)
{
var splittedAnswer = (splittedResponse[i]).split("|");
var pollAnswerID = (splittedAnswer[0]);
var pollAnswerPoints = (splittedAnswer[1]);
var pollAnswerColor = (splittedAnswer[2]);
var pollPercentage = (100 * pollAnswerPoints / pollAnswerTotalPoints);
$(".pollChart" + pollAnswerID).css("background-color",pollAnswerColor);
$(".pollChart" + pollAnswerID).animate({width:pollPercentage + "%"});
$("#pollAnswer" + pollAnswerID).html(" (" + Math.round(pollPercentage) + "% - " + pollAnswerPoints + " votes)");
$("#pollRadioButton" + pollAnswerID).attr("disabled", "disabled"); //disable the radio buttons
}
$("#pollAjaxLoader").hide(); //hide the ajax loader again
$("#pollSubmit").attr("disabled", "disabled"); //disable the submit button
}
}
});
return false;
} else {
$("#pollMessage").html("please select an answer.").fadeTo("slow", 1, function(){
setTimeout(function() {
$("#pollMessage").fadeOut("slow");
}, 3000);
});
return false;
}
});
});
The JavaScript code is well-commented and is pretty self-explanatory. Don't let the number of lines afraid you, most of them are just the make-up.
Recent Comments