Funkcnost - aby snippet fungoval spravne:
- Nastavit NEcachovanie dokumentu v ktorom je snippet pouzity
- Musite byt prihlaseny v administracnej casti Etomite
- V dalsom okne spustenu vasu stranku (je to koli bezpecnosti a aj koli podmienke na zaciatku if ($etomite->userLoggedIn()) a aby Etomite vedel autora dokumentu)
Kód: Vybrať všetko
##############################################################
## Snippet Title: ChangeCreatedonDate
## Snippet Category: Miscellaneaous
## Usage: [[ChangeCreatedonDate]]
## Snippet Language: Slovak
## Modified By: _rasel^ <etomite@etomite.sk> (Matej Kolesár) http://www.etomite.sk/
## Fixed problem with "requested URL /'id' was not found on this server"
## Snippet Description: Changes the createdon and editedon dates and author settings of a document
## Snippet Version: 1.0.0
##
## Created By: Ralph Dahlgren, Modified By: Lloyd Borrett (lloyd@borrett.id.au) - Fixed problem with commas in MySQL statement
## License: http://opensource.org/licenses/gpl-license.php GNU General Public License v2
##############################################################
// Variable containing the redirect page for unauthorized access
// Can be changed to something like [~123~] or index.php
$redirect = $etomite->makeUrl($etomite->config['error_page']);
// get server offset time in seconds and in hours
$server_offset_time = $etomite->config['server_offset_time'];
if (!$server_offset_time) {
$server_offset_time = 0;
$server_offset_hours = 0;
} else {
$server_offset_hours = ($server_offset_time / 60 / 60);
}
if ($etomite->userLoggedIn()){
if ( isset($_POST['submit']) && is_numeric($_POST['docid']) && isset($_POST['newdate']) ){
$newdate = strtotime($_POST['newdate']);
if (isset($_POST['server_offset'])) {
if ($_POST['server_offset'] == "local") {
$newdate = ($newdate - $server_offset_time);
}
}
$comma_needed = 0;
$tbl = $etomite->dbConfig['dbase'].".".$etomite->dbConfig['table_prefix'];
$sql = "UPDATE ".$tbl."site_content SET ";
if ($_POST['modCreatedby']) {
$sql .= "createdby=".$_SESSION['internalKey'];
$comma_needed = 1;
}
if ($_POST['modCreatedon']) {
if ($comma_needed == 1) {
$sql .= ", ";
}
$sql .= "createdon=".$newdate;
$comma_needed = 1;
}
if ($_POST['modEditedby']) {
if ($comma_needed == 1) {
$sql .= ", ";
}
$sql .= "editedby=".$_SESSION['internalKey'];
$comma_needed = 1;
}
if ($_POST['modEditedon']) {
if ($comma_needed == 1) {
$sql .= ", ";
}
$sql .= "editedon=".$newdate;
$comma_needed = 1;
}
$sql .= " WHERE id=".$_POST['docid'].";";
if (!$etomite->dbQuery($sql)) {
$output = "<p>Zmena vlihala!... Skontrolujte ID vášho dokumentu a formát Dátumu/Času a skúste znova...</p>";
} else {
$output = "<p>Dátum/Čas/Autor dokumentu boli úspešne zmenené...</p>";
}
} else {
$output = '
<p>Tento formulár slúži na zmenu dátumu/času vytvorenia a poslednej úpravy špecifického dokumentu na základe jeho ID. Autor dokumentu bude automiticky zmenený tým, ktorý vykoná tieto zmeny.</p>
<form name="modCreatedon" id="modCreatedon" method="post" action="'.$PHP_SELF.'">
<p><label>ID dokumentu k modifikácií:</label>
<input type="text" name="docid" id="docid" value="" />
(napr.: 123 - musí to byť číslo a musí existovať)</p>
<p><label>Nový dátum vytvorenia/úpravy dokumentu:</label>
<input type="text" name="newdate" id="newdate" value="" />
(pozri príklady dole)</p>
';
$output .= '
<p>Etomite kompenzácia času v hodinách: '.$server_offset_hours.'<br />
Dátum je: <input type="radio" name="server_offset" value="server"> Servrový
<input type="radio" name="server_offset" value="local" checked> Lokálny</p>
<p><label>Zmeniť čas vytvorenia:</label>
<input type="checkbox" name="modCreatedon" id="modCreatedon" checked="checked" value="true" /></p>
<p><label>Zmeniť čas poslednej úpravy:</label>
<input type="checkbox" name="modEditedon" id="modEditedon" checked="checked" value="true" /></p>
<p><label>Zmeniť "vytvoril" ID:</label>
<input type="checkbox" name="modCreatedby" id="modCreatedby" checked="checked" value="true" />
(updaty do vášho užívateľského ID)</p>
<p><label>Zmeniť "posledné úpravy vykonal" ID:</label>
<input type="checkbox" name="modEditedby" id="modEditedby" checked="checked" value="true" />
(updaty do vášho užívateľského ID)</p>
<p><input type="submit" name="submit" id="submit" value="Vykonať" />
<input type="reset" name="reset" id="reset" value="Obnoviť predvolené" /></p>
</form>
<hr>
<p>Príklady syntaxu (formatovania) dátumu a času:</p>
<ul>
<li>19 Dec 1994 9:20pm</li>
<li>December 19th, 1994</li>
<li>12/19/1994 21:20:00 (nemôže byť používané v tomto formáte)</li>
<li>19941219 2120 (odporúčaný formát rrrmmdd hhmm)</li>
<li>1994/12/19 alebo 1994-12-19</li>
<li>now, yesterday, Monday, alebo last Friday</li>
<li>+2 days alebo -1 week [minute(s),hour(s),day(s),month(s),year(s) od súčasného dátumu/času]</li>
</ul>
<p>Časové hodnoty sú nepovinné a budú predvolene nastavené na 00:00:00.</p>
<p>Niektoré Dátumové/Časové formáty nemôžu obsahovať príkazy a vrátia NULL hodnotu.</p>
<p>Navštívte <a href="http://www.gnu.org/software/tar/manual/html_chapter/tar_7.html" target="_blank"> túto stránku (7. Date input formats)</a> pre viac informácií o formátovaní.</p>
';
}
return $output;
} else {
$etomite->sendRedirect($redirect);
}