function viewfolder($folderid, $userid, $level) { $prefix = ""; for ($i = 0; $i < $level; $i++) { $prefix .= ">"; } $fileprefix = $prefix . ">"; if ($folderid == -1) { $body = <<<END <option value="">ROOT</option> END; } else { $current_folder = get_record('file_folders', 'owner', $userid, 'ident', $folderid); $name = strtoupper(stripslashes($current_folder->name)); $body = <<<END <option value="">{$prefix} {$name}</option> END; } if ($files = get_records_select('files', "owner = ? AND folder = ?", array($userid, $folderid))) { foreach ($files as $file) { $filetitle = stripslashes($file->title); $body .= <<<END <option value="{$file->ident}">{$fileprefix} {$filetitle}</option> END; } } if ($folders = get_records_select('file_folders', "owner = ? AND parent = ? ", array($userid, $folderid))) { foreach ($folders as $folder) { $body .= viewfolder($folder->ident, $userid, $level + 1); } } return $body; }
function viewfolder($folderid, $userid, $level, $selected = -1) { $prefix = ""; for ($i = 0; $i < $level; $i++) { $prefix .= ">"; } $fileprefix = $prefix . ">"; $folders = get_records_select('file_folders', "files_owner = ? AND parent = ?", array($userid, $folderid)); if ($folderid == -1) { $body = "<option value=\"-1\" "; if ($selected == -1) { $body .= "selected = \"selected\""; } $root = __gettext("Root"); $body .= ">{$root}</option>"; } else { $current_folder = get_record('file_folders', 'files_owner', $userid, 'ident', $folderid); $name = stripslashes($current_folder->name); $ident = $current_folder->ident; if ($ident == $selected) { $selectstring = "selected=\"selected\""; } else { $selectstring = ""; } $body = <<<END <option value="{$ident}" {$selectstring} >{$prefix} {$name} </option> END; } if (!empty($folders)) { foreach ($folders as $folder) { $body .= viewfolder($folder->ident, $userid, $level + 1, $selected); } } return $body; }
function viewfolder($folderid, $userid, $level, $selected = -1) { $prefix = ""; for ($i = 0; $i < $level; $i++) { $prefix .= ">"; } $fileprefix = $prefix . ">"; $folders = db_query("select * from " . tbl_prefix . "file_folders where files_owner = {$userid} and parent = {$folderid}"); if ($folderid == -1) { $body = "<option value=\"-1\" "; if ($selected == -1) { $body .= "selected = \"selected\""; } $body .= ">Root</option>"; } else { $current_folder = db_query("select ident, name from " . tbl_prefix . "file_folders where files_owner = {$userid} and ident = {$folderid}"); $name = stripslashes($current_folder[0]->name); $ident = $current_folder[0]->ident; if ($ident == $selected) { $selectstring = "selected=\"selected\""; } else { $selectstring = ""; } $body = <<<END \t\t\t\t\t<option value="{$ident}" {$selectstring} >{$prefix} {$name} </option> END; } if (sizeof($folders) > 0) { foreach ($folders as $folder) { $body .= viewfolder($folder->ident, $userid, $level + 1, $selected); } } return $body; }
function viewfolder($folderid, $userid, $level) { $prefix = ""; for ($i = 0; $i < $level; $i++) { $prefix .= ">"; } $fileprefix = $prefix . ">"; if ($folderid == -1) { $body = <<<END <option value="">ROOT</option> END; } else { $current_folder = get_record('file_folders', 'owner', $userid, 'ident', $folderid); $textlib = textlib_get_instance(); $name = htmlspecialchars($textlib->strtoupper($current_folder->name)); $body = <<<END <option value="" title="Folder">{$prefix} {$name}</option> END; } if ($files = get_records_select('files', "owner = ? AND folder = ?", array($userid, $folderid))) { foreach ($files as $file) { $filetitle = htmlspecialchars($file->title); $filename = htmlspecialchars($file->originalname); if (run("users:access_level_check", $file->access)) { $body .= <<<END <option value="{$file->ident}" title="{$filename}">{$fileprefix} {$filetitle}</option> END; } } } if ($folders = get_records_select('file_folders', "owner = ? AND parent = ? ", array($userid, $folderid))) { foreach ($folders as $folder) { if (run("users:access_level_check", $folder->access)) { $body .= viewfolder($folder->ident, $userid, $level + 1); } } } return $body; }
function viewfolder($folderid, $userid, $level) { $prefix = ""; for ($i = 0; $i < $level; $i++) { $prefix .= ">"; } $fileprefix = $prefix . ">"; if ($folderid == -1) { $body = <<<END \t\t\t\t<option value="">ROOT</option> END; } else { $current_folder = db_query("select name from " . tbl_prefix . "file_folders where owner = {$userid} and ident = {$folderid}"); $name = strtoupper(stripslashes($current_folder[0]->name)); $body = <<<END \t\t\t\t\t<option value="">{$prefix} {$name}</option> END; } $files = db_query("select * from " . tbl_prefix . "files where owner = {$userid} and folder = {$folderid}"); if (sizeof($files) > 0) { foreach ($files as $file) { $name = stripslashes($file->name); $filetitle = stripslashes($file->title); $body .= <<<END \t\t\t\t\t \t\t\t\t\t<option value="{$file->ident}">{$fileprefix} {$filetitle}</option> END; } } $folders = db_query("select * from " . tbl_prefix . "file_folders where owner = {$userid} and parent = {$folderid}"); if (sizeof($folders) > 0) { foreach ($folders as $folder) { $body .= viewfolder($folder->ident, $userid, $level + 1); } } return $body; }
function folio_page_edit($page, $permissions, $page_title, $username, $parentpage_ident = -1) { global $CFG; global $profile_id; global $language; global $page_owner; global $metatags; if (!$page && !isloggedin()) { // We don't allow non-logged in users to create new pages error('You can not create a new page without logging in.'); } elseif (!$page) { // Set values for the new page. // @TODO: Find a better random method, or at least verify that the page doesn't already exist. // Generate a new value for the page key. // If we change this, also update the stuff in lib that creates a new record. $page_ident = rand(1, 999999999); // If this page is being created because of a hyperlink, then we // already know what it should be named. If not, then // set to something that obviously needs to be changed. if (!strlen($page_title) > 0) { $title = 'New Page Title'; } else { $title = $page_title; } $body = 'Create your new page here!'; // Translate passed username into a user ident. $user_ident = folio_finduser($username); if (!$user_ident) { error('mod\\folio\\control\\page_edit.php was called without a username parameter ' . "or with an invalid one ({$username})"); } $user_ident = $user_ident->ident; $page = new StdClass(); $page->page_ident = $page_ident; $page->title = $title; $page->body = $body; $page->security_ident = $page_ident; $page->parentpage_ident = $parentpage_ident; $page->user_ident = $user_ident; $username = $username; } else { // Clean DB Entries, making them suitable for displaying. $page_ident = intval($page->page_ident); $body = stripslashes($page->body); $title = stripslashes($page->title); $parentpage_ident = intval($page->parentpage_ident); $security_ident = intval($page->security_ident); $user_ident = intval($page->user_ident); } // Include javascript for the tinymce rich editor. // Lose the trailing slash $url = substr(url, 0, -1); //get current language if (empty($CFG->userlocale)) { $lang = substr($CFG->defaultlocale, 0, 2); } elseif (is_array($CFG->userlocale)) { $lang = substr($CFG->userlocale[0], 0, 2); } else { $lang = substr($CFG->userlocale, 0, 2); } $metatags .= <<<END \t\t<SCRIPT type="text/javascript" src="{$url}/mod/folio/control/yav1_2_3/js_compact/yav.js"></SCRIPT> \t\t<SCRIPT type="text/javascript" src="{$url}/mod/folio/control/yav1_2_3/js_compact/yav-config.js"></SCRIPT> \t <script language="javascript" type="text/javascript" src="{$url}/_tinymce/jscripts/tiny_mce/tiny_mce.js"></script> \t\t \t <script language="javascript" type="text/javascript"> \t\t tinyMCE.init({ \t\t // General options \t\t\tmode : "exact", \t\t\telements : "page_body", \t\t\tplugins : "safari,pagebreak,table,save,advhr,advimage,emotions,iespell,inlinepopups,media,paste,fullscreen,visualchars,nonbreaking,blockquote", \t\t\tlanguage : "{$lang}", \t\t\tconvert_urls : false, \t\t\trelative_urls : false, \t\t\tapply_source_formatting : false, \t\t\tremove_linebreaks : true, \t\t\tgecko_spellcheck : true, \t\t\tspellchecker_languages : "+English=en,Dutch=nl,German=de,Spanish=es,Danish=dk,Swedish=sv,French=fr,Japanese=jp", \t\t\t//script should be a default element according to the docs, but doesn"t appear to work \t\t\textended_valid_elements : "script[language|src|type],iframe[*]", \t\t\t//the following shouldn"t be necessary, but seems to be due to some sort of tinymce bug \t\t\tcustom_elements : "script,iframe", \t\t\t \t\t // Theme options \t\t theme : 'advanced', \t\t\ttheme_advanced_buttons1 : "fontselect,fontsizeselect,bold,italic,underline,strikethrough,sub,sup,separator,link,unlink,image,code,fullscreen", \t\t theme_advanced_buttons2 : "justifyleft,justifycenter,justifyright,justifyfull,separator,outdent,indent,blockquote,separator,bullist,numlist,separator,forecolor,backcolor,separator,charmap,hr,removeformat,visualaid", \t\t theme_advanced_buttons3 : "undo,redo,cut,copy,paste,pastetext,replace,separator,tablecontrols", \t\t\ttheme_advanced_buttons4 : "", \t\t\ttheme_advanced_toolbar_location : "top", \t\t\ttheme_advanced_toolbar_align : "left", \t\t\ttheme_advanced_statusbar_location : "bottom", \t\t\ttheme_advanced_resizing : true, \t\t\ttheme_advanced_source_editor_width : "500", \t \ttheme_advanced_source_editor_height : "380" \t\t }); \t</script> <SCRIPT> var rules=new Array(); rules[0]='page_title|regexp|^([A-Za-z0-9-_ ()]+)\$|The Page title can only contain the following characters: ()-_'; </SCRIPT> <script language="javascript" type="text/javascript"> function addFile(form) { if (form.weblog_add_file.selectedIndex != '') { form.page_body.value = form.page_body.value + '{{file:' + form.weblog_add_file.options[form.weblog_add_file.selectedIndex].value + '}}'; \t\t\ttinyMCE.execCommand('mceInsertContent',true,'{{file:' + form.weblog_add_file.options[form.weblog_add_file.selectedIndex].value + '}}'); \t\t} } </script> END; // Restore the trailing slash in $url $url = url; $run_result = <<<END <form method="post" name="elggform" action="{$url}_folio/action_redirection.php" onsubmit="return performCheck('elggform', rules, 'classic');"> \t<h2>{$page_title}</h2> END; $run_result .= templates_draw(array('context' => 'databoxvertical', 'name' => 'Title', 'contents' => "<input type=text id='page_title' value='{$title}' name='page_title' style='width: 80%' />")); $run_result .= templates_draw(array('context' => 'databoxvertical', 'name' => '', 'contents' => display_input_field(array("page_body", stripslashes($body), "weblogtext")))); if (logged_on) { $sitename = sitename; $filelist = viewfolder(-1, $_SESSION['userid'], 0); $run_result .= <<<END <p> \t\t\tEmbed a file from your {$sitename} file storage:<br /> <select name="weblog_add_file" id="weblog_add_file"> {$filelist} </select> <input type="button" value="Add" onclick="addFile(this.form);" /><br /> (This will add a code to your weblog post that will be converted into an embedded file.) </p> END; } // if (! stripos($_SERVER['HTTP_USER_AGENT'],"Safari")) //no rich text in Safari - no worky $run_result .= <<<END <p> Embed an external video or other widget:<br />(Copy and paste embed code from external web site)<br /> <span id="embed"><textarea name="weblog_embed_object" id="weblog_embed_object" rows="3" cols="40"></textarea> <input type="button" value="Embed" onclick="tinyMCE.execCommand('mceInsertRawHTML',true,this.form.weblog_embed_object.value);tinyMCE.execCommand('mceCleanup');" /></span> </p> END; $run_result .= <<<END \t<p> \t\t<input type="hidden" name="action" value="folio:page:update" /> \t\t<input type="hidden" name="username" value="{$username}" /> \t\t<input type="hidden" name="user_ident" value="{$user_ident}" /> \t\t<input type="hidden" name="page_ident" value="{$page_ident}" /> \t\t<!-- <input type="hidden" name="parentpage_ident" value="{$parentpage_ident}" /> --> \t\t<input type="submit" value="Save" /> <INPUT TYPE="button" VALUE="Cancel" onClick="javascript:history.back()"> \t</p> END; // Include security $run_result .= folio_control_page_edit_security($page) . folio_control_page_edit_move($page) . '</form>'; return $run_result; }