Advertisement
hocikto19

administrace NERS

Jul 15th, 2014
425
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 8.79 KB | None | 0 0
  1. <?php
  2. //kontrola opravnenia
  3. if(empty($_SESSION['user_isAdmin'])){
  4.     die("Uživatel nemá administrátorská práva <br /><a class=\"center\" href=\"index.php\">zpět</a>");
  5. }
  6. //zalozenie asociativneho pola
  7. $article = array (
  8.     'article_id' => '',
  9.     'user_id' => '',
  10.     'section' => '',
  11.     'title' => '',
  12.     'url' => '',
  13.     'description' => '',
  14.     'keywords' => '',
  15.     'content' => '',
  16. );
  17. //ak bolo nieco odoslané
  18. if($_POST){
  19.     //ak článok nemá id tzn. je nový, tak ho pridám do DB
  20.     if(!$_POST['article_id']){
  21.         Db::query("
  22.            INSERT INTO clanky(users_id, section, title, url, description, keywords, content)
  23.            VALUES (?, ?, ?, ?, ?, ?, ?)
  24.        ", $_POST['users_id'], $_POST['section'], $_POST['title'], $_POST['url'], $_POST['description'], $_POST['keywords'], $_POST['content']);
  25.     }
  26.     //ak má id, tak iba upravím v DB článok s daným id
  27.     else{
  28.         Db::query("
  29.            UPDATE clanky
  30.            SET title=?, url=?, description=?, keywords=?, content=?
  31.            WHERE article_id=?
  32.        ", $_POST['title'], $_POST['url'], $_POST['description'], $_POST['keywords'], $_POST['content'], $_POST['article_id']);
  33.     }
  34.  
  35.     //ak mám nahratú titulku, tak ju uložím do súboru
  36.     if(strlen($_FILES['file']['name'])>0){
  37.             //povolene koncovky
  38.             $allowedExts = array("gif", "jpeg", "jpg", "png");
  39.             $temp = explode(".", $_FILES["file"]["name"]);
  40.             $extension = end($temp);
  41.             die('leziem kam nemam');
  42.             //zistim ci je subor obrazok
  43.             if ((($_FILES["file"]["type"] == "image/gif")
  44.             || ($_FILES["file"]["type"] == "image/jpeg")
  45.             || ($_FILES["file"]["type"] == "image/jpg")
  46.             || ($_FILES["file"]["type"] == "image/pjpeg")
  47.             || ($_FILES["file"]["type"] == "image/x-png")
  48.             || ($_FILES["file"]["type"] == "image/png"))
  49.             && in_array($extension, $allowedExts)) {
  50.                 //ak mam chybu, tak ju vypisem
  51.               if ($_FILES["file"]["error"] > 0) {
  52.                 die ("Error: " . $_FILES["file"]["error"] . "<br>");
  53.                 //inak pokracujem v uploade
  54.               } else {
  55.                 //premenujem si ho aby sa volal ako url clanku
  56.                   $_FILES['file']['name']=$_POST['url'].'.jpg';
  57.                   //ak uz existuje, tak oplujem
  58.                   if (file_exists("images/title/" . $_FILES["file"]["name"])) {
  59.                     die ($_FILES["file"]["name"] . " already exists. ");}
  60.                     //inak ho ulozim
  61.                   else {
  62.                     move_uploaded_file($_FILES["file"]["tmp_name"],
  63.                     "images/title/" . $_FILES["file"]["name"]);
  64.                     echo ("Stored in: " . "images/title/" . $_FILES["file"]["name"]);
  65.                   }
  66.               }
  67.               //ak subor neni obrazok, tak oplujem
  68.             } else {
  69.               die ("Invalid file");
  70.             }
  71.     }
  72.     //ak mam nahrate nieco do galerie tak ju uploadnem
  73.     if(isset($_FILES['gallery'])){
  74.         //kontrola ci uz zlozka existuje
  75.         if (!is_dir("galerie/".$_POST['url'])){
  76.             //ak nie tak ju zalozim
  77.             mkdir("galerie/".$_POST['url']);        
  78.         }
  79.         //otvorim subor s metadatami
  80.         $fr = fopen("galerie/".$_POST['url']."/meta.html", "a");
  81.         //prejdem vsetky nahrate veci
  82.         for($i = count($_FILES['gallery']['name'])-2; $i>=0; $i--){
  83.             //ulozim fotku
  84.             move_uploaded_file($_FILES['gallery']['tmp_name'][$i], "galerie/".$_POST['url']."/".$_FILES['gallery']['name'][$i]);
  85.             //pripravim si link
  86.             $text='<li><a href="galerie/'.$_POST["url"].'/'.$_FILES["gallery"]["name"][$i].'" rel="prettyPhoto[pp_gal]" title="'.$_POST["imgdesc"][$i].'"><img src="galerie/'.$_POST["url"].'/'.$_FILES["gallery"]["name"][$i].'" height="120" alt="'.$_POST["imgname"][$i].'"/></a></li>';
  87.             //ulozim si metadata
  88.             fprintf($fr, "%s\n", $text);
  89.         }
  90.     }
  91.     //po uploadnutí presmerujem na článok
  92.     header('Location: index.php?section='.$_POST['section'].'&url='.$_POST['url']);
  93.     exit();
  94. }
  95. //ak ma sem presmerovalo z článku, ktorý chcem upraviť tak si načítam do pola údaje z DB
  96. else if(isset($_GET['url'])){
  97.     $articleToEdit=Db::queryOne("
  98.        SELECT *
  99.        FROM clanky
  100.        WHERE url=?
  101.    ", $_GET['url']);
  102.     if($articleToEdit){
  103.         $article=$articleToEdit;
  104.     }
  105.     else{
  106.         $message = "Hledaný článek neexistuje!";
  107.     }
  108. }
  109. ?>
  110.  
  111. <?php
  112. if (isset($message)){
  113.     printf("<p class=\"error\">%s</p>\n", $message);
  114. }
  115. ?>
  116.  
  117. <form method="post" enctype="multipart/form-data">
  118.     <input type="number" hidden="" name="article_id" value="<?= htmlspecialchars($article['article_id']) ?>"/><br />
  119.     <input type="number" hidden="" name="users_id" value="<?= $_SESSION['user_id'] ?>"/>
  120.     <p>Zvolte sekci do které chcete přidat článek:
  121.     <select id="select" name="section">
  122.         <option value="bylinky">Bylinky</option>
  123.         <option value="pripravky">Přípravky</option>
  124.     </select></p>
  125.             <script>
  126.             //ak modifikujem home-page, tak zmenim options zo selectu
  127.             function getUrlVars() {
  128.             var vars = {};
  129.             var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
  130.                 vars[key] = value;
  131.             });
  132.             return vars;
  133.             }
  134.             parts=getUrlVars();
  135.             //ak chceme editovat home-page, tak zmenim ponuku v selecte
  136.             if(parts["url"]==="home-page"){
  137.                 select = document.getElementById("select");
  138.                 select.innerHTML="<option value=\"domov\">Domov</option>";
  139.             }
  140.         </script>
  141.     <p>Zadejte titulek:
  142.         <input type="text" name="title" value="<?= htmlspecialchars($article['title']) ?>"/></p>
  143.     <p>Zadejte URL (titulek-bez-diakritiky-s-pomlckami):
  144.         <input type="text" name="url" value="<?= htmlspecialchars($article['url']) ?>"/></p>
  145.     <p>Zadejte krátký popis (max. 255 znaků):
  146.         <input type="text" name="description" value="<?= htmlspecialchars($article['description']) ?>"/></p>
  147.     <p>Zadejte klíčová slova (max. 255 znaků):
  148.         <input type="text" name="keywords" value="<?= htmlspecialchars($article['keywords']) ?>"/></p>
  149.     <label for="file">Titulní obrázek:</label>
  150.     <input type="file" name="file"/>
  151.     <div id="upgal">
  152.         <p>Zde můžete nahrát obrázky do galerie</p>
  153.         <input type="file" name="gallery[]" onclick="pridaj()"/>
  154.         <input type="text" name="imgname[]" placeholder="Jméno obrázku"/>
  155.         <input type="text" name="imgdesc[]" placeholder="Popisek obrázku"/>
  156.     </div>
  157.     <p>Zde můžete vložit článek</p>
  158.     <textarea name="content"><?= htmlspecialchars($article['content']) ?></textarea>
  159.     <input type="submit" value="uložit"/>
  160. </form>
  161. <script type="text/javascript" src="//tinymce.cachefly.net/4.0/tinymce.min.js"></script>
  162.         <script type="text/javascript">
  163.                 tinymce.init({
  164.                         selector: "textarea[name=content]",
  165.                         plugins: [
  166.                                 "advlist autolink lists link image charmap print preview anchor",
  167.                                 "searchreplace visualblocks code fullscreen",
  168.                                 "insertdatetime media table contextmenu paste"
  169.                         ],
  170.                         toolbar: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image",
  171.                         entities: "160,nbsp",
  172.                         entity_encoding: "named",
  173.                         entity_encoding: "raw"
  174.                 });
  175.                
  176.                 function pridaj(){
  177.                     var parent = document.getElementById("upgal");
  178.                     //pridaj file
  179.                     var child = document.createElement("input");
  180.                     child.type="file";
  181.                     child.name="gallery[]";
  182.                     child.setAttribute("onclick", "pridaj()");
  183.                     parent.appendChild(child);
  184.                     //pridaj meno
  185.                     var child = document.createElement("input");
  186.                     child.type="text";
  187.                     child.name="imgname[]";
  188.                     child.placeholder="Jméno obrázku";
  189.                     parent.appendChild(child);
  190.                     //pridaj popis
  191.                     var child = document.createElement("input");
  192.                     child.type="text";
  193.                     child.name="imgdesc[]";
  194.                     child.placeholder="Popis obrázku";
  195.                     parent.appendChild(child);
  196.                 }
  197.         </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement