The reporting plugin has been moved to http://www.software-mods.com/reports.html
Thanks,
Scott
The reporting plugin has been moved to http://www.software-mods.com/reports.html
Thanks,
Scott
I’ve recently been checking out newznab plus. I’ve found that while it’s nice as it slowly builds, it’s a bit annoying not having any older posts already loaded. Fortunately nn+ (nnp, newznab plus) comes with an option for backfilling. The instructions are useful but I’d like to expand on them to make it less of a hassle to update more than one particular group.
Please note that I’ve only been using nn+ for a few days now so there may indeed be easier ways to do things but this is the best way I’ve found so far. For example, I’m not exactly sure what the update_binaries_threaded.php file does but I don’t believe it does what I’m discussing here. I’m guessing from the “threaded” that it simply makes multiple threads of the same process to make the entire task faster.
The following is taken from http://newznab.readthedocs.org/en/latest/readme/#backfilling-groups
Backfilling Groups
Since most usenet providers have 800+ days of retention indexing all that information in one shot is not practical. Newznab provides a backfill feature that allow you to index past articles once your initial index has been built. To use the feature first set the back fill days setting in the group(s) to be backfilled to the number of day you wish to go back, making sure to set it higher than the number of days listed in the first post column. Once set run the backfill.php script in misc/update_scripts. Groups can be backfilled to a particular date using the script misc/update_scripts/backfill_date.php using the syntax:php backfill_date.php 2011-05-15 alt.binaries.groupname.hereYou can use the _threaded version of this script if on linux.
For more information on backfilling, see Update Scripts.
First off, what we need to do is to activate any groups we want. More than likely you’ve already done this. What you’ll want to do in order to backfill those groups is to change the ‘Backfill Days’ entry. This can be done through the webpage but if you are wanting to backfill all of them then this following command will make it much faster than manually clicking through a dozen or more groups.
You’ll need to be on the command line and then log into mysql
mysql -u root -p Enter password: mysql> use newznab; (or whatever your database name is) mysql> update groups set backfill_target=365 where active=1;
You have now just changed all active groups to have a backfill of 365 days (1 year). Now we just need to run our backfill_date.php on each group. If we’ve got dozens of groups or more though this can be tedious to repeat over and over with each group. So instead we are going to get a list of all the active groups by running the following command:
mysql -u root -p newznab -e 'select name from groups where active=1;'> groups.txt
You can now go into the groups.txt file and remove and additional groups you want or just leave it intact if you want everything.
Finally we want to run the php backfill.php command to backfill each of our selected groups back 365 days (or whatever number you’ve selected, alternatively you can also skip updating the database with the amount of days to backfill and simply substitute the backfill_date.php as noted from the link.)
Normally this command would be run like so for a single group:
php backfill.php alt.binaries.groupname.here
But this is much too slow for multiple groups so we are going to use a ‘for’ function with our data from the groups.txt file we created.
for group in `cat groups.txt`; do php backfill.php $group; done
If you are like me and like to see your code before it runs then simply add an echo beforehand to view the results and then remove it when you are ready:
for group in `cat groups.txt`; do echo "php backfill.php $group"; done
The use of the backticks (`) around ‘cat groups.txt’ tells it to run the command in a subshell and then use the information from that back in the shell command.
At my full time job we often reference the ticket ID that we are working on in our daily log, notes or when just when referencing it from person to person. The following will allow for showing the external ticket ID in the browser title.
First we need a new function to reference, find the following in
include/class.ticket.php
/*============== Functions below do not require an instance of the class to be used. To call it use Ticket::function(params); ==================*/
And add the following right after it:
function getExtIdById($id){ $sql ='SELECT ticketID FROM '.TICKET_TABLE.' ticket WHERE ticket_id='.db_input($id); $res=db_query($sql); if($res && db_num_rows($res)) list($extid)=db_fetch_row($res); return $extid; }
Now open up
include/staff/header.inc.php and add the following just after your <title> tag:
<?if(Ticket::getExtIdById($id)){ echo Ticket::getExtIdById($id)." - "; }?>
Update!
There are a couple of pages you may be on (like “My Preferences”) where the ticket class is not loaded. In order to make sure it’s loaded for use you can added the following just before the title tag:
require_once('../include/class.ticket.php');
Just a quick post since I started toying around with pChart 2.x to add emailed reports to my osTickets Reports MOD. This took me awhile to locate and that was including 20 minutes of googling failing me.
In order to change the font color of the WriteValues (the values that show up over your generated charts). You can modify the numbers in the following file
pChart/class/pRadar.class.php
$ValueR = isset($Format["ValueR"]) ? $Format["ValueR"] : 0; $ValueG = isset($Format["ValueG"]) ? $Format["ValueG"] : 0; $ValueB = isset($Format["ValueB"]) ? $Format["ValueB"] : 0;
Setting the above to 0’s instead of 255 will change the text from white to an easier to read black.
As a part of Search Engine Optimization (SEO) you may want to be aware of your websites (or clients websites) page rank on Google. After some researching I’ve found the following solutions to be best. I’ll be presenting a few options here, first we’ll cover how to look it up on prchecker.info. Second we’ll be covering how to look up the page rank using a perl script and finally we’ll cover how to look up your page rank with the perl script and update a mysql database with the information (for long term tracking and/or tracking multiple websites.)
READ MORE »
Ok, so let’s say I have a list of users in a database. I want to get that list out on the screen and allow someone to be able to use checkboxes to do something with each of those users. In this example we’re going to say we are deleting any users that have been checked. If you are not already familiar with building dynamic output from mysql then I suggest you first read over Web Dev> Populate PHP/HTML table from MySQL database
First we’ll build our form to show our users, in this example I’m actually building my list of users from a query to a mail server which gets returned to me first as a string. I need to change this into an array so I’m going to use explode(). I’ll go through this all step by step so it’s easy to follow along and you can skip whatever parts you feel you are already familiar with.
So lets say the mail server returns this string to me of users:
$members_string = 'Bruce Chuck Jackie Jet'; echo "Members string is '$members_string'";
Which gives us an output of
Members string is 'Bruce Chuck Jackie Jet'
Since I want to loop through each of these members I need to first create an array that I can loop through, this is where explode() comes in.
// Members are separated by spaces, so explode on spaces $members = explode(' ',$members_string);
Note: This is NOT original sudobash.net code. This has been copied over from ElectricToolBox.com, full credit goes to him/her (I couldn’t find a name anywhere).
The PHP function below gets passed in a tablename and an optional database name. If the database name is not passed in then it retrieves it using the MySQL function SELECT DATABASE(). It then queries the MySQL information schema to see if the table exists and then returns either true or false.
function table_exists($tablename, $database = false) { if(!$database) { $res = mysql_query("SELECT DATABASE()"); $database = mysql_result($res, 0); } $res = mysql_query(" SELECT COUNT(*) AS count FROM information_schema.tables WHERE table_schema = '$database' AND table_name = '$tablename' "); return mysql_result($res, 0) == 1; }
The PHP MySQL functions are used in the above example. A database connection is assumed and there is no error checking, but you can modify it to utilise whatever database library / abstraction layer you are using in your project and improve how you see fit.
To use the function you’d do something like this:
if(table_exists('my_table_name')) { // do something } else { // do something else }
and if you wanted to specify the database name as well (perhaps you are needing to query if the table exists in multiple databases other than the one you are currently connected to), you’d do this:
if(table_exists('my_table_name', 'my_database_name')) { // do something } else { // do something else }
<style> tr.odd { background: #d0d0d0; } </style>
echo <?php '<tr'.(($c = !$c)?' class="odd"':' class="even"').'>'; ?>
Useful for giving a teaser of a post and then including … on the end followed by “Read More”.
$sentence = "This is my sentence, there are many like it but this one is mine. What do you think of it?"; $n = 10; // Customize to however many words you want to actually show $teaser = implode(' ', array_slice(explode(' ', $sentence), 0, $n)); echo $teaser."…READ MORE
Which should result in:
This is my sentence, there are many like it but…READ MORE
Here’s a quick little tip I’ve been using recently with the new year having rolled around. I’ve started replacing all of my © 2011 code with the following. This will always return the date of the current year. That way you don’t have to remember to update it all over the place every time we “celebrate” a new year.
<?php echo date('Y'); ?>
So now I don’t ever have to update this post and the current year should always be reflected here: 2020
Find an error?
Everything work out great for you?
Have some feedback?
Like to see something added to the article?
PLEASE leave us a comment after the article and let us know how we are doing, or if something needs corrected, improved or clarified.
Thank you!
- The Management
Sudo Bash
By Geeks - For Geeks