71
wishcraft
Presenting: PingTrax 1.01

Resized Image

Chronolabs Cooperative

... Presents ...

PingTrax 1.01


Introduction

PingTrax 1.01 is a module that uses auto discovery to generate links to send to PingLists as well as allow for Permalink's for trackbacks on all your public site! It has a plugin's system if you want to use it to customise your module input's into PingTrax but this isn't required to operate on the system.

There is a smarty function which output a table for the permalink which is or this will output when you put it in your theme the permalink as well as any trackbacks that have been linked to the site.

It utilises preloader events to maintain the pinglists as well as trackbacks; but it also generates your sitemaps as well in xml in the root and alters the robots.txt to reflect the sitemaps. This is all through auto discovery so there is very little you have to do to use this module in base mode. There is also in the the include folder 3 text files which are used in order to specify root names for Id's and identity tags in the $_GET path of the URL in case you need to do some basic customisation without having any knowledge of how to write a plugin's class.

I have attempted too make this module fluid and dynamic so it is easy to implement! It will list your site on the web quickly and effectively, so please download and install it is for XOOPS 2.5 or later.

Downloads

** xoops2.5_pingtrax_1.01.7z - 41.2k
** xoops2.5_pingtrax_1.01.tar.bz2 - 44.6k
** xoops2.5_pingtrax_1.01.zip - 69.3k
** xoops2.5_pingtrax_1.01.tar.gz - 51.1k
** xoops2.5_pingtrax_1.01.zoo - 98.1k
** xoops2.5_pingtrax_1.01.rar - 68.1k

Bug Reports

This is being released for testing purposes, the actual release will be in the news as version 1.02. If you have a bug please use the following form and report it:-https://sourceforge.net/p/chronolabs/tickets/new



72
wishcraft
doing au.labs.coop or marrickiville.au.labs.coop or new-york.us.labs.coop all with places.labs.coop

This is done with the System Preloader places.php

<?php
/**
 * System Preloads
 *
 * You may not change or alter any portion of this comment or credits
 * of supporting developers from this source code or any supporting source code
 * which is considered copyrighted (c) material of the original comment or credit authors.
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 *
 * @copyright   The XOOPS Project http://sourceforge.net/projects/xoops/
 * @license     GNU GPL 2 (http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)
 * @author          Cointin Maxime (AKA Kraven30)
 * @author          Andricq Nicolas (AKA MusS)
 * @version         $Id: core.php 12537 2014-05-19 14:19:33Z beckmi $
 */

// defined('XOOPS_ROOT_PATH') || die('XOOPS root path not defined');

if (!function_exists("getBaseDomain")) {
    
/**
     * getBaseDomain
     *
     * @param string $url
     * @return string|unknown
     */
    
function getBaseDomain($url)
    {

        static 
$fallout$stratauris$classes;

        if (empty(
$classes))
        {
            if (empty(
$stratauris)) {
                
$stratauris cleanWhitespaces(file(XOOPS_ROOT_PATH  DIRECTORY_SEPARATOR .  "data" DIRECTORY_SEPARATOR "stratas.diz"));
                
shuffle($stratauris); shuffle($stratauris); shuffle($stratauris); shuffle($stratauris);
            }
            
shuffle($stratauris);
            
$attempts 0;
            while(empty(
$classes) || $attempts <= (count($stratauris) * 1.65))
            {
                
$attempts++;
                
$classes array_keys(unserialize(getURIData($stratauris[mt_rand(0count($stratauris)-1)] ."/v1/strata/serial.api"120120)));
            }
        }
        if (empty(
$fallout))
        {
            if (empty(
$stratauris)) {
                
$stratauris cleanWhitespaces(file(XOOPS_ROOT_PATH  DIRECTORY_SEPARATOR .  "data" DIRECTORY_SEPARATOR "stratas.diz"));
                
shuffle($stratauris); shuffle($stratauris); shuffle($stratauris); shuffle($stratauris);
            }
            
shuffle($stratauris);
            
$attempts 0;
            while(empty(
$fallout) || $attempts <= (count($stratauris) * 1.65))
            {
                
$attempts++;
                
$fallout array_keys(unserialize(getURIData($stratauris[mt_rand(0count($stratauris)-1)] ."/v1/fallout/serial.api"120120)));
            }
        }

        
// Get Full Hostname
        
$url strtolower($url);
        
$hostname parse_url($urlPHP_URL_HOST);
        if (!
filter_var($hostnameFILTER_VALIDATE_IPFILTER_FLAG_IPV6 || FILTER_FLAG_IPV4) === false)
            return 
$hostname;

            
// break up domain, reverse
            
$elements explode('.'$hostname);
            
$elements array_reverse($elements);

            
// Returns Base Domain
            
if (in_array($elements[0], $classes))
                return 
$elements[1] . '.' $elements[0];
                elseif (
in_array($elements[0], $fallout) && in_array($elements[1], $classes))
                return 
$elements[2] . '.' $elements[1] . '.' $elements[0];
                elseif (
in_array($elements[0], $fallout))
                return  
$elements[1] . '.' $elements[0];
                else
                    return  
$elements[1] . '.' $elements[0];
    }
}


if (!
function_exists("getURIData")) {

    
/* function getURIData()
     *
     *     cURL Routine
     * @author         Simon Roberts (Chronolabs) simon@labs.coop
     *
     * @return         float()
     */
    
function getURIData($uri ''$timeout 65$connectout 65$post_data = array())
    {
        
addTimeLimit($timeout+$connectout);
        if (!
function_exists("curl_init"))
        {
            return 
file_get_contents($uri);
        }
        if (!
$btt curl_init($uri)) {
            return 
false;
        }
        
curl_setopt($bttCURLOPT_HEADER0);
        
curl_setopt($bttCURLOPT_POST, (count($posts)==0?false:true));
        if (
count($posts)!=0)
            
curl_setopt($bttCURLOPT_POSTFIELDShttp_build_query($post_data));
            
curl_setopt($bttCURLOPT_CONNECTTIMEOUT$connectout);
            
curl_setopt($bttCURLOPT_TIMEOUT$timeout);
            
curl_setopt($bttCURLOPT_RETURNTRANSFERtrue);
            
curl_setopt($bttCURLOPT_VERBOSEfalse);
            
curl_setopt($bttCURLOPT_SSL_VERIFYHOSTfalse);
            
curl_setopt($bttCURLOPT_SSL_VERIFYPEERfalse);
            
$data curl_exec($btt);
            
curl_close($btt);
            return 
$data;
    }
}


if (!
function_exists("addTimeLimit")) {
    
/**
     *
     * @param array $array
     */
    
function addTimeLimit($seconds 30)
    {
        static 
$timelimit 30;
        
$timelimit .+ $seconds;
        
set_time_limit($timelimit);
    }
}


if (!
function_exists("cleanWhitespaces")) {
    
/**
     *
     * @param array $array
     */
    
function cleanWhitespaces($array = array())
    {
        foreach(
$array as $key => $value)
        {
            if (
is_array($value))
                
$array[$key] = cleanWhitespaces($value);
                else {
                    
$array[$key] = trim(str_replace(array("n""r""t"), ""$value));
                }
        }
        return 
$array;
    }
}


if (!
function_exists("writeRawFile")) {
    
/**
     *
     * @param string $file
     * @param string $data
     */
    
function writeRawFile($file ''$data '')
    {
        
$lineBreak "n";
        if (
substr(PHP_OS03) == 'WIN') {
            
$lineBreak "rn";
        }
        if (!
is_dir(dirname($file)))
            if (
strpos(' '.$fileENTITIES_CACHE))
                
mkdirSecure(dirname($file), 0777true);
                else
                    
mkdir(dirname($file), 0777true);
                    elseif (
strpos(' '.$fileENTITIES_CACHE) && !file_exists(ENTITIES_CACHE DIRECTORY_SEPARATOR '.htaccess'))
                    
writeRawFile(ENTITIES_CACHE DIRECTORY_SEPARATOR '.htaccess'"<Files ~ "^.*$">ntdeny from alln</Files>");
                    if (
is_file($file))
                        
unlink($file);
                        
$data str_replace("n"$lineBreak$data);
                        
$ff fopen($file'w');
                        
fwrite($ff$datastrlen($data));
                        
fclose($ff);
    }
}
/**
 * Class SystemCorePreload
 */
class SystemPlacesPreload extends XoopsPreloadItem
{
    
/**
     * @param $args
     */
    
function eventCoreIncludeCommonEnd($args)
    {
        if (empty(
$stratauris)) {
            
$placesuris cleanWhitespaces(file(XOOPS_ROOT_PATH  DIRECTORY_SEPARATOR .  "data" DIRECTORY_SEPARATOR "places.diz"));
            
shuffle($placesuris); shuffle($placesuris); shuffle($placesuris); shuffle($placesuris);
        }
        
shuffle($stratauris);
        
xoops_load("XoopsCache");
        if (!isset(
$_SESSION['countries']) || empty($_SESSION['countries']))
        {
            if (!
$countries XoopsCache::read("places_api_countries"))
                
XoopsCache::write("places_api_countries"$countries json_decode(getURIData($placesuris[mt_rand(0count($placesuris)-1)] . '/v1/list/list/json.api'220220), true), 3600 *24 28 2.3);
            if (isset(
$countries['countries']) && !empty($countries['countries']))
            {
                
$_SESSION['countries'] = $countries['countries'];
                
$_SESSION['tlds'] = array();
                foreach(
$countries['countries'] as $country => $values)
                    if (!empty(
$values['TLD']))
                        
$_SESSION['tlds'][str_replace("."""$values['TLD'])] = $values;
            }
        }
        
        
define("XOOPS_HOSTNAME"getBaseDomain(XOOPS_URL));
        
$parts explode(":"str_replace(XOOPS_PROT""XOOPS_URL));
        
$hostname $parts[0];
        if (
$hostname != XOOPS_HOSTNAME)
        {
            
$parts explode("."str_replace(".".XOOPS_HOSTNAME""$hostname));
            
$tld $parts[count($parts)-1];
            unset(
$parts[count($parts)-1]);
            
$place $parts[count($parts)-1];
            if (!isset(
$_SESSION['keys']['places']['tlds'][$tld]) || empty($_SESSION['keys']['places']['tlds'][$tld]))
            {
                
$_SESSION['keys']['places']['tlds'][$tld] = $_SESSION['tlds'][$tld]['key']; 
            } 
            if (isset(
$_SESSION['tlds'][$tld]['key']))
            {
                
define('XOOPS_COUNTRY_KEY'$_SESSION['tlds'][$tld]['key']);
                
define('XOOPS_COUNTRY_NAME'$_SESSION['tlds'][$tld]['Country']);
                
define('XOOPS_COUNTRY_SUBDOMAIN'$tld);
            }
            if (
defined("XOOPS_COUNTRY_KEY") && !empty($place) > 0)
            {
                if (!isset(
$_SESSION['keys']['places']['place'][$place]) && empty($_SESSION['keys']['places']['place'][$place]))
                {
                    
$plae json_decode(getURIData($placesuris[mt_rand(0count($placesuris)-1)] . '/v1/'.XOOPS_COUNTRY_NAME.'/'.str_replace('-'' '$place). '/json.api'220220), true);
                    if (!empty(
$plae))
                        
$_SESSION['keys']['places']['place'][$place]['location'] = $plae;
                    if (!
$nearby XoopsCache::read($key "nearby_places_" XOOPS_COUNTRY_SUBDOMAIN "_" .$place))
                        
XoopsCache::write($key$nearby json_decode(getURIData($placesuris[mt_rand(0count($placesuris)-1)] . '/v1/key/'.$plae['place']['key'].'/' XOOPS_RADIUS_KMS '/json.api'220220), true), 3600 24 mt_rand(1.2343.765));
                    if (!empty(
$nearby['results']['nearby']))
                        
$_SESSION['keys']['places']['place'][$place]['nearby'] = $nearby['results']['nearby'];
                }
                if (isset(
$_SESSION['keys']['places']['place'][$place]) && !empty($_SESSION['keys']['places']['place'][$place]))
                {
                    
define('XOOPS_PLACE_KEY'$_SESSION['keys']['places']['place'][$place]['location']['place']['key']);
                    
define('XOOPS_PLACE_NAME'$_SESSION['keys']['places']['place'][$place]['location']['place']['RegionName']);
                    
define('XOOPS_PLACE_SUBDOMAIN'strtolower(str_replace(" ""-"$_SESSION['keys']['places']['place'][$place]['location']['place']['RegionName'])));
                    
$nearbysubs $nearbykeys $nearbynames = array();
                    if (!empty(
$_SESSION['keys']['places']['place'][$place]['nearby']))
                        foreach(
$_SESSION['keys']['places']['place'][$place]['nearby']['places'] as $country => $values)
                            foreach(
$values as $key => $place)
                            {
                                
$nearbykeys[$key] = $key;
                                
$nearbysubs[$key] = strtolower(str_replace(" ""-"$place['RegionName']));
                                
$nearbynames[$key] = $place['RegionName'];
                            }
                    
define('XOOPS_NEARBY_KEYS'implode(','$nearbykeys));
                    
define('XOOPS_NEARBY_NAMES'implode(','$nearbynames));
                    
define('XOOPS_NEARBY_SUBDOMAINS'implode(','$nearbysubs));
                }
            }        
        }
    }
}


You also have to adjust the mainfile.php line 43:

// XOOPS Virtual Path (URL)
    // Virtual path to your main XOOPS directory WITHOUT trailing slash
    // Example: define('XOOPS_URL', 'http://alluringwhores.com:8080');
    
define('XOOPS_URL'XOOPS_PROT.$_SERVER["HTTP_HOST"]);


You can then alter your theme.html from your theme where evere the <title/> tag is called to something like:-

<title><{if defined('XOOPS_PLACE_NAME') }><{$smarty.const.XOOPS_PLACE_NAME}> :: <{/if}><{if $xoops_pagetitle !=''}><{$xoops_pagetitle}> :: <{/if}><{$xoops_sitename}><{if defined('XOOPS_COUNTRY_NAME') }> ::: <{$smarty.const.XOOPS_COUNTRY_NAME}><{/if}></title>


And make various alterations around the system due to the accurate places data.



73
wishcraft
Complexity Theme v1.3.1 Final Release for XOOPS 2.5

Resized Image


Chronolabs Cooperative Proudly Presents

for XOOPS 2.5
Complexity Theme v1.3.1

Resized Image



Introduction to Complexity Theme

Complexity is a complete theme, it includes features that need to be studied by theme designer to be incorporated into their theme designs including the following features:~

  • Social Network Meta Tags
  • Anti-keyword Stuffing (SEO)
  • iOS Iconographic Tags (So Icons Appear on iPhone all macintosh)
  • CSS3 Gradients and Highlights
  • CSS3 Rounded Edges
  • CSS3 Text and Object Shadows
  • Correct File Implementations
  • No Jugganaut Single CSS use of @import()


This theme was developed for the love of the XOOPS Community and broader themery; to explain some of the features I will first go into meta tagging for facebook and third party references to the site you have to include in your meta tags the following lines, to force your site logo if there is no image as well as in the google index and search engines they are:-

<meta property="og:title" content=""/>
<
meta property="og:type" content=""/>
<
meta property="og:image" content=""/>
<
meta property="og:url" content="" />
<
meta property="og:site_name" content=""/>


As well as the apple touch icon meta tags in the icons, these are in particular sizes and need to be PNG images for all touch buttons like book marks and save references in macintosh; otherwise you get the default icon, these three lines are:-

<link rel="apple-touch-icon" href="">
<
link rel="apple-touch-icon" sizes="72x72" href="">
<
link rel="apple-touch-icon" sizes="114x114" href="">


There is also the following code in the meta keyword which stops keyword stuffing, that is the repeatative use of the same keywords on every page of your site this will lower you SEO Score with search engines the following code you will find in the meta template in the theme:-

<meta name="keywords" content="<{php}>
    
$search = array(' with ', ' and ', ' the ', ' there ', ' their ', ' they're ', ' are ', ' to ', ' when ', ' on ', ' by ', ' you ',' ','.','<','>','"',';',':','}','{','[',']','|','\','/','=','+','-','_',')','(','*','&','^','%','$','#','@','!','~','`');
    
$minimumwordlen 3;        
    
// Gets Meta Data
    
$path str_replace($search','str_replace(basename($_SERVER['REQUEST_URI']), ''$_SERVER['REQUEST_URI']));
    
$sitename htmlspecialchars_decode($this->_tpl_vars['xoops_sitename']);
    
$slogon htmlspecialchars_decode($this->_tpl_vars['xoops_slogan']);
    
$pagetitle htmlspecialchars_decode($this->_tpl_vars['xoops_pagetitle']);
    
$keywords htmlspecialchars_decode($this->_tpl_vars['xoops_meta_keywords']);
    
$description htmlspecialchars_decode($this->_tpl_vars['xoops_meta_description']);
    
// Makes Unique Keyword Sentence with NO KEYPHRASES - A KEY PHRASE IS AN INCORRECT USE OF THE META TAG 'KEYWORDS' that is singlar words a KEYWORD not a sentence or phrase
    
$nophrase str_replace($search','$path.str_replace($search','$sitename).','.str_replace($search','$slogon).','.str_replace($search','$pagetitle).','.str_replace($search','$keywords).','.str_replace($search','$description));
    
$keywords array_unique(explode(','$nophrase));
    foreach(
$keywords as $id => $word) {
        if (
strlen($word)<$minimumwordlen||is_numeric($word)) {
            unset(
$keywords[$id]);
        }
    }
    echo 
implode(', '$keywords);<{/php}>" />


Download Complexity Theme

* xoops2.5_theme_complexity.7z ~ 35Mb
* xoops2.5_theme_complexity.rar ~ 35Mb
* xoops2.5_theme_complexity.tar.gz ~ 35Mb
* xoops2.5_theme_complexity.zip ~ 35Mb
* xoops2.5_theme_complexity.iso ~ 35Mb

Reporting Complexity Theme Bug

If you do find a bug in the theme and need it fixed please used our tickets support on sourceforge at the following URL:~http://sourceforge.net/p/chronolabs/tickets/milestone/XOOPS%20Themes/



74
wishcraft
Re: Support for Chronolabs Modules (XOOPS 2.5 / 2.6)

That is the module I will be adjusting to XOOPS 2.6 standard; if I get a chance to do any other that where not legacy like the API's by X-Rest; I will; I just injured myself with a sever RSI injury 18 month ago and I was unable to move off the sofa for 12 months; so i am limiting myself at the moment too programming 2 days a week so I don't re-injure myself..



75
wishcraft
Signed 2.2RC Module - Translation Project

Resized Image
Signed 2.2RC Module - Translation Project


This module is to be translated in the supporting groups for final candidate packaging for the XOOPS SVN, once you have done the translation the translated signature files as well as the language files have to be package and sent to simon@staff.labs.coop with any comments or changes that needed to happen outside any core language folded file-base.

You can connect to the Author of the module with Skype on the account: antony.cipher – this is if you have any question or comments for the module! But please read the PDF before you do contact incase it answers any questions

Please notify either by email and wait for confirmation as a translator, as you will eventually once final packaging being done noted in the code stamp as one of the authors; which you can also do in the resource files.

Module Download: ~~~::[ *.7z ! *.rar ! *.tar.gz ! *.tar.bz2 ! *.zip ! *.tar ! *.bz2 ! *.rar5 ! *.jar ]::~~~

XOOPS SVN:https://sourceforge.net/p/xoops/svn/HEAD/tree/XoopsModules/signed/



Folder's for Translation
Quote:
xoops2.5_signed_2.2RC.tar.gz
+ modules / signed / language / english (translate folder)
+ xoops_lib / modules / signed / processes / english (translate folder)



76
wishcraft
Re: XOOPS Signed 2.1.9 ~ Final Major Release Candidate (Testing and Translations Required!!)

I also completed the suffix and prefix to names... like dishonourable cause you might been that or need that for a hive your a part of in httpx:// xll+ssh://



77
wishcraft
Re: XOOPS Signed 2.1.9 ~ Final Major Release Candidate (Testing and Translations Required!!)

Yes we have heard of people with signed generating other certificate sequences just with the I-Ching XCP Checksum laid as so as the code is now just in the length it is and it dilettantes the lock for the certificate... yes yes that all true dsh!



78
wishcraft
Re: XOOPS Signed 2.1.9 ~ Final Major Release Candidate (Testing and Translations Required!!)

Sure no worries, it has been a write up to versions unheard of before!!! 2.2 RC is the first release candidate we have asked for general testing...

See this URL:http://cipher.labs.coop/portfolio/signed-identification-validations-and-signer-for-xoops/

If people could start doing translations of the processes, this is to remain primarily a file store as the data is multiversal and the file base will be able to save all character escape sequences as well as all the file stores are text file base store so it eill transposer...



79
wishcraft
I am continuing with Please - Email Ticketer Tonight and rest of the week

I am continuing this week and will hopefull by wednesday next week have a working system for Please ::https://sourceforge.net/p/xoops/svn/HEAD/tree/XoopsModules/please/trunk/

This will be a complete email ticketer with level one and level two in mantisBT API via IMAP, so tonight you don't have to worry about request tracker some of the features will include:

  • Departments
  • Flow Filtering
  • Keyword Assignment
  • Smart Email Cleaning
  • Knowledge base wiki


Anyway, any features you can think of for an email ticketed for SUPPORT and Business Contact, please answer this thread and I will add the features!!



80
wishcraft
Re: Xoops 2.5: Complexity Theme v1.2.8

Only alteration i could see being done to it is this line in the keyword stuff to replace the search and remove function with a writable text file which would be

Quote:

$search = array(' with ', ' and ', ' the ', ' there ', ' their ', ' they\'re ', ' are ', ' to ', ' when ', ' on ', ' by ', ' you ',' ','.','','"',';',':','}','{','[',']','|','\\','/','=','+','-','_',')','(','*','&','^','%','$','#','@','!','~','`');


to something like

Quote:

$search = explode("\n", str_replace(array("\R\n", "\n\r", "\n\n", "\n\n\n"), "\n", file_get_contents(__DIR__ . "/search-replace.txt")));


You would have to create /themes/complexity/xotpl/search-replace.txt that contains for example the following data seperated by a line~feed.

Quote:

with
and
the
there
their
they\'re
are
to
when
on
by
you

.
,
"
'
;
:
<
>
}
{
[
]
|
\
/
=
+
-
_
)
(
*
&
^
%
$
#
@
!
~
`




TopTop
« 1 ... 5 6 7 (8) 9 10 11 ... 135 »



Login

Who's Online

121 user(s) are online (89 user(s) are browsing Support Forums)


Members: 0


Guests: 121


more...

Donat-O-Meter

Stats
Goal: $100.00
Due Date: Apr 30
Gross Amount: $0.00
Net Balance: $0.00
Left to go: $100.00
Make donations with PayPal!

Latest GitHub Commits