private function generateCodes()
{
mkdir($this->tmpName . '/datas/sources/', 0755);
$filesList = $this->datastore->getRow('files');
$files = '';
foreach ($filesList as $row) {
$id = str_replace('/', '_', $row['file']);
$subdirs = explode('/', dirname($row['file']));
$dir = $this->tmpName . '/datas/sources';
foreach ($subdirs as $subdir) {
$dir .= '/' . $subdir;
if (!file_exists($dir)) {
mkdir($dir, 0755);
}
}
$source = show_source(dirname($this->tmpName) . '/code/' . $row['file'], true);
$files .= '<li><a href="#" id="' . $id . '" class="menuitem">' . htmlentities($row['file'], ENT_COMPAT | ENT_HTML401, 'UTF-8') . "</a></li>\n";
file_put_contents($this->tmpName . '/datas/sources/' . $row['file'], substr($source, 6, -8));
}
$blocjs = <<<JAVASCRIPT
<script src="facetedsearch.js"></script>
<script>
"use strict";
\$('.menuitem').click(function(event){
\$('#results').load("sources/" + event.target.text);
\$('#filename').html(event.target.text + ' <span class="caret"></span>');
});
var fileParam = window.location.search.split('file=')[1];
if(fileParam !== undefined) {
\$('#results').load("sources/" + fileParam);
\$('#filename').html(fileParam + ' <span class="caret"></span>');
}
</script>
JAVASCRIPT;
$html = $this->getBasedPage('codes');
$html = $this->injectBloc($html, 'BLOC-JS', $blocjs);
$html = $this->injectBloc($html, 'FILES', $files);
$this->putBasedPage('codes', $html);
}