tplPath = ABSPATH."wp-content/plugins/anyfont/tpl"; $this->readFontDir(); if(is_array($config) && isset($config['page'])){ $this->page = $config['page']; $this->page_title = $config['title']; $this->get_page(); } } function printPage(){ print($this->page_html); } function getStyleBlock($style, $option){ $url = get_bloginfo('wpurl'); $tpl = new fastTPL($this->tplPath); $tpl->define(array("styles_block" => "styles_block.html")); $tpl->assign('STYLE_NAME', $style); $tpl->assign('STYLE_NAME_ID', str_replace(" ", "_", $style)); $tpl->assign('PREVIEW_URL', $url."/images/$style/$style.png"); $options = "
"; $tpl->assign('DELETE_ICON', ANYFONT_URL."/img/icon-delete.png"); $tpl->assign('EDIT_ICON', ANYFONT_URL."/img/icon-edit.png"); $tpl->assign('OPTIONS', $options); return $tpl->fetchParsed("styles_block"); } function get_page(){ $url = get_bloginfo('wpurl'); $jslang_array = array( "del_style_note" => __("Please note that once a style is deleted, any generated images that are assosiated with the style will no longer load.", 'anyfont'), "chk_del_style" => __("Are you sure you want to delete this style?", 'anyfont'), "chk_del_styles" => __("Are you sure you want to delete the selected styles?", 'anyfont'), "msg_del_fonts" => __("Deleting Selected Fonts...", 'anyfont'), "msg_del_styles" => __("Deleting Selected Styles...", 'anyfont'), "msg_del" => __("Deleting", 'anyfont'), "err_select_font" => __("No Fonts Selected!", 'anyfont'), "err_select_style" => __("No Styles Selected!", 'anyfont'), "chk_clear_cache" => __("Are you sure you want to clear the cache?", 'anyfont'), "msg_clear_cache" => __("Clearing the cache...", 'anyfont'), "msg_no_images" => __("no images", 'anyfont'), "msg_upload_success" => __("was uploaded successfully", 'anyfont'), "err_upload_failed" => __("Upload Failed:", 'anyfont'), "err_saving_style" => __("Save Failed! Please ensure that the font folder and all files inside are writable by the webserver.", 'anyfont'), "msg_saved_style" => __("Style has been saved.", 'anyfont'), "msg_saving_style" => __("Saving Style...", 'anyfont'), "msg_upload_start" => __("Uploading Font...", 'anyfont'), "msg_saving_settings" => __("Saving Settings...", 'anyfont') ); if (function_exists('json_encode')) { $jslang = json_encode($jslang_array); } else { require_once(ANYFONT_ROOT.'/lib/class.json.php'); $JSON = new serviceJSON(); $jslang = $JSON->encode($jslang_array); } $this->tpl = new fastTPL($this->tplPath); $this->tpl->define(array($this->page => "{$this->page}.html", "header" => "header.html", "footer" => "footer.html", )); $this->tpl->assign("STYLE", file_get_contents(ANYFONT_ROOT."/styles.css")); $this->tpl->assign("URL", $url."/"); $this->tpl->assign("JSLANG", $jslang); $this->tpl->assign("ICON_CLASS", $this->page); $this->tpl->assign("PAGE_TITLE", "AnyFont - ".$this->page_title); $this->tpl->assign("HEADER", $this->tpl->fetchParsed("header")); switch($this->page){ case 'settings': $this->getSettings(); break; case 'fonts': $this->getFonts(); break; case 'styles': $this->getStyles(); break; } $this->tpl->assign("FOOTER", $this->tpl->fetchParsed("footer")); $this->page_html = $this->tpl->fetchParsed($this->page); } function getSettings(){ $cachedir = ANYFONT_CACHE; $totalsize = 0; $imagecount = 0; if(!is_dir($cachedir)){ return false; } else { $dir = opendir($cachedir); while ($file = readdir($dir)) { $fileinfo = explode(".", $file); if ($fileinfo[1] == "png") { $imagecount++; $totalsize += filesize($cachedir."/".$file); } } } $imageplural = $imagecount == 1 ? " image" : " images"; $isare = $imagecount == 1 ? "is" : "are"; $imagecount == 0 ? $imagecount = "no" : 0; $opt = array("auto(Default)" => "auto", "gd" => "php4", "imagick" => "php5"); $imageopt = ""; foreach($opt as $mod => $val){ $selected = ($val == AF_IMAGE_MODULE) ? "selected=\"selected\"" : ""; if($val == "auto"){ $imageopt .= ""; }else if(extension_loaded($mod)){ $imageopt .= ""; } } $this->isReplaceEnabled(AF_PAGE_TITLE, "PAGE"); $this->isReplaceEnabled(AF_POST_TITLE, "POST"); $this->isReplaceEnabled(AF_WIDGET_TITLE, "WIDGET"); $this->isReplaceEnabled(AF_DISABLE_HOTLINKING, "DISABLE_HOTLINKING"); $this->tpl->assign("REPLACE_H2", __("Replace Text Titles", 'anyfont')); $this->tpl->assign("IMAGE_H2", __("Image Cache", 'anyfont')); $this->tpl->assign("ADVANCED_H2", __("Advanced Settings", 'anyfont')); $this->tpl->assign("ADVANCED_MSG", __("It is recommended that the following options are left on their default settings.", 'anyfont')); $this->tpl->assign("HELP_MSG", __("To replace certain plain text titles with images in your wordpress blog, enable the appropriate section below and then assign it one of your styles.", 'anyfont')); $this->tpl->assign("SEO_NOTE", __("Both the post title and the page title image replacements are SEO compatible.", 'anyfont')); $this->tpl->assign("DISCLAIMER", __("NOTE: These options may not be compatible with ALL themes and/or custom widgets.", 'anyfont')); $this->tpl->assign("DISCLAIMER_CONT", __("If you encounter any problems, Please check the FAQ for known issues with certain themes, check with the developer of your theme, or contact me for assistance.", 'anyfont')); $this->tpl->assign("POST_TITLE_STYLES", $this->titleStyleConfig(AF_POST_TITLE_STYLE)); $this->tpl->assign("PAGE_TITLE_STYLES", $this->titleStyleConfig(AF_PAGE_TITLE_STYLE)); $this->tpl->assign("WIDGET_TITLE_STYLES", $this->titleStyleConfig(AF_WIDGET_TITLE_STYLE)); $this->tpl->assign("IMAGE_MODULE_OPTIONS", $imageopt); $this->tpl->assign("URL", WP_ADMIN_URL."/admin.php?page=anyfont-styles"); $this->tpl->assign("IMAGE_COUNT", $imagecount.$imageplural); $this->tpl->assign("ISARE", $isare); $this->tpl->assign("TOTAL_SIZE", $this->bytecalc($totalsize)); } function isReplaceEnabled($section, $assign){ if($section){ $this->tpl->assign("{$assign}_CHECKED", "checked=\"checked\""); } else { $this->tpl->assign("{$assign}_DISABLED", "disabled=\"disabled\""); } } function titleStyleConfig($section){ $styles = parse_ini_file(ANYFONT_FONTDIR."/styles.ini", true); $styleoptions = ''; foreach($styles as $style => $option){ if($style != "admin"){ $selected = $style == $section ? "selected=\"selected\"" : ''; $styleoptions .= ""; } } return $styleoptions; } function getFonts(){ $list = ""; $tpl = new fastTPL($this->tplPath); $tpl->define(array("font_block" => "fonts-block.html")); $this->readFontDir(); foreach($this->fontlist as $name){ $urlname = $name; $tpl->assign('FONT_NAME', $name); $tpl->assign('FONT_URL', get_bloginfo('wpurl')."/images/admin/$urlname.png"); $tpl->assign('DELETE_ICON', ANYFONT_URL."/img/icon-delete.png"); $list .= $tpl->fetchParsed("font_block"); } $this->tpl->assign("FONTS", $list); $this->tpl->assign("UPLOAD_URL", ANYFONT_URL."/upload.php"); } function readFontDir() { $fontdir = ANYFONT_FONTDIR; $this->fontlist = array(); if(!is_dir($fontdir)){ return false; } else { $dir = opendir($fontdir); while ($file = readdir($dir)) { $fileinfo = explode(".", $file); if ($fileinfo[1] == "ttf") { array_push($this->fontlist, $fileinfo[0]); } } } } function getStyles(){ $styles = ""; $settings = parse_ini_file(ANYFONT_FONTDIR."/styles.ini", true); foreach($settings as $style => $option){ if($style != "admin"){ $styles.=$this->getStyleBlock($style, $option); } } $new_style = "