<?php class NP_Text extends NucleusPlugin { var $incModePref = array(); var $errorLogged = false; var $constantPrefix = "SL_"; function getEventList() { return array('PreSkinParse'); } function getName() { return 'Text'; } function getAuthor() { return 'Armon Toubman'; } function getURL() { return 'http://forum.nucleuscms.org/viewtopic.php?t=14904'; } function getVersion() { return '0.53'; } function getDescription() { return 'Display constants from language files: <%Text(CONSTANT)%>'; } function supportsFeature($feature) { switch($feature) { case 'SqlTablePrefix': return 1; default: return 0; } } function install() {} function uninstall() {} function init() { $this->incModePref = $this->skin_incmodepref(); } function event_PreSkinParse() { global $member; if( !$member->isLoggedIn() and isset($_GET['lang']) ) { setcookie('NP_Text', getVar('lang'), time()+60*60*24*90); // 3 months } } function doSkinVar(&$skinType, $constant) { global $member, $CONF; $language = getLanguageName(); $getLanguage = isset($_GET['lang']) ? getVar('lang') : false; $cookieLanguage = isset($_COOKIE['NP_Text']) ? cookieVar('NP_Text') : false; // if( !$member->isLoggedIn() ) { if( $getLanguage ) { $this->use_lang($getLanguage, $constant); } elseif( $cookieLanguage ) { $this->use_lang($cookieLanguage, $constant); } else { $this->use_lang($language, $constant); } // } // else { // $this->use_lang($language, $constant); // } } function doTemplateVar(&$item, $constant) { global $member, $CONF; $language = getLanguageName(); $getLanguage = isset($_GET['lang']) ? getVar('lang') : false; $cookieLanguage = isset($_COOKIE['NP_Text']) ? cookieVar('NP_Text') : false; // if( !$member->isLoggedIn() ) { if( $getLanguage ) { $this->use_lang($getLanguage, $constant); } elseif( $cookieLanguage ) { $this->use_lang($cookieLanguage, $constant); } else { $this->use_lang($language, $constant); } // } // else { // $this->use_lang($language, $constant); // } } function use_lang($language, $constant) { global $DIR_SKINS; $filename = ''; if( $this->incModePref[0] == "normal" ) { $filename = $filename.$this->incModePref[1]; $filename = $filename."language/"; $filename = $filename.$language; $filename = $filename.".php"; } elseif( $this->incModePref[0] == "skindir" ) { $filename = $filename.$DIR_SKINS; $filename = $filename.$this->incModePref[1]; $filename = $filename."language/"; $filename = $filename.$language; $filename = $filename.".php"; } if( is_file($filename) ) { include($filename); } else { addToLog(1, "NP_Text cannot find ".$filename); } if( defined($this->constantPrefix.$constant) ) { echo constant($this->constantPrefix.$constant); } else { echo $this->constantPrefix.$constant; if( is_file($filename) ) { addToLog(1, "NP_Text cannot find definition for ".$this->constantPrefix.$constant." in ".$filename); } } } function skin_incmodepref() { global $currentSkinName; $sql = "SELECT * FROM ".sql_table("skin_desc")." WHERE sdname = '".$currentSkinName."'"; $result = mysql_query($sql); $row = mysql_fetch_array($result, MYSQL_ASSOC); return array($row['sdincmode'], $row['sdincpref']); } } ?>