Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
Prog
/
Serrure
/
VirtualKeyboard.compact.3.7.2
/
setup
:
setup.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php /** * $Id: setup.php 753 2011-05-05 20:35:49Z wingedfox $ * * Keyboard setup script * * This software is protected by patent No.2009611147 issued on 20.02.2009 by Russian Federal Service for Intellectual Property Patents and Trademarks. * * @author Ilya Lebedev * @copyright 2006-2011 Ilya Lebedev <ilya@lebedev.net> * @version $Rev: 753 $ * @lastchange $Author: wingedfox $ $Date: 2011-05-06 00:35:49 +0400 (Fri, 06 May 2011) $ */ header("Content-Type: text/html; charset=utf-8"); require "vk.inc.php"; define ('LAYOUT_ROOT', dirname(__FILE__)."/in/"); define ('LAYOUT_EXT', '.klc'); define ('LAYOUT_MASK', '*'.LAYOUT_EXT); define ('LAYOUT_OUT_FOLDER', dirname(__FILE__)."/out/"); define ('DICTIONARY_OUT_FOLDER_NAME', "d/"); define ('DICTIONARY_OUT_FOLDER', LAYOUT_OUT_FOLDER.DICTIONARY_OUT_FOLDER_NAME); define ('LAYOUT_OUT', LAYOUT_OUT_FOLDER."layouts.js"); define ('LAYOUT_REPORT', dirname(__FILE__)."/out/layouts.tsv"); define ('LAYOUT_INSTALL', dirname(__FILE__)."/../layouts/layouts.js"); /* * prepare layouts file; */ $VK_ADDONS = array(); /** * Converts plaintext keyboard layout to the valid javascript code and saves it * * @param VirtualKeyboardLayout $f layout object * @return boolean conversion state * @scope public */ function convertKbd(&$f) { global $VK_ADDONS; $addon = $f->getAddon(); $aname = basename($addon); $fname = $f->getFilename().'.js'; if (!empty($addon)) { copy($addon, DICTIONARY_OUT_FOLDER.$aname); } $data = ''."VirtualKeyboard.addLayout(".$f->serialize($_REQUEST['group']).");"; $fd = fopen (LAYOUT_OUT_FOLDER.$fname, "w"); fwrite($fd, $data); fclose($fd); return $f->serializeHeader($_REQUEST['group']); } function getLayoutList () { return glob(LAYOUT_ROOT.LAYOUT_MASK); } ?> <html> <head> <title>Virtual Keyboard layouts setup page</title> <style type="text/css"> table { padding: 0; border-collapse: collapse; } th { text-align: left; } tr.odd td { background: #f4f4f4; } </style> </head> <body> <p>Keyboard layouts setup</p> <form action="" method="POST" > <div> <div style="height: 400px; overflow: auto; border: 1px inset black;"> <table id="targetkbd" border="0"> <thead> <tr> <th><input type="checkbox" onclick="var els=this.parentNode.parentNode.parentNode.parentNode.tBodies[0].getElementsByTagName('input'); for(var i=0, eL=els.length; i<eL; i++) els[i].checked=this.checked;"></th> <th>Layout Code</th> <th>Layout Name</th> <th>Copyright</th> <th>Saved</th> </tr> </thead> <tbody> <?php @unlink(LAYOUT_OUT_FOLDER); @mkdir(LAYOUT_OUT_FOLDER); @mkdir(DICTIONARY_OUT_FOLDER); $layouts = array(); $report = array(); $kbdl = getLayoutList(); $saved = false; for ($i=0;$i<sizeof($kbdl);$i++) { $kl = new VirtualKeyboardLayout($kbdl[$i]); $kl->setAddonFolder(DICTIONARY_OUT_FOLDER_NAME); $cname = str_replace(".","_",urlencode($kl->name)); $cls = $i%2?"even":"odd"; $checked = isset($_POST[$cname])?'checked="true"':''; if (isset($_POST[$cname])) { $saved = "<span style=\"color:green\">Yes</span>"; // "<span style=\"color:red\">No</span>" $layouts[] = convertKbd($kl); $report[] = $kl->getCode()."\t".$kl->getName()."\t".$kl->getCopyright(); } else { $saved = "<span></span>"; } ?> <tr class="<?php echo($cls)?>"> <td><input type="checkbox" name="<?php echo($cname)?>" <?php echo($checked)?> /></td> <td><?php echo($kl->getCode())?></td> <td><?php echo($kl->getName())?></td> <td><?php echo($kl->getCopyright())?></td> <td><?php echo($saved)?></td> </tr> <?php } if (!empty($layouts)) { $s = join("\n",$VK_ADDONS); $s .= "VirtualKeyboard.addLayoutList(\n".join(",\n",$layouts)."\n);"; // save layout @unlink(LAYOUT_OUT); $fd = fopen(LAYOUT_OUT,"ab"); fwrite($fd,''); fwrite($fd,$s); fclose($fd); // save report @unlink(LAYOUT_REPORT); $fd = fopen(LAYOUT_REPORT,"ab"); fwrite($fd,join("\r\n",$report)); fclose($fd); if (isset($_POST['doinstall'])) { $inst_res = 1; if (file_exists(LAYOUT_INSTALL)) $inst_res = 2; else $inst_res = @copy(LAYOUT_OUT, LAYOUT_INSTALL); } } ?> </tbody> </table> </div> <label for="install">Install layouts<input type="checkbox" name="doinstall" /></label> <?php if (isset($inst_res)) { ?> <?php if (1==$inst_res) {?> <span style="color: green">success</span> <?php } else { ?> <span style="color: red">error: <?php echo ($inst_res==0?"New layout file is not accessible. Have you selected any layouts to install?" :"Target file (<b>/layouts/layouts.js</b>) is already exists, remove it before installing new one.")?></span> <?php } ?> <?php } ?> <br /> <strong>Group languages by</strong><br /> <label for="group1"><input type="radio" name="group" id="group1" value="lng" checked="true" />Language code (en-<strong>US</strong>)</label> <label for="group2"><input type="radio" name="group" id="group2" value="domain" />Language domain (<strong>en</strong>-US)</label> <br /> <br /> <input type="submit" value="Process selected" /> </div> </form> </body> </html>