ChangeCreatedonDate

V tejto téme sa nachádzajú snippety (rozšírenia) pre Etomite.

Moderátor: Moderators

Používateľov profilový obrázok
_rasel^
ETOMITE Admin
ETOMITE Admin
Príspevky: 1122
Dátum registrácie: Ut Sep 20, 2005 1:03 am
Bydlisko: Košice (SR)
Kontaktovať používateľa:

ChangeCreatedonDate

Príspevok od používateľa _rasel^ »

Tento formular sluzi na zmenu datumu/casu vytvorenia a poslednej upravy specifickeho dokumentu na zaklade jeho ID.

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);
}
Ak su tam neake gramaticke chyby, tak dajte pls vediet... :roll:
..:: Etomite CMS → Rulezzz !.!.!. ::..
TiBi
Thief
Thief
Príspevky: 8
Dátum registrácie: Št Nov 03, 2005 2:01 pm

Príspevok od používateľa TiBi »

Super diki snippet funguje perfektne :D
Používateľov profilový obrázok
_rasel^
ETOMITE Admin
ETOMITE Admin
Príspevky: 1122
Dátum registrácie: Ut Sep 20, 2005 1:03 am
Bydlisko: Košice (SR)
Kontaktovať používateľa:

Príspevok od používateľa _rasel^ »

TiBi napísal:Super diki snippet funguje perfektne :D
Yop, nz... ani som nevedel, ze taky existuje. :oops:

btw: Das si pls do profilu, alebo do tejto temy weby, kde mas rozbehnute Etomite?
..:: Etomite CMS → Rulezzz !.!.!. ::..
Napísať odpoveď